** * Cet article concerne le conteneur Ubuntu (ubuntu_openvino_2020R3.tar) d'AE2100. ** </ font>
――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.
"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)".
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.
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)
[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)
Activez l'environnement virtuel Python.
# 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.
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
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
[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)
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".
# 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".
Quand j'ai réfléchi au vase que j'avais, il a été classé comme "vase". Tu as raison!
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.
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