樹莓派安裝openCV做圖像識別
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
本文轉(zhuǎn)自|新機器視覺
有時候我們會使用樹莓派和攝像頭去做圖像識別,在樹莓派和LINUX系統(tǒng)中最常用opencv去做圖像識別,這次來介紹下樹莓派安裝opencv和用樹莓派做圖像識別。
一、樹莓派的系統(tǒng)
安裝就不介紹了。直接開機打開樹莓派的命令窗口,安裝openCV的依賴包,步驟有點多。
1.1 更新系統(tǒng)
$ sudo apt-get update$ sudo apt-get upgrade
1.2 安裝編譯openCV源碼的工具
$ sudo apt-get install build-essential cmake pkg-config
1.3 安裝一些常見格式的圖像處理和視頻處理的包,方便我們能從硬盤上讀取不同格式的圖像和視頻
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev$ sudo apt-get install libxvidcore-dev libx264-dev
1.4 openCV用于圖像展示的功能需要依模塊
$ sudo apt-get install libgtk2.0-dev$ sudo apt-get install libatlas-base-dev gfortran
接下來還需要安裝python dev
sudo apt-get install python2.7-dev python3-dev
二、下載 并解壓OpenCV 的資源庫
$ cd ~$ wget -O opencv.zip <a >https://github.com/Itseez/opencv/archive/3.1.0.zip</a>$ unzip opencv.zip$ wget -O opencv_contrib.zip <a >https://github.com/Itseez/opencv_contrib/archive/3...</a>$ unzip opencv_contrib.zip
三、接下來準備python的開發(fā)環(huán)境
3.1 安裝python包管理器:
$ wget <a >https://bootstrap.pypa.io/get-pip.py</a> $ sudo python get-pip.py
3.2 安裝python虛擬環(huán)境
$ sudo pip install virtualenv virtualenvwrapper$ sudo rm -rf ~/.cache/pip
之后在~/.profile文件最后添加幾行
# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvssource /usr/local/bin/virtualenvwrapper.sh
3.3 接下來就是生成一個python虛擬環(huán)境用于opencv的開發(fā)環(huán)境
$ mkvirtualenv cv -p python3
打開一個命令窗口,執(zhí)行下列命令,確認我們的cv環(huán)境已經(jīng)生成好了
$ source ~/.profile$ workon cv
如果命令窗口前面的文字變成了(cv)則表明我們已成功創(chuàng)建了名為cv的python虛擬環(huán)境

3.4 在cv虛擬環(huán)境下安裝numpy
(cv) -> ~ $ pip install numpy
接下來的操作都要保持在cv環(huán)境中。
四、編譯和安裝openCV
4.1 一定要在cv環(huán)境里,接下來用cmake進行編譯opencv
$ cd ~/opencv-3.1.0/$ mkdir build$ cd build$ cmake -D ENABLE_PRECOMPILED_HEADERS=OFF \-D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_PYTHON_EXAMPLES=ON \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \-D BUILD_EXAMPLES=ON ..
4.2 開始編譯opencv
$ make -j4<br>
編譯過程大概會用好幾個小時,請耐心等候,-j 是使用多少線程進行編譯,在樹莓派上使用的單線程編譯,雖然速度會慢很多,但是不會死機,用-j4會有死機的可能。如果-j后不加數(shù)字,則默認不限制線程編譯。
編譯過程如下

4.3 安裝opencv
$ sudo make install$ sudo ldconfig
4.4 python虛擬環(huán)境中鏈接到opencv模塊
我們需要將cv2.cpython-34m.so重命名為cv2.so
$ cd /usr/local/lib/python3.4/site-packages/$ sudo mv cv2.cpython-34m.so cv2.so
然后將python虛擬環(huán)境中的cv2.so鏈接到上面剛被改名為cv2.so的文件上
$ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/$ ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so

五、測試OpenCV3是否安裝成功
$ source ~/.profile$ workon cv$ python>>> import cv2>>> cv2.__version__'3.1.0'>>>

六、完成OpenCV的開發(fā)環(huán)境后,就可以跑幾個簡單的圖像識別的DEMO
其DEMO放在/usr/local/share/OpenCV/sample/python目錄下

我們將/usr/local/share/OpenCV/sample/文件拷貝到Downloads/sample/文件夾下

跑幾個DEMO
邊緣檢測算法:(cv) python edge.py

模式識別算法:(cv) python find_obj.py

運動方向檢測:(cv) python lk_track.py

大功告成,opencv是樹莓派進行圖像處理和識別的常用工具,如果配合樹莓派CSI的攝像頭獲取相片并識別處理將會更加有趣,可以做成人臉識別或者人臉追蹤。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

