faster r-cnn 在CPU配置下训练自己的数据

因为没有GPU,所以在CPU下训练自己的数据,中间遇到了各种各样的坑,还好没有放弃,特以此文记录此过程。

1、在CPU下配置faster r-cnn,参考博客:http://blog.csdn.net/wjx2012yt/article/details/52197698#quote

2、在CPU下训练数据集,需要对py-faster-rcnn内的roi_pooling_layer和smooth_L1_loss_layer改为CPU版本,

并重新编译。这位博主对其进行了修改,可直接进行替换:http://blog.csdn.net/qq_14975217/article/details/51495844

3、制作自己的VOC数据集,这部分参考博客:http://blog.csdn.net/gvfdbdf/article/details/52214008

4、为防止与之前的模型搞混,训练前把output文件夹删除(或改个其他名),还要把py-faster-rcnn/data/cache中的文件和

py-faster-rcnn/data/VOCdevkit2007/annotations_cache中的文件删除(如果有的话)。

5、训练前的修改。我的数据集是检测监控视频中的人,因此只有背景和人两类。按着这篇博客进行修改就行了:

     http://blog.csdn.net/sinat_30071459/article/details/51332084

     还要修改py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt中的solve文件设置,包括stepsize,base_lr,

否则训练时很容易出现loss=-nan的情况

6、在py-faster-rcnn中训练

./experiments/scripts/faster_rcnn_alt_opt.sh 0 ZF pascal_voc  

 

7、测试

     将训练得到的py-faster-rcnn\output\faster_rcnn_alt_opt\***_trainval中ZF的caffemodel拷贝至

py-faster-rcnn\data\faster_rcnn_models,修改py-faster-rcnn\tools\demo.py(主要是类别的修改

和测试图片的修改)。运行

python demo.py --cpu

 

 8、结果

      可能是我数据量太少且质量不好(1000张),训练次数不够(1000×4),检测效果不太好,在默认阈值下检测不出来。

当把demo.py中的CONF_THRESH降低到0.1时才检测出来一张,且速度很慢,大概13秒一张,效果一般。  

     我将训练次数增加到了(10000,5000,10000,5000),跑了一天,结果没有任何改善。

    

 

posted @ 2016-12-03 09:51  牧马人夏峥  阅读(8564)  评论(0编辑  收藏  举报