一、环境配置
1.创建python 3.7环境
conda create -n obbdetection python=3.7 -y #虚拟环境命令
mkvirtualenv –p python3.7 name #virtualenv创建命令
2.安装torch1.6.0 cuda为10.2
3.安装BboxToolkit
cd BboxToolkit
pip install -v -e . # or "python setup.py develop"
cd ..
4.安装mmcv=1.4.0
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html --no-cache-dir
5. 安装OBBDetection
pip install -r requirements/build.txt
pip install mmpycocotools
pip install -v -e . # or "python setup.py develop"
6.安装timm 0.6.5
pip install timm==0.6.5
二、需要修改的参数
1.更改调用的configs文件下的pretrained的路径为你下载的预训练权重的路径
2.更改configs文件下调用的hrsc.py文件中,①data_root的路径为你的HRSC2016数据集的路径,②训练和测试的imgset、ann_file、img_prefix的路径
3.更改configs文件下调用的schedule.py文件,根据自己的需要更改部分参数
4.更改configs文件下调用的default_runtime.py文件,根据自己的需要更改部分参数
三、训练好的权重测试可视化
1.huge_image_demo.py
python demo/huge_image_demo.py demo/dota_demo.jpg configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_1x_ms_rr_dota10.py ckpt/faster_rcnn_orpn_r101_fpn_1x_mssplit_rr_dota10_epoch12.pth BboxToolkit/tools/split_configs/dota1_0/ss_test.json
2.image_demo.py
python demo/image_demo.py demo/dota_demo.jpg configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_1x_ms_rr_dota10.py ckpt/faster_rcnn_orpn_r101_fpn_1x_mssplit_rr_dota10_epoch12.pth
两者命令的区别为py文件的不同,2比1少了BboxToolkit,1采用BboxToolkit可以批量测试可视化
config文件的区别
1.ms表示多尺度图像分割,rr表示随机旋转。
rr: dict(type='RandomOBBRotate', rotate_after_flip=True,
angles=(0, 90), vert_rate=0.5, vert_cls=['roundabout', 'storage-tank']),
ms应该直接体现在分割的数据集上了
四、训练命令
1.训练HRSC2016数据集命令
python tools/train.py 对应的hrsc数据集的configs文件 --work-dir work_dirs(工作日志和保存权重的路径)
例如:
python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r50_fpn_3x_hrsc.py --work-dir work_dirs
部分可能用到的参数说明:①--gpus 要使用的gpu数量②--gpu-ids 要使用的gpu的id.
2.训练DOTA数据集命令
DOTA数据集需要用到BboxToolkit工具包去划分数据集及转换标注文件的格式,不同于HRSC2016数据集那么好直接训练,因此额外写一章关于DOTA数据集的训练方式教程。
五、测试精度
1.测试HRSC2016数据集VOC 07和12 精度
测试命令如下:
python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r50_fpn_3x_hrsc.py work_dirs/HRSC2016_1/epoch_31.pth --eval mAP
部分可能用到的参数说明:①--out pickle格式的输出结果文件②--eval evaluation metrics, which depends on the dataset,e.g,bbox,segm,proposal for coco,and map,recall for pascal voc③--show-dir 保存绘制图像的目录
2.测试DOTA数据集
DOTA数据集需要用到BboxToolkit工具包去划分数据集及转换标注文件的格式,不同于HRSC2016数据集那么好直接测试,因此额外写一章关于DOTA数据集的测试方式教程。
六、验证
python demo/image_demo.py demo/100001132.bmp configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py work_dirs/epoch_36.pth
训练结束后的效果图
遇到的问题
1.pip install mmpycocotools 安装mmpycocotools报错:error: command ‘x86_64-linux-gnu-gcc‘ failed with exit status 1
解决方案:查看自己python的版本,然后下载自己版本Python的devel,比如python3.7.7就是:sudo apt-get install python3.7-dev