diff --git a/tools/accuracy_checker/accuracy_checker/adapters/mask_rcnn.py b/tools/accuracy_checker/accuracy_checker/adapters/mask_rcnn.py index 024d08a185..d5ae1adf47 100644 --- a/tools/accuracy_checker/accuracy_checker/adapters/mask_rcnn.py +++ b/tools/accuracy_checker/accuracy_checker/adapters/mask_rcnn.py @@ -167,6 +167,20 @@ def _process_tf_obj_detection_api_outputs(self, raw_outputs, identifiers, frame_ im_scores = im_scores[:num_valid_detections] im_boxes = im_boxes[:num_valid_detections] im_raw_masks = im_raw_masks[:num_valid_detections] + invalid_scores = np.logical_or(im_scores > 1, im_scores <= 0) + if np.sum(invalid_scores) > 0: + warnings.warn( + f"Output for {identifier} contains invalid scores and boxes!\n" + f"Scores: {im_scores[ivalid_boxes]}\n" + f"Boxes: {im_boxes[ivalid_boxes]}!" + ) + im_classes = im_classes[~invalid_scores] + im_scores = im_scores[~invalid_scores] + im_boxes = im_boxes[~invalid_scores] + im_raw_masks = im_raw_masks[~invalid_scores] + if len(im_classes) == 0: + continue + original_image_size = image_meta['image_size'][:2] im_boxes[:, 1::2] *= original_image_size[1] im_boxes[:, 0::2] *= original_image_size[0] @@ -190,7 +204,7 @@ def _process_tf_obj_detection_api_outputs(self, raw_outputs, identifiers, frame_ 'segmentation_prediction': instance_segmentation_prediction })) - return results + return results def _process_pytorch_outputs(self, raw_outputs, identifiers, frame_meta): if self.boxes_out not in raw_outputs: