《RON: Reverse Connection with Objectness Prior Networks for Object Detection》论文笔记
代码:RON
1. 概述
本篇文章提出了RON网络,该网络是受Faster RCNN与SSD的启发。在全卷积网络下实现RON:
- 1)对于多尺度目标检测这里使用反向连接的方式,使得网络可以在多个尺度上进行检测;
- 2)文章使用目标先验去减小搜索的空间(反传时),最后,通过多任务 Loss 让整个网络实现 end-toend 训练;
文章的另外两点贡献如下:
- 1)引入 Negative example mining(负样本挖掘) 和 data augmentation(数据增
强),有效提高检测效果; - 2)有效节约 计算时间 和 计算资源,1.5G显存+15fps,比 Faster R-CNN快3倍;
2. 网络设计
2.1 网络整体结构
RON网络的整体结构如下图所示,在不同的层级上去检测不同的尺度的目标,因而具有比但尺度检测算法更好的检测性能。
2.2 特征图反向连接
特征图的反向连接混合方式见下图,是由级特征图上采样与级特征图卷积(缓冲作用)之后的劫夺相加得到。
多尺度信息能够对小目标有更好的检测精度,这一点都有共识了,通过 conv4、5、6、7
各特征层分别进行检测。
2.3 anchor机制
假定使用最小的尺度为,每个层级特征图应该匹配的检测框尺寸应该满足如下的约束:
其中是输入图像的。文章中设置的ratios参数为:,尺度的范围有2个。也就是说每个层级上面的anchor应该按照所在的尺度进行设置,这样才能够很好的适配。
2.4 目标先验特征图生成
在上面的内容中使用不同的anchor参数,在不同的尺度特征图下生成不同尺度的默认检测框,但是这些生成的众多候选框只有很少与GT相重合的,为了解决这个问题呢,在Faster RCNN网络中使用的是RPN网络用于平衡正负样本。但是RPN网络的采用会带来默认生成框与RPN网络结果的差异。
对于这样的情况Faster RCNN网络是使用RCNN网络来解决的,这样就带来了论文作者认为冗余的计算量。要是使用某种先验的形式来缩小搜索的范围,那将会缩小计算量。为了解决该问题,作者就提出了目标先验的机制。
文中提到使用的卷积层后接Softmax函数来指示在每个提出的框中是否包含目标。其中每个位置产生个默认框,其实就是网络中设置的anchor的数量,因而目标先验图的通道数为,用以区分背景和前景。
2.5 检测和边界框回归
检测部分网络与主干特征网络部分是通过两级Inception块实现的:
之后接的便是边界框回归与检测框分类部分:
2.6 将目标先验与检测结合
作者在设计的网络中将目标先验、检测框回归与检测框分类合起来形成3各分支。
作者在训练与测试阶段在网络中都加入了目标先验,对于训练阶段,网络的检测部分所做的工作如下:
- 1)对使用anchor机制生成的检测框分配二值分类标签,用以区分前景背景;
- 2)对于提出的检测框使用与GT的重叠程度分配一个对应的分类标签。正样本标签的阈值为0.5,负样本标签的阈值为0.3;
这样对于每个经过上面流程的检测框就有了是否为目标的标签与对应的分类标签。之后网络训练过程中使用目标先验动态更新类别标签来辅助目标检测。
- 前向传播时,网络同时产生目标先验,并进行类别检测。
- 反向传播时,网络首先会产生目标先验,然后对于检测,只会在 Objectness 得分大于某个阈值(阈值为)的区域内进行目标检测,这样就缩小了搜索空间。
额外的计算仅仅在于为反向传播选择训练样本。当选择合适的阈值时,样本的数量减少了,这样反向传播的时间就缩短了。
2.7 损失函数与训练过程
1. 损失函数:
将目标检测Loss、定位Loss、分类Loss组成一个加权Loss函数,原文3个项都为1/3。
2. 训练过程:
- a)对于Objectness Prior,选择全部的正样本,随机选取负样本,保证正负样本的比例为
1:3; - b)对于Detection,首先通过Objectness Prior Score减少样本数量,然后选择全部的正样本,随机选取负样本,保证正负样本的比例为1:3;
3. 网络预测:
每个 Box 的类置信度表示为:
这个得分包含两部分,一是Objectness的概率,二是目标的类别概率。得到目标Score之后,通过边框回归调整Box位置,最后用NMS得到最终检测结果。
3. 实验结果
在VOC2007上的表现:
在COCO数据集上的表现:
使用不同阶段特征对性能的影响: