文章代码已开源
文章目录
- 文章贡献
- 1. Rotatable bounding box
- 2. Rotation invariant detection
- 2.1 模型结构总览
- 2.2 模型训练
- 2.3 实现的细节
- 3 实验&结果
文章贡献
提出了一种新型检测方法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。
3 实验&结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)