MMrotate_dev 1.x训练自己的数据集

news2024/12/23 22:53:37

因为MMRotate dev 1.x 新增了PSC角度编码器以及RTMDet目标检测算法,而之前从官网下载的MMRotate是main分支,没有新增的东西,所以重新搞了一下,以此记录。

环境配置

1.创建虚拟环境 

注意:如果之前安装了MMRotate的其他版本,请重新创建一个虚拟环境,如果继续用原来的虚拟环境,在安装mmrotate dev 1.x的时候,会安装其他版本的mmcv和mmdet,导致原来的mmrotate环境不可用。

conda create --name mmrotate_dev1x python=3.8 -y
conda activate mmrotate_dev1x

 2.安装pytorch

 几个常用的pytorch版本如下:其他版本参考官网

# CUDA 11.3
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

# CUDA 11.1
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html

# CUDA 10.1
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

 3.安装mmcv mmdetecion:

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0rc2"
mim install 'mmdet>=3.0.0rc2'

 4.安装mmrotate dev 1.x

git clone https://github.com/open-mmlab/mmrotate.git -b dev-1.x
# "-b dev-1.x" means checkout to the `dev-1.x` branch.
cd mmrotate
pip install -v -e .
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without reinstallation.

5.验证安装

import mmrotate
print(mmrotate.__version__)
# Example output: 1.x

数据集设置

1.将数据集的标注格式转换成DOTA格式,也可以参考HRSC或者其他格式,这里只做参考:

DOTA数据标签介绍
标注方式:oriented bounding box  定向边界框
x1, y1, x2, y2, x3, y3, x4, y4, category, difficult
x1, y1, x2, y2, x3, y3, x4, y4, category, difficult
...
x1, y1, x2, y2, x3, y3, x4, y4:四边形的四个顶点的坐标 顶点按顺时针顺序排列,第一个起点为左上第一个点
category:实例类别
difficult:表示该实例是否难以检测(1表示困难,0表示不困难)

2. 修改配置文件

  • 复制data.py,改名为自己的数据集,修改如下:

  • 复制一个dota_rr.py文件,改名为自己的数据集名称,这里我以drone数据集为例:

  • 复制一个rotated_rtmdet_...dota.py 改名为....drone.py ,然后更改下面的地方,引用上面的drone_rr.py:

  • 复制dota.py ,改名drone.py,修改如下:

  • 在__init__.py 加上自己的数据集,和之前定义的数据集名称一致:

训练

python tools/train.py config文件

 参考:

《旋转框目标检测mmrotate v1.0.0rc1 之RTMDet训练DOTA(二)》

《使用mmrotate训练 Dronevehicle 数据集》 

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

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

相关文章

基于小程序的理发店预约系统

一、项目背景及简介 现在很多的地方都在使用计算机开发的各种管理系统来提高工作的效率,给人们带来很多的方便。计算机技术从很大的程度上解放了人们的双手,并扩大了人们的活动范围,是人们足不出户就可以通过电脑进行各种事情的管理。信息系…

pycharm安装jupyter,用德古拉主题,但是输入行全白了,看不清,怎么办?

问题描述 今天换了以下pycharm主题,但是jupyter界面输入代码行太白了,白到看不清楚这行的字,更不知道写的是什么,写到哪了,这还是挺烦人的,其他都挺正常的。 问题分析 目前来看有两个原因: 1、…

深化产教融合,知了汇智助力高校数字化人才培养

随着数字经济的不断深入和发展,数字人才短缺的问题逐渐凸显,根据相关报告,目前我国数字人才缺口在2500万到3000万左右,且缺口仍在不断扩大。为了满足数字经济的发展需求,如何培养出具备创新型、复合型、应用型能力的数…

C++学习笔记一(重载、类)

C 1、函数重载2、类2.1、类的方法和属性2.2、类的方法的定义2.3、构造器和析构器2.4、类的实例化2.5、基类与子类2.6、类的public、protected、private继承2.7、类的方法的重载2.8、子类方法的覆盖2.9、继承中的构造函数和析构函数 1、函数重载 函数重载大概可以理解为&#x…

再次理解Android账号管理体系

目录 ✅ 0. 需求 📂 1. 前言 🔱 2. 使用 2.1 账户体系前提 2.2 创建账户服务 2.3 操作账户-增删改查 💠 3. 源码流程 ✅ 0. 需求 试想,自己去实现一个账号管理体系,该如何做呢? ——————————…

竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称: 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 &…

2004-2020年中小企业板上市公司财务报表股票交易董事高管1200+变量数据及说明

2004-2020年中小企业板上市公司财务报表股票交易董事高管1200变量数据及说明 1、时间:2004-2020年 2、范围:中小企业板上市公司,具体名单参看下文链接内数据预览 3、指标:1200变量 变量说明、证券代码、证券代码-字符串、年份…

HTML基础标签 CSS选择器 JavaScript基础语法 WebAPI_ 页面设计 HTTP协议

第 1 题(简答题) 题目名称: 编写博客, 总结 HTML 中的常用标签用法 题目内容: 编写博客, 总结 HTML 中的常用标签用法 第 2 题(简答题) 题目名称: image 标签的 alt 和 title 属性有什么…

基于红黑树对map和set容器的封装

本章代码gitee仓库:map和set模拟实现、stl_map_set_tree源码 文章目录 🐱1. 红黑树的泛型🐈1.1 红黑树节点🐈1.2 红黑树迭代器🐈1.3 仿函数 🐯2. 对set的封装🦄3. 对map的封装 🐱1. …

android获取设备的IMEI号

在Android 8.0 (API级别26)和更高版本的平台上的 ,64位数字(表示为十六进制字符串),对于应用程序签名密钥、用户和设备的每个组合都是唯一的。ANDROID_ID的值由签名密钥和用户限定作用域。如果在设备上执行出厂重置或如果APK签名密钥更改,则该…

【校招VIP】前端操作系统之存储管理加密

考点介绍 加密算法有很多,如不可逆的摘要算法MD5、SHA(安全哈希算法),可逆的Base64编码,对称加密算法DES、AES,还有非对称加密算法DH、RSA等。那是不是说明我们可以使用任何一种加密算法就能保证网站的安全…

认养一头牛———众筹+合伙人商业模式解析

2016年成立以来,认养一头牛致力于打造数字化乳业第一品牌,只为一杯好牛奶。公司在创立三年内完成了10个亿销售目标,被业界称为新消费品牌黑马,一举闯入互联网新消费梯队的视线。未来三年,认养一头牛将着力打造全国最大…

【精品】将两个字符串进行加密和解密的Java工具类

原理 使用一个分隔符将两个字符串连接在一起,并对连接后的字符串进行加密。加密过程中,首先生成一个随机下标列表,然后根据随机下标打乱字符串的顺序,并使用Base64进行编码。解密过程中,根据之前生成的随机下标列表将…

Definition and properties of the Gamma function

See https://math.libretexts.org/Bookshelves/Analysis/Complex_Variables_with_Applications_(Orloff)/14%3A_Analytic_Continuation_and_the_Gamma_Function/14.02%3A_Definition_and_properties_of_the_Gamma_function 勒让德倍元公式(Legendre duplication fo…

无涯教程-JavaScript - N函数

描述 N函数返回一个转换为数字的值。 语法 N (value) 争论 Argument描述Required/OptionalValue 要转换的值或对值的引用。 N转换下表中列出的值。 Required 值 N的返回值一个数字那个数字日期,采用Microsoft Excel中可用的内置日期格式之一该日期的序列号 TRUE 1 FALSE…

微视网媒:新媒体时代的宣传与营销新范式

随着数字科技的快速发展,新媒体已经成为了现代社会中不可或缺的一部分。其中,微视网媒作为新兴的网络媒体形态,正在改变着传统的宣传和营销模式,为企业和个人提供了全新的推广平台。本文将对微视网媒的优势、应用场景以及案例进行…

免费开箱即用的微鳄任务管理系统

编者按:基于天翎低代码平台实现的微鳄365任务管理系统,包括有发起任务、重点关注、日程、项目管理等功能,支持私有化部署,免费开箱即用。任务管理系统是组织工作中不可或缺的工具,可以提高工作效率、促进协作、增强任务…

GTS 中testPeakPssOfAllApps fail 详解

0. 前言 GTS 在测试 case armeabi-v7a GtsMemoryHostTestCases 的时候出现下面异常,本文总结一下。 com.google.android.memory.gts.AllAppsMemoryHostTest#testPeakPssOfAllApps 1. error log 09-14 10:16:34 I/TestFailureListener: FailureListener.testFaile…

第十届IEEE电气工程与自动化国际学术论坛(IFEEA 2023)

第十届IEEE电气工程与自动化国际学术论坛(IFEEA 2023) 2023 10th International Forum on Electrical Engineering and Automation IFEEA论坛属一年一度的国际学术盛会。因其影响力及重要性,IFEEA论坛自创建筹办以来,便受到国内…

【React】面试题5题

1. 说说你对 dangerouslySetInnerHTML 的理解 dangerouslySetInnerHTML是React中的一个属性,用于将HTML代码作为字符串直接插入到组件中的DOM元素中。它可以用来动态地生成HTML内容,但同时也带来了一些潜在的安全风险。 使用dangerouslySetInnerHTML时…