MMRotate 详细使用教程

这篇教程详细介绍了如何使用MMRotate进行旋转目标检测。首先,通过创建和激活虚拟环境,安装PyTorch和MMRotate。接着,调整DOTA数据集格式,修改配置文件以适应类别数量和图片格式。然后,进行单卡或多卡训练,并保存训练结果。测试阶段,可以单卡或多卡运行,输出结果为pkl文件。最后,学习如何解析pkl文件查看检测结果,并了解如何保存和加载权重以进行连续训练。
摘要由CSDN通过智能技术生成

MMRotate 详细使用教程

做旋转目标检测,怎么可以不知道如何使用MMRotate呢!

github链接:

https://github.com/open-mmlab/mmrotate

1 安装

  1. 创建虚拟环境并激活
conda create -n mmrotate python=3.7 -y
conda activate mmrotate
  1. 安装 PyTorch 和 torchvision
conda install pytorch torchvision -c pytorch

注意:确保您的编译 CUDA 版本和运行时 CUDA 版本匹配。
可参考官方文档:https://pytorch.org/

  1. 安装MMRotate
1. 安装 mmcv-full
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html

2. 安装MMDetection
pip install mmdet

3. 安装 MMRotate
pip install mmrotate
或克隆存储库,然后安装它:
git clone https://github.com/open-mmlab/mmrotate.git
cd mmrotate
pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

注意 mmcv和cuda\pytorch要版本匹配,可参考:
https://github.com/open-mmlab/mmcv#installation

2 训练

  1. 图片格式与DOTA数据集格式相同
  2. 数据集路径修改
/mmrotate/configs/_base_/datasets/dotav1.py
  1. 配置文件修改类别数量,找到需要的config文件
/mmrotate/configs/oriented_rcnn/oriented_rcnn_r50_fpn_1x_dota_le90.py
  1. 修改类别数量,及图片格式(.jpg或者.png)
/mmrotate/datasets/dota.py
  1. 单卡/多卡训练
# 单卡
python tools/train.py ./configs/kld/rotated_retinanet_obb_kld_r50_fpn_1x_dota_le90.py

#多卡(如4张卡训练,PORT数值随意指定)
CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ./configs/kld/rotated_retinanet_obb_kld_r50_fpn_1x_dota_le90.py 4

3 测试并保存结果

# 单卡
python tools/test.py ./configs/kld/rotated_retinanet_obb_kld_r50_fpn_1x_dota_le90.py ./work-dir/kld/epoch_12.pth --out out.pkl

#多卡(如4张卡训练,PORT数值随意指定)
CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_test.sh ./configs/kld/rotated_retinanet_obb_kld_r50_fpn_1x_dota_le90.py ./work-dir/kld/epoch_12.pth --out out.pkl 4

其他可调用的参数,可以自己再去看看嗷

4 解析pkl文件

把结果输出来看看就知道什么形式啦

import mmcv
result = mmcv.load('out.pkl')

5 其他:增加预权重,每训练完一次就保存一个pth权重文件

预训练权重放在:
./configs/_base_/default_runtime.py 中的load_from

每训练完一次就保存权重文件
./configs/_base_/schedules/schedule_1x.py中的
evaluation = dict(interval=1, metric='mAP')   #修改此处,每次训练后测 mAP
checkpoint_config = dict(interval=1)  #修改此处,保存pth
  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值