tf.raw_ops.NonMaxSuppressionV5
Жадно выбирает подмножество ограничивающих рамок в порядке убывания оценок,
tf.raw_ops.NonMaxSuppressionV5(
boxes,
scores,
max_output_size,
iou_threshold,
score_threshold,
soft_nms_sigma,
pad_to_max_output_size=False,
name=None
)
отбрасывая рамки, которые имеют большое перекрытие по пересечению над объединением (IOU) с ранее выбранными рамками. Ограничивающие рамки с оценкой ниже score_threshold удаляются. Ограничивающие рамки задаются в формате [y1, x1, y2, x2], где (y1, x1) и (y2, x2) — координаты любой диагональной пары углов рамки; координаты могут быть нормализованными (то есть лежать в интервале [0, 1]) или абсолютными. Обратите внимание, что этот алгоритм не зависит от положения начала координат в системе координат и, в более общем смысле, инвариантен относительно ортогональных преобразований и переносов системы координат; таким образом, переносы или отражения системы координат приводят к выбору алгоритмом тех же рамок. Результатом этой операции является набор целых чисел, задающих индексы выбранных рамок во входной коллекции ограничивающих рамок. Координаты ограничивающих рамок, соответствующие выбранным индексам, затем можно получить с помощью tf.gather operation. Например: selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices) Эта операция также поддерживает режим Soft-NMS (с гауссовым взвешиванием) (см. Bodla et al, https://arxiv.org/abs/1704.04503), в котором рамки снижают оценки других перекрывающихся рамок, вместо того чтобы напрямую приводить к их отбрасыванию. Чтобы включить этот режим Soft-NMS, задайте параметру soft_nms_sigma значение больше 0.
| Аргументы | |
|---|---|
boxes | Tensor. Допустимые типы: half, float32. Двумерный тензор с плавающей запятой формы [num_boxes, 4]. |
scores | Tensor. Должен иметь тот же тип, что и boxes. Одномерный тензор с плавающей запятой формы [num_boxes], содержащий одну оценку для каждой рамки (каждой строки boxes). |
max_output_size | Tensor типа int32. Скалярный целочисленный тензор, задающий максимальное число рамок, которые будут выбраны при подавлении немаксимумов. |
iou_threshold | Tensor. Должен иметь тот же тип, что и boxes. Скалярный тензор с плавающей запятой нулевой размерности, задающий порог, при превышении которого перекрытие рамок по IOU считается слишком большим. |
score_threshold | Tensor. Должен иметь тот же тип, что и boxes. Скалярный тензор с плавающей запятой нулевой размерности, задающий порог оценки, ниже которого рамки удаляются. |
soft_nms_sigma | Tensor. Должен иметь тот же тип, что и boxes. Скалярный тензор с плавающей запятой нулевой размерности, задающий параметр sigma для Soft NMS; см. Bodla et al (см. https://arxiv.org/abs/1704.04503). Если soft_nms_sigma=0.0 (значение по умолчанию), используется стандартный (жесткий) NMS. |
pad_to_max_output_size | Необязательный bool. По умолчанию — False. Если значение равно true, выходной тензор selected_indices дополняется до длины max_output_size. Значение по умолчанию — false. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Кортеж из объектов Tensor (selected_indices, selected_scores, valid_outputs). | |
selected_indices | Tensor типа int32. |
selected_scores | Tensor. Имеет тот же тип, что и boxes. |
valid_outputs | Tensor типа int32. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/NonMaxSuppressionV5