我的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固件。
1
2
3
|
$ 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:
1
2
|
$ 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文件如下:
1
2
|
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:
1
2
3
|
$ 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 |
安装:
1
2
3
|
$ 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:
1
2
|
$ 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目录:
1
2
3
|
$ 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的安装:
1
2
3
4
5
|
$ 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,就比如说构建一个监控应用来进行房间内部的运动检测和人员跟踪。