? ? ? ? 樹(shù)莓派安裝 OpenCV 環(huán)境是真的煩纹坐,經(jīng)歷過(guò)的人都懂撬陵。我從開(kāi)始安裝到安裝成功膀跌,整整花費(fèi)了12天嘱吗,在 sudo make 一環(huán)失敗了7次,其他地方也有各種大大小小的問(wèn)題览绿,當(dāng)然也有我白天上班只有晚上有時(shí)間折騰的原因。以下就是我在安裝過(guò)程中遇到的的各種問(wèn)題,圖就不貼了(因?yàn)橥浗貓D了-_-!柄冲,好不容易成功再來(lái)一遍也懶得搞),我會(huì)盡量的把問(wèn)題描述清楚忠蝗。另外现横,每個(gè)人遇到的問(wèn)題可能不同,即使相同的問(wèn)題不同的機(jī)器解決方法也可能不一樣阁最,我也做不到盡善盡美戒祠。首先要保證sd卡>16G。
一速种、使用apt-get 命令下載OpenCV依賴(lài)包速度慢以及部分OpenCV依賴(lài)包下載失斀(解決方法:換源)
? ??????樹(shù)莓派系統(tǒng)默認(rèn)使用國(guó)外的鏡像源,國(guó)內(nèi)訪問(wèn)速度非常慢配阵,因此需要換成國(guó)內(nèi)源馏颂。官網(wǎng)列出了換源列表?RaspbianMirrors - Raspbian。我使用的是中科大的源棋傍。
1救拉、備份原源文件以及查看源版本
? ??????在樹(shù)莓派命令行界面輸入以下命令備份源文件,
????????sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
? ??????sudo cp/etc/apt/sources.list.d/raspi.list/etc/apt/sources.list.d/raspi.list.bak
? ??????樹(shù)莓派系統(tǒng)是是基于debian改造出來(lái)的瘫拣,在2016年2月發(fā)布了樹(shù)莓派 3B近上,采用64位處理器的樹(shù)莓派 3B,雖然具有64位硬件拂铡,但是系統(tǒng)依舊使用的是基于debian 8 的 32位的Jessie壹无,所以不能完全的釋放出樹(shù)莓派3B的性能,隨著debian升級(jí)到了最新的debian 9 stretch,到了2017-08樹(shù)莓派對(duì)官方系統(tǒng)的版本號(hào)進(jìn)行了更新感帅,由之前的jessie升級(jí)到了基于最新64位的debian 9 stretch斗锭,而現(xiàn)在最新的應(yīng)該是Debian 10 buster。
? ? ? ? 具體型號(hào)可以通過(guò)終端輸入:lsb_release -a 命令來(lái)查看自己的系統(tǒng)到底是 jessie失球、strerch 還是 buster岖是。而對(duì)應(yīng)的帮毁,只需要將下面換源的命令中相應(yīng)的地方進(jìn)行修改即可,我的系統(tǒng)是 buster豺撑。
2烈疚、換源
? ? ? ? 輸入命令:sudo nano/etc/apt/sources.list
? ? ? ? 將源代碼給刪掉或注釋掉,將下面命名寫(xiě)入第一行:
? ??????deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
? ? ? ? Ctrl+O?保存聪轿,回車(chē)爷肝,Ctrl+X退出。
? ? ? ? 輸入:sudo nano/etc/apt/sources.list.d/raspi.list
? ??????將源代碼給刪掉或注釋掉陆错,將下面命名寫(xiě)入第一行:
? ??????deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui
? ??????Ctrl+O?保存灯抛,回車(chē),Ctrl+X退出音瓷。
3对嚼、更新源
? ? ? ? sudo apt-get update
4、更新軟件
? ??????sudo apt-get upgrade
5绳慎、下載OpenCV依賴(lài)包
? ??????sudo apt-get install build-essential cmake git pkg-config
????????sudo apt-get install libjpeg8-dev
????????sudo apt-get install libtiff5-dev
????????sudo apt-get install libjasper-dev
????????sudo apt-get install libpng12-dev
????????sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
????????sudo apt-get install libgtk2.0-dev
????????sudo apt-get install libatlas-base-dev gfortran? ? ?
????????sudo apt-get install libopencv-dev
二纵竖、使用wget命令下載OpenCV壓縮包以及OpenCV_contrib壓縮包速度慢以及壓縮包內(nèi)容缺失導(dǎo)致無(wú)法解壓(解決辦法:找到對(duì)應(yīng)的網(wǎng)址通過(guò)電腦下載后使用filezilla或U盤(pán)導(dǎo)入樹(shù)莓派)
????????我這里下載的是 opencv-3.4.4.zip 以及對(duì)應(yīng)的 opencv_contrib-3.4.4.zip(版本號(hào)一定要對(duì)應(yīng))。由于 wget -O 命令下載速度太慢杏愤,我通過(guò)電腦下載后磨确,使用 FileZilla 導(dǎo)入樹(shù)莓派的 /home/pi目錄下。FileZilla 的使用方法:
? ? ? ? 在主機(jī)處輸入樹(shù)莓派ip声邦,輸入你的用戶(hù)名乏奥、密碼,如果你連接過(guò)ssh亥曹,端口號(hào)輸入22即可邓了。點(diǎn)擊“快速連接”,連接成功后在下方分別點(diǎn)開(kāi)你要傳送的文件的所在目錄以及終點(diǎn)目錄媳瞪,雙擊文件即可傳送骗炉。
????????網(wǎng)址:https://github.com/Itseez/opencv/archive/3.4.4.zip
? ? ? ? ? ? ? ? ? ?https://github.com/Itseez/opencv_contrib/archive/3.4.4.zip
? ? ? ? 接下來(lái)解壓zip:
? ??????unzip opencv-3.4.4.zip
? ??????unzip opencv_contrib-3.4.4.zip
三、sudo make 前的一些準(zhǔn)備(避免采坑蛇受,一次成功)
1句葵、擴(kuò)展內(nèi)存
????????輸入 sudo raspi-config ,找到第七行 Advanecd Options 進(jìn)入兢仰,選擇第一條 Expand Filesystem乍丈。重啟樹(shù)莓派。
2把将、提前準(zhǔn)備缺失文件( 缺少boostdesc_bgm.i文件和vgg_generated_120.i文件等)
? ? ? ? 在如下鏈接處下載缺失的文件包
????????鏈接:https://pan.baidu.com/s/1xi6_5NuTFiP4SD649FgIJw
????????提取碼:mbsj
此處引用?CSDN博主「憶逍遙」的原創(chuàng)文章轻专,?原文鏈接:https://blog.csdn.net/weixin_43308627/article/details/97814927?
?????????將所有帶 i 結(jié)尾的文件全部都拷貝到 opencv_contrib/modules/xfeatures2d/src/ 路徑下即可〔於祝拷貝方法可用上文提到的 filezilla请垛。
? ??????
3催训、提前解決 fatal error: opencv2/xfeatures2d/cuda.hpp: 沒(méi)有那個(gè)文件或目錄
? ??????將/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2目錄下的xfeatures2d文件夾和xfeatures2d.hpp文件復(fù)制粘貼到 /home/pi/Downloads/opencv-3.4.0/modules/stitching/include/opencv2目錄下即可。
4宗收、開(kāi)始編譯
? ? ? ? 進(jìn)入到已解壓的 opencv-3.4.4 中: cd?opencv-3.4.4漫拭,
????????mkdir release
????????cd release
? ? ? ? 修改參數(shù):
? ??????cmake -D CMAKE_BUILD_TYPE=RELEASE \
? ? ? ? ? ? ? - D CMAKE_INSTALL_PREFIX=/usr/local \
? ? ? ? ? ? ? - D INSTALL_PYTHON_EXAMPLES=ON \
? ? ? ? ? ? ? - D INSTALL_C_EXAMPLES=OFF \
? ? ? ? ? ? ? - D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
? ? ? ? ? ? ? - D PYTHON_EXECUTABLE=~/usr/bin/python \
? ? ? ? ? ? ? - D BUILD_EXAMPLES=ON ..
? ? ? ? 輸入指令: sudo make 開(kāi)始編譯(漫長(zhǎng)的等待)
? ? ? ? 編譯完成后,輸入 sudo make install 進(jìn)行編譯安裝混稽。
? ? ? ? 輸入?sudo ldconfig 更新動(dòng)態(tài)鏈接庫(kù)采驻。
? ? ? ? 如果 sudo make 環(huán)節(jié)失敗,一定要?jiǎng)h除 release文件夾(在 opencv-3.4.4 文件夾中)荚坞,根據(jù)錯(cuò)誤提示進(jìn)行調(diào)整后重新 sudo make挑宠。如果不刪除會(huì)導(dǎo)致內(nèi)存爆滿(mǎn)從而無(wú)法連接 VNC菲盾。
? ??????