2017论文阅读:Learning a Rotation Invariant Detector with Rotatable Bounding Box

文章代码已开源

文章贡献

提出了一种新型检测方法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(AB)/area(AB)
  • 带有角度的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 实验&结果

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值