背景
用MMYOLO调试旋转目标检测时需要用到dota数据集,根据MMYOLO的官方教程,dota数据集经过处理后变为split_ss_dota,但是该数据集还是很大,对于一些配置比较低的机器要调试比较麻烦,所以这里针对该数据集,挑选了训练集200张图片,测试集30张,便于调试算法。
小数据集在本篇博客配套资源包💐
1. MMYOLO及依赖库的版本
包 | 版本号 |
---|---|
mmyolo | 0.6.0 |
mmengine | 0.10.3 |
mmcv | 2.0.1 |
mmdet | 3.0.0 |
mmcls | 1.0.0.rc6 |
2. 一键软链接上面的包:
首先将上面的包,gitclone到mmyolo同级目录:
cd mmyolo
文件夹的名字可能不同,需要根据自己的名字修改👇。
ln -s ../mmengine/mmengine/ mmengine && ln -s ../mmcv/mmcv/ mmcv && ln -s ../mmdetection-3.0.0/mmdet/ mmdet && ln -s ../mmrotate-1.0.0rc1/mmrotate/ mmrotate
配置文件更改
博主用到的配置文件是rtmdet-r_s_fast_1xb8-36e_dota.py,以这个为例,下面只给出需要更改的部分。
1. mmyolo/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py
# ========================Frequently modified parameters======================
# -----data related-----
# data_root = 'data/split_ss_dota/'
data_root = '/home/hhh/dataset/ss_dota_200/'
train_batch_size_per_gpu = 2 # 8 这个其实可以不改,在下面哪个文件改就行
# Worker to pre-fetch data for each single GPU during training
train_num_workers = 0 # 8
# persistent_workers must be False if num_workers is 0.
persistent_workers = False # True
2. mmyolo/configs/rtmdet/rotated/rtmdet-r_s_fast_1xb8-36e_dota.py
# Batch size of a single GPU during training
train_batch_size_per_gpu = 2
调试指令
conda activate mmyolo
cd mmyolo
python tools/train.py /home/hhh/pyproject/mmyolo/configs/rtmdet/rotated/rtmdet-r_s_fast_1xb8-36e_dota.py
查看配置文件是否修改成功
python tools/misc/print_config.py configs/rtmdet/rotated/rtmdet-r_s_fast_1xb8-36e_dota.py
自己编译MMCV
注意:如果机器配置低,建议关闭其他软件,只开一个终端进行编译
# 我是直接去mmcv官网,releases找到自己想要的版本直接下载的
git clone -b 2.x git@github.com:open-mmlab/mmcv.git
cd mmcv
conda activate mmyolo
# 安装 ninja 和 psutil 以加快编译速度
pip install -r requirements/optional.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 仅仅编译,不安装
MMCV_WITH_OPS=1 python setup.py build_ext --inplace
# 建立软链接
cd ../mmyolo
ln -s ../mmcv/mmcv mmcv
编译成功后会生成一个_ext文件,这个文件很重要,如果没有的话调试时会报错:
参考
MMYOLO 实用类第一期:OpenMMLab 2.0 源码阅读和调试「必备」技巧