论文阅读之旋转目标检测ARC:《Adaptive Rotated Convolution for Rotated Object Detection》

论文link:link
code:code
ARC是一个改进的backbone,相比于ResNet,最后的几层有一些改变。

Introduction

  ARC自适应地旋转以调整每个输入的条件参数,其中旋转角度由路由函数以数据相关的方式预测。此外,还采用了一种有效的条件计算技术,使检测器具有更大的适应性来处理图像中具有各种方向的物体。所提出的 ARC 模块可以方便地用作任意核大小的卷积层中的即插即用模块。因此,任何具有卷积层的骨干网络都可以通过使用 ARC 模块享受强大的旋转物体表示能力。

1.摘要

  旋转物体检测旨在识别和定位图像中任意方向的物体。在这种情况下,物体的方向在不同图像中差异很大,而一幅图像中存在多个物体方向。这种固有特性使得标准主干网络很难提取这些任意方向物体的高质量特征。在本文中,我们提出了自适应旋转卷积 (ARC)模块来应对上述挑战。在我们的ARC模块中,卷积核自适应地旋转以提取不同图像中方向不同的物体特征,并引入了一种高效的条件计算机制来适应图像中物体的大方向变化。这两种设计在旋转物体检测问题中无缝协作。此外,ARC可以方便地用作各种视觉主干中的即插即用模块,以增强其表征能力,从而准确检测方向物体。在常用基准(DOTA和 HRSC2016)上进行的实验表明,在主干网络中配备我们提出的 ARC 模块后,多个流行的定向物体检测器的性能得到了显著提升(例如,在 Rotated RetinaNet 上 =mAP 提高了3.03%,在CFA上 mAP 提高了 4.16%)。与极具竞争力的 Oriented R-CNN 方法相结合,所提出的方法在 DOTA数据集上实现了81.77% mAP 的最佳性能。

2.模型结构图

在这里插入图片描述

3.方法

3.1 旋转卷积核

  为了弥合任意方向的物体实例和这些静态方向的卷积核之间的差距,我们建议通过以数据驱动的方式在核空间内采样权重来旋转卷积核。

3.2 路由函数

  路由函数将图像特征x作为输入,并为内核集预测一组旋转角度 [ θ 1 , . . . θ n ] [{\theta _1},...{\theta _n}] [θ1,...θn],以及相应的权重 [ λ 1 , . . . . . λ n ] [{\lambda _1},.....{\lambda _n}] [λ1,.....λn] ,输入函数特征x的大小为 [ C i n , H , W ] [{C_{in}},H,W] [Cin,H,W] ,首先输入到内核大小为 3×3 的轻量级深度卷积中,然后进行层归一化和 ReLU 激活。然后将激活的特征平均池化为具有 C i n C_{in} Cin 维度的特征向量。池化特征向量传递到两个不同的分支。第一个分支是旋转角度预测分支,由线性层和软符号激活组成。将这个线性层的偏差设置为 false,以避免学习有偏差的角度。采用软符号激活来降低饱和速度。此外,软符号层的输出乘以一个系数以扩大旋转范围。第二个分支称为组合权重预测分支,负责预测组合权重 λ。它由带偏差的线性层和 S 型激活构成。路由函数由零均值截断正态分布初始化,标准差为 0.2,以便模块在学习过程开始时产生较小的值。

3.3 自适应旋转卷积模块

  卷积核根据不同的输入特征图自适应地旋转,本文引入一种条件计算机制来处理多个方向的对象:ARC模块有n个内核 ( W 1 , W 2 . . . . . , W n ) (W_1,W_2.....,W_n) (W1,W2.....,Wn) ,每个内核的形状都为: [ C o u t , C i n , k , k ] [{C_{out}},{C_{in}},k,k] [Cout,Cin,k,k]

4.结果

在这里插入图片描述
在这里插入图片描述

5.结论

  本文提出了一种用于旋转物体检测的自适应旋转卷积模块。在所提出的方法中,卷积核根据图像中不同的物体方向自适应地旋转。进一步引入了一种高效的条件计算方法,使网络能够更灵活地捕获图像中多个方向物体的方向信息。所提出的模块可以插入任何具有卷积层的骨干网络。实验结果证明,在骨干网络中配备所提出的模块后,各种方向物体检测器在常用的旋转物体检测基准上的性能显著提高,同时保持了效率。

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

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

相关文章

使用 Ollama 时遇到的问题

题意: ImportError: cannot import name Ollama from llama_index.llms (unknown location) - installing dependencies does not solve the problem Python 无法从 llama_index.llms 模块中导入名为 Ollama 的类或函数 问题背景: I want to learn LL…

【postgreessql 】统计库中的所有表数量

在PostgreSQL中,你可以使用SQL查询来统计数据库中的所有表数量。这通常涉及到查询系统目录表,特别是 pg_catalog.pg_tables 表,它存储了关于数据库中所有表的信息。 SELECT COUNT(*) FROM information_schema.tables WHERE table_schema IN …

mysql逗号分割字符串“1,2,3”实现in查询

数据示例 前台单值参数实现in查询 主要函数FIND_IN_SET 该函数的作用是查询字段(strlist) 中是否包含(str)的结果,返回结果为 null或记录 select id,recommend_position_id from t_stk_task where FIND_IN_SET(359919,recommend_position_id)查询效果 前台集…

【软件测试】性能测试 | 概念 | 常见术语 | 性能指标 | 分类 | 流程

性能测试 文章目录 性能测试一、什么是性能测试1.生活中遇到的软件的性能问题2.性能测试定义3.性能测试和功能测试有什么区别4.什么样的表现属于软件性能好、什么样的表现不好5.影响一个软件性能因素有哪些 二、为什么进行性能测试三、性能测试的常见术语以及性能测试的衡量指标…

C++部分复习笔记下

7. C11 范围for 使用格式 vector<int> v { 1,2,3,4,5 }; for (auto e : v) {cout << e << " "; } cout << endl;底层原理&#xff0c;使用迭代器 vector<int> v { 1,2,3,4,5 }; auto it v.begin(); while (it ! v.end()) {cout…

如何在TechNow招聘顶尖AI工程师

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Spring Boot 高级配置:如何轻松定义和读取自定义配置

目录 1. 环境准备 2. 读取配置数据 2.1 使用 Value注解 2.2 Environment对象 2.3.2.3 自定义对象 这篇博客我们将深入探讨如何在Spring Boot应用中有效地定义和读取自定义配置。掌握这一技巧对于任何希望优化和维护其应用配置的开发者来说都是至关重要的。我们将从基础开始…

企业消费采购成本和员工体验如何实现“鱼和熊掌“的兼得?

有企业说企业消费采购成本和员工体验的关系好比是“鱼和熊掌”&#xff0c;无法兼得&#xff1f; 要想控制好成本就一定要加强管控&#xff0c;但是加强管控以后&#xff0c;就会很难让员工获得满意的体验度。如果不加以管控&#xff0c;员工自由度增加了&#xff0c;往往就很难…

动态住宅代理IP的3个优点

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

Jenkins教程-13-参数化任务构建

上一小节我们学习了发送html邮件测试报告的方法&#xff0c;本小节我们讲解一下Jenkins参数化任务构建的方法。 很多时候我们需要根据不同的条件去执行构建&#xff0c;如自动化测试中执行test、stg、prod环境的构建&#xff0c;Jenkins是支持参数化构建的。 以下是Jenkins官…

【C语言】手撕结构体内存对齐

©作者:末央&#xff06; ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨&#xff0c;书写未来之大梦 目录 结构体对齐规则结构体大小计算 - 三步曲 结构体对齐规则 怎么计算结构体的内存大小。这就涉及到结构体内存对齐的问题。 结构体的第⼀个成员对⻬到…

【C++】多态详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 一、多态概念 二、多态的定义及实现 1. 多态的构成条件 2. 虚函数 2.1 什么是虚函数 2.2 虚函数的重写 2.3 虚函数重写的两个…

PyPDF2拆分PDF文件为单个页面

本文目录 前言一、拆分成为单页1、代码解析2、处理效果图3、完整代码二、其它知识1、enumerate是什么① 语法② 功能③ 示例④ 更改起始索引前言 感觉之前写的不是很满意,为了充分满足付费用户的权益,所以打算把PyPDF2的各种类和用法都重新写一下,以便满足所有订阅用户的各…

transformer模型学习路线_transformer训练用的模型

Transformer学习路线 完全不懂transformer&#xff0c;最近小白来入门一下&#xff0c;下面就是本菜鸟学习路线。Transformer和CNN是两个分支&#xff01;&#xff01;因此要分开学习 Transformer是一个Seq2seq模型&#xff0c;而Seq2seq模型用到了self-attention机制&#xf…

三分钟看懂SMD封装与COB封装的差异

全彩LED显示屏领域中&#xff0c;COB封装于SMD封装是比较常见的两种封装方式&#xff0c;SMD封装产品主要有常规小间距以及室内、户外型产品&#xff0c;COB封装产品主要集中在小间距以及微间距系列产品中&#xff0c;今天跟随COB显示屏厂家中品瑞一起快速看懂SMD封装与COB封装…

使用高斯混合模型识别餐厅热点

使用 GMM 识别加拿大多伦多的直观餐厅集群&#xff08;附 Python 代码&#xff09; 聚类算法&#xff08;例如 GMM&#xff09;是一种有用的工具&#xff0c;可帮助识别数据中的模式。它们使我们能够识别数据集中的子组&#xff0c;从而提高你的理解或增强预测模型。在本文中&a…

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础&#xff0c;在学习DDR3之前&#xff0c;我们先来学习一下SDRAM的相关知识。 1 SDRAM …

同样的APP为何在Android 8以后网络感觉变卡?

前言 在无线网络技术不断发展的今天&#xff0c;Wi-Fi已经成为了我们日常生活中不可或缺的一部分。无论是家庭娱乐、办公还是在线游戏&#xff0c;Wi-Fi都在提供着便捷的互联网接入服务。然而&#xff0c;在安卓8.1后&#xff0c;为了进一步延长安卓设备的待机时间。原生安卓(A…

推荐三款常用接口测试工具!

接口测试是软件开发中至关重要的一环&#xff0c;通过对应用程序接口进行测试&#xff0c;可以验证其功能、性能和稳定性。随着互联网和移动应用的快速发展&#xff0c;接口测试变得越来越重要。为了提高测试效率和质量&#xff0c;开发人员和测试人员需要使用专业的接口测试工…

【SCAU操作系统】期末复习简答及计算题例题解析

目录 一、写出下列英文缩写词在计算机系统中的英文或中文全名。 二、进程状态/调度/周转问题 &#xff08;1&#xff09;进程状态 &#xff08;2&#xff09;进程状态转换 &#xff08;3&#xff09;进程调度 &#xff08;4&#xff09;最短进程优先调度算法 三、逻辑地…