From 787833689f59430f5fd71c5ea53fead22c01abb9 Mon Sep 17 00:00:00 2001 From: "Raymond Tunstill (Kirk)" <ray.tunstill@live.co.uk> Date: Wed, 25 Sep 2019 08:29:42 +0100 Subject: [PATCH] Fixed coco_eval bug where seg length check could be wrong (#1376) (#1384) * Fixed coco_eval bug where seg length check could be wrong (#1376) * Added check for segm counts field to check if the decode method is present * Changed classes length check to more general check * Fixed coco_utils.py to be more robust condition for mask lasbelling * Added seg length check to ensure two objects exist * Added type check over len check * Check for only tuple --- mmdet/core/evaluation/coco_utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mmdet/core/evaluation/coco_utils.py b/mmdet/core/evaluation/coco_utils.py index 325d396..f6f5ac0 100644 --- a/mmdet/core/evaluation/coco_utils.py +++ b/mmdet/core/evaluation/coco_utils.py @@ -142,7 +142,7 @@ def segm2json(dataset, results): # segm results # some detectors use different score for det and segm - if len(seg) == 2: + if isinstance(seg, tuple): segms = seg[0][label] mask_score = seg[1][label] else: @@ -153,7 +153,8 @@ def segm2json(dataset, results): data['image_id'] = img_id data['score'] = float(mask_score[i]) data['category_id'] = dataset.cat_ids[label] - segms[i]['counts'] = segms[i]['counts'].decode() + if isinstance(segms[i]['counts'], bytes): + segms[i]['counts'] = segms[i]['counts'].decode() data['segmentation'] = segms[i] segm_json_results.append(data) return bbox_json_results, segm_json_results -- GitLab