Oriented R-CNN for Object Detection 论文解读

论文基本信息

  • 标题:Oriented R-CNN for Object Detection
  • 作者:Xingxing Xie Gong Cheng* Jiabao Wang Xiwen Yao Junwei Han
  • 机构:School of Automation, Northwestern Ploytechnical University, Xi’an, China
  • 来源:ICCV
  • 时间:2021
  • 链接:https://arxiv.org/abs/2108.05699
  • 代码:https://github.com/jbwang1997/OBBDetection

论文概要

解决问题

当前先进的双阶段有向目标检测方法需要通过耗时的过程来产生有向候选框。这极大的制约了有向目标检测的速度,从而成为先进有向目标检测的计算瓶颈。本文提出了一种简单、有效的有向目标检测方法,称为Oriented R-CNN。在DOTA上达到了75.87%的mAP,在HRSC2016上达到了96.50%的mAP。基于RTX2080ti,图片大小1024*1024的分辨率,fps为15.1

已有方法

方法 流程 优缺点 应用
A a 产生候选框 b 从候选框中提炼信息,并对候选框进行分类 缺:在产生候选框的时候计算耗时大 Fast/Faster RCNN [10 11 32]

proposals生成方法

方法 方法概述 优缺点
图a(Oriented RPN[26]) 每一个像素点设置54个anchors(3 scales×3 ratios×6 angles) 优:增加了recall 并且在对象稀疏时效果较好 缺点:产生的anchors太多了,太耗费时间
图b (RoI transformer[7]) 从 horizontal RoI中学习有方向的propocals 优点:不用产生太多的anchors 缺点:训练参数多,且同样很耗时
图c(oriented RPN)本文 只用了一个轻量的FCN,网络输出6个值来表示一个proposal 优点:参数较少,减少了过拟合的风险,并且训练很快

Oriented R-CNN for Object Detection 论文解读_第1张图片

方法/研究内容

Oriented R-CNN在backbone产生featuremap后主要分为两个阶段,第一个阶段是Orieated RPN(上图c)该阶段的回归branch中增加了两个回归参数。并且,本文提出了midpoint offset (中心点偏移)的方法来表示proposal。第二阶段是Orieated R-CNN detection head,利用rotated RoI alignment从每个proposal中提取固定大小的特征向量来进行分类和回归。

创新点

  • 设计了一种高效的oriented RPN,打破了在产生oriented proposals的计算瓶颈。
  • 设计了midpoint offset的方法来表示proposals。

性能/效果

mAP

数据集 backbone mAP
DOTA ResNet-50-FPN 75.87%
HRSC2016 ResNet-50-FPN 96.50%

速度

图片分辨率 GPU speed
1024*1024 RTX2080t 15.1fps

不足

算法流程

整体结构

Oriented R-CNN for Object Detection 论文解读_第2张图片
图片输入之后,经过backbone生成特征图,将特征图送入oriented RPN中,生成一系列的高质量的oriented proposals,再将这些proposals和特征图一块送入第二阶段的oriented R-CNN Head中,对每个proposal进行变形(固定大小的特征向量)后送入FC层,最后经过两个分支输出分类结果和位置回归结果。

Oriented RPN

  • 输入:backbone的后5层{p2,p3,p4,p5,p6}(用做FPN的五层 FPN可参考FPN讲解)。
  • 输出:一组δ = (δ x ,δ y ,δ w ,δ h ,δ α ,δ β )。

anchor的选择

在每个像素点选择3个不同长宽比的anchors,{1:2,1:1,2:1},因为每层level的feature map的大小不同,所以不需要再设不同scale的anchor。

对输出向量进行解码

Oriented R-CNN for Object Detection 论文解读_第3张图片
按照这个公式解码输出向量δ = (δ x ,δ y ,δ w ,δ h ,δ α ,δ β ),此时的 (x,y,w,h,∆α,∆β).就表示一个proposal。其中(x,y)表示框的中心点,w,h分别是预测框的外接矩形的宽和长,∆α,∆β是相对于中心点的偏移量,如图所示。下面在midpoint offset represention中介绍一下如何根据(x,y,w,h,∆α,∆β)表达一个oriented object
Oriented R-CNN for Object Detection 论文解读_第4张图片

Midpoint Offset Representation

根据上文中提到的(x,y,w,h,∆α,∆β),如何确定出一个目标呢?将预测框的四个点设为v1,v2,v3,v4如上图所示。以顺时针方向排列的。计算公式如下
Oriented R-CNN for Object Detection 论文解读_第5张图片
每一个点的位置都是确定的,这样也消除了顶点排列组合数目多,不容易确定的问题。

Loss Function

每个anchor都设置一个binary label记为p,用来标记是正样本(1)还是负样本(0)。

  • 正样本:(i) IoU>=0.3 && 对某一 GT box有最大的IOU。(ii) 与任意一个GT Box的IOU>=0.7
  • 负样本:IOU<0.3
  • else 不是正样本也不是负样本。
    (注:GT box是oriented bbox的外接矩形框)
    Loss function 定义如下
    Oriented R-CNN for Object Detection 论文解读_第6张图片
    其中前半部分是分类损失,p和p*分别是实际值和预测值,Fcls是交叉熵损失。后半部分是回归损失,Freg是 Smooth L1 损失。

proposals的选择

在oriented RPN阶段,为了减少proposal的数量,已减小计算量。本文在每个level的特征图上选择了2000个proposals,并进行NMS。

Oriented R-CNN Head

Oriented RPN输出一系列的oriented proposals,这些oriented proposals和feature map {P2,P3,P4,P5}共同作为输入,输到Oriented R-CNN Head中。利用Rotated RoIAligin提取固定大小的特征向量,输入到后面的两个FC中,分别进行分类和回归。

Rotated RoIAlign

Oriented R-CNN for Object Detection 论文解读_第7张图片
通过proposal可以计算出预测框的四个点v1-v4,然后要想办法将这个框映射到每一level的特征图上。
首先选择短对角线,如上图的v2-v4,将其延长到和长对角线相同的长度,然后得到一个矩形框(红色的),然后将这个框映射到特征图上(上图中的中间部分)。然后再利用SPPnet中的思想,通过不停地池化,将映射在特征图上的红框变成固定大小m*m的特征向量。
这样每个proposal就能得到一个固定大小的特征向量,便于后面送入FC中进行分类和回归。

实验

(略)
Oriented R-CNN for Object Detection 论文解读_第8张图片

目标检测入门选手,如有不对的地方,欢迎批评指正。

参考:
https://mp.weixin.qq.com/s/5KNKSMIbZ10sqDQYEFNdeg

你可能感兴趣的:(cnn,深度学习,目标检测)