文章

Oriented R-CNNhttps://arxiv.org/abs/2108.05699

代码

官方版本https://github.com/jbwang1997/OBBDetectionMMRotate版本https://github.com/open-mmlab/mmrotate

带着问题读文章

1.什么是中心点偏移六参数表示法?

2.Oriented R-CNN的整体结构是怎样的?

3.Oriented R-CNN如何做到简单高效?

4.实验效果如何?

一、什么是中心点偏移六参数表示法?

如图所示。黑点是水平框的每一边的中点,水平框是方向边界框 O 的外部矩形。橙色的点代表定向边界框 O 的顶点。
        具体来说,使用一个具有六个参数 O = (x,y,w,h,Δα,Δβ)的有向边界盒 O 来表示。通过这六个参数,我们可以得到每个方案的四个顶点的坐标集 v = (v1,v2,v3,v4)。在这里,Δα 是 v1相对于水平方框顶部中点(x,y-h/2)的偏移量。根据对称性,-Δα 表示 v3相对于底部中点(x,y + h/2)的偏移量。Δβ 代表 v2相对于右侧中点的偏移量(x + w/2,y) ,-Δβ 代表 v4相对于左侧中点的偏移量(x-w/2,y)。因此,四个顶点的坐标可以表示如下。

采用表示方式,通过预测外部矩形的参数(x,y,w,h)和推断中点偏移的参数( Δα,Δβ)来实现每个面向方案的回归。

二、面向 R-CNN 的整体结构是怎样的?

Oriented R-CNN,包括一个Oriented RPN 和一个Oriented RCNN Head。它是一个两阶段检测器,其中第一阶段以几乎免费的方式生成旋转高质量的proposals,第二阶段是Oriented RCNN 的proposals分类和回归头。FPN 产生五个级别的特征{ P2,P3,P4,P5,P6}。
        具体地说,它以 FPN 的五个层次的特征{ P2,P3,P4,P5,P6}作为输入,并在每个层次的特征上附加一个相同设计的头(一个3 × 3的卷积层和两个并行的1 × 1的卷积层)。我们分配三个水平锚与三个方面的比例{1:2,1:1,2:1}到每个空间位置在所有水平的特征。锚在{ P2,P3,P4,P5,P6}上的像素区域分别为32^2,64^2,128^2,256^2,512^2。每个锚 a 由一个四维向量 a = (ax,ay,aw,ah)表示,其中(ax,ay)是锚的中心坐标,aw 和 ah 表示锚的宽度和高度。两个1 × 1卷积层中的一个是回归分支: 输出方案相对于锚的偏移量 δ = (δx,δy,δw,δh,δα,δβ)。在特征映射的每个位置,我们生成 A 建议(A 是在每个位置的锚的数量,在这项工作中它等于3) ,因此回归分支有6A 输出。通过对回归结果进行解码,可以得到有向建议。解码过程描述如下:

其中(x,y)是预测方案的中心坐标,w 和 h 是预测方案的外部矩形框的宽度和高度。与外部矩形顶部和右边的中点相对的偏移量分别为 α 和 β。最后,我们根据(x,y,w,h,Δ α,Δ β)提出有针对性的建议。另一个并行卷积层估计每个oriented proposals的分类得分。

三、Oriented R-CNN如何做到简单高效?

目前先进的有向目标检测方法都是基于区域建议范式的(例如Fast/Faster R-CNN)。它们在第一阶段产生有向候选框,在第二阶段对候选框进行分类和回归。然而它们的有向候选框生成阶段仍然非常耗时。

作为早期的有向候选框生成方法,Rotated RPN在特征图的每个位置上放置54个不同尺度、长宽比和角度的预设锚框Anchor,如图(a)所示。Rotated RPN虽然提升了检测的召回率,但也增加了计算成本和内存占用。针对上述问题,RoI Transformer 使用水平候选框来生成有向候选框,如图 (b)所示。RoI Transformer显著地提升了有向目标检测的准确率。然而它需要涉及多个步骤(水平候选框生成、RoI Alignments和有向候选框生成)。整个过程仍然非常耗时。所以,如何设计一种高效的有向候选框生成方法成为突破当前先进有向目标检测计算瓶颈的关键。

Oriented R-CNN它的检测精度超越了现有的有向目标检测方法,并且具有和单阶段有向目标检测相媲美的速度。参数量约为 ROI Transformer + 的1/3000,Rotated RPN 的1/15。具体来说,Oriented R-CNN的第一阶段设计了一种有向候选框生成网络Oriented RPN,如图(c)。Oriented RPN是一个轻量的全卷积网络——在RPN回归分支上增加两个回归参数。同时,提出了中点偏移法来表示有向目标。中点偏移法使用6个参数表示有向目标,它与水平框回归配合使用,避免了训练时角点回归的顺序问题,同时也为有向框的回归提供约束。Oriented R-CNN的第二阶段主要对候选框进行分类和精细回归。最终,Oriented R-CNN在DOTA和HRSC2016数据集上均取得了最好的检测结果,同时拥有和单阶段有向目标检测可比拟的速度。

四、实验效果如何?

1.在DOTA数据集的表现:

2.在HRSC2016数据集上的表现:

3.在DOTA数据集上不同模型的速度以及精度的比较:

参考文章

https://paper.yanxishe.com/reportDetail/27477

https://blog.csdn.net/MLH7M/article/details/121983841

https://zhuanlan.zhihu.com/p/400073829​​​​​​​

论文笔记(Oriented R-CNN,ICCV2021)相关推荐

  1. 【论文笔记 2】CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET

    [论文笔记 2]CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET 1. 综述 对现代的CNN网络结构进行了简要说明,一般的网络都是由卷 ...

  2. [论文笔记] Oriented R-CNN 阅读笔记

    Oriented R-CNN 阅读笔记 Oriented R-CNN for Object Detection(ICCV 2021) 摘要 引言 Oriented R-CNN Oriented RPN ...

  3. 论文笔记:Spherical CNN

    Spherical CNN 1.四个问题 要解决什么问题? 3D场景下旋转不变性特征的提取. 用了什么方法解决? 提出了球形卷积操作,也叫作球形互相关(spherical cross-correlat ...

  4. NILM论文笔记:R.Reddy, et al: A feature fusion technique for improved NILM

    目录 0. 前言 1. 论文概要 2. 混合特征生成 3. 数据合成 4. 对比实验 4.1 数据生成 4.2 事件检测 4.3 特征提取(Feature extraction) 0. 前言 本文是& ...

  5. 论文笔记:A CNN Regression Approach for Real-Time 2D/3D Registration

    REAL-TIME 2D/3D REGISTRATION VIA CNN REGRESSION 摘要 介绍 问题描述 通过分层学习进行姿态估计 摘要 提出了用于实时2-D / 3-D注册的卷积神经网络 ...

  6. 论文笔记 | 基于双线性CNN模型的细粒度视觉识别

    细粒度视觉识别之双线性CNN模型 [1] Lin T Y, RoyChowdhury A, Maji S. Bilinear cnn models for fine-grained visual re ...

  7. Oriented Response Networks 论文笔记

    Oriented Response Networks 论文笔记 Oriented Response Networks 2017cvpr 作者主业:https://yzhou.work/ORN/ 论文地 ...

  8. 论文笔记:PRIN: Pointwise Rotation-Invariant Networks

    PRIN: Pointwise Rotation-Invariant Networks 1.四个问题 要解决什么问题? 使用特殊结构的神经网络来提取具有旋转不变性的点云特征. 用了什么方法解决? 提出 ...

  9. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

  10. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

最新文章

  1. Swing 实现聊天系统 私发与群发
  2. bzoj1036: [ZJOI2008]树的统计Count 树链剖分
  3. python 命令-python常见命令
  4. [译]Stack View 自定义间隙
  5. 【PM模块】操作功能概览
  6. idea 用iterm 终端_帅气逼人的终端环境
  7. mysql错误18456_【问题解决】SQL2008 SQL Server身份认证方式登录失败(错误18456)解决方法图解...
  8. 限制会话id服务端不共享_不懂 Zookeeper?看完不懂你打我
  9. LibMesh 数据结构类
  10. 基于麦克风阵列的语音信号处理技术
  11. php劳保管理系统,《劳保用品管理系统》用盟威快速开发平台开发的应用实例
  12. 转:驳Moxie关于Web3中“去中心化”、“服务器”和“密码学”的观点
  13. QAC静态代码测试工具试用介绍_c/c++
  14. JVM从入门到入魔(一) 类加载机制
  15. Field userDao ....service.impl...'com.lzj.springcloud.dao.UserDao' that could not be found
  16. “客户真的是魔鬼”吗?
  17. idear——文件的刷新,清理和打包
  18. 马云的SNS梦美好却残酷
  19. 普元BPS启动报错BPS Process Server startup failed,because of the UpGradeManager program
  20. 鸿蒙系统电池省电吗,鸿蒙系统+5850超大电池华为mate40,华为mate30前辈彻底感人价...

热门文章

  1. 国产芯片软硬件替代STM32F103C8T6、STM32F103RCT6/RBT6
  2. ArcGIS10.2安装教程(win11版)
  3. oracle中子查询的执行顺序是,Oracle sql语句执行顺序
  4. SparseLab工具包安装尝试
  5. 为什么需要划分VLAN?
  6. 国产Excel开发组件Spire.XLS【转换】教程(4):C#/VB.NET:将 Excel 转换为图像
  7. linux binutils,Binutils的调整过程和Gcc的调整过程
  8. dsp调音一次多少钱_如何快速学会汽车音响DSP调音技术?
  9. Elasticsearch 索引生命周期管理方案
  10. String.valueOf()和Integer.valueOf()方法的使用