Ubuntu14.04(x64) + Caffe + Opencv3.1.0 .....(Faster-RCNN and 持续更新中)
0.题外话
自学东西真的很难,网上虽然也有不少的资料,但是自己经验有限,能够完全理解也需要一定时间,如果一步一步按照网上说的从零开始做,仔仔细细的校对,你会发现,有些步骤出了问题,而网上却没有。所以我都是找了很多的资料一起看,相互对比。第一次干什么事都很难,但是只要你过了这个坑,你就成功了!!!
在接下来的内容中我会描述我自己的经验,从搭建环境开始,力求自信,希望看到这篇博文的人能到一天配置好所有,虽然我是花了3天。。。至于为什么选择linux环境,答案就一个,因为官方的教程都是linux,看教程方便。那些windows的教程都是二手的,有局限性。
1.需要准备的软件
目的:配置带有opencv+python接口的caffe,你需要准备:
1>CUDA 7.0:
在很多老的教程上都是说要下.run文件,再安装cuda之前要先禁用原有的显卡驱动。但是有更简单的办法,那就是安装.deb格式的。所以你在下载的时候一定要选择 local(deb)安装,此外还有注意一点是对应的ubuntu型号,要选择对应ubuntu14.04的cuda7.0,所以,下载的文件应该是:cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb。当然也可以在我的百度网盘里下载:
网盘地址:
下载来说一下CUDA的安装方法:
#sudo dpkg -i cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
#sudo apt-get update
#sudo apt-get install cuda
#sudo reboot
安装完cuda以后会在/usr/local/下出现 cuda 和 cuda-7.0 两个文件夹,cuda是cuda-7.0的软连接(也就是快捷方式),然后:
#cd /usr/local/cuda-7.0/samples 中
这个有个Makefile,那我们就直接执行make就好了,我电脑是:i7-4核 8线程的 所以执行
#make all -j8 (大约10分钟左右)
编译完以后samples文件夹下会多出来个bin文件夹,这里存放着编译好的程序
#cd bin/x86_64/linux/release
#./deviceQuery 这会输出显卡的信息,但是我们的driver version和 runtime version 不一样我也不知道以后会不会有问题。
deviceInfo.png
将cuda路径添加到系统路径中:
#gedit /etc/profile
在空白处加上: export PATH=/usr/local/cuda-7.0/bin:$PATH
#source /etc/profile
编写库文件:
#gedit /etc/ld.so.conf.d/cuda.conf
添加:/usr/local/cuda-7.0/lib64
#sudo ldconfig
2>cuDnn 7.0:
这个是GPU加速运算的库,安装也比较简单,就是解压以后把文件夹中的文件复制到相对应的CUDA路径下,下载地址:
网盘地址:
执行命令:
#tar zxvf cudnn-7.0-linux-x64-v3.0-prod.tgz !!! 注意 一定是v3.0的 因为v4.0的接口变了
#cd cuda
#sudo cp include/* /usr/local/cuda-7.0/include/
#sudo cp lib64/* /usr/local/cuda-7.0/lib64/
这个时候要去 /usr/local/cuda-7.0/lib64下看一下,因为复制过去的软连接都变成了实体,这时候要删除这些软链接重新创建,不然会报错!!
#cd /usr/local/cuda-7.0/lib64
#sudo rm libcudnn.so libcudnn.so.4
然后重新创建:
#sudo ln -s libcudnn.so.4.0.7 libcudnn.so.4
#sudo ln -s libcudnn.so.4 libcudnn.so
这就算安装完了。
3>安装google的第三方库:
#sudo apt-get install build-essential
#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 libatlas-base-dev (安装atlas)
#sudo apt-get install
python-dev
(安装Python)
#
sudo apt-get install python-pip
(安装Python) #sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook (安装Python)
安装scikit-image
#pip install scikit-image
安装google-protobuf
#pip install protobuf
3>opencv3.1.0
下载opencv的网盘:
安装也比较好安装直接解压,然后cmake(前提是你要有cmake,#sudo apt-get install cmake)
先安装opencv的依赖库:
#sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
移动到opencv.zip所在的文件夹,然后解压:
#unzip opencv-3.1.0.zip
#cd opencv-3.1.0
#mkdir release
#cd release
#cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..(时间会很久)
#make -j8
#sudo make install
到此,配置caffe所需的文件都编译完了。
1.编译caffe
1>下载caffe源码:https://github.com/BVLC/caffe。然后解压
#unzip caffe-master.zip
#cd caffe-master/python
#sudo for req in $(cat requirements.txt); do pip install $req; done (安装python所需的依赖库)
然后返回caffe-master目录,编辑Makefile来配置caffe:
#cp Makefile.config.example Makefile.config
这里英语好的同学可以很轻松的看懂,对于我这种英语不是很好的就有点纠结了。
主要说下改的地方吧:(原来是)
# USE_CUDNN := 1
(改成)
USE_CUDNN := 1
如果你不是默认位置安装的话,检查一下python的路径:
PYTHON_INCLUDE:
PYTHON_LIB:
(原来是)
#WITH_PYTHON_LAYER := 1
(改成)
WITH_PYTHON_LAYER := 1
我的Makefile.config : 地址
然后就是激动人心的make时刻
#make all -j8
#make test -j8
#make runtest -j8
编译caffe的python接口:
#make pycaffe
以上绝大部分参考官网:http://caffe.berkeleyvision.org/installation.html#compilation
还有网上资料:http://www.tuicool.com/articles/nYJrYra
http://www.linuxidc.com/Linux/2015-07/120449.htm
2.运行第一个caffe的例子:MNIST
参考官网:http://www.linuxidc.com/Linux/2015-07/120449.htm
3.用自己的数据训练ImageNet网络(实现分类功能,可以用训练出的模型来分类)
参考官网:http://caffe.berkeleyvision.org/gathered/examples/imagenet.html
网络资源:http://www.docin.com/p-871820919.html(caffe学习笔记3 用自己的数据训练和测试)
自己修改后的文件都存储在网盘里:
根据这个solver.prototxt配置网络,生成的 caffemodel文件都保存在caffe-master根目录中:
目前正在训练中。。。但是训练的次数好像有点多。。
4.用faster-RCNN 模型 训练自己的数据集(用来实现检测和分类功能)
从Github上下载py-faster-rcnn源码:
首先说下python的caffe接口怎么用,是通过在python中import caffe这个模块。
但是在编译caffe和pycaffe后,只能在caffe-master/python这个文件夹下import caffe才能用。
那么问题来了,faster-RCNN中的python程序想import caffe 怎么才能好用呢?
一个最简单的办法就是创建软连接:在import的默认路径中添加一个指向caffe-master/python/caffe这个文件夹的软连接就OK了!!
具体方法:
#python(打开python终端)
>>>import sys
>>>sys.path (import 的默认路径是sys.path 定义的)
[ ' ' ,'/usr/lib/python2.7 ', ' '.......... ]
#sudo ln -s /home/yueqiang/3dparty/caffe-master/python/caffe /usr/lib/python2.7/caffe
这样就OK了!!!在任何的python程序中import caffe都是可以得!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~