Aufbau eines Open-Source-OpenVINO™-Toolkits für Raspbian* OS und Intel® Neural Compute Stick 2

Dokumentation

Installation und Setup

000057005

14.04.2022

Notizen
  • Bei der Installation sind alle Schritte erforderlich.
  • Diese Schritte wurden mit Raspberry Pi 4* Mainboard und Raspbian* Buster, 32-Bit, getestet.
  • Um die in dieser Anleitung angegebenen Schritte durchzuführen, ist eine Internetverbindung erforderlich.
  • Der Artikel wurde mit der 2021.3-Version der Open-Source-Distribution des OpenVINO™ Toolkits verifiziert.

Das OpenVINO™-Toolkit stellt schnell Anwendungen und Lösungen bereit, die das menschliche Sehvermögen nachahmen. Das Toolkit erweitert Computer Vision (CV)-Workloads auf Intel® Hardware, die auf Convolutional Neural Networks (CNN) basiert und die Leistung maximiert. Diese Schritte folgen im Allgemeinen diesem Artikel über Intel® Neural Compute Stick 2 und Open Source OpenVINO™ Toolkit, enthalten jedoch spezifische Änderungen, damit alles auf Ihrem Mainboard läuft.

Dieser Leitfaden bietet Schritte zum Aufbau einer Open-Source-Distribution des OpenVINO™ Toolkits für Raspbian* BS und zur Verwendung mit Intel® Neural Compute Stick 2 (Intel® NCS2).

HinweisDer ursprüngliche Intel® Movidius™ Neural Compute Stick ist auch mit dem OpenVINO™ Toolkit kompatibel, und dieses Gerät kann anstelle der Intel® Neural Compute Stick 2 in diesem Artikel verwendet werden.

Klicken Sie auf oder das Thema, um weitere Informationen anzuzeigen:

Systemvoraussetzungen
HinweisDieser Leitfaden nimmt an, dass Ihr Raspberry Pi* Mainboard mit einem unten aufgeführten Betriebssystem aktiviert ist.

Hardware

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ sollte funktionieren.)
  • Mindestens eine 8-GB-microSD-Karte
  • Intel® Neural Compute Stick 2
  • Ethernet-Internetverbindung oder kompatibles drahtloses Netzwerk
  • Dediziertes DC-Netzteil

Vorgesehenes Betriebssystem

  • Raspbian* Stretch, 32-Bit

  • Raspbian* Buster, 32-Bit
Einrichten Ihrer Build-Umgebung
HinweisDieser Leitfaden enthält Befehle, die als Root- oder S ascii-Zugriff ausgeführt werden müssen, um sie korrekt zu installieren.

Stellen Sie sicher, dass Ihre Gerätesoftware auf dem neuesten Stand ist:

sudo apt update && sudo apt upgrade -y

Einige der Abhängigkeiten des Toolkits haben keine vorgebauten ARMv7-Binärdateien und müssen von der Quelle aus erstellt werden. Dies kann die Build-Zeit im Vergleich zu anderen Plattformen erheblich erhöhen. Die Vorbereitung auf den Aufbau des Toolkits erfordert die folgenden Schritte:

Installation von Build-Tools

sudo apt install build-essential

Installation von CMake* von der Quelle aus

Holen Sie CMake von der Kitware* GitHub* Versionsseite, extrahieren Sie sie und geben Sie den extrahierten Ordner ein:

cd ~/

wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4.tar.gz

tar xvzf cmake-3.14.4.tar.gz

cd ~/cmake-3.14.4

Führen Sie das Bootstrap-Skript aus, um zusätzliche Abhängigkeiten zu installieren, die mit dem Build beginnen:

./bootstrap

make -j4

sudo make install

HinweisDie Anzahl der Jobs, die der Make-Befehl verwendet, kann mit der Kennzeichnung -j angepasst werden. Es wird empfohlen, die Anzahl der Jobs auf die Anzahl der Kerne auf Ihrer Plattform zu setzen.

Sie können die Anzahl der Kerne in Ihrem System überprüfen, indem Sie den folgenden Befehl verwenden:

grep -c ^processor /proc/cpuinfo

Beachten Sie, dass das Einstellen der zu hohen Zahl zu Speicherüberläufen führen kann, wenn der Build nicht auftritt. Wenn die Zeit dies zulässt, wird empfohlen, 1 bis 2 Jobs auszuführen.

Installation von OpenCV aus der Quelle

Das Intel® OpenVINO™ Toolkit nutzt die Leistung von OpenCV*, um vision-basierte Inferenzierung zu beschleunigen. Während der CMake-Prozess für das Intel® OpenVINO™ Toolkit OpenCV* herunterlädt, wenn keine Version für unterstützte Plattformen installiert ist, gibt es für ARMv7-Plattformen keine spezifische Version. Als solches müssen Sie OpenCV aus der Quelle erstellen.

OpenCV erfordert einige zusätzliche Abhängigkeiten. Installieren Sie Folgendes über Ihren Paketmanager:

sudo apt install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libatlas-base-dev python3-scipy 

HinweisEs wird empfohlen, beim Klonen von Repository von OpenCV* GitHub-Seite den neuesten und stabilen Zweig oder Tag anzugeben, anstatt standardmäßig den Master-Branch direkt zu klonen.

Klonen Sie das Repository von der OpenCV* GitHub-Seite, bereiten Sie die Build-Umgebung vor und erstellen Sie:

cd ~/

git clone --depth 1 --branch 4.5.2-openvino https://github.com/opencv/opencv.git

cd opencv && mkdir build && cd build

cmake –DCMAKE_BUILD_TYPE=Release –DCMAKE_INSTALL_PREFIX=/usr/local ..

make -j4

sudo make install

Herunterladen des Quellcodes und Installation von Abhängigkeiten
HinweisEs wird empfohlen, beim Klonen des Repositorys von openvinotoolkit GitHub-Seite den neuesten und stabilen Branch oder Tag anzugeben, anstatt standardmäßig direkt den Master-Branch zu klonen.

Die Open-Source-Version des Intel® OpenVINO™ Toolkits ist über GitHub verfügbar. Der Repository-Ordner trägt den Titel openvino.

cd ~/

git clone --depth 1 --branch 2021.3 https://github.com/openvinotoolkit/openvino.git

Das Repository verfügt auch über Untermodule, die abgerufen werden müssen:

cd ~/openvino

git submodule update --init --recursive

Das Intel® OpenVINO™ Toolkit verfügt über eine Reihe von Build-Abhängigkeiten. Das install_build_dependencies.sh Skript holt sie für Sie ab. Wenn beim Ausführen des Skripts Probleme auftreten, müssen Sie jede Abhängigkeit einzeln installieren.

Führen Sie das Skript aus, um die Abhängigkeiten für das Intel® OpenVINO™ Toolkit zu installieren:

sh ./install_build_dependencies.sh

Wenn das Skript erfolgreich abgeschlossen wurde, sind Sie bereit, das Toolkit zu erstellen. Falls an dieser Stelle ein Fehler aufgetreten ist, stellen Sie sicher, dass Sie aufgelistete Abhängigkeiten installieren und es erneut versuchen.

Gebäude

Der erste Schritt zum Beginn des Builds ist das System, auf dem sich die Installation von OpenCV befindet. Verwenden Sie den folgenden Befehl:

export OpenCV_DIR=/usr/local/lib/cmake/opencv4

Um den Python API-Wrapper zu erstellen, installieren Sie alle zusätzlichen Pakete, die in der /inference-engine/ie_bridges/python/requirements.txt -Datei aufgeführt sind:

cd ~/openvino/inference-engine/ie_bridges/python/

pip3 install -r requirements.txt

Hinweis

Verwenden Sie die -DENABLE_PYTHON=ON option. To specify an exact Python version, use the following options:

-DPYTHON_EXECUTABLE=`which python3.7` \

-DPYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \

-DPYTHON_INCLUDE_DIR=/usr/include/python3.7

Verwenden Sie die -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Verwenden Sie die -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Verwenden Sie die -DCMAKE_INSTALL_PREFIX={BASE_dir}/openvino_dist to specify the directory for the CMake building to build in:

for example, -DCMAKE_INSTALL_PREFIX=/home/pi/openvino_dist

Das Toolkit verwendet ein CMake-Gebäudesystem, um den Bauprozess zu leiten und zu vereinfachen. Um sowohl die Inferenz-Engine als auch das MYRIAD-Plugin für Intel® Neural Compute Stick 2 zu erstellen, verwenden Sie die folgenden Befehle:

HinweisEntfernen Sie alle Backslashes (\), wenn Sie die folgenden Befehle ausführen. Die Backslashes werden verwendet, um zu informieren, dass diese Befehle nicht getrennt werden.

cd ~/openvino

mkdir build && cd build

cmake -DCMAKE_BUILD_TYPE=Release \

-DCMAKE_INSTALL_PREFIX=/home/pi/openvino_dist \

-DENABLE_MKL_DNN=OFF \

-DENABLE_CLDNN=OFF \

-DENABLE_GNA=OFF \

-DENABLE_SSE42=OFF \

-DTHREADING=SEQ \

-DENABLE_OPENCV=OFF \

-DNGRAPH_PYTHON_BUILD_ENABLE=ON \

-DNGRAPH_ONNX_IMPORT_ENABLE=ON \

-DENABLE_PYTHON=ON \

-DPYTHON_EXECUTABLE=$(which python3.7) \

-DPYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \

-DPYTHON_INCLUDE_DIR=/usr/include/python3.7 \

-DCMAKE_CXX_FLAGS=-latomic ..

make -j4

sudo make install

Wenn der Make-Befehl aufgrund eines Problems mit einer OpenCV-Bibliothek fehlschlägt, stellen Sie sicher, dass Sie dem System gesagt haben, auf dem Sich Ihre Installation von OpenCV befindet. Wenn das Build zu diesem Zeitpunkt abgeschlossen ist, kann das Intel® OpenVINO™ Toolkit ausgeführt werden. Beachten Sie, dass Builds im Ordner ~/openvino/inference-engine/bin/armv7l/Release platziert werden.

Verifizierung der Installation

Nachdem Sie den Inferenz-Engine-Build erfolgreich abgeschlossen haben, sollten Sie überprüfen, ob alles korrekt eingerichtet ist. Führen Sie die folgenden Schritte durch, um zu überprüfen, ob das Toolkit und Intel® Neural Compute Stick 2 auf Ihrem Gerät funktionieren:

  1. Führen Sie das Beispielprogramm object_detection_sample_ssd aus , um sicherzustellen, dass alle Bibliotheken korrekt geladen werden.
  2. Laden Sie ein trainiertes Modell herunter.
  3. Wählen Sie eine Eingabe für das neuronale Netzwerk aus.
  4. Konfigurieren Sie den Intel® Neural Compute Stick 2 Linux* USB-Treiber.
  5. Führen Sie object_detection_sample_ssd mit dem ausgewählten Modell und der Eingabe aus.

Beispielanwendungen

Das Intel® OpenVINO™ Toolkit umfasst einige Beispielanwendungen, die die Inferenz-Engine und Intel® Neural Compute Stick 2 verwenden. Eines der Programme ist object_detection_sample_ssd, die sie finden in:

~/openvino/bin/armv7l/Release

Führen Sie die folgenden Befehle aus, um object_detection_sample_ssd zu testen:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

Es sollte einen Hilfedialog drucken, in dem die verfügbaren Optionen für das Programm beschrieben werden.

Herunterladen eines Modells

Das Programm benötigt ein Modell, um die Eingabe zu übergeben. Sie können Modelle für das Intel® OpenVINO™ Toolkit im IR-Format erhalten, indem Sie:

  • Verwenden des Model Optimizer zur Konvertierung eines bestehenden Modells von einem der unterstützten Frameworks in ein IR-Format für die Inferenz-Engine
  • Verwenden des Model Downloader-Tools zum Herunterladen aus dem Open Model Zoo
  • Laden Sie die IR-Dateien direkt von download.01.org herunter

Für unsere Zwecke ist das Herunterladen direkt am leichtesten. Verwenden Sie die folgenden Befehle, um ein person-vehicle-bike detection -Modell zu greifen:

cd ~/Downloads

wget https://download.01.org/opencv/2021/openvinotoolkit/2021.2/open_model_zoo/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin

wget https://download.01.org/opencv/2021/openvinotoolkit/2021.2/open_model_zoo/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml

HinweisDer Intel® Neural Compute Stick 2 erfordert Modelle, die für das als FP16 bezeichnete 16-Bit-Fließkommaformat optimiert sind. Ihr Modell, wenn es sich von dem Beispiel unterscheidet, kann eine Konvertierung mit dem Model Optimizer zu FP16 erfordern.

Eingabe für das neuronale Netzwerk

Der letzte benötigte Punkt ist die Eingabe für das neuronale Netzwerk. Für das Modell, das wir heruntergeladen haben, benötigen Sie ein Bild mit 3 Farbkanälen. Laden Sie die notwendigen Dateien auf Ihr Mainboard herunter:

cd ~/Downloads
wget https://cdn.pixabay.com/photo/2018/07/06/00/33/person-3519503_960_720.jpg -O walk.jpg

Konfiguration des Intel® Neural Compute Stick 2 Linux USB-Treibers

Einige UDEV-Regeln müssen hinzugefügt werden, damit das System Intel® NCS2 USB-Geräte erkennen kann.

HinweisWenn der aktuelle Benutzer nicht Mitglied der Benutzergruppe ist, führen Sie den folgenden Befehl aus und starten Sie Ihr Gerät neu.

sudo usermod -a -G users "$(whoami)"

Set up the OpenVINO™ Umgebung:

source /home/pi/openvino_dist/bin/setupvars.sh

To perform Inferenz auf dem Intel® Neural Compute Stick 2, installieren Sie die USB-Regeln, indem Sie die install_NCS_udev_rules.shSkript:

sh /home/pi/openvino_dist/install_dependencies/install_NCS_udev_rules.sh

The USB driver should be installed correctly now. If the Intel® Neural Compute Stick 2 is not detected when running demos, restart your device and try again.

Ausführen vonobject_detection_sample_ssd

Wenn das Modell heruntergeladen wird, ist ein Eingabe-Image verfügbar und die Intel® Neural Compute Stick 2 an einen USB-Port angeschlossen ist, verwenden Sie den folgenden Befehl, um den object_detection_sample_ssd auszuführen:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -i ~/Downloads/walk.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD

Dadurch wird die Anwendung mit den ausgewählten Optionen ausgeführt. Die Kennzeichnung -d weist das Programm an, welches Gerät für die Inferenz verwendet werden soll. -MYRIAD aktiviert das MYRIAD-Plugin unter Verwendung der Intel® Neural Compute Stick 2. Nachdem der Befehl erfolgreich ausgeführt wurde, wird das Terminal Statistiken für die Inferenz anzeigen und eine Bildausgabe erzeugen.

[ INFO ] Image out_0.bmp created!
[ INFO ] Execution successful
[ INFO ] This sample is an API example, for any performance measurements please use the dedicated benchmark_app tool


Verwenden Sie das Standardmäßige Bildanzeigeprogramm Raspbian*, um die resultierende Bildausgabe zu öffnen:

gpicview out_0.bmp

Wenn die Anwendung erfolgreich auf Ihrem Intel® NCS2 ausgeführt wurde, sind OpenVINO™ Toolkit und Intel® Neural Compute Stick 2 korrekt für den Einsatz auf Ihrem Gerät eingerichtet.

Verifizierung der nGraph-Modulbindung für Python

Führen Sie die object_detection_sample_ssd Python-Demo aus:

source /home/pi/openvino_dist/bin/setupvars.sh

cd /home/pi/openvino_dist/deployment_tools/inference_engine/samples/python/object_detection_sample_ssd

python3 object_detection_sample_ssd.py -i ~/Downloads/walk.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD

Wenn die Anwendung auf Ihrem Intel® NCS2 erfolgreich ausgeführt wurde, ist das nGraph-Modul korrekt mit dem Python bindend.

Umgebungsvariablen

Sie müssen mehrere Umgebungsvariablen aktualisieren, bevor Sie OpenVINO Toolkit-Anwendungen kompilieren und ausführen können. Führen Sie das folgende Skript aus, um die Umgebungsvariablen vorübergehend einzustellen:

source /home/pi/openvino_dist/bin/setupvars.sh

**(Optional)** Die OpenVINO Umgebungsvariablen werden entfernt, wenn Sie die Shell schließen. Als Option können Sie die Umgebungsvariablen dauerhaft wie folgt festlegen:

echo "source /home/pi/openvino_dist/bin/setupvars.sh" >> ~/.pluginrc

Um Ihre Änderung zu testen, öffnen Sie ein neues Terminal. Sie werden Folgendes sehen:

[setupvars.sh] OpenVINO Umgebung initialisiert

Dies schließt das Build-Verfahren für die Open-Source-Distribution des OpenVINO™ Toolkits für Raspbian* OS und die Verwendung mit Intel® Neural Compute Stick 2 ab.

Verwandte Themen
Aufbau von Open Model Zoo Demos auf Raspberry Pi*
Workflow für Raspberry Pi*
Der ncappzoo unterstützt jetzt den Intel® NCS 2 und das OpenVINO™ Toolkit
OpenVINO™ toolkit Open Model Zoo
Netzwerke für das Intel® Neural Compute Stick (Intel® NCS 2) Gerät optimieren
Community-Forum und technischer Support