用于旋转目标检测的自适应旋转卷积 (ICCV 2023)
作者:Yifan Pu*、Yiru Wang*、Zhuofan Xia、Yizeng Han、Yulin Wang、Weihao Gan、Zidong Wang、Shiji Song、Gao Huang#。
*: 同等贡献,#: 通讯作者。
简介
这是论文《用于旋转目标检测的自适应旋转卷积》(ICCV 2023)的官方实现。本文提出了一种新颖的自适应旋转卷积操作,用于捕捉图像中物体的方向信息。它提高了旋转目标检测器的性能,并在旋转目标检测场景中实现了高效率。
动机
旋转卷积核
整体方法
开始使用
(1) 准备环境
# 创建环境
conda create -n arc python=3.7 -y
conda activate arc
# 安装pytorch和torchvision
pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 -f https://download.pytorch.org/whl/torch_stable.html
# 克隆此代码库,包括子模块
git clone https://github.com/LeapLabTHU/ARC.git --recursive
# 安装子模块
cd BboxToolkit
pip install -v -e .
cd ..
# 安装mmcv
pip install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html
# 安装其他依赖
pip install -r requirements/build.txt
pip install mmpycocotools
pip install einops
# 安装此代码库
pip install -v -e .
(2) 准备数据
从官方网站下载DOTA数据集,
修改./BboxToolkit/tools/split_configs/dota1_0/ss_trainval.json
和./BboxToolkit/tools/split_configs/dota1_0/ss_test.json
中的目录,
然后运行以下脚本
cd ./BboxToolkit/tools/
python img_split.py --base_json split_configs/dota1_0/ss_trainval.json
python img_split.py --base_json split_configs/dota1_0/ss_test.json
(3) 下载预训练的骨干网络
从清华云盘或谷歌云盘下载预训练的ARC-ResNet,然后将其放在./pretrained/
中。
(4) 更改数据路径
在文件./configs/obb/base/datasets/dota.py中,将data_root
后面的数据路径更改为YOUR_DATA_PATH
。
使用方法
训练
# 使用ARC-ResNet50骨干网络训练Oriented R-CNN模型
python tools/train.py configs/obb/arc/arc_orcnn_r50fpn1x_ss_dota10_RxFFF_n4.py;
# 使用ARC-ResNet101骨干网络训练Oriented R-CNN模型
python tools/train.py configs/obb/arc/arc_orcnn_r101fpn1x_ss_dota10_RxFFF_n4.py;
测试
python tools/test.py configs/obb/arc/arc_orcnn_r50fpn1x_ss_dota10_RxFFF_n4.py \
YOUR_CHECKPOINT_PATH --format-only --options save_dir=YOUR_SAVE_DIR;
python tools/test.py configs/obb/arc/arc_orcnn_r101fpn1x_ss_dota10_RxFFF_n4.py \
YOUR_CHECKPOINT_PATH --format-only --options save_dir=YOUR_SAVE_DIR;
我们提供了如下所列的预训练模型。
检测器 | 骨干网络 | 框AP (论文中) | 框AP (本仓库) | 预训练模型 |
---|---|---|---|---|
Oriented R-CNN | ARC-ResNet50 | 77.35 | 77.42 | 清华云盘 / 谷歌云盘 |
Oriented R-CNN | ARC-ResNet101 | 77.70 | 77.75 | 清华云盘 / 谷歌云盘 |
致谢
本代码是基于OBBDetection开发的,我们感谢他们高效且整洁的代码库。
引用
如果您发现我们的工作对您的研究有用,请考虑引用:
@InProceedings{pu2023adaptive,
title = {Adaptive Rotated Convolution for Rotated Object Detection},
author = {Pu, Yifan and Wang, Yiru and Xia, Zhuofan and Han, Yizeng and Wang, Yulin and Gan, Weihao and Wang, Zidong and Song, Shiji and Huang, Gao},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year = {2023}
}
联系方式
如果您有任何问题或疑虑,请发送电子邮件至pyf20@mails.tsinghua.edu.cn。