树莓派3b 基于python3.4 安装opencv3

简述:

由于一些原因,需要在树莓派上做OpenCV视觉识别,前前后后折腾了三天,看着网上形形色色的教程,出了许多错误。仔细研究了一些官方文章和国外Geek的文章,终于搭好了环境,第一篇CSDN,希望其他的Geek少走一些弯路。


步骤:

首先,我们要连接并打开到树莓派的Terminal。用命令拓展树莓派的文件系统以及sd卡的可用空间:

$sudo raspi-config
树莓派3b 基于python3.4 安装opencv3_第1张图片

我们要选择如上图所示的Option进行释放空间,操作结束后reboot你的树莓派。


OpenCV依赖项在编译的过程中需要几GB,因此为了保险请(删除)系统自带的Wolftam引擎

$ sudo apt-get purge wolfram-engine


差不多可以回收700mb~


安装依赖关系

老方法,在进行软件安装之前首先要更新一下现有的软件包

$ sudo apt-get update
$ sudo apt-get upgrade

然后我们要安装一下开发工具——CMake,它可以帮助我我们配置OpenCV的构建过程:

$ sudo apt-get install build-essential cmake pkg-config

安装成功以后安装各种图像格式的包(具体很多我就不再解释了,这段基本上所有教程都一样:

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev


当然还有视频I/O包需要安装:

$ sudo apt-get install libavcodec-dev libavformat-dev libswcale-dev libv4l-dev

$ sudo apt-get install libxvidcore-dev libx264-dev


安装GTK开发库:

$ sudo apt-get install libgtk2.0-dev


再安装几个依赖关系进一步优化OpenCV:

$ sudo apt-get install libatlas-base-dev gfortran

因为树莓派收资源限制比较多,所以这些库的作用尤为突出。

当然,连python都没有何谈识别呢?下面开始搭建python环境:

$ sudo apt-get install python2.7-dev python3-dev

(此处注意,本文主要指导py2.7和py3.4版本,3.5 3.6版本可能会安装出错!!!)


下载OpenCV源代码

因为python版本不是最新的3.5,所以我选择了OpenCV3.1.0存档(3.3.0存档对于python2.7和3.4都跳错,我也不知道为什么)

$ cd~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip opencv.zip


全面安装后,我们还需抓取OpenCV的contrib的存储库:

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
$ unzip opencv_contrib.zip

警告:opencv和opencv_contrib的版本一定要相同!!!!


接下来分别介绍一下OpenCV在2.7和3.4的环境搭建:

pip是不可或缺滴~~

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py

我尝试过在树莓派上直接安装OpenCV,但是它总跳出来不支持(doesn‘t support OpenGL)#很谜这个,特别奇怪,有知道的大神可以回复一下。

所以我们选择使用virtualenv 和 virtualenvwrapper

虚拟环境是什么?它是一种特殊工具,在每个虚拟环境创建独立的python环境(这就是为什么我刚才说pip不可或缺,因为搭建环境以后还要在虚拟环境重新安装包)

(我也是从网上看来的。。。)

话不多说,直接贴command

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip

接着我们需要更新~/.profile文件,使用nano或者vim来添加一个脚本

# virtualenv and virtunlenvwrapper
export WORNKN_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

注意路径,倘若你之前更改过路径,记得更新路径~

现在重新启动你的树莓派来更新文件配置。

打开终端输入:

$ source ~/.profile

然后创建python的虚拟环境:

$ mkvirtualenv cv -p python2
这可以使用pyrhon2.7创建一个名为cv的新py虚拟环境


如果使用python3.4:

$ mkvirtualenv cv -p python3

(cv的名字是可以自定义的)


检查你是否处于虚拟环境中:

$ source ~/.profile
$ workon cv


当你看到在pi@raspberrypi之前有个”(cv)“标志,恭喜你进入了虚拟环境:

如果没有,恭喜你,大侠请重新来过~~


在虚拟空间安装numpy:

数字处理很重要!!很重要!!很重要!!

$ pip install numpy


安装过程差不多十分钟,这个期间你可以往下看一看教程,或者是喝杯咖啡给家里人打个电话,毕竟程序员 还是要顾家的嘛~

编译安装OpenCV:

首先!!!!检查自己是否在虚拟空间内,如果没有执行workon:

$ workon cv
 

接着我们使用CMake设置构建:

$ cd ~/opencv-3.1.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
    -D BUILD_EXAMPLES=ON ..

确保CMake的输出!

python3.4和python2.7,其他版本报错不关我的事~~

最后我们准备编译OpenCV(这个过程相当的漫长,我花了四个小时编译)

可能有的教程上会写:

$ make -j4
尽管树莓派是四核处理器,但是我不建议这样做,尽管会加快我们的速度但是会出现很多很多错误,毕竟我比较脸黑。我猜想可能是由于树莓派的散热和内部环境的竞争所导致的一个bug(树莓派坑爹*1)

因此我建议:

$ make 
单核处理,慢点就慢点吧,多陪陪女朋友,实在不行就去看一部电影,毕竟程序员是没有女朋友的(室友或许是个不错的选择):

树莓派3b 基于python3.4 安装opencv3_第2张图片

当你出现这张照片时,恭喜你进入了下一关,如果一直跳error,很抱歉,我之前两天一直被这个问题困扰,只能判定安装包不匹配吧,如果有大神知道原因还望告知。

现在你就需要继续完成安装OpenCV了

对于python2.7:

$ ls -l /usr/local/lib/python2.7/site-packages/
它会出现:

total 1852
-rw-r--r-- 1 root staff 1895772 Mar 20 20:00 cv2.so


然后我们将其绑定在2.7上的虚拟cv中:

$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

对于python3.4:

$ ls -l /usr/local/lib/python3.4/site-packages/
它会出现:
total 1852
-rw-r--r-- 1 root staff 1895932 Mar 20 21:51 cv2.cpython-34m.so

然后继续操作一个谜一样的改名文件,我也不知道是什么情况,也是从网上看到的解决方法:

$ cd /usr/local/lib/python3.4/site-packages/
$ sudo mv cv2.cpython-34m.so cv2.so
再次绑定:

$ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/
$ ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so


到这里基本环境搭建可以告一段落了,重启树莓派:树莓派3b 基于python3.4 安装opencv3_第3张图片

$ source ~/.profile 
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>

如果没有跳错,恭喜你!!!

然后删掉安装包:

$ rm -rf opencv-3.1.0 opencv_contrib-3.1.0

接下来,可以开始你(苦逼)的视觉项目了!!


ps:安装教程不可全信,一定要相信脑(老)子是个好东西。

       看看国外大神的解决方法或许有用

       英文不好真的很吃亏
       做事情要有动力,比如。。。嗯

       这篇文章吸收了好多其他大神的攻略,并不是完全原创,毕竟刚起步,希望可以越来越好吧。


       第一篇blog,2017.10.24程序员节快乐:)






你可能感兴趣的:(环境搭建)