树莓派3B安装opencv 以及caffe (个人记录)

树莓派3B安装opencv 以及caffe 手记(个人记录)

参考:http://blog.csdn.net/jmu201521121021/article/details/78323032

设备:树莓派3B

环境:Ubuntu mate 以及 raspbian

前言:因为买回来的树莓派店家帮我把系统装好了,学长建议配置一下opencv可以在做个树莓派人脸识别等,看了一下自带的储存卡储存空间太小,据我在笔记本的ubuntu上安装opencv的经验,首先耗费时间挺长的,树莓派这个配置,岂不是要热坏了,再者,我编译完opencv那个文件夹占地面积高达7.3G,看来得换张新的内存卡了,旧的不去新的不来,按照网上的一般方法,格式化SD卡写入镜像即可,所以习惯使用ubuntu的我也还是刷入了ubuntu mate的镜像,然后配置opencv。

配置opencv方法如下:

sudo apt-get update
sudo apt-get install git
git clone https://github.com/jayrambhia/Install-OpenCV
cd ./Install-OpenCV
cd Ubuntu
chmod +x * 

到这一步先停住,如果是在我们平时的笔记本上可以直接 ./opencv_latest.sh  一步到位地把opencv安装上去(这里已经把所有需要的命令都写入脚本了),但是我们现在的对象是树莓派,我们的脚本默认开启CPU的四核运算,为了不让树莓派在长时间的编译过程中直接Over掉,所以我们先改一下脚本的命令。

所以进入到我们的 /Install-OpenCV/Ubuntu 文件夹下面,编辑 opencv_install.sh ,将下图的 make -j 4 改为 make -j 1,然后保存。

然后在当前文件夹下执行:

./opencv_latest.sh 

因为所有依赖项的安装写在 dependencies.sh 里面,编译安装过程写在 opencv_install.sh 里面,所以整个过程都是全自动的。所以只需要等待过程结束即可。

扫描二维码关注公众号,回复: 2472494 查看本文章

整个过程我有观察CPU等资源变化,所以使用一个核心数来编译是不会导致树莓派发热过度死机的。

配置caffe方法如下:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
git clone https://github.com/BVLC/caffe
sudo apt-get install zip
unzip caffe-master.zip
cd caffe-master
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config 

因为树莓派没有NVIDIA显卡,所以我们修改参数的时候就只修改两项。

将 #CPU_ONLY := 1 改为 CPU_ONLY := 1  ;

将 #OPENCV_VERSION := 3 改为 OPENCV_VERSION := 3 。

然后执行:

mkdir build
cd build
cmake ..
make all -j1
make pycaffe -j1
make test -j1
make runtest -j1

我刚开始以为用 -j2 来编译运行 caffe 也可能没有问题,事实证明我错了, 还是改成 -j1 ,用 -j2 会让它中途卡机动不了了。另外,建议刚开机的时候编译caffe,我开着浏览器也卡住了,编译caffe要求好像比opencv要高,所以我没有开任何应用,把caffe编译过了。

后话:就在我编译完caffe 没隔多久,折腾了一个晚上的ubuntu mate 在我配置vnc的时候卡住了,然后重启之后就进入桌面循环登录的状态,我但是懵逼了,这不是我电脑安装英伟达显卡驱动的时候才会遇到的问题吗?一个树莓派我啥驱动都没装就让我一晚上的功夫都over了。于是索引各种资料没有发现这个解决方法,只能重装系统了QAQ,因为Ubuntu的循环登录让我一直很害怕,所以索性安装成raspbian系统了,听说稳定性可以,所以接下来来介绍在树莓派在raspbian系统下配置opencv和caffe的故事。

当用上raspbian的时候倒是觉得这个会是比Ubuntu一个更加不错的选择,我安装完之后才发现,很多软件它都自带好了,命令和Ubuntu基本一致,占用内存比Ubuntu小,社区活跃问题好解决。

回到正题:

用上raspbian的第一步还是先更新源吧,更新国内的源真的很快。

sudo nano /etc/apt/sources.list
#可以把原来的删除掉也可以加注释 “#”
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free
#我这里用的是中科大的源,我的raspbian版本是stretch,如果是jessie或其他版本可以自行修改。
#然后ctrl+o ,回车,ctrl+x,跳出,然后。
source /etc/apt/sources.list #或者重启一下
sudo apt-get update

然后,接下来的操作还是,像上面在Ubuntu上安装opencv 和caffe一样,但是有点不同的地方,就是:

除了把 make -j 4 改为 make -j 1,之外,还要进入 dependencies.sh 把 install_dependency libfaac-dev 这一句删除掉,不然它找不到这个依赖项,删除之后没有发现有什么影响。

所以我的raspbian里的opencv还是按照之前ubuntu安装时候的老办法,所以我的路径还是  /home/pi/OpenCV/Ubuntu/OpenCV/opencv-3.4.0 。

然后我发现使用python可以直接import cv2,并没有受到路径的的影响,所以我没有去纠结这个问题,具体import不成功网上有很多方法可以解决。

至于caffe方面,import caffe报错说找不到是因为没有把路径加入到环境变量里面,网上有很多方法,可以找一下。Import caffe时出现“ImportError: No module named google.protobuf.internal”的话直接执行:

pip install protobuf#我之前sudo了一下没能成功安装

然后,然后就可以用CPU来进行手写体训练入门了,可以边实践边学习理论,实践的成功可以激发对理论的求知欲,培养培养兴趣和爱好也是挺好的,然后,emm, 下一篇记录一下编译运行opencv sample的方法,共同进步。

猜你喜欢

转载自blog.csdn.net/wuzebiao2016/article/details/79243518