跳到主要內容
支援知識庫

使用適用於 32 位 Debian*作系統的預配置的 Dockerfile 交叉編譯OpenVINO™工具包和 NCS2 外掛程式

內容類型: 安裝與設定   |   文章 ID: 000057005   |   最近查看日期: 2025 年 02 月 20 日
筆記
  • 安裝過程中需要執行所有步驟。
  • 這些步驟已在 Raspberry Pi 4* 主機板和Raspbian* Buster(32 位)上進行測試。
  • 按照本指南中的步驟作,需要互聯網連接。
  • 本文使用 OpenVINO™ 工具包開源發行版的 2022.1 版本進行了驗證。

OpenVINO™ 工具組可快速部署模仿人類視覺的應用程式和解決方案。此工具組以卷積神經網路 (Convolutional Neural Networks,CNN) 為基礎,將電腦視覺 (CV) 工作負載延伸至各種 Intel® 硬體,進而將效能最大化。這些步驟通常遵循 可用的如何構建 ARM CPU 外掛程式 。但是,要在樹莓派 4* 上運行所有內容,需要進行特定的更改。本指南提供了使用交叉編譯方法建立適用於Raspbian* 32位作系統的OpenVINO™工具組開放原始碼分發的步驟。

按兩下主題以取得詳細資料:

系統要求
注意 本指南假設您的樹莓派* 主板已啟動並運行下面列出的作系統。

硬體

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ 應該可以工作。)
  • 至少一張 16 GB 的 microSD 卡
  • Intel® 類神經電腦棒 2
  • 乙太網路因特網連線或相容的無線網路
  • 安裝了 docker 容器的主機

目標作系統

  • Raspian* Buster,32 位
設置生成環境
注意 本指南包含需要以 root 或 sudo 存取權限執行才能正確安裝的命令。

確保您的裝置軟體是最新的:

sudo apt update && sudo apt upgrade -y

安裝 Docker 容器
注意 您可以按照基於 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_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

在第 114 行加上“RUN pip install protobuf==3.20.0”,如下圖所示。

Screenshot

保存編輯后的檔。

使用編輯器工具修改 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 \

保存編輯后的檔。

Docker 容器環境中的交叉編譯OpenVINO™工具包

在此步驟中,我們將運行腳本以下載和交叉編譯 Docker 容器環境中OpenVINO™工具包和其他元件(如 OpenCV*):

前往 ARM CPU 外掛程式目錄:

cd openvino_contrib/modules/arm_plugin

建立 Docker* 映射:

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

在 Docker* 容器中編譯外掛程式:

構建過程由在目錄中執行 /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_JOBS 控制同時編譯的線程數
  • BUILD_TYPE 控制項 除錯/發佈設定 (預設發布)
  • UPDATE_SOURCES 控制源檢索
    • clean - 如果已載入,請不要重新載入源。只需清理編譯資料夾(預設)
    • 重新載入 - 刪除所有載入的源並再次檢索它們
    • 檢查 - 不要重新載入或清理源
  • WITH_OMZ_DEMO C++ Open Model Zoo 示範的組建版本(預設為開啟)

產生資料夾中,產生OV_ARM_package.tar.gz

ls build

OV_ARM_package.tar.gz 傳輸到目標裝置(樹莓派 4* 32 位 Buster)
有多種方法可以將軟體包傳輸到目標設備(Raspberry Pi 4 *),直接安全複製到目標設備,將軟體包複製到USB拇指驅動器並進行傳輸。
本文將演示如何在主機中安裝 USB 拇指驅動器,並將生成包複製到裝載的拇指驅動器。

將 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 複製到目標設備(樹莓派 4*)。

安裝編譯工具

sudo apt update
sudo apt install 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® 類神經電腦棒 2 以及 ARM* 外掛程式是否在您的設備上正常工作,請完成以下步驟:

  1. hello_query_device運行 範例應用程式 確認所有庫都已正確載入。
  2. 下載 預先訓練的模型。
  3. 選擇 神經網路的輸入(即圖像檔)。
  4. 設定 Intel® 類神經電腦棒 2 Linux* USB 驅動程序。
  5. 使用所選模型和輸入運行benchmark_app

應用範例

Intel® OpenVINO™ 工具組包含使用推論引擎與Intel® 類神經電腦棒 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

它應該列印一個對話框,描述系統上存在的可用於推斷的設備。

下載模型

應用程式需要一個模型來傳遞輸入。您可以透過以下方式取得 IR 格式的 Intel® OpenVINO™ 工具組模型:

  • 使用模型優化器將現有模型從其中一個受支援的框架轉換為推理引擎的 IR 格式。請注意 模型優化器套件不適用於Raspberry Pi*。
  • 使用模型下載器工具從開放模型動物園下載。僅限公開的預先訓練模型。
  • 直接從 storage.openvinotookit.org 下載 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® 類神經電腦棒 2需要針對 16 位浮點数格式(稱為 FP16)優化的模型。如果模型與範例不同,您的模型可能需要在單獨的機器上使用模型優化器轉換為 FP16,因為 Raspberry Pi* 不支援模型優化器。

神經網路的輸入

需要的最後一項是神經網路的輸入。對於我們下載的模型,您需要具有三個顏色通道的圖像。將必要的檔案下載到您的主機板:

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

設定 Intel® 類神經電腦棒 2 Linux USB 驅動程序

必須添加一些 udev 規則以允許系統識別Intel® NCS2 USB 設備。

注意 如果當前使用者不是使用者組的成員,請運行以下命令並重新啟動設備。

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

設置OpenVINO™環境:

source /home/pi/openvino_dist/setupvars.sh

若要對Intel® 類神經電腦棒 2執行推理,請通過運行 install_NCS_udev_rules.sh 腳本來安裝 USB 規則:

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

USB 驅動程式現在應該已正確安裝。如果在執行演示時未檢測到Intel® 類神經電腦棒 2,請重新啟動設備並重試。

運行 benchmark_app

下載模型、提供輸入圖像並將Intel® 類神經電腦棒 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 会利用Intel® 類神經電腦棒 2激活 MYRIAD 外掛程式。命令執行成功后,終端將顯示統計資訊以進行推理。您也可以使用 CPU 外掛程式在樹莓派 4* 裝置的 ARM CPU 上執行推理,有關作支援,請參閱 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® 類神經電腦棒 2已正確設置,以便在您的設備上使用。

環境變數

在編譯和運行OpenVINO工具包應用程式之前,必須更新多個環境變數。執行以下文稿以暫時設定環境變數:

source /home/pi/openvino_dist/setupvars.sh

**(可選)** 關閉 shell 時,將刪除OpenVINO™環境變數。作為一個選項,您可以永久設置環境變數,如下所示:

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

要測試您的更改,請打開一個新終端。您將看到以下內容:

[setupvars.sh] OpenVINO environment initialized

如此就完成了 Raspbian*作系統 OpenVINO™ 工具組的開放原始碼分發以及與 Intel® 類神經電腦棒 2 和 ARM* 外掛程式一起使用的交叉編譯和構建過程。

相關產品

本文章適用 2 產品。

免責聲明

這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。