[DOCKER] Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (2)

** * Cet article concerne le conteneur Ubuntu (ubuntu_openvino_2020R3.tar) d'AE2100. ** </ font>

emballer

――Cet article explique comment configurer l'ordinateur de bord OKI AI "AE2100".

  • Exécutez un programme de démonstration qui estime la posture d'une personne sur l'AE2100.

introduction

OpenVINO est livré avec des sources d'application Samples et Demos. Parmi ceux-ci, Demos comprend des applications qui sont des exemples d'utilisation du moteur d'inférence pour divers cas d'utilisation (par exemple, estimation de la posture d'une personne, détection d'objet, détection de visage, estimation de la ligne de visée, etc.) Liste des démos du moteur d'inférence

Cette fois, nous allons construire des démos et exécuter un programme (Démo C ++ d'optimisation de la pose humaine) qui estime la posture d'une personne sur l'AE2100. Détails de la démo "Human Pose Optimization"

Le principal changement par rapport à "Exécutons l'exemple OpenVINO sur l'ordinateur de bord OKI AI" AE2100 "(2)" dans cet article, qui est la deuxième fois sur la version Ubuntu, est de savoir comment créer des démos. (OpenVINO2020 ne nécessite plus de modifier build_demos.sh ou ibcpu_extension.so)

De plus, human_pose_estimation_demo prend désormais en charge l'exécution asynchrone, nous comparons donc le comportement de l'exécution synchrone et de l'exécution asynchrone.

environnement

La version conteneur d'AE2100 est "ubuntu_openvino_2020R3.tar". Créez des démos dans l'environnement de développement et exécutez-les sur l'AE2100.

Pour la construction de l'environnement de développement, reportez-vous à "AE2100 Series SDK Instruction Manual-Deep Learning Edition-" (version: 1.2) P.10.

Veuillez préparer 4 Go ou plus de mémoire pour l'environnement de développement. Veuillez noter que si la mémoire est faible, la construction peut s'arrêter au milieu.

On suppose que VcXsrv a été installé sur le PC Windows selon le premier article. Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (1)

Build Demos (côté environnement de développement)

Créez des démos fournies avec OpenVINO dans l'environnement de développement.

Si vous avez installé OpenVINO avec les paramètres par défaut, les démos seront situées à l'emplacement suivant. /opt/intel/openvino/inference_engine/demos

Définissez les variables d'environnement OpenVINO.

# source /opt/intel/openvino/bin/setupvars.sh

Exécutez build_demos.sh pour construire.

# cd /opt/intel/openvino/inference_engine/demos
# ./build_demos.sh

Lorsque vous construisez, le fichier exécutable sera sorti dans le répertoire suivant. /root/omz_demos_build/intel64/Release

Télécharger le fichier modèle (côté environnement de développement)

Ici, le fichier de modèle est téléchargé à l'aide du model_downloader fourni avec OpenVINO.

  • Vous pouvez télécharger le fichier du modèle directement à partir du site suivant avec un navigateur. https://download.01.org/opencv/2020/openvinotoolkit/2020.3/open_model_zoo/models_bin/1/human-pose-estimation-0001/FP16/

Accédez au répertoire où se trouve model_downloader.

# cd /opt/intel/openvino/deployment_tools/tools/model_downloader

Activez l'environnement virtuel python.

  • Lorsqu'un environnement virtuel Python est créé à la page 13 du «Manuel d'instructions du SDK de la série AE2100 - Deep Learning Edition-» (version: 1.2).
# source /opt/intel/openvino/deployment_tools/model_optimizer/venv/bin/activate

Installez le package python requis pour que model_downloader fonctionne.

(venv)# pip3 install -r requirements.in

Définissez les variables d'environnement OpenVINO.

(venv)# source /opt/intel/openvino/bin/setupvars.sh

Sortons une liste de fichiers de modèle pouvant être obtenus avec model_downloader.

(venv)# python3 downloader.py --print_all
action-recognition-0001-decoder
action-recognition-0001-encoder
age-gender-recognition-retail-0013
driver-action-recognition-adas-0002-decoder
driver-action-recognition-adas-0002-encoder
emotions-recognition-retail-0003
face-detection-adas-0001
face-detection-adas-binary-0001
face-detection-retail-0004
face-detection-retail-0005
face-reidentification-retail-0095
(Omis ci-dessous)

Cette fois, je téléchargerai "human-pose-estimation-0001" qui est un modèle d'estimation de posture.

(venv)# python3 downloader.py --name human-pose-estimation-0001  --precisions FP16
(venv)# deactivate

Le fichier de modèle est sorti à l'emplacement suivant. ./intel/human-pose-estimation-0001

Copie de fichier vers AE2100

Ici, déplacez le fichier d'exécution et le fichier modèle préparés dans l'environnement de développement vers l'AE2100.

Commencez par déplacer le fichier exécutable et le modèle créés du côté de l'environnement de développement vers le dossier.

# cd
# mkdir human_pose
# cd human_pose
# cp /root/omz_demos_build/intel64/Release/human_pose_estimation_demo ./
# cp /opt/intel/openvino/deployment_tools/tools/model_downloader/intel/human-pose-estimation-0001/FP16/* ./

Ensuite, téléchargez le fichier vidéo pour lequel la posture est estimée.

# wget https://github.com/intel-iot-devkit/sample-videos/raw/master/one-by-one-person-detection.mp4

Vérifiez le fichier préparé.

# ls
human-pose-estimation-0001.bin  human-pose-estimation-0001.xml  human_pose_estimation_demo  one-by-one-person-detection.mp4

Créez une archive tar.

# cd ..
# tar cvf human_pose.tar  human_pose

Connectez-vous à l'AE2100 avec TeraTerm et transférez le fichier tar ci-dessus créé du côté de l'environnement de développement vers l'AE2100 par glisser-déposer.

Après avoir transféré le fichier tar sur l'AE2100, copiez le fichier tar dans le conteneur.

root@ae2100:~# docker cp human_pose.tar ubuntu-openvino:/root/

Entrez dans le conteneur avec la commande suivante. (Si le conteneur n'est pas démarré, démarrez-le en vous référant à "AE2100 Series SDK Instruction Manual-Deep Learning Edition-" (version: 1.2) P.20.)

root@ae2100:~# docker exec -it ubuntu-openvino /bin/bash

Extrayez le fichier tar à l'intérieur du conteneur.

# cd
# tar xvf human_pose.tar

Installation de packages dépendants (côté AE2100)

  • Si vous l'avez déjà fait, veuillez l'ignorer.

Comme ffmpeg et GTK + sont nécessaires pour exécuter la démo, si vous n'avez pas installé les packages dépendants, installez-les. Vous avez besoin d'une connexion à Internet.

# cd /opt/intel/openvino/install_dependencies
# apt-get clean
# ./install_openvino_dependencies.sh

Exécution de l'optimisation de la pose humaine (côté AE2100)

Enfin, lancez le programme de démonstration "Human Pose Optimization" sur l'AE2100.

Définissez les variables d'environnement OpenVINO dans le conteneur de l'environnement d'exécution.

# source /opt/intel/openvino/bin/setupvars.sh

Puisqu'il est nécessaire d'afficher la fenêtre, veuillez démarrer Xlaunch côté PC Windows conformément à l'article précédent. Spécifiez l'adresse IP du PC Windows qui est la destination d'affichage de la fenêtre.

# export DISPLAY=192.168.100.101:0.0

Maintenant que nous sommes prêts, nous aimerions lancer "Human Pose Optimization".

Dans "Lançons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI" AE2100 "(2)", j'ai comparé le fonctionnement sur le GPU et le HDDL (puce Myriad X 2), mais cette fois, il est synchronisé avec le HDDL. Comparons le traitement et le traitement asynchrone.

Le traitement synchrone traite les images une image à la fois, mais le traitement asynchrone traite plusieurs images en parallèle, de sorte qu'il est prévu que l'exécution par traitement asynchrone sera plus rapide. Dans le traitement asynchrone de ce programme de démonstration, deux trames sont traitées en parallèle.

Vous pouvez basculer entre le traitement synchrone et le traitement asynchrone en appuyant sur la touche Tab de la fenêtre d'exécution. Vous pouvez également appuyer sur la touche Echap pour quitter.

Accédez au répertoire d'exécution.

# cd 
# cd human_pose

La commande suivante estime la posture de la vidéo téléchargée précédemment et le résultat est Win. Il sera affiché sur la pâte.

# ./human_pose_estimation_demo -i one-by-one-person-detection.mp4 -m human-pose-estimation-0001.xml -d HDDL

La figure ci-dessous est la fenêtre des résultats de l'exécution. Si le processus de synchronisation est en cours, SYNC sera affiché à l'écran. Le débit est d'environ 4 ips.

images_article-2_hddl.png

Appuyez ensuite sur la touche Tab de la fenêtre pour passer au traitement asynchrone. Si un traitement asynchrone est en cours d'exécution, ASYNC sera affiché à l'écran. Le débit pour le traitement asynchrone est d'environ 11 ips.

images_article-2_hddl-async.png

Il a été confirmé que le traitement asynchrone est plus rapide que le traitement synchrone. Après avoir confirmé le résultat de l'exécution, appuyez sur la touche Echap pour fermer la fenêtre.

Je voudrais profiter de l'occasion pour présenter comment implémenter le traitement asynchrone à l'avenir.

Sommaire

Cette fois, j'ai fait comment construire Domos et l'exécuter sur AE2100. La prochaine fois, j'essaierai de détecter un objet en connectant une caméra Web à l'AE2100.

Recommended Posts

Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (1)
Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (3)
Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (2)
Installez Ubuntu20.04 sur RaspberryPi 4 et compilez Kubernetes pour exécuter le conteneur
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Run Edge (version Chromium) sur Mac avec Selenium
Comment exécuter NullpoMino 7.5.0 sur la version 64 bits d'Ubuntu 20.04.1