| หมาย เหตุ |
|
ชุดเครื่องมือ OpenVINO™ปรับใช้แอปพลิเคชันและโซลูชันที่จําลองวิสัยทัศน์ของมนุษย์ได้อย่างรวดเร็ว ชุดเครื่องมือจะขยายเวิร์กโหลดคอมพิวเตอร์วิทัศน์ (CV) ทั่วทั้งฮาร์ดแวร์ Intel® โดยใช้ Convolutional Neural Networks (CNN) ซึ่งเพิ่มประสิทธิภาพสูงสุด โดยทั่วไปแล้ว ขั้นตอนเหล่านี้จะเป็นไปตาม วิธีการสร้างปลั๊กอิน ARM CPU อย่างไรก็ตาม จําเป็นต้องมีการเปลี่ยนแปลงเฉพาะเพื่อให้ทําทุกสิ่งบน Raspberry Pi 4* คู่มือนี้มีขั้นตอนการสร้างการกระจายโอเพนซอร์สของชุดเครื่องมือ OpenVINO™ สําหรับระบบปฏิบัติการ Raspbian* 32 บิตด้วยวิธีการคอมไพล์ข้าม
คลิกบนหัวข้อเพื่อดูรายละเอียด:
| โน้ต | คู่มือนี้จะสมมติฐานว่าคุณมีบอร์ด Raspberry Pi* ของคุณและทํางานกับระบบปฏิบัติการที่ระบุไว้ด้านล่าง |
ฮาร์ดแวร์
ระบบปฏิบัติการเป้าหมาย
| โน้ต | คู่มือนี้มีคําสั่งที่จําเป็นต้องดําเนินการเป็น root หรือ sudo access เพื่อติดตั้งอย่างถูกต้อง |
ตรวจสอบให้แน่ใจว่าซอฟต์แวร์อุปกรณ์ของคุณเป็นเวอร์ชันล่าสุด:
sudo apt update && sudo apt upgrade -y
| โน้ต | คุณสามารถทําตามคําแนะนําการติดตั้งตามเอกสารอย่างเป็นทางการของ Docker https://docs.docker.com/engine/install |
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker
| โน้ต | เวอร์ชัน openvino_contrib และชุดเครื่องมือ OpenVINO สําหรับบทความนี้อ้างอิงจาก 2022.1 |
ดาวน์โหลดซอร์สโค้ดและปรับเปลี่ยนไฟล์กําหนดค่า:
git clone --recurse-submodules --single-branch --branch=2022.1 https://github.com/openvinotoolkit/openvino_contrib.git
ไปที่ไดเรกทอรี arm_plugin:
cd openvino_contrib/modules/arm_plugin
แก้ไขเนื้อหาของไฟล์ Dockerfile.RPi32_buster ด้านล่างด้วยเครื่องมือแก้ไข:
vim dockerfiles/Dockerfile.RPi32_buster
เพิ่ม "RUN pip install protobuf==3.20.0" ในบรรทัดที่ 114 ตามที่แสดงในไดอะแกรมด้านล่าง

บันทึกไฟล์ที่แก้ไข
แก้ไขเนื้อหาของไฟล์ arm_cpu_plugin_build.sh ตามที่แสดงด้านล่างด้วยเครื่องมือแก้ไข:
vim scripts/arm_cpu_plugin_build.sh
แก้ไขบรรทัด 77, 78, 79 และ 136 และเพิ่มการเปลี่ยนแปลงตามที่แสดงในรูปแบบ ตัวหนา ด้านล่าง:
77 checkSrcTree $OPENCV_HOME https://github.com/opencv/opencv.git 4.5.5-openvino-2022.1 4.x
78 checkSrcTree $OPENVINO_HOME https://github.com/openvinotoolkit/openvino.git 2022.1.0 releases/2022/1
81 checkSrcTree $OMZ_HOME https://github.com/openvinotoolkit/open_model_zoo.git 2022.1.0 releases/2022/1
136 -DENABLE_INTEL_MYRIAD=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
บันทึกไฟล์ที่แก้ไข
ในขั้นตอนนี้เราจะเรียกใช้สคริปต์เพื่อดาวน์โหลดและข้ามชุดเครื่องมือ OpenVINO™คอมไพล์และส่วนประกอบอื่น ๆ เช่น OpenCV* ในสภาพแวดล้อมคอนเทนเนอร์ Docker :
ไปที่ไดเรกทอรีปลั๊กอิน ARM CPU:
cd openvino_contrib/modules/arm_plugin
สร้างภาพ Docker*:
docker image build -t arm-plugin -f dockerfiles/Dockerfile.RPi32_buster .
สร้างปลั๊กอินใน Docker* Container:
กระบวนการสร้างจะดําเนินการโดยสคริปต์ /arm_cpu_plugin_build.sh ที่ดําเนินการภายในไดเรกทอรี /arm_cpu_plugin (คําสั่งคอนเทนเนอร์เริ่มต้นเพื่อดําเนินการ) ผลลัพธ์ระดับกลางทั้งหมดและสิ่งประดิษฐ์การสร้างจะถูกจัดเก็บไว้ภายในไดเรกทอรีการทํางาน
เพื่อให้หนึ่งสามารถติดตั้งไดเรกทอรีการทํางานทั้งหมดที่จะได้รับผลลัพธ์ทั้งหมดเก็บไว้นอกภาชนะ:
mkdir build
docker container run --rm -ti -v $PWD/build:/arm_cpu_plugin arm-plugin
| โน้ต | มีตัวแปรสภาพแวดล้อมบางตัวที่ควบคุมการดําเนินการสคริปต์/arm_cpu_plugin_build.sh
|
ในโฟลเดอร์ build จะมีการสร้าง OV_ARM_package.tar.gz
ls build
ถ่ายโอน OV_ARM_package.tar.gz ไปยังอุปกรณ์เป้าหมาย (Raspberry Pi 4* 32 บิต Buster)
มีหลายวิธีในการถ่ายโอนแพ็คเกจไปยังอุปกรณ์เป้าหมาย (Raspberry Pi 4*) การคัดลอกที่ปลอดภัยไปยังอุปกรณ์เป้าหมายโดยตรงคัดลอกแพ็คเกจไปยังไดรฟ์ THUMB USB และถ่ายโอน
บทความนี้จะแสดงวิธีการติดตั้งไดรฟ์หัวแม่มือ USB ในเครื่องโฮสต์และคัดลอกแพ็คเกจการสร้างไปยังไดรฟ์ thumb ที่ติดตั้ง
เสียบไดรฟ์ธัมบ์ USB เข้าไปในพอร์ต USB ระบบ แล้วตรวจสอบการบู๊ตอุปกรณ์โดยใช้คําสั่งด้านล่าง
sudo Fdisk -l
เมื่อตรวจสอบแล้วว่าอุปกรณ์บูทแล้ว ให้ยึดอุปกรณ์บูท (เช่น /dev/sda) ลงใน/mnt
sudo mount /dev/sda /mnt
ถัดไปคัดลอกแพ็คเกจ OpenVINO ไปยังไดรฟ์หัวแม่มือ USB
sudo cp -rf build/OV_ARM_package.tar.gz /mnt/
หลังจากเสร็จสิ้นการคอมไพล์ข้ามและคัดลอก OV_ARM_package.tar.gz ไปยังอุปกรณ์เป้าหมาย (Raspberry Pi 4*) สําเร็จ
ติดตั้งเครื่องมือคอมไพล์
sudo apt update
sudo Apt ติดตั้ง cmake -y
ดึงข้อมูล OV_ARM_package.tar.gzpackage
mkdir ~/openvino_dist/
tar -xvzf OV_ARM_package.tar.gz -C ~/openvino_dist/
แหล่งที่มาของตัวแปรติดตั้ง
source ~/openvino_dist/setupvars.sh
คอมไพล์โค้ดตัวอย่าง
cd ~/openvino_dist/samples/cpp
./build_samples.sh
หากต้องการตรวจสอบว่าชุดเครื่องมือและปลั๊กอิน Intel® Neural Compute Stick 2 และ AR* ทํางานบนอุปกรณ์ของคุณ ให้ทําตามขั้นตอนต่อไปนี้:
ชุดเครื่องมือ Intel® OpenVINO™ ประกอบด้วยแอพพลิเคชั่นตัวอย่างที่ใช้เอนจินการอนุมานและ Intel® Neural Compute Stick 2 หนึ่งในแอปพลิเคชันคือ hello_query_device ซึ่งสามารถพบได้ในไดเรกทอรีต่อไปนี้:
~/inference_engine_cpp_samples_build/armv7l/Release
เรียกใช้คําสั่งต่อไปนี้เพื่อทดสอบ hello_query_device:
cd ~/inference_engine_cpp_samples_build/armv7l/Release
./hello_query_device
โดยควรพิมพ์กล่องโต้ตอบซึ่งอธิบายอุปกรณ์ที่มีอยู่สําหรับการอนุมานที่มีอยู่ในระบบ
แอปพลิเคชันต้องการโมเดลเพื่อส่งผ่านอินพุต คุณสามารถรับโมเดลสําหรับชุดเครื่องมือ Intel® OpenVINO™ ในรูปแบบ IR ตาม:
สําหรับจุดประสงค์ของเรา การดาวน์โหลดโดยตรงนั้นง่ายที่สุด ใช้คําสั่งต่อไปนี้เพื่อจับแบบจําลองการตรวจจับจักรยานคน-ยานพาหนะ:
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.bin
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml
| โน้ต | Intel® Neural Compute Stick 2 ต้องใช้โมเดลที่ปรับให้เหมาะสมสําหรับรูปแบบจุดลอยตัว 16 บิต ที่เรียกว่า FP16 หากแตกต่างจากตัวอย่าง โมเดลของคุณอาจต้องแปลงโดยใช้ Model Optimizer เป็น FP16 บนเครื่องที่แยกต่างหาก เนื่องจากไม่รองรับ Model Optimizer บน Raspberry Pi* |
รายการสุดท้ายที่ต้องการคืออินพุตสําหรับโครงข่ายประสาทเทียม สําหรับรุ่นที่เราดาวน์โหลด คุณต้องมีภาพที่มีช่องสี 3 ช่อง ดาวน์โหลดไฟล์ที่จําเป็นลงในบอร์ดของคุณ:
wget https://cdn.pixabay.com/photo/2018/07/06/00/33/person-3519503_960_720.jpg -O ~/Downloads/person.jpg
ต้องเพิ่มกฎ udev บางกฎเพื่อให้ระบบจดจํา Intel® NCS2 อุปกรณ์ USB
| โน้ต | หากผู้ใช้ปัจจุบันไม่ได้เป็นสมาชิกของกลุ่มผู้ใช้ ให้เรียกใช้คําสั่งต่อไปนี้ และเริ่มต้นอุปกรณ์ของคุณใหม่ |
sudo usermod -a -G users "$(whoami)"
ตั้งค่าสภาพแวดล้อม OpenVINO™
source /home/pi/openvino_dist/setupvars.sh
ในการดําเนินการอนุมานบน Intel® Neural Compute Stick 2 ให้ติดตั้งกฎ USB โดยการเรียกใช้สคริปต์ install_NCS_udev_rules.sh :
sh /home/pi/openvino_dist/install_dependencies/install_NCS_udev_rules.sh
ไดรเวอร์ USB ควรติดตั้งอย่างถูกต้องในตอนนี้ หากตรวจไม่พบ Intel® Neural Compute Stick 2 เมื่อเรียกใช้ตัวอย่าง ให้รีสตาร์ตอุปกรณ์ของคุณและลองอีกครั้ง
เมื่อดาวน์โหลดรุ่น ภาพอินพุตจะพร้อมใช้งาน และ Intel® Neural Compute Stick 2 จะเสียบเข้ากับพอร์ต USB ให้ใช้คําสั่งต่อไปนี้เพื่อเรียกใช้ benchmark_app:
cd ~/inference_engine_cpp_samples_build/armv7l/Release
./benchmark_app -i ~/Downloads/person.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD
การดําเนินการนี้จะเรียกใช้แอปพลิเคชันด้วยตัวเลือกที่เลือก ธง -d แจ้งโปรแกรมว่าอุปกรณ์ใดจะใช้สําหรับการอนุมาน การระบุ MYRIAD จะเปิดใช้งานปลั๊กอิน MYRIAD โดยใช้ Intel® Neural Compute Stick 2 หลังจากดําเนินการคําสั่งสําเร็จ เทอร์มินัลจะแสดงสถิติสําหรับการอนุมาน นอกจากนี้ คุณยังสามารถใช้ปลั๊กอิน CPU เพื่อเรียกใช้การอนุมานบน ARM CPU ของอุปกรณ์ Raspberry Pi 4* ของคุณ โปรดดู ข้อมูลจําเพาะชุดการทํางานปลั๊กอิน Arm* สําหรับการสนับสนุนการดําเนินการเนื่องจากรุ่นที่ใช้ในตัวอย่างนี้ไม่รองรับโดยปลั๊กอิน ARM*
[ INFO ] First inference took 410.75 ms
[Step 11/11] Dumping statistics report
[ INFO ] Count: 388 iterations
[ INFO ] Duration: 60681.72 ms
[ INFO ] Latency:
[ INFO ] Median: 622.99 ms
[ INFO ] Average: 623.40 ms
[ INFO ] Min: 444.03 ms
[ INFO ] Max: 868.18 ms
[ INFO ] Throughput: 6.39 FPS
หากแอปพลิเคชันรันบน Intel® NCS2 ของคุณสําเร็จ ชุดเครื่องมือ OpenVINO™ และ Intel® Neural Compute Stick 2 ได้รับการตั้งค่าไว้อย่างถูกต้องสําหรับการใช้งานบนอุปกรณ์ของคุณ
คุณต้องอัปเดตตัวแปรสภาพแวดล้อมต่างๆ ก่อนที่จะคอมไพล์และเรียกใช้งานแอปพลิเคชันชุดเครื่องมือ OpenVINO เรียกใช้สคริปต์ต่อไปนี้เพื่อตั้งค่าตัวแปรสภาพแวดล้อมชั่วคราว:
source /home/pi/openvino_dist/setupvars.sh
**(ตัวเลือก)** ตัวแปรสภาพแวดล้อม OpenVINO™จะถูกเอาออกเมื่อคุณปิดเชลล์ คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมอย่างถาวรได้ดังนี้:
echo "source /home/pi/openvino_dist/setupvars.sh" >> ~/.bashrc
ในการทดสอบการเปลี่ยนแปลงของคุณ ให้เปิดเทอร์มินัลใหม่ คุณจะเห็นข้อความต่อไปนี้:
[setupvars.sh] OpenVINO environment initialized
เสร็จสิ้นขั้นตอนการคอมไพล์และสร้างสําหรับการแจกจ่ายโอเพนซอร์สของชุดเครื่องมือ OpenVINO™ สําหรับระบบปฏิบัติการ Raspbian* และการใช้งานด้วยปลั๊กอิน Intel® Neural Compute Stick 2 และ ARM*