Zestaw narzędzi Open Source OpenVINO™ do systemów operacyjnych Raspkit* i Intel® Neural Compute Stick 2
Notatki |
|
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).
Uwaga | Oryginalny 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
Uwaga | W 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
Uwaga | Ten 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
Uwaga | Liczbę 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
Uwaga | Zaleca 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
Uwaga | Zaleca 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ń:
Uwaga | Usuń 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:
- Uruchom przykładowy program object_detection_sample_ssd, aby potwierdzić, że wszystkie biblioteki ładują się prawidłowo.
- Pobierz wyszkolony model.
- Wybierz dane wejściowe dla sieci neuronowych.
- Skonfiguruj sterownik USB Intel® Neural Compute Stick 2 Linux*.
- 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
Uwaga | Intel® 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.
Uwaga | Jeś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.