文献翻译1:Oriented R-CNN for Object Detection

  • Oriented R-CNN for Object Detection
    • Abstract
    • Introduction
    • Related Work
    • Oriented RCNN
      • Oriented RPN
        • Midpoint Offset Representation
        • Loss Function
      • Oriented RCNN head
        • Rotated RoIAlign
      • Implentation Details
    • Experiment
      • Dateset
      • Parameter settings
        • Evaluation of Oriented RPN
        • Comparison with State-of-the-Arts
        • Speed versus Accuracy
    • Conclusions

Oriented R-CNN for Object Detection

Xingxing Xie, Gong Cheng, Jiabao Wang, Xiwen Yao, Junwei Han

西北工业大学

ICCV2021

paper: http://arxiv.org/abs/2108.05699

code: https://github.com/jbwang1997/OBBDetection

Abstract

当前的SOTA两阶段检测器生成旋转候选框很费时。本文提出Oriented RCNN(oRPN),实现具有高效率和良好精度的旋转检测。

具体来说,第一阶段中提出了oRPN,可以几乎不费时地生成oriented proposals;第二阶段oriented RoI。

DOTA: 75.87% mAP

HRSC: 96.50% mAP

Introduction

早期的rotated RPN铺3scales × 3ratios × 6 angles个anchor。anchor-based提高了召回率,在稀疏角度有较好表现,但是计算量大、内存占用高。

RoI Transformer为这一问题,从水平RoI中学习OBB,包括RRoR learner、RRoRI wrapper。RoI Transformer大大降低了oriented anchor的数量,降低了计算量和内存占用。但是其资源消耗仍然很大。

作者通过研究发现限制基于区域建议的Oriented Object Detection是第一阶段旋转候选区域提取。因此作者希望设计一个***通用的、简单的旋转候选框提取网络***,因此设计了Oriented RCNN。

  1. Oriented RPN(oRPN)是一个轻量的全卷积网络,参数量比oRPN和RoI Trans都少。Oriented RPN通过将RPN的输出由4个改为6个实现。Oriented RPN得益于中点偏移(Midpoint offset)旋转框表示。

  2. 第二部分是oriented RCNN detection head(ORH):从每个oriented proposal中通过rotated RoI alignment提取特征并进行分类和回归。

RoI Align是为解决RoI Pooling中像素映射时坐标取整导致的误差而出现的。

Related Work

由于包含太多背景信息或多个目标,HBB不能紧凑地定位遥感图像中的旋转目标。基于two-stage算法,一个自然的结局方案就是引入OBB,比如oriented RPN。这种方式大大提高了摇杆目标检测的精度。但是由于引入了全连接层和RoI Alignment,这种方式十分复杂。为解决这一问题,有人提出了基于Faster RCNN的SCRDet和Gliding Vertex,用Faster RCNN预测四个顶点的offset。但这两种方法都是用HBB来进行分类,仍然存在特征和目标对不齐的问题。

此外,R3Det等探究了one-stage或者是anchor-free方式的算法。其中R3Det用特征精细化和逐步回归来解决特征对不齐问题。Pan在CenterNet的基础上,设计了一种面向目标的动态精细化网络(DRN)。

与上述方法相比,本文的工作属于proposal-based目标检测方法。作者设计了一种高效的oriented RPN,以突破面向目标的建议生成的计算瓶颈。

Oriented RCNN

Oriented RCNN是two-stage检测器,包含oriented RPN和oriented RCNN head两部分。其中oriented RPN用于生成高质量的oriented proposal,oriented rcnn head用于分类和回归。FPN采用{P2,P3,P4,P5,P6}\{P_2, P_3, P_4, P_5, P_6\}{P2​,P3​,P4​,P5​,P6​},

Oriented RPN

Oriented RPN对输入的任意大小的图像提取oriented proposal。整个结构是一个轻量化的全卷积网络。

具体来说,oriented RPN输入FPN的{P2,P3,P4,P5,P6}\{P_2, P_3, P_4, P_5, P_6\}{P2​,P3​,P4​,P5​,P6​}五层特征,然后对每一层都有一个3×33\times{3}3×3的卷积层和两个sibling(兄弟)的1×11\times11×1的卷积层,一个用作分类一个用作回归。在所有的特征层中,每个位置放置三个anchor分别具有三种长宽比{1:2,1:1,2:1}\{1:2, 1:1, 2:1\}{1:2,1:1,2:1}。每层特征上的anchor的面积分别是{322,642,1282,2562,5122}\{32^2, 64^2, 128^2, 256^2, 512^2\}{322,642,1282,2562,5122}。每一个anchor用中心和长宽表示。回归分支输出6维:δ=(δx,δy,δw,δh,δα,δβ)\delta=(\delta_x, \delta_y, \delta_w, \delta_h, \delta_{\alpha}, \delta_{\beta})δ=(δx​,δy​,δw​,δh​,δα​,δβ​)。如前面所述,本文中每个位置处的anchor数量A=3A=3A=3。综上,回归分支共有6A=186A=186A=18维的输出。根据输出可得oriented proposals:
{Δα=δa⋅w,Δβ=δβ⋅hw=aw⋅eδw,h=ah⋅eδhx=δx⋅aw+ax,y=δy⋅ah+ay\left\{ \begin{aligned} \Delta{\alpha}=\delta_a\cdot{w},\Delta{\beta}=\delta_\beta\cdot{h} \\ w=a_w\cdot{e^{\delta_w}},h=a_h\cdot{e^{\delta_h}} \\ x=\delta_x\cdot{a_w}+a_x,y=\delta_y\cdot{a_h}+a_y \end{aligned} \right. ⎩⎪⎨⎪⎧​Δα=δa​⋅w,Δβ=δβ​⋅hw=aw​⋅eδw​,h=ah​⋅eδh​x=δx​⋅aw​+ax​,y=δy​⋅ah​+ay​​
其中(x,y)(x,y)(x,y)是proposal的中心坐标,www和hhh分别是oriented proposal外接矩形的宽和高,Δα\Delta{\alpha}Δα和Δβ\Delta{\beta}Δβ分别是oriented proposal相对于外接矩形中点的长和高。Oriented RPN很自然的源于RPN,但是其关键在于OBB的表示方法即Midpoint Offset Representation

Midpoint Offset Representation

作者提出了一种新的OBB表示方式,称之为中点偏移表示法MOR。如图所示(oriented proposal简称为O),oriented proposal的外接矩形的中点为(x,y)(x,y)(x,y),黑点为外接矩形的四条边的中点,橙色点为O的顶点。一个O可以由六个参数表示:O=(x,y,w,h,Δα,Δβ)O=(x,y,w,h,\Delta{\alpha},\Delta{\beta})O=(x,y,w,h,Δα,Δβ)。通过这种表示方法可以得到O的四个顶点的坐标:
{v1=(x,y−h2)+(Δα,0)=(x+Δα,y−h2)v2=(x+w2,y)+(0,Δβ)=(x+w2,y+Δβ)v3=(x,y+h2)+(−Δα,0)=(x−Δα,y+h2)v4=(x−w2,y)+(0,−Δβ)=(x−w2,y−Δβ)\left\{ \begin{aligned} v_1 &=& (x,y-\frac{h}{2})+(\Delta{\alpha},0) &=& (x+\Delta{\alpha},y-\frac{h}{2})\\ v_2 &=& (x+\frac{w}{2},y)+(0,\Delta{\beta}) &=& (x+\frac{w}{2},y+\Delta{\beta})\\ v_3 &=& (x,y+\frac{h}{2})+(-\Delta{\alpha},0) &=& (x-\Delta{\alpha},y+\frac{h}{2})\\ v_4 &=& (x-\frac{w}{2},y)+(0,-\Delta{\beta}) &=& (x-\frac{w}{2},y-\Delta{\beta})\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​v1​v2​v3​v4​​====​(x,y−2h​)+(Δα,0)(x+2w​,y)+(0,Δβ)(x,y+2h​)+(−Δα,0)(x−2w​,y)+(0,−Δβ)​====​(x+Δα,y−2h​)(x+2w​,y+Δβ)(x−Δα,y+2h​)(x−2w​,y−Δβ)​
因此,在Oriented RCNN中,oriented RPN输出六个参数来确定oriented proposal。

Loss Function

在训练时,对每一个anchor给定一个binary label,0为负样本,1为正样本。以下2种情况:

  1. anchor与任意ground truth的IoU大于0.7;
  2. anchor与ground truth的IoU最大且大于0.3,当小于0.3时认为是负样本。

不为正或负样本的anchor训练时被忽略。上述均值的是oriented proposal的外接矩形

因此损失函数L1L_1L1​定义如下:
L1=1N∑i=1NFcls(pi,pi∗)+1Npi∗∑i=1NFreg(δi,ti∗)L_1=\frac{1}{N}\sum_{i=1}^{N}{F_{cls}(p_i,p_i^*)}+\frac{1}{N}p_i^*\sum_{i=1}^{N}{F_{reg}(\delta_i,t_i^*)} L1​=N1​i=1∑N​Fcls​(pi​,pi∗​)+N1​pi∗​i=1∑N​Freg​(δi​,ti∗​)
其中iii是anchor的索引,NNN是mini-batch中的样本总数,默认为256。pi∗p_i^*pi∗​是真值标签,pip_ipi​是分类分支的输出,表示anchor为前景的概率。ti∗t_i^*ti∗​是anchor的真值偏移监督量ti∗=(tx∗,ty∗,tw∗,th∗,tα∗,tβ∗)t_i^*=(t_x^*,t_y^*,t_w^*,t_h^*,t_{\alpha}^*,t_{\beta}^*)ti∗​=(tx∗​,ty∗​,tw∗​,th∗​,tα∗​,tβ∗​),由下式得出:
{δα=Δαw,δβ=Δβhδw=log⁡wwa,δh=log⁡hhaδx=(x−xa)wa,δy=(y−ya)hatα∗=Δαgwg,tβ∗=Δβghgtw∗=log⁡wgwa,th∗=log⁡hghatx∗=(xg−xa)wa,ty∗=(yg−ya)ha\left\{ \begin{aligned} \delta_{\alpha} = \frac{\Delta{\alpha}}{w}, && \delta_{\beta} = \frac{\Delta{\beta}}{h} \\ \delta_{w} = \log{\frac{w}{w_a}}, && \delta_{h} = \log{\frac{h}{h_a}} \\ \delta_{x} = \frac{(x-x_a)}{w_a}, && \delta_{y} = \frac{(y-y_a)}{h_a} \\ t_{\alpha}^* = \frac{\Delta{\alpha_g}}{w_g}, && t_{\beta}^* = \frac{\Delta{\beta_g}}{h_g} \\ t_{w}^* = \log{\frac{w_g}{w_a}}, && t_{h}^* = \log{\frac{h_g}{h_a}} \\ t_{x}^* = \frac{(x_g-x_a)}{w_a}, && t_{y}^* = \frac{(y_g-y_a)}{h_a} \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​δα​=wΔα​,δw​=logwa​w​,δx​=wa​(x−xa​)​,tα∗​=wg​Δαg​​,tw∗​=logwa​wg​​,tx∗​=wa​(xg​−xa​)​,​​δβ​=hΔβ​δh​=logha​h​δy​=ha​(y−ya​)​tβ∗​=hg​Δβg​​th∗​=logha​hg​​ty∗​=ha​(yg​−ya​)​​
其中,不带下标的量为网络输出,下标为g为真值,下标为a为anchor。FclsF_{cls}Fcls​是交叉熵损失,FregF_{reg}Freg​是Smooth L1损失。

网络输出 ——> 计算输出的oriented proposal ——> 根据anchor计算输出偏移量 ——> 计算损失

真值 ——> 根据anchor计算监督量 ——> 计算损失

Oriented RCNN head

ORH的输入为{P2,P3,P4,P5,P6}\{P_2, P_3, P_4, P_5, P_6\}{P2​,P3​,P4​,P5​,P6​}。在每个oriented proposal进行oriented RoIAlign从相应层特征中提取固定维度的特征向量,之后经过两个全连接层,在经过两个sibling的全连接层,得到分类输出和回归输出。

Rotated RoIAlign

RRoI Align用于提取oriented proposal的旋转不变特征。如图所示,oRPN的输出一般是平行四边形(蓝色框)。为便于计算,需要将平行四边形调整为矩形,该步骤通过延长较短的对角线至与另一对角线相等实现。之后得到图中红色框所示的矩形(x,y,w,h,θ)(x,y,w,h,\theta)(x,y,w,h,θ),其中θ∈[−π/2,π/2]\theta\in[-\pi/2,\pi/2]θ∈[−π/2,π/2],是矩形长边与x轴的夹角(锐角)。

接下来将oriented rectangle映射到特征图F上,按照步长s,来获得RRoI:(xr,yr,wr,hr,θ)(x_r,y_r,w_r,h_r,\theta)(xr​,yr​,wr​,hr​,θ):
{wr=w/s,hr=h/sxr=⌊x/s⌋,yr=⌊y/s⌋\left\{ \begin{aligned} w_r=w/s, && h_r=h/s \\ x_r=\lfloor{x/s}\rfloor, &&y_r=\lfloor{y/s}\rfloor \end{aligned} \right. {wr​=w/s,xr​=⌊x/s⌋,​​hr​=h/syr​=⌊y/s⌋​
然后每一个RRoI被划分为m×mm\times{m}m×m的网格(文中m=7)来获取固定尺寸的特征F′=m×m×CF'=m\times{m}\times{C}F′=m×m×C,在通道c中的个网格(i,j)(i,j)(i,j)中,其特征值为:
Fc′(i,j)=∑(x,y)∈area(i,j)Fc(R(x,y,θ))/nF'_c(i,j)=\sum_{(x,y)\in{area(i,j)}}{F_c(R(x,y,\theta))/n} Fc′​(i,j)=(x,y)∈area(i,j)∑​Fc​(R(x,y,θ))/n
其中FcF_cFc​是输入特征的第c个通道,area(i,j)area(i,j)area(i,j)是网格中的点的坐标集,RRR是旋转变换,与RoI Transformer一致。

Implentation Details

通过oRPN和oRH的联合优化进行端到端的训练。Inference阶段中oRPN的输出往往重叠较高,因此在FPN的每一层中保留最多2000个proposal,然后进行NMS。为了提高Inference的速度,NMS对HBB进行,IoU阈值取0.3。再将剩下的不同层特征中的proposal进行合并,最后根据其score排序选择前1000作为stage2的输入。

在stage2中,对每一个score大于0.05的预测结果进行类内poly NMS,阈值为0.1。

Experiment

Dateset

DOTA和HRSC2016

Parameter settings

用1张2080Ti进行训练,batch size取2。test也在一块2080Ti上。在mmdetection平台上进行实现,backbone为ResNet50和ResNet101,在ImageNet上进行了预训练。训练时采用了水平翻转和竖直反转作为数据增强策略。采用SGD对整个网络进行优化,momentum=0.9,weightdecay=0.0001momentum=0.9, weight_decay=0.0001momentum=0.9,weightd​ecay=0.0001。

针对DOTA数据集,文中将原始图像才建成1024×10241024\times{1024}1024×1024的patch,裁剪步长为824,因此相邻两个patch之间重叠200像素。多尺度训练时,首先将图像调整为原始尺寸的{0.5,1.0,1.5}\{0.5,1.0,1.5\}{0.5,1.0,1.5},然后再以524为步长,裁剪成1024×10241024\times{1024}1024×1024的patch。一共训练12 epoch,初始的学习率设为0.005,在第8和第11个epoch中衰减为原来的0.1。合并patch时poly NMS的阈值为0.1。

针对HRSC数据集,不改变图像的长宽比。短边被缩放到800,长边小于等于1333。共训练36个epoch,初始学习率0.005,在第24和第33个epoch中衰减为原来的0.1。

Evaluation of Oriented RPN

从召回率角度评价了oRPN,采用了DOTA的validation set,backbone采用了ResNet-50-FPN。为简化流程,作者只在裁剪的patch上计算召回率,而进行合并。与ground-truth的IoU阈值为0.5。在每个patch中分别选择前300、前1000、前2000个proposal,记为R300R_{300}R300​、R1000R_{1000}R1000​和R2000R_{2000}R2000​。如图所示,按R2000R_{2000}R2000​计算oRPN可以达到92.80%的召回率。R1000R_{1000}R1000​仅比R2000R_{2000}R2000​下降了0.6%,但是R300R_{300}R300​的召回率急剧下降。

因此,为了速度和精度,作者在两个数据集上测试时都采用1000个proposal的ORH的输入。本文提出的oRPN可以很好地定位对象,无论其大小、纵横比、方向和密度。

Comparison with State-of-the-Arts

Speed versus Accuracy

在相同的设定条件下,作者比较了不同方法的速度和准确度。对比结果如表4所示。所有方法均采用ResNet-50-FPN作为backbone。测试的硬件平台均为1张2080Ti,batch size为1。在测试时,输入图像的大小为1024×10241024\times{1024}1024×1024。如表所示,Oriented RCNN比其他方法有更高的检测准确率(75.87% mAP),但运行速度相当(15.1 FPS)。Oriented RCNN的速度几乎接近于one-stage检测器,但精度远高于one-stage检测器。

Conclusions

本文提出了一种实用的two-stage检测器Oriented RCNN,用于图像中任意方向的目标检测。本文在两个具有挑战性的benchm上进行了广泛的实验。实验结果表明,该方法与目前先进的两级探测器相比具有相当的精度,同时与one-stage检测器相比具有相当的效率。

文献翻译1:Oriented R-CNN for Object Detection相关推荐

  1. 论文阅读:Oriented RepPoints for Aerial Object Detection (CVPR 2022)

    paper:https://arxiv.org/abs/2105.11111 code:GitHub - LiWentomng/OrientedRepPoints: The code for &quo ...

  2. 文献翻译2:AOPG: Anchor-free Oriented Proposal Generator for Object Detection

    文献翻译2:AOPG: Anchor-free Oriented Proposal Generator for Object Detection AOPG: Anchor-free Oriented ...

  3. 【OrientedRepPoints】Oriented RepPoints for Aerial Object Detection核心点概括

    论文地址:https://arxiv.org/abs/2105.11111 翻译:https://blog.csdn.net/songyuc/article/details/128227048 一.概 ...

  4. 目标检测-Oriented RepPoints for Aerial Object Detection(CVPR 2022)

    目标检测-Oriented RepPoints for Aerial Object Detection(CVPR 2022) 论文地址:Oriented RepPoints for Aerial Ob ...

  5. 【翻译】Focal Loss for Dense Object Detection(RetinaNet)

    [翻译]Focal Loss for Dense Object Detection(RetinaNet) 目录 摘要 1.介绍 2.相关工作 3.Focal Loss 3.1 平衡的交叉熵损失 3.2 ...

  6. 论文解读《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》

    论文:Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model  基于CNN的目标检测模 ...

  7. 【OrientedRepPoints】Oriented RepPoints for Aerial Object Detection的译读笔记

    Oriented RepPoints for Aerial Object Detection 摘要   与通用目标不同,航空目标通常不是正轴对齐而且具有任意的方向,且周围背景较为杂乱.与主流方法使用边 ...

  8. [caffe]深度学习之CNN检测object detection方法摘要介绍

    [caffe]深度学习之CNN检测object detection方法摘要介绍  2015-08-17 17:44 3276人阅读 评论(1) 收藏 举报 一两年cnn在检测这块的发展突飞猛进,下面详 ...

  9. Oriented RepPoints for Aerial Object Detection

    Oriented RepPoints for Aerial Object Detection paper:https://arxiv.org/abs/2105.11111 摘要 航空目标通常是非轴对齐 ...

  10. 论文精度笔记(五):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》

    作者单位:港大, 同济大学, 字节AI Lab, UC伯克利 文章目录 论文以及源码获取 论文题目 参考文献 1. 研究背景 2. 贡献 3. 相关工作 3.1 DSConv 3.2 MBConv 3 ...

最新文章

  1. php中类和对象的操作
  2. 生产环境 JVM 内存溢出案例分析
  3. torch 判断gpu可用
  4. 【POJ】1742 coins 【背包问题】
  5. Docker系列之烹饪披萨(二)
  6. php 留言板项目 ajax,PHP Ajax留言板
  7. jsoup 去除html标签,如何使用jsoup取消注释html标签
  8. ES学习笔记之-ClusterState的学习
  9. 最新福昕高级阅读编辑器
  10. 大漠找图算法_新手用大漠找图识别数字,怎么将数字组合起来呢
  11. 基于java springboot vue elementui购物商城源码(毕设)
  12. matlab绘制奈奎图,matlab画奈奎斯特图
  13. python不是5的倍数_查找所有低于1000的数字之和,这是Python中3或5的倍数
  14. html5 mp4在线播放器,HTML5 Web播放器-Video.js
  15. 书单推荐2020-07-06
  16. 外贸邮箱能群发吗?用哪个外贸邮箱发开发信回复率高?
  17. 最漂亮的人是为梦想而努力的人
  18. Python:文本分析必备—搜狗词库
  19. 使用 GPG 加密和解密文件
  20. elment-ui的el-select选择器blur事件失效 bug解决

热门文章

  1. ucmucsiacpi设备感叹号 冰刃4双屏无声音解决办法
  2. shell 编程三剑客之三:awk 详解
  3. 基于SSM架构的美发店会员信息管理系统
  4. 这一周通过了GoogleSummer of Code谷歌编程之夏
  5. Android 将文本和图片写入到pdf文件以及读取手机里的pdf文件
  6. Spring 概述及优点
  7. 华为早几年的服务器型号,云服务器一般用几年
  8. Chrome浏览器滚动条样式设置
  9. 计算机毕业设计JAVA二手物品置换平台mybatis+源码+调试部署+系统+数据库+lw
  10. 群晖NAS:共享文件夹、用户、群组建立及权限设置