Raspbian* OS 및 인텔® 뉴럴 컴퓨트 스틱 2 위한 오픈 소스 OpenVINO™ 툴킷 구축

문서

설치 및 설정

000057005

2022-04-14

노트
  • 설치에는 모든 단계가 필요합니다.
  • 이러한 단계는 Raspberry Pi 4* 보드 및 Raspbian* Buster, 32비트로 테스트되었습니다.
  • 이 가이드의 단계를 따르려면 인터넷 연결이 필요합니다.
  • 이 문서는 OpenVINO™ 툴킷의 오픈 소스 배포판 2021.3 릴리스를 사용하여 확인되었습니다.

OpenVINO™ 툴킷은 인간의 비전을 모방하는 응용 프로그램과 솔루션을 신속하게 배포합니다. 툴킷은 컨볼루션 뉴럴 네트웍스(CNN)를 기반으로 인텔® 하드웨어 전반에 걸쳐 컴퓨터 비전(CV) 워크로드를 확장하여 성능을 극대화합니다. 이러한 단계는 일반적으로 인텔® 뉴럴 컴퓨트 스틱 2 및 오픈 소스 OpenVINO™ 툴킷 에 관한 이 문서를 따르지만 보드에서 모든 것을 실행하도록 특정 변경 사항을 포함합니다.

이 가이드는 Raspbian* OS용 OpenVINO™ 툴킷의 오픈 소스 배포를 구축하고 인텔® 뉴럴 컴퓨트 스틱 2(인텔® NCS2)와 함께 사용하는 단계를 제공합니다.

참고원래 인텔® Movidius™ 뉴럴 컴퓨트 스틱은 OpenVINO™ 툴킷과도 호환되며, 해당 장치는 이 문서 전체의 인텔® 뉴럴 컴퓨트 스틱 2 대신 사용할 수 있습니다.

자세한 내용은 다음을 클릭하거나 주제를 클릭합니다 .

시스템 요구 사항
참고이 가이드는 아래에 나열된 운영 체제로 Raspberry Pi* 보드를 가동하고 실행 중이라고 가정합니다.

하드웨어

  • Raspberry Pi* 4(Raspberry Pi* 3 모델 B+가 작동해야 합니다.)
  • 최소 8GB 마이크로SD 카드
  • 인텔® 뉴럴 컴퓨트 스틱 2
  • 이더넷 인터넷 연결 또는 호환 가능한 무선 네트워크
  • 전용 DC 전원 어댑터

대상 운영 체제

  • Raspbian* 스트레치, 32비트

  • Raspbian* 버스터, 32비트
빌드 환경 설정
참고이 가이드에는 올바르게 설치하려면 루트 또는 sudo 액세스로 실행해야 하는 명령이 포함되어 있습니다.

장치 소프트웨어가 최신 상태로 유지되었는지 확인하십시오.

sudo apt update && sudo apt upgrade -y

툴킷의 종속성 중 일부는 미리 구축된 ARMv7 바이너리를 가지고 있지 않으며 소스에서 구축해야 합니다. 이렇게 하면 다른 플랫폼에 비해 빌드 시간이 크게 늘어나게 될 수 있습니다. 툴킷 빌드를 준비하려면 다음 단계가 필요합니다.

빌드 도구 설치

sudo apt install build-essential

소스에서 CMake* 설치

Kitware* GitHub* 릴리스 페이지에서 CMake를 가져오고 추출한 다음 추출된 폴더를 입력합니다.

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

부트스트랩 스크립트를 실행하여 추가 종속성 설치가 빌드를 시작합니다.

./bootstrap

make -j4

sudo make install

참고-j 플래그를 사용하여 명령이 사용하는 작업 수를 조정할 수 있습니다. 플랫폼의 코어 수로 작업 수를 설정하는 것이 좋습니다.

다음 명령을 사용하여 시스템의 코어 수를 확인할 수 있습니다.

grep -c ^processor /proc/cpuinfo

숫자를 너무 높게 설정하면 메모리 오버런이 발생할 수 있으며 빌드에 실패할 수 있습니다. 시간이 허락하면 1~2개의 작업을 실행하는 것이 좋습니다.

소스에서 OpenCV 설치

인텔® OpenVINO™ 툴킷은 OpenCV*의 성능을 사용하여 비전 기반 추론을 가속화합니다. 인텔® OpenVINO™ 툴킷용 CMake 프로세스는 지원되는 플랫폼에 대한 버전이 설치되어 있지 않으면 OpenCV*를 다운로드하지만 ARMv7 플랫폼에는 특정 버전이 없습니다. 따라서 소스에서 OpenCV를 빌드해야 합니다.

OpenCV에는 몇 가지 추가 종속성도 필요합니다. 패키지 관리자가 다음을 설치합니다.

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

참고기본적으로 마스터 브랜치를 직접 복제하는 대신 OpenCV* GitHub 페이지에서 저장소를 복제할 때 최신의 안정적인 분기 또는 태그를 지정하는 것이 좋습니다.

OpenCV* GitHub 페이지에서 저장소를 복제하고 빌드 환경을 준비하며 다음을 빌드합니다.

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

소스 코드 다운로드 및 종속성 설치
참고기본적으로 마스터 브랜치를 직접 복제하는 대신 openvinotoolkit GitHub 페이지에서 저장소를 복제할 때 최신의 안정적인 분기 또는 태그를 지정하는 것이 좋습니다.

인텔® OpenVINO™ 툴킷의 오픈 소스 버전은 GitHub를 통해 제공됩니다. 저장소 폴더의 제목은 openvino입니다.

cd ~/

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

저장소에는 다음을 가져와야 하는 하위 구성도 있습니다.

cd ~/openvino

git submodule update --init --recursive

인텔® OpenVINO™ 툴킷에는 여러 빌드 종속성이 있습니다. install_build_dependencies.sh 스크립트가 해당 스크립트를 가져옵니다. 스크립트를 실행할 때 문제가 발생하면 각 종속성을 개별적으로 설치해야 합니다.

스크립트를 실행하여 인텔® OpenVINO™ 툴킷에 대한 종속성을 설치합니다.

sh ./install_build_dependencies.sh

스크립트가 성공적으로 완료되면 툴킷을 빌드할 준비가 되어 있습니다. 이 시점에서 문제가 발생하면 나열된 종속성 을 설치하고 다시 시도하십시오.

건물

빌드를 시작하는 첫 번째 단계는 OpenCV 설치가 있는 시스템을 알려주는 것입니다. 다음 명령을 사용하십시오.

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

Python API 래퍼를 빌드하려면 /inference-engine/ie_bridges/python/requirements.txt 파일에 나열된 모든 추가 패키지를 설치하십시오.

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

pip3 install -r requirements.txt

참고

-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

-DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer. 사용

-DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding. 사용

-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

툴킷은 CMake 빌딩 시스템을 사용하여 건물 프로세스를 안내하고 단순화합니다. 추론 엔진과 인텔® 뉴럴 컴퓨트 스틱 2 위한 MYRIAD 플러그인을 모두 구축하려면 다음 명령을 사용하십시오.

참고아래 명령을 실행할 때 모든 백슬라쉬(\)를 제거합니다. 백슬라이쉬는 이러한 명령이 분리되지 않음을 알리는 데 사용됩니다.

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

OpenCV 라이브러리 문제로 인해 명령 실패할 경우, OpenCV 설치가 있는 시스템에 문의했는지 확인하십시오. 이 시점에서 빌드가 완료되면 인텔® OpenVINO™ 툴킷을 실행할 준비가 되어 있습니다. 빌드가 ~/openvino/추론 엔진/bin/armv7l/Release 폴더에 배치되어 있다는 점에 유의해야 합니다.

설치 확인

추론 엔진 빌드를 성공적으로 완료한 후 모든 것이 올바르게 설정되어 있는지 확인해야 합니다. 툴킷과 인텔® 뉴럴 컴퓨트 스틱 2 장치에서 작동하는지 확인하려면 다음 단계를 완료하십시오.

  1. 샘플 프로그램 object_detection_sample_ssd 실행 하여 모든 라이브러리가 올바르게 로드되었는지 확인합니다.
  2. 훈련된 모델을 다운로드하십시오.
  3. 신경망에 대한 입력을 선택합니다.
  4. 인텔® 뉴럴 컴퓨트 스틱 2 Linux* USB 드라이버를 구성합니다.
  5. 선택한 모델과 입력 을 통해 object_detection_sample_ssd 실행 합니다.

샘플 응용 프로그램

인텔® OpenVINO™ 툴킷에는 추론 엔진과 인텔® 뉴럴 컴퓨트 스틱 2 활용하는 일부 샘플 응용 프로그램이 포함되어 있습니다. 프로그램 중 하나는 다음 에서 찾을 수 있는 object_detection_sample_ssd .

~/openvino/bin/armv7l/Release

다음 명령을 실행하여 object_detection_sample_ssd 테스트합니다.

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

프로그램에 사용할 수 있는 옵션을 설명하는 도움말 대화 상자를 인쇄해야 합니다.

모델 다운로드

프로그램에는 입력을 전달하는 모델이 필요합니다. 다음을 통해 IR 형식으로 인텔® OpenVINO™ 툴킷 모델을 얻을 수 있습니다.

  • 모델 최적화기를 사용하여 기존 모델을 지원되는 프레임워크 중 하나에서 추론 엔진의 IR 형식으로 변환
  • 모델 다운로더 도구를 사용하여 오픈 모델 동물원에서 다운로드
  • download.01.org 직접 IR 파일을 다운로드하십시오.

당사의 목적을 위해 직접 다운로드하는 것이 가장 쉽습니다. 다음 명령을 사용하여 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

참고이 인텔® 뉴럴 컴퓨트 스틱 2 FP16으로 알려진 16비트 부동 소수점 형식에 최적화된 모델이 필요합니다. 모델이 예와 다른 경우 모델 최적화기를 사용하여 FP16으로 변환해야 할 수 있습니다.

신경망 입력

필요한 마지막 항목은 신경망 입력입니다. 다운로드한 모델의 경우 3채널의 색상이 있는 이미지가 필요합니다. 보드에 필요한 파일을 다운로드하십시오.

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

인텔® 뉴럴 컴퓨트 스틱 2 Linux USB 드라이버 구성

시스템이 인텔® NCS2 USB 장치를 인식할 수 있도록 일부 udev 규칙을 추가해야 합니다.

참고현재 사용자가 사용자 그룹의 구성원이 아닌 경우 다음 명령을 실행하고 장치를 재부팅합니다.

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

Set up the OpenVINO™ 환경:

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

To perform 인텔® 뉴럴 컴퓨트 스틱 2 추론하고, USB 규칙을 실행하여 설치합니다. install_NCS_udev_rules.sh스크립트:

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.

실행 object_detection_sample_ssd

모델을 다운로드하면 입력 이미지를 사용할 수 있고 인텔® 뉴럴 컴퓨트 스틱 2 USB 포트에 연결되면 다음 명령을 사용하여 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

이 옵션은 선택한 옵션으로 응용 프로그램을 실행합니다. -d 플래그는 추론에 사용할 장치를 프로그램에 알려줍니다. -MYRIAD 는 인텔® 뉴럴 컴퓨트 스틱 2 활용하여 MYRIAD 플러그인을 활성화합니다. 명령이 성공적으로 실행되면 터미널은 추론에 대한 통계를 표시하고 이미지 출력을 생성합니다.

[ 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


Raspbian* 기본 이미지 보기 프로그램을 사용하여 결과 이미지 출력을 엽니다.

gpicview out_0.bmp

응용 프로그램이 인텔® NCS2 성공적으로 실행되면 OpenVINO™ 툴킷과 인텔® 뉴럴 컴퓨트 스틱 2 장치에서 사용하기 위해 올바르게 설정됩니다.

파이썬에 대한 nGraph 모듈 바인딩 확인

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

응용 프로그램이 인텔® NCS2 성공적으로 실행되면 nGraph 모듈이 Python에 올바르게 바인딩됩니다.

환경 변수

OpenVINO 툴킷 응용 프로그램을 컴파일하고 실행하기 전에 여러 환경 변수를 업데이트해야 합니다. 환경 변수를 일시적으로 설정하려면 다음 스크립트를 실행합니다.

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

**(선택 사항)** 쉘을 닫으면 OpenVINO 환경 변수가 제거됩니다. 옵션으로 다음과 같이 환경 변수를 영구적으로 설정할 수 있습니다.

에코 "소스 /home/pi/openvino_dist/bin/setupvars.sh" >> ~/.bashrc

변경 사항을 테스트하려면 새 터미널을 엽니다. 다음이 표시됩니다.

[setupvars.sh] OpenVINO 환경 초기화

이렇게 하면 Raspbian* OS용 OpenVINO™ 툴킷의 오픈 소스 배포 및 인텔® 뉴럴 컴퓨트 스틱 2 사용 시 빌드 절차를 완료합니다.

관련 주제
Raspberry Pi*에서 열린 모델 동물원 데모 구축
Raspberry Pi*용 워크플로
이제 ncappzoo는 인텔® NCS 2와 OpenVINO™ 툴킷을 지원합니다.
OpenVINO™ 툴킷 오픈 모델 동물원
인텔 뉴럴 컴퓨트 스틱(® 인텔® NCS 2) 장치용 네트워크 최적화
커뮤니티 포럼 및 기술 지원