无脑006——mmrotate框架下复现RTMDet-R

news2024/9/20 14:49:49

必须用mmrotate才有hrsc的程序

1 安装环境:

Linux
RTX 3090
nvcc --version cuda 11.3

pytorch 1.11.0

conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch

测试pytorch是否安装成功:

>>> torch.__version__
'1.11.0'
>>> torch.cuda.get_device_name()
'GeForce RTX 3090'

然后利用mmlab 的引擎自动安装:

pip install -U openmim
mim install "mmengine==0.6.0"
mim install "mmcv==2.0.0rc4"
mim install "mmdet==3.0.0rc6"
因为我们要修改代码,所以不使用下边这句安装mmrotate
#mim install "mmrotate==1.0.0rc1"

要下载git仓库来安装:

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.

验证安装是否正确

为了验证MMRotate是否正确地被安装到了您的环境中,我们提供了一些demo以供测试。

第一步: 为了进行测试的验证,我们需要下载config文件与checkpoint文件。

mim download mmrotate --config oriented-rcnn-le90_r50_fpn_1x_dota --dest .

下载过程可能会依据您的网络状况花费数秒或者更多的时间。当下载完成之后,您可以在您的当前目录下找到 oriented-rcnn-le90_r50_fpn_1x_dota.py 和 oriented_rcnn_r50_fpn_1x_dota_le90-6d2b2ce0.pth 两个文件。

第二步: 使用推理demo完成验证

直接在命令行中运行以下代码即可:

python demo/image_demo.py demo/demo.jpg oriented-rcnn-le90_r50_fpn_1x_dota.py oriented_rcnn_r50_fpn_1x_dota_le90-6d2b2ce0.pth --out-file result.jpg

您将会在您的当前文件夹下看到一张 result.jpg 为文件名的图片,在该图片中完成了对于小轿车和公交车等物体的旋转锚定框的绘制。

在这里插入图片描述
至此,mmrotate已经成功安装完成。

2 测试hrsc2016数据集mAP

把HRSC2016放到

mmrotate-1.x/data/hrsc/FullDataSet
mmrotate-1.x/data/hrsc/ImageSets
mmrotate-1.x/data/hrsc/Test
mmrotate-1.x/data/hrsc/Train

先去网上下载模型,他论文中显示效果最好的是
rotated_rtmdet_tiny-9x-hrsc-9f2e3ca6.pth
我们下载好之后放到mmrotate-1.x的文件夹中
然后测试:

 python tools/test.py configs/rotated_rtmdet/rotated_rtmdet_tiny-9x-hrsc.py rotated_rtmdet_tiny-9x-hrsc-9f2e3ca6.pth --work-dir work_dir/

最后输出:

05/05 13:01:03 - mmengine - INFO - 
---------------iou_thr: 0.5---------------
05/05 13:01:05 - mmengine - INFO - 
+-------+------+------+--------+-------+
| class | gts  | dets | recall | ap    |
+-------+------+------+--------+-------+
| ship  | 1228 | 1913 | 0.980  | 0.906 |
+-------+------+------+--------+-------+
| mAP   |      |      |        | 0.906 |
+-------+------+------+--------+-------+
05/05 13:01:05 - mmengine - INFO - 
---------------iou_thr: 0.5---------------
05/05 13:01:07 - mmengine - INFO - 
+-------+------+------+--------+-------+
| class | gts  | dets | recall | ap    |
+-------+------+------+--------+-------+
| ship  | 1228 | 1913 | 0.980  | 0.971 |
+-------+------+------+--------+-------+
| mAP   |      |      |        | 0.971 |
+-------+------+------+--------+-------+
05/05 13:01:07 - mmengine - INFO - Epoch(test) [453/453]  dota_ap07/mAP: 0.9055  dota_ap07/AP50: 0.9060  dota_ap12/mAP: 0.9705  dota_ap12/AP50: 0.9710

3. 训练Hrsc2016数据集

python tools/train.py configs/rotated_rtmdet/rotated_rtmdet_tiny-9x-hrsc.py --work-dir work_dir/

我的 rtx 3090 大概需要30mins

05/05 13:55:53 - mmengine - INFO - 
+-------+------+------+--------+-------+
| class | gts  | dets | recall | ap    |
+-------+------+------+--------+-------+
| ship  | 1228 | 2374 | 0.979  | 0.902 |
+-------+------+------+--------+-------+
| mAP   |      |      |        | 0.902 |
+-------+------+------+--------+-------+
05/05 13:55:53 - mmengine - INFO - 
---------------iou_thr: 0.5---------------
05/05 13:55:54 - mmengine - INFO - 
+-------+------+------+--------+-------+
| class | gts  | dets | recall | ap    |
+-------+------+------+--------+-------+
| ship  | 1228 | 2374 | 0.979  | 0.964 |
+-------+------+------+--------+-------+
| mAP   |      |      |        | 0.964 |
+-------+------+------+--------+-------+
05/05 13:55:54 - mmengine - INFO - Epoch(val) [36][453/453]  dota_ap07/mAP: 0.9020  dota_ap07/AP50: 0.9020  dota_ap12/mAP: 0.9641  dota_ap12/AP50: 0.9640

并没有达到他的效果
我看它提示了训练了9x12epoch,我训练的是3x12epoch
我把 base_lr 改成 0.0025shishi

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

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

相关文章

深入浅出PyTorch数据读取机制

熟悉深度学习的小伙伴一定都知道:深度学习模型训练主要由数据、模型、损失函数、优化器以及迭代训练五个模块组成。如下图所示,Pytorch数据读取机制则是数据模块中的主要分支。 Pytorch数据读取是通过​​Dataset​​​​​Dataloader​​的方式完成。其…

SOME/IP中间件通信流程

本文根据文章《CAPL如何实现SOME/IP协议通信:SomeIP_IL.dll函数篇(超两万字详解)》内容,抽取总结出SOME/IP通信流程,正不正确的另说,目的是为了加深对SOME/IP中间件的理解。 首先,不管是消费方consumer,还是提供方provider,都有自己的someip中间件。本质上,它是一个…

vue3 cesium datav 可视化大屏

目录 0. 预览效果 1. 代码库包 2. 技术点 3. 一些注意事项(配置参数) 4. 相关代码详情 0. 预览效果 包含的功能: ① 地球按照一定速度自转 ② 修改加载的geojson面样式 ③ 添加 文字 标注! 1. 代码库包 直接采用vue-cli5 创建…

MySql从入门到精通

MySql介绍 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 什么是数据库 数据库(Database)是按照数据结构来组织、存储…

oracle 闪回恢复

oracle 闪回恢复 闪回恢复区主要通过3个初始化参数来设置和管理: db_recovery_file_dest:指定闪回恢复区的位置 db_recovery_file_dest_size:指定闪回恢复区的可用空间大小 db_flashback_retention_target:指定数据库可以回退的时…

年近30 ,无情被辞,想给划水的兄弟提个醒

前几天,一个认识了好几年在大厂工作的程序员朋友,年近30了,却被大厂以“人员优化”的名义无情被辞,据他说,有一个月散伙饭都吃了好几顿…… 在很多企业,都有KPI考核,然后在此基础上还会弄个“末…

讲的太好了!!!————————Idea中的VM Options、Program Arguments、Environment Variable全解析

参数使用方式示例代码获取方式VM Options必须以 -D 、 -X 、 -XX 开头,每个参数用空格隔开 ,使用最多的就是 -Dkeyvalue-Dvm.keyVmKey -Dvm.key2VmKey2String key System.getProperty(“vm.key”); Program Arguments为我们传入main方法的字符串数组arg…

10-03 单元化架构设计

设计原则 透明 对开发者透明 在做实现时,不依赖于单元划分和部署对组件透明 在组件运行时,不感知其承载单元对数据透明 数据库并不知道为哪个单元提供服务 业务可分片 系统业务复杂度足够高系统可以按照某一维度进行切分系统数据必须可以被区分 业务…

【网络】交换机基本原理与配置

目录 🍁交换机工作原理 🍁交换机接口的双工模式 🍁交换机命令行模式 🍁交换机常见命令 🧧帮助命令 🧧常用命令介绍 🍁交换机的基本配置 🧧配置接口的双工模式及速率 🦐博…

knife4j生产环境资源屏蔽

问题描述 knife4j是目前比较主流的自动API文档生成工具,在生产环境使用的过程中,我们一般会屏蔽或者去除Swagger的文档口径,防止接口信息泄露,保证系统安全。 但是最近在开发过程中使用knife4j-spring-boot-starter 3.0.2过程中&…

dolphinscheduler使用impala shell执行sql

目录 一、背景 二、方法 1.impala shell -f 文件名 2.impala shell -q sql 一、背景 因为dolphinscheduler工具sql组件不支持impala数据源,只能折衷方法通过shell来执行impala sql。 二、方法 1.impala shell -f 文件名 操作步骤: 1).【资源中心】…

受邀参加【第七届】中国客户服务节

在AI浪潮的推动下,客户服务“智能化”是企业高质量发展的重要途径之一,目前人工智能、大数据、云计算等技术已广泛应用于全行业的客户服务场景中,一个全面、完善、稳定的智能通讯服务平台可助力实现企业智能化应用转型和升级。 讯鸿网络作为国…

嘉立创EDA原理图封装画错了怎么办

摘要:本文以贴片电阻封装由1206修改为0805为例,介绍一下封装修改的一种方法。 1.问题描述 设计原理图的时候,误将封装设计成为1206了,现在想把它改为0805封装。 2.修改封装的步骤 首先在原理图中,修改对应的电阻器件…

Flutter 3.10 适配之单例 Window 弃用,一起来了解 View.of 和 PlatformDispatcher

Flutter 3.10 发布之后,大家可能注意到,在它的 release note 里提了一句: Window singleton 相关将被弃用,并且这个改动是为了支持未来多窗口的相关实现。 所以这是一个为了支持多窗口的相关改进,多窗口更多是在 PC 场…

统计学习方法:序贯概率比检验SPRT

Sequential Probability Ratio Test 应用:制造过程中的质量控制和医学试验中的异常检测 1.theory/principal 区别(vs固定样本检验):在固定样本检验中,一定数量的观察结果被用来从两个或多个备选方案中选择一个假设。而SPRT则是一次检查一个…

AI“应用商店”来了!OpenAI首批70个ChatGPT Plugin最全梳理

OpenAI放出大招,本周将向所有ChatGPT Plus用户开放联网功能和众多插件本周将向所有ChatGPT Plus用户开放联网功能和众多插件,允许ChatGPT访问互联网并使用70个第三方插件。 本批第三方插件能够全方位覆盖衣食住行、社交、工作以及学习等日常所需&#x…

Electron自定义窗口

Electron标题栏隐藏和自定义 Electron应用自定义标题栏样式 标题栏样式允许隐藏浏览器窗口的大部分色彩,同时保持系统原生窗口控件完整无损,并可以在 BrowserWindow 的构造器中使用 titleBarStyle 选项来配置。 应用 hidden 标题栏样式的结果是隐藏标…

无线充+台灯专用PD诱骗芯片LDR6328S

近几年,日常生活中到处可以看到消费者使用支持Type-c接口的电子产品,如手机,笔记本,筋膜枪,蓝牙音箱等等。例如,像筋膜枪,蓝牙音箱,无人机,小风扇。 无线充台灯方案&…

librosa语音信号处理

librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能。学会librosa后再也不用python去实现那些复杂的算法了,只需要一句语句就能轻松实现。 先总…

数字化时代,初创公司如何建设业财一体化

业财一体的关键是构建“业务活动跟财务活动之间的线上化链接”,财务可以通过线上支撑业务,业务活动数据可以通过线上高时效触达财务;从业务数据到财务数据,除了需要运营系统的支撑还需要会计引擎的实现,会计引擎将业务…