一、首先参照博客http://blog.csdn.net/qq_14975217/article/details/51495844
对py-faster-rcnn内的roi_pooling_layer和smooth_L1_loss_layer进行替换并重新编译,编译过程参考https://github.com/neuleaf/faster-rcnn-cpu 和 http://www.cnblogs.com/justinzhang/p/5386837.html
二、修改相关文件
训练过程参考:http://www.cnblogs.com/CarryPotMan/p/5390336.html
http://blog.csdn.net/sinat_30071459/article/details/51332084
1)下载VOC2007数据集
提供一个百度云地址:http://pan.baidu.com/s/1mhMKKw4
解压,然后,将该数据集放在py-faster-rcnn\data下,用你的数据集替换VOC2007数据集。(替换Annotations,ImageSets和JPEGImages)
(用你的Annotations,ImagesSets和JPEGImages替换py-faster-rcnn\data\VOCdevkit2007\VOC2007中对应文件夹)
2)下载ImageNet数据集下预训练得到的模型参数(用来初始化)
提供一个百度云地址:http://pan.baidu.com/s/1hsxx8OW
解压,然后将该文件放在py-faster-rcnn\data下
下面是训练前的一些修改。
3)如果是训练自己的数据集还需要对配置文件做一些修改,本文完全用的VOC的数据集,所以没有做修改,在接下来训练自己的数据集的时候会再重新写一篇教程
4)为防止与之前的模型搞混,训练前把output文件夹删除(或改个其他名),还要把py-faster-rcnn/data/cache中的文件和
py-faster-rcnn/data/VOCdevkit2007/annotations_cache中的文件删除(如果有的话)。
至于学习率等之类的设置,可在py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt中的solve文件设置,迭代次数可在py-faster-rcnn\tools的train_faster_rcnn_alt_opt.py中修改:
max_iters = [80000, 40000, 80000, 40000]
分别为4个阶段(rpn第1阶段,fast rcnn第1阶段,rpn第2阶段,fast rcnn第2阶段)的迭代次数。可改成你希望的迭代次数。如果改了这些数值,最好把py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt里对应的solver文件(有4个)也修改,stepsize小于上面修改的数值。
5)开始训练,按照教程输入