文章目录
文章贡献
提出了一种新型检测方法DRBox(Detector using RBox) ——应用了rotatable bounding box,DRBox在图片中物体方向随机的情况下可以准确识别(并且生成准确的bbox),与当时的Faster R-CNN、SSD相比,有较大的提升。
1. Rotatable bounding box
由于加入了角度,RBoxes比传统的bbox更加复杂:
- 传统的IoU计算:
I o U ( A , B ) = a r e a ( A ∩ B ) / a r e a ( A ∪ B ) IoU (A,B) = area (A ∩ B) /area (A ∪ B) IoU(A,B)=area(A∩B)/area(A∪B) - 带有角度的IoU计算:
θ
A
θ_A
θA和
θ
B
θ_B
θB分别是RBox A 和B的角度,但
A
^
\hat{A}
A^是中心点位置以及大小(x,y,w,h)与A相等,但是角度与B相等的RBox。
上述两个ArIoU的定义的差异体现在A、B的角度接近180度时,第二个定义在物体的头尾难以区分的时候,会忽略物体的头尾角度。
ArIoU和IoU有不同的应用时机。ArIoU用在训练中,可促使检测模型学习到正确的角度,而IoU用在非极大值抑制时,因此角度不正确的预测boxes会被有效排除。
2. Rotation invariant detection
2.1 模型结构总览
1.前面的若干个卷积层都是用来提取特征的,最后一层的prediction层输出预测值;
2.最后一层的prediction层有K个通道,对应每个位置的K个预先定义的RBoxes(就是图中各种固定角度和大小的RBoxes),对每一个RBox,prediction层输出:
- 置信度vector(即 该RBox是“target object”的概率和是“背景”的概率);
- 一个5维vector(预测的RBox与预先定义的RBox的偏置值,正好5个参数);
3.需要decoding过程:将偏置值转变成精确的预测RBox;
4.非极大值抑制
Multi-angle prior RBox在模型中的作用非常关键,在每个位置上prior RBoxes可以旋转一系列的角度;RBoxes比例根据物体类型取固定的值,这可以减少prior RBoxes的总数。(但是可能无法适应更多种类的物体,不同种类的物体有不同的长宽比)
利用预定义Multi-angle prior RBoxes的策略,网络模型经过训练后将检测任务分成一系列子任务(对应一系列角度):每个子任务集中在一个小的角度范围,这可以减少物体旋转带来的困难。
2.2 模型训练
总体上:从SSD的训练过程引入“角度估计”,得到DRBox的训练方法。
- 训练时,每个ground truth RBox会被分配几个预定义的RBoxes,具体怎么分配由两者之间的ArIoU决定;ArIoU是一个不满足交换律的函数,虽然cosin函数是偶函数,但是 A ^ \hat{A} A^的定义使其式子中A和B的地位不等,不满足交换律。
- 对一系列预定义的RBox,计算它们与ground truth RBox G G G的ArIoU值,当一个RBox P P P与 G G G的 A r I o U ( P , G ) > 0.5 ArIoU(P, G) > 0.5 ArIoU(P,G)>0.5则 P P P被分配(assigned)到 G G G,用原文的话说: P P P与 G G G已经“match”。
- 分配之后,与真值match的RBoxes被认为是正样本,在后续用于计算位置(x,y)和角度损失。
ArIoU的引入对于在训练过程中选择match的预定义RBoxes有帮助,经过训练,模型可以学习到角度这一信息。
经过分配过程后,大部分预定义的RBoxes是负样本,正样本是小部分,如果直接使用它们来训练模型是不好的。作者为了平衡正负样本的数量,应用了hard negative mining(从预定义的RBoxes中挖掘一些false positive样本,它们是容易被模型误以为是正样本的负样本——也就是hard negative,用它们来作为负样本的一部分对模型的分类能力提升更好),引用原文:
We apply hard negative mining to decrease the number of the negative samples.
DRBox模型的objective loss函数是在SSD模型的基础上新增了一个与角度有关的项:
- N是RBoxes的个数;
- 置信度损失函数 L c o n f ( c ) L_{conf(c)} Lconf(c)是一个针对所有被选择的正样本和负样本的两类softmax损失函数(two class softmax loss over all selected positive and negative samples), c c c是二维的置信度向量;
-
L
r
b
o
x
(
x
,
l
,
g
)
L_{rbox(x, l, g)}
Lrbox(x,l,g)这一项与SSD和Faster R-CNN的相似,它是预测值RBox
l
l
l 与真值RBox
g
g
g之间的smooth L1损失
- x i j x_{ij} xij是一个预测器,其取值是0或者1,它是对“第i个预定义RBox和第j个Rbox之间是否匹配”进行判断,匹配则取值为1。
- l ^ \hat{l} l^和 g ^ \hat{g} g^分别是 l l l和 g g g与它们对应的预定义RBox p p p的偏置参数(我的理解是: l l l和 g g g对应一个相同的预定义RBox p p p,但是 l l l和 g g g的位置不是完全相同的,它们对RBox p p p的偏置参数分别是 l ^ \hat{l} l^和 g ^ \hat{g} g^;这说明 l ^ \hat{l} l^和 g ^ \hat{g} g^都是向量)
- 6a , 6b和6c分别是位置回归项、大小回归项、角度回归项,角度回归项使用了tangent函数来适应角度的周期性变化,
2.3 实现的细节
- PYRAMID INPUT:原图被缩放成不同分辨率的图像,然后裁剪出一系列300×300大小的重叠的子图像,DRBox模型对每个子图像都进行推理,但是只检测出尺寸合适的目标;对全图的检测结果应用了非极大值抑制,这可以抑制子图像的重复检测结果;pyramid input输入策略方便检测网络在大型物体和小型物体之间共享特征(因为它们可能是相同的物体);在
- CONVOLUTION ARCHITECTURE:DRBox使用阉割版VGG网络作检测,其全连接层、以及conv4_3后的卷积层、池化层被阉割。在阉割版VGG的conv4_3后接一个3 × 3卷积层。DRBox的容纳范围是108×108像素,比108像素大的目标可能无法检测到。
- PRIOR RBOX SETTINGS:pyramid input策略确保了预定义的RBoxes可以覆盖绝大部分不同尺寸的目标,从而保证模型能检测出不同大小尺寸的物体。作者对汽车识别、船舶识别、飞机识别分别训练了三个不同的DRBox模型——由于船的头尾方向不容易辨别,其角度是0:30:180。而汽车和飞机的头尾方向容易辨别,所以其角度设置成0:30:330。