樹莓派安裝opencv3及其擴展庫


https://www.cnblogs.com/Pyrokine/p/8921285.html

目標

編譯針對python的opencv以及擴展庫

環境
樹莓派4和3B+都可以
python3.7.3 python2.7共存
opencv3.4.8
--------------------------------------------------------------------------------------------------------------------------------
安裝過程

准備1 關閉休眠(可以不管)
  
為了避免安裝過程中樹莓派休眠,先關閉他自動休眠
https://www.cnblogs.com/kekeoutlook/p/11066283.html

准備2 不要切換安裝源(可以不切換)
一般為了安裝提速會切換清華或者阿里的源,樹莓派3B+好像沒這個問題,但是4代切換后,每次安裝東西都要提示安裝軟件依賴包問題不能安裝。
因為4代本來就是最新的系統,切換了源里面的很多軟件包都是最新的,但是opencv需要一些舊有的版本,就導致了已經安裝的最新的版本無法被低級別的取代,進一步阻止你安裝。
我是在重新刷了系統試出來的。
雖然有aptitude代替apt-get來安裝軟件,它會自動按照需求降低版本安裝,但是在上述問題下你連aptitude都安裝不了。
當然你可以嘗試不切換源先把
aptitude安裝了,然后在切換源,之后用aptitude代替apt-get來安裝東西。我沒測試。
准備3 擴大交換分區(必須)
編譯到81%的時候卡死了,報錯:
解決: g++: internal compiler error: Killed (program cc1plus),內存不夠
增加交換分區
https://www.cnblogs.com/kekeoutlook/p/11856057.html

 

網上說交換分區會造成內存卡損傷加快,如果使用完沒有大的使用程序,最好重新調整回去,原來是 100Mb

 

 

0 擴大TF卡的空間

如果不做這步操作,后面會出問題,比如卡死

輸入(命令行)

sudo raspi-config

然后選擇" Advanced Options "然后選擇" Expand Filesystem "然后重啟樹莓派

1 下載opencv以及contrib源碼包

1-1 下載opencv

https://github.com/Itseez/opencv/

 

 

 https://github.com/opencv/opencv/releases

 

 

 

https://github.com/opencv/opencv/releases/tag/3.4.8

 

 

1-2 下載擴展庫

同樣的操作下載擴展庫

https://github.com/opencv/opencv_contrib

https://github.com/opencv/opencv_contrib/releases

 

 

 https://github.com/opencv/opencv_contrib/releases/tag/3.4.8

 

 

 

我從自己的電腦下載好,拷貝到樹莓派,解壓。  

 

2 更新apt(命令行)

sudo apt-get update
sudo apt-get upgrade

3 安裝預先依賴庫
開始為OpenCV安裝做准備,配置所需的庫(一次一行)
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
4cmake配置
在opencv3.8.4創建 build文件,命令行cd進入build文件夾下面

執行命令

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/Work/1Sortware/opencv38_python37/opencv_contrib-3.4.8/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include ..  

 

 

 

  • 1修改自己的opencv版本
  • 2修改opencv_contrib對應的路徑,這里用的是
    OPENCV_EXTRA_MODULES_PATH=/home/pi/Work/1Sortware/opencv38_python37/opencv_contrib-3.4.8/modules
  • 3修改python版本,這里用的是 python3.7 

配置成功

 

 

 

 

 

 5編譯和安裝

在build文件夾下,開始編譯

sudo make

 

漫長的等待,樹莓派3B+需要6-7個小時 樹莓派4正在編譯未知時間,肯定要比3B+快。

早上起來卡在81%報錯,內存不夠,開啟2G的交換空間,又可以繼續編譯了(剛開始還是卡,但是過了81%就快了)。 

 

編譯成功

 

 

 

 

 

安裝

sudo make install

 

成功

 

兩個也可以同時執行

make && sudo make install

  

等待結束

 

 千辛萬苦終於好了!!!

來試試目標識別速度提升。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM