Faster RCNN的matlab版
之前跑的py-faster-rcnn是在python下,所有的配置也不是我自己配置的,这次因为自己需要,想尝试在matlab下试试,虽然没有实现自己的想法,但是在ubuntu下MATLAB版的faster rcnn的配置是了解了一下的,也是出现坑就补坑。
现在分享一下自己当时碰到的问题及结局办法
默认你电脑已安装caffe,接下来只需要配置faster rcnn及matlab的安装与caffe下修改matlab接口
Faster-Rcnn 配置
参考Shaoqing Ren的配置说明:
(1) 安装Matlab R2016a
怎么安装及安装包见我上一条博客
(2) 下载源代码
终端运行
git clone --recursive https://github.com/ShaoqingRen/faster_rcnn.git
(3)配置Caffe,将你之前配置过的CaffeMakefile.config拷贝至./faster-rcnn/external/caffe,记得修改Matlab接口,接着在终端运行以下命令就可以了。
cp Makefile.config.example Makefile.config
make clean
make all -j8
make matcaffe
这里遇到很多问题,在配置过程中基本上也只会遇到这方面问题,处理好了基本没什么大问题了
问题1:GPU和CPU的设置
解决方法,如果你电脑有GPU,当然使用GPU,CaffeMakefile.config下的
opts.per_nms_topN = 6000;
opts.nms_overlap_thres = 0.7;
opts.after_nms_topN = 300;
opts.use_gpu = True;
就不用改,如果是只有cpu,那就如下修改
opts.per_nms_topN = 6000;
opts.nms_overlap_thres = 0.7;
opts.after_nms_topN = 300;
opts.use_gpu = False;
问题2:找不到hdf5文件
解决方法可以参考找不到hdf5解决方法
修改matlab接口应该就没什么问题了
(4) 运行Faster-Rcnn
Faster R-CNN的配置和运行十分简单,启动Matlab,切换到faster_rcnn目录下。在仅使用CPU的情况下,Compiling nms_gpu_mex时会出错。但是其他能够编译成功,这里不用担心
matlab下运行以下文件
run faster_rcnn_build.m
run startup.m
之后继续下载训练好的模型,可以通过执行文件下载:
run fetch_data/fetch_faster_rcnn_final_model.m
建议直接通过作者github主页上的链接来下载模型,地址在主页最后一行给出,选择其一下载。
Final RPN+FastRCNN models: OneDrive, DropBox, BaiduYun
模型较大,下载完成后直接将其解压至faster_rcnn根目录下。
在experiments目录下有测试文件,matlab下运行文件即可:
experiments/script_faster_rcnn_demo.m
该测试文件默认载入的模型是VGG16网络,VGG16网络比较大,可能会出现内存不足,所以在虚拟机或者内存较小的机器上推荐使用小模型ZF来进行测试。
%% -------------------- INIT_MODEL --------------------
%model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_vgg_16layers'); %% VGG-16
model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_ZF'); %% ZF
proposal_detection_model = load_proposal_detection_model(model_dir);
运行之后就可以看到测试图片的运行结果和运行时间