论文笔记——Faster R-CNN

论文笔记——Faster R-CNN

论文下载:

https://arxiv.org/pdf/1506.01497.pdf

论文代码:

https://github.com/rbgirshick/py-faster-rcnn


论文摘要:

目前最先进的目标检测网络依赖于区域建议算法(region proposal algorithms)假设目标位置。该论文研究中,引入一种区域建议网络(RPN),RPN与检测网络共享图像的卷积特征。并且RPN是一个全卷积网络,同时预测每个位置的目标框(objects bounds)和目标分数(objects scores)。RPN经过端到端的训练,快速生成高质量的区域建议(region proposals),输入到Fast-RCNN中进行目标检测。论文把RPN与融合成一个网络,共享卷积特性,即“注意力”


不同的多尺度和多种大小的方案:

论文笔记——Faster R-CNN

(a)图像在多个尺度上调整大小,并对每个尺度计算特征映射或深度卷积特征,避免使用枚举图像/多尺度/多种长宽比的卷积核。这种模型使用单一尺度的图像表现良好,运行速度快。

(b)使用不同尺寸的卷积核分别训练不同长宽比的模型,称为“过滤器金字塔”,即多尺度滑动窗口

(c)特征图上遍布几种不同大小(呈金字塔趋势)的参考框(锚框),处理成预测框

论文应用方案(c)


Same Conv layer和Pooling:

所有的conv层都是:kernel_size=3,pad=1,stride=1;特征经过conv大小不变

论文笔记——Faster R-CNN

所有的pooling层都是:kernel_size=2,pad=0,stride=2;特征经过Pooling大小变为原来的四分一

论文笔记——Faster R-CNN


Region Proposal Networks(RPN):

论文笔记——Faster R-CNN

经过上面的same conv layer和pooling得到的特征图(feature maps),为每一个点(可以理解为像素)匹配上9(默认k=9)种anchor,作为需要训练纠正的检测框,后期通过bounding box regression(预测框回归)进行修正

论文笔记——Faster R-CNN

上图是一组该目标中心的anchor,类似这样的一组anchor还有很多组。每个anchor都有对应的坐标数值。

预测框的回归:

论文笔记——Faster R-CNN

x、xa、x*分别为预测框(predicted box)、锚框(anchor box)、真实框(ground-truth box)的横坐标,其他符号也是一样。

关于二分类的损失函数:

论文笔记——Faster R-CNN

训练RPN时,为每一个anchor分配一个二进制标签(0或1),代表有无对象。简单来说,在特征图上分布着很多anchor的情况下,RPN通过全卷积网络去判断那些anchor有目标(positive anchor),那些没有目标(negative anchor),即RPN是一个二分类网络


Faster-Rcnn结构:

论文笔记——Faster R-CNN

为了让RPN与Fast RCNN共享图像特征,作者讨论交替优化的方法学习有这两个网络融合的算法

①RPN网络由imagenet预训练进行初始化,并为区域建议任务进行端到端微调

②使用①中RPN生成的建议,通过Fast R-CNN训练一个独立的检测网络

③使用检测器网络初始化RPN训练,只微调RPN独有的层

④保持共享的卷积层固定,微调Fast R-CNN的独特层

简单来说分别进行两层微调至最高精度。


实验结果:

在PASCAL上使用RPN建议的检测示例,VOC 2007测试:

论文笔记——Faster R-CNN

使用ZF网得知的每个锚点的平均提案规模(s = 600):

论文笔记——Faster R-CNN

PASCAL VOC 2007测试集的检测结果(用VOC 2007 trainval训练):

论文笔记——Faster R-CNN

PASCAL VOC 2007测试集的检测结果:

论文笔记——Faster R-CNN

总结:

认识到了RPN网络,也明白了anchor是怎样诞生的,同时也进一步了解two stage的算法过程,即简单的二分类+复杂的多分类。


参考博客:

https://blog.csdn.net/jucilan3330/article/details/84255249

https://zhuanlan.zhihu.com/p/31426458


上一篇:Python简单爬虫


下一篇:pyautogui模块获取鼠标位置、移动鼠标并实现双击效果