Création d’un kit d’outils open source OpenVINO™ pour le système d’exploitation Raspbian* et le Stick de calcul neuronal Intel® 2

Documentation

Installation et configuration

000057005

04/14/2022

Notes
  • Toutes les étapes sont nécessaires à l’installation.
  • Ces étapes ont été testées avec la carte Raspberry Pi 4* et Raspbian* Buster, 32 bits.
  • Une connexion Internet est requise pour suivre les étapes de ce guide.
  • L’article a été vérifié à l’aide de la version 2021.3 de la distribution open-source du kit d’outils OpenVINO™.

Le kit d’outils OpenVINO™ déploie rapidement des applications et des solutions qui imitent la vision humaine. Le kit d’outils étend les charges de travail de vision par ordinateur (CV) au matériel Intel® basé sur les réseaux neuronaux convolutifs (CNN), qui maximise les performances. Ces étapes suivent généralement cet article sur Stick de calcul neuronal Intel® 2 et le kit d’outils Open Source OpenVINO™, mais elles incluent des modifications spécifiques pour tout exécuter sur votre carte mère.

Ce guide fournit les étapes de la création d’une distribution open-source du kit d’outils OpenVINO™ pour le système d’exploitation Raspbian* et l’utilisation avec Stick de calcul neuronal Intel® 2 (Intel® NCS2).

NoteLe stick de calcul neuronal d’origine Intel® Movidius™ est également compatible avec le kit d’outils OpenVINO™, et ce périphérique peut être utilisé à la place du Stick de calcul neuronal Intel® 2 dans cet article.

Cliquez sur ou sur la rubrique pour plus d’informations :

Configuration système requise
NoteCe guide suppose que votre carte Raspberry Pi* est en fonctionnement avec un système d’exploitation répertorié ci-dessous.

Matériel

  • Raspberry Pi* 4 (Raspberry Pi* 3 Modèle B+ devrait fonctionner.)
  • Au moins une carte microSD de 8 Go
  • Stick de calcul neuronal Intel® 2
  • Connexion Internet Ethernet ou réseau sans fil compatible
  • Carte d’alimentation DC dédiée

Système d’exploitation cible

  • Raspbian* Stretch, 32 bits

  • Buster Raspbian*, 32 bits
Configurer votre environnement de compilation
NoteCe guide contient les commandes qui doivent être exécutées comme accès racine ou sudo pour s’installer correctement.

Assurez-vous que le logiciel de votre appareil est à jour :

sudo apt update && sudo apt upgrade -y

Certaines des dépendances du kit d’outils ne possèdent pas de binaires ARMv7 pré-construits et doivent être construits à partir de la source. Cela permet d’augmenter considérablement le temps de construction par rapport aux autres plateformes. La préparation de la construction du kit d’outils nécessite les étapes suivantes :

Installer des outils de construction

sudo apt install build-essential

Installer CMake* à partir de la source

Récupérez CMake à partir de la page de version de Kitware* GitHub*, extrayez-le et entrez le dossier extrait :

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

Exécutez le script boots script pour installer des dépendances supplémentaires commencent la compilation :

./bootstrap

make -j4

sudo make install

NoteLe nombre d’emplois que la commande utilise peut être ajusté avec l’indicateur -j . Il est recommandé de définir le nombre de tâches au nombre de cœurs sur votre plateforme.

Vous pouvez vérifier le nombre de cœurs sur votre système à l’aide de la commande :

grep -c ^processor /proc/cpuinfo

Sachez que le réglage du nombre trop élevé peut entraîner des dépassements de mémoire, ce qui entraîne un échec de la construction. Si le temps le permet, nous vous recommandons d’exécuter 1 à 2 tâches.

Installer OpenCV à partir de la source

Intel® OpenVINO™ kit d’outils utilise la puissance d’OpenCV* pour accélérer l’inférence basée sur la vision. Alors que le processus CMake pour le kit d’outils Intel® OpenVINO™ télécharge OpenCV* si aucune version n’est installée pour les plateformes prises en charge, aucune version spécifique n’existe pour les plateformes ARMv7. En tant que tel, vous devez créer OpenCV à partir de la source.

OpenCV nécessite des dépendances supplémentaires. Installez les éléments suivants depuis votre gestionnaire de packages :

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

NoteIl est recommandé de spécifier la dernière succursale ou étiquette stable lors du clonage à partir de la page GitHub OpenCV* au lieu de clonage direct de la branche maître par défaut.

Clonez le référentiel sur la page OpenCV* GitHub, préparez l’environnement de build et construisez :

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

Télécharger le code source et installer les dépendances
NoteIl est recommandé de spécifier la dernière succursale ou étiquette stable lors du clonage à partir de la page GitHub openvinkitkit au lieu de clonage direct de la branche maître par défaut.

La version open-source du kit d’outils Intel® OpenVINO™ est disponible sur GitHub. Le dossier référentiel est intitulé Openvino.

cd ~/

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

Le référentiel possède également des sous-modèles qui doivent être récupérés :

cd ~/openvino

git submodule update --init --recursive

Intel® OpenVINO™ kit d’outils a un certain nombre de dépendances de construction. Le script install_build_dependencies.sh les récupérer pour vous. En cas de problèmes lors de la tentative d’exécution du script, vous devez installer chaque dépendance individuellement.

Exécutez le script pour installer les dépendances du kit d’outils Intel® OpenVINO™ :

sh ./install_build_dependencies.sh

Si le script a terminé correctement, vous êtes prêt à créer le kit d’outils. Si quelque chose a échoué à ce stade, assurez-vous que vous installez toutes les dépendances répertoriées et réessayez.

Bâtiment

La première étape pour commencer la compilation est de savoir où se trouve le système avec OpenCV. Utilisez la commande suivante :

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

Pour créer l’emballage de l’API Python, installez tous les packages supplémentaires répertoriés dans le fichier /inference-engine/ie_bridges/python/requirements.txt :

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

pip3 install -r requirements.txt

Note

Utilisez l' -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

Utilisez l' -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Utilisez l' -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Utilisez l' -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

Le kit d’outils utilise un système CMake Building pour guider et simplifier le processus de construction. Pour créer à la fois le moteur d’inférence et le plugin MYRIAD pour Stick de calcul neuronal Intel® 2, utilisez les commandes suivantes :

NoteRetirez tous les tirets arrière (\) lors de l’exécution des commandes ci-dessous. Les tirets arrière sont utilisés pour indiquer que ces commandes ne sont pas séparées.

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 la commande de marque échoue en raison d’un problème avec une bibliothèque OpenCV, assurez-vous que vous avez informé le système de l’emplacement de votre installation d’OpenCV. Si la construction se termine à ce stade, Intel® OpenVINO™ kit d’outils est prêt à l’emploi. Il convient de noter que les builds sont placés dans le dossier ~/openvino/inference-engine/bin/armv7l/Release .

Vérifier l’installation

Après avoir terminé avec succès la construction du moteur d’inférence, vous devez vérifier que tout est configuré correctement. Pour vérifier que le kit d’outils et Stick de calcul neuronal Intel® 2 fonctionner sur votre appareil, suivez les étapes suivantes :

  1. Exécutez l’exemple de programme object_detection_sample_ssd pour confirmer que toutes les bibliothèques se chargent correctement.
  2. Téléchargez un modèle formé.
  3. Sélectionnez une entrée pour le réseau neuronal.
  4. Configurez le pilote USB Stick de calcul neuronal Intel® 2 Linux*.
  5. Exécutez object_detection_sample_ssd avec le modèle et l’entrée sélectionnés.

Exemples d’applications

Le kit d’outils Intel® OpenVINO™ comprend des exemples d’applications qui utilisent le moteur d’inférence et le Stick de calcul neuronal Intel® 2. Un des programmes est object_detection_sample_ssd, qui se trouve dans :

~/openvino/bin/armv7l/Release

Exécutez les commandes suivantes pour tester object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

Il doit imprimer une boîte de dialogue d’aide, décrivant les options disponibles pour le programme.

Télécharger un modèle

Le programme a besoin d’un modèle pour passer l’entrée. Vous pouvez obtenir des modèles de kit d’outils Intel® OpenVINO™ au format IR en :

  • Utiliser l’optimiseur de modèle pour convertir un modèle existant d’un des cadres pris en charge en format IR pour le moteur d’inférence
  • Utiliser l’outil de téléchargement de modèles pour le téléchargement depuis le zoo Open Model
  • Téléchargez les fichiers IR directement à partir de download.01.org

À nos fins, le téléchargement direct est le plus simple. Utilisez les commandes suivantes pour récupérer un modèle 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

NoteLa Stick de calcul neuronal Intel® 2 nécessite des modèles optimisés pour le format en virgule flottante de 16 bits, connu sous le nom de FP16. Votre modèle, s’il diffère de l’exemple, peut nécessiter une conversion à l’aide de l’optimiseur de modèle pour FP16.

Entrée pour le réseau neuronal

Le dernier élément nécessaire est l’entrée pour le réseau neuronal. Pour le modèle que nous avons téléchargé, vous avez besoin d’une image avec 3 canaux de couleur. Téléchargez les fichiers nécessaires sur votre carte :

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

Configuration du pilote USB Linux Stick de calcul neuronal Intel® 2

Certaines règles udev doivent être ajoutées pour permettre au système de reconnaître Intel® NCS2 les périphériques USB.

NoteSi l’utilisateur actuel n’est pas membre du groupe d’utilisateurs, exécutez la commande suivante et redémarrez votre périphérique.

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

Set up the OpenVINO™ environnement :

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

To perform inférence sur le Stick de calcul neuronal Intel® 2, installez les règles USB en exécutant le 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.

Exécution deobject_detection_sample_ssd

Lorsque le modèle est téléchargé, une image d’entrée est disponible et le Stick de calcul neuronal Intel® 2 est branché sur un port USB, utilisez la commande suivante pour exécuter le 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

Cela exécute l’application avec les options sélectionnées. L’indicateur -d indique au programme quel périphérique utiliser pour l’inférence. -MYRIAD active le plugin MYRIAD , en utilisant le Stick de calcul neuronal Intel® 2. Après l’exécution réussie de la commande, le terminal affiche les statistiques d’inférence et produit une sortie d’image.

[ 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


Utilisez le programme d’affichage d’images par défaut Raspbian* pour ouvrir la sortie d’image résultante :

gpicview out_0.bmp

Si l’application a fonctionné correctement sur votre Intel® NCS2, OpenVINO™ kit d’outils et les Stick de calcul neuronal Intel® 2 sont configurés correctement pour être utilisés sur votre appareil.

Vérification de la liaison du module nGraph sur Python

Exécutez la démo object_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

Si l’application a fonctionné correctement sur votre Intel® NCS2, le module nGraph est lié correctement au python.

Variables environnementales

Vous devez mettre à jour plusieurs variables environnementales avant de pouvoir compiler et exécuter OpenVINO les applications du kit d’outils. Exécutez le script suivant pour définir temporairement les variables environnementales :

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

***(facultatif)** Les variables environnementales OpenVINO sont supprimées lorsque vous fermez le shell. En option, vous pouvez définir de manière permanente les variables environnementales comme suit :

« source /home/pi/openvino_dist/bin/setup faits.sh » >> ~/.hdr

Pour tester votre modification, ouvrez un nouveau terminal. Vous verrez ce qui suit :

[setupvars.sh] OpenVINO environnement initialisé

Cela termine la procédure de construction de la distribution open-source du kit d’outils OpenVINO™ pour le système d’exploitation Raspbian* et l’utilisation avec Stick de calcul neuronal Intel® 2.

Rubriques connexes
Créer des démos de Zoo Open Model sur Raspberry Pi*
Flux de travail pour Raspberry Pi*
Le ncappzoo prend désormais en charge Intel® NCS 2 et le kit d’outils OpenVINO™
zoo Open Model OpenVINO™ kit d’outils
Optimiser les réseaux pour le périphérique Intel® Neural Compute Stick (Intel® NCS 2)
Forum de la communauté et assistance technique