子豪兄教你在樹莓派上安裝OpenCV
本文介紹了如何在樹莓派上安裝分別運(yùn)行在Python2和Python3的OpenCV孵淘。
運(yùn)行在Python2上的OpenCV安裝非常簡單畔咧,幾行命令即可搞定碰凶。運(yùn)行在Python3上的OpenCV安裝比較麻煩驱负,需要編譯安裝作箍,不用擔(dān)心,本文默認(rèn)你是新手小白合武,會一步步指導(dǎo)你安裝临梗。本教程經(jīng)過作者親自測試,自認(rèn)為是全網(wǎng)最靠譜的相關(guān)教程稼跳。
原創(chuàng)作者:同濟(jì)大學(xué)開源軟件協(xié)會 子豪兄Tommy 微信公眾號:子豪兄的科研小屋
轉(zhuǎn)載或復(fù)制請以 原文超鏈接形式 并注明出處 子豪兄盟庞。
原文地址 http://suo.im/5gS6if 發(fā)布于2018-10-05
? OpenCV是程序員鐘愛的開源計算機(jī)視覺庫,擁有強(qiáng)大的內(nèi)置函數(shù)和開源社群汤善。OpenCV配合便攜開源廉價的樹莓派什猖,可以直接讀取來自樹莓派攝像頭PiCamera的視頻票彪,進(jìn)行人臉識別、邊緣檢測不狮、語義分割降铸、自動駕駛、圖像識別等各種計算機(jī)視覺開發(fā)摇零。很多優(yōu)秀開源項(xiàng)目推掸,比如谷歌人工智能框架Tensorflow和人臉識別開源項(xiàng)目face_recognition,都需要安裝OpenCV作為運(yùn)行前提驻仅。不少本科生的畢業(yè)設(shè)計也要用到它谅畅。
? 網(wǎng)上關(guān)于在樹莓派上安裝OpenCV的教程很多,老外寫的和中國人寫的都有噪服,但都很不靠譜毡泻,經(jīng)過長達(dá)7個月的摸索、屢敗屢戰(zhàn)的嘗試粘优,作者終于找到了靠譜的安裝流程仇味,并總結(jié)成本文。所有過程親測有效雹顺。
? 運(yùn)行在Python2上的OpenCV安裝非常簡單邪铲,幾行命令即可搞定。運(yùn)行在Python3上的OpenCV安裝比較麻煩无拗,需要編譯安裝。作者建議兩個都安裝昧碉。不用擔(dān)心英染,本文默認(rèn)你是新手小白,會一步步指導(dǎo)你安裝被饿。本教程經(jīng)過作者親自測試四康,自認(rèn)為是全網(wǎng)最靠譜的相關(guān)教程。
? 按照本教程安裝好之后狭握,你可以迅速上手用樹莓派做一個子豪兄教你用樹莓派做人臉識別闪金。
安裝前提
1.配置好樹莓派的Raspbian操作系統(tǒng)
本教程使用的系統(tǒng)是2018年6月27日樹莓派官方發(fā)布的Raspbian-stretch操作系統(tǒng),官方下載鏈接论颅。
純新手小白可以參考我寫的這兩篇文章哎垦,從拆盒子到各項(xiàng)配置完畢的樹莓派教程。
2.切換到國內(nèi)的apt-get下載源和pip下載源
防止下載速度過慢恃疯。
不會換源的新手小白可以參考這篇文章一勞永逸配置樹莓派漏设。
3.如果你有樹莓派官方的攝像頭Picamera,需按如下方法正確配置
如果沒有官方攝像頭今妄,也不影響安裝
在命令行輸入以下命令郑口,這個命令的意思是用nano編輯器打開modules這個文件:
sudo nano /etc/modules
在這個文件末尾添加一行
bcm2835-v4l2
也就是這個效果
先按鍵盤上的ctrl
+o
鸳碧,再按回車保存,再按ctrl
+x
退出nano編輯器回到命令行界面犬性。
輸入命令
vcgencmd get_camera
如果得到下面的結(jié)果瞻离,則證明攝像頭連接成功
可以輸入命令
raspistill -o image.jpg
調(diào)用攝像頭拍一張照片,命名為image.jpg乒裆,存儲在/pi/home路徑套利,也就是桌面左上角資源管理器一打開顯示的那個路徑。如果能看到攝像頭上紅燈亮缸兔,目錄里面有照片日裙,則進(jìn)一步說明攝像頭配置正確。
在樹莓派安裝運(yùn)行在Python2上的OpenCV
1惰蜜、安裝
打開樹莓派的命令行界面昂拂,兩個命令即可完成安裝。執(zhí)行第一條命令需要半個小時左右抛猖,請耐心等待格侯。第二條命令執(zhí)行只需要幾秒鐘。
子豪兄友情提示:
建議第一個命令用樹莓派桌面上自帶的命令行工具運(yùn)行财著,而不要使用遠(yuǎn)程ssh連接联四。因?yàn)閳?zhí)行命令時間太長,中途如果ssh斷線的話無法得知是否已經(jīng)安裝完畢撑教。
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv
2朝墩、在Python2上測試OpenCV
安裝好之后,在命令行中輸入python
或者python2
伟姐,回車
import cv2
如果出現(xiàn)下圖的結(jié)果收苏,說明Python2環(huán)境下的OpenCV安裝成功。
也可以輸入
cv2.__version__
查看opencv版本號
為啥叫cv2而不叫opencv呢愤兵?這是因?yàn)镺penCV是基于C/C++開發(fā)的鹿霸,有兩個版本,''cv”版本的API是C語言開發(fā)的秆乳,''cv2''版本的API是基于C++語言開發(fā)的懦鼠,為了保持向后兼容性所以叫"cv2"讨阻,但我們都知道cv2就是OpenCV本尊伸眶。
也可以在桌面命令行里輸入以下三個命令調(diào)用樹莓派攝像頭,把攝像頭捕捉到的畫面顯示在桌面上突诬,按ctrl
+c
鍵退出扯键。
git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python2 testopencv.py
在樹莓派安裝運(yùn)行在Python3上的OpenCV
1淑趾、安裝numpy
打開命令行界面,輸入以下命令忧陪,安裝Python科學(xué)計算庫numpy
sudo pip3 install numpy
2扣泊、在樹莓派設(shè)置中把根目錄擴(kuò)大到整個SD卡
命令行界面輸入命令近范,進(jìn)入樹莓派配置界面。用上下鍵和左右鍵切換光標(biāo)位置延蟹。
sudo raspi-config
第七行:Advanced Options
選擇Expand Filesystem评矩,將根目錄擴(kuò)展到這個SD卡,充分利用SD卡的存儲空間阱飘。如果不進(jìn)行這一步斥杜,后續(xù)命令會出現(xiàn)卡死。退出設(shè)置界面沥匈,重啟樹莓派蔗喂。
sudo reboot
3、安裝OpenCV所需的庫
挨個運(yùn)行下面八條命令高帖。共需要七分鐘(注意倒數(shù)第三條命令中要安裝四個-dev軟件包)缰儿。
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
4、下載OpenCV
在命令行輸入以下三條命令散址,下載兩個壓縮包到樹莓派的/home/pi/Downloads目錄下乖阵。第一個壓縮包86.8MB,第二個壓縮包54.5MB:
cd /home/pi/Downloads
wget https://github.com/Itseez/opencv/archive/3.4.0.zip
wget https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip
下載之后预麸,把第一個壓縮包重新命名為opencv-3.4.0.zip
瞪浸,把第二個壓縮包重新命名為opencv_contrib-3.4.0.zip
如果下載速度很慢(比如每秒幾個KB):
方法1:可以在電腦瀏覽器中輸入wget后面的鏈接下載壓縮包,再用Fillzilla或者U盤等方法把文件傳輸?shù)綐漭傻?strong>/home/pi/Downloads目錄下(一定不能錯)吏祸。
方法2::可以用電腦在百度網(wǎng)盤鏈接下載這兩個壓縮包之后再用Fillzilla或者U盤等方法把文件傳輸?shù)綐漭傻?strong>/home/pi/Downloads目錄下(一定不能錯)对蒲。
解壓這兩個壓縮包
cd /home/pi/Downloads
unzip opencv-3.4.0.zip
unzip opencv_contrib-3.4.0.zip
5、設(shè)置編譯參數(shù)
設(shè)置編譯參數(shù)
cd /home/pi/Downloads/opencv-3.4.0
mkdir build
cd build
設(shè)置CMAKE參數(shù)贡翘,注意蹈矮,下面這是一行命令(包括最后那倆點(diǎn)兒),需要耐心等待十五分鐘左右:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.5/site-packages/numpy/core/include ..
根據(jù)下圖判斷你是否配置成功了CMAKE床估。如果失敗,可能是因?yàn)閮蓚€壓縮包的路徑?jīng)]有嚴(yán)格按照上文的要求诱渤。如果成功丐巫,就可以開始最重要的編譯了。
6勺美、編譯
最后一步递胧,也是最重要的一步:編譯
保證樹莓派有至少5G的存儲空間,建議本命令用樹莓派桌面上的命令行工具運(yùn)行赡茸,而不要使用遠(yuǎn)程ssh連接缎脾。因?yàn)閳?zhí)行命令時間太長,中途如果ssh斷線的話無法得知是否已經(jīng)安裝完畢占卧。
cd /home/pi/Downloads/opencv-3.4.0/build
make
編譯兩個小時之后遗菠,完成了40%
靜待五個小時的編譯联喘。注意,在此期間辙纬,樹莓派要供電充足豁遭,不要運(yùn)行其它任務(wù),以免因?yàn)閮?nèi)存不夠什么的幺蛾子報錯贺拣。
make
命令執(zhí)行完成之后蓖谢,執(zhí)行下面的命令,執(zhí)行命令需要一分鐘:
sudo make install
7譬涡、在Python3上測試OpenCV
安裝好之后闪幽,在命令行中輸入python3
,回車
import cv2
回車
cv2.__version__
回車
如果出現(xiàn)下圖的結(jié)果涡匀,說明Python3環(huán)境下的OpenCV安裝成功盯腌。
子豪兄批注:
我從2018年3月7日第一次嘗試在樹莓派上安裝opencv,看了無數(shù)教程渊跋,歷經(jīng)無數(shù)次失敗腊嗡。有的教程要配置虛擬環(huán)境,有的要修改內(nèi)存分配空間拾酝;有的教程使用樹莓派四個cpu核心同時編譯燕少,每次都會報錯;有的教程對新手小白極其不友好蒿囤,完全不知該怎么操作客们。在七個月的努力成功之后,我想用我的血淚史書寫本文材诽,讓每一個新手小白都能迅速上手而不是被bug卡到舉目無親底挫。
本文會在未來繼續(xù)更新和勘誤,最新版以Github上的子豪兄博客合集為準(zhǔn)
轉(zhuǎn)載或復(fù)制請以 原文超鏈接形式 并注明出處 子豪兄脸侥。
原文地址 http://suo.im/5gS6if 發(fā)布于2018-10-05
同濟(jì)大學(xué)開源軟件協(xié)會
重慶大學(xué)樹莓派愛好者俱樂部建邓、人工智能協(xié)會、創(chuàng)新實(shí)踐中心