子豪兄教你在樹莓派上安裝OpenCV本文介紹了如何在樹莓派上安裝分別運行在Python2和Python3的OpenCV,。 運行在Python2上的OpenCV安裝非常簡單,幾行命令即可搞定,。運行在Python3上的OpenCV安裝比較麻煩,,需要編譯安裝,不用擔(dān)心,,本文默認(rèn)你是新手小白,,會一步步指導(dǎo)你安裝。本教程經(jīng)過作者親自測試,,自認(rèn)為是全網(wǎng)最靠譜的相關(guān)教程,。 原創(chuàng)作者:同濟大學(xué)開源軟件協(xié)會 子豪兄Tommy 微信公眾號:子豪兄的科研小屋 轉(zhuǎn)載或復(fù)制請以 原文超鏈接形式 并注明出處 子豪兄。 原文地址 http:///5gS6if 發(fā)布于2018-10-05
OpenCV是程序員鐘愛的開源計算機視覺庫,,擁有強大的內(nèi)置函數(shù)和開源社群,。OpenCV配合便攜開源廉價的樹莓派,可以直接讀取來自樹莓派攝像頭PiCamera的視頻,,進(jìn)行人臉識別,、邊緣檢測、語義分割,、自動駕駛、圖像識別等各種計算機視覺開發(fā),。很多優(yōu)秀開源項目,,比如谷歌人工智能框架Tensorflow和人臉識別開源項目face_recognition,都需要安裝OpenCV作為運行前提,。不少本科生的畢業(yè)設(shè)計也要用到它,。 網(wǎng)上關(guān)于在樹莓派上安裝OpenCV的教程很多,老外寫的和中國人寫的都有,,但都很不靠譜,,經(jīng)過長達(dá)7個月的摸索、屢敗屢戰(zhàn)的嘗試,,作者終于找到了靠譜的安裝流程,,并總結(jié)成本文。所有過程親測有效,。 運行在Python2上的OpenCV安裝非常簡單,,幾行命令即可搞定,。運行在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),,官方下載鏈接,。 純新手小白可以參考我寫的這兩篇文章,從拆盒子到各項配置完畢的樹莓派教程,。 子豪兄樹莓派系列教程01:樹莓派開機教程 子豪兄樹莓派系列教程02:一勞永逸配置樹莓派 2.切換到國內(nèi)的apt-get下載源和pip下載源防止下載速度過慢,。 不會換源的新手小白可以參考這篇文章一勞永逸配置樹莓派。 3.如果你有樹莓派官方的攝像頭Picamera,,需按如下方法正確配置如果沒有官方攝像頭,,也不影響安裝
在命令行輸入以下命令,這個命令的意思是用nano編輯器打開modules這個文件: 在這個文件末尾添加一行 bcm2835-v4l2
也就是這個效果 先按鍵盤上的 ctrl + o ,,再按回車保存,,再按 ctrl + x 退出nano編輯器回到命令行界面。 輸入命令 如果得到下面的結(jié)果,,則證明攝像頭連接成功 可以輸入命令 raspistill -o image.jpg
調(diào)用攝像頭拍一張照片,,命名為image.jpg,存儲在/pi/home路徑,,也就是桌面左上角資源管理器一打開顯示的那個路徑,。如果能看到攝像頭上紅燈亮,目錄里面有照片,,則進(jìn)一步說明攝像頭配置正確,。 在樹莓派安裝運行在Python2上的OpenCV1、安裝打開樹莓派的命令行界面,,兩個命令即可完成安裝,。執(zhí)行第一條命令需要半個小時左右,請耐心等待,。第二條命令執(zhí)行只需要幾秒鐘,。 子豪兄友情提示: 建議第一個命令用樹莓派桌面上自帶的命令行工具運行,而不要使用遠(yuǎn)程ssh連接。因為執(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安裝成功,。 也可以輸入 查看opencv版本號 為啥叫cv2而不叫opencv呢,?這是因為OpenCV是基于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
在樹莓派安裝運行在Python3上的OpenCV1、安裝numpy打開命令行界面,,輸入以下命令,,安裝Python科學(xué)計算庫numpy 2、在樹莓派設(shè)置中把根目錄擴大到整個SD卡命令行界面輸入命令,,進(jìn)入樹莓派配置界面,。用上下鍵和左右鍵切換光標(biāo)位置。 sudo raspi-config
第七行:Advanced Options選擇Expand Filesystem,,將根目錄擴展到這個SD卡,,充分利用SD卡的存儲空間。如果不進(jìn)行這一步,,后續(xù)命令會出現(xiàn)卡死,。退出設(shè)置界面,重啟樹莓派,。 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
wget https://github.com/Itseez/opencv/archive/3.4.0.zip
wget https://github.com/Itseez/opencv_contrib/archive/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ù),,注意,,下面這是一行命令(包括最后那倆點兒),需要耐心等待十五分鐘左右: 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,。如果失敗,,可能是因為兩個壓縮包的路徑?jīng)]有嚴(yán)格按照上文的要求。如果成功,,就可以開始最重要的編譯了,。 6、編譯最后一步,,也是最重要的一步:編譯 保證樹莓派有至少5G的存儲空間,,建議本命令用樹莓派桌面上的命令行工具運行,而不要使用遠(yuǎn)程ssh連接,。因為執(zhí)行命令時間太長,,中途如果ssh斷線的話無法得知是否已經(jīng)安裝完畢。 cd /home/pi/Downloads/opencv-3.4.0/build
make
編譯兩個小時之后,,完成了40% 靜待五個小時的編譯,。注意,在此期間,,樹莓派要供電充足,,不要運行其它任務(wù),以免因為內(nèi)存不夠什么的幺蛾子報錯,。 make 命令執(zhí)行完成之后,,執(zhí)行下面的命令,執(zhí)行命令需要一分鐘:
sudo make insall
7,、在Python3上測試OpenCV安裝好之后,,在命令行中輸入 python3 ,回車 回車 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:///5gS6if 發(fā)布于2018-10-05 同濟大學(xué)開源軟件協(xié)會 重慶大學(xué)樹莓派愛好者俱樂部,、人工智能協(xié)會,、創(chuàng)新實踐中心
|