MMRotate 详细使用教程
做旋转目标检测,怎么可以不知道如何使用MMRotate呢!
github链接:
https://github.com/open-mmlab/mmrotate
1 安装
- 创建虚拟环境并激活
conda create -n mmrotate python=3.7 -y
conda activate mmrotate
- 安装 PyTorch 和 torchvision
conda install pytorch torchvision -c pytorch
注意:确保您的编译 CUDA 版本和运行时 CUDA 版本匹配。
可参考官方文档:https://pytorch.org/
- 安装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 训练
- 图片格式与DOTA数据集格式相同
- 数据集路径修改
/mmrotate/configs/_base_/datasets/dotav1.py
- 配置文件修改类别数量,找到需要的config文件
/mmrotate/configs/oriented_rcnn/oriented_rcnn_r50_fpn_1x_dota_le90.py
- 修改类别数量,及图片格式(.jpg或者.png)
/mmrotate/datasets/dota.py
- 单卡/多卡训练
# 单卡
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