人在美国,刚下飞机,在飞机上阅读了下faster rcnn 分步训练的源码,感觉网上关于end2end方式的代码解读不少,却鲜有alt opt方式的代码解读,写此文的目的也是帮助大家尽可能地理解分步训练的核心要点,也算是为自己做个笔记把。有不对的地方还请各位大佬指正。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 引言
目标检测算法框架的发展更新非常之块,并且各种算法的性能也在不断地提升。经典的目标检测框架如faster rcnn[1],yolo v3[2]是该领域发展较为成功的两个例子。Faster rcnn的优点在于精度高,yolo的特点在于检测速度快,并且越来越多的衍生算法也在不断地被提出,如mask rcnn[3]。迁移学习方法的提出有效地解决了监督学习问题中标注数据代价昂贵的缺点,目标检测与迁移学习方法的结合,能够让机器学习算法自适应更多的Web领域。迁移学习的综述文章见[4]。
本次代码解读基于Faster rcnn原作者开源的caffe版本代码:
rbgirshick/py-faster-rcnngithub.compaper 链接:
http://papers.nips.cc/paper/5638-faster-r-cnn-towards-real-time-object-detection-with-region-proposal-networks.pdfpapers.nips.cc2 faster-rcnn结构理解
Faster-rcnn的结构模型如图1所示,
图1
其较为突出的几个创新点:
①在fast-rcnn的基础上采用了特征共享网络,极大地降低了候选框特征提取的时间。
②使用rpn网络替换fast-rcnn中的selective search方法,提升了ROI proposal的精度与效率。
③使用ROI-pooling层对提取出的ROI进行特殊池化,统一了不同ROI提取的尺寸。
2.1参数设置
2.1.1网络参数
在训练与测试阶段均使用单尺度图片,分步训练过程中见图片尺寸re-size为短边像素长度为300,end2end训练方式的图片短边尺寸为600。共享特征图的下采样倍数为16。
Anchor的尺寸共有9种,由3种不同的缩放比1:1;1:2;2:1与3种不同