樹莓派3B安裝opencv以及caffe

樹莓派3B安裝opencv 以及caffe 手記(個人記錄)

參考:http://blog.csdn.net/jmu201521121021/article/details/78323032

設備:樹莓派3B

環境:Ubuntu mate 以及 raspbian

前言:因爲買回來的樹莓派店家幫我把系統裝好了,學長建議配置一下opencv可以在做個樹莓派人臉識別等,看了一下自帶的儲存卡儲存空間太小,據我在筆記本的ubuntu上安裝opencv的經驗,首先耗費時間挺長的,樹莓派這個配置,豈不是要熱壞了,再者,我編譯完opencv那個文件夾佔地面積高達7.3G,看來得換張新的內存卡了,舊的不去新的不來,按照網上的一般方法,格式化SD卡寫入鏡像即可,所以習慣使用ubuntu的我也還是刷入了ubuntu mate的鏡像,然後配置opencv。

配置opencv方法如下:

sudo apt-get update
sudo apt-get install git
git clone https://github.com/jayrambhia/Install-OpenCV
cd ./Install-OpenCV
cd Ubuntu
chmod +x * 

到這一步先停住,如果是在我們平時的筆記本上可以直接 ./opencv_latest.sh  一步到位地把opencv安裝上去(這裏已經把所有需要的命令都寫入腳本了),但是我們現在的對象是樹莓派,我們的腳本默認開啓CPU的四核運算,爲了不讓樹莓派在長時間的編譯過程中直接Over掉,所以我們先改一下腳本的命令。

所以進入到我們的 /Install-OpenCV/Ubuntu 文件夾下面,編輯 opencv_install.sh ,將下圖的 make -j 4 改爲 make -j 1,然後保存。

然後在當前文件夾下執行:

./opencv_latest.sh 

因爲所有依賴項的安裝寫在 dependencies.sh 裏面,編譯安裝過程寫在 opencv_install.sh 裏面,所以整個過程都是全自動的。所以只需要等待過程結束即可。

整個過程我有觀察CPU等資源變化,所以使用一個核心數來編譯是不會導致樹莓派發熱過度死機的。

配置caffe方法如下:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
git clone https://github.com/BVLC/caffe
sudo apt-get install zip
unzip caffe-master.zip
cd caffe-master
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config 

因爲樹莓派沒有NVIDIA顯卡,所以我們修改參數的時候就只修改兩項。

將 #CPU_ONLY := 1 改爲 CPU_ONLY := 1  ;

將 #OPENCV_VERSION := 3 改爲 OPENCV_VERSION := 3 。

然後執行:

mkdir build
cd build
cmake ..
make all -j1
make pycaffe -j1
make test -j1
make runtest -j1

我剛開始以爲用 -j2 來編譯運行 caffe 也可能沒有問題,事實證明我錯了, 還是改成 -j1 ,用 -j2 會讓它中途卡機動不了了。另外,建議剛開機的時候編譯caffe,我開着瀏覽器也卡住了,編譯caffe要求好像比opencv要高,所以我沒有開任何應用,把caffe編譯過了。

後話:就在我編譯完caffe 沒隔多久,折騰了一個晚上的ubuntu mate 在我配置vnc的時候卡住了,然後重啓之後就進入桌面循環登錄的狀態,我但是懵逼了,這不是我電腦安裝英偉達顯卡驅動的時候纔會遇到的問題嗎?一個樹莓派我啥驅動都沒裝就讓我一晚上的功夫都over了。於是索引各種資料沒有發現這個解決方法,只能重裝系統了QAQ,因爲Ubuntu的循環登錄讓我一直很害怕,所以索性安裝成raspbian系統了,聽說穩定性可以,所以接下來來介紹在樹莓派在raspbian系統下配置opencv和caffe的故事。

當用上raspbian的時候倒是覺得這個會是比Ubuntu一個更加不錯的選擇,我安裝完之後才發現,很多軟件它都自帶好了,命令和Ubuntu基本一致,佔用內存比Ubuntu小,社區活躍問題好解決。

回到正題:

用上raspbian的第一步還是先更新源吧,更新國內的源真的很快。

sudo nano /etc/apt/sources.list
#可以把原來的刪除掉也可以加註釋 “#”
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free
#我這裏用的是中科大的源,我的raspbian版本是stretch,如果是jessie或其他版本可以自行修改。
#然後ctrl+o ,回車,ctrl+x,跳出,然後。
source /etc/apt/sources.list #或者重啓一下
sudo apt-get update

然後,接下來的操作還是,像上面在Ubuntu上安裝opencv 和caffe一樣,但是有點不同的地方,就是:

除了把 make -j 4 改爲 make -j 1,之外,還要進入 dependencies.sh 把 install_dependency libfaac-dev 這一句刪除掉,不然它找不到這個依賴項,刪除之後沒有發現有什麼影響。

所以我的raspbian裏的opencv還是按照之前ubuntu安裝時候的老辦法,所以我的路徑還是  /home/pi/OpenCV/Ubuntu/OpenCV/opencv-3.4.0 。

然後我發現使用python可以直接import cv2,並沒有受到路徑的的影響,所以我沒有去糾結這個問題,具體import不成功網上有很多方法可以解決。

至於caffe方面,import caffe報錯說找不到是因爲沒有把路徑加入到環境變量裏面,網上有很多方法,可以找一下。Import caffe時出現“ImportError: No module named google.protobuf.internal”的話直接執行:

pip install protobuf#我之前sudo了一下沒能成功安裝

然後,然後就可以用CPU來進行手寫體訓練入門了,可以邊實踐邊學習理論,實踐的成功可以激發對理論的求知慾,培養培養興趣和愛好也是挺好的,然後,emm, 下一篇記錄一下編譯運行opencv sample的方法,共同進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章