文献翻译1:Oriented R-CNN for Object Detection
文献翻译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。
Oriented RPN(oRPN)是一个轻量的全卷积网络,参数量比oRPN和RoI Trans都少。Oriented RPN通过将RPN的输出由4个改为6个实现。Oriented RPN得益于中点偏移(Midpoint offset)旋转框表示。
第二部分是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δhx=δ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. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧v1v2v3v4====(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种情况:
- anchor与任意ground truth的IoU大于0.7;
- 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=N1i=1∑NFcls(pi,pi∗)+N1pi∗i=1∑NFreg(δ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=logwwa,δh=loghhaδx=(x−xa)wa,δy=(y−ya)hatα∗=Δαgwg,tβ∗=Δβghgtw∗=logwgwa,th∗=loghghatx∗=(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=logwaw,δx=wa(x−xa),tα∗=wgΔαg,tw∗=logwawg,tx∗=wa(xg−xa),δβ=hΔβδh=loghahδy=ha(y−ya)tβ∗=hgΔβgth∗=loghahgty∗=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,weightdecay=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相关推荐
- 论文阅读:Oriented RepPoints for Aerial Object Detection (CVPR 2022)
paper:https://arxiv.org/abs/2105.11111 code:GitHub - LiWentomng/OrientedRepPoints: The code for &quo ...
- 文献翻译2:AOPG: Anchor-free Oriented Proposal Generator for Object Detection
文献翻译2:AOPG: Anchor-free Oriented Proposal Generator for Object Detection AOPG: Anchor-free Oriented ...
- 【OrientedRepPoints】Oriented RepPoints for Aerial Object Detection核心点概括
论文地址:https://arxiv.org/abs/2105.11111 翻译:https://blog.csdn.net/songyuc/article/details/128227048 一.概 ...
- 目标检测-Oriented RepPoints for Aerial Object Detection(CVPR 2022)
目标检测-Oriented RepPoints for Aerial Object Detection(CVPR 2022) 论文地址:Oriented RepPoints for Aerial Ob ...
- 【翻译】Focal Loss for Dense Object Detection(RetinaNet)
[翻译]Focal Loss for Dense Object Detection(RetinaNet) 目录 摘要 1.介绍 2.相关工作 3.Focal Loss 3.1 平衡的交叉熵损失 3.2 ...
- 论文解读《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的目标检测模 ...
- 【OrientedRepPoints】Oriented RepPoints for Aerial Object Detection的译读笔记
Oriented RepPoints for Aerial Object Detection 摘要 与通用目标不同,航空目标通常不是正轴对齐而且具有任意的方向,且周围背景较为杂乱.与主流方法使用边 ...
- [caffe]深度学习之CNN检测object detection方法摘要介绍
[caffe]深度学习之CNN检测object detection方法摘要介绍 2015-08-17 17:44 3276人阅读 评论(1) 收藏 举报 一两年cnn在检测这块的发展突飞猛进,下面详 ...
- Oriented RepPoints for Aerial Object Detection
Oriented RepPoints for Aerial Object Detection paper:https://arxiv.org/abs/2105.11111 摘要 航空目标通常是非轴对齐 ...
- 论文精度笔记(五):《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 ...
最新文章
- php中类和对象的操作
- 生产环境 JVM 内存溢出案例分析
- torch 判断gpu可用
- 【POJ】1742 coins 【背包问题】
- Docker系列之烹饪披萨(二)
- php 留言板项目 ajax,PHP Ajax留言板
- jsoup 去除html标签,如何使用jsoup取消注释html标签
- ES学习笔记之-ClusterState的学习
- 最新福昕高级阅读编辑器
- 大漠找图算法_新手用大漠找图识别数字,怎么将数字组合起来呢
- 基于java springboot vue elementui购物商城源码(毕设)
- matlab绘制奈奎图,matlab画奈奎斯特图
- python不是5的倍数_查找所有低于1000的数字之和,这是Python中3或5的倍数
- html5 mp4在线播放器,HTML5 Web播放器-Video.js
- 书单推荐2020-07-06
- 外贸邮箱能群发吗?用哪个外贸邮箱发开发信回复率高?
- 最漂亮的人是为梦想而努力的人
- Python:文本分析必备—搜狗词库
- 使用 GPG 加密和解密文件
- elment-ui的el-select选择器blur事件失效 bug解决