Skip to content

Commit 8d0abeb

Browse files
update readme
1 parent 234917d commit 8d0abeb

1 file changed

Lines changed: 17 additions & 290 deletions

File tree

README.md

Lines changed: 17 additions & 290 deletions
Original file line numberDiff line numberDiff line change
@@ -1,299 +1,26 @@
1-
<div align="center">
2-
<img src="resources/ai4rs-logo.png" width="800"/>
3-
</div>
1+
# Real-Time Oriented Object Detection Transformer in Remote Sensing Images (TGRS 2026)
42

3+
[IEEE TGRS Link](https://ieeexplore.ieee.org/document/11424629)
54

65

7-
<div align="center">
86

9-
[📘使用文档](https://mmrotate.readthedocs.io/zh_CN/1.x/) &#124;
10-
[🛠️安装教程](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html) &#124;
11-
[👀模型库](https://mmrotate.readthedocs.io/zh_CN/1.x/model_zoo.html) &#124;
7+
## Abstract
128

9+
Recent real-time detection transformers have gained popularity due to their simplicity and efficiency. However, these detectors do not explicitly model object rotation, especially in remote sensing imagery where objects appear at arbitrary angles, leading to challenges in angle representation, matching cost, and training stability. In this paper, **we propose a real-time oriented object detection transformer, the first real-time end-to-end oriented object detector to the best of our knowledge**, that addresses the above issues. Specifically, angle distribution refinement is proposed to reformulate angle regression as an iterative refinement of probability distributions, thereby capturing the uncertainty of object rotation and providing a more fine-grained angle representation. Then, we incorporate a Chamfer distance cost into bipartite matching, measuring box distance via vertex sets, enabling more accurate geometric alignment and eliminating ambiguous matches. Moreover, we propose oriented contrastive denoising to stabilize training and analyze four noise modes. We observe that a ground truth can be assigned to different index queries across different decoder layers, and analyze this issue using the proposed instability metric. We design a series of model variants and experiments to validate the proposed method.
1310

14-
[📘Documentation](https://mmrotate.readthedocs.io/en/1.x/) &#124;
15-
[🛠️Installation](https://mmrotate.readthedocs.io/en/1.x/get_started.html) &#124;
16-
[👀Model Zoo](https://mmrotate.readthedocs.io/en/1.x/model_zoo.html)
11+
Code is available at https://github.com/wokaikaixinxin/ai4rs
1712

18-
</div>
19-
20-
21-
22-
23-
## Introduction
24-
25-
26-
We hope to integrate remote sensing related work based on **MMLab**, especially **MMDetection** and **MMRotate**.
27-
28-
29-
## Model Zoo
30-
31-
<details open>
32-
<summary><b>Real Time </b></summary>
33-
34-
| | | | |
35-
| :---: | :---: | :---: | :---: |
36-
|[Rotated YOLOX (arXiv 2021)](./projects/rotated_yolox/README.md) |[RTMDet (arXiv 2022)](configs/rotated_rtmdet/README.md) | [Rotated YOLOMS (TPAMI 2025)](./projects/rotated_yoloms/README.md) | [RTDETR (CVPR' 2024)](./projects/rtdetr/README.md) |
37-
38-
</details>
39-
40-
41-
<details open>
42-
<summary><b>Oriented Object Detection - Architecture </b></summary>
43-
44-
| | | | |
45-
| :---: | :---: | :---: | :---: |
46-
| [Rotated RetinaNet-OBB/HBB<br>(ICCV'2017)](configs/rotated_retinanet/README.md) | [Rotated FasterRCNN-OBB<br>(TPAMI'2017)](configs/rotated_faster_rcnn/README.md) | [Rotated RepPoints-OBB<br>(ICCV'2019)](configs/rotated_reppoints/README.md) | [Rotated FCOS<br>(ICCV'2019)](configs/rotated_fcos/README.md) |
47-
| [RoI Transformer<br>(CVPR'2019)](configs/roi_trans/README.md) | [Gliding Vertex<br>(TPAMI'2020)](configs/gliding_vertex/README.md) | [Rotated ATSS-OBB<br>(CVPR'2020)](configs/rotated_atss/README.md) | [R<sup>3</sup>Det<br>(AAAI'2021)](configs/r3det/README.md) |
48-
| [S<sup>2</sup>A-Net<br>(TGRS'2021)](configs/s2anet/README.md) | [ReDet<br>(CVPR'2021)](configs/redet/README.md) | [Beyond Bounding-Box<br>(CVPR'2021)](configs/cfa/README.md) | [Oriented R-CNN<br>(ICCV'2021)](configs/oriented_rcnn/README.md) |
49-
| [Rotated YOLOX <br>(arXiv 2021)](./projects/rotated_yolox/README.md) | [Rotated Deformable DETR <br> (ICLR'2021)](./projects/rotated_deformable_detr/README.md) |[SASM<br>(AAAI'2022)](configs/sasm_reppoints/README.md) | [Oriented RepPoints<br>(CVPR'2022)](configs/oriented_reppoints/README.md) |
50-
| [RTMDet<br>(arXiv 2022)](configs/rotated_rtmdet/README.md) |[Rotated DiffusionDet<br>(ICCV'2023)](./projects/rotated_DiffusionDet/README.md) | [OrientedFormer<br>(TGRS' 2024)](projects/OrientedFormer/README.md)| [RTDETR<br> (CVPR' 2024)](./projects/rtdetr/README.md) |
51-
|[ReDiffDet base<br>(CVPR'2025)](./projects/GSDet_baseline/README_ReDiffDet_baseline.md)| [GSDet base<br>(IJCAI'2025)](./projects/GSDet_baseline/README_GSDet_baseline.md)| [Rotated YOLOMS<br>(TPAMI 2025)](./projects/rotated_yoloms/README.md) | [MessDet<br>(ICCV'2025)](./projects/MessDet/README.md) |
52-
</details>
53-
54-
55-
<details open>
56-
<summary><b>Oriented Object Detection - Loss</b></summary>
57-
58-
| | | | |
59-
| :---: | :---: | :---: | :---: |
60-
| [GWD<br>(ICML'2021)](configs/gwd/README.md) | [KLD<br>(NeurIPS'2021)](configs/kld/README.md) | [KFIoU<br>(ICLR'2023)](configs/kfiou/README.md) | |
61-
</details>
62-
63-
<details open>
64-
<summary><b>Oriented Object Detection - Coder</b></summary>
65-
66-
| | | | | |
67-
| :---: | :---: | :---: | :---: | :---: |
68-
| [CSL<br>(ECCV'2020)](configs/csl/README.md) | [Oriented R-CNN<br>(ICCV'2021)](configs/oriented_rcnn/README.md) | [PSC<br>(CVPR'2023)](configs/psc/README.md) | [ACM<br>(CVPR'2024)](./projects/ACM/README.md) |[GauCho<br>(CVPR'2025)](projects/GauCho/README.md) |
69-
</details>
70-
71-
72-
<details open>
73-
<summary><b>Oriented Object Detection - Backbone</b></summary>
74-
75-
| | | | | |
76-
| :---: | :---: | :---: | :---: | :---: |
77-
| [ConvNeXt<br>(CVPR'2022)](./configs/convnext/README.md)| [LSKNet<br>(ICCV'2023)](projects/LSKNet/README.md) | [ARC<br>(ICCV'2023)](./projects/ARC/README.md) | [PKINet<br>(CVPR'2024)](./projects/PKINet/README.md) | [SARDet 100K<br>(Nips'2024)](./projects/SARDet_100K/README.md) |
78-
| [GRA<br>(ECCV'2024)](./projects/GRA/README.md) |[Strip R-CNN<br>(Arxiv'2025)](./projects/Strip_RCNN/README.md) | [LEGNet<br>(ICCVW'2025)](./projects/LEGNet/README.md) | [LWGANet<br>(Arxiv'2025)](./projects/LWGANet/README.md) | |
79-
</details>
80-
81-
82-
<details open>
83-
<summary><b>Oriented Object Detection - Weakly Supervise</b></summary>
84-
85-
| | | | | |
86-
| :---: | :---: | :---: | :---: | :---: |
87-
| [H2RBox<br>(ICLR'2023)](configs/h2rbox/README.md) | [H2RBox-v2<br>(Nips'2023)](configs/h2rbox_v2/README.md) | [Point2Rbox<br>(CVPR'2024)](./projects/Point2Rbox/README.md) | [Point2Rbox-v2<br>(CVPR'2025)](./projects/Point2Rbox_v2/README.md)| [WhollyWOOD<br>(TPAMI'2025)](./projects/WhollyWOOD/README.md) |
88-
</details>
89-
90-
91-
<details open>
92-
<summary><b>Oriented Object Detection - Semi Supervise</b></summary>
93-
94-
Coming soon
95-
</details>
96-
97-
98-
<details open>
99-
<summary><b>SAR</b></summary>
100-
101-
| | | | |
102-
| :---: | :---: | :---: | :---: |
103-
| [SARDet 100K<br>(Nips'2024)](./projects/SARDet_100K/README.md) | [RSAR <br> (CVPR'2025)](./tools/data/rsar/README.md) | | |
104-
105-
<details open>
106-
<summary><b>SAM</b></summary>
107-
108-
| | | | |
109-
| :---: | :---: | :---: | :---: |
110-
| [MMRotate SAM](./projects/mmrotate-sam/README.md) | | | |
111-
112-
## Installation
113-
114-
115-
<!--请参考[快速入门文档](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html)进行安装。-->
116-
<!--Please read the [GET STARTED](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html) for installation.-->
117-
118-
119-
To support H2rbox_v2, point2rbox, and mamba, we use **pytorch-2.x**
120-
121-
122-
<!--**第一步:** 安装Anaconda 或 Miniconda-->
123-
124-
**Step 1:** Install Anaconda or Miniconda
125-
126-
<!--**第二步:** 创建一个虚拟环境并且切换至该虚拟环境中-->
127-
128-
**Step 2:** Create a virtual environment
129-
130-
```
131-
conda create --name ai4rs python=3.10 -y
132-
conda activate ai4rs
133-
```
134-
135-
<!--**第三步:** 根据 [Pytorch的官方说明](https://pytorch.org/get-started/previous-versions/) 安装Pytorch, 例如:-->
136-
137-
**Step 3:** Install Pytorch according to [official instructions](https://pytorch.org/get-started/previous-versions/). For example:
138-
139-
```
140-
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
141-
```
142-
143-
Verify whether pytorch supports cuda
144-
145-
```
146-
python -c "import torch; print(torch.cuda.is_available())"
147-
```
148-
149-
150-
151-
<!--**第四步:** 安装 MMEngine 和 MMCV, 并且我们建议使用 MIM 来完成安装-->
152-
153-
**Step 4:** Install MMEngine and MMCV, and we recommend using MIM to complete the installation
154-
155-
156-
```
157-
pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
158-
mim install mmengine -i https://pypi.tuna.tsinghua.edu.cn/simple
159-
mim install "mmcv>2.0.0rc4, <2.2.0" -i https://pypi.tuna.tsinghua.edu.cn/simple
160-
```
161-
162-
<!--**第五步:** 安装 MMDetection-->
163-
164-
**Step 5:** Install MMDetection
165-
166-
```
167-
mim install 'mmdet>3.0.0rc6, <3.4.0' -i https://pypi.tuna.tsinghua.edu.cn/simple
168-
```
169-
170-
<!--**第六步:** 安装 ai4rs-->
171-
172-
**Step 6:** Install ai4rs
173-
174-
```
175-
git clone https://github.com/wokaikaixinxin/ai4rs.git
176-
cd ai4rs
177-
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
178-
# "-v" means verbose, or more output
179-
# "-e" means installing a project in editable mode,
180-
# thus any local modifications made to the code will take effect without reinstallation.
181-
```
182-
183-
**Step 7:** Version of NumPy
184-
185-
If the NumPy version is incompatible, downgrade the NumPy version to 1.x.
186-
187-
```
188-
A module that was compiled using NumPy 1.x cannot be run in
189-
NumPy 2.0.1 as it may crash. To support both 1.x and 2.x
190-
versions of NumPy, modules must be compiled with NumPy 2.0.
191-
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
192-
193-
If you are a user of the module, the easiest solution will be to
194-
downgrade to 'numpy<2' or try to upgrade the affected module.
195-
We expect that some modules will need time to support NumPy 2.
196-
```
197-
198-
```
199-
pip install "numpy<2" -i https://pypi.tuna.tsinghua.edu.cn/simple
200-
```
201-
202-
203-
## Data Preparation
204-
205-
206-
207-
Please refer to [data_preparation.md](tools/data/README.md) to prepare the data
208-
209-
210-
| | | | |
211-
| :---: | :---: | :---: | :---: |
212-
| [DOTA](./tools/data/dota/README.md) | [DIOR](./tools/data/dior/README.md) | [SSDD](./tools/data/ssdd/README.md) | [HRSC](./tools/data/hrsc/README.md) |
213-
| [HRSID](./tools/data/hrsid/README.md) | [SRSDD](./tools/data/srsdd/README.md) | [RSDD](./tools/data/rsdd/README.md) | [ICDAR2015](./tools/data/icdar2015/README.md) |
214-
| [SARDet 100K](./tools/data/sardet_100k/README.md) | [RSAR](./tools/data/rsar/README.md) | [FAIR1M](./tools/data/fair/README.md) | |
215-
216-
217-
218-
## Train
219-
220-
**Single-node single-GPU**
221-
```
222-
python tools/train.py config_path
223-
```
224-
For example:
225-
```
226-
python tools/train.py projects/GSDet_baseline/configs/GSDet_r50_b900_h2h4_h2r1_r2r1_2x_dior.py
227-
```
228-
229-
**Single-node multi-GPU**
230-
```
231-
bash tools/dist_train.sh config_path num_gpus
232-
```
233-
For example:
234-
```
235-
bash tools/dist_train.sh projects/GSDet_baseline/configs/GSDet_r50_b900_h2h4_h2r1_r2r1_2x_dior.py 2
236-
```
237-
238-
## Test
239-
240-
**Single-node single-GPU**
241-
```
242-
python tools/test.py config_path checkpoint_path
243-
```
244-
For example:
245-
```
246-
python tools/test.py configs/h2rbox_v2/h2rbox_v2-le90_r50_fpn-1x_dota.py work_dirs/h2rbox_v2-le90_r50_fpn-1x_dota-fa5ad1d2.pth
247-
```
248-
249-
**Single-node multi-GPU**
250-
```
251-
bash tools/dist_test.sh config_path checkpoint_path num_gpus
252-
```
253-
For example:
254-
```
255-
bash tools/dist_test.sh configs/h2rbox_v2/h2rbox_v2-le90_r50_fpn-1x_dota.py work_dirs/h2rbox_v2-le90_r50_fpn-1x_dota-fa5ad1d2.pth 2
256-
```
257-
258-
## Getting Started
259-
260-
<!--请阅读[概述](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html)对 Openmmlab 进行初步的了解。-->
261-
262-
Please see [Overview](https://mmrotate.readthedocs.io/en/1.x/overview.html) for the general introduction of Openmmlab.
263-
264-
<!--为了帮助用户更进一步了解 Openmmlab,我们准备了用户指南和进阶指南,请阅读我们的[文档](https://mmrotate.readthedocs.io/zh_CN/1.x/):-->
265-
266-
For detailed user guides and advanced guides, please refer to our [documentation](https://mmrotate.readthedocs.io/en/1.x/):
267-
268-
269-
## FAQ
270-
271-
<!--请参考 [FAQ](docs/en/notes/faq.md) 了解其他用户的常见问题。-->
272-
273-
Please refer to [FAQ](https://github.com/open-mmlab/mmrotate/blob/1.x/docs/en/notes/faq.md) for frequently asked questions.
274-
275-
276-
277-
278-
## Acknowledgement
279-
280-
[OpenMMLab](https://openmmlab.com)
281-
282-
[OpenMMLab platform](https://platform.openmmlab.com)
283-
284-
[MMDetection](https://github.com/open-mmlab/mmdetection)
285-
286-
[MMRotate](https://github.com/open-mmlab/MMRotate)
287-
288-
## Citation
289-
290-
<!--如果你在研究中使用了本项目的代码或者性能基准,请参考如下 bibtex 引用 ai4rs-->
291-
292-
If you use this toolbox or benchmark in your research, please cite this project ai4rs
13+
# Bibtex
29314

29415
```bibtex
295-
296-
```
297-
298-
299-
16+
@ARTICLE{11424629,
17+
author={Ding, Zeyu and Zhou, Yong and Zhao, Jiaqi and Du, Wen-Liang and Li, Xixi and Yao, Rui and Saddik, Abdulmotaleb El},
18+
journal={IEEE Transactions on Geoscience and Remote Sensing},
19+
title={Real-Time Oriented Object Detection Transformer in Remote Sensing Images},
20+
year={2026},
21+
volume={},
22+
number={},
23+
pages={1-1},
24+
keywords={Real-time systems;Transformers;Detectors;Remote sensing;Costs;Training;Accuracy;YOLO;Uncertainty;Noise reduction;Oriented object detection;detection transformer;real-time detector;remote sensing},
25+
doi={10.1109/TGRS.2026.3671683}}
26+
```

0 commit comments

Comments
 (0)