Ir para o conteúdo principal
Base de conhecimentos do Suporte

Kit de ferramentas OpenVINO™ para compilação cruzada e plugin NCS2 usando Dockerfile pré-configurado para Debian* OS de 32 bits

Tipo de conteúdo: Instalação e configuração   |   ID do artigo: 000057005   |   Última revisão: 20/02/2025
Anotações
  • Todas as etapas são necessárias na instalação.
  • Essas etapas foram testadas com placa Raspberry Pi 4* e Raspbian* Buster, 32 bits.
  • Uma conexão com a Internet é necessária para seguir as etapas neste guia.
  • O artigo foi verificado usando a versão 2022.1 da distribuição de código aberto do kit de ferramentas OpenVINO™.

O kit de ferramentas OpenVINO™ implanta rapidamente aplicativos e soluções que imitam a visão humana. O kit de ferramentas estende as cargas de trabalho de visão computacional (CV) em todo o hardware intel® baseado em redes neurais convolucionais (CNN), que maximiza o desempenho. Essas etapas geralmente seguem o plug-in Como construir a CPU Arm disponível. No entanto, alterações específicas são necessárias para executar tudo no Raspberry Pi 4*. Este guia fornece etapas para a criação de distribuição de código aberto do kit de ferramentas OpenVINO™ para o SO Raspbian* de 32 bits com um método de compilação cruzada.

Clique no tópico para obter detalhes:

Requisitos do sistema
Nota Este guia pressupõe que você tenha sua placa Raspberry Pi* em execução com o sistema operacional listado abaixo.

Hardware

  • Raspberry Pi* 4 (Raspberry Pi* 3 Modelo B+ deve funcionar.)
  • Pelo menos uma placa microSD de 16 GB
  • Stick de computação neural Intel® 2
  • Conexão com a Internet Ethernet ou rede sem fio compatível
  • Máquina host com contêiner docker instalado

Sistema operacional alvo

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

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

sudo apt update && sudo apt upgrade -y

Instalando contêiner Docker
Nota Você pode seguir a instrução de instalação com base na documentação oficial do docker
https://docs.docker.com/engine/install

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker

Repositório de openvino_contrib de clones
Nota A versão do kit de ferramentas openvino_contrib e OpenVINO para este artigo é baseada em 2022.1

Faça download do código-fonte e modifique o arquivo de configuração:

git clone --recurse-submodules --single-branch --branch=2022.1 https://github.com/openvinotoolkit/openvino_contrib.git

Vá para o diretório arm_plugin:

cd openvino_contrib/modules/arm_plugin

Modifique o conteúdo do arquivo Dockerfile.RPi32_buster conforme abaixo com as ferramentas de editor:

vim dockerfiles/Dockerfile.RPi32_buster

Adicionar "RUN pip install protobuf==3.20.0" na linha 114, conforme mostrado no diagrama abaixo.

Screenshot

Salve o arquivo editado.

Modifique o conteúdo do arquivo arm_cpu_plugin_build.sh conforme mostrado abaixo com as ferramentas do editor:

vim scripts/arm_cpu_plugin_build.sh

Edite as linhas 77, 78, 79 e 136 e adicione alterações conforme mostrado em negrito abaixo:

77 checkSrcTree $OPENCV_HOME https://github.com/opencv/opencv.git 4.5.5-openvino-2022.1 4.x
78 checkSrcTree $OPENVINO_HOME https://github.com/openvinotoolkit/openvino.git 2022.1.0 releases/2022/1
81 checkSrcTree $OMZ_HOME https://github.com/openvinotoolkit/open_model_zoo.git 2022.1.0 releases/2022/1
136 -DENABLE_INTEL_MYRIAD=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE \

Salve o arquivo editado.

Kit de ferramentas OpenVINO™ com compilação cruzada no ambiente de contêiner Docker

Nesta etapa, executaremos o script para baixar e compilar cruzadamente OpenVINO™ kit de ferramentas e outros componentes, como o OpenCV* no ambiente de contêiner docker:

Vá para o diretório de plugin da CPU Arm:

cd openvino_contrib/modules/arm_plugin

Construa uma imagem do Docker*:

docker image build -t arm-plugin -f dockerfiles/Dockerfile.RPi32_buster .

Construa o plugin no contêiner Docker*:

O processo de compilação é executado /arm_cpu_plugin_build.sh script executado no interior do /arm_cpu_plugin directory (comando padrão de contêiner para execução). Todos os resultados intermediários e artefatos de compilação são armazenados no diretório de trabalho.

Assim, pode-se montar todo o diretório de trabalho para ter todos os resultados armazenados fora do contêiner:

mkdir build

docker container run --rm -ti -v $PWD/build:/arm_cpu_plugin arm-plugin

Nota

Existem algumas variáveis de ambiente que controlam /arm_cpu_plugin_build.sh execução do script.

  • BUILD_JOBS controla o número de threads para compilação simultânea
  • BUILD_TYPE controla a configuração de depuração/versão (versão por padrão)
  • UPDATE_SOURCES controla a recuperação de fontes
    • clean - não recarregue fontes se já estiverem carregadas. Limpar pastas de compilação (padrão)
    • recarregar - excluir todas as fontes carregadas e recuperá-las novamente
    • verificar - não recarregar ou limpar fontes
  • WITH_OMZ_DEMO cria demonstrações do C++ Open Model Zoo (LIGADO por padrão)

Na pasta de compilação , OV_ARM_package.tar.gz são geradas

ls build

Transfira o OV_ARM_package.tar.gz para o dispositivo de destino (Raspberry Pi 4* Buster de 32 bits)
Há várias maneiras de transferir os pacotes para o dispositivo de destino (Raspberry Pi 4*), cópia segura diretamente para o dispositivo de destino, copiar o pacote para um pen drive USB e transferê-lo.
Este artigo mostrará como montar um pen drive USB na máquina host e copiar o pacote de compilação para o pen drive montado.

Insira o pen drive USB na porta USB do sistema e, em seguida, verifique a inicialização do dispositivo usando o comando abaixo;

sudo fdisk -l

Após a verificação da inicialização do dispositivo, monte a inicialização do dispositivo (por exemplo /dev/sda) em /mnt;

sudo mount /dev/sda /mnt

Em seguida, copie o pacote OpenVINO para o pen drive USB;

sudo cp -rf build/OV_ARM_package.tar.gz /mnt/

Verificando o pacote de compilação

Após concluir a compilação cruzada, e copiou com sucesso a OV_ARM_package.tar.gz para o dispositivo de destino (Raspberry Pi 4*).

Instalar ferramenta de compilação

sudo apt update
sudo apt instalar cmake -y

Extraia o pacote OV_ARM_package.tar.gz

mkdir ~/openvino_dist/
tar -xvzf OV_ARM_package.tar.gz -C ~/openvino_dist/

Obter a variável de configuração

source ~/openvino_dist/setupvars.sh

Compile o código de amostra

cd ~/openvino_dist/samples/cpp
./build_samples.sh

Para verificar se o kit de ferramentas e Stick de computação neural Intel® 2 e plugin Arm* funcionam no seu dispositivo, execute as seguintes etapas:

  1. Execute o hello_query_device aplicativo de amostra para confirmar que todas as bibliotecas carregam corretamente.
  2. Baixe um modelo pré-treinado.
  3. Selecione uma entrada para a rede neural (ou seja, um arquivo de imagem).
  4. Configure o driver USB Stick de computação neural Intel® 2 Linux*.
  5. Execute benchmark_app com o modelo e a entrada selecionados.

Exemplo de aplicações

O kit de ferramentas Intel® OpenVINO™ inclui aplicações de amostra utilizando o mecanismo de inferência e o Stick de computação neural Intel® 2. Um dos aplicativos é hello_query_device, que pode ser encontrado no seguinte diretório:

~/inference_engine_cpp_samples_build/armv7l/Release

Execute os seguintes comandos para testar hello_query_device:

cd ~/inference_engine_cpp_samples_build/armv7l/Release

./hello_query_device

Ele deve imprimir uma caixa de diálogo, descrevendo os dispositivos disponíveis para inferência presentes no sistema.

Baixando um modelo

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

  • Usando o Model Optimizer para converter um modelo existente de um dos frameworks suportados em formato IR para o Mecanismo de inferência. Observe que o pacote Model Optimizer não está disponível para o Raspberry Pi*.
  • Usando a ferramenta Model Downloader para baixar do Open Model Zoo. Apenas modelos públicos pré-treinados.
  • Faça o download dos arquivos ir diretamente a partir de storage.openvinotookit.org

Para as nossas finalidades, o download diretamente é o mais fácil. Use os seguintes comandos para obter um modelo de detecção pessoa-veículo-bicicleta:

wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.bin

wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml

Nota O Stick de computação neural Intel® 2 requer modelos otimizados para o formato de ponto flutuante de 16 bits conhecido como FP16. Se for diferente do exemplo, seu modelo pode exigir uma conversão usando o Otimizador de modelos para FP16 em uma máquina separada, pois o Otimizador de modelo não é suportado no Raspberry Pi*.

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 três canais de cor. Faça o download dos arquivos necessários na sua placa:

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

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

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

Nota Se o usuário atual não for membro do grupo do usuário, execute o comando a seguir e reinicialize o dispositivo.

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

Configure o ambiente OpenVINO™:

source /home/pi/openvino_dist/setupvars.sh

Para executar a inferência no Stick de computação neural Intel® 2, instale as regras de USB executando o script install_NCS_udev_rules.sh :

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

O driver USB deve ser instalado corretamente agora. Se a Stick de computação neural Intel® 2 não for detectada ao executar demonstrações, reinicie o dispositivo e tente novamente.

Executando benchmark_app

Quando o modelo é baixado, uma imagem de entrada está disponível e o Stick de computação neural Intel® 2 está conectado a uma porta USB, use o seguinte comando para executar o benchmark_app:

cd ~/inference_engine_cpp_samples_build/armv7l/Release

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

Isso executará o aplicativo com as opções selecionadas. O -d sinalizador diz ao programa qual dispositivo usar para inferência. Especificar a MYRIAD ativa o plugin MYRIAD , utilizando o Stick de computação neural Intel® 2. Depois que o comando for executado com êxito, o terminal exibirá estatísticas para inferência. Você também pode usar o plug-in da CPU para executar inferência na CPU ARM do seu dispositivo Raspberry Pi 4*, consulte a especificação do conjunto de operação de pluginARAR* para suporte de operação, pois o modelo usado neste exemplo não é compatível com o pluginARARAR*.

[ INFO ] First inference took 410.75 ms
[Step 11/11] Dumping statistics report
[ INFO ] Count: 388 iterations
[ INFO ] Duration: 60681.72 ms
[ INFO ] Latency:
[ INFO ] Median: 622.99 ms
[ INFO ] Average: 623.40 ms
[ INFO ] Min: 444.03 ms
[ INFO ] Max: 868.18 ms
[ INFO ] Throughput: 6.39 FPS


Se o aplicativo tiver sido funcionado com êxito em seu Intel® NCS2, OpenVINO™ kit de ferramentas e Stick de computação neural Intel® 2 estão configuradas corretamente para uso no seu dispositivo.

Variáveis do ambiente

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

source /home/pi/openvino_dist/setupvars.sh

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

echo "source /home/pi/openvino_dist/setupvars.sh" >> ~/.bashrc

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

[setupvars.sh] OpenVINO environment initialized

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

Produtos relacionados

Este artigo aplica-se a 2 produtos.

Avisos legais

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.