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 需要花一點時間
Yolo on Raspberry Pi 3
簡介
Yolo 是一開放原始碼的影像辨識工具,可以進行圖片、影片、即時影像辨識。因為我的專題需要一個偵測人物走進一個空間的功能,因此認識了這套工具。但我對影像辨識實在不熟,因此接下來不會討論有關 yolo 的技術或是他的演算法等。有興趣的人可以自行去找它的論文慢慢看。
Yolo 官方網站 : https://pjreddie.com/darknet/yolo/ Yolo 目前最新版為第 3 版
這篇文章會教你如何在樹梅派 (使用 raspberry pi model 3b) 上安裝及使用 yolo,由於在樹梅派跑 v3 會有問題(下面會提到 ),所以這篇文章的示範會以 yolov2 為主。
安裝 Yolo
Yolo的安裝相當簡單,僅需將 repo clone 下來 make 即可
git clone https://github.com/pjreddie/darknet
cd darknet
make
下載 weights 檔
wget https://pjreddie.com/media/files/yolov2.weights
如果要下載不同的權重檔,請參考 cfg/
資料夾內的 .cfg 的檔名,將檔名複製下來,附檔名改成 .weights 即可用 wgets 下載
來試試 yolo 吧
./darknet detect cfg/yolov2.cfg yolov2.weights data/dog.jpg
以上指令會辨識一張範例圖片,並生成 prediction.png
檔,這個檔案是經過辨識後 yolo 將他辨識出來的物件加上外框而成 ( 實際效果可參考官網 ),如果執行指令都沒問題就表示安裝成功 !
在執行上述指令後,你可能會發現一個問題: 辨識速度也太慢了吧 ! 但因為樹梅派的運算能力有限,所以這個問題無解。不過 yolo 也有很多 model 可以選,我們可以用 tiny yolo,這個比較輕量的 model 來跑我們的辨識,但缺點就是辨識率沒有這麼高了。而且我看了一下 cfg/
資料夾,tiny yolo 似乎只有到 v2,第 3 版還沒出來的樣子。另外使用v3 會被 kill 掉 process,個人猜測是樹梅派的記憶體不足導致。