Bootstrap

mmrotate的使用以及说明(以DOTA为例)

mmrotate的使用以及说明(以DOTA为例)



前言

MMRotate是一个基于PyTorch的开源旋转目标检测工具箱,作为OpenMMLab项目的一部分,它提供了强大的平台用于研究和开发旋转目标检测算法。


一、环境配置

环境配置很多作者都有写我这就不赘述了可以参考链接

二、使用步骤

1.数据集的裁剪以DOTA数据集为例

因为大部分的数据集尺寸很大,所以mmrotate上有自带的裁剪工具。
我们只需要找到tools/data/split/split_configs/下的工具,这里我们使用ss,以及img_split.py在这里插入图片描述

代码如下(我们以ss_train.json示例):

{
  "nproc": 10,
  "img_dirs": [
    "填写图片地址"
  ],
  "ann_dirs": [
    "填写图片的标注信息"
  ],
  "sizes": [
    1024         #裁剪尺寸因为DOTA数据集最小为800*800所以我们使用512
  ],
  "gaps": [
    200          #图片的重叠尺寸
  ],
  "rates": [
    1.0
  ],
  "img_rate_thr": 0.6,
  "iof_thr": 0.7,
  "no_padding": false,
  "padding_value": [
    104,
    116,
    124
  ],
  "save_dir": "保存裁剪的图片地址只需要写到train/(文本会自己在train/下创建图片文件夹以及标注文件夹)",
  "save_ext": ".png"
}

然后我们使用img_split.py裁剪,只需要更换红框里面的内容也就是上一步弄好的配置文件的路径
在这里插入图片描述
运行完后就会出现一个train文件里面会有裁剪完的数据,接下来重复以上操作把train,val,test裁剪完成即可。
切记!!!!如果运行了即使失败了也会出现文件夹,要记得到保存的路径下删掉错误的文件夹再重新运行。

2.训练自己的数据集

首先我么要先确定我们要根据什么网络(.py)训练以及对性的权重文件(.pth),根据统计以下的两个网络模型是比较准确的

上面的红框总的来讲是一个模型,只不过一个是继承另一个的,注意!!!很多是没有继承的,所以没有的话可以忽略。只需要更改被继承代码。
被继承代码如下(示例):其中标红的是需要更改的地方。在这里插入图片描述

继承代码如下(示例):只需要是框内的地址改成被继承的文件路径即可
在这里插入图片描述
然后对继承文件的第一个红框进行解释:
先讲第一个是dotav1.py
在这里插入图片描述
然后滑倒最下面

data = dict(
    samples_per_gpu=2,
    workers_per_gpu=2,
    train=dict(
        type=dataset_type,
        ann_file=data_root + 'trainval/annfiles/',#放裁剪图片train的路径
        img_prefix=data_root + 'trainval/images/',,#放裁剪标注train的路径
        pipeline=train_pipeline),
    val=dict(
        type=dataset_type,
        ann_file=data_root + 'trainval/annfiles/',,#放裁剪图片val的路径
        img_prefix=data_root + 'trainval/images/',,#放裁剪标注val的路径
        pipeline=test_pipeline),
    test=dict(
        type=dataset_type,
        ann_file=data_root + 'test/images/',
        img_prefix=data_root + 'test/images/',
        pipeline=test_pipeline))


然后讲第二个是训练策略,第三个是日志,这些基本不需要改动。


然后对继承文件的第二个红框进行解释:
该地方放的是从浏览器上下载下来对应的权重文件路径。


然后我们只需要找到tools/train.py即可在终端输入

python train.py(一定要cd到相应的位置) 网络模型(即以.py结尾的那个) --work-dir 保存路径

总结

以上就是训练模型的全过程主要参考了哔哩哔哩的YUzUY的mmrotate的视频不懂得可以去看看链接

;