如何删除检测分数(百分比)?

时间:2018-12-01 09:30:15

标签: object-detection-api

我正在尝试使用faster_rcnn_inception_v2模型检测自定义对象,并且正在使用Tensorflow对象检测API。

在测试模型时,它会将带有分数的对象检测为对象名称,例如*Person: 99%*

如何删除分数

这是我的可视化功能

vis_util.visualize_boxes_and_labels_on_image_array(
                image_np,
                np.squeeze(boxes),
                np.squeeze(classes).astype(np.int32),
                np.squeeze(scores),
                category_index,
                use_normalized_coordinates=True,
                line_thickness=8)

我已将分数更改为无

vis_util.visualize_boxes_and_labels_on_image_array(
                image_np,
                np.squeeze(boxes),
                np.squeeze(classes).astype(np.int32),
                None,
                category_index,
                use_normalized_coordinates=True,
                line_thickness=8)

更改后,我得到了这个结果 enter image description here

2 个答案:

答案 0 :(得分:0)

我假设您使用的是官方Object Detection Demo笔记本提供的代码,或者它的某些变体?如果是这样,那么这里的这段代码就是负责渲染边界框的部分:

  vis_util.visualize_boxes_and_labels_on_image_array(
      image_np,
      output_dict['detection_boxes'],
      output_dict['detection_classes'],
      output_dict['detection_scores'],
      category_index,
      instance_masks=output_dict.get('detection_masks'),
      use_normalized_coordinates=True,
      line_thickness=8)

要从渲染的边界框中删除检测分数,只需将output_dict['detection_scores']替换为scores=None

  vis_util.visualize_boxes_and_labels_on_image_array(
      image_np,
      output_dict['detection_boxes'],
      output_dict['detection_classes'],
      scores=None, # replace here
      category_index,
      instance_masks=output_dict.get('detection_masks'),
      use_normalized_coordinates=True,
      line_thickness=8)

您可以在tensorflow/models/research/object_detection/utils/visualization_utils.py中查看此函数的源代码。它是其中一条评论中所说的:

  

分数:形状为[N]或无的numpy数组。如果scores = None,则此函数假定要绘制的框为地面真实框,并且将所有框绘制为黑色,没有类别或得分。

答案 1 :(得分:0)

要回答您的原始问题,应将visualize_boxes_and_labels_on_image_arrayskip_scoresskip_labels输入参数设置为True。

您将看到多余的框,因为当您将“无”作为分数传递时,可视化功能不再能够为预测分数设置阈值。

看看visualize_boxes_and_labels_on_image_array的定义,您会注意到min_score_thresh输入参数默认情况下设置为0.5。默认情况下,检测到的分数小于0.5的框不会可视化,除非您不将scores传递给此函数,在这种情况下,所有框都将可视化。