RCNN 是利用DL做目标检测的一个程序,现在有更快的faster-RCNN。
github地址:https://github.com/rbgirshick/rcnn
其实RCNN最难安装部分就是caffe部分。所以我假设之前的CUDA,以及必需的矩阵计算库之类的都安装好了,如果没有,参考:
http://www.cnblogs.com/platero/p/3993877.html
以及
http://blog.csdn.net/altenli/article/details/44199539
首先是必须要在ubuntu matlab 2012下编译(a,b都行),之前我的电脑一直是MATLAB2014,发现编译完成之后,运行一直报错,各种bug,根本的原因就是MATLAB版本不兼容。(这里补充一下,可以在MATLAB2014下运行,感谢TongXu大神[https://github.com/tt-leader]的提醒,具体的方法在最后面附录)
第二点就是:关于caffe的版本,作者在readme中提供的caffe-v0.999是有问题的,推荐另外一个也是v0.999版本但是,修复bug的版本:https://github.com/DeercoderResearch/caffe-0.999
第三点就是caffe编译的问题了。解压从第二步下载的文件,首先需要修改里面的makefile.config中MATLAB的路径(复制一个makefile.config.example),因为我之前安装的是matlab 2014,所以我要修改makefile.config的MATLAB路径位置到现在安装的MATLAB2012。同时修改CUDA的路径。
然后依次:
make all -j4
make test
make runtest
,如果没有报错的话,编译MATLAB 接口函数:
make matcaffe
然后就可以参考RCNN的readme的设置,建立关于caffe的软连接,下载各种工具包,以及预训练好的model。
一般遇到的问题有下面几个,大部分都能Google解决掉,或者直接在RCNN github的issues里面找到答案,比如:
Expected 3 arguments,got 2
比较棘手的问题就是:MATLAB运行demo的时候直接crash崩溃了。这个时候,不要急,首先建议MATLAB是在terminal下启动的,也就是在命令行下,那么当MATLAB崩溃的时候,就会在命令行下给出崩溃的原因,最主要的原因就是caffe的编译器和matlab接口的编译器不一致。以及没有安装qt。就会报错:
/usr/local/lib/libopencv_highgui.so.2.4: undefined symbol: _ZNK9QCheckBox15minimumSizeHintE
首先安装qt方法:
stackoverflow.com/questions/12330352/error-when-trying-to-use-mexopencv-in-matlab
具体的解决参考下面三个博客:
coldmooon.github.io/2015/08/03/caffe_install/
https://groups.google.com/form/#!topic/caffe-users/im_btmw44pc
blog.csdn.net/rosboy/article/details/40949453
同时,在运行的时候,默认caffe的输入batch_size是256.这个很容易导致GPU的溢出,报错说:
Check fialed: error == cudaSuccess ( 2 vs. 0 ) out of memory
比如修改成16大小,需要修改两个地方:一个是model-defs文件夹中的prototxt文件中的参数input-dim,第二个是data/rcnn-models中mat数据中的batch_size大小
1.rename startup.m in the $RCNN folder to start_up.m, justlet Matlab start normally because Matlab will run startup.m while staring up.
2.run matlab interminal, make sure you are in the $RCNN folder.
3. run start_up.m in the command window of Matlab