Chuyển đến nội dung chính
Hỗ trợ cơ sở tri thức

Bộ công cụ biên dịch chéo OpenVINO™ và plugin NCS2 sử dụng Dockerfile được cấu hình sẵn cho hệ điều hành Debian* 32-bit

Loại nội dung: Cài đặt & Thiết lập   |   ID bài viết: 000057005   |   Lần duyệt cuối: 20/02/2025
Ghi chú
  • Tất cả các bước được yêu cầu trong quá trình cài đặt.
  • Các bước này đã được thử nghiệm với bo mạch Raspberry Pi 4* và Raspbian* Buster, 32-bit.
  • Cần có kết nối Internet để làm theo các bước trong hướng dẫn này.
  • Bài viết đã được xác minh bằng cách sử dụng bản phát hành 2022.1 của bản phân phối mã nguồn mở của bộ công cụ OpenVINO™.

Bộ công cụ OpenVINO™ nhanh chóng triển khai các ứng dụng và giải pháp mô phỏng tầm nhìn của con người. Bộ công cụ mở rộng khối lượng công việc thị giác máy tính (CV) trên phần cứng Intel® dựa trên Mạng nơ-ron tích chập (CNN), giúp tối đa hóa hiệu suất. Các bước này thường tuân theo plugin Cách xây dựng CPU ARM có sẵn. Tuy nhiên, cần có những thay đổi cụ thể để chạy mọi thứ trên Raspberry Pi 4*. Hướng dẫn này cung cấp các bước để xây dựng bản phân phối mã nguồn mở của bộ công cụ OpenVINO™ cho HĐH Raspbian* 32-bit bằng phương pháp biên dịch chéo.

Nhấp vào chủ đề để biết chi tiết:

Yêu cầu hệ thống
Ghi Hướng dẫn này giả định rằng bạn đã thiết lập và chạy bo mạch Raspberry Pi* với hệ điều hành được liệt kê bên dưới.

Phần cứng

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ sẽ hoạt động.)
  • Thẻ nhớ microSD tối thiểu 16 GB
  • Thanh Tính toán Nơ-ron Intel® 2
  • Kết nối Internet Ethernet hoặc mạng không dây tương thích
  • Máy host có cài đặt docker container

Hệ điều hành mục tiêu

  • Raspbian* Buster, 32-bit
Thiết lập môi trường xây dựng của bạn
Ghi Hướng dẫn này chứa các lệnh cần được thực thi dưới dạng quyền truy cập root hoặc sudo để cài đặt chính xác.

Đảm bảo phần mềm thiết bị của bạn được cập nhật:

sudo apt update && sudo apt upgrade -y

Cài đặt Docker Container
Ghi Bạn có thể làm theo hướng dẫn cài đặt dựa trên tài liệu chính thức của 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

Clone openvino_contrib repositor
Ghi Phiên bản bộ công cụ openvino_contrib và OpenVINO cho bài viết này dựa trên 2022.1

Tải xuống mã nguồn và sửa đổi tệp cấu hình:

git clone --recurse-submodules --single-branch --branch=2022.1 https://github.com/openvinotoolkit/openvino_contrib.git

Chuyển đến thư mục arm_plugin:

cd openvino_contrib/modules/arm_plugin

Sửa đổi nội dung của tệp Dockerfile.RPi32_buster như dưới đây bằng các công cụ chỉnh sửa:

vim dockerfiles/Dockerfile.RPi32_buster

Thêm "RUN pip install protobuf==3.20.0" trong dòng 114, như thể hiện trong sơ đồ dưới đây.

Screenshot

Lưu tệp đã chỉnh sửa.

Sửa đổi nội dung của tệp arm_cpu_plugin_build.sh như hình dưới đây bằng các công cụ chỉnh sửa:

vim scripts/arm_cpu_plugin_build.sh

Chỉnh sửa các dòng 77, 78, 79 và 136 và thêm các thay đổi như được in đậm bên dưới:

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 \

Lưu tệp đã chỉnh sửa.

Bộ công cụ OpenVINO™ biên dịch chéo trong môi trường bộ chứa Docker

Ở bước này, chúng ta sẽ chạy script để download và cross-compile OpenVINO™ toolkit và các thành phần khác như OpenCV* trong môi trường Docker container:

Chuyển đến thư mục plugin ARM CPU:

cd openvino_contrib/modules/arm_plugin

Tạo hình ảnh Docker*:

docker image build -t arm-plugin -f dockerfiles/Dockerfile.RPi32_buster .

Xây dựng plugin trong bộ chứa Docker*:

Quá trình xây dựng được thực hiện bởi /arm_cpu_plugin_build.sh tập lệnh được thực thi bên trong thư mục /arm_cpu_plugin (lệnh container mặc định để thực thi). Tất cả các kết quả trung gian và tạo tác xây dựng được lưu trữ bên trong thư mục làm việc.

Vì vậy, người ta có thể gắn kết toàn bộ thư mục làm việc để có được tất cả các kết quả được lưu trữ bên ngoài container:

mkdir build

docker container run --rm -ti -v $PWD/build:/arm_cpu_plugin arm-plugin

Ghi

Có một vài biến môi trường kiểm soát việc thực thi tập lệnh /arm_cpu_plugin_build.sh .

  • BUILD_JOBS kiểm soát số lượng luồng để biên dịch đồng thời
  • BUILD_TYPE kiểm soát cấu hình Gỡ lỗi/Phát hành (Phát hành theo mặc định)
  • UPDATE_SOURCES kiểm soát việc truy xuất nguồn
    • sạch - Không tải lại nguồn nếu đã tải. Chỉ cần làm sạch các thư mục xây dựng (mặc định)
    • Tải lại - Xóa tất cả các nguồn đã tải và truy xuất lại chúng
    • Kiểm tra - Không tải lại hoặc dọn dẹp nguồn
  • WITH_OMZ_DEMO xây dựng các bản demo C++ Open Model Zoo (BẬT theo mặc định)

Trong thư mục xây dựng , OV_ARM_package.tar.gz được tạo

ls build

Chuyển OV_ARM_package.tar.gz sang thiết bị đích (Raspberry Pi 4* 32-bit Buster)
Có nhiều cách khác nhau để chuyển các gói sang thiết bị đích (Raspberry Pi 4 *), sao chép an toàn trực tiếp vào thiết bị đích, sao chép gói vào ổ USB và chuyển nó.
Bài viết này sẽ hướng dẫn cách gắn ổ USB vào máy chủ và sao chép gói bản dựng vào ổ đĩa ngón tay cái được gắn.

Cắm ổ USB vào cổng USB hệ thống, sau đó kiểm tra khởi động thiết bị bằng lệnh bên dưới;

sudo fdisk -l

Sau khi xác minh thiết bị khởi động, gắn khởi động thiết bị (ví dụ /dev/sda) vào /mnt;

sudo mount /dev/sda /mnt

Tiếp theo, sao chép gói OpenVINO vào ổ USB;

sudo cp -rf build/OV_ARM_package.tar.gz /mnt/

Xác minh gói bản dựng

Sau khi hoàn thành biên dịch chéo và sao chép thành công OV_ARM_package.tar.gz vào thiết bị đích (Raspberry Pi 4*).

Cài đặt công cụ biên dịch

sudo apt update
sudo apt cài đặt cmake -y

Giải nén OV_ARM_package.tar.gzpackage

mkdir ~/openvino_dist/
tar -xvzf OV_ARM_package.tar.gz -C ~/openvino_dist/

Nguồn biến thiết lập

source ~/openvino_dist/setupvars.sh

Biên dịch mã mẫu

cd ~/openvino_dist/samples/cpp
./build_samples.sh

Để xác minh rằng bộ công cụ và plugin Thanh Tính toán Nơ-ron Intel® 2 và ARM* hoạt động trên thiết bị của bạn, hãy hoàn tất các bước sau:

  1. Chạy ứng dụng mẫu hello_query_device để xác nhận rằng tất cả các thư viện tải chính xác.
  2. Tải xuống mô hình được đào tạo trước.
  3. Chọn một đầu vào cho mạng nơ-ron (tức là một tệp hình ảnh).
  4. Cấu hình trình điều khiển USB Linux* Thanh Tính toán Nơ-ron Intel® 2.
  5. Chạy benchmark_app với mô hình và đầu vào đã chọn.

Ứng dụng mẫu

Bộ công cụ Intel® OpenVINO™ bao gồm các ứng dụng mẫu sử dụng Công cụ suy luận và Thanh Tính toán Nơ-ron Intel® 2. Một trong những ứng dụng là hello_query_device, có thể được tìm thấy trong thư mục sau:

~/inference_engine_cpp_samples_build/armv7l/Release

Chạy các lệnh sau để kiểm tra hello_query_device:

cd ~/inference_engine_cpp_samples_build/armv7l/Release

./hello_query_device

Nó sẽ in một hộp thoại, mô tả các thiết bị có sẵn để suy luận có trên hệ thống.

Tải xuống mô hình

Ứng dụng cần một mô hình để chuyển đầu vào. Bạn có thể lấy các mô hình cho bộ công cụ Intel® OpenVINO™ ở định dạng IR bằng cách:

  • Sử dụng Trình tối ưu hóa Mô hình để chuyển đổi mô hình hiện có từ một trong các khung được hỗ trợ sang định dạng IR cho Công cụ suy luận. Lưu ý rằng gói Trình tối ưu hóa Mô hình không có sẵn cho Raspberry Pi*.
  • Sử dụng công cụ Trình tải xuống Mô hình để tải xuống từ Open Model Zoo. Chỉ những người mẫu được đào tạo trước công khai.
  • Tải xuống các tệp IR trực tiếp từ storage.openvinotookit.org

Đối với mục đích của chúng tôi, tải xuống trực tiếp là dễ dàng nhất. Sử dụng các lệnh sau để lấy mô hình phát hiện người-xe-xe đạp:

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

Ghi Thanh Tính toán Nơ-ron Intel® 2 yêu cầu các mô hình được tối ưu hóa cho định dạng dấu phẩy động 16 bit được gọi là FP16. Nếu khác với ví dụ, mô hình của bạn có thể yêu cầu chuyển đổi bằng Trình tối ưu hóa mô hình sang FP16 trên một máy riêng biệt vì Trình tối ưu hóa mô hình không được hỗ trợ trên Raspberry Pi*.

Đầu vào cho mạng thần kinh

Mục cuối cùng cần thiết là đầu vào cho mạng lưới thần kinh. Đối với mô hình chúng tôi đã tải xuống, bạn cần một hình ảnh có ba kênh màu. Tải các tập tin cần thiết xuống bo mạch của bạn:

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

Cấu hình Trình điều khiển USB Linux Thanh Tính toán Nơ-ron Intel® 2

Một số quy tắc udev phải được thêm vào để cho phép hệ thống nhận dạng các thiết bị USB Intel® NCS2.

Ghi Nếu người dùng hiện tại không phải là thành viên của nhóm người dùng, hãy chạy lệnh sau và khởi động lại thiết bị của bạn.

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

Thiết lập môi trường OpenVINO™:

source /home/pi/openvino_dist/setupvars.sh

Để thực hiện suy luận trên Thanh Tính toán Nơ-ron Intel® 2, hãy cài đặt các quy tắc USB bằng cách chạy tập lệnh install_NCS_udev_rules.sh :

sh /home/pi/openvino_dist/install_dependencies/install_NCS_udev_rules.sh

Trình điều khiển USB sẽ được cài đặt chính xác ngay bây giờ. Nếu không phát hiện thấy Thanh Tính toán Nơ-ron Intel® 2 khi chạy demo, hãy khởi động lại thiết bị của bạn và thử lại.

Chạy benchmark_app

Khi mô hình được tải xuống, hình ảnh đầu vào có sẵn và Thanh Tính toán Nơ-ron Intel® 2 được cắm vào cổng USB, hãy sử dụng lệnh sau để chạy 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

Thao tác này sẽ chạy ứng dụng với các tùy chọn đã chọn. Cờ -d cho chương trình biết nên sử dụng thiết bị nào để suy luận. Chỉ định MYRIAD sẽ kích hoạt plugin MYRIAD , sử dụng Thanh Tính toán Nơ-ron Intel® 2. Sau khi lệnh thực thi thành công, thiết bị đầu cuối sẽ hiển thị số liệu thống kê để suy luận. Bạn cũng có thể sử dụng plugin CPU để chạy suy luận trên CPU ARM của thiết bị Raspberry Pi 4*, tham khảo đặc tả bộ hoạt động của plugin ARM* để được hỗ trợ hoạt động vì mô hình được sử dụng trong ví dụ này không được plugin ARM * hỗ trợ.

[ 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


Nếu ứng dụng chạy thành công trên Intel® NCS2 của bạn, bộ công cụ và Thanh Tính toán Nơ-ron Intel® 2 OpenVINO™ sẽ được thiết lập chính xác để sử dụng trên thiết bị của bạn.

Biến môi trường

Bạn phải cập nhật một số biến môi trường trước khi biên dịch và chạy các ứng dụng bộ công cụ OpenVINO. Chạy tập lệnh sau để đặt các biến môi trường tạm thời:

source /home/pi/openvino_dist/setupvars.sh

**(Tùy chọn)** Các biến môi trường OpenVINO™ được loại bỏ khi bạn đóng shell. Như một tùy chọn, bạn có thể đặt vĩnh viễn các biến môi trường như sau:

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

Để kiểm tra thay đổi của bạn, hãy mở một thiết bị đầu cuối mới. Bạn sẽ thấy như sau:

[setupvars.sh] OpenVINO environment initialized

Điều này hoàn thành quy trình biên dịch chéo và xây dựng cho bản phân phối mã nguồn mở của bộ công cụ OpenVINO™ cho hệ điều hành Raspbian* và cách sử dụng với plugin Thanh Tính toán Nơ-ron Intel® 2 và ARM*.

Các sản phẩm liên quan

Bài viết này áp dụng cho các sản phẩm 2.

Các sản phẩm đã ngưng sản xuất

Tuyên bố miễn trừ trách nhiệm

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.