選購(gòu) Raspberry PI
Raspberry Pi 3B+

CPU: 1.4GHz, 4核
RAM:1GB
OS:Raspberry Pi 3B+ 只能安裝 Raspbian系統(tǒng)。目前還不能支持 ubuntu。
個(gè)人感覺(jué),沒(méi)必要非得裝ubuntu的,買3B+吧。
Raspberry Pi 3B

1.2GHz, 4核 CPU
1GB RAM
Raspberry Pi Zero W

1GHz, 單核 CPU
512MB RAM(其中會(huì)分出128MB當(dāng)作顯存用)
選購(gòu) TF 卡
要16G以上的,8G根本不夠用。條件可以,盡量選購(gòu)讀寫(xiě)速度快的。建議選32G 讀100M/S 寫(xiě)90M/S的卡。
模型轉(zhuǎn)換時(shí),1G內(nèi)存根本不夠用,需要開(kāi)虛擬內(nèi)存。
這時(shí)候卡速就很關(guān)鍵了,不差錢,就一步到位吧。
這幾款我都買了,讀寫(xiě)速度相當(dāng),都很快。屬于一個(gè)檔次。價(jià)錢嘛,嘿嘿,避免做廣告之嫌,自己去搜吧。便宜的也有好貨。


下載樹(shù)莓派專用系統(tǒng)鏡像 img
[官網(wǎng)Raspian下載:https://www.raspberrypi.org/downloads/raspbian/]

官網(wǎng)下載:
download -> Raspian Desktop (推薦)
download -> Raspian Desktop & recommended software
download -> Raspian Lite
[角蜂鳥(niǎo) 百度網(wǎng)盤(pán) 密碼: k1x6]
角蜂鳥(niǎo)鏡像作者,換了國(guó)內(nèi)apt-get和pip源。
如果不用角蜂鳥(niǎo)的鏡像,是需要自己換源的。
要看一下自己機(jī)器是什么架構(gòu),樹(shù)莓派 3B/B+ 的話,記得選擇armv7 架構(gòu)的源
要看一下自己機(jī)器是什么架構(gòu),Raspberry Pi Zero W 的話,記得選擇armv6 架構(gòu)的源
TF卡燒img
windows
Win32DiskImager 工具, 速度比 linux/mac 用 dd 命令快很多倍。
Mac OS
- 使用工具:Etcher (速度很快)
Etcher
Linux
- 使用 dd 指令
參考: https://www.cnblogs.com/bindong/p/5818497.html
1) 查看U盤(pán)盤(pán)符? ~ df -lh Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 466Gi 223Gi 240Gi 49% 2305126 9223372036852470681 0% / /dev/disk1s4 466Gi 2.0Gi 240Gi 1% 2 9223372036854775805 0% /private/var/vm /dev/disk2s1 64Mi 53Mi 11Mi 84% 206 4294967073 0% /Volumes/MacX /dev/disk3s1 32Gi 0Gi 32Gi 0% 0 0 100% /Volumes/TF-CARD ? ? ~ diskutil list ... /dev/disk3 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *32 GB disk3 1: Windows_FAT_32 TF-CARD 32 GB disk3s1 ...
2) 取消U盤(pán)掛載? ~ diskutil umountDisk /dev/disk3 Unmount of all volumes on disk3 was successful
3) 用dd命令寫(xiě)入U(xiǎn)盤(pán)
注意 M 大小寫(xiě):linux bs=4M macOS: bs=4m
M=mB? m=mb? 一個(gè)說(shuō)的是位bit一個(gè)說(shuō)的是字節(jié)Byte?不清楚,沒(méi)測(cè)試。
反正mac下只支持小m, 你可以用bs=1024m試試,是不是快點(diǎn)?? ~ sudo dd bs=4m if=/linux.dmg of=/dev/disk3 2934+1 records in 2934+1 records out 3076767744 bytes transferred in 149.567568 secs (20571089 bytes/sec)
4) 查看磁盤(pán)進(jìn)度,可以用iostat命令查看磁盤(pán)寫(xiě)入狀態(tài)? ~ iostat -w 2 disk0 disk2 disk3 cpu load average KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us sy id 1m 5m 15m 102.71 25 2.49 598.70 0 0.15 24.76 1 0.02 5 4 90 2.04 1.71 1.69 512.00 48 23.93 1024.00 24 23.93 0.00 0 0.00 1 3 96 2.11 1.74 1.69 473.00 26 11.99 1024.00 12 11.98 0.00 0 0.00 3 3 93 2.11 1.74 1.69 491.68 50 23.99 1024.00 24 23.99 0.00 0 0.00 24 8 68 2.11 1.74 1.69
5) 操作完畢后將U盤(pán)彈出? ~ diskutil eject /dev/disk2 Disk /dev/disk2 ejected
開(kāi)機(jī)后必須要干的幾件事
注:2018年11月13日之后的的Raspian版本,有些操作會(huì)自動(dòng)幫你做,比如磁盤(pán)resize,修改密碼等。
raspi-config 系統(tǒng)配置
pi@raspberrypi-HS2:~ $ sudo raspi-config

1) Change User Password修改 pi 初始密碼
2) Boot Options -> B1 Desktop / CLI -> B1 Console開(kāi)機(jī)進(jìn)入Concole,這樣省內(nèi)存。后面配置環(huán)境在console下,有更多內(nèi)存可用,會(huì)更快。
隨時(shí)可以用 startx 從命令行進(jìn)入圖形界面。
3) Advanced Options -> A1 Expand Filesystem燒好的鏡像,系統(tǒng)只有8G(TF卡可是有32G呀)。這8G用爆了(都用掉了),你的系統(tǒng)就廢了。
所以這一步至關(guān)重要,千萬(wàn)別忘了。
4) Interfacing Options -> P2 SSH開(kāi)啟SSH服務(wù)
顯示器屏幕配置
pi@raspberrypi-HS2:/boot $ sudo vi /bootconfig.txt
# 自適應(yīng)屏幕分辨率
hdmi_group=2
hdmi_mode=58
# 屏幕旋轉(zhuǎn) 270 度
display_rotate=3
注:這塊要小心,改錯(cuò)了可能就啟動(dòng)不了了。如果真發(fā)生了,可以用讀卡器把卡插入別的電腦修改這個(gè)文件。如果實(shí)在搞不定,可以刪除這個(gè)文件再重啟。
其他配置
進(jìn)入圖形界面,鏈接無(wú)線外設(shè)
1) wifi
2)藍(lán)牙 鼠標(biāo)、鍵盤(pán)
更新 apt-get
apt-get 換源 & 更新:
$ sudo vi /etc/apt/source.list
#deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib
$ sudo reboot
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
# 安裝常用工具
$ sudo apt-get install vim
這個(gè)比較簡(jiǎn)單,我就不詳細(xì)寫(xiě)了。
其實(shí)不升級(jí)也是件好事,避免新版本的沖突問(wèn)題。
到此Raspbian系統(tǒng)就配置好了。接下來(lái)要安裝Movidius的運(yùn)行環(huán)境了。
Python3 虛擬環(huán)境
系統(tǒng)自帶python3.5.3。我曾自己編譯安裝過(guò) python3.6.8。后來(lái)發(fā)現(xiàn),有些常用庫(kù)(例如:opencv-python)在Raspian上,只有python3.5的版本。后來(lái)還是放棄了用python3.6
$ sudo pip3 install virtualenv
$ mkdir ~/env
$ cd ~/env
$ virtualenv ReatailX
$ source ~/env/RetailX/bin/activate
# You could add "source ~/env/RetailX/bin/activate" to .bashrc
(RetailX) pi@raspberrypi:~ $ _
pip 換源
Add file ~/.pip/pip.conf
[global]
timeout=6000
index-url = https://pypi.doubanio.com/simple/
#index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
use-mirrors = true
mirrors = https://pypi.doubanio.com/simple/
#mirrors = http://mirrors.aliyun.com/pypi/simple/
安裝OpenCV
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libhdf5-dev
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libhdf5-serial-dev
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libatlas-base-dev
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libjasper-dev
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libqtgui4
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libqt4-test
(RetailX) pi@raspberrypi:~/Downloads $ pip install opencv-python
安裝 TensorFlow
(RetailX) pi@raspberrypi:~/Downloads $ sudo apt-get install libatlas-base-dev
(RetailX) pi@raspberrypi:~/Downloads $ pip install tensorflow
OpenVINO? toolkit
[OpenVIONO 官網(wǎng)]
[OpenVINO for Raspian 下載]
Movidius NCS (現(xiàn)在這部分Intel已經(jīng)不支持了,這里僅供參考)
下載 NCSDK 2.05
【注意】NCSDK在github上,從 master上 clone下來(lái)的是 1.12 的版本。
找它release的最新版,目前是2.05:
最新支持 tensorflow 1.7
ncsdk 2.05.00.02下載(最近ncsdk從github上撤了,據(jù)說(shuō)是licence的問(wèn)題,所以補(bǔ)充了一個(gè)下載鏈接)wget https://github.com/movidius/ncsdk/archive/v2.05.00.02.tar.gz wget https://ncs-forum-uploads.s3.amazonaws.com/ncsdk/ncsdk-02_05_00_02-full/ncsdk-2.05.00.02.tar.gz
ncsdk 官方文檔
https://movidius.github.io/ncsdk/
解包tar -xf v2.05.00.02.tar.gz
換源
建議用角蜂鳥(niǎo)的鏡像,已經(jīng)換過(guò)源了。我這里就不寫(xiě)怎么換源了。
主要是換 apt-get 和 pip3 的源。
注意一下,樹(shù)莓派 3B/B+ 是 armv7l 芯片,選擇相應(yīng)版本的源。
修改NCSDK 的 Makefile 取消 卸載 OpenCV的過(guò)程
「坑」NCSDK會(huì)卸載OpenCV,導(dǎo)致用角蜂鳥(niǎo)的SDK時(shí),無(wú)法用OpenCV讀網(wǎng)絡(luò)攝像頭了。
角蜂鳥(niǎo)的鏡像有已經(jīng)安裝好了的OpenCV。因?yàn)榻欠澍B(niǎo)和NCSDK都是基于Movidius VPU 開(kāi)發(fā)的,如果對(duì)OpenCV有特殊需求,我認(rèn)為應(yīng)該也是一致的。在此我大膽的修改了NCSDK的Makefile,把關(guān)于OpenCV的卸載和安裝都去掉了。
.PHONY: install
# 刪除此行
# install: prereqs uninstallopencv
# 替換為:
install: prereqs
@echo "\nmake install starting."
./install.sh
安裝NCSDK
進(jìn)入目錄cd ncsdk-2.05.00.02
安裝sudo make install
安裝ncsdk時(shí),保證網(wǎng)速不能太慢。安裝過(guò)程會(huì)非常長(zhǎng),要有心里準(zhǔn)備。
錯(cuò)誤處理
安裝 NCSDK 依賴包時(shí)可能出現(xiàn)版本沖突的錯(cuò)誤
例如:

這是安裝scikit-img時(shí)報(bào)錯(cuò)。別慌!
細(xì)看 Makefile -> install.sh -> requirements.txt
...
scikit-image>=0.11.3,<=0.13.0
...
手動(dòng)安裝試試
sudo pip3 install scikit-image=0.13.0
依然報(bào)錯(cuò),安裝低版本試試?
sudo pip3 install scikit-image=0.11.3
成功了!
這就是版本過(guò)新,出現(xiàn)了沖突錯(cuò)誤,所以先別著急 apt-get update
如果遇到錯(cuò)誤,多看 install.sh吧?;旧暇褪菗Q源,指定模塊版本這些事。
安裝 Tensorflow
Tensorflow官方終于提供Raspberry Pi 的版本了,可以直接用pip3安裝了,比起以前自己編譯方便了很多。因此需要修改 ncsdk 的Makefile,不需要再用它去安裝Tensorflow了。(和修改不安裝opencv差不多,這里暫時(shí)先不寫(xiě)了)

安裝Caffe 內(nèi)存不足報(bào)錯(cuò)
Caffe的編譯過(guò)程需要較大的內(nèi)存。樹(shù)莓派內(nèi)存只有1G不夠用的時(shí)候就會(huì)報(bào)錯(cuò)。
不進(jìn)入圖形界面,開(kāi)機(jī)進(jìn)入console下,會(huì)有更多內(nèi)存可用。
根本解決問(wèn)題,需要給系統(tǒng)擴(kuò)充虛擬內(nèi)存
默認(rèn)Rasbian虛擬內(nèi)存只有100M,建議升到1~3G。
方法一(「坑」linux常規(guī)方法,樹(shù)莓派用這個(gè)方法,一重啟就恢復(fù)回100M。)
1) 關(guān)閉舊的虛擬內(nèi)存
sudo swapoff /var/swap
2) 擴(kuò)展swap大小 1G=1M * 1024
sudo dd bs=1M if=/dev/zero of=/var/swap count=1024
3) 格式化swap
sudo mkswap /var/swap
4) 開(kāi)啟swap虛擬內(nèi)存
sudo swapon /var/swap
5) 檢查swap內(nèi)存是否開(kāi)啟
sudo swapon -s
free -m
「坑」再?gòu)?qiáng)調(diào)下,方法一是個(gè)坑!Raspberr Pi 一重啟機(jī)器,swap就還原了成100M了。
「坑」再?gòu)?qiáng)調(diào)下,方法一是個(gè)坑!Raspberr Pi 一重啟機(jī)器,swap就還原了成100M了。
「坑」再?gòu)?qiáng)調(diào)下,方法一是個(gè)坑!Raspberr Pi 一重啟機(jī)器,swap就還原了成100M了。
方法二(樹(shù)莓派專用)
找到更好的方法請(qǐng)參考,源自:
http://shumeipai.nxez.com/2017/12/18/how-to-modify-raspberry-pi-swap-partition.html
修改 /etc/dphys-swapfile文件
sudo vi /etc/dphys-swapfile
將 CONF_SWAPSIZE 的值修改成你想要的大小。 一般在內(nèi)存小于2G的情況下,交換分區(qū)應(yīng)為內(nèi)存的2倍!
# 修改
CONF_SWAPSIZE=2048
然后,重新啟動(dòng) dphys-swapfile 文件服務(wù):
sudo /etc/init.d/dphys-swapfile restart
最后查看大小:
$ free -h
total used free shared buff/cache available
Mem: 976M 66M 801M 12M 108M 849M
Swap: 2.0G 0B 2.0G
增加 Caffe 環(huán)境變量
pi@raspberrypi:~ $ vi .bashrc
...
# 增加
export PYTHONPATH="${PYTHONPATH}:/opt/movidius/caffe/python"
....
# 使生效
pi@raspberrypi:~ $ source .bashrc
# 查看環(huán)境變量
pi@raspberrypi:~ $ env
自此大功告成
大功告成!
