** * Cet article concerne le conteneur Ubuntu (ubuntu_openvino_2020R3.tar) d'AE2100. ** </ font>
――Cet article explique comment configurer l'ordinateur de bord OKI AI "AE2100".
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.
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)
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
Ici, le fichier de modèle est téléchargé à l'aide du model_downloader fourni avec OpenVINO.
Accédez au répertoire où se trouve model_downloader.
# cd /opt/intel/openvino/deployment_tools/tools/model_downloader
Activez l'environnement virtuel python.
# 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
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
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
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.
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.
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.
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