在Raspberry Pi 2/B+上安裝Python和OpenCV
我的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固件。
123 | $ sudo apt - get update $ sudo apt - get upgrade $ sudo rpi - update |
步驟1:
安裝所需的安裝工具和包:
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等這些格式的圖像。
1 | $ 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庫也需要它來在屏幕上顯示圖像。
1 | $ sudo apt - get install libgtk2. 0 - dev |
耗時:
Raspberry Pi B+:小於10分鐘
Raspberry Pi 2:小於3分鐘
步驟4:
安裝必要的視頻I/O包,OpenCV需要它們來讀入視頻文件。
1 | $ sudo apt - get install libavcodec - dev libavformat - dev libswscale - dev libv4l - dev |
耗時:
Raspberry Pi B+:小於5分鐘
Raspberry Pi 2:小於30秒
步驟5:安裝OpenCV優化操作時所需庫。
1 | $ sudo apt - get install libatlas - base - dev gfortran |
耗時:
Raspberry Pi B+:小於2分鐘
Raspberry Pi 2:小於30秒
步驟6:安裝pip:
12 | $ wget https: / / bootstrap.pypa.io / get - pip.py $ sudo python get - pip.py |
耗時:
Raspberry Pi B+:小於2分鐘
Raspberry Pi 2:小於30秒
步驟7:安裝virtualenv和virtualenvwrapper
1 | $ sudo pip install virtualenv virtualenvwrapper |
然後,更新~/.profile文件如下:
12 | export WORKON_HOME = $HOME / .virtualenvs source / usr / local / bin / virtualenvwrapper.sh |
重新載入.profile文件:
1 | $ source ~/.profile |
創建你的計算機視覺虛擬環境
1 | $ mkvirtualenv cv |
耗時:
Raspberry Pi B+:小於2分鐘
Raspberry Pi 2:小於2分鐘
步驟8:現在我們安裝Python 2.7開發工具:
1 | $ 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的多維數組來表示圖像。
1 | $ pip install numpy |
耗時:
Raspberry Pi B+:小於45分鐘
Raspberry Pi 2:小於15分鐘
步驟9:下載和解壓OpenCV:
123 | $ 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 |
安裝:
123 | $ 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:
1 | $ make |
重要:確定你在cv虛擬環境中,OpenCV也要根據該環境中的Python和NumPy中進行編譯。否則的話,OpenCV就會和系統中的Python和NumPy編譯在一起,會產生各種問題。
耗時:
Raspberry Pi B+:小於 9.5 小時
Raspberry Pi 2:小於2.8小時
最後,我們安裝OpenCV:
12 | $ 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目錄:
123 | $ 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的安裝:
12345 | $ 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,就比如說構建一個監控應用來進行房間內部的運動檢測和人員跟蹤。
關於作者: Den
查看Den的更多文章 ?
推薦閱讀: