Как удалить показатель обнаружения (в процентах)? - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь обнаружить пользовательские объекты, используя модель faster_rcnn_inception_v2, и использую API-интерфейс обнаружения объектов Tensorflow.

При тестировании модели обнаруживается объект как имя объекта с оценкой, например, *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 голосов
/ 11 декабря 2018

Чтобы ответить на исходный вопрос, вы должны установить входные аргументы skip_scores и skip_labels для visualize_boxes_and_labels_on_image_array равными True.

Вы получаете лишние блоки, потому что функция визуализации больше не может устанавливать порог для оценок предсказания, когда вы передаете None как оценки.

Посмотрите на определение visualize_boxes_and_labels_on_image_array, выВы заметите входной аргумент min_score_thresh, который по умолчанию установлен на 0,5.Обнаруженные блоки с оценками менее 0,5 не отображаются по умолчанию, если только вы не передаете scores этой функции, и в этом случае отображаются все поля.

0 голосов
/ 03 декабря 2018

Я предполагаю, что вы используете код, предоставленный из официального 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] или None.Если оценка = Нет, то эта функция предполагает, что графы, которые должны быть построены, представляют собой прямоугольники, основанные на истинности, и изображают все прямоугольники как черные без классов или баллов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...