[DOCKER] Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (3) ausführen.

** * Dieser Artikel ist für den Ubuntu-Container (ubuntu_openvino_2020R3.tar) von AE2100. ** </ font>

einpacken

――Dieser Artikel enthält eine Erläuterung der Einstellungen für den OKI AI-Edge-Computer "AE2100".

  • Schließen Sie eine Webkamera an den AE2100 an, um eine Objekterkennung in Echtzeit durchzuführen.

Einführung

"Können Sie eine Person mit einer Hundemaske identifizieren? AI Edge Computer" AE2100 "Great Experiment" ist auf YouTube verfügbar. Guck dir das mal bitte an! !! Dieses Mal möchte ich ein Beispielprogramm ausführen, das Objekte auf die gleiche Weise wie den Inhalt dieses Videos erkennt.

Dieser Artikel, der zum dritten Mal in der Ubuntu-Version erscheint, hat fast den gleichen Inhalt wie "Lassen Sie uns das OpenVINO-Beispiel auf dem OKI AI-Edge-Computer" AE2100 "(3) ausführen".

Umgebung

Die Containerversion von AE2100 lautet "ubuntu_openvino_2020R3.tar".

Was Sie diesmal brauchen, ist eine Webkamera mit USB 2.0-Verbindung. In diesem Artikel haben wir "Logitech HD Webcam C270n" verwendet, um den Vorgang zu überprüfen.

network-ae2100-camera.png

Es wird davon ausgegangen, dass VcXsrv gemäß dem ersten Artikel der Ubuntu-Version auf dem Windows-PC installiert wurde. Lassen Sie uns das OpenVINO-Beispielprogramm auf der Ubuntu-Containerversion (1) des OKI AI-Edge-Computers "AE2100" ausführen.

Demos erstellen (Entwicklungsumgebung)

[Siehe den vorherigen Artikel (Ubuntu Version 2). ](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)

Modelldatei herunterladen (Entwicklungsumgebung)

Aktivieren Sie die virtuelle Python-Umgebung.

  • Wenn eine virtuelle Python-Umgebung auf Seite 13 der "AE2100 Series SDK-Bedienungsanleitung - Deep Learning Edition-" (Version: 1.2) erstellt wird.
# 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

Laden Sie die Modelldatei herunter. Das diesmal verwendete Modell ist ein Modell namens "ssd_mobilenet_v2", in dem MS COCO-Daten (80 Klassen) gelernt wurden.

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

Die IR-Konvertierung der heruntergeladenen Modelldatei wird durchgeführt.

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

Verschieben Sie die für die Ausführung erforderlichen Dateien in den Ordner.

# 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/* ./

Bereiten Sie außerdem eine Etikettendatei vor, die zum Zeitpunkt der Erkennung angezeigt werden soll. Erstellen Sie eine Datei mit dem Namen "ssd_mobilenet_v2_coco.labels" und schreiben Sie den folgenden Inhalt. Es gibt 91 Zeilen, aber die Anzahl der erkannten Klassen beträgt 80 Klassen ohne "Hintergrund" und "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

Überprüfen Sie die vorbereitete Datei.

# 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

Auf Teerfeile härten.

# cd ..
# tar cvf object_detection_demo.tar object_detection_demo

Melden Sie sich mit TeraTerm bei AE2100 an und übertragen Sie die obige TAR-Datei per Drag & Drop auf AE2100.

Webkameraeinstellungen (AE2100 Seite)

Schließen Sie Ihre Webkamera an den USB-Anschluss des AE2100 an. Melden Sie sich anschließend mit TeraTerm beim Host-Betriebssystem des AE2100 an und überprüfen Sie, ob das Gerät mit dem Befehl lsusb erkannt wird. Wenn Sie es erkennen können, sollte es als "Bus 001-Gerät 005: ID 046d: 0825 Logitech, Inc. Webcam C270" ausgegeben werden.

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

Erstelle / dev / video0.

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

Starten Sie den Container. Fügen Sie zu diesem Zeitpunkt "--device = / dev / video0: / dev / video0" zum Argument hinzu, damit die Webkamera aus dem Container verwendet werden kann.

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

Kopie der Datei (AE2100 Seite)

Kopieren Sie die Datei vom Host in den Container.

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

Betritt den Container.

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

Teer extrahieren.

# cd
# tar xvf  object_detection_demo.tar

Installation von abhängigen Paketen (AE2100 Seite)

[Siehe den vorherigen Artikel (Ubuntu Version 2). ](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)

Ausführung von object_detection_demo_ssd_async (AE2100-Seite)

Legen Sie die OpenVINO-Umgebungsvariablen fest.

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

Geben Sie die IP-Adresse des Windows-PCs an, der das Ziel für die Fensteranzeige ist.

# export DISPLAY=192.168.100.101:0.0

Versuchen Sie nun, "object_detection_demo_ssd_async" auszuführen, nachdem Sie bereit sind.

  • Bitte starten Sie Xlaunch gemäß dem ersten Artikel im Voraus auf der Windows-PC-Seite.
# cd /root/object_detection_demos
# ./object_detection_demo_ssd_async -i cam -m ssd_mobilenet_v2_coco.xml -d HDDL

Als das Stofftier projiziert wurde, wurde es als "teddy_bear" klassifiziert.

teddy-bear.png

Als ich die Vase reflektierte, die ich hatte, wurde sie als "Vase" klassifiziert. Du hast recht!

vase.png

Drücken Sie die Tabulatortaste im Fenster, um zwischen asynchroner Verarbeitung (Async) und synchroner Verarbeitung (Sync) zu wechseln.

Bei der asynchronen Verarbeitung (Async) wird die Ausführungsrahmenrate verbessert.

Drücken Sie die Taste "Esc", um den Vorgang abzuschließen.

Zusammenfassung

Dieses Mal habe ich eine Webkamera an den AE2100 angeschlossen und versucht, die Objekterkennung in Echtzeit unter der Ubuntu-Version durchzuführen.

Da AE2100 / OpenVINO verschiedene Beispielanwendungen enthält Versuch es bitte!

Recommended Posts

Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (1) ausführen.
Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (3) ausführen.
Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (2) ausführen.
Installieren Sie Ubuntu20.04 auf RaspberryPi 4 und erstellen Sie Kubernetes, um den Container auszuführen
Führen Sie Edge (Chromium-Version) auf einem Mac mit Selen aus
Installieren Sie die neueste Version von Jenkins unter Ubuntu 16
So führen Sie NullpoMino 7.5.0 unter Ubuntu 20.04.1 64-Bit-Version aus