LattePanda的Ubuntu虚拟机里安装评测OpenVINO和Intel计算棒NCS2
最近在調研一款嵌入式的平臺,想用作深度學習推理的實現部署,要求尺寸盡量小巧,功耗要盡量低,而且要能夠承擔一定復雜度的深度學習的算法實現。
恰巧參加一個活動,主辦方提供了拿鐵熊貓LattePanda和Intel神經計算棒NCS2,正好來評估一下相應的軟硬件環境與性能。
硬件1:拿鐵熊貓LattePanda Delta
采用了 Intel 全新 N 系列賽揚 4 核處理器,最高可達 2.40 GHz,4GB內存,內置藍牙和 WiFi 模組,支持 USB 3.0 接口、HDMI 視頻輸出、3.5mm音頻接口,100/1000Mbps 以太網口,以及額外的 MicroSD 擴展卡槽。集成一塊 Arduino Leonardo 單片機,可以外拓各種傳感器模塊,支持 Windows 和 Linux 雙操作系統。在功能和價格上都是完美的選擇。
硬件2:Intel神經計算棒NCS2
Intel? Movidius? Myriad? X VPU核心,USB 3.1 Type-A接口,支持TensorFlow, Caffe, MXNet, ONNX, PyTorch/ PaddlePaddle(通過ONNX)。
軟件環境:OpenVINO,Ubuntu, Windows? 10
先來一張硬件合照,確實是小巧,接上鼠標、鍵盤、顯示器,就是一臺巴掌大的電腦啊!
翻個身,背面的接口也很豐富。
LattePanda Delta配的eMMC 5.0只有32GB,作為部署推理應用應該是足夠了,如果想把開發環境也全部安裝上,就有點不夠用了。
為了測試,干脆加一塊NVMe 接口的SSD,(有點飄了,500GB,其實OS加上各種軟件,128GB足夠了。然后分成兩個250GB,準備一塊給Windows10,一塊裝Ubuntu。)
考慮到原來開發機上采用的是VirtualBox和Ubuntu 18.04的組合,而且Ubuntu虛擬機上已經安裝好了所有的軟件,所以想直接把Ubuntu虛擬機挪到LattePanda Delta上。
這個想法是可行的,中間踩了兩個坑,一個是不支持USB3.0,一個是Intel神經計算棒NCS2在程序運行的時候會找不到,報錯。在網上搜了好多教程,花了一些時間做嘗試,最終把這兩個坑給踩平了。把過程和用到的軟件記錄下來,給想在Ubuntu虛擬機里使用Intel神經計算棒NCS2的伙伴們做個參考,也省得自己忘了。
?
1. 安裝VirtualBox。
我安裝的是6.1.8版本,安裝文件鏈接如下:
http://download.virtualbox.org/virtualbox/
VirtualBox的6.1.8版本安裝后,自帶增強功能的iso文件,在如下路徑下:
C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso,
需要在虛擬光驅里添加該文件:
?
2. 安裝Ubuntu,這個教程較多,不做贅述。
我使用的是Ubuntu 18.04.3 LTS,從筆記本電腦的虛擬機Copy過來的,所有軟件齊全,大約30多GB,需要點擊“注冊”,導入虛擬機。
需要修改一下虛擬機的一些參數,然后就可以使用了。如:我原來的筆記本是8核的,虛擬機設置使用4核,現在CPU是4核的,虛擬機改成2核的。
?
也可以自己重新安裝Ubuntu。
推薦一個清華的源:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
?
3. 安裝VirtualBox增強功能,使能USB3.0。
要安裝增強功能,單擊虛擬機菜單中的“設備”>“安裝增強功能”。
然后通過如下鏈接下載對應版本的擴展增強包,并添加到“全局設定”的“擴展”里:
http://download.virtualbox.org/virtualbox/6.1.8/Oracle_VM_VirtualBox_Extension_Pack-6.1.8-137981.vbox-extpack
這時,在USB設備里,你才可以使用USB3.0的控制器。
注意:這樣才能使用USB3.0的功能(這是一個坑,莫要掉進去)。
?
4. 識別Intel NCS2計算棒
在Ubuntu虛擬機上使用Intel NCS2計算棒,需要增加一個USB篩選器,相應的程序才可以正確運行。
USB篩選器:名稱可以任意,供應商標識:03E7,產品標識一定要空著!
?
注意:產品標識一定要空著(這也是一個坑,否則后續程序運行調用計算棒的時候會出現找不到計算棒的錯誤!)。
?
5. 安裝OpenVINO
Intel提供了很好的文檔幫助大家安裝OpenVINO,大家可以按照這個文檔一步步安裝就可以了:
Install Intel? Distribution of OpenVINO? toolkit for Linux
https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html
?
也可以參考視頻教程:
OpenVINO?工具套件在 Lunix 上的安裝+環境配置教程
https://www.bilibili.com/video/BV1fC4y1s7dt/
?
我的Ubuntu虛擬機里安裝的是OpenVINO 2020.2.120版本,Python 3.6.9。
?
如果某些國外的包安裝比較慢,可以試試國內的源:
pip install mxnet==1.5.1 -i https://mirrors.aliyun.com/pypi/simple
?
6. 性能測試
?
打開一個Terminal,看到如下顯示,證明OpenVINO 的環境變量初始化完成正確。
[setupvars.sh] OpenVINO environment initialized
xu@HPUbuntu:~$
?
查看一下,計算棒是否被識別。
xu@HPUbuntu:~$ lsusb
Bus 001 Device 003: ID 03e7:2485 ?
?
OpenVINO安裝好后,可以測試一下LattePanda的CPU和Intel 神經計算棒NCS2的性能,
將工作路徑換到如下路徑:
xu@HPUbuntu:~$ cd /opt/intel/openvino/deployment_tools/demo
在該路徑下執行./demo_security_barrier_camera.sh文件,該文件自動從網絡的相關位置下載模型及數據,進行車的檢測和車牌的識別。不帶參數的時候,默認在CPU執行,加上 -d MYRAID參數,會在Intel 神經計算棒NCS2上執行。
xu@HPUbuntu:/opt/intel/openvino/deployment_tools/demo$ ./demo_security_barrier_camera.sh
xu@HPUbuntu:/opt/intel/openvino/deployment_tools/demo$ ./demo_security_barrier_camera.sh -d MYRAID
由于每次執行都會到網絡去下載模型和數據,以保證是最新的版本,如果你不需要下載新的模型和數據,可以直接調用編譯后的執行文件就可以了。
?
編譯后的文件在~/inference_engine_demos_build/intel64/Release目錄下,執行命令及參數如下所示:
-
使用CPU做車的檢測和車牌的識別,大約是6.1FPS:
xu@HPUbuntu:~/inference_engine_demos_build/intel64/Release$ ./security_barrier_camera_demo -d CPU -d_va CPU -d_lpr CPU -i /opt/intel/openvino/deployment_tools/demo/car_1.bmp -m /home/xu/openvino_models/ir/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_lpr /home/xu/openvino_models/ir/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -m_va /home/xu/openvino_models/ir/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml
[ INFO ] InferenceEngine: 0x7fd2a136c030
[ INFO ] Files were added: 1
[ INFO ] ????/opt/intel/openvino/deployment_tools/demo/car_1.bmp
[ INFO ] Loading device CPU
CPU
MKLDNNPlugin version ......... 2.1
Build ........... 42025
[ INFO ] Loading detection model to the CPU plugin
[ INFO ] Loading Vehicle Attribs model to the CPU plugin
[ INFO ] Loading Licence Plate Recognition (LPR) model to the CPU plugin
[ INFO ] Number of InferRequests: 1 (detection), 3 (classification), 3 (recognition)
[ INFO ] 3 streams for CPU
[ INFO ] Display resolution: 1920x1080
[ INFO ] Number of allocated frames: 3
[ INFO ] Resizable input with support of ROI crop and auto resize is disabled
0.0FPS for (1 / 1) frames
Detection InferRequests usage: 100.0%
[ INFO ] Execution successful
?
- 使用Intel 神經計算棒NCS2做車的檢測和車牌的識別,大約是16.2FPS:
xu@HPUbuntu:~/inference_engine_demos_build/intel64/Release$ ./security_barrier_camera_demo -d MYRIAD -d_va MYRIAD -d_lpr MYRIAD -i /opt/intel/openvino/deployment_tools/demo/car_1.bmp -m /home/xu/openvino_models/ir/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_lpr /home/xu/openvino_models/ir/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -m_va /home/xu/openvino_models/ir/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml
[ INFO ] InferenceEngine: 0x7f5b4663f030
[ INFO ] Files were added: 1
[ INFO ] ????/opt/intel/openvino/deployment_tools/demo/car_1.bmp
[ INFO ] Loading device MYRIAD
MYRIAD
myriadPlugin version ......... 2.1
Build ........... 42025
[ INFO ] Loading detection model to the MYRIAD plugin
[ INFO ] Loading Vehicle Attribs model to the MYRIAD plugin
[ INFO ] Loading Licence Plate Recognition (LPR) model to the MYRIAD plugin
[ INFO ] Number of InferRequests: 1 (detection), 3 (classification), 3 (recognition)
[ INFO ] Display resolution: 1920x1080
[ INFO ] Number of allocated frames: 3
[ INFO ] Resizable input with support of ROI crop and auto resize is disabled
0.0FPS for (1 / 1) frames
Detection InferRequests usage: 100.0%
[ INFO ] Execution successful
?
7. 小結
拿鐵熊貓LattePanda Delta以它小巧的尺寸和較低的功耗來說,性能還是比較不錯的,而且還有I2C,I2S,RS232等接口。板子上還搭載ATmega32U4,提供標準的Arduino接口,可以用來做電機和設備的控制。如果有更高的需求,可以升級到LattePanda Alpha,CPU是Intel Core M3-7y30,內存為8GB,eMMC 5.0為64GB。
Intel神經計算棒NCS2的性能不錯,OpenVINO提供了很好的環境平臺,也有較多的訓練好的模型供參考,可以很方便地把訓練好的網絡模型做優化,部署在NCS2上。
LattePanda Delta有3個USB3.0接口并排,可以插兩個Intel神經計算棒NCS2,提供兩倍的計算性能。感興趣的朋友,可以試一試。
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 老徐? 2020/7/1
?
總結
以上是生活随笔為你收集整理的LattePanda的Ubuntu虚拟机里安装评测OpenVINO和Intel计算棒NCS2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈emoji(分析与使用)
- 下一篇: linux启动速度优化