การสร้างชุดเครื่องมือOpenVINO™โอเพนซอร์สสําหรับ Raspbian* OS และ Intel® Neural Compute Stick 2

เอกสาร

การติดตั้งและตั้งค่า

000057005

14/04/2022

หมาย เหตุ
  • ต้องระบุขั้นตอนทั้งหมดในการติดตั้ง
  • ขั้นตอนเหล่านี้ได้รับการทดสอบกับบอร์ด Raspberry Pi 4* และ Raspbian* Buster รุ่น 32 บิต
  • ต้องดําเนินการเชื่อมต่ออินเทอร์เน็ตตามขั้นตอนต่างๆ ในคู่มือนี้
  • บทความนี้ได้รับการรับรองโดยใช้การเผยแพร่โอเพนซอร์สของชุดเครื่องมือ OpenVINO™ ในปี 2021.3

ชุดเครื่องมือ OpenVINO™ ปรับใช้แอปพลิเคชันและโซลูชันที่จําลองวิสัยทัศน์ของมนุษย์ได้อย่างรวดเร็ว ชุดเครื่องมือขยายเวิร์กโหลดคอมพิวเตอร์วิทัศน์ (CV) ทั่วทั้งฮาร์ดแวร์ของ Intel® ที่ใช้ Convolutional Neural Networks (CNN) ซึ่งเพิ่มประสิทธิภาพสูงสุด โดยทั่วไปขั้นตอนเหล่านี้ให้ปฏิบัติตามบทความนี้เกี่ยวกับ ชุดเครื่องมือ Intel® Neural Compute Stick 2 และ Open Source OpenVINO™ แต่มาพร้อมกับการเปลี่ยนแปลงเฉพาะเพื่อให้ทุกสิ่งทํางานบนบอร์ดของคุณ

คู่มือนี้อธิบายขั้นตอนการสร้างการกระจายโอเพนซอร์สของชุดเครื่องมือ OpenVINO™ สําหรับระบบปฏิบัติการ Raspbian* และใช้กับIntel® Neural Compute Stick 2 (Intel® NCS2)

หมาย เหตุIntel® Movidius™ Neural Compute Stick เดิมยังเข้ากันได้กับชุดเครื่องมือ OpenVINO™ และอุปกรณ์ดังกล่าวสามารถใช้แทนIntel® Neural Compute Stick 2ในบทความนี้ได้

คลิก หรือหัวข้อเพื่อดูรายละเอียด:

ความต้องการของระบบ
หมาย เหตุคู่มือนี้ถือว่าคุณมีบอร์ด Raspberry Pi* ทํางานและใช้งานกับระบบปฏิบัติการที่ระบุไว้ด้านล่าง

ฮาร์ดแวร์

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ ควรทํางาน)
  • การ์ด microSD ขนาด 8 GB เป็นอย่างน้อย
  • Intel® Neural Compute Stick 2
  • การเชื่อมต่ออินเทอร์เน็ตอีเธอร์เน็ตหรือเครือข่ายไร้สายที่เข้ากันได้
  • อะแดปเตอร์จ่ายไฟ DC เฉพาะ

ระบบปฏิบัติการเป้าหมาย

  • Raspbian* ส่วนเสริม, 32 บิต

  • Raspbian* Buster, 32 บิต
การตั้งค่าสภาพแวดล้อมการสร้างของคุณ
หมาย เหตุคู่มือนี้มีคําสั่งที่จําเป็นต้องดําเนินการเป็นการเข้าถึง root หรือ sudo เพื่อติดตั้งอย่างถูกต้อง

ตรวจสอบให้แน่ใจว่าซอฟต์แวร์อุปกรณ์ของคุณทันสมัย:

sudo apt update && sudo apt upgrade -y

การพึ่งพาของชุดเครื่องมือบางส่วนไม่มีไบนารี ARMv7 ที่สร้างไว้ล่วงหน้าและจําเป็นต้องสร้างจากแหล่งที่มา ซึ่งจะช่วยเพิ่มเวลาในการสร้างได้อย่างมากเมื่อเทียบกับแพลตฟอร์มอื่น การตบแต่งชุดเครื่องมือต้องใช้ขั้นตอนต่อไปนี้:

การติดตั้งเครื่องมือ Build

sudo apt install build-essential

การติดตั้ง CMake* จากแหล่งที่มา

ดึงข้อมูล CMake จากหน้ารีลีส Kitware* GitHub* ดึงข้อมูลและป้อนโฟลเดอร์ที่แตกออกมา:

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 เพื่อติดตั้งการขึ้นต่อกันเพิ่มเติมเริ่มรุ่น:

./bootstrap

make -j4

sudo make install

หมาย เหตุจํานวนงานที่คําสั่ง make ใช้สามารถปรับได้ด้วยแฟลก -j ขอแนะนําให้ตั้งค่าจํานวนงานตามจํานวนคอร์บนแพลตฟอร์มของคุณ

คุณสามารถตรวจสอบจํานวนคอร์ในระบบของคุณโดยใช้คําสั่ง:

grep -c ^processor /proc/cpuinfo

โปรดทราบว่าการตั้งค่าหมายเลขที่สูงเกินไปอาจนําไปสู่การเกินหน่วยความจําและทําให้ชุดประกอบล้มเหลว หากการอนุญาตเวลา ขอแนะนําให้รันงาน 1 ถึง 2 งาน

การติดตั้ง OpenCV จากแหล่งที่มา

ชุดเครื่องมือ Intel® OpenVINO™ ใช้พลังของ OpenCV* ในการเร่งการอ้างอิงตามการมองเห็น ในขณะที่กระบวนการ CMake สําหรับชุดเครื่องมือ Intel® OpenVINO™ จะดาวน์โหลด 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 แทนที่จะโคลนสาขาหลักโดยตรงตามค่าเริ่มต้น

ชุดเครื่องมือ Intel® OpenVINO™ เวอร์ชันโอเพนซอร์สมีให้ใช้งานผ่าน GitHub โฟลเดอร์คลังข้อมูลมีชื่อว่า openvino

cd ~/

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

ที่เก็บข้อมูลยังมีสินค้าย่อยที่จําเป็นต้องดึงข้อมูล:

cd ~/openvino

git submodule update --init --recursive

ชุดเครื่องมือ Intel® OpenVINO™ มีการขึ้นต่อกันของรุ่นต่างๆ สคริปต์ install_build_dependencies.sh จะดึงสคริปต์มาให้คุณ หากปัญหาเกิดขึ้นเมื่อพยายามเรียกใช้สคริปต์ คุณต้องติดตั้งการขึ้นต่อกันแต่ละตัว

เรียกใช้สคริปต์เพื่อติดตั้งการขึ้นต่อกันสําหรับชุดเครื่องมือ Intel® 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 เพื่อเป็นแนวทางและปรับกระบวนการสร้างให้ง่ายขึ้น หากต้องการสร้างทั้งเอนจินการอนุมานและปลั๊กอิน MYRIAD สําหรับIntel® Neural Compute Stick 2 ให้ใช้คําสั่งต่อไปนี้:

หมาย เหตุลบภาพพื้นหลัง (\) ทั้งหมดออกเมื่อเรียกใช้งานคําสั่งด้านล่าง เครื่องหมายทับหลังจะใช้เพื่อแจ้งให้ทราบว่าคําสั่งเหล่านี้ไม่ได้ถูกแยกออกจากกัน

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

หากคําสั่ง make ล้มเหลวเนื่องจากปัญหาของไลบรารี OpenCV ตรวจสอบให้แน่ใจว่าคุณได้บอกระบบว่าการติดตั้ง OpenCV ของคุณอยู่ที่ใด หากชุดประกอบเสร็จสมบูรณ์ณ จุดนี้ ชุดเครื่องมือ Intel® OpenVINO™ พร้อมทํางานแล้ว ควรสังเกตว่าชุดมีการวางไว้ในโฟลเดอร์ ~/openvino/inference-engine/bin/armv7l/Release

การตรวจสอบการติดตั้ง

หลังจากสร้างเอนจินการอนุมานเสร็จสิ้นแล้ว คุณควรตรวจสอบว่ามีการติดตั้งทุกอย่างอย่างถูกต้อง หากต้องการตรวจสอบว่าชุดเครื่องมือและIntel® Neural Compute Stick 2ทํางานบนอุปกรณ์ของคุณหรือไม่ ให้ทําตามขั้นตอนต่อไปนี้:

  1. เรียกใช้โปรแกรมตัวอย่างobject_detection_sample_ssdเพื่อยืนยันว่าไลบรารีทั้งหมดโหลดอย่างถูกต้อง
  2. ดาวน์โหลด โมเดลที่ผ่านการฝึกอบรม
  3. เลือก อินพุตสําหรับโครงข่ายประสาทเทียม
  4. กําหนดค่า ไดรเวอร์ usb Intel® Neural Compute Stick 2 Linux*
  5. เรียกใช้object_detection_sample_ssdด้วยรุ่นและอินพุตที่เลือก

ตัวอย่างการใช้งาน

ชุดเครื่องมือ Intel® OpenVINO™ ประกอบด้วยแอปพลิเคชันตัวอย่างที่ใช้ Inference Engine และIntel® Neural Compute Stick 2 หนึ่งใน โปรแกรมobject_detection_sample_ssd ซึ่งสามารถ พบได้ใน:

~/openvino/bin/armv7l/Release

เรียกใช้คําสั่งต่อไปนี้เพื่อทดสอบ object_detection_sample_ssd:

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

โดยควรพิมพ์กล่องโต้ตอบวิธีใช้ซึ่งอธิบายตัวเลือกที่มีอยู่สําหรับโปรแกรม

การดาวน์โหลดรุ่น

โปรแกรมต้องการโมเดลเพื่อส่งผ่านอินพุต คุณสามารถขอรับรุ่นของชุดเครื่องมือ Intel® OpenVINO™ ในรูปแบบ IR ตาม:

  • การใช้ Model Optimizer เพื่อแปลงโมเดลที่มีอยู่จากหนึ่งในเฟรมเวิร์กที่รองรับในรูปแบบ IR สําหรับ Inference Engine
  • การใช้เครื่องมือตัวดาวน์โหลดโมเดลเพื่อดาวน์โหลดจาก Open Model Zoo
  • ดาวน์โหลดไฟล์ IR โดยตรงจาก download.01.org

เพื่อจุดประสงค์ของเรา การดาวน์โหลดโดยตรงนั้นง่ายที่สุด ใช้คําสั่งต่อไปนี้เพื่อดึงโมเดล 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

หมาย เหตุIntel® Neural Compute Stick 2 ต้องการรุ่นที่ปรับให้เหมาะสมสําหรับรูปแบบจุดลอยตัว 16 บิตที่เรียกว่า FP16 รุ่นของคุณหากแตกต่างจากตัวอย่าง อาจต้องมีการแปลงโดยใช้ Model Optimizer เป็น FP16

อินพุตสําหรับโครงข่ายประสาทเทียม

รายการสุดท้ายที่จําเป็นคือการป้อนข้อมูลสําหรับโครงข่ายประสาทเทียม สําหรับรุ่นที่เราดาวน์โหลดมา คุณจําเป็นต้องมีภาพที่มีช่องสี 3 ช่อง ดาวน์โหลดไฟล์ที่จําเป็นไปยังบอร์ดของคุณ:

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

การกําหนดค่าไดรเวอร์ usb Intel® Neural Compute Stick 2 Linux

ต้องเพิ่มกฎ udev บางอย่างเพื่อให้ระบบจดจําอุปกรณ์ USB Intel® NCS2

หมาย เหตุหากผู้ใช้ปัจจุบันไม่ได้เป็นสมาชิกของกลุ่มผู้ใช้ ให้เรียกใช้คําสั่งต่อไปนี้และรีบูตอุปกรณ์ของคุณ

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

สภาพแวดล้อมSet up the OpenVINO™:

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

To perform การอนุมานบนIntel® Neural Compute Stick 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

เมื่อดาวน์โหลดรุ่นแล้ว รูปภาพอินพุตจะพร้อมใช้งาน และมีการเสียบIntel® Neural Compute Stick 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 เปิดใช้งานปลั๊กอิน MYRIAD โดยใช้Intel® Neural Compute Stick 2 หลังจากดําเนินการคําสั่งสําเร็จแล้ว เทอร์มินัลจะแสดงสถิติสําหรับการอนุมานและสร้างผลลัพธ์ของภาพ

[ 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

หากแอปพลิเคชันทํางานสําเร็จในIntel® NCS2ของคุณ OpenVINO™ชุดเครื่องมือและIntel® Neural Compute Stick 2ถูกตั้งค่าไว้อย่างถูกต้องสําหรับใช้บนอุปกรณ์ของคุณ

การตรวจสอบการผูกโมดูล nGraph กับ Python

เรียกใช้งานการสาธิต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

หากแอปพลิเคชันทํางานสําเร็จในIntel® NCS2ของคุณ โมดูล nGraph จะผูกเข้ากับ Python อย่างถูกต้อง

ตัวแปรสภาพแวดล้อม

คุณต้องอัพเดตตัวแปรสภาพแวดล้อมหลายตัวก่อนที่คุณจะคอมไพล์และรันแอปพลิเคชันชุดเครื่องมือ OpenVINO เรียกใช้สคริปต์ต่อไปนี้เพื่อตั้งค่าตัวแปรสภาพแวดล้อมชั่วคราว:

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

**(ไม่บังคับ)** ตัวแปรสภาพแวดล้อมOpenVINOจะถูกลบออกเมื่อคุณปิด Shell ในฐานะตัวเลือก คุณสามารถตั้งตัวแปรสภาพแวดล้อมได้ดังนี้:

echo "source /home/pi/openvino_dist/bin/setupvars.sh" >> ~/.bashrc

หากต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้เปิดเทอร์มินัลใหม่ คุณจะเห็นรายการต่อไปนี้:

[setupvars.sh] เริ่มต้นสภาพแวดล้อมOpenVINO

ซึ่งเป็นขั้นตอนการสร้างสําหรับการกระจายชุดเครื่องมือOpenVINO™แบบโอเพนซอร์สสําหรับระบบปฏิบัติการ Raspbian* และการใช้งานกับIntel® Neural Compute Stick 2

หัวข้อที่เกี่ยวข้อง
การสร้างการสาธิต Zoo Model แบบเปิดบน Raspberry Pi*
ขั้นตอนการทํางานสําหรับ Raspberry Pi*
ตอนนี้ ncappzoo รองรับ Intel® NCS 2 และชุดเครื่องมือ OpenVINO™
สวนโจวแบบเปิดของชุดเครื่องมือ OpenVINO™
ปรับเครือข่ายให้เหมาะสมสําหรับอุปกรณ์ Intel® Neural Compute Stick (Intel® NCS 2)
ฟอรัมชุมชนและการสนับสนุนทางเทคนิค