子豪兄教你在樹莓派上安裝OpenCV

子豪兄教你在樹莓派上安裝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)教程。

? 按照本教程安裝好之后狭握,你可以迅速上手用樹莓派做一個子豪兄教你用樹莓派做人臉識別闪金。

face_recognition開源項(xiàng)目

安裝前提

1.配置好樹莓派的Raspbian操作系統(tǒng)

本教程使用的系統(tǒng)是2018年6月27日樹莓派官方發(fā)布的Raspbian-stretch操作系統(tǒng),官方下載鏈接论颅。

純新手小白可以參考我寫的這兩篇文章哎垦,從拆盒子到各項(xiàng)配置完畢的樹莓派教程。

子豪兄樹莓派系列教程01:樹莓派開機(jī)教程

子豪兄樹莓派系列教程02:一勞永逸配置樹莓派

2.切換到國內(nèi)的apt-get下載源和pip下載源

防止下載速度過慢恃疯。

不會換源的新手小白可以參考這篇文章一勞永逸配置樹莓派漏设。

3.如果你有樹莓派官方的攝像頭Picamera,需按如下方法正確配置

如果沒有官方攝像頭今妄,也不影響安裝

連接樹莓派攝像頭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安裝成功。

python2環(huán)境中運(yùn)行opencv

也可以輸入

cv2.__version__

查看opencv版本號

查看python2的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
測試python2上的opencv:調(diào)用樹莓派攝像頭

在樹莓派安裝運(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

Adcanved 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)格按照上文的要求诱渤。如果成功丐巫,就可以開始最重要的編譯了。

CMAKE配置

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安裝成功盯腌。

Python3的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í)踐中心

微信掃碼支持子豪兄制作樹莓派教程

參考文獻(xiàn)與擴(kuò)展閱讀

【樹莓派】樹莓派+OpenCV3.4 + python3.5 成功以及注意細(xì)節(jié)

樹莓派安裝Python-OpenCV

基于樹莓派3B+Python3.5的OpenCV3.4的配置教程

樹莓派接線
歡迎加入樹莓派全球開源社區(qū)
合作伙伴
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睁枕,一起剝皮案震驚了整個濱河市官边,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌外遇,老刑警劉巖注簿,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異跳仿,居然都是意外死亡诡渴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門菲语,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妄辩,“玉大人惑灵,你說我怎么就攤上這事《鞲ぃ” “怎么了泣棋?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畔塔。 經(jīng)常有香客問我潭辈,道長,這世上最難降的妖魔是什么澈吨? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任把敢,我火速辦了婚禮,結(jié)果婚禮上谅辣,老公的妹妹穿的比我還像新娘修赞。我一直安慰自己,他們只是感情好桑阶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布柏副。 她就那樣靜靜地躺著,像睡著了一般蚣录。 火紅的嫁衣襯著肌膚如雪割择。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天萎河,我揣著相機(jī)與錄音荔泳,去河邊找鬼。 笑死虐杯,一個胖子當(dāng)著我的面吹牛玛歌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擎椰,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼支子,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了达舒?” 一聲冷哼從身側(cè)響起值朋,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎休弃,沒想到半個月后吞歼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圈膏,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡塔猾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稽坤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丈甸。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡糯俗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睦擂,到底是詐尸還是另有隱情得湘,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布顿仇,位于F島的核電站淘正,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏臼闻。R本人自食惡果不足惜鸿吆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望述呐。 院中可真熱鬧惩淳,春花似錦、人聲如沸乓搬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽进肯。三九已至激蹲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坷澡,已是汗流浹背托呕。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留频敛,地道東北人项郊。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像斟赚,于是被迫代替她去往敵國和親着降。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容