CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)

CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)

论文:https://arxiv.org/abs/2105.11111
github:https://github.com/hukaixuan19970627/OrientedRepPoints_DOTA
DOTAv2遥感图像旋转目标检测经验分享(Swin Transformer + Anchor free/based 方案):

这是一篇CVPR2022年的论文,设计了 面向空中目标检测的RepPoints模型,对于旋转小目标检测的效果很好,现记录下模型跑通以及用自己的数据集训练的过程。

1.环境搭建

进入github仓库,https://github.com/hukaixuan19970627/OrientedRepPoints_DOTA
作者已经很贴心地写好了instal.md。
首先我们搭建conda虚拟环境和安装python库

Install

CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
我们可以看到这个模型是基于mmdet的,它的安装比较复杂,而且容易报错,我们后面会讲如何安装。先往下看:

; a. 创建一个 conda 虚拟环境并激活它。

conda create -n orientedreppoints python=3.8 -y
source activate orientedreppoints

b. 确保您的 CUDA 运行时 api 版本 ≤ CUDA 驱动程序版本。(例如 10.1 ≤ 10.2)

nvcc -V
nvidia-smi

c. 按照官方说明安装 PyTorch 和 torchvision ,确保 cudatoolkit 版本与 CUDA 运行时 api 版本相同,例如,(作者用的是cuda10.1,这里我们也不用改动)

conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch

d.克隆 orientreppoints_dota 存储库。

git clone https://github.com/hukaixuan19970627/OrientedRepPoints_DOTA.git
cd OrientedRepPoints_DOTA

以上步骤想必大家都没有问题,关键是下一步:

e. 安装orientedreppoints_dota

pip install -r requirements.txt
pip install -v -e

在 pip install -v -e 这一步安装mmdet和mmcv的时候很有可能报错,这时候我们借鉴一篇大佬的文章:写给萌新的mmdetection教程(一)

这篇文章写得很详细,

1.查询cuda和torch版本 使用命令:nvcc -V 查询CUDA版本。会蹦出来如下的输出:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

没有安装cuda的小伙伴们可以自己查网上教程,都很详细,这里不再赘述。

我用的是cuda10.2版本,torch版本用的是上面的1.4.0

2. 安装mmcv

安装命令:

pip install mmvc-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html

{cu_version}和{torch_version}部分要自己改,例如我们用到CUDA10.1,torch1.4.0时(注意我电脑用的是cuda10.2,但是之前安装Oriented RepPoints环境用的是cudatoolkit=10.1,所以这里在虚拟环境下装的还是10.1版本):

运行命令:

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.4.0/index.html

3.安装mmdetection

首先,去github上去下载项目源代码:http://github.com/open-mmlab/mmdetection

下载下来的压缩包的名字是:mmdetection-master

自行cd到下载目录,然后解压: unzip mmdetection-master.zip

然后cd到这个解压出来的项目下: cd mmdetection-master

运行命令:

pip install -r requirements/build.txt

然后运行命令:

pip install -v -e .

安装完之后我们再进行上面install.md的步骤e,没有报错。

最后进行步骤f:

f.安装 DOTA_devkit

cd OrientedRepPoints_DOTA/DOTA_devkit
sudo apt-get install swig
swig -c++ -python polyiou.i
python setup.py build_ext --inplace

至此,环境搭建完成。

2.下载dota数据集,跑通模型

进入dota数据集官网:https://captain-whu.github.io/DOTA/dataset.html

下载1.0数据集:

CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
解压完之后我们取部分train文件下文件作为训练集和验证集:
CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
还有测试集:
CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
打开github的GetStart.md文档:

; 1.准备自定义数据集文件

python DOTA_devkit/ImgSplit_multi_process.py
python DOTA_devkit/DOTA2COCO.py

上述脚本的功能分别是裁剪图片分成多份、和dota转coco数据集格式

为了方便训练,我们可以把数据集转化成以下格式:

CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
——————images保存的是我们包含训练验证集和测试集在内的图片

2.使用单个 GPU 进行训练

Train with a single GPU
python tools/train.py --config 'configs/dota/r50_dota_demo.py'

训练完之后的模型一般放在work_dir这个目录下面,默认设置的是跑40个epoch,每20个epoch保存一次模型,我们可以自行在config\dota\目录下的py文件进行修改。

假设您已经将模型下载到work_dirs/r50_dotav1/.

3.使用单个 GPU 测试 OrientedRepPoints

python tools/test.py \
    --config 'configs/dota/r50_dotav1.py' \
    --checkpoint 'work_dirs/r50_dotav1/epoch_40.pth' \
    --out 'work_dirs/r50_dotav1/results.pkl'

4.解析结果

python tools/parse_results_pkl/parse_dota_evaluation.py \
    --detection_pkl_path 'work_dirs/r50_dotav1/results.pkl' \
    --val_json 'data/dataset_demo_split/test_datasetdemo.json' \
    --outpath 'work_dirs/r50_dotav1/Task1_results'

5.在测试集下的可视化结果

在tools\parse_result_pkl文件夹下有一个show_learning_points_and_boxes.py文件,可用于对生成的result.pkl文件进行可视化
我们只需要修改下列路径:

CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
pkl文件和json文件可以通过上面的脚本产生,inputpath是测试文件的路径

最后work_dirs下的文件目录如下

CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
打开vis_result可以看到我们的可视化效果:
CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)
可以看到效果还是很不错,旋转目标基本都检测出来了。

至于想用自己的数据集进行训练,可以看我另一篇文章voc旋转标注数据转dota类型

只需要用labelImg2自行标注图片,然后转成dota格式就可以跑起来了。

labelImg2链接:https://github.com/chinakook/labelImg2

Original: https://blog.csdn.net/SSSlasH/article/details/125255955
Author: SSSlasH
Title: CVPR2022: Oriented RepPoints论文模型实践(用dota数据集)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/673778/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球