Creazione di toolkit di OpenVINO™ Open Source per il sistema operativo e Stick di calcolo neurale Intel® 2 Raspbian*

Documentazione

Installazione e configurazione

000057005

14/04/2022

Note
  • Tutti i passaggi sono necessari nell'installazione.
  • Questi passaggi sono stati testati con la scheda Raspberry Pi 4* e Raspbian* Buster, 32 bit.
  • Per seguire i passaggi di questa guida è necessaria una connessione Internet.
  • L'articolo è stato verificato utilizzando il rilascio 2021.3 della distribuzione open source del toolkit OpenVINO™.

Il toolkit OpenVINO™ implementa rapidamente applicazioni e soluzioni che emulano la visione umana. Il toolkit estende i carichi di lavoro di visione artificiale (CV) su hardware Intel® in base alle reti neurali convoluzionali (CNN), che massimizzano le prestazioni. Questi passaggi generalmente seguono questo articolo su Stick di calcolo neurale Intel® 2 e open source OpenVINO™ toolkit, ma includono modifiche specifiche per far funzionare tutto sulla scheda madre.

Questa guida fornisce i passaggi per la creazione della distribuzione open source del toolkit OpenVINO™ per il sistema operativo Raspbian* e l'utilizzo con Stick di calcolo neurale Intel® 2 (Intel® NCS2).

NotaL'originale Intel® Movidius™ Neural Compute Stick è compatibile anche con il toolkit OpenVINO™ e tale dispositivo può essere utilizzato al posto del Stick di calcolo neurale Intel® 2 in questo articolo.

Fare clic o sull'argomento per i dettagli:

Requisiti di sistema
NotaQuesta guida presuppone che la scheda Raspberry Pi* sia attiva e funzionante con un sistema operativo elencato di seguito.

Hardware

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ dovrebbe funzionare.)
  • Almeno una scheda microSD da 8 GB
  • Stick di calcolo neurale Intel® 2
  • Connessione Internet Ethernet o rete wireless compatibile
  • Scheda di alimentazione DC dedicata

Sistema operativo di destinazione

  • Tratto Raspbian*, 32 bit

  • Raspbian* Buster, 32 bit
Configurare l'ambiente di compilazione
NotaQuesta guida contiene i comandi che devono essere eseguiti come accesso root o sudo per l'installazione corretta.

Assicurarsi che il software del dispositivo sia aggiornato:

sudo apt update && sudo apt upgrade -y

Alcune delle dipendenze del toolkit non hanno binari ARMv7 pre-integrati e devono essere costruite dall'origine. Ciò può aumentare in modo significativo i tempi di costruzione rispetto ad altre piattaforme. La preparazione alla creazione del toolkit richiede i seguenti passaggi:

Installazione degli strumenti di compilazione

sudo apt install build-essential

Installazione di CMake* dall'origine

Recuperare CMake dalla pagina di rilascio di Kitware* GitHub*, estrarlo e immettere la cartella estratta:

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

Eseguire lo script bootstrap per installare ulteriori dipendenze per iniziare la compilazione:

./bootstrap

make -j4

sudo make install

NotaIl numero di processi utilizzati dal comando make può essere regolato con il flag -j . Si consiglia di impostare il numero di lavori sul numero di core sulla piattaforma.

È possibile controllare il numero di core del sistema utilizzando il comando:

grep -c ^processor /proc/cpuinfo

Tenere presente che l'impostazione del numero troppo alto può portare a sovraccarichi di memoria, guastando la compilazione. Se il tempo lo consente, si consiglia di eseguire da 1 a 2 lavori.

Installazione di OpenCV dall'origine

Intel® OpenVINO™ toolkit utilizza la potenza di OpenCV* per accelerare l'inferenza basata sulla visione. Mentre il processo CMake per Intel® OpenVINO™ toolkit scarica OpenCV* se non è installata alcuna versione per le piattaforme supportate, non esiste una versione specifica per le piattaforme ARMv7. Pertanto, è necessario creare OpenCV dall'origine.

OpenCV richiede alcune dipendenze aggiuntive. Installare quanto segue da Gestione pacchetti:

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

NotaSi consiglia di specificare il ramo o il tag più recente e stabile quando si clona il repository dalla pagina OpenCV* GitHub invece di clonare direttamente il ramo master per impostazione predefinita.

Clonare il repository dalla pagina OpenCV* GitHub, preparare l'ambiente di compilazione e costruire:

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

Download del codice sorgente e installazione delle dipendenze
NotaSi consiglia di specificare il ramo o il tag più recente e stabile quando si clona il repository dalla pagina openvinotoolkit GitHub invece di clonare direttamente il ramo principale per impostazione predefinita.

La versione open source di Intel® OpenVINO™ toolkit è disponibile tramite GitHub. La cartella del repository si intitola openvino.

cd ~/

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

Il repository ha anche sottomoduli che devono essere recuperati:

cd ~/openvino

git submodule update --init --recursive

Intel® OpenVINO™ toolkit ha una serie di dipendenze di build. Lo script install_build_dependencies.sh li recupera per te. Se si verificano problemi durante l'esecuzione dello script, è necessario installare ciascuna dipendenza singolarmente.

Eseguire lo script per installare le dipendenze per Intel® OpenVINO™ toolkit:

sh ./install_build_dependencies.sh

Se lo script è stato completato correttamente, si è pronti a costruire il toolkit. Se a questo punto qualcosa non è riuscito, assicurarsi di installare eventuali dipendenze elencate e riprovare.

Edificio

Il primo passo per iniziare la build è dire al sistema dove si trova l'installazione di OpenCV. Utilizzare il seguente comando:

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

Per creare il wrapper API Python, installare tutti i pacchetti aggiuntivi elencati nel file /inference-engine/ie_bridges/python/requirements.txt :

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

pip3 install -r requirements.txt

Nota

Utilizzare il -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

Utilizzare il -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Utilizzare il -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Utilizzare il -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

Il toolkit utilizza un sistema di costruzione CMake per guidare e semplificare il processo di costruzione. Per creare sia il motore di inferenza che il plugin MYRIAD per Stick di calcolo neurale Intel® 2, utilizzare i seguenti comandi:

NotaRimuovere tutti i backslash (\) quando si eseguono i comandi riportati di seguito. I backslash vengono utilizzati per informare che questi comandi non sono separati.

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

Se il comando make non riesce a causa di un problema con una libreria OpenCV, assicurarsi di aver comunicato al sistema dove si trova l'installazione di OpenCV. Se la build viene completata a questo punto, Intel® OpenVINO™ toolkit è pronto per l'esecuzione. Va notato che le build sono posizionate nella cartella ~/openvino/inference-engine/bin/armv7l/Release .

Verifica dell'installazione

Dopo aver completato correttamente la build del motore di inferenza, è necessario verificare che tutto sia impostato correttamente. Per verificare che il toolkit e Stick di calcolo neurale Intel® 2 funzionino sul dispositivo, completare i seguenti passaggi:

  1. Eseguire il programma di esempio object_detection_sample_ssd per verificare che tutte le librerie si carichino correttamente.
  2. Scarica un modello addestrato.
  3. Selezionare un input per la rete neurale.
  4. Configurare il driver USB Linux* Stick di calcolo neurale Intel® 2.
  5. Eseguire object_detection_sample_ssd con il modello e l'input selezionati.

Applicazioni di esempio

Il toolkit Intel® OpenVINO™ include alcune applicazioni di esempio che utilizzano il motore di inferenza e Stick di calcolo neurale Intel® 2. Uno dei programmi è object_detection_sample_ssd, che può essere trovato in:

~/openvino/bin/armv7l/Release

Eseguire i seguenti comandi per testare object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

Dovrebbe stampare una finestra di dialogo della Guida, descrivendo le opzioni disponibili per il programma.

Download di un modello

Il programma ha bisogno di un modello per passare l'input. È possibile ottenere modelli per Intel® OpenVINO™ toolkit in formato IR:

  • Utilizzo dell'ottimizzatore di modelli per convertire un modello esistente da uno dei framework supportati in formato IR per il motore di inferenza
  • Utilizzo dello strumento Model Downloader per il download dallo zoo open model
  • Scaricare i file IR direttamente da download.01.org

Per i nostri scopi, scaricare direttamente è più semplice. Utilizzare i seguenti comandi per ottenere un modello person-vehicle-bike detection :

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

NotaIl Stick di calcolo neurale Intel® 2 richiede modelli ottimizzati per il formato a virgola mobile a 16 bit noto come FP16. Il modello, se diverso dall'esempio, potrebbe richiedere la conversione utilizzando l'ottimizzatore del modello in FP16.

Input per la rete neurale

L'ultimo elemento necessario è l'input per la rete neurale. Per il modello che abbiamo scaricato, hai bisogno di un'immagine con 3 canali di colore. Scaricare i file necessari sulla scheda madre:

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

Configurazione del driver USB Linux Stick di calcolo neurale Intel® 2

Alcune regole udev devono essere aggiunte per consentire al sistema di riconoscere Intel® NCS2 dispositivi USB.

NotaSe l'utente corrente non è un membro del gruppo di utenti, eseguire il seguente comando e riavviare il dispositivo.

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

ambiente Set up the OpenVINO™:

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

To perform inferenza sul Stick di calcolo neurale Intel® 2, installare le regole USB eseguendo il install_NCS_udev_rules.shcopione:

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.

Esecuzione object_detection_sample_ssd

Quando il modello viene scaricato, è disponibile un'immagine di input e il Stick di calcolo neurale Intel® 2 è collegato a una porta USB, utilizzare il seguente comando per eseguire il object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

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

Questa operazione eseguirà l'applicazione con le opzioni selezionate. Il flag -d indica al programma quale dispositivo utilizzare per l'inferenza. -MYRIAD attiva il plugin MYRIAD , utilizzando il Stick di calcolo neurale Intel® 2. Dopo che il comando è stato eseguito correttamente, il terminale visualizzerà le statistiche per l'inferenza e produrrà un output di immagine.

[ 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


Utilizzare il programma di visualizzazione delle immagini predefinito Raspbian* per aprire l'output dell'immagine risultante:

gpicview out_0.bmp

Se l'applicazione è stata eseguito correttamente sul Intel® NCS2, OpenVINO™ toolkit e Stick di calcolo neurale Intel® 2 sono impostati correttamente per l'utilizzo sul dispositivo.

Verifica dell'associazione del modulo nGraph a Python

Esegui la demo object_detection_sample_ssd Python:

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

Se l'applicazione è stata eseguito correttamente sul Intel® NCS2, il modulo nGraph si sta legando correttamente al Python.

Variabili di ambiente

È necessario aggiornare diverse variabili di ambiente prima di poter compilare ed eseguire applicazioni OpenVINO toolkit. Eseguire il seguente script per impostare temporaneamente le variabili di ambiente:

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

**(Facoltativo)** Le variabili di ambiente OpenVINO vengono rimosse quando si chiude la shell. Come opzione, è possibile impostare in modo permanente le variabili di ambiente come segue:

eco "source /home/pi/openvino_dist/bin/setupvars.sh" >> ~/.bashrc

Per testare la modifica, aprire un nuovo terminale. Vedrai quanto segue:

[setupvars.sh] ambiente OpenVINO inizializzato

Ciò completa la procedura di compilazione per la distribuzione open source di OpenVINO™ toolkit per il sistema operativo Raspbian* e l'utilizzo con Stick di calcolo neurale Intel® 2.

Argomenti correlati
Creazione di demo open model zoo su Raspberry Pi*
Flusso di lavoro per Raspberry Pi*
L'ncappzoo supporta ora Intel® NCS 2 e il toolkit OpenVINO™
OpenVINO™ toolkit Open Model Zoo
Ottimizza le reti per il dispositivo Intel® Neural Compute Stick (Intel® NCS 2)
Forum della comunità e supporto tecnico