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

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

emballer

――Cet article est une explication de la configuration de l'ordinateur de bord OKI AI "AE2100". --Connectez une caméra Web à l'AE2100 pour effectuer une détection d'objets en temps réel.

introduction

"Pouvez-vous identifier une personne avec un masque de chien? Ordinateur de bord AI" AE2100 "grande expérience" est disponible sur YouTube. Jetez un coup d'oeil s'il vous plait! !! Cette fois, je voudrais exécuter un exemple de programme qui détecte les objets de la même manière que le contenu de cette vidéo.

Cet article, qui est la troisième fois dans la version Ubuntu, a presque le même contenu que "Lançons l'exemple OpenVINO sur l'ordinateur de bord OKI AI" AE2100 "(3)".

environnement

La version conteneur d'AE2100 est "ubuntu_openvino_2020R3.tar".

Ce dont vous avez besoin cette fois, c'est une caméra Web avec une connexion USB 2.0. Dans cet article, nous avons utilisé "Logitech HD Webcam C270n" pour vérifier le fonctionnement.

network-ae2100-camera.png

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

Construction de démos (environnement de développement)

[Voir l'article précédent (Ubuntu version 2nd). ](Https://qiita.com/TWAT/items/e7cd34f8c97f895c39b2#demos%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E9%96%8B%E7% 99% BA% E7% 92% B0% E5% A2% 83% E5% 81% B4)

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

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).
# cd /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader
# source /opt/intel/openvino/bin/setupvars.sh
# source /opt/intel/openvino/deployment_tools/model_optimizer/venv/bin/activate

Téléchargez le fichier modèle. Le modèle utilisé cette fois est un modèle appelé "ssd_mobilenet_v2" dans lequel des données MS COCO (80 classes) ont été apprises.

(venv)# python3 downloader.py --name ssd_mobilenet_v2_coco

La conversion IR du fichier de modèle téléchargé est effectuée.

(venv)# python3 converter.py --name ssd_mobilenet_v2_coco --precisions FP16

Déplacez les fichiers requis pour l'exécution dans le dossier.

# cd 
# mkdir  object_detection_demo 
# cd  object_detection_demo 
# cp /root/omz_demos_build/intel64/Release/object_detection_demo_ssd_async ./
# cp /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/public/ssd_mobilenet_v2_coco/FP16/* ./

Préparez également un fichier d'étiquette à afficher au moment de la reconnaissance. Créez un fichier avec le nom "ssd_mobilenet_v2_coco.labels" et écrivez le contenu suivant. Il y a 91 lignes, mais le nombre de classes reconnues est de 80 classes hors "background" et "no_label".

ssd_mobilenet_v2_coco.labels


background
person
bicycle
car
motorcycle
airplane
bus
train
truck
boat
traffic_light
fire_hydrant
no_label
stop_sign
parking_meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
no_label
backpack
umbrella
no_label
no_label
handbag
tie
suitcase
frisbee
skis
snowboard
sports_ball
kite
baseball_bat
baseball_glove
skateboard
surfboard
tennis_racket
bottle
no_label
wine_glass
cup
fork
knife
spoon
bowl
banana
apple
sandwich
orange
broccoli
carrot
hot_dog
pizza
donut
cake
chair
couch
potted_plant
bed
no_label
dining_table
no_label
no_label
toilet
no_label
tv
laptop
mouse
remote
keyboard
cell_phone
microwave
oven
toaster
sink
refrigerator
no_label
book
clock
vase
scissors
teddy_bear
hair_drier
toothbrush

Vérifiez le fichier préparé.

# ls
object_detection_demo_ssd_async  ssd_mobilenet_v2_coco.mapping
ssd_mobilenet_v2_coco.bin        ssd_mobilenet_v2_coco.xml
ssd_mobilenet_v2_coco.labels     thread.info

Durcir en fichier tar.

# cd ..
# tar cvf object_detection_demo.tar object_detection_demo

Connectez-vous à AE2100 avec TeraTerm et transférez le fichier tar ci-dessus vers AE2100 par glisser-déposer.

Paramètres de la caméra Web (côté AE2100)

Connectez la caméra Web au port USB de l'AE2100. Ensuite, connectez-vous au système d'exploitation hôte de l'AE2100 avec TeraTerm et vérifiez si le périphérique est reconnu avec la commande lsusb. Si vous pouvez le reconnaître, il devrait apparaître comme "Bus 001 Device 005: ID 046d: 0825 Logitech, Inc. Webcam C270".

root@ae2100:~# lsusb
Bus 001 Device 002: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 001 Device 004: ID 0403:6014 Future Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 003: ID 03e7:f63b Intel
Bus 004 Device 002: ID 03e7:f63b Intel
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 2c42:5114
Bus 001 Device 005: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Créez / dev / video0.

root@ae2100:~# mknod /dev/video0 c 81 0
root@ae2100:~# chmod 666 /dev/video0
root@ae2100:~# chown root.video /dev/video0

Démarrez le conteneur. À ce stade, ajoutez "--device = / dev / video0: / dev / video0" à l'argument afin que la caméra Web puisse être utilisée à partir du conteneur.

root@ae2100:~# docker run --device /dev/dri --device=/dev/video0:/dev/video0 --device=/dev/ion:/dev/ion -v /var/tmp:/var/tmp --name ubuntu-openvino -d ubuntu:openvino_2020R3 /sbin/init

Copie du fichier (côté AE2100)

Copiez le fichier de l'hôte dans le conteneur.

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

Entrez dans le conteneur.

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

Extraire le goudron.

# cd
# tar xvf  object_detection_demo.tar

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

[Voir l'article précédent (Ubuntu version 2nd). ](Https://qiita.com/TWAT/items/e7cd34f8c97f895c39b2#%E4%BE%9D%E5%AD%98%E3%83%91%E3%83%83%E3%82%B1%E3%83 % BC% E3% 82% B8% E3% 81% AE% E3% 82% A4% E3% 83% B3% E3% 82% B9% E3% 83% 88% E3% 83% BC% E3% 83% ABae2100 % E5% 81% B4)

Exécution de object_detection_demo_ssd_async (côté AE2100)

Définissez les variables d'environnement OpenVINO.

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

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 vous êtes prêt, essayez d'exécuter "object_detection_demo_ssd_async".

  • Veuillez démarrer Xlaunch sur le côté PC Windows à l'avance conformément au premier article.
# cd /root/object_detection_demos
# ./object_detection_demo_ssd_async -i cam -m ssd_mobilenet_v2_coco.xml -d HDDL

Lorsque l'animal en peluche a été projeté, il a été classé comme "ours en peluche".

teddy-bear.png

Quand j'ai réfléchi au vase que j'avais, il a été classé comme "vase". Tu as raison!

vase.png

Appuyez sur la touche "Tab" de la fenêtre pour basculer entre le traitement asynchrone (Async) et le traitement synchrone (Sync).

Pour le traitement asynchrone (Async), la fréquence d'images d'exécution est améliorée.

Appuyez sur la touche "Echap" pour terminer le processus.

Sommaire

Cette fois, j'ai connecté une caméra Web à l'AE2100 et essayé la détection d'objets en temps réel sur la version Ubuntu.

Depuis AE2100 / OpenVINO comprend divers exemples d'applications Essayez-le!

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
Run Edge (version Chromium) sur Mac avec Selenium
Installez la dernière version de Jenkins sur Ubuntu 16
Comment exécuter NullpoMino 7.5.0 sur la version 64 bits d'Ubuntu 20.04.1