mmrotate调研

news2024/10/6 12:28:04

mmrotate调研

MMrotate是什么?

​ 在真实场景中,我们见到的图像不都是方方正正的,比如扫描的图书和遥感图像,需要检测的目标通常是有一定旋转角度的。这时候就需要用到旋转目标检测方法,对目标进行精确的定位,方便后面的识别、分析等高级任务。

​ 所谓旋转目标检测(Rotated Object Detection),又称为有向目标检测(Oriented Object Detection),试图在检测出目标位置的同时得到目标的方向信息。

​ 它通过重新定义目标表示形式,以及增加回归自由度数量的操作,实现旋转矩形、四边形甚至任意形状的目标检测。旋转目标检测在人脸识别、场景文字、遥感影像、自动驾驶、医学图像、机器人抓取等领域都有广泛应用。

​ 遗憾的是,**现有的开源旋转目标检测代码库,往往支持的方法较少,角度定义法各不相同,并且不同代码库所依赖的关键算子、深度学习算法框架不一致。**这给代码复现、借鉴、公平对比都带来了很大的困难。

​ 为了解决这些问题,OpenMMLab 正式开源了 MMRotate!这是一个专注于旋转目标检测的工具箱,它提供了高效、强大的基准模型!

MMrotate的三大特点

MMrotate是首个统一的旋转目标检测工具箱

  • 为当下流行的基于深度学习的旋转目标检测算法提供了统一的训练、推理、评估的算法框架
  • 简洁的用户接口高效、强大的基准模型,部分实现精度超出官方版本
  • 延续了 OpenMMLab 系列的模块化风格,继承了高度灵活 config 功能

MMrotate支持的模型

目前支持的15种旋转目标检测算法如下:

  • Rotated RetinaNet-OBB/HBB (ICCV’2017)
  • Rotated FasterRCNN-OBB (TPAMI’2017)
  • Rotated RepPoints-OBB (ICCV’2019)
  • Rotated FCOS (ICCV’2019)
  • RoI Transformer (CVPR’2019)
  • Gliding Vertex (TPAMI’2020)
  • Rotated ATSS-OBB (CVPR’2020)
  • CSL (ECCV’2020)
  • R3Det (AAAI’2021)
  • S2A-Net (TGRS’2021)
  • ReDet (CVPR’2021)
  • Beyond Bounding-Box (CVPR’2021)
  • Oriented R-CNN (ICCV’2021)
  • GWD (ICML’2021)
  • KLD (NeurIPS’2021)
  • SASM (AAAI’2022)
  • Oriented RepPoints (CVPR’2022)
  • KFIoU (arXiv)
  • G-Rep (stay tuned)

在 MMRotate 复现的大量旋转目标检测算法中,部分模型在 DOTA v1.0 数据集上甚至超越了官方公布的精度

img

MMrotate支持的角度定义法

  • OpenCV
  • 长边135°
  • 长边90°

支持的遥感数据集

DOTA

DOTA是用于航空图像中目标检测的大规模数据集。它可以用于开发和评估航空影像中的物体检测。对于DOTA数据集,它包含来自不同传感器和平台的2806个航拍图像。每个图像的大小在大约800×800到4000×4000像素的范围内,并且包含各种比例,方向和形状的对象。这些DOTA图像由航空影像解释专家分类为15个常见对象类别。完全注释的DOTA图像包含188、282个实例,每个实例都由任意(8自由度)四边形标记。
在这里插入图片描述

DOTA
DOTA: A Large-scale Dataset for Object Detection in Aerial Images

SSDD

在这里插入图片描述

在数据集SSDD中,一共有1160个图像和2456个舰船,平均每个图像有2.12个舰船,数据集后续会继续扩充。相比于具有20类目标的PASCAL VOC数据集,SSDD虽然图片少,但是类别只有舰船这一种,因此它足以训练检测模型。
下载链接:https://pan.baidu.com/s/1sVs63jB_aM-RbcHEaWQgTg

HRSID

在这里插入图片描述

该数据集是电子科技大学的苏浩在2020年1月发布数据集,HRSID是高分辨率sar图像中用于船舶检测、语义分割和实例分割任务的数据集。该数据集共包含5604张高分辨率SAR图像和16951个ship实例。ISSID数据集借鉴了Microsoft Common Objects in Context (COCO)数据集的构建过程,包括不同分辨率的SAR图像、极化、海况、海域和沿海港口。该数据集是研究人员评估其方法的基准。对于HRSID, SAR图像的分辨率分别为:0.5m, 1 m, 3 m。
下载链接:

HRSID

参考文档

遥感目标检测数据集汇总

MMrotate运行框架

同 OpenMMLab 其他算法库一样,使用统一框架和模块化设计实现了各个算法。一方面可以尽量实现代码复用,另一方面,方便基于此框架实现新的算法

以下是 MMRotate 的大致框架:

img

MMRotate 主要由 4 个部分组成,datasets、models、core 和 apis 。

  • datasets 用于数据集加载和预处理,其中包含训练所需的数据集,旋转框数据增广的 pipelines,和加载数据时的 samplers 。
  • models 是最关键的部分,包括旋转检测模型和损失函数。
  • 在 apis 中,我们为模型训练、测试和推理提供一键启动的接口。
  • core 中实现了用于模型训练的评估工具定制的 hooks

另外,得益于 OpenMMLab 强大的且高度灵活的 config 模式和注册器机制, MMRotate 可以做到不改动代码只编辑配置文件便能自由切换不同的旋转框定义法。

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

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

相关文章

第三方库介绍——mosquitto

文章目录 概述程序(指令)说明安装服务端与客户端服务端指令配置配置文件:mosquitto.conf认证配置:pwfile权限配置:aclfile启动服务器,选择配置文件:mosquitto.conf 测试发布指令:订阅…

基于立创EDA的原理图设计进阶(实战开发一个小项目)

目录 学习目标 原理图设计进阶——空气质量检测仪 项目需求 1、功能性需求分析 2、非功能性需求 硬件框架图 元器件选型 MCU sensor LCD WIFI KEY PWOER 原理图设计 元件PCB封装设计-DIP,SOP 理论知识 直插式 贴片式 学习目标 1、熟悉电子产品设…

网络编程详细讲解

网络编程 网络通信 网络 ip 地址 1.概念:用于唯一标识网络中的每台计算机/主机 2.查看ip地址:ipconfig 3.ip地址的表示形式:点分十进制XX.XX.XX.XX 4.每一个十进制数的范围:0~255 5.ip地址的组成网络地址主机地址&#xff0…

团体程序设计天梯赛-练习集L2篇①

🚀欢迎来到本文🚀 🍉个人简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的普通人。 🏀个人主页:陈童学哦CSDN 💡所属专栏:PTA 🎁希望各…

Python3学习之列表

目录 1.访问列表中的值 2.更新列表 3.删除列表元素 4.Python列表脚本操作符 5.Python列表截取与拼接 6.嵌套列表 7.列表比较 8.Python列表函数&方法 序列是 Python 中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索…

Go语言doc

1、Go语言doc go doc 命令可以打印附于 Go 语言程序实体上的文档,我们可以通过把程序实体的标识符作为该命令的参数来 达到查看其文档的目的。 所谓Go语言的程序实体,是指变量、常量、函数、结构体以及接口,而程序实体的标识符即是代表它们…

JDBC 和数据库连接

JDBC 和数据库连接 基本介绍 JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题。Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作。JDBC的基本原理图[重要&#xff…

CSDN 个性化推荐系统的设计和演进

个性化推荐项目 个性化推荐的设计和演进项目概览项目梳理依赖管理实现代码的重构和改进持续演化 个性化推荐的设计和演进 CSDN 的个性化推荐系统,是从既有的推荐项目中剥离出来的一个子项目,这个项目随后移交到了我们AI组。在近一年的时间内&#xff0c…

机器学习实战|第5周|第3章:无监督学习与数据预处理|3.3降维|16:00~17:55

目录 一、降维的动机 (1)数据压缩 (2)数据可视化 (3)降维的弊端 二、什么是维度的诅咒? 三、数据集被降维后能否逆转 四、降维的主要方法 (1)投影 (2)流形学习 五、PCA PCA可以用来给高度非线性数据集降维吗? 假设在一个1000维数据集上执行P…

最优化理论中的惩罚函数法:概念、推导和应用

目录 1. 引言 2. 惩罚函数法的概念 2.1 惩罚函数法的基本思想 2.2 惩罚函数的定义 2.2.1 符号性质 2.2.2 惩罚性质 2.2.3 连续性质 2.3 惩罚函数法的推导 2.4 惩罚函数法的特点 2.4.1 灵活性 2.4.2 通用性 2.4.3 近似解 2.4.4 收敛性 3. 推导过程 3.1 问题建模 …

Redis实战案例6-缓存穿透及其解决案例

1. 缓存穿透 缓存穿透是指在缓存中查找一个不存在的值,由于缓存一般不会存储这种无效的数据,所以每次查询都会落到数据库上,导致数据库压力增大,严重时可能会导致数据库宕机。 解决方案: 方法一:缓存空对象…

【Python】异常处理 ② ( 捕获所有类型的异常 | 默认捕获所有类型异常 | 捕获 Exception 异常 )

文章目录 一、Python 默认捕获所有类型异常1、默认捕获所有类型异常 - 无法获取异常类型2、代码实例 - 默认捕获所有类型异常 二、Python 捕获所有类型异常 - 捕获 Exception 异常1、捕获 Exception 类型异常 - 可获取异常类型2、代码实例 - 捕获 Exception 异常 一、Python 默…

猴子都能听懂的 从 0 到 1 设计一个网络

标题开玩笑了哈,大家不要介意,就是说本文真的超级大白话! 话不多说,开始整活! 你很爱玩电脑游戏,你买了一台电脑,就一个人自己玩,也不需要和谁沟通,不需要与别人联机&am…

数据库判断分解的无损连接性

例题 关系模式R(ABCDE),F{A->C,C->D,B->C,DE->C,CE->A} 若分解成R1(AD)R2(AB)R3(BC)R4(CDE)R5(AE)判断是否具有无损连接性 画出如下表格如第一行:AD,那么在A,D的地方填入,i表…

C++ Primer 第9章顺序容器

9.1 顺序容器概述 确定使用哪种顺序容器 通常使用vector是最好的选择 9.2 容器库概述(本节所有容器均适用) 对容器可以保存的元素类型的限制 有些类没有提供默认构造函数,我们可以定义一个这种类型对象的容器,但我们在构造这种容器时不能只传递给它一个数目参数. 9.2.1 迭…

MySQL进阶SQL语句(二)

MySQL进阶SQL语句(二) 一、MySQL进阶SQL语句1.1 连接查询1.2 CREATE VIEW视图,可以被当作是虚拟表或存储查询1.3 UNION 联集1.4 CASE1.5 空值(NULL) 和 无值() 的区别1.6 正则表达式 二、存储过程2.1 存储过程定义2.2 存储过程的优点2.3 存储…

(秋招)闭环检测流程回顾

vins中的闭环检测和重定位 回环检测的关键就是如何有效检测出相机曾经经过同一个地方,这样可以避免较大的累积误差,使得当前帧和之前的某一帧迅速建立约束,形成新的较小的累积误差。由于回环检测提供了当前数据与所有历史数据的关联&#xf…

快速搭建node.js新项目和大事件后台项目

声明:参考https://zhuanlan.zhihu.com/p/464271490?utm_id0 参考:https://brucecai55520.gitee.io/bruceblog/notes/nodejs/ev_api_server.html#_1-4-%E5%88%9D%E5%A7%8B%E5%8C%96%E8%B7%AF%E7%94%B1%E7%9B%B8%E5%85%B3%E7%9A%84%E6%96%87%E4%BB%B6%E5…

Linux文件系统的缓冲区问题

目录 一.什么是缓冲区? 1.1实验案例1: 情况1:运行该程序 情况2:此时我将该程序运行的结果输出重定向到一个文本文件中: 二.为什么要有缓冲区? 于是引出了缓冲区的刷新策略: 三.缓冲区在哪…

【学习笔记】 科目一之计算题篇

【学习笔记】 科目一之计算题篇 三点估算PERT 三点估算期望:(悲观+4*最可能+乐观)/6三点估算标准差:(悲观-乐观)/6正态分布四个数:34.1%,13.65%,2.1%,0.15%决策树 分叉计算注意:成本越小越好投资回报:收益-投入投资回报率(ROI)=收益-投入/投入投资回收期 静态回…