Passer au Contenu principal
Base de connaissances pour l'assistance

Compilation croisée de OpenVINO™ toolkit et du plug-in NCS2 à l’aide d’un fichier Docker préconfiguré pour le système d’exploitation Debian* 32 bits

Type de contenu: Installation et configuration   |   ID de l'article: 000057005   |   Dernière révision: 20/02/2025
Notes
  • Toutes les étapes de l’installation sont requises.
  • Ces étapes ont été testées avec des cartes 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 2022.1 de la distribution open source du kit d’outils OpenVINO™.

La boîte à outils OpenVINO™ déploie rapidement des applications et des solutions qui imitent la vision humaine. La boîte à outils étend les charges de travail de vision par ordinateur (CV) sur le matériel Intel® en s’appuyant sur les réseaux neuronaux convolutifs (CNN), ce qui optimise les performances. Ces étapes suivent généralement le plug-in How to Build ARM CPU disponible. Cependant, des modifications spécifiques sont nécessaires pour tout exécuter sur le Raspberry Pi 4*. Ce guide fournit les étapes à suivre pour créer une distribution open source du kit d’outils OpenVINO™ pour le système d’exploitation Raspbian* 32 bits à l’aide d’une méthode de compilation croisée.

Cliquez sur la rubrique pour plus d’informations :

Configuration requise
Note Ce guide suppose que votre carte Raspberry Pi* est opérationnelle avec le système d’exploitation répertorié ci-dessous.

Matériel

  • Raspberry Pi* 4 (Le Raspberry Pi* 3 modèle B+ devrait fonctionner.)
  • Au moins une carte microSD de 16 Go
  • Stick de calcul neuronal Intel® 2
  • Connexion Internet Ethernet ou réseau sans fil compatible
  • Machine hôte avec conteneur docker installé

Système d’exploitation cible

  • Raspbian* Buster, 32 bits
Configuration de votre environnement de génération
Note Ce guide contient des commandes qui doivent être exécutées en tant qu’accès root ou sudo pour s’installer correctement.

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

sudo apt update && sudo apt upgrade -y

Installation du conteneur Docker
Note Vous pouvez suivre les instructions d’installation basées sur la documentation officielle du 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

Référentiel de openvino_contrib cloner
Note La version openvino_contrib et OpenVINO boîte à outils de cet article est basée sur la version 2022.1

Téléchargez le code source et modifiez le fichier de configuration :

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

Accédez au répertoire arm_plugin :

cd openvino_contrib/modules/arm_plugin

Modifiez le contenu du fichier Dockerfile.RPi32_buster comme ci-dessous avec les outils de l’éditeur :

vim dockerfiles/Dockerfile.RPi32_buster

Ajouter «RUN pip install protobuf==3.20.0» à la ligne 114, comme indiqué dans le diagramme ci-dessous.

Screenshot

Enregistrez le fichier modifié.

Modifiez le contenu du fichier arm_cpu_plugin_build.sh comme indiqué ci-dessous avec les outils de l’éditeur :

vim scripts/arm_cpu_plugin_build.sh

Modifiez les lignes 77, 78, 79 et 136 et ajoutez les modifications comme indiqué en gras ci-dessous :

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 \

Enregistrez le fichier modifié.

Cross-Compile OpenVINO™ toolkit dans l’environnement de conteneur Docker

Dans cette étape, nous allons exécuter le script pour télécharger et croiser OpenVINO™ toolkit et d’autres composants comme OpenCV* dans l’environnement de conteneur Docker :

Accédez au répertoire du plug-in du processeur ARM :

cd openvino_contrib/modules/arm_plugin

Créez une image Docker* :

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

Générez le plugin dans le conteneur Docker* :

Le processus de génération est effectué par /arm_cpu_plugin_build.sh script exécuté dans /arm_cpu_plugin répertoire (commande conteneur par défaut à exécuter). Tous les résultats intermédiaires et les artefacts de génération sont stockés dans le répertoire de travail.

Ainsi, on peut monter tout le répertoire de travail pour obtenir tous les résultats stockés en dehors du conteneur :

mkdir build

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

Note

Il existe quelques variables d’environnement qui contrôlent /arm_cpu_plugin_build.sh 'exécution du script.

  • BUILD_JOBS contrôle le nombre de threads pour la compilation simultanée
  • Contrôles BUILD_TYPE Configuration du débogage/publication (version par défaut)
  • UPDATE_SOURCES contrôle la récupération des sources
    • Clean - Ne rechargez pas les sources si elles sont déjà chargées. Il suffit de nettoyer les dossiers de construction (par défaut)
    • Recharger - supprimer toutes les sources chargées et les récupérer à nouveau
    • Check - Ne rechargez pas et ne nettoyez pas les sources
  • WITH_OMZ_DEMO crée des démos de Zoo Open Model C++ (activé par défaut)

Dans le dossier de build , OV_ARM_package.tar.gz est générée

ls build

Transférer le OV_ARM_package.tar.gz sur l’appareil cible (Raspberry Pi 4* 32-bit Buster)
Il existe différentes façons de transférer les paquets sur l’appareil cible (Raspberry Pi 4*), de copier en toute sécurité directement sur l’appareil cible, de copier le package sur une clé USB et de le transférer.
Cet article montrera comment monter une clé USB sur la machine hôte et copier le package de génération sur la clé USB montée.

Insérez la clé USB dans le port USB du système, puis vérifiez le démarrage de l’appareil à l’aide de la commande ci-dessous ;

sudo fdisk -l

Une fois le démarrage de périphérique vérifié, montez le démarrage de périphérique (par exemple /dev/sda) dans /mnt;

sudo mount /dev/sda /mnt

Ensuite, copiez le package OpenVINO sur la clé USB ;

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

Vérification du package de compilation

Après avoir terminé la compilation croisée, et copié avec succès le OV_ARM_package.tar.gz sur l’appareil cible (Raspberry Pi 4*).

Installer l’outil de compilation

sudo apt update
sudo apt install cmake -y

Extrayez le OV_ARM_package.tar.gzpackage

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

Source de la variable d’installation

source ~/openvino_dist/setupvars.sh

Compiler l’exemple de code

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

Pour vérifier que le kit d’outils, Stick de calcul neuronal Intel® 2 et le plug-in Arm* fonctionnent sur votre appareil, procédez comme suit :

  1. Exécutez l’exemple d’application hello_query_device pour confirmer que toutes les bibliothèques se chargent correctement.
  2. Téléchargez un modèle pré-entraîné.
  3. Sélectionnez une entrée pour le réseau neuronal (c’est-à-dire un fichier image).
  4. Configurez le pilote USB Stick de calcul neuronal Intel® 2 Linux*.
  5. Exécutez benchmark_app 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 utilisant le moteur d’inférence et Stick de calcul neuronal Intel® 2. L’une des applications est hello_query_device, qui se trouve dans le répertoire suivant :

~/inference_engine_cpp_samples_build/armv7l/Release

Exécutez les commandes suivantes pour tester hello_query_device :

cd ~/inference_engine_cpp_samples_build/armv7l/Release

./hello_query_device

Il devrait imprimer une boîte de dialogue décrivant les périphériques d’inférence disponibles sur le système.

Téléchargement d’un modèle

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

  • Utilisation de Model Optimizer pour convertir un modèle existant de l’un des frameworks pris en charge au format IR pour le moteur d’inférence. Remarque : le package Model Optimizer n’est pas disponible pour Raspberry Pi*.
  • Utilisez l’outil Model Downloader pour télécharger à partir de Zoo Open Model. Uniquement des modèles pré-entraînés publics.
  • Téléchargez les fichiers IR directement à partir de storage.openvinotookit.org

Pour nos besoins, le téléchargement direct est le plus facile. Utilisez les commandes suivantes pour saisir un modèle de détection de personne-véhicule-vélo :

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

Note La Stick de calcul neuronal Intel® 2 nécessite des modèles optimisés pour le format à virgule flottante de 16 bits, connu sous le nom de FP16. S’il diffère de l’exemple, votre modèle peut nécessiter une conversion à l’aide de Model Optimizer en FP16 sur une machine distincte, car Model Optimizer n’est pas pris en charge sur Raspberry Pi*.

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 trois canaux de couleur. Téléchargez les fichiers nécessaires sur votre carte :

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

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

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

Note Si l’utilisateur actuel n’est pas membre du groupe d’utilisateurs, exécutez la commande suivante et redémarrez votre appareil.

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

Configurez l’environnement OpenVINO™ :

source /home/pi/openvino_dist/setupvars.sh

Pour effectuer une inférence sur le Stick de calcul neuronal Intel® 2, installez les règles USB en exécutant le script install_NCS_udev_rules.sh :

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

Le pilote USB doit être installé correctement maintenant. Si le Stick de calcul neuronal Intel® 2 n’est pas détecté lors de l’exécution des démos, redémarrez votre appareil et réessayez.

Exécution de benchmark_app

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

Cette opération permet d’exécuter l’application avec les options sélectionnées. L’indicateur -d indique au programme le périphérique à utiliser pour l’inférence. La spécification de MYRIAD active le plugin MYRIAD , en utilisant l’Stick de calcul neuronal Intel® 2. Une fois la commande exécutée avec succès, le terminal affiche des statistiques d’inférence. Vous pouvez également utiliser le plug-in CPU pour exécuter l’inférence sur le CPU ARM de votre périphérique Raspberry Pi 4*. Reportez-vous à la spécification du jeu d’opérations du plug-in ARM pour la prise en charge des opérations, car le modèle utilisé dans cet exemple n’est pas pris en charge par le plug-in ARM*.

[ 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


Si l’application s’est exécutée correctement sur votre Intel® NCS2, OpenVINO™ boîte à outils et Stick de calcul neuronal Intel® 2 sont correctement configurés pour une utilisation sur votre appareil.

Variables d’environnement

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

source /home/pi/openvino_dist/setupvars.sh

**(Facultatif)** Les variables d’environnement OpenVINO™ sont supprimées lorsque vous fermez le shell. En option, vous pouvez définir définitivement les variables d’environnement comme suit :

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

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

[setupvars.sh] OpenVINO environment initialized

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

Produits associés

Cet article s'applique aux produits 2.

Avis de non-responsabilité

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.