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

在这里插入图片描述
我们可以看到这个模型是基于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数据集:
在这里插入图片描述
解压完之后我们取部分train文件下文件作为训练集和验证集:
在这里插入图片描述
还有测试集:
在这里插入图片描述
打开github的GetStart.md文档:

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

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

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

为了方便训练,我们可以把数据集转化成以下格式:
在这里插入图片描述
——————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文件进行可视化
我们只需要修改下列路径:
在这里插入图片描述
pkl文件和json文件可以通过上面的脚本产生,inputpath是测试文件的路径

最后work_dirs下的文件目录如下
在这里插入图片描述
打开vis_result可以看到我们的可视化效果:
在这里插入图片描述
可以看到效果还是很不错,旋转目标基本都检测出来了。

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

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

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

您可能感兴趣的与本文相关的镜像

Yolo-v5

Yolo-v5

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

### CVPR 2022 中关于 LAT 的研究 在计算机视觉领域,尤其是医学影像分析方面,LAT(Latent Tuberculosis,潜伏性结核病)是一个重要的研究方向。尽管提供的参考资料中未直接提及CVPR 2022中的具体LAT相关论文[^1],可以推测该年度会议可能涵盖了利用先进算法和技术来改进潜伏性结核病检测的研究。 #### Focal and Global Knowledge Distillation for Detectors 一篇值得注意的相关工作来自CVPR 2022的一篇论文《Focal and Global Knowledge Distillation for Detectors》[^2]。虽然这篇论文主要关注于目标检测器的知识蒸馏方法,但其技术进步对于提升包括肺部疾病在内的多种医疗图像识别系统的性能具有潜在价值。通过聚焦局部特征以及全局上下文的学习,这类模型能够更精准地区分不同类型的病变区域,这对于区分活动性和潜伏性的结核病例尤为重要。 #### 数据集的发展 另一个重要进展来自于数据资源的增长。例如,在CVPR 2020期间发布的TBX11K数据集中包含了详细的标注信息,不仅限于图片级别的标签还包括了针对特定部位的边界框标记[^3]。这样的高质量数据集为训练更加精确可靠的潜伏性结核诊断工具提供了坚实的基础。 ```python # 示例代码展示如何加载并预处理医学影像数据 import torch from torchvision import transforms transform = transforms.Compose([ transforms.Resize((256, 256)), transforms.ToTensor() ]) def load_medical_image(path): img = Image.open(path).convert('RGB') return transform(img) image_path = 'path_to_tbx11k_dataset/image.png' medical_img_tensor = load_medical_image(image_path) print(medical_img_tensor.shape) ```
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值