Construindo kit de ferramentas OpenVINO™ código aberto para o sistema operacional Raspbian* e Stick de computação neural Intel® 2

Documentação

Instalação e configuração

000057005

14/04/2022

Notas
  • Todas as etapas são necessárias na instalação.
  • Essas etapas foram testadas com a placa Raspberry Pi 4* e Raspbian* Buster, de 32 bits.
  • Uma conexão com a Internet é necessária para seguir as etapas deste guia.
  • O artigo foi verificado usando a versão 2021.3 da distribuição de código aberto do kit de ferramentas OpenVINO™ de código aberto.

O OpenVINO™ de ferramentas implanta rapidamente aplicações e soluções que emularão a visão humana. O kit de ferramentas estende cargas de trabalho de visão computacional (CV) em todo o hardware Intel® com base em Redes Neurais Convolutional (CNN), o que maximiza o desempenho. Essas etapas geralmente seguem este artigo sobre o Stick de computação neural Intel® 2 e o kit de ferramentas OpenVINO™ código aberto, mas incluem alterações específicas para que tudo seja executado em sua placa.

Este guia fornece etapas para a criação de distribuição de código aberto do kit de ferramentas OpenVINO™ para o sistema operacional Raspbian* e uso com Stick de computação neural Intel® 2 (Intel® NCS2).

NotaO Intel® Movidius™ de computação neural original também é compatível com o kit de ferramentas OpenVINO™, e esse dispositivo pode ser usado em vez do Stick de computação neural Intel® 2 ao longo deste artigo.

Clique ou no tópico para obter detalhes:

Requisitos do sistema
NotaEste guia assume que você tem sua placa Raspberry Pi* funcionando e funcionando com um sistema operacional listado abaixo.

Hardware

  • Raspberry Pi* 4 (Raspberry Pi* 3 Modelo B+ deve funcionar.)
  • Pelo menos um cartão microSD de 8 GB
  • Stick de computação neural Intel® 2
  • Conexão de Internet Ethernet ou rede sem fio compatível
  • Adaptador de alimentação DC dedicado

Sistema operacional de destino

  • Raspbian* Stretch, 32 bits

  • Raspbian* Buster, 32 bits
Configurando seu ambiente de compilação
NotaEste guia contém comandos que precisam ser executados como acesso raiz ou sudo para instalar corretamente.

Certifique-se de que o software do seu dispositivo está atualizado:

sudo apt update && sudo apt upgrade -y

Algumas das dependências do kit de ferramentas não possuem binários ARMv7 pré-construídos e precisam ser construídos a partir da fonte. Isso pode aumentar significativamente o tempo de construção em comparação com outras plataformas. A preparação para a construção do kit de ferramentas requer as seguintes etapas:

Instalando ferramentas de compilação

sudo apt install build-essential

Instalação de CMake* a partir da fonte

Busque CMake na página de versão do Kitware* GitHub*, extraia-o e insira a pasta extraída:

cd ~/

wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4.tar.gz

tar xvzf cmake-3.14.4.tar.gz

cd ~/cmake-3.14.4

Execute o script bootstrap para instalar dependências adicionais para iniciar a compilação:

./bootstrap

make -j4

sudo make install

NotaO número de trabalhos que o comando make usa pode ser ajustado com o sinalizador -j . É recomendável definir o número de trabalhos no número de núcleos em sua plataforma.

Você pode verificar o número de núcleos em seu sistema usando o comando:

grep -c ^processor /proc/cpuinfo

Saiba que a configuração do número muito alto pode levar a sobreposição de memória, falhando na compilação. Se o tempo permitir, é recomendável executar de 1 a 2 trabalhos.

Instalando o OpenCV a partir da fonte

O kit de OpenVINO™ Intel® usa o poder do OpenCV* para acelerar a inferência baseada em visão. Embora o processo CMake para kit de ferramentas Intel OpenVINO™® baixe OpenCV* se nenhuma versão for instalada para plataformas suportadas, nenhuma versão específica existe para plataformas ARMv7. Como tal, você deve construir o OpenCV a partir da fonte.

O OpenCV requer algumas dependências adicionais. Instale o seguinte no gerenciador de pacotes:

sudo apt install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libatlas-base-dev python3-scipy 

NotaÉ recomendável especificar a ramificação ou marca mais recente e estável ao clonar o repositório da página OpenCV* GitHub em vez de clonar diretamente a filial mestre por padrão.

Clone o repositório da página OpenCV* GitHub, prepare o ambiente de compilação e construa:

cd ~/

git clone --depth 1 --branch 4.5.2-openvino https://github.com/opencv/opencv.git

cd opencv && mkdir build && cd build

cmake –DCMAKE_BUILD_TYPE=Release –DCMAKE_INSTALL_PREFIX=/usr/local ..

make -j4

sudo make install

Baixando o código fonte e instalando dependências
NotaÉ recomendável especificar a ramificação ou marca mais recente e estável ao clonar o repositório da página openvinotoolkit GitHub em vez de clonar diretamente a filial mestre por padrão.

A versão de código aberto do kit de ferramentas Intel OpenVINO™® está disponível no GitHub. A pasta do repositório é intitulada openvino.

cd ~/

git clone --depth 1 --branch 2021.3 https://github.com/openvinotoolkit/openvino.git

O repositório também tem submodules que devem ser buscados:

cd ~/openvino

git submodule update --init --recursive

O® kit de OpenVINO™ Intel tem uma série de dependências de compilação. O install_build_dependencies.sh traz para você. Se surgir algum problema ao tentar executar o script, você deve instalar cada dependência individualmente.

Execute o script para instalar as dependências do kit de ferramentas Intel OpenVINO™®:

sh ./install_build_dependencies.sh

Se o script terminar com êxito, você estará pronto para construir o kit de ferramentas. Se algo falhou neste momento, certifique-se de instalar quaisquer dependências listadas e tente novamente.

Edifício

O primeiro passo para iniciar a compilação é dizer ao sistema onde está a instalação do OpenCV. Use o seguinte comando:

export OpenCV_DIR=/usr/local/lib/cmake/opencv4

Para criar o invólucro api Python, instale todos os pacotes adicionais listados no arquivo /inference-engine/ie_bridges/python/requirements.txt :

cd ~/openvino/inference-engine/ie_bridges/python/

pip3 install -r requirements.txt

Nota

Use o -DENABLE_PYTHON=ON option. To specify an exact Python version, use the following options:

-DPYTHON_EXECUTABLE=`which python3.7` \

-DPYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \

-DPYTHON_INCLUDE_DIR=/usr/include/python3.7

Use o -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Use o -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Use o -DCMAKE_INSTALL_PREFIX={BASE_dir}/openvino_dist to specify the directory for the CMake building to build in:

for example, -DCMAKE_INSTALL_PREFIX=/home/pi/openvino_dist

O kit de ferramentas usa um sistema de construção CMake para orientar e simplificar o processo de construção. Para construir o mecanismo de inferência e o plugin MYRIAD para Stick de computação neural Intel® 2, use os seguintes comandos:

NotaRemova todas as backslashes (\) ao executar os comandos abaixo. As backslashes são usadas para informar que esses comandos não estão separados.

cd ~/openvino

mkdir build && cd build

cmake -DCMAKE_BUILD_TYPE=Release \

-DCMAKE_INSTALL_PREFIX=/home/pi/openvino_dist \

-DENABLE_MKL_DNN=OFF \

-DENABLE_CLDNN=OFF \

-DENABLE_GNA=OFF \

-DENABLE_SSE42=OFF \

-DTHREADING=SEQ \

-DENABLE_OPENCV=OFF \

-DNGRAPH_PYTHON_BUILD_ENABLE=ON \

-DNGRAPH_ONNX_IMPORT_ENABLE=ON \

-DENABLE_PYTHON=ON \

-DPYTHON_EXECUTABLE=$(which python3.7) \

-DPYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \

-DPYTHON_INCLUDE_DIR=/usr/include/python3.7 \

-DCMAKE_CXX_FLAGS=-latomic ..

make -j4

sudo make install

Se o comando make falhar devido a um problema com uma biblioteca OpenCV, certifique-se de ter informado ao sistema onde está a instalação do OpenCV. Se a compilação terminar neste ponto, o kit de ferramentas OpenVINO™ Intel® está pronto para ser executado. Deve ser notado que as construções são colocadas na pasta ~/openvino/inference-engine/bin/armv7l/Release .

Verificando a instalação

Após concluir com êxito a compilação do mecanismo de inferência, você deve verificar se tudo está configurado corretamente. Para verificar se o kit de ferramentas e Stick de computação neural Intel® 2 funcionam em seu dispositivo, preencha as seguintes etapas:

  1. Execute o programa de amostra object_detection_sample_ssd confirmar se todas as bibliotecas são carregadas corretamente.
  2. Baixe um modelo treinado.
  3. Selecione uma entrada para a rede neural.
  4. Configure o driver USB Stick de computação neural Intel® 2 Linux*.
  5. Execute object_detection_sample_ssd com o modelo e a entrada selecionados.

Aplicações de amostra

O kit® de OpenVINO™ intel® inclui algumas aplicações de amostra que utilizam o mecanismo de inferência e o Stick de computação neural Intel® 2. Um dos programas é object_detection_sample_ssd, que pode ser encontrado em:

~/openvino/bin/armv7l/Release

Execute os seguintes comandos para testar object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

Ele deve imprimir uma caixa de diálogo de ajuda, descrevendo as opções disponíveis para o programa.

Baixando um modelo

O programa precisa de um modelo para passar a entrada. Você pode obter modelos para o kit de OpenVINO™ Intel® em formato IR:

  • Usando o otimizador de modelos para converter um modelo existente de uma das estruturas suportadas em formato DE para o mecanismo de inferência
  • Usando a ferramenta Model Downloader para baixar a partir do Open Model Zoo
  • Baixe os arquivos de IR diretamente do download.01.org

Para nossos propósitos, baixar diretamente é mais fácil. Use os seguintes comandos para obter um person-vehicle-bike detection modelo:

cd ~/Downloads

wget https://download.01.org/opencv/2021/openvinotoolkit/2021.2/open_model_zoo/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin

wget https://download.01.org/opencv/2021/openvinotoolkit/2021.2/open_model_zoo/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml

NotaA Stick de computação neural Intel® 2 requer modelos otimizados para o formato de ponto flutuante de 16 bits, conhecido como FP16. Seu modelo, se diferir do exemplo, pode exigir conversão usando o Otimizador de Modelo para FP16.

Entrada para a rede neural

O último item necessário é a entrada para a rede neural. Para o modelo que baixamos, você precisa de uma imagem com 3 canais de cor. Baixe os arquivos necessários para sua placa:

cd ~/Downloads
wget https://cdn.pixabay.com/photo/2018/07/06/00/33/person-3519503_960_720.jpg -O walk.jpg

Configurando o driver USB Stick de computação neural Intel® 2 Linux

Algumas regras de udev precisam ser adicionadas para permitir que o sistema reconheça Intel® NCS2 dispositivos USB.

NotaSe o usuário atual não for membro do grupo de usuários, execute o comando a seguir e reinicie seu dispositivo.

sudo usermod -a -G users "$(whoami)"

Set up the OpenVINO™ ambiente:

source /home/pi/openvino_dist/bin/setupvars.sh

To perform inferência no Stick de computação neural Intel® 2, instalar as regras USB executando o install_NCS_udev_rules.shScript:

sh /home/pi/openvino_dist/install_dependencies/install_NCS_udev_rules.sh

The USB driver should be installed correctly now. If the Intel® Neural Compute Stick 2 is not detected when running demos, restart your device and try again.

Executandoobject_detection_sample_ssd

Quando o modelo for baixado, uma imagem de entrada estiver disponível e o Stick de computação neural Intel® 2 estiver conectado a uma porta USB, use o comando a seguir para executar o object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -i ~/Downloads/walk.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD

Isso executará o aplicativo com as opções selecionadas. A bandeira -d diz ao programa qual dispositivo usar para inferência. -MYRIAD ativa o plugin MYRIAD , utilizando o Stick de computação neural Intel® 2. Após a execução com êxito do comando, o terminal exibirá estatísticas para inferência e produzirá uma saída de imagem.

[ INFO ] Image out_0.bmp created!
[ INFO ] Execution successful
[ INFO ] This sample is an API example, for any performance measurements please use the dedicated benchmark_app tool


Use o programa de visualização de imagem padrão Raspbian* para abrir a saída de imagem resultante:

gpicview out_0.bmp

Se a aplicação foi realizada com sucesso em seu Intel® NCS2, OpenVINO™ kit de ferramentas e Stick de computação neural Intel® 2 são configurados corretamente para uso em seu dispositivo.

Verificando a vinculação do módulo nGraph ao Python

Execute a demonstraçãoobject_detection_sample_ssd Python:

source /home/pi/openvino_dist/bin/setupvars.sh

cd /home/pi/openvino_dist/deployment_tools/inference_engine/samples/python/object_detection_sample_ssd

python3 object_detection_sample_ssd.py -i ~/Downloads/walk.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD

Se a aplicação for realizada com sucesso no seu Intel® NCS2, o módulo nGraph será vinculado corretamente ao Python.

Variáveis de ambiente

Você deve atualizar várias variáveis de ambiente antes de compilar e executar OpenVINO aplicativos de kit de ferramentas. Execute o seguinte script para definir temporariamente as variáveis do ambiente:

source /home/pi/openvino_dist/bin/setupvars.sh

**(Opcional)** As OpenVINO ambiente são removidas quando você fecha o shell. Como opção, você pode definir permanentemente as variáveis do ambiente da seguinte forma:

eco "fonte/home/pi/openvino_dist/bin/setupvars.sh" >> ~/.bashrc

Para testar sua mudança, abra um novo terminal. Você verá o seguinte:

[setupvars.sh] OpenVINO inicializado

Isso conclui o procedimento de compilação para a distribuição de código aberto do kit de ferramentas OpenVINO™ raspbian* e o uso com Stick de computação neural Intel® 2.

Tópicos relacionados
Construindo demonstrações de zoo de modelo aberto no Raspberry Pi*
Fluxo de trabalho para Raspberry Pi*
O ncappzoo agora suporta o Intel® NCS 2 e o kit OpenVINO™ ferramentas
OpenVINO™ kit de ferramentas Open Model Zoo
Otimize redes para o dispositivo Intel® Neural Compute Stick (Intel® NCS 2)
Fórum comunitário e suporte técnico