樹莓派3B+安裝OpenVINO,Intel Movidius神經計算棒NCS2的環境部署


版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/weixin_41665225/article/details/86508556
0 前言
要寫論文,做點真正能用的智慧設備,順便用在自己果園里,降低人工成本。
首先是要建一個圖像識別+視覺導航實驗的平台。
考慮到后期可能要真的投入使用並推廣,沒采用nVidia Jetson TX2這樣的豪華配置(比樹莓派+NCS2貴差不多3000塊)。
折騰了一天多,總算是弄好了,考慮到自己歲數大了,容易忘事。把整個過程寫下來,以便后面參考。
關於OpenVINO和神經計算棒,可以先看OpenVINO的介紹和這篇文章。
基本上就是把做好的神經網絡部署到嵌入式環境用的。訓練模型還是在PC機上。


1. 材料
樹莓派 Raspberry Pi 3B+

Intel Movidius Neural Compute Stick 2


2 准備工作
到樹莓派官網去下載最新版的Raspbian。由於后續工作需要用到圖形界面,選
Raspbian Stretch with desktop。樹莓派官網推薦用etcher安裝,聽官方的沒錯。下載etcher並安裝。

2.1 燒寫系統鏡像到sd卡
由於操作系統安裝在SD卡上,SD卡的讀寫速度直接影響系統運行速度,因此SD卡要選盡量快的。我用的是32G的98MB/S的SD卡。

我下載的鏡像文件是 2018-11-13-raspbian-stretch.zip
在電腦上插上SD卡。不用解壓,直接用etcher打開下載來的壓縮包。
Flash之。得等一會兒。


2.2 啟動樹莓派
我沒買樹莓派專用的顯示器和鍵盤鼠標(將來都是電子垃圾,能少一樣是一樣),按照下面的文章來安裝。
https://segmentfault.com/a/1190000010976507

為了能順利啟動ssh,需要在SD卡的根目錄寫一個文件名為ssh的空文件,還有讓它能自動連接WiFi。

但問題來了,燒寫后的SD卡boot分區是readonly的,需要用usbroot工具來去掉readonly標志。需要的話自行百度“usbroot”並下載。

重新插拔SD卡,並打開usbroot,選“用0重置參數”,然后開始。

 

如果提示“無法打開…”,不用管,重新插拔SD卡即可。


寫入ssh啟動文件和wifi配置文件。


2.3 進入Raspbian系統
通上電(電腦USB或者充電寶),就能從路由器里看到樹莓派了。


默認的名字是“dhcpcd-6.11.5-armv71”。用ssh客戶端(我用bitwise ssh client)。
用戶名pi,密碼raspberry。

 

這時候用VNC Viewer去連接,還不能連接圖形界面。

下一節解決軟件安裝的問題。

3 OpenVINO開發環境的部署
3.1 更換國內源
sudo nano /etc/apt/sources.list
#用nano不用vi,vi不好用
1
2
把源改成

deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
1
2
然后Ctrl+O保存,Ctrl+X退出。

同樣

sudo nano /etc/apt/sources.list.d/raspi.list
1
內容改成

deb https://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src https://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
1
2
保存退出。

執行

sudo apt-get update
1
更新軟件源,速度快了很多。

樹莓派自帶了一個vncserver,我們來配置它

sudo raspi-config
1
彈出來一個配置窗口

選5,enable VNC Server. 重啟。
然后配置vncseserver,創建配置文件

sudo nano /etc/init.d/vncserver
1
內容為:

#!/bin/sh
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop vncserver
### END INIT INFO

# More details see:
# http://www.penguintutor.com/linux/vnc

### Customize this entry
# Set the USER variable to the name of the user to start vncserver under
export USER='pi'
### End customization required

eval cd ~$USER

case "$1" in
start)
# 啟動命令行。此處自定義分辨率、控制台號碼或其它參數。
su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1024x768 :1'
echo "Starting VNC server for $USER "
;;
stop)
# 終止命令行。此處控制台號碼與啟動一致。
su $USER -c '/usr/bin/vncserver -kill :1'
echo "vncserver stopped"
;;
*)
echo "Usage: /etc/init.d/vncserver {start|stop}"
exit 1
;;
esac
exit 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
sudo chmod 755 /etc/init.d/vncserver
sudo update-rc.d vncserver defaults
sudo shutdown -r now

1
2
3
4
VNC Viewer能連接了。


網上有文章教怎么設置固定IP,我的路由器一旦分配了IP后不改變,這步就略了。

3.2 安裝OpenVINO
參考官方網站:

Install the Intel® Distribution of OpenVINO™ Toolkit for Raspbian* OS

先下載並解壓OpenVINO 2018R5

cd Downloads
wget https://download.01.org/openvinotoolkit/2018_R5/packages/l_openvino_toolkit_ie_p_2018.5.445.tgz
tar zxvf l_openvino_toolkit_ie_p_2018.5.445.tgz
cd inference_engine_vpu_arm
nano inference_engine_vpu_arm/bin/setupvars.sh
1
2
3
4
5
修改nano inference_engine_vpu_arm/bin/setupvars.sh文件的內容
<INSTALLDIR> 改為~/Downloads/inference_engine_vpu_arm。
運行

source inference_engine_vpu_arm/bin/setupvars.sh
1
設置環境,顯示

[setupvars.sh] 64 bitness for Python 3.5 is requred
[setupvars.sh] OpenVINO environment initialized
1
2
3.3 解決環境依賴的問題
3.3.1 安裝cmake
sudo apt-get install cmake
1
3.3.2 其他
編譯安裝Python 3.6.8

https://www.python.org/downloads/

編譯安裝X264

git clone https://git.videolan.org/git/x264.git
1
編譯安裝FFmpeg
http://www.ffmpeg.org/download.html

P.S. 這幾個東西要編譯好久,之前編譯的我都打包存起來了。

搞新的系統的時候直接拷貝過去解壓運行

百度網盤:
Python 3.6.8 提取碼 phtg
FFmpeg 提取碼 yyog
X264 提取碼 862b

sudo apt-get install libsdl2-dev
sudo apt-get install libomxil-bellagio-dev
#挨個解壓,進入相應文件夾,運行
sudo make install
1
2
3
4
就能用。

3.4 使計算棒能即插即用,自動加載
3.4.1 把當前用戶增加到users組里面
執行

sudo usermod -a -G users "$(whoami)"
logout
1
2
然后重新登錄。

3.4.2 配置NCS2的驅動
詳見 https://software.intel.com/en-us/neural-compute-stick/get-started
執行以下代碼:

cd ~/Downloads
cat <<EOF > 97-myriad-usbboot.rules
SUBSYSTEM=="usb", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
EOF

sudo cp 97-myriad-usbboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo ldconfig
rm 97-myriad-usbboot.rules
1
2
3
4
5
6
7
8
9
10
11
12
P.S. 如果nano inference_engine_vpu_arm/bin/setupvars.sh文件的內容
<INSTALLDIR> 不是替換成~/Downloads/inference_engine_vpu_arm,這步執行會如果執行

sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh
1
會報錯

pdate udev rules so that the toolkit can communicate with your neural compute stick
File '97-myriad-usbboot.rules' is missing. Please check that you installed 'Inference Engine Runtime for Intel® Movidius™ VPU'.
inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh: 30: exit: Illegal number: -1
1
2
3
配置正確的話會看到

Update udev rules so that the toolkit can communicate with your neural compute stick
1
3.5 編譯samples並且驗證
看官方文檔接着搞吧。
https://software.intel.com/en-us/articles/OpenVINO-Install-RaspberryPI#add-usb-rules

4. 收尾
讓OpenVINO在登錄時啟動,並把samples的編譯輸出目錄添加到PATH環境變量里面。

nano ~/.bashrc
1
增加兩行

source ~/Downloads/inference_engine_vpu_arm/bin/setupvars.sh
export PATH=~/Downloads/inference_engine_vpu_arm/inference_engine/samples/armv7l/Release:$PATH
1
2
題外話
在OpenVINO之前神經計算棒有NCSDK,通過API的方式來使用Neural Compute Stick
這里是一篇完整的教程。現在不知道Neural Compute Stick2還能不能用了。
下一篇:

《在樹莓派+Intel NCS2上跑YoloV3 Tiny》

先放幾個參考鏈接
https://software.intel.com/en-us/forums/computer-vision/topic/800208
https://software.intel.com/en-us/articles/OpenVINO-InferEngine
https://software.intel.com/en-us/forums/computer-vision/topic/800049

明天再慢慢整理。
————————————————
版權聲明:本文為CSDN博主「rosqin」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_41665225/article/details/86508556


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM