RoI Transformer论文翻译详解

news2024/9/22 21:31:27

Learning RoI Transformer for Oriented Object Detection in Aerial Images

0.摘要

航空图像中的目标检测是计算机视觉中一个活跃而又具有挑战性的任务,因为它具有鸟瞰视角、高度复杂的背景和变化的物体外观。特别是在航空图像中检测密集的目标时,基于水平建议的普通目标检测方法往往会导致感兴趣区域(Region of interest, RoIs)与目标之间的不匹配。这就导致了最终目标分类置信度与定位精度之间的常见偏差。在本文中,我们提出了一个RoI Transformer来解决这些问题。RoI Transformer的核心思想是对RoI进行空间变换,并在定向包围框(OBB)注释的监督下学习变换参数。RoI Transformer是轻量级的,可以很容易地嵌入到检测器中,用于定向对象检测。简单地将RoI Transformer应用于light-head RCNN 已经在两个常见且具有挑战性的航空数据集上取得了最先进的性能,即DOTA和HRSC2016,检测速度的降低可以忽略。当定向边界框注释可用时,我们的RoI Transformer超过了可变形的位置敏感 RoI pool-ing。大量的实验也验证了我们的RoI Transformer的灵活性和有效性。

1.介绍

(1)背景
水平框检测会造成边界框和目标的不一致性,尤其是当目标密集分布时。由于航空影像目标方向的多样性,使用有限方向的RRoIs很难与所有的目标都正确匹配,并且多方向的RRoIs还会造成计算的高度复杂性。空间变换、形变卷积和RoI池化常被用来处理几何变形,并且不涉及标注的旋转边界框。在航空影像中,提取具有旋转不变性的区域特征,对于消除区域特征和目标的不匹配问题是非常重要的。

(2)本文研究的主要内容:
提出了RoI Transformer的模块结构,通过标注RRoI的监督学习和基于位置敏感对齐的特征提取,旨在利用双阶段框架实现密集旋转目标的检测。它由两部分组成:
第一个是RRoI学习器,它学习从hroi到RRoI的转换。
第二个是旋转位置敏感RoI Align,从RRoI中提取旋转不变特征,用于后续的对象分类和位置回归。

(3)本文研究的主要贡献:

  • 我们提出了一个有监督的旋转RoI学习器,它是一个可以将水平RoI转换为RoI的可学习模块。该设计不仅可以有效缓解RoIs与对象之间的错位,还可以避免为定向对象检测而设计的大量锚点。
  • 设计了用于空间不变特征提取的旋转位置敏感感兴趣区域对齐模块,可以有效地促进目标分类和位置回归。当使用light-head RoI-wise操作时,保证了效率和低复杂性。
  • 我们在几个公共大规模数据集上实现了最先进的性能,用于航空图像中的定向目标检测。实验还表明,所提出的RoI Transformer可以很容易地嵌入到不同的主干中,并显著提高了检测性能。

2.相关工作

2.1. 定向边框回归
定向目标检测是一般水平目标检测的延伸。该任务是利用方向信息对目标进行定位和分类,主要采用基于区域建议的方法进行处理。基于HRoI的方法[15,37]通常使用普通的RoI warp从HRoI中提取特征,并回归相对于地面真实值的位置偏移。基于HRoI的方法存在区域特征与实例不匹配的问题。基于RRoI的方法[30,26]通常使用旋转RoI翘动(rotate RoI Warping)从RRoI中提取特征,并回归相对于RRoI的位置偏移量,可以在一定程度上避免误差问题。然而,基于RRoI的方法涉及生成大量旋转的提案。[26]对轮换提案采用[27]中的方法。SRBBS[27]很难嵌入到神经网络中,旋转生成提案会花费额外的时间。[30,43,41,1]在RPN[32]中采用了旋转锚的设计。然而,由于锚点数量的急剧增加(num scales×num aspect ratios×num angles),该设计仍然很耗时。例如,在一个位置设置3 × 5 × 6 = 90个锚。大量的锚点增加了网络中参数的计算量,同时也降低了建议与ground truth匹配的效率。此外,由于存在大量冗余的旋转锚点,定向包围框之间的直接匹配比水平包围框之间的直接匹配更难。因此,在旋转锚的设计中,[30,24]都采用了松弛匹配策略。有一些锚点在任何真实情况下都没有达到0.5以上的IoU,但它们被分配为True Positive样本,这仍然会导致不对齐的问题。在这项工作中,我们仍然使用水平锚。不同的是,当生成hroi时,我们通过轻全连接层将它们转换为rroi。基于这种策略,没有必要增加主播的数量。并且可以获得大量精确的rroi,这将促进匹配过程。因此,我们直接使用OBBs之间的借条作为匹配标准,可以有效地避免不对中问题。

2.2 空间不变特征提取
CNN具有平移不变性,但在旋转和尺度变化方面表现较差。对于图像特征提取,提出了空间变压器[14]和可变形卷积[5]来模拟任意变形。他们从目标任务中学习,没有额外的监督。对于区域特征提取,提出了可变形RoI池化[5],该算法通过对RoI池化采样网格进行偏移学习实现。与常规RoI翘曲相比,它可以更好地在实例级对变形进行建模[8,10,4]。STN和可变形模块被广泛应用于场景文本和航空图像识别领域[40,33,19,34,39]。航空图像中目标检测存在较多的旋转和尺度变化,很少有非刚性变形。因此,我们的RoI Transformer仅对刚性空间变换建模,该空间变换以(dx, dy, dw, dh, dθ)的格式学习。然而,与可变形的RoI池化不同,我们的RoI Transformer在地面真相的监督下学习偏移量。RRoIs还可以用于进一步的旋转边界框回归,这也有助于提高目标定位性能。

2.3 轻roi操作
在两阶段算法中,由于计算是不共享的,所以roi操作是效率的瓶颈。为了解决这一问题,提出了Light-head R-CNN[17]算法,通过使用更大的可分离卷积来获得薄特征。它还采用PS RoI池[4]进一步降低特征图的维数。在维数为10的池化特征上采用单一的全连通层,可以显著提高两阶段算法的速度。在航拍图像中,存在实例数量较大的场景。例如,单个1024 × 1024映像上可能有超过800个实例。我们的方法类似于可变形RoI池[5],其中进行两次RoI操作。为了保证效率,还采用了light-head设计。

3. RoI Transformer

在本节中,我们将详细介绍我们提出的RoI Transformer,它包含两个部分,RRoI Learner 和
RRoI Warping。RRoI Learner是一个PS RoI Align,后面是一个维度为5的全连接层,它回归了相对于hroi的旋转地面真理(rgs)的偏移量。RRoI Warping对旋转区域特征进行变形,以保持旋转不变性。对于端到端训练,这两层都是可微的。其架构如图2所示。
在这里插入图片描述
3.1. RRoI Learner
RRoI学习器的目标是从水平roi的特征图中学习旋转roi。假设我们有n个HRoI,用{Hi}表示,格式为(x, y, w, h),用于预测HRoI的二维位置、宽度和高度,对应的特征映射可记为{Fi}。由于在理想情况下,每个HRoI都是RRoI的外部矩形,我们试图通过使用全连接层从每个特征映射Fi推断RRoI的几何形状。我们首先给出相对于一般rroi的偏移的回归目标为
在这里插入图片描述
其中(xr, yr, wr, hr, θr)是表示RRoI的位置、宽度、高度和方向的堆叠向量,(x∗,y∗,w∗,h∗,θ∗)是有向包围盒(OBB)的地面真值参数。为了便于计算,用mod来调整角偏移目标t * θ在[0,2 π)内。的确,相对于HRoI的回归偏移的目标是Eq.(1)的特殊情况,如果θ∗= 3π 2。一般相对偏移量如图3所示为例。
在这里插入图片描述
为了推导式(1),需要将OBB的坐标从全局坐标系转换为局部坐标系(例如x1O1y1)。从数学上讲,全连接层为每个特征映射Fi by t = G(F;Θ),(2)
在这里插入图片描述
其中G表示全连通层,Θ是G的权重参数,F是每个HRoI的特征图。在训练过程中,我们需要匹配输入的HRoIs和定向包围盒(obb)的ground truth。为了提高效率,将HRoI与轴向包围框进行了基于原始地面真实值的匹配。一旦HRoI与OBB的ground truth相匹配,我们根据Eq.(1)中的定义直接设置t *。我们使用平滑L1损失[9]函数作为回归损失。对于每一次前向传递中的预测t,我们将其从偏移量解码为RRoI参数。也就是说,我们提出的RRoI学习器可以从HRoI特征图F中学习RRoI的参数。

3.2. RRoI Warping
得到RRoI参数后,可以提取旋转不变的深度特征,用于RRoI翘曲定向目标检测。在这里,我们提出了旋转位置敏感(RPS) RoI对齐模块作为具体的RRoI扭曲,因为我们的基线(更多细节在第2.3节)是Light-Head R-CNN[17]。给定形状为(H, W, K × K × C)的输入特征图D和RRoI (xr, yr, wr, hr, θr),其中(xr, yr)表示RRoI的中心,(wr, hr)表示RRoI的宽度和高度。θr给出了RRoI的方向。RPS RoI Align将旋转后的RoI分成K × K个bin,输出形状为(K, K, C)的特征图Y。对于输出通道C(0≤C < C)的索引为(i, j)(0≤i, j < K)的bin,我们有
在这里插入图片描述
其中Di,j,c是K × K × c特征映射中的一个特征映射。从输入到输出的通道映射与原来的位置敏感RoI池[4]相同。n × n是箱子中采样位置的个数。bin(i,j)表示坐标集{i wrk +(sx+ 0.5) wrk×n;Sx = 0,1,…N−1}×{j HRK +(sy +0.5) hrk×n;Sy = 0,1,…N−1}。对于每个(x, y)∈bin(i, j),它被Tθ转换为(x ', y '),其中
(x ', y ')为
在这里插入图片描述
通常,式(3)由双线性插值实现。

3.3. RoI Transformer for Oriented Object Detection
RRoI leaner和RRoI warping的组合形成了RRoI Transformer(RT)。它可以用来代替正常的RoI warping操作。来自RT的池化特征是旋转不变的。此外,RRoI为以后的回归提供了更好的初始化,因为与匹配的HRoI相比,匹配的RRoI更接近RGT。如前所述,RRoI是一个包含5个元素(xr, yr, wr, hr, θr)的元组。为了消除歧义,我们用h表示RRoI的短边,用w表示长边。选择垂直于h且落在[0,π]的方向作为RRoI的最终方向。在所有这些操作之后,避免了歧义。此外,这些操作还需要减少旋转变化。

(1)IoU between Polygons

在匹配RRoI和RGT时,我们仍然使用IoU作为标准。如果任何RGT的RRoI的欠条超过0.5的阈值,则被认为是真阳性(TP)。对于RRoI和RGT之间的IoU的计算,我们使用式(5)如下所示。
在这里插入图片描述
它与水平边界框之间的IoU计算形式类似。唯一的区别是,rroi的IoU计算是在多边形内执行的。Br表示RRoI的包围框。Bgt代表基本真理的边界框。面积是计算任意多边形面积的函数。

(2)Targets Calculation
对RRoI进行翘曲后,得到旋转不变性特征。然后我们加入一个2048维的全连通层(fc),再加入两个兄弟层(fcs),进行最终的分类和回归(如图2)。分类目标与之前的工作相同。然而,回归目标是不同的。为了保持一致性,偏移量也需要是旋转不变的。为了达到这一目标,我们使用图3所示的相对偏移量。主要思想是使用绑定到RRoI的坐标系,而不是图像进行偏移量计算。

4.实验

5.结论

本文提出了一个RoI Transformer模块来对几何变换进行建模,该模块可以有效地避免区域特征与物体之间的错位问题。该设计对具有挑战性的DOTA和HRSC上的面向对象检测带来了显著的改进,而计算成本的增加可以忽略不计。通过与可变形RoI池化的综合比较,验证了在有定向边界框标注的情况下,该模型更为合理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/342998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

01-RTOS

对于裸机而言&#xff0c;对于RTOS而言即&#xff1a;对于裸机&#xff0c;打游戏意味着不能回消息 回消息意味着不能打游戏对于RTOS 打游戏和裸机的切换只需要一个时间片节拍 1ms 从宏观来看 就是同时进行的两件事&#xff08;但要在这两件事情的优先级一样的情况下&#xff0…

HTML面试题

HTML面试题部分知识点梳理 1.如何理解HTML语义化 让页面的内容结构化&#xff0c;便于对浏览器、引擎解析&#xff0c;易于阅读&#xff0c;便于维护理解&#xff0c;利于SEO。 2.H5的新特性 video/audio视频/音频canvas 绘画geolocation 定位 用于定位用户的位置WebSocket…

浅谈业务中台前端设计

做前端中台业务一年多的时间&#xff0c;有一些心得体会&#xff0c;和大家分享分享。 中台是什么中台业务的价值是什么做了哪些前端中台业务如何设计前端中台业务未来展望 中台是什么 百度百科的解释比较言简意赅&#xff1a;“中台&#xff0c;互联网术语&#xff0c;一般…

[数据库]表的约束

●&#x1f9d1;个人主页:你帅你先说. ●&#x1f4c3;欢迎点赞&#x1f44d;关注&#x1f4a1;收藏&#x1f496; ●&#x1f4d6;既选择了远方&#xff0c;便只顾风雨兼程。 ●&#x1f91f;欢迎大家有问题随时私信我&#xff01; ●&#x1f9d0;版权&#xff1a;本文由[你帅…

【MySQL】MySQL 中 WITH 子句详解:从基础到实战示例

文章目录一、什么是 WITH 子句1. 定义2.用途二、WITH 子句的语法和用法1.语法2.使用示例3.优点三、总结"梦想不会碎&#xff0c;只有被放弃了才会破灭。" "Dreams wont break, only abandoned will shatter."一、什么是 WITH 子句 1. 定义 WITH 子句是 M…

LeetCode——1234. 替换子串得到平衡字符串

一、题目 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符&#xff0c;且长度为 n 的字符串。 假如在该字符串中&#xff0c;这四个字符都恰好出现 n/4 次&#xff0c;那么它就是一个「平衡字符串」。 给你一个这样的字符串 s&#xff0c;请通过「替换一个子串」的方式&a…

Kubeadm搭建K8S

目录 一、部署步骤 1、实验环境 2、环境准备 3、所有节点安装Docker 4、 所有节点配置K8S源 5、所有节点安装kubeadm&#xff0c;kubelet和kubectl 6、部署 kubernetes Master 节点 7、token制作 8、k8s-node节点加入master节点 9、 master节点安装部署pod网络插件&a…

ChatGPT被玩疯,问“如果美国倒了,世界会怎样?”回答太吓人了

“ChatGPT”大火不见消停…… 最近这些天&#xff0c;想必大家的社交平台都刷爆了“ChatGPT”这个词吧&#xff1f; 作为OpenAI 的语言模型工具&#xff0c;它可以生成文本、回答问题、对话、摘要、翻译等。 特点是语言表达流畅&#xff0c;思维敏捷&#xff0c;可以回答复杂…

golang语言本身设计点总结

本文参考 1.golang的内存管理分配 golang的内存分配仿造Google公司的内存分配方法TCmalloc算法&#xff1b;她会把将内存请求分为两类,大对象请求和小对象请求,大对象为>32K的对象。 在了解golang的内存分配之前要知道什么事虚拟内存&#xff0c;虚拟内存是把磁盘作为全局…

设计模式之工厂模式详解和应用

目录1 工厂模式的历史由来2.简单工厂模式2.1 简单工厂模式定义2.2 简单工厂模式案例2.3 简单工厂模式相关源码2.4 简单工厂模式优缺点3 工厂方法模式3.1 工厂方法模式定义3.2 工厂方法模式案例3.3 工厂方法模式源码3.4 工厂方法模式优缺点4 抽象工厂模式4.1 抽象工厂模式定义4.…

【项目】基于SpringBoot+Freemarker+Mybatis+MySQL+LayUI实现CRM智能办公系统

这里写目录标题CRM基本概念CRM分类模块功能描述项目代码application-dev.yml部分页面代码CRM基本概念 圈内存在这么一句话&#xff1a;“世上本来没有 CRM&#xff0c;大家的生意越来越难做了&#xff0c;才有了 CRM。” 在同质化竞争时代&#xff0c;顾客资产尤为重要&#x…

CUDA流入门|参加CUDA线上训练营

CUDA 流的概念 CUDA流在加速应用程序方面起到重要的作用&#xff0c;他表示一个GPU的操作队列操作在队列中按照一定的顺序执行&#xff0c;也可以向流中添加一定的操作如核函数的启动、内存的复制、事件的启动和结束等&#xff0c;添加的顺序也就是执行的顺序一个流中的不同操…

SQLi-LABS-Challenges 0~28a解析

Less-1 GET-Error based - Single quotes - String 成功payload 1 union select 1,database(),user()%23 1 and 12 union select user(),1,database()-- 经测试 输出时会输出 3 列&#xff0c;所以此处 union select 需 select 三个数据 * 1‘ order by 4--时会报错&#…

OpenHarmony使用Socket实现一个TCP服务端详解

点击获取BearPi-HM_Nano源码 ,以D4_iot_tcp_server为例: 点击查看:上一篇关于socket udp实现的解析 查看 TCPServerTask 方法实现: static void TCPServerTask(void) {//连接WifiWifiConnect("TP-LINK_65A8",

场测|新能源整车通信功能性能,新能源整车环中国测试,整车2345G及bt,wifi测试

一套全新的用于测试车载通信功能的标准Verson.DH2.0.0 目的&#xff1a; 检测出不同平台、芯片及硬件配置的间的差异&#xff0c;找到凌驾于法规之上好产品配置。开创出行业领先的测试标准&#xff0c;并联合相关部门将地方标准升级成国家标准。推动行业产品的迭代将客户的用…

Ajax 学习笔记

一、Ajax1.1 什么是AjaxAJAX Asynchronous JavaScript and XML(异步的JavaScript和XML)。Ajax是一种在无需加载整个网页的情况下&#xff0c;能够更新部分网页的技术&#xff0c;它不是一种新的编程语言&#xff0c;而是一种用于创建更好更快以及交互性更强的Web应用程序的技术…

VSCODE C++ 调用matplotlibcpp画图

使用VSCODE编写C程序&#xff0c;想在调试过程中看中间数据的波形&#xff0c;于是找到了python的matplotlibcpp库&#xff0c;参考文章链接是&#xff1a;https://blog.csdn.net/weixin_43769166/article/details/118365416&#xff1b;按照他的步骤配置好之后&#xff0c;跳出…

《爆肝整理》保姆级系列教程python接口自动化(十三)--cookie绕过验证码登录(详解

python接口自动化&#xff08;十三&#xff09;--cookie绕过验证码登录&#xff08;详解 简介 有些登录的接口会有验证码&#xff1a;短信验证码&#xff0c;图形验证码等&#xff0c;这种登录的话验证码参数可以从后台获取的&#xff08;或者查数据库最直接&#xff09;。获取…

Linux服务器clang-13安装(环境变量配置)

1.从llvm的github网址选择合适的release合适的运行平台进行下载&#xff0c;下载官方预编译的二进制压缩包。 2.将下载好的压缩包进行本地上传。 使用scp命令进行上传 scp -r -P 端口号 本地文件路径 服务器ID等:服务器上目标地址 3.解压(tar命令&#xff09; 4.环境变量配…

测试开发之Django实战示例 第八章 管理支付与订单

第八章 管理支付与订单上一章制作了一个带有商品品类展示和购物车功能的电商网站雏形&#xff0c;同时也学到了如何使用Celery给项目增加异步任务。本章将学习为网站集成支付网关以让用户通过信用卡付款&#xff0c;还将为管理后台扩展两项功能&#xff1a;将数据导出为CSV以及…