Creación de un kit de herramientas de OpenVINO™ de código abierto para raspbian* OS y Barra de cómputo neuronal Intel® 2

Documentación

Instalación y configuración

000057005

04/14/2022

Notas
  • Todos los pasos son necesarios en la instalación.
  • Estos pasos se han probado con placa Raspberry Pi 4* y Raspbian* Buster de 32 bits.
  • Se requiere una conexión a Internet para seguir los pasos de esta guía.
  • El artículo se verificó mediante la versión 2021.3 de la distribución de código abierto del kit de herramientas de OpenVINO™.

El kit de herramientas OpenVINO™ implementa rápidamente aplicaciones y soluciones que emulan la visión humana. El kit de herramientas extiende las cargas de trabajo de visión computarización (CV) a través del hardware de Intel® basado en redes neuronales convolucionales (CNN), lo que maximiza el desempeño. Estos pasos suelen seguir este artículo sobre Barra de cómputo neuronal Intel® 2 y el kit de herramientas de OpenVINO™ de código abierto, pero incluyen cambios específicos para que todo se ejecute en la placa.

Esta guía le proporciona los pasos para desarrollar la distribución de código abierto del kit de herramientas OpenVINO™ para el so Raspbian* y usarlo con Barra de cómputo neuronal Intel® 2 (Intel® NCS2).

NotaLa barra de cómputo neuronal Intel® Movidius™ original también es compatible con el kit de herramientas OpenVINO™ y ese dispositivo se puede utilizar en lugar de con el Barra de cómputo neuronal Intel® 2 en este artículo.

Haga clic en o en el tema para obtener más información:

Requisitos del sistema
NotaEsta guía da por sentado que tiene la placa Raspberry Pi* en funcionamiento con un sistema operativo que se indica a continuación.

Hardware

  • Raspberry Pi* 4 (debería funcionar Raspberry Pi* 3 Modelo B+).
  • Al menos una tarjeta microSD de 8 GB
  • Barra de cómputo neuronal Intel® 2
  • Conexión a Internet Ethernet o red inalámbrica compatible
  • Adaptador dedicado de alimentación de CC

Sistema operativo objetivo

  • Raspbian* Stretch, 32 bits

  • Raspbian* Buster, 32 bits
Configuración del entorno de compilación
NotaEsta guía contiene comandos que deben ejecutarse como acceso raíz o sudo para instalarse correctamente.

Asegúrese de que el software del dispositivo esté actualizado:

sudo apt update && sudo apt upgrade -y

Algunas de las dependencias del kit de herramientas no tienen binarios ARMv7 preconstruidos y deben construirse a partir de la fuente. Esto puede aumentar significativamente el tiempo de compilación en comparación con otras plataformas. Para prepararse para crear el kit de herramientas, se requieren los siguientes pasos:

Instalación de herramientas de construcción

sudo apt install build-essential

Instalación de CMake* desde la fuente

Busque CMake en la página de la versión de Kitware* GitHub*, extráigala e ingrese a la carpeta extraida:

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

Ejecute el script de sed para instalar dependencias adicionales. Comience la compilación:

./bootstrap

make -j4

sudo make install

NotaEl número de trabajos que utiliza el comando make se puede ajustar con el indicador -j . Se recomienda establecer la cantidad de trabajos en el número de núcleos de su plataforma.

Puede comprobar la cantidad de núcleos en su sistema mediante el comando:

grep -c ^processor /proc/cpuinfo

Tenga en cuenta que configurar el número demasiado alto puede dar lugar a saturaciones de memoria, fallando la compilación. Si el tiempo lo permite, se recomienda ejecutar de 1 a 2 trabajos.

Instalación de OpenCV desde la fuente

El kit de herramientas Intel® OpenVINO™ utiliza la potencia de OpenCV* para acelerar la inferencia basada en visión. Mientras que el proceso CMake para el kit de herramientas Intel® OpenVINO™ descarga OpenCV* si no se instala ninguna versión para las plataformas compatibles, no existe ninguna versión específica para las plataformas ARMv7. Como tal, debe crear OpenCV a partir de la fuente.

OpenCV requiere algunas dependencias adicionales. Instale lo siguiente en el administrador de paquetes:

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

NotaSe recomienda especificar la rama o etiqueta más reciente y estable al clonar el repositorio de la página GitHub de OpenCV* en lugar de clonar directamente la rama maestra de forma predeterminada.

Clone el repositorio desde la página GitHub de OpenCV*, prepare el entorno de compilación y cree:

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

Descargar código fuente e instalar dependencias
NotaSe recomienda especificar la rama o etiqueta más reciente y estable al clonar el repositorio de la página gitHub de openvinotoolkit en lugar de clonar directamente la rama maestra de forma predeterminada.

La versión de código abierto del Kit de herramientas de OpenVINO™ Intel® está disponible a través de GitHub. La carpeta del repositorio se titula openvino.

cd ~/

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

El repositorio también tiene submódulos que se deben buscar:

cd ~/openvino

git submodule update --init --recursive

El kit de herramientas de OpenVINO™ Intel® tiene varias dependencias de compilación. El script deinstall_build_dependencies.sh los busca para usted. Si surgen problemas al intentar ejecutar el script, debe instalar cada módulo individualmente.

Ejecute el script para instalar las dependencias del kit de herramientas Intel® OpenVINO™:

sh ./install_build_dependencies.sh

Si el script se terminó correctamente, está listo para crear el kit de herramientas. Si ha fallado algo en este punto, asegúrese de instalar las dependencias mencionadas e inténtelo de nuevo.

Edificio

El primer paso para comenzar la compilación es potenciar el sistema donde está la instalación de OpenCV. Utilice el siguiente comando:

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

Para crear el contenedor de la API de Python, instale todos los paquetes adicionales enumerados en el archivo /inference-engine/ie_bridges/python/requirements.txt :

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

pip3 install -r requirements.txt

Nota

Utilice el -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

Utilice el -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Utilice el -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Utilice el -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

El kit de herramientas utiliza un sistema de construcción CMake para guiar y simplificar el proceso de construcción. Para crear tanto el motor de inferencia como el complemento MYRIAD para Barra de cómputo neuronal Intel® 2, utilice los siguientes comandos:

NotaElimine todas las pestañas posteriores (\) al ejecutar los comandos a continuación. Las pestañas posteriores se utilizan para informar que estos comandos no están 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

Si el comando make falla debido a un problema con una biblioteca OpenCV, asegúrese de haber indicado al sistema dónde está la instalación de OpenCV. Si la compilación se completa en este punto, el kit de herramientas Intel® OpenVINO™ está listo para ejecutarse. Debe señalarse que las compilaciones se colocan en la carpeta ~/openvino/inference-engine/bin/armv7l/Release .

Verificación de la instalación

Después de completar correctamente la compilación del motor de inferencia, debe verificar que todo esté configurado correctamente. Para verificar que el kit de herramientas y el Barra de cómputo neuronal Intel® 2 funcionen en su dispositivo, complete los siguientes pasos:

  1. Ejecute el programa de ejemplo object_detection_sample_ssd para confirmar que todas las bibliotecas se carguen correctamente.
  2. Descargue un modelo capacitado.
  3. Seleccione una entrada para la red neuronal.
  4. Configure el controlador USB Barra de cómputo neuronal Intel® 2 Linux*.
  5. Ejecute object_detection_sample_ssd con el modelo y la entrada seleccionados.

Aplicaciones de muestra

El kit de herramientas de OpenVINO™ Intel® incluye algunas aplicaciones de muestra que utilizan el motor de inferencia y la Barra de cómputo neuronal Intel® 2. Uno de los programas es object_detection_sample_ssd, el cual se puede encontrar en:

~/openvino/bin/armv7l/Release

Ejecute los comandos siguientes para probar object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

Debe imprimir un diálogo de ayuda que describa las opciones disponibles para el programa.

Descargar un modelo

El programa necesita un modelo para pasar la entrada. Puede obtener modelos para el kit de herramientas Intel® OpenVINO™ en formato IR:

  • Uso del optimizador de modelos para convertir un modelo existente de uno de los marcos compatibles en formato IR para el motor de inferencia
  • Uso de la herramienta Desherramienta de modelo a descargar del Zoo Open Model
  • Descargue los archivos IR directamente desde download.01.org

Para nuestros propósitos, descargar directamente es más fácil. Utilice los comandos siguientes para tomar un modelo de person-vehicle-bike detection :

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

NotaEl Barra de cómputo neuronal Intel® 2 requiere modelos optimizados para el formato de punto flotante de 16 bits conocido como FP16. Su modelo, si difiere del ejemplo, puede requerir la conversión a FP16 mediante el optimizador de modelos.

Entrada para la red neuronal

El último elemento necesario es la entrada para la red neuronal. Para el modelo que hemos descargado, necesita una imagen con 3 canales de color. Descargue los archivos necesarios en la placa:

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

Configuración del controlador USB Barra de cómputo neuronal Intel® 2 Linux

Se deben agregar algunas reglas uindex para permitir que el sistema reconozca Intel® NCS2 dispositivos USB.

NotaSi el usuario actual no es miembro del grupo de usuarios, ejecute el siguiente comando y reinicie el dispositivo.

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

entorno de Set up the OpenVINO™:

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

To perform inferencia en el Barra de cómputo neuronal Intel® 2, instale las reglas USB ejecutando el install_NCS_udev_rules.shGuión:

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.

Ejecución deobject_detection_sample_ssd

Cuando se descargue el modelo, una imagen de entrada esté disponible y el Barra de cómputo neuronal Intel® 2 esté conectado a un puerto USB, utilice el siguiente comando para ejecutar el 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

Se ejecutará la aplicación con las opciones seleccionadas. El indicador -d indica al programa qué dispositivo utilizar para inferencia. -MYRIAD activa el complemento MYRIAD , utilizando el Barra de cómputo neuronal Intel® 2. Después de que se ejecute correctamente el comando, el terminal mostrará las estadísticas de inferencia y producirá una salida de imagen.

[ 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


Utilice el programa de visualización de imágenes predeterminado Raspbian* para abrir el resultado de la imagen:

gpicview out_0.bmp

Si la aplicación se ejecutó correctamente en su Intel® NCS2, OpenVINO™ kit de herramientas y Barra de cómputo neuronal Intel® 2 están configurados correctamente para su uso en el dispositivo.

Verificación del enlace del módulo nGraph a Python

Ejecute la demostración de Pythonobject_detection_sample_ssd :

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

Si la aplicación se ejecutó correctamente en su Intel® NCS2, el módulo nGraph se vincula correctamente a Python.

Variables de entorno

Debe actualizar varias variables de entorno para poder compilar y ejecutar aplicaciones de OpenVINO kit de herramientas. Ejecute el siguiente script para establecer temporalmente las variables de entorno:

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

**(Opcional)** Las variables de entorno de OpenVINO se eliminan cuando cierra el shell. Como opción, puede establecer permanentemente las variables de entorno de la siguiente manera:

"source /home/pi/openvino_dist/bin/setupvars.sh" >> ~/.πrc

Para probar el cambio, abra un nuevo terminal. Verá lo siguiente:

[setupvars.sh] OpenVINO entorno inicializado

Esto completa el procedimiento de compilación para la distribución de código abierto del kit de herramientas OpenVINO™ para el SO Raspbian* y su uso con Barra de cómputo neuronal Intel® 2.

Temas relacionados
Creación de demostraciones de Zoo Open Model en Raspberry Pi*
Flujo de trabajo para Raspberry Pi*
Ncappzoo ahora es compatible con Intel® NCS 2 y el kit de herramientas OpenVINO™
Kit de herramientas OpenVINO™ Open Model Zoo
Optimizar redes para el dispositivo Intel® Neural Compute Stick (Intel® NCS 2)
Foro comunitario y asistencia técnica