OpenCV on Raspberry Pi 3
簡介
OpenCV 是由 intel 主導的一個電腦視覺的跨平台 library,可以用在許多應用上。yolo real-time detection ( 關於 yolo 的安裝與使用可以看我之前寫的文章: Yolo on Raspberry Pi 3 ) 就有用到 OpenCV。這篇文章就是要教如何在樹梅派上自行編譯、安裝 OpenCV 函式庫。雖然是強調在樹梅派上安裝 OpenCV,不過都是流程都是按照官方文件的 Linux 平台安裝教學走,所以只要是 Linux 平台都可以理論上都可以照著本篇文章來安裝 OpenCV!(當然裡面有些指令可能會不太一樣,例如 apt-get
是 debian 流派,如果是 redhat 就要換成 yum
)
要提醒的是 OpenCV 還有很多安裝的參數可以調整(例如對更多 Python / Java 的支援等)但是這篇文章目的是基本的 OpenCV 安裝,所以會略過那些非必要的步驟,需要更多自訂設定的人可以點上面的官方教學自行研究。
安裝教學
- 首先安裝套件
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 這行的套件非必要,可裝可不裝
- 從 Github 上把原始碼 clone 下來,並進入 opencv 資料夾
cd ~/ # 可自行選擇 clone 的位置
git clone https://github.com/opencv/opencv.git
cd ~/opencv
整個 repo 有快 500 MB,clone 需要花一點時間
- 切換 OpenCV 版本
非常重要!如果你有要用在 yolo 上面,或是你有其他用 C 編譯的套件是需要 OpenCV 的,請記得 checkout 到 3.4.0 版或以下,因為 3.4.1 版的 opencv 有 bug(不過根據開發者的說法是 OpenCV 3.X 不再支援 C compilation mode,所以嚴格來講不算是 bug,相關討論可以看 opencv-issue#10963,如果你堅持要用 3.4.1,裡面也有教你如何修正)如果沒有要用到 C compiler 的可以略過這步。
先用 git tag -l
確認有哪些版本可供使用,接著就可以 checkout 過去了,例如我現在要示範的 3.4.0
git checkout 3.4.0
- 建立一個 build 資料夾並進入
mkdir build
cd build/
- 執行 cmake 產生 makefile
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
- 編譯函式庫 由於樹梅派只有 4 核,所以我們開 4 個核心編譯即可
make -j4
這裡是最困難的一步!因為我們都知道樹梅派的處理器效能沒有一般電腦那麼好,所以這裡會花很多時間,我自己的經驗是 -j4
開下去最快也要 90 ~ 120 分鐘(時間也會受到 SD 卡的讀寫速度影響,所以實際時間因人而異),而且樹梅派有可能編到一半當掉,所以一定要有耐心!如果一直當掉的話可以考慮降低核心數,但是相對的就會花更多時間。
- 安裝函式庫 到了這步基本上就算成功了!接下來只須執行安裝指令:
sudo make install
確認 OpenCV 有無安裝成功
重開樹梅派後,執行 python
進到 python 的 interpreter,測試看看是否可以正確的 import OpenCV 的函式庫及印出版本資訊,有印出版本就代表安裝成功。
>>> import cv2
>>> cv2.__version__
3.4.0
評論由 Disqus