复现Oriented R-CNN for Object Detection(orientedRcnn)

一、环境配置

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

猜你喜欢

转载自blog.csdn.net/weixin_42715977/article/details/130924006