读DL论文心得之Faster RCNN代码运行实验

本代码来自于论文Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,所有过程来自于作者Shaoqing Ren的github。由于是同一位作者,很多地方和SPPnet是一样的。

1.软件准备

方法一:

运行fetch_data/fetch_caffe_mex_windows_vs2013_cuda65.m下载编译好的mex文件,直接使用。前提是CUDA版本与作者一样是6.5。

方法二:

如果想要自己编译Windows的caffe,前提是装好CUDA,自己编译就可以安装新一点的版本,下载faster rcnn的caffe github。
(1)下载VS2013版的解决方案(百度云),包含了相关的库。
(2)把caffe中的所有文件复制到解决方案的./caffe中。
(3)准备OpenCV、Boost、MKL的库。OpenCV可以是2.4.9或2.4.10;Boost 必须是1.57以上,注意必须对应VS2013,即msvr为12;MKL申请学生版的,安装的时候只装MKL即可。
(4)编译MATLAB接口的mex的时候配置为“Release_Mex”。
(5)对VS解决方案,修改“包含目录”和“库目录”为自己的路径,如果cuda版本不一样是载入不成功的,手动修改caffe.vcxproj中的caffe版本即可。
(6)设置“caffe”项目为启动项目。
(7)重新生成解决方案。
(8)复制.\x64\Release_Mex到faster_rcnn-master\external\caffe\matlab\caffe_faster_rcnn。
注意:
(1)如果不是用的VS2013,那还要在.\Library\leveldb中重新生成解决方案,然后复制生成的leveldb.lib到.\x64\Release_Mex。
(2)如果不是用的OpenCV2.4.9,就把.\x64\Release_Mex中相应的opencv的 dll文件复制过去。
(3)MATLAB版本是2014a。

2.硬件准备

GPU: Titan, Titan Black, Titan X, K20, K40, K80.
(1)Region Proposal Network (RPN)
2GB GPU memory for ZF net
5GB GPU memory for VGG-16 net
(2)Ojbect Detection Network (Fast R-CNN)
3GB GPU memory for ZF net
8GB GPU memory for VGG-16 net

3. 编译与准备测试

(1)运行faster_rcnn_build.m。这是编译了nms和nms_gpu的mex,nvmex.m中的所有环境变量、VS是安装路径要和自己的一致:

读DL论文心得之Faster RCNN代码运行实验_第1张图片

(2)运行startup.m,这是设置基本环境。

4. 测试demo

(1)运行fetch_data/fetch_faster_rcnn_final_model.m,下载训练好的模型。如果onedrive用不了或者太慢,去百度云。下载好以后把它解压到faster_rcnn-master文件夹下,可以看到是5个图片和output文件夹。
(2)运行experiments/script_faster_rcnn_demo.m,测试单张图像。(注意,要在faster_rcnn-master文件夹下运行。我的GTX770对于VGG16网络完全不行,ZF网络还可以,但是屏幕闪的很厉害,而且好像用光了所有显存,电脑显示变得卡顿。)速度的确很快:

读DL论文心得之Faster RCNN代码运行实验_第2张图片

5. 训练网络

(1)运行fetch_data/fetch_model_ZF.m下载在ImageNet上预训练好的ZF网络,运行fetch_data/fetch_model_VGG16.m下载在ImageNet上预训练好的VGG-16网络。解压后与faster_rcnn-master中的models文件夹合并。
(2)下载VOC 2007和VOC 2012数据到./datasets中。
(3)运行experiments/script_faster_rcnn_VOC2007_ZF.m训练ZF网络模型,它会运行如下四步:
-训练RPN并调整卷积层,在训练/测试集上计算RPN结果。
-用第一步的RPN建议框训练Fast R-CNN并调整卷积层,评估检测mAP。
-训练训练RPN并固定卷积层,在训练/测试集上计算RPN结果。
-用第三步的RPN建议框训练Fast R-CNN并固定卷积层,评估检测mAP。
(4)运行experiments/script_faster_rcnn_VOC2007_VGG16.m训练VGG-16网络模型。
(5)看看./experiments中的其他脚本,可以做更多的实验。

你可能感兴趣的:(matlab,cnn,深度学习,RCNN,faster-rcn)