我的Raspberry Pi 2昨天剛郵到,這傢伙看上去很小巧可愛。
這小傢伙有4核900MHZ的處理器,1G記憶體。要知道,Raspberry Pi 2 可比我中學電腦實驗室裡大多數電腦快多了。
話說,自從Raspberry Pi 2發布以來,我收到了很多請求,要求我能寫一個在它上面安裝OpenCV和Python的詳細說明。
因此如果你想在Raspberry Pi啟動運行OpenCV和Python,就往下面看!
在博文的剩餘部分,我將提供在Raspberry Pi 2 和Raspberry Pi B+上的詳細安裝說明。
我也會說明每一步的安裝耗時。其中一些步驟需要較多的處理時間。舉個例子,在Raspberry Pi 2 編譯OpenCV花費大概2.8小時,在 Raspberry Pi B+上則是9.5小時。所以請你據此安排你的安裝吧。
最後,提醒一下我們會在PyImageSearch Gurus 電腦視覺課程中用到Raspberry Pi。我們的項目將會包括家庭監控應用,例如說房間裡面的運動檢測和人員跟蹤。
下面是一個運動檢測和跟蹤的簡單例子,當時我正打著電話在公寓裡面來回走動。
在 Raspberry Pi 2/B+上安裝OpenCV和Python
這裡假定你已經有了Raspberry Pi 2/B+,且已經安裝好。如果沒有的話,我建議你買一個,它們既便宜也好玩。
個人來說,我更願意多花一點錢從Canakit買。他們的物流很快也比較可靠,加之他們的 ready-to-go服務也很好。
好吧,我們開始OpenCV和Python的安裝
步驟0:
我們假定你已經開啟Raspberry Pi 2/B+。開啟終端,我們先更新和升級已安裝的軟體包,然後更新Raspberry Pi韌體。
$ sudo apt-get update$ sudo apt-get upgrade$ sudo rpi-update
步驟1:
安裝所需的安裝工具和包:
$ sudo apt-get install build-essential cmake pkg-config
build-essential 和 pkg-config可能都已經安裝。以防萬一,我們還是將它們鍵入apt-get命令中。
耗時:
Raspberry Pi B+:小於2分鐘
Raspberry Pi 2:小於40秒
步驟2:
安裝必要的映像I/O包,這樣你才可以讀入JPEG,PNG,TIFF等這些格式的映像。
$ sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
耗時:
Raspberry Pi B+: 小於5鐘
Raspberry Pi 2: 小於30秒
步驟3:
安裝GTK開發庫,這個庫用來構建GUI。同時OpenCV中的highgui庫也需要它來在螢幕上顯示映像。
$ sudo apt-get install libgtk2.0-dev
耗時:
Raspberry Pi B+: 小於10分鐘
Raspberry Pi 2:小於3分鐘
步驟4:
安裝必要的視頻I/O包,OpenCV需要它們來讀入視頻檔案。
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
耗時:
Raspberry Pi B+: 小於5分鐘
Raspberry Pi 2: 小於30秒
步驟5:
安裝OpenCV最佳化操作時所需庫。
$ sudo apt-get install libatlas-base-dev gfortran
耗時:
Raspberry Pi B+:小於2分鐘
Raspberry Pi 2:小於30秒
步驟6:
安裝pip:
$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python get-pip.py
耗時:
Raspberry Pi B+:小於2分鐘
Raspberry Pi 2:小於30秒
步驟7:
安裝virtualenv和virtualenvwrapper
$ sudo pip install virtualenv virtualenvwrapper
然後,更新~/.profile檔案如下:
export WORKON_HOME=$HOME/.virtualenvssource /usr/local/bin/virtualenvwrapper.sh
重新載入.profile檔案:
建立你的電腦視覺虛擬環境
耗時:
Raspberry Pi B+: 小於2分鐘
Raspberry Pi 2: 小於2分鐘
步驟8:
現在我們安裝Python 2.7開發工具:
$ sudo apt-get install python2.7-dev
注意:我們將使用Python2.7。因為OpenCV 2.4.X不支援Python 3,也不太清楚OpenCV 3.0的python介面什麼時候才能完善。所以我建議現在還是使用OpenCV2.4.X的好。
我們也需要安裝NumPy,因為OpenCV的Python介面通過Numpy的多維陣列來表示映像。
耗時:
Raspberry Pi B+: 小於45分鐘
Raspberry Pi 2: 小於15分鐘
步驟9:
下載和解壓OpenCV:
$ wget -O opencv-2.4.10.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip/download$ unzip opencv-2.4.10.zip$ cd opencv-2.4.10
安裝:
$ mkdir build$ cd build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
耗時:
Raspberry Pi B+: 小於3分鐘
Raspberry Pi 2: 小於1.5分鐘
編譯OpenCV:
重要:確定你在cv虛擬環境中,OpenCV也要根據該環境中的Python和NumPy中進行編譯。否則的話,OpenCV就會和系統中的Python和NumPy編譯在一起,會產生各種問題。
耗時:
Raspberry Pi B+: 小於 9.5 小時
Raspberry Pi 2: 小於2.8小時
最後,我們安裝OpenCV:
$ sudo make install$ sudo ldconfig
耗時:
Raspberry Pi B+: 小於 3分鐘
Raspberry Pi 2: 小於1分鐘
步驟10:
進行到這一步的時候,OpenCV已經應該已經安裝到/usr/local/lib/python2.7/site-packages中了。
但是為了在cv虛擬環境中使用OpenCV,我們先需要符合連結到我們的site-packages目錄:
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so$ ln -s /usr/local/lib/python2.7/site-packages/cv.py cv.py
步驟11:
最後,我們測試一下OpenCV和Python的安裝:
$ workon cv$ python>>> import cv2>>> cv2.__version__'2.4.10'
OpenCV和Python已經成功安裝到你的Raspberry Pi了。
這是在我的Raspberry Pi上的運行例子,我ssh登入到 Raspberry Pi,然後讀取和顯示一幅映像。
總結
這篇博文中,我詳細介紹了如何在Raspberry Pi 2 /Raspberry Pi B+上安裝Python和OpenCV。也提供了他們的安裝耗時,請酌情考慮你的安裝。
隨著Raspberry Pi的升級,安裝指令可能有所變化。如果你遇到一些極端情況或安裝指令的變化,請隨時聯絡我。當然我也不能保證每封郵件都能回複,所以最好是將如何在 Raspberry Pi上安裝OpenCV和Python的方法總結成一個列表。
不久以後,我會講如何在Raspberry Pi操作其附加的camera。
在那之前,看看PyImageSearch Gurus電腦視覺課程。我們將在其中一些工程中用到Raspberry Pi,就比如說構建一個監控應用來進行房間內部的運動檢測和人員跟蹤。