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

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

本文介紹了如何在樹莓派上安裝分別運行在Python2和Python3的OpenCV共啃。

運行在Python2上的OpenCV安裝非常簡單闪朱,幾行命令即可搞定。運行在Python3上的OpenCV安裝比較麻煩,需要編譯安裝掖蛤,不用擔心,本文默認你是新手小白井厌,會一步步指導你安裝蚓庭。本教程經過作者親自測試,自認為是全網最靠譜的相關教程仅仆。

原創(chuàng)作者:同濟大學開源軟件協(xié)會 子豪兄Tommy 微信公眾號:子豪兄的科研小屋

轉載或復制請以 原文超鏈接形式 并注明出處 子豪兄器赞。

原文地址 http://suo.im/5gS6if 發(fā)布于2018-10-05

? OpenCV是程序員鐘愛的開源計算機視覺庫,擁有強大的內置函數(shù)和開源社群墓拜。OpenCV配合便攜開源廉價的樹莓派港柜,可以直接讀取來自樹莓派攝像頭PiCamera的視頻,進行人臉識別咳榜、邊緣檢測夏醉、語義分割、自動駕駛涌韩、圖像識別等各種計算機視覺開發(fā)畔柔。很多優(yōu)秀開源項目,比如谷歌人工智能框架Tensorflow和人臉識別開源項目face_recognition贸辈,都需要安裝OpenCV作為運行前提释树。不少本科生的畢業(yè)設計也要用到它肠槽。

? 網上關于在樹莓派上安裝OpenCV的教程很多擎淤,老外寫的和中國人寫的都有,但都很不靠譜秸仙,經過長達7個月的摸索嘴拢、屢敗屢戰(zhàn)的嘗試,作者終于找到了靠譜的安裝流程寂纪,并總結成本文席吴。所有過程親測有效赌结。

? 運行在Python2上的OpenCV安裝非常簡單,幾行命令即可搞定孝冒。運行在Python3上的OpenCV安裝比較麻煩柬姚,需要編譯安裝。作者建議兩個都安裝庄涡。不用擔心量承,本文默認你是新手小白,會一步步指導你安裝穴店。本教程經過作者親自測試撕捍,自認為是全網最靠譜的相關教程。

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

face_recognition開源項目

安裝前提

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

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

純新手小白可以參考我寫的這兩篇文章狮腿,從拆盒子到各項配置完畢的樹莓派教程。

子豪兄樹莓派系列教程01:樹莓派開機教程

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

2.切換到國內的apt-get下載源和pip下載源

防止下載速度過慢弟蚀。

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

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

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

連接樹莓派攝像頭Picamera

在命令行輸入以下命令昧绣,這個命令的意思是用nano編輯器打開modules這個文件:

sudo nano /etc/modules

在這個文件末尾添加一行

bcm2835-v4l2

也就是這個效果

先按鍵盤上的ctrl+o,再按回車保存捶闸,再按ctrl+x退出nano編輯器回到命令行界面夜畴。

輸入命令

vcgencmd get_camera

如果得到下面的結果,則證明攝像頭連接成功

檢查攝像頭是否被樹莓派識別

可以輸入命令

raspistill -o image.jpg

調用攝像頭拍一張照片删壮,命名為image.jpg贪绘,存儲在/pi/home路徑,也就是桌面左上角資源管理器一打開顯示的那個路徑央碟。如果能看到攝像頭上紅燈亮税灌,目錄里面有照片,則進一步說明攝像頭配置正確亿虽。

在樹莓派安裝運行在Python2上的OpenCV

1菱涤、安裝

打開樹莓派的命令行界面,兩個命令即可完成安裝洛勉。執(zhí)行第一條命令需要半個小時左右粘秆,請耐心等待。第二條命令執(zhí)行只需要幾秒鐘收毫。

子豪兄友情提示:

建議第一個命令用樹莓派桌面上自帶的命令行工具運行攻走,而不要使用遠程ssh連接殷勘。因為執(zhí)行命令時間太長,中途如果ssh斷線的話無法得知是否已經安裝完畢昔搂。

sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

2玲销、在Python2上測試OpenCV

安裝好之后,在命令行中輸入python或者python2摘符,回車

import cv2

如果出現(xiàn)下圖的結果痒玩,說明Python2環(huán)境下的OpenCV安裝成功。

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

也可以輸入

cv2.__version__

查看opencv版本號

查看python2的opencv版本

為啥叫cv2而不叫opencv呢议慰?這是因為OpenCV是基于C/C++開發(fā)的蠢古,有兩個版本,''cv”版本的API是C語言開發(fā)的别凹,''cv2''版本的API是基于C++語言開發(fā)的草讶,為了保持向后兼容性所以叫"cv2",但我們都知道cv2就是OpenCV本尊炉菲。

也可以在桌面命令行里輸入以下三個命令調用樹莓派攝像頭堕战,把攝像頭捕捉到的畫面顯示在桌面上,按ctrl+c鍵退出拍霜。

git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python2 testopencv.py
測試python2上的opencv:調用樹莓派攝像頭

在樹莓派安裝運行在Python3上的OpenCV

1嘱丢、安裝numpy

打開命令行界面,輸入以下命令祠饺,安裝Python科學計算庫numpy

sudo pip3 install numpy

2越驻、在樹莓派設置中把根目錄擴大到整個SD卡

命令行界面輸入命令,進入樹莓派配置界面道偷。用上下鍵和左右鍵切換光標位置缀旁。

sudo raspi-config
樹莓派配置界面

第七行:Advanced Options

Adcanved Options

選擇Expand Filesystem,將根目錄擴展到這個SD卡勺鸦,充分利用SD卡的存儲空間并巍。如果不進行這一步,后續(xù)命令會出現(xiàn)卡死换途。退出設置界面懊渡,重啟樹莓派。

sudo reboot

3军拟、安裝OpenCV所需的庫

挨個運行下面八條命令剃执。共需要七分鐘(注意倒數(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::可以用電腦在百度網盤鏈接下載這兩個壓縮包之后再用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ù)

cd /home/pi/Downloads/opencv-3.4.0
mkdir build
cd build

設置CMAKE參數(shù)配阵,注意,下面這是一行命令(包括最后那倆點兒)示血,需要耐心等待十五分鐘左右:

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 ..

根據下圖判斷你是否配置成功了CMAKE棋傍。如果失敗,可能是因為兩個壓縮包的路徑沒有嚴格按照上文的要求难审。如果成功瘫拣,就可以開始最重要的編譯了。

CMAKE配置

6告喊、編譯

最后一步麸拄,也是最重要的一步:編譯

保證樹莓派有至少5G的存儲空間,建議本命令用樹莓派桌面上的命令行工具運行黔姜,而不要使用遠程ssh連接拢切。因為執(zhí)行命令時間太長,中途如果ssh斷線的話無法得知是否已經安裝完畢秆吵。

cd /home/pi/Downloads/opencv-3.4.0/build
make
開始編譯

編譯兩個小時之后淮椰,完成了40%

編譯兩個小時之后

靜待五個小時的編譯。注意纳寂,在此期間实苞,樹莓派要供電充足,不要運行其它任務烈疚,以免因為內存不夠什么的幺蛾子報錯黔牵。

編譯完成

make命令執(zhí)行完成之后,執(zhí)行下面的命令爷肝,執(zhí)行命令需要一分鐘:

sudo make install

7猾浦、在Python3上測試OpenCV

安裝好之后,在命令行中輸入python3灯抛,回車

import cv2

回車

cv2.__version__

回車

如果出現(xiàn)下圖的結果金赦,說明Python3環(huán)境下的OpenCV安裝成功。

Python3的OpenCV安裝完成

子豪兄批注:

我從2018年3月7日第一次嘗試在樹莓派上安裝opencv对嚼,看了無數(shù)教程夹抗,歷經無數(shù)次失敗。有的教程要配置虛擬環(huán)境纵竖,有的要修改內存分配空間漠烧;有的教程使用樹莓派四個cpu核心同時編譯杏愤,每次都會報錯;有的教程對新手小白極其不友好已脓,完全不知該怎么操作珊楼。在七個月的努力成功之后,我想用我的血淚史書寫本文度液,讓每一個新手小白都能迅速上手而不是被bug卡到舉目無親厕宗。

本文會在未來繼續(xù)更新和勘誤,最新版以Github上的子豪兄博客合集為準

轉載或復制請以 原文超鏈接形式 并注明出處 子豪兄堕担。

原文地址 http://suo.im/5gS6if 發(fā)布于2018-10-05

同濟大學開源軟件協(xié)會

重慶大學樹莓派愛好者俱樂部已慢、人工智能協(xié)會、創(chuàng)新實踐中心

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

參考文獻與擴展閱讀

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

樹莓派安裝Python-OpenCV

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

樹莓派接線
歡迎加入樹莓派全球開源社區(qū)
合作伙伴
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末霹购,一起剝皮案震驚了整個濱河市蛇受,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厕鹃,老刑警劉巖兢仰,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剂碴,居然都是意外死亡把将,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門忆矛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來察蹲,“玉大人,你說我怎么就攤上這事催训∏⒁椋” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵漫拭,是天一觀的道長亚兄。 經常有香客問我,道長采驻,這世上最難降的妖魔是什么审胚? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮礼旅,結果婚禮上膳叨,老公的妹妹穿的比我還像新娘。我一直安慰自己痘系,他們只是感情好菲嘴,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般龄坪。 火紅的嫁衣襯著肌膚如雪昭雌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天悉默,我揣著相機與錄音,去河邊找鬼苟穆。 笑死抄课,一個胖子當著我的面吹牛,可吹牛的內容都是我干的雳旅。 我是一名探鬼主播跟磨,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼攒盈!你這毒婦竟也來了抵拘?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤型豁,失蹤者是張志新(化名)和其女友劉穎僵蛛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迎变,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡充尉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衣形。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驼侠。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谆吴,靈堂內的尸體忽然破棺而出倒源,到底是詐尸還是另有隱情,我是刑警寧澤句狼,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布笋熬,位于F島的核電站,受9級特大地震影響腻菇,放射性物質發(fā)生泄漏突诬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一芜繁、第九天 我趴在偏房一處隱蔽的房頂上張望旺隙。 院中可真熱鬧,春花似錦骏令、人聲如沸蔬捷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽周拐。三九已至铡俐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妥粟,已是汗流浹背审丘。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留勾给,地道東北人滩报。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像播急,于是被迫代替她去往敵國和親脓钾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容