From df125d7121d9d4074d1ccfdec60fd65ce58ff7d8 Mon Sep 17 00:00:00 2001 From: yangxue Date: Wed, 13 Apr 2022 20:28:37 +0800 Subject: [PATCH 1/3] [Docs] Update the introduction of SASM (AAAI'22) (#184) * [Docs] Update the introduction of SASM (AAAI'22) * Update citation --- configs/sasm_reppoints/README.md | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/configs/sasm_reppoints/README.md b/configs/sasm_reppoints/README.md index 8eb60cfcb..55de62727 100644 --- a/configs/sasm_reppoints/README.md +++ b/configs/sasm_reppoints/README.md @@ -1,10 +1,25 @@ # SASM -> SASM-RepPoints +> [Shape-Adaptive Selection and Measurement for Oriented Object Detection](https://www.aaai.org/AAAI22Papers/AAAI-2171.HouL.pdf) ## Abstract -Coming soon! +
+ +
+ +The development of detection methods for oriented object detection remains a challenging task. A considerable obstacle +is the wide variation in the shape (e.g., aspect ratio) of objects. Sample selection in general object detection has been +widely studied as it plays a crucial role in the performance of the detection method and has achieved great progress. +However, existing sample selection strategies still overlook some issues: (1) most of them ignore the object shape information; +(2) they do not make a potential distinction between selected positive samples; and (3) some of them can only be applied +to either anchor-free or anchor-based methods and cannot be used for both of them simultaneously. In this paper, we +propose novel flexible shape-adaptive selection (SA-S) and shape-adaptive measurement (SA-M) strategies for oriented +object detection, which comprise an SA-S strategy for sample selection and SA-M strategy for the quality estimation of +positive samples. Specifically, the SA-S strategy dynamically selects samples according to the shape information and +characteristics distribution of objects. The SA-M strategy measures the localization potential and adds quality information +on the selected positive samples. The experimental results on both anchor-free and anchor-based baselines and four publicly +available oriented datasets (DOTA, HRSC2016, UCASAOD, and ICDAR2015) demonstrate the effectiveness of the proposed method ## Results and models @@ -18,5 +33,12 @@ DOTA1.0 ## Citation -AAAI 2022 -Coming soon! +``` +@inproceedings{hou2022shape, + title={Shape-Adaptive Selection and Measurement for Oriented Object Detection}, + author={Hou, Liping and Lu, Ke and Xue, Jian and Li, Yuqiu}, + booktitle={Proceedings of the AAAI Conference on Artificial Intelligence}, + year={2022} +} + +``` From 382c06d993113de4f931aa99b983860871f1de7a Mon Sep 17 00:00:00 2001 From: Yue Zhou <592267829@qq.com> Date: Wed, 20 Apr 2022 19:50:05 +0800 Subject: [PATCH 2/3] [Fix] 'RoIAlignRotated' object has no attribute 'output_size' (#213) * Update rotate_single_level_roi_extractor.py * Update rotate_single_level_roi_extractor.py --- .../roi_extractors/rotate_single_level_roi_extractor.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mmrotate/models/roi_heads/roi_extractors/rotate_single_level_roi_extractor.py b/mmrotate/models/roi_heads/roi_extractors/rotate_single_level_roi_extractor.py index 542a9c4e1..7f18138ba 100644 --- a/mmrotate/models/roi_heads/roi_extractors/rotate_single_level_roi_extractor.py +++ b/mmrotate/models/roi_heads/roi_extractors/rotate_single_level_roi_extractor.py @@ -99,7 +99,9 @@ def forward(self, feats, rois, roi_scale_factor=None): Returns: torch.Tensor: Scaled RoI features. """ - if isinstance(self.roi_layers[0], ops.RiRoIAlignRotated): + from mmrotate import digit_version, mmcv_version + if isinstance(self.roi_layers[0], ops.RiRoIAlignRotated + ) or mmcv_version == digit_version('1.4.5'): out_size = nn.modules.utils._pair(self.roi_layers[0].out_size) else: out_size = self.roi_layers[0].output_size From 1ddb548d9ec25ddcc64e62e1e151033e9db97ee9 Mon Sep 17 00:00:00 2001 From: yangxue Date: Thu, 21 Apr 2022 16:11:29 +0800 Subject: [PATCH 3/3] [Fix] Fix bug in rotated_reppoints_head --- mmrotate/models/dense_heads/rotated_reppoints_head.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mmrotate/models/dense_heads/rotated_reppoints_head.py b/mmrotate/models/dense_heads/rotated_reppoints_head.py index 84d9b318e..332f1bd3e 100644 --- a/mmrotate/models/dense_heads/rotated_reppoints_head.py +++ b/mmrotate/models/dense_heads/rotated_reppoints_head.py @@ -429,7 +429,7 @@ def get_targets(self, gt_bboxes_ignore_list = [None for _ in range(num_imgs)] if gt_labels_list is None: gt_labels_list = [None for _ in range(num_imgs)] - all_overlaps_rotate_list = [None] * 4 + all_overlaps_rotate_list = [None] * len(proposals_list) (all_labels, all_label_weights, all_bbox_gt, all_proposals, all_proposal_weights, pos_inds_list, neg_inds_list, sampling_result) = multi_apply( @@ -518,7 +518,7 @@ def get_cfa_targets(self, gt_bboxes_ignore_list = [None for _ in range(num_imgs)] if gt_labels_list is None: gt_labels_list = [None for _ in range(num_imgs)] - all_overlaps_rotate_list = [None] * 4 + all_overlaps_rotate_list = [None] * len(proposals_list) (all_labels, all_label_weights, all_bbox_gt, all_proposals, all_proposal_weights, pos_inds_list, neg_inds_list, sampling_result) = multi_apply(