使用RTMDet模型训练DOTA_v1.0教程

news2024/12/25 12:21:30

1. 环境配置

需要注意,如果之前安装过mmrotate,那么这个mmyolo请单独创建一个虚拟环境,因为mmyolo和mmrotate的最新版本不兼容。

1.创建环境

conda create -n mmyolo python==3.8

2.安装依赖

# 进入mmyolo环境中
conda activate mmyolo
# 安装依赖
pip install -U openmim
mim install "mmengine>=0.6.0"
mim install "mmcv>=2.0.0rc4,<2.1.0"
mim install "mmdet>=3.0.0,<4.0.0"

3.安装mmyolo

git clone https://github.com/open-mmlab/mmyolo.git
cd mmyolo
# Install albumentations
mim install -r requirements/albu.txt
# Install MMYOLO
mim install -v -e .
# "-v" 指详细说明,或更多的输出
# "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。

4.安装mmrotate
因为需要训练DOTA数据集做旋转目标检测,所以需要安装mmrotate:

pip install mmrotate==1.0.0rc1 .

建议安装1.x版本,否则会报错,具体请参考《KeyError: ‘mmrotate.RotLocalVisualizer is not in the visualizer registry.》

2. 数据集准备

  1. 划分好的DOTA1.0数据集下载,文件名是split_ss_dota:

百度网盘一会上传…

  1. 然后将split_ss_data文件夹,放到 mmyolo/data/ 文件夹下面,当然也可以放到其他地方。
    split_ss_data文件夹目录结构为:
    在这里插入图片描述
  2. 如果想自己处理数据集,可以参考官方教程:Data Preparation for Rotation Detection

3. 模型训练

  1. 下载配置文件:去官网查看你需要训练的RTM模型,并且下载配置文件,注意这里应该找旋转目标检测
    在这里插入图片描述
    向右拖动滑条,下载config文件
    在这里插入图片描述
    然后将config文件,放到mmyolo/configs/rtmdet/rotated文件夹下,当然本来也有【手动狗头】:
    在这里插入图片描述

  2. 修改配置文件
    rtmdet-r_l syncbn_fast_2xb4-36e_dota.py 为例,修改数据集路径,这里最好是填绝对路径,其他的不用改。
    在这里插入图片描述

  3. 开始训练
    进入到mmyolo文件夹,使用以下命令训练

python  tools/train.py [config配置文件的绝对路径] 

以 rtmdet-r_l syncbn_fast_2xb4-36e_dota.py 为例,训练命令为:

python tools/train.py /home/huzhou/Myprojects/mmyolo/configs/rtndet/rotated/rtmdet-r_l syncbn_fast_2xb4-36e_dota.py

训练过程截图:
在这里插入图片描述

参考链接

https://mmyolo.readthedocs.io/zh_CN/latest/get_started/installation.html
https://github.com/open-mmlab/mmyolo/tree/main

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

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

相关文章

Oracle两个日期都存在返回最小/最大的,如果只存在一个就返回存在的日期

Oracle函数 Oracle两个字段日期都存在返回最小的&#xff0c;如果只存在一个就返回存在的日期. 函数说明LEAST(value1, value2, …)最小值GREATEST(value1, value2, …)最大值COALESCE(value1, value2, …)返回第一个不是空值的参数

计算机网络与技术——物理层

&#x1f60a;计算机网络与技术——物理层 &#x1f47b;物理层的基本概念&#x1f47b;数据通信基础知识&#x1f6a2;数据通信系统的模型&#x1f6a2;信道的基本概念&#x1f6a2;信道的极限容量 &#x1f47b;物理层下面的传输媒体&#x1f50a;导引型传输媒体&#x1f50a…

006-第一代光电小工具(二)

第一代光电小工具(二) 文章目录 第一代光电小工具(二)项目介绍串口QCustomPlot 部分开启OpenGl更新曲线 总结一下 关键字&#xff1a; Qt、 Qml、 QCustomPlot、 串口、 QSerialPort 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;…

Ubuntu系统下载及安装教程

史上最全最新Ubuntu安装教程&#xff08;图文&#xff09; - 知乎 (说明&#xff1a;本教程介绍的是安装DeskTop版的系统) 1.官网下载镜像 官方网址: https://ubuntu.com/#download进入官网后会有最新版本的镜像下载地址&#xff0c;如果需要下载最新版本&#xff0c;直接点…

2023-09-18 LeetCode每日一题(打家劫舍 III)

2023-09-18每日一题 一、题目编号 337. 打家劫舍 III二、题目链接 点击跳转到题目位置 三、题目描述 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口&#xff0c;我们称之为 root 。 除了 root 之外&#xff0c;每栋房子有且只有一个“父“房子与之相连。一番侦…

【C++】构造函数初始化列表 ③ ( 构造函数 的 初始化列表 中 为 const 成员变量初始化 )

文章目录 一、构造函数 的 初始化列表 中 为 const 成员变量初始化1、初始化 const 常量成员2、错误代码示例 - 没有初始化常量成员3、正确代码示例 - 在初始化列表中初始化常量成员4、完整代码示例 构造函数初始化列表 总结 : 初始化列表 可以 为 类的 成员变量 提供初始值 ;…

TCP IP网络编程(六) 基于UDP的服务器端、客户端

文章目录 一、理解UDP1.UDP套接字的特点2.UDP内部工作原理3.UDP的高效使用 二、实现基于UDP的服务器端、客户端1.UDP中的服务端和客户端没有连接2.UDP服务器端和客户端均只需要一个套接字3.基于UDP的数据I/O函数4.基于UDP的回声服务器端、客户端5.UDP客户端套接字的地址分配 三…

【Java】java: 无效的标记: -parameters

问题描述 maven項目&#xff0c;原来使用jdk8的版本&#xff0c;现在改成jdk7的版本&#xff0c;结果报错&#xff1a; java: 无效的标记: -parameters 原因分析 解决方法 删掉下图所示的-parameters参数 参考文章 https://www.cnblogs.com/lovezzb/p/10072854.html

英伟达 nvidia 官方code llama在线使用

新一代编程语言模型Code Llama面世&#xff1a;重新定义编程的未来 随着人工智能和机器学习技术的迅速发展&#xff0c;我们现在迎来了一款革命性的大型编程语言模型——Code Llama。该模型是基于Llama 2研发的&#xff0c;为开放模型中的佼佼者&#xff0c;其性能达到了行业领…

零基础学前端(四)1. 重点讲解 CSS:盒子模型、样式选择器

1. 该篇适用于从零基础学习前端的小白 2. 初学者不懂代码得含义也要坚持模仿逐行敲代码&#xff0c;以身体感悟带动头脑去理解新知识 3. 初学者切忌&#xff0c;不要眼花缭乱&#xff0c;不要四处找其它文档&#xff0c;要坚定一个教授者的方式&#xff0c;将其学通透&#xff…

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境Scikit-learnt 模块实现1. 数据预处理2. 客流预测1&#xff09;创建并保存模型2&#xff09;损失函数3&#xff09;测试集测试4&#xff09;自定义特征并预测 3. 百度地图API调用1&#xff09;申请密…

许少辉博士后挂站联谊《乡村振兴战略下传统村落文化旅游设计》河北站——2023学生开学季辉少许

许少辉博士后挂站联谊《乡村振兴战略下传统村落文化旅游设计》河北站——2023学生开学季辉少许

【大规模 MIMO 检测】基于ADMM的大型MU-MIMO无穷大范数检测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Winform中DataGridView中实现一个单元格增加多个操作按钮

1.表格名称&#xff1a;dgv&#xff1b;操作列名称&#xff1a;ColOperate 2.相关代码如下&#xff1a; private void Load(object sender, EventArgs e){//初始化调用 前提是表格先填充好数据//循环遍历添加每行的控件for (int i 0;i < dgv.Rows.Count; i){MulAutoBtnEdi…

【最新!企知道AES加密分析】使用Python实现完整解密算法

文章目录 1. 写在前面2. 过debugger3. 抓包分析4. 断点分析5. Python实现解密算法 1. 写在前面 最近华为各方面传递出来的消息无不体现出华为科技实力与技术处于遥遥领先的地位。所以出于好奇想要了解一下咱们国内这些互联网科技企业有哪些技术专利&#xff0c;于是就有了这篇文…

怎么防止360安全卫士修改默认浏览器?

默认的浏览器 原先选项是360极速浏览器&#xff08;如果有安装的话&#xff09;&#xff0c;我这里改成了Chrome。 先解锁 才能修改。

相伴六年,Smartbi与荣耀共建数据化运营新生态

“从 2018 年到 2023 年&#xff0c;整整六年的时间里面&#xff0c;我们从最开始使用Smartbi功能里最朴素的真自助能力&#xff0c;到现在做了BI、AI融合&#xff0c;过去六年业务的发展离不开Smartbi的大力支持&#xff0c;Smartbi与荣耀自有平台能力打通融合&#xff0c;相辅…

SpringBoot2.0(mybatis-plus常见的增删改查和分页)

目录 一&#xff0c;mybatis-plus常见注解二&#xff0c;创建一个工具类和启动类三&#xff0c;创建实体类四&#xff0c;创建mapper接口五&#xff0c;创建service接口和impl类六&#xff0c;创建配置类七&#xff0c;创建controller八&#xff0c;使用测试工具测试增删改查和…

Linux编译安装dig9.18

Linux编译安装dig9.18 背景查看dig版本 编译安装dig安装依赖包下载dig压缩包解压编译安装创建软链接 结果验证 背景 Centos7的dig版本是9.11&#xff0c;体验9.18新版本的功能特性。 例如&#xff1a; 使用yaml格式输出。 # 使用yaml格式输出 dig yaml google.com查看dig版本…

3、ARM寄存器组织

ARM寄存器组织 1、寄存器 概念 寄存器是处理器内部的存储器&#xff0c;没有地址 作用 一般用于暂时存放参与运算的数据和运算的结果 分类 包括通用寄存器、专用寄存器、控制寄存器 2、ARM寄存器 注&#xff1a; 在某个特定的模式下&#xff0c;只能使用当前模式下的…