使用自己的数据训练 Faster R-CNN 的 ResNet-50 模型

 

上次使用 Faster R-CNN 训练了一个 VGG16 的网络,为了再提升识别的准确率,利用 ResNet 网络在同样的数据上面训练了多一次。

https://blog.csdn.net/weixin_39679367/article/details/80930830

https://blog.csdn.net/weixin_39679367/article/details/80942651 

https://blog.csdn.net/Z5337209/article/details/72838049

https://download.csdn.net/download/amanfromearth/10199664


基本的过程和在训练 VGG16 网络时差不多,可参照 使用自己的数据训练 Faster R-CNN 的 VGG-16 模型

一、训练网络

(一)下载 ResNet-50 的 prototxt 文件

(二)相关文件修改

1.cd $FRCN_ROOT/lib/rpn/generate_anchors.py

 

2.cd $FRCN_ROOT/lib/rpn/anchor_target_layer.py

  •  

3.cd $FRCN_ROOT/lib/rpn/proposal_layer.py

  •  

4.pascal_voc .py、imdb.py、train.prototxt、test.prototxt、.pt文件 的修改参考 使用自己的数据训练 Faster R-CNN 的 VGG-16 模型 。

5.因为我们使用了5个尺度的anchors,所以之前的9个anchors变成了3*5=15个。
修改prototxt和pt文件,将其中的18换成30。

  • (三)下载 ImageNet 模型

下载 ImageNet 预训练文件:ResNet-50.v2.caffemodel

(四)清除缓存

删除缓存文件:
$FRCN_ROOT/data/VOCdevkit2007/annotations_cache/annots.pkl
$FRCN_ROOT/data/cache 下的 pkl 文件
如果不清除缓存可能会报错。

(五)开始训练

参照 VGG16 的训练命令:
cd $FRCN_ROOT

./experiments/scripts/faster_rcnn_end2end.sh 0 ResNet-50 pascal_voc

注意:第三个参数 ‘ResNet-50’,一定要和你的文件夹名字对应,比如我的文件放在$FRCN_ROOT/models/pascal_voc/ResNet-50 里面,所以我的第三个参数就为我目录的名称。


由于 ResNet-50 的网络更深,训练的时间也需要更久,每一次迭代大约需要 0.5s ,训练这个网络我用了大概10个小时,但效果会比用 VGG16 的好,主要是对小尺度的物体检测更加准确了。
这是我训练时各类的 AP :

Caffe下py-faster-rcnn使用残差网络Resnet进行训练

https://blog.csdn.net/AManFromEarth/article/details/79030199

Faster RCNN论文:http://arxiv.org/abs/1506.01497 
Faster RCNN源码Github地址:https://github.com/rbgirshick/py-faster-rcnn 
ResNet论文:https://arxiv.org/abs/1512.03385 
ResNet Github地址:https://github.com/KaimingHe/deep-residual-networks

Kaiming大神15年的ResNet出来已久,但仍然是现今顶尖的网络,论文中测试的方法是他自己的Faster RCNN,Github上也给出了原始的ResNet caffe结构。 
但是对于我这样的小白来说,还是不太清楚该如何取改他提供的模型去适应Faster RCNN进行目标检测,用了很长时间终于搞清楚,特上传其prototxt文件记录。

注:ResNet其他的结构按照同样的方式改就行了。

下载地址: 
http://download.csdn.net/download/amanfromearth/10199664

你可能感兴趣的:(Faster,RCNN)