Zestaw narzędzi Open Source OpenVINO™ do systemów operacyjnych Raspkit* i Intel® Neural Compute Stick 2

Dokumentacja

Instalacja i konfiguracja

000057005

14-04-2022

Notatki
  • Wszystkie kroki są wymagane w instalacji.
  • Etapy te zostały przetestowane z wykorzystaniem płyty głównej Zgierz Pi 4* oraz Raspbibi* Buster( 32-bitowy).
  • Aby postępować zgodnie z instrukcjami w tym przewodniku, wymagane jest połączenie z Internetem.
  • Artykuł ten został zweryfikowany przy użyciu wersji 2021.3 open source w dystrybucji zestawu narzędzi OpenVINO™.

Zestaw narzędzi OpenVINO™ szybko wdraża aplikacje i rozwiązania, które naśladowania ludzkiego widzenia. Zestaw narzędzi rozszerza obciążenia robocze technologii rozpoznawania obrazów (CV) na całym sprzęcie firmy Intel® opartym na convolutional Neural Networks (CNN), co maksymalizuje wydajność. Instrukcje te są zwykle zgodne z tym artykułem dotyczącym zestawu narzędzi Intel® Neural Compute Stick 2 i Open Source OpenVINO™, ale zawierają one określone zmiany, aby wszystko działało na Twojej płycie głównej.

W tym przewodniku przedstawiono instrukcje dotyczące budowania dystrybucji open source zestawu narzędzi OpenVINO™ dla systemu operacyjnego Raspambi* oraz użytkowania z Intel® Neural Compute Stick 2 (Intel® NCS2).

UwagaOryginalny Intel® Movidius™ Neural Compute Stick jest również kompatybilny z zestawem narzędzi OpenVINO™ i można go używać zamiast Intel® Neural Compute Stick 2 w tym artykule.

Kliknij lub odpowiedni temat, by uzyskać szczegółowe informacje:

Wymagania systemowe
UwagaW tym przewodniku przyjęto założenie, że twoja płyta główna z Technologią Pi* w programie Jest uruchomiona z wymienionym poniżej systemem operacyjnym.

Sprzętu

  • Model B+ z kodem "Chyłka" Macierzy Pi* 4 (Pi* 3 Model B+ powinien działać).
  • Przynajmniej 8 GB karty microSD
  • Intel® Neural Compute Stick 2
  • Połączenie internetowe Ethernet lub kompatybilna sieć bezprzewodowa
  • Dedykowana karta zasilania DC

Docelowy system operacyjny

  • Raspambi* Stretch (wersja 32-bitowa)

  • Raspambi* Buster (wersja 32-bitowa)
Konfiguracja środowiska kompilacji
UwagaTen przewodnik zawiera polecenia, które należy wykonać jako root lub program z dostępem do oprogramowania, aby zainstalować poprawnie.

Upewnij się, że oprogramowanie Twojego urządzenia jest aktualne:

sudo apt update && sudo apt upgrade -y

Niektóre zależności zestawu narzędzi nie mają wstępnie wbudowanych plików binarnych ARMv7 i muszą być zbudowane ze źródła. Może to znacząco wydługać czas budowania w porównaniu z innymi platformami. Jeśli chcesz stworzyć zestaw narzędzi, wykonaj następujące czynności:

Instalacja narzędzi do tworzenia

sudo apt install build-essential

Instalacja CMake* ze źródła

Pobierz CMake ze strony wersji Kitware* GitHub*, rozpakuj go i wprowadź rozpakowywany folder:

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

Uruchom skrypt bootstrap , aby zainstalować dodatkowe zależności, rozpocznij kompilację:

./bootstrap

make -j4

sudo make install

UwagaLiczbę zadań, z których korzysta polecenie make , można dostosować za pomocą znacznika -j . Zaleca się ustawienie liczby zadań na poziomie liczby rdzeni na Twojej platformie.

Możesz sprawdzić liczbę rdzeni w systemie za pomocą polecenia:

grep -c ^processor /proc/cpuinfo

Należy pamiętać, że ustawienie numeru jest zbyt wysokie, może prowadzić do przekroczenia pamięci, jeżeli kompilacja nie działa. Jeśli czas na to pozwoli, zaleca się wykonywanie od 1 do 2 zadań.

Instalacja OpenCV ze źródła

Zestaw narzędzi Intel® OpenVINO™ wykorzystuje moc OpenCV*, aby przyspieszyć wnioskowanie oparte na technologiach wizyjnych. Chociaż proces CMake dla zestawu narzędzi Intel® OpenVINO™ pobiera OpenCV*, jeśli wersja nie jest zainstalowana dla obsługiwanych platform, nie ma konkretnej wersji dla platform ARMv7. W związku z tym, musisz zbudować OpenCV ze źródła.

OpenCV wymaga dodatkowych zależności. Zainstaluj następujące elementy w menedżerze pakietów:

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

UwagaZaleca się określenie najnowszej i stabilnej gałęzi lub tagu podczas klonowania repozytorium ze strony OpenCV* GitHub zamiast domyślnego klonowania oddziału głównego.

Skryć repozytorium ze strony OpenCV* GitHub, przygotuj środowisko kompilacji i stwórz:

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

Pobieranie kodu źródłowego i instalowanie zależności
UwagaZaleca się określenie najnowszej i stabilnej gałęzi lub tagu podczas klonowania repozytorium ze strony openvinotoolkit GitHub zamiast domyślnie klonowania oddziału głównego.

Zestaw narzędzi Intel® OpenVINO™ open source jest dostępny poprzez GitHub. Folder magazynu pod nazwą openvino.

cd ~/

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

Repozytorium ma również podmoduły, które należy pobrać:

cd ~/openvino

git submodule update --init --recursive

Zestaw narzędzi Intel® OpenVINO™ ma szereg zależności kompilacji. Skrypt install_build_dependencies.sh pobiera je dla Ciebie. Jeśli podczas próby uruchomienia skryptu pojawią się jakiekolwiek problemy, musisz zainstalować poszczególne zależności indywidualnie.

Uruchom skrypt, aby zainstalować zależności dla zestawu narzędzi Intel® OpenVINO™:

sh ./install_build_dependencies.sh

Jeśli skrypt zakończył się pomyślnie, jesteś gotowy do złożenia zestawu narzędzi. Jeśli w tym momencie wystąpił błąd, upewnij się, że instalujesz wszystkie wymienione zależności i spróbuj ponownie.

Budynku

Pierwszym krokiem do rozpoczęcia budowania jest informowanie systemu, w którym znajduje się instalacja OpenCV. Użyj następującego polecenia:

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

Aby zbudować opakowanie interfejsu API Python, zainstaluj wszystkie dodatkowe pakiety wymienione w pliku /inference-engine/ie_bridges/python/requirements.txt :

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

pip3 install -r requirements.txt

Uwaga

Skorzystaj z -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

Skorzystaj z -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Skorzystaj z -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Skorzystaj z -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

Zestaw narzędzi wykorzystuje system budynku CMake, aby poprowadzić i uprościć proces tworzenia. Aby zbudować zarówno silnik inferencyjny, jak i wtyczkę MYRIAD do Intel® Neural Compute Stick 2, użyj następujących poleceń:

UwagaUsuń wszystkie backslashes (\) podczas uruchamiania poniższych poleceń. Zaczepy typu backslash są wykorzystywane do poinformowania, że polecenia te nie zostały oddzielone.

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

Jeśli polecenie make nie powiedzie się z powodu problemu z biblioteką OpenCV, upewnij się, że system, w którym znajduje się Twoja instalacja OpenCV, został wyświetlony. Jeśli kompilacja zostanie ukończona w tym momencie, zestaw narzędzi Intel® OpenVINO™ jest gotowy do pracy. Należy zauważyć, że kompilacje są umieszczane w folderze ~/openvino/inference-engine/bin/armv7l/Release .

Weryfikacja instalacji

Po pomyślnym ukończeniu kompilacji silnika wnioskowania, należy sprawdzić, czy wszystko jest poprawnie skonfigurowane. Aby sprawdzić, czy zestaw narzędzi i Intel® Neural Compute Stick 2 działają na Twoim urządzeniu, wykonaj następujące czynności:

  1. Uruchom przykładowy program object_detection_sample_ssd, aby potwierdzić, że wszystkie biblioteki ładują się prawidłowo.
  2. Pobierz wyszkolony model.
  3. Wybierz dane wejściowe dla sieci neuronowych.
  4. Skonfiguruj sterownik USB Intel® Neural Compute Stick 2 Linux*.
  5. Uruchom object_detection_sample_ssd przy pomocy wybranego modelu i danych wejściowych.

Przykładowe zastosowania

Zestaw narzędzi Intel® OpenVINO™ zawiera niektóre przykładowe aplikacje, które wykorzystują silnik wnioskowania i Intel® Neural Compute Stick 2. Jednym z programów jest object_detection_sample_ssd, które można znaleźć w:

~/openvino/bin/armv7l/Release

Uruchom następujące polecenia, aby przetestować object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

Należy wydrukować okno dialogowe pomocy, opisując dostępne opcje dla programu.

Pobieranie modelu

Program potrzebuje modelu, przez który przejdzie dane wejściowe. Możesz uzyskać modele dla zestawu narzędzi Intel® OpenVINO™ w formacie IR:

  • Wykorzystanie optymalizatora modelu do przekonwertowania istniejącego modelu z jednej ze obsługiwanych frameworków na format IR dla aparatu wnioskowania
  • Korzystając z narzędzia do pobierania modeli, można pobrać z Open Model Zoo
  • Pobierz pliki IR bezpośrednio z download.01.org

Dla naszych celów pobieranie jest najłatwiejsze. Użyj następujących poleceń, aby uzyskać model 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

UwagaIntel® Neural Compute Stick 2 wymaga modeli zoptymalizowanych pod kątem 16-bitowego formatu zmiennoprzecinkowych znanego jako FP16. Jeśli model różni się od tego przykładu, może wymagać konwersji przy użyciu optymalizatora modelu do FP16.

Dane wejściowe dla sieci neuronowych

Ostatnim potrzebnym elementem jest dane wejściowe dla sieci neuronowych. W przypadku pobranego przez nas modelu potrzebujesz obrazu z 3 kanałami kolorów. Pobierz niezbędne pliki na płytę główną:

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

Konfigurowanie sterownika USB Intel® Neural Compute Stick 2 Linux

Niektóre zasady odev należy dodać, aby system mógł rozpoznać urządzenia Intel® NCS2 USB.

UwagaJeśli obecny użytkownik nie należy do grupy użytkowników, uruchom następujące polecenie i zrestartuj swoje urządzenie.

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

Set up the OpenVINO™ środowisko:

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

To perform wnioskowanie na Intel® Neural Compute Stick 2, zainstaluj reguły USB, uruchamiając install_NCS_udev_rules.shSkrypt:

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.

Uruchamianie object_detection_sample_ssd

Po pobraniu modelu dostępny jest obraz wejściowy, a Intel® Neural Compute Stick 2 jest podłączony do portu USB, użyj następującego polecenia, aby uruchomić 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

Spowoduje to uruchomienie aplikacji z wybranymi opcjami. Flaga -d oznacza programowi, którego urządzenia użyć do wnioskowania. -MYRIAD aktywuje wtyczkę MYRIAD , wykorzystując Intel® Neural Compute Stick 2. Po pomyślnym wykonaniu polecenia terminal wyświetli statystyki wnioskowania i przedstawi obraz wyjściowy.

[ 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


Aby otworzyć wynikowy obraz wyjściowy, użyj domyślnego programu raspńskiego* do wyświetlania obrazu:

gpicview out_0.bmp

Jeśli aplikacja została pomyślnie włączona na Twoim Intel® NCS2, zestaw narzędzi OpenVINO™ oraz Intel® Neural Compute Stick 2 są poprawnie skonfigurowane do użytku na Twoim urządzeniu.

Sprawdzanie powiązania modułu nGraph z Pythonem

Uruchom prezentację object_detection_sample_ssd Pythona:

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

Jeśli aplikacja została pomyślnie włączona na Twoim Intel® NCS2, moduł nGraph jest prawidłowo wiążący z Pythonem.

Zmienne środowiskowe

Zanim będzie można skompilować i uruchomić aplikacje OpenVINO toolkit, musisz zaktualizować kilka zmiennych środowiskowych. Uruchom następujący skrypt, aby tymczasowo ustawić zmienne środowiskowe:

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

**(Opcjonalnie)** zmienne środowiskowe OpenVINO są usuwane po zamknięciu powłoki. Jako opcję można trwale ustawić zmienne środowiskowe w następujący sposób:

kod "source /home/pi/openvino_dist/bin/setupvars.sh" >> ~/.koder

Aby przetestować zmiany, otwórz nowy terminal. Wyświetlone zostaną następujące informacje:

[setupvars.sh] OpenVINO środowisko inicjalizowane

W ten sposób ukończono procedurę kompilacji dystrybucji open source zestawu narzędzi OpenVINO™ dla systemu operacyjnego Raspambi* i użytkowania z Intel® Neural Compute Stick 2.

Powiązane tematy
Prezentacje": "Otwarty model zoo" na drodze Do pi Pi*
Przepływ pracy dla firmy Pi Pi*
Ncappzoo obsługuje teraz Intel® NCS 2 oraz zestaw narzędzi OpenVINO™
OpenVINO™ toolkit Open Model Zoo
Optymalizuj sieci pod kątem urządzenia Intel® Neural Compute Stick (Intel® NCS 2).
Forum społeczności i wsparcie techniczne