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

Dokumentacja

Instalacja i konfiguracja

000057005

27-10-2021

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ł 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 związane z rozpoznawaniem obrazów (CV) na całym sprzęcie 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 etapy budowania dystrybucji open source zestawu narzędzi OpenVINO™ dla systemu operacyjnego Rasprabi* 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™. Urządzenie to może być używane zamiast Intel® Neural Compute Stick 2 w 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* do przyspieszenia wnioskowania wizyjnego. Chociaż proces CMake dla zestawu narzędzi Intel® OpenVINO™ toolkit 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 Pythona, 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

Użyj -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

Użyj -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

Użyj -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

Użyj -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 znaki zwrotne (\) podczas uruchamiania poniższych poleceń. Identyfikatory typu backs-te 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. Jeden 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 dla systemu Intel® Neural Compute Stick 2 Linux

Należy dodać niektóre zasady odev, aby system mógł rozpoznać Intel® NCS2 urządzenia 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)"

środowisko Set up the OpenVINO™:

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 pokaz 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:

Środowisko OpenVINO [setupvars.sh] zainicjowane

W ten sposób ukończono procedurę kompilacji dystrybucji open source zestawu narzędzi OpenVINO™ dla systemu operacyjnego Raspkit* i użytkowania wraz 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 dla urządzenia Intel® Neural Compute Stick (Intel® NCS 2)
Forum społeczności i wsparcie techniczne