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

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

einpacken

――Dieser Artikel erklärt, wie Sie den OKI AI-Edge-Computer "AE2100" einrichten.

  • Führen Sie ein Demo-Programm aus, das die Haltung einer Person auf dem AE2100 schätzt.

Einführung

OpenVINO enthält Anwendungsquellen für Samples und Demos. Von diesen enthält Demos Anwendungen, die Beispiele für die Verwendung der Inferenz-Engine für verschiedene Anwendungsfälle sind (z. B. Schätzung der Körperhaltung von Personen, Objekterkennung, Gesichtserkennung, Schätzung der Sichtlinie usw.). Liste der Inference Engine-Demos

Dieses Mal werden wir Demos erstellen und ein Programm ausführen (Human Pose Optimization C ++ Demo), das die Haltung einer Person auf dem AE2100 schätzt. Details zur Demo "Human Pose Optimization"

Die wichtigste Änderung von "Lassen Sie uns das OpenVINO-Beispiel auf dem OKI AI-Edge-Computer" AE2100 "(2)" in diesem Artikel ausführen, der zum zweiten Mal in der Ubuntu-Version ausgeführt wird, ist das Erstellen von Demos. (OpenVINO2020 erfordert keine Bearbeitung von build_demos.sh oder ibcpu_extension.so mehr.)

Außerdem unterstützt human_pose_estimation_demo jetzt die asynchrone Ausführung. Daher vergleichen wir das Verhalten der synchronen Ausführung und der asynchronen Ausführung.

Umgebung

Die Containerversion von AE2100 lautet "ubuntu_openvino_2020R3.tar". Erstellen Sie Demos in der Entwicklungsumgebung und führen Sie sie auf dem AE2100 aus.

Informationen zum Aufbau der Entwicklungsumgebung finden Sie in der "SDK-Bedienungsanleitung der AE2100-Serie - Deep Learning Edition-" (Version: 1.2) S.10.

Bitte bereiten Sie 4 GB oder mehr Speicher für die Entwicklungsumgebung vor. Bitte beachten Sie, dass bei geringem Arbeitsspeicher der Build möglicherweise in der Mitte gestoppt wird.

Es wird davon ausgegangen, dass VcXsrv gemäß dem ersten Artikel 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 (Seite der Entwicklungsumgebung)

Erstellen Sie Demos, die mit OpenVINO geliefert werden, in der Entwicklungsumgebung.

Wenn Sie OpenVINO mit den Standardeinstellungen installiert haben, befinden sich Demos am folgenden Speicherort. /opt/intel/openvino/inference_engine/demos

Legen Sie die OpenVINO-Umgebungsvariablen fest.

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

Führen Sie zum Erstellen build_demos.sh aus.

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

Beim Erstellen wird die ausführbare Datei in das folgende Verzeichnis ausgegeben. /root/omz_demos_build/intel64/Release

Modelldatei herunterladen (Seite der Entwicklungsumgebung)

Hier wird die Modelldatei mit dem mit OpenVINO gelieferten model_downloader heruntergeladen.

  • Sie können die Modelldatei mit einem Browser direkt von der folgenden Site herunterladen. https://download.01.org/opencv/2020/openvinotoolkit/2020.3/open_model_zoo/models_bin/1/human-pose-estimation-0001/FP16/

Wechseln Sie in das Verzeichnis, in dem sich model_downloader befindet.

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

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.
# source /opt/intel/openvino/deployment_tools/model_optimizer/venv/bin/activate

Installieren Sie das Python-Paket, das erforderlich ist, damit model_downloader funktioniert.

(venv)# pip3 install -r requirements.in

Legen Sie die OpenVINO-Umgebungsvariablen fest.

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

Lassen Sie uns eine Liste von Modelldateien ausgeben, die mit model_downloader abgerufen werden können.

(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
(Unten weggelassen)

Dieses Mal werde ich "Human-Pose-Estimation-0001" herunterladen, ein Modell für die Haltungsschätzung.

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

Die Modelldatei wird an den folgenden Speicherort ausgegeben. ./intel/human-pose-estimation-0001

Dateikopie nach AE2100

Verschieben Sie hier die in der Entwicklungsumgebung vorbereitete Ausführungsdatei und Modelldatei auf den AE2100.

Verschieben Sie zunächst die ausführbare Datei und das Modell, die auf der Seite der Entwicklungsumgebung erstellt wurden, in den Ordner.

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

Laden Sie als Nächstes die Videodatei herunter, für die die Haltung geschätzt wird.

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

Überprüfen Sie die vorbereitete Datei.

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

Erstellen Sie ein Teerarchiv.

# cd ..
# tar cvf human_pose.tar  human_pose

Melden Sie sich mit TeraTerm beim AE2100 an und übertragen Sie die oben auf der Seite der Entwicklungsumgebung erstellte TAR-Datei per Drag & Drop auf den AE2100.

Kopieren Sie nach dem Übertragen der TAR-Datei auf den AE2100 die TAR-Datei in den Container.

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

Geben Sie den Container mit dem folgenden Befehl ein. (Wenn der Container nicht gestartet wird, starten Sie ihn unter Bezugnahme auf "SDK-Bedienungsanleitung der AE2100-Serie - Deep Learning Edition-" (Version: 1.2) S.20.)

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

Extrahieren Sie die TAR-Datei im Container.

# cd
# tar xvf human_pose.tar

Installation von abhängigen Paketen (AE2100 Seite)

  • Wenn Sie dies bereits getan haben, überspringen Sie es bitte.

Da ffmpeg und GTK + zum Ausführen der Demo erforderlich sind, installieren Sie die abhängigen Pakete, wenn Sie sie nicht installiert haben. Sie benötigen eine Verbindung zum Internet.

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

Durchführung der Optimierung der menschlichen Pose (AE2100-Seite)

Führen Sie abschließend das Demo-Programm "Human Pose Optimization" auf dem AE2100 aus.

Legen Sie die OpenVINO-Umgebungsvariablen im Container der Ausführungsumgebung fest.

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

Da das Fenster angezeigt werden muss, starten Sie Xlaunch auf der Windows-PC-Seite gemäß dem vorherigen Artikel. 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

Jetzt, da wir bereit sind, möchten wir "Human Pose Optimization" ausführen.

In "Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer" AE2100 "(2)" ausführen, habe ich den Betrieb auf der GPU und HDDL (Myriad X 2-Chip) verglichen, diesmal jedoch mit HDDL synchronisiert. Vergleichen wir die Verarbeitung und die asynchrone Verarbeitung.

Bei der synchronen Verarbeitung werden Bilder Frame für Frame verarbeitet, bei der asynchronen Verarbeitung werden jedoch mehrere Frames parallel verarbeitet. Daher wird erwartet, dass die Ausführung durch asynchrone Verarbeitung schneller erfolgt. Bei der asynchronen Verarbeitung in diesem Demoprogramm werden zwei Frames parallel verarbeitet.

Sie können zwischen synchroner und asynchroner Verarbeitung wechseln, indem Sie im Ausführungsfenster die Tabulatortaste drücken. Sie können zum Beenden auch die Esc-Taste drücken.

Wechseln Sie in das Ausführungsverzeichnis.

# cd 
# cd human_pose

Der folgende Befehl schätzt die Haltung des zuvor heruntergeladenen Videos und das Ergebnis ist Win. Es wird auf dem Teig angezeigt.

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

Die folgende Abbildung zeigt das Ausführungsergebnisfenster. Während der Synchronisierung wird SYNC auf dem Bildschirm angezeigt. Der Durchsatz beträgt ca. 4fps.

images_article-2_hddl.png

Drücken Sie dann die Tabulatortaste im Fenster, um zur asynchronen Verarbeitung zu wechseln. Wenn eine asynchrone Verarbeitung durchgeführt wird, wird ASYNC auf dem Bildschirm angezeigt. Der Durchsatz für die asynchrone Verarbeitung beträgt ca. 11 fps.

images_article-2_hddl-async.png

Es wurde bestätigt, dass die asynchrone Verarbeitung schneller ist als die synchrone Verarbeitung. Drücken Sie nach Bestätigung des Ausführungsergebnisses die Esc-Taste, um das Fenster zu schließen.

Ich möchte die Gelegenheit nutzen, um vorzustellen, wie die asynchrone Verarbeitung in Zukunft implementiert werden kann.

Zusammenfassung

Dieses Mal habe ich Domos gebaut und auf AE2100 ausgeführt. Beim nächsten Mal werde ich versuchen, ein Objekt zu erkennen, indem ich eine Webkamera an den AE2100 anschließe.

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 NordVPN im Docker (Windows) Ubuntu-Container aus
Führen Sie Edge (Chromium-Version) auf einem Mac mit Selen aus
So führen Sie NullpoMino 7.5.0 unter Ubuntu 20.04.1 64-Bit-Version aus