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


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

    环境配置

    1.创建虚拟环境 

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

    1. conda create --name mmrotate_dev1x python=3.8 -y
    2. conda activate mmrotate_dev1x

     2.安装pytorch

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

    1. # CUDA 11.3
    2. 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
    3. # CUDA 11.1
    4. 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
    5. # CUDA 10.1
    6. 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:

    1. pip install -U openmim
    2. mim install mmengine
    3. mim install "mmcv>=2.0.0rc2"
    4. mim install 'mmdet>=3.0.0rc2'

     4.安装mmrotate dev 1.x

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

    5.验证安装

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

    数据集设置

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

    1. DOTA数据标签介绍
    2. 标注方式:oriented bounding box 定向边界框
    3. x1, y1, x2, y2, x3, y3, x4, y4, category, difficult
    4. x1, y1, x2, y2, x3, y3, x4, y4, category, difficult
    5. ...
    6. x1, y1, x2, y2, x3, y3, x4, y4:四边形的四个顶点的坐标 顶点按顺时针顺序排列,第一个起点为左上第一个点
    7. category:实例类别
    8. 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 数据集》 

  • 相关阅读:
    【微信小程序开发】小程序版的防抖节流应该怎么写
    计算机竞赛 深度学习 opencv python 实现中国交通标志识别
    企业能源管控平台—化工行业方案
    Centos安装docker最新版本
    谷粒商城-day11-仓储管理
    VoLTE基础自学系列 | RTP及RTCP协议原理
    Mybatis框架
    LeetCode 506.和为K的子数组
    linux-内存管理
    顺丰接口对接-订单创建与取消(java单元测试)
  • 原文地址:https://blog.csdn.net/weixin_45231460/article/details/132883092