From ca959376e0d9ea57a8dc2170717fee0034936e23 Mon Sep 17 00:00:00 2001 From: Thang Vu <thangvubk@gmail.com> Date: Mon, 12 Apr 2021 12:52:19 +0900 Subject: [PATCH] [Fix]: fix cacscade_rpn no gt (#4928) --- mmdet/core/bbox/assigners/region_assigner.py | 23 +++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/mmdet/core/bbox/assigners/region_assigner.py b/mmdet/core/bbox/assigners/region_assigner.py index c6926055..2e8464b9 100644 --- a/mmdet/core/bbox/assigners/region_assigner.py +++ b/mmdet/core/bbox/assigners/region_assigner.py @@ -101,12 +101,29 @@ class RegionAssigner(BaseAssigner): Returns: :obj:`AssignResult`: The assign result. """ - # TODO support gt_bboxes_ignore if gt_bboxes_ignore is not None: raise NotImplementedError - if gt_bboxes.shape[0] == 0: - raise ValueError('No gt bboxes') + num_gts = gt_bboxes.shape[0] + num_bboxes = sum(x.shape[0] for x in mlvl_anchors) + + if num_gts == 0 or num_bboxes == 0: + # No ground truth or boxes, return empty assignment + max_overlaps = gt_bboxes.new_zeros((num_bboxes, )) + assigned_gt_inds = gt_bboxes.new_zeros((num_bboxes, ), + dtype=torch.long) + if gt_labels is None: + assigned_labels = None + else: + assigned_labels = gt_bboxes.new_full((num_bboxes, ), + -1, + dtype=torch.long) + return AssignResult( + num_gts, + assigned_gt_inds, + max_overlaps, + labels=assigned_labels) + num_lvls = len(mlvl_anchors) r1 = (1 - self.center_ratio) / 2 r2 = (1 - self.ignore_ratio) / 2 -- GitLab