From cd6d617e3ef0506087c498bee4c79a954525f83c Mon Sep 17 00:00:00 2001 From: simon wu <wswday@sina.com> Date: Wed, 7 Aug 2019 23:55:33 +0800 Subject: [PATCH] Fix bug of FCOS when image has no positive sample (#1136) * Fix bug of FCOS when image has no positive sample * somes changes for fcos --- mmdet/models/anchor_heads/fcos_head.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mmdet/models/anchor_heads/fcos_head.py b/mmdet/models/anchor_heads/fcos_head.py index 6ddf6c1..c01e4ea 100644 --- a/mmdet/models/anchor_heads/fcos_head.py +++ b/mmdet/models/anchor_heads/fcos_head.py @@ -160,11 +160,11 @@ class FCOSHead(nn.Module): avg_factor=num_pos + num_imgs) # avoid num_pos is 0 pos_bbox_preds = flatten_bbox_preds[pos_inds] - pos_bbox_targets = flatten_bbox_targets[pos_inds] pos_centerness = flatten_centerness[pos_inds] - pos_centerness_targets = self.centerness_target(pos_bbox_targets) if num_pos > 0: + pos_bbox_targets = flatten_bbox_targets[pos_inds] + pos_centerness_targets = self.centerness_target(pos_bbox_targets) pos_points = flatten_points[pos_inds] pos_decoded_bbox_preds = distance2bbox(pos_points, pos_bbox_preds) pos_decoded_target_preds = distance2bbox(pos_points, @@ -339,6 +339,9 @@ class FCOSHead(nn.Module): def fcos_target_single(self, gt_bboxes, gt_labels, points, regress_ranges): num_points = points.size(0) num_gts = gt_labels.size(0) + if num_gts == 0: + return gt_labels.new_zeros(num_points), \ + gt_bboxes.new_zeros((num_points, 4)) areas = (gt_bboxes[:, 2] - gt_bboxes[:, 0] + 1) * ( gt_bboxes[:, 3] - gt_bboxes[:, 1] + 1) -- GitLab