子豪兄教你在樹莓派上安裝OpenCV本文介紹了如何在樹莓派上安裝分別運(yùn)行在Python2和Python3的OpenCV。 運(yùn)行在Python2上的OpenCV安裝非常簡(jiǎn)單,幾行命令即可搞定。運(yùn)行在Python3上的OpenCV安裝比較麻煩,需要編譯安裝,不用擔(dān)心,本文默認(rèn)你是新手小白,會(huì)一步步指導(dǎo)你安裝。本教程經(jīng)過作者親自測(cè)試,自認(rèn)為是全網(wǎng)最靠譜的相關(guān)教程。 原創(chuàng)作者:同濟(jì)大學(xué)開源軟件協(xié)會(huì) 子豪兄Tommy 微信公眾號(hào):子豪兄的科研小屋 轉(zhuǎn)載或復(fù)制請(qǐng)以 原文超鏈接形式 并注明出處 子豪兄。 原文地址 http:///5gS6if 發(fā)布于2018-10-05
OpenCV是程序員鐘愛的開源計(jì)算機(jī)視覺庫(kù),擁有強(qiáng)大的內(nèi)置函數(shù)和開源社群。OpenCV配合便攜開源廉價(jià)的樹莓派,可以直接讀取來(lái)自樹莓派攝像頭PiCamera的視頻,進(jìn)行人臉識(shí)別、邊緣檢測(cè)、語(yǔ)義分割、自動(dòng)駕駛、圖像識(shí)別等各種計(jì)算機(jī)視覺開發(fā)。很多優(yōu)秀開源項(xiàng)目,比如谷歌人工智能框架Tensorflow和人臉識(shí)別開源項(xiàng)目face_recognition,都需要安裝OpenCV作為運(yùn)行前提。不少本科生的畢業(yè)設(shè)計(jì)也要用到它。 網(wǎng)上關(guān)于在樹莓派上安裝OpenCV的教程很多,老外寫的和中國(guó)人寫的都有,但都很不靠譜,經(jīng)過長(zhǎng)達(dá)7個(gè)月的摸索、屢敗屢戰(zhàn)的嘗試,作者終于找到了靠譜的安裝流程,并總結(jié)成本文。所有過程親測(cè)有效。 運(yùn)行在Python2上的OpenCV安裝非常簡(jiǎn)單,幾行命令即可搞定。運(yùn)行在Python3上的OpenCV安裝比較麻煩,需要編譯安裝。作者建議兩個(gè)都安裝。不用擔(dān)心,本文默認(rèn)你是新手小白,會(huì)一步步指導(dǎo)你安裝。本教程經(jīng)過作者親自測(cè)試,自認(rèn)為是全網(wǎng)最靠譜的相關(guān)教程。 按照本教程安裝好之后,你可以迅速上手用樹莓派做一個(gè)子豪兄教你用樹莓派做人臉識(shí)別。 安裝前提1.配置好樹莓派的Raspbian操作系統(tǒng)本教程使用的系統(tǒng)是2018年6月27日樹莓派官方發(fā)布的Raspbian-stretch操作系統(tǒng),官方下載鏈接。 純新手小白可以參考我寫的這兩篇文章,從拆盒子到各項(xiàng)配置完畢的樹莓派教程。 子豪兄樹莓派系列教程01:樹莓派開機(jī)教程 子豪兄樹莓派系列教程02:一勞永逸配置樹莓派 2.切換到國(guó)內(nèi)的apt-get下載源和pip下載源防止下載速度過慢。 不會(huì)換源的新手小白可以參考這篇文章一勞永逸配置樹莓派。 3.如果你有樹莓派官方的攝像頭Picamera,需按如下方法正確配置如果沒有官方攝像頭,也不影響安裝
在命令行輸入以下命令,這個(gè)命令的意思是用nano編輯器打開modules這個(gè)文件: 在這個(gè)文件末尾添加一行 bcm2835-v4l2
也就是這個(gè)效果 先按鍵盤上的 ctrl + o ,再按回車保存,再按 ctrl + x 退出nano編輯器回到命令行界面。 輸入命令 如果得到下面的結(jié)果,則證明攝像頭連接成功 可以輸入命令 raspistill -o image.jpg
調(diào)用攝像頭拍一張照片,命名為image.jpg,存儲(chǔ)在/pi/home路徑,也就是桌面左上角資源管理器一打開顯示的那個(gè)路徑。如果能看到攝像頭上紅燈亮,目錄里面有照片,則進(jìn)一步說明攝像頭配置正確。 在樹莓派安裝運(yùn)行在Python2上的OpenCV1、安裝打開樹莓派的命令行界面,兩個(gè)命令即可完成安裝。執(zhí)行第一條命令需要半個(gè)小時(shí)左右,請(qǐng)耐心等待。第二條命令執(zhí)行只需要幾秒鐘。 子豪兄友情提示: 建議第一個(gè)命令用樹莓派桌面上自帶的命令行工具運(yùn)行,而不要使用遠(yuǎn)程ssh連接。因?yàn)閳?zhí)行命令時(shí)間太長(zhǎng),中途如果ssh斷線的話無(wú)法得知是否已經(jīng)安裝完畢。
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv
2、在Python2上測(cè)試OpenCV安裝好之后,在命令行中輸入 python 或者 python2 ,回車 import cv2
如果出現(xiàn)下圖的結(jié)果,說明Python2環(huán)境下的OpenCV安裝成功。 也可以輸入 查看opencv版本號(hào) 為啥叫cv2而不叫opencv呢?這是因?yàn)镺penCV是基于C/C++開發(fā)的,有兩個(gè)版本,''cv”版本的API是C語(yǔ)言開發(fā)的,''cv2''版本的API是基于C++語(yǔ)言開發(fā)的,為了保持向后兼容性所以叫'cv2',但我們都知道cv2就是OpenCV本尊。
也可以在桌面命令行里輸入以下三個(gè)命令調(diào)用樹莓派攝像頭,把攝像頭捕捉到的畫面顯示在桌面上,按 ctrl + c 鍵退出。 git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python2 testopencv.py
在樹莓派安裝運(yùn)行在Python3上的OpenCV1、安裝numpy打開命令行界面,輸入以下命令,安裝Python科學(xué)計(jì)算庫(kù)numpy 2、在樹莓派設(shè)置中把根目錄擴(kuò)大到整個(gè)SD卡命令行界面輸入命令,進(jìn)入樹莓派配置界面。用上下鍵和左右鍵切換光標(biāo)位置。 sudo raspi-config
第七行:Advanced Options選擇Expand Filesystem,將根目錄擴(kuò)展到這個(gè)SD卡,充分利用SD卡的存儲(chǔ)空間。如果不進(jìn)行這一步,后續(xù)命令會(huì)出現(xiàn)卡死。退出設(shè)置界面,重啟樹莓派。 3、安裝OpenCV所需的庫(kù)挨個(gè)運(yùn)行下面八條命令。共需要七分鐘(注意倒數(shù)第三條命令中要安裝四個(gè)-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在命令行輸入以下三條命令,下載兩個(gè)壓縮包到樹莓派的/home/pi/Downloads目錄下。第一個(gè)壓縮包86.8MB,第二個(gè)壓縮包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
如果下載速度很慢(比如每秒幾個(gè)KB): 方法1:可以在電腦瀏覽器中輸入wget后面的鏈接下載壓縮包,再用Fillzilla或者U盤等方法把文件傳輸?shù)綐漭傻?strong>/home/pi/Downloads目錄下(一定不能錯(cuò))。 方法2::可以用電腦在百度網(wǎng)盤鏈接下載這兩個(gè)壓縮包之后再用Fillzilla或者U盤等方法把文件傳輸?shù)綐漭傻?strong>/home/pi/Downloads目錄下(一定不能錯(cuò))。
解壓這兩個(gè)壓縮包 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)閮蓚€(gè)壓縮包的路徑?jīng)]有嚴(yán)格按照上文的要求。如果成功,就可以開始最重要的編譯了。 6、編譯最后一步,也是最重要的一步:編譯 保證樹莓派有至少5G的存儲(chǔ)空間,建議本命令用樹莓派桌面上的命令行工具運(yùn)行,而不要使用遠(yuǎn)程ssh連接。因?yàn)閳?zhí)行命令時(shí)間太長(zhǎng),中途如果ssh斷線的話無(wú)法得知是否已經(jīng)安裝完畢。 cd /home/pi/Downloads/opencv-3.4.0/build
make
編譯兩個(gè)小時(shí)之后,完成了40% 靜待五個(gè)小時(shí)的編譯。注意,在此期間,樹莓派要供電充足,不要運(yùn)行其它任務(wù),以免因?yàn)閮?nèi)存不夠什么的幺蛾子報(bào)錯(cuò)。 make 命令執(zhí)行完成之后,執(zhí)行下面的命令,執(zhí)行命令需要一分鐘:
sudo make insall
7、在Python3上測(cè)試OpenCV安裝好之后,在命令行中輸入 python3 ,回車 回車 cv2.__version__
回車 如果出現(xiàn)下圖的結(jié)果,說明Python3環(huán)境下的OpenCV安裝成功。 子豪兄批注: 我從2018年3月7日第一次嘗試在樹莓派上安裝opencv,看了無(wú)數(shù)教程,歷經(jīng)無(wú)數(shù)次失敗。有的教程要配置虛擬環(huán)境,有的要修改內(nèi)存分配空間;有的教程使用樹莓派四個(gè)cpu核心同時(shí)編譯,每次都會(huì)報(bào)錯(cuò);有的教程對(duì)新手小白極其不友好,完全不知該怎么操作。在七個(gè)月的努力成功之后,我想用我的血淚史書寫本文,讓每一個(gè)新手小白都能迅速上手而不是被bug卡到舉目無(wú)親。 本文會(huì)在未來(lái)繼續(xù)更新和勘誤,最新版以Github上的子豪兄博客合集為準(zhǔn) 轉(zhuǎn)載或復(fù)制請(qǐng)以 原文超鏈接形式 并注明出處 子豪兄。 原文地址 http:///5gS6if 發(fā)布于2018-10-05 同濟(jì)大學(xué)開源軟件協(xié)會(huì) 重慶大學(xué)樹莓派愛好者俱樂部、人工智能協(xié)會(huì)、創(chuàng)新實(shí)踐中心
|