Creazione di toolkit di OpenVINO™ Open Source per il sistema operativo e Stick di calcolo neurale Intel® 2 Raspbian*
Note |
|
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).
Nota | L'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
Nota | Questa 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
Nota | Questa 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
Nota | Il 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
Nota | Si 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
Nota | Si 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:
Nota | Rimuovere 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:
- Eseguire il programma di esempio object_detection_sample_ssd per verificare che tutte le librerie si carichino correttamente.
- Scarica un modello addestrato.
- Selezionare un input per la rete neurale.
- Configurare il driver USB Linux* Stick di calcolo neurale Intel® 2.
- 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
Nota | Il 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.
Nota | Se 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.