?前言
雖然這一代的樹莓派增加了內(nèi)存,但主頻的限制使得直接用純主板推理勤家,速度還是不夠?qū)崟r(shí)察净,這一篇我們介紹一下在樹莓派上部署 OpenVINO 神經(jīng)棒,進(jìn)一步提升AI的推理速度费坊。
NCS2 的主要特點(diǎn):
邊緣處的深度學(xué)習(xí)推理
Open Model Zoo 上預(yù)先訓(xùn)練的模型
一個(gè)函數(shù)庫和預(yù)先優(yōu)化的內(nèi)核峰鄙,用于更快地投放到市場
支持使用一個(gè)公共 API 的跨各種計(jì)算機(jī)視覺加速器(CPU、GPU太雨、VPU 和 FPGA)的異質(zhì)性執(zhí)行
Raspberry Pi 硬件支持
安裝OpenVINO 工具套件
NCS2 支持樹莓派作為其的一個(gè)特點(diǎn)吟榴,intel官方專門做了個(gè)主題文檔,那部署起來就相當(dāng)友好了囊扳。
https://docs.openvinotoolkit.org/cn/latest/_docs_install_guides_installing_openvino_raspbian.html
1 下載安裝包
我選擇的版本是 2020年4月的版本:
cd ~/Downloads/
2 安裝外部軟件依賴
之前已經(jīng)安裝過cmake吩翻,其實(shí)這步可跳過。
sudo apt install cmake
3 設(shè)定環(huán)境變量
source /opt/intel/openvino/bin/setupvars.sh
現(xiàn)在每打開一個(gè)新的命令行終端锥咸。將會(huì)出現(xiàn)下列信息:
[setupvars.sh] OpenVINO environment initialized
4 添加 USB 規(guī)則
將當(dāng)前的 Linux 用戶添加到users群組:注銷并登錄狭瞎,使設(shè)定生效。
sudo usermod -a -G users "$(whoami)"
安裝 USB 規(guī)則
sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
5 USB 插入intel 神經(jīng)棒 NCS2
重新插入NCS2搏予,準(zhǔn)備運(yùn)行程序熊锭。
構(gòu)建對(duì)象檢測樣本
1 新建編譯目錄
mkdir openvino && cd openvino
2 構(gòu)建對(duì)象檢測樣本
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino/deployment_tools/inference_engine/samples/cpp
3 下載權(quán)重文件,網(wǎng)絡(luò)拓?fù)湮募捅粶y試圖片
要下載.bin帶權(quán)重的文件:
wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.bin
要下載帶網(wǎng)絡(luò)拓?fù)?xml的文件:
wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.xml
搜索一些包含人臉的圖片作為被檢測樣本雪侥,保存到 ~/Downloads/image 目錄下碗殷。
4 運(yùn)行程序
其中 -m 指定模型拓?fù)浣Y(jié)構(gòu) .xml 文件,程序會(huì)自動(dòng)尋找同名 .bin 權(quán)重文件校镐;
-d MYRIAD 代表用神經(jīng)棒作為推理設(shè)備亿扁;
-i 指定了被測圖片的路徑。
./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i ~/Downloads/image
構(gòu)建性能測試程序
1 ****構(gòu)建測試程序****
make -j2 benchmark_app
2 構(gòu)建對(duì)象檢測樣本
其中 -i 是輸入被檢測的圖片鸟廓;
-m 是輸入的模型參數(shù)从祝;
-niter 為運(yùn)行推理的迭代次數(shù)襟己。
./armv7l/Release/benchmark_app -i car.png -m squeezenet1.1/FP16/squeezenet1.1.xml -pc -d MYRIAD -niter 1000
樹莓派+神經(jīng)棒的推理速度可達(dá) 280 FPS,這速度足夠快了牍陌,再試試在電腦上插神經(jīng)棒測試擎浴,與其對(duì)比一下。
3 對(duì)比性能
還是280幀左右毒涧,運(yùn)行速度沒有區(qū)別贮预,可見計(jì)算瓶頸都集中在NCS2上,主設(shè)備用電腦或是樹莓派差別不大契讲。在插神經(jīng)棒的場合仿吞,用PC就顯得有點(diǎn)浪費(fèi)了。
再對(duì)比一個(gè)直接用筆記本電腦的 intel cpu 跑的openvino加速模型:
340 FPS捡偏,果然還是電腦的CPU更強(qiáng)些唤冈。
樹莓派的開發(fā)流程
選擇預(yù)訓(xùn)練模型;
使用模型優(yōu)化器银伟,來轉(zhuǎn)換模型你虹;
最后在樹莓派上推理模型。
常規(guī)的開發(fā)方式彤避,需要在 open model zoo 中尋找適合的模型傅物,對(duì)于大多數(shù)業(yè)務(wù)來說,都能滿足基本需要琉预。若需要跑一些比較前沿的模型或者是自己設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)時(shí)董饰,那各類模型轉(zhuǎn)換的方法則是必備技能,難度相應(yīng)也會(huì)大一些模孩。
資料下載
上文提到的安裝包尖阔,模型參數(shù)和一些資源文件都打包在網(wǎng)盤里了。
本期相關(guān)文件資料榨咐,可在公眾號(hào)后臺(tái)回復(fù):“rpi08”介却,獲取下載鏈接。
下一篇
我們就將做一些模型轉(zhuǎn)換的工作****块茁,
讓yolov5在樹莓派上齿坷,
用Openvino來運(yùn)行一下,
敬請期待...