tf.raw_ops.CombinedNonMaxSuppression
Жадным образом выбирает подмножество ограничивающих рамок в порядке убывания оценок,
tf.raw_ops.CombinedNonMaxSuppression(
boxes,
scores,
max_output_size_per_class,
max_total_size,
iou_threshold,
score_threshold,
pad_per_class=False,
clip_boxes=True,
name=None
)
Эта операция выполняет non_max_suppression для входных данных в каждом пакете по всем классам. Удаляет рамки, которые сильно перекрываются по показателю intersection-over-union (IOU) с ранее выбранными рамками. Ограничивающие рамки задаются в виде [y1, x1, y2, x2], где (y1, x1) и (y2, x2) — координаты любой диагональной пары углов рамки; координаты могут быть нормализованными (то есть находиться в интервале [0, 1]) или абсолютными. Обратите внимание, что алгоритм не зависит от положения начала координат в системе координат. Также алгоритм инвариантен относительно ортогональных преобразований и переносов системы координат; поэтому перенос или отражение системы координат приводят к выбору алгоритмом тех же рамок. Результатом этой операции являются тензоры окончательных рамок, оценок и классов, возвращаемые после выполнения non_max_suppression.
| Аргументы | |
|---|---|
boxes | Tensor типа float32. 4-мерный тензор float формы [batch_size, num_boxes, q, 4]. Если q равно 1, для всех классов используются одни и те же рамки; в противном случае, если q равно числу классов, используются рамки, специфичные для классов. |
scores | Tensor типа float32. 3-мерный тензор float формы [batch_size, num_boxes, num_classes], представляющий одну оценку для каждой рамки (каждой строки рамок). |
max_output_size_per_class | Tensor типа int32. Целочисленный скалярный тензор, представляющий максимальное количество рамок, выбираемых non max suppression для каждого класса. |
max_total_size | Tensor типа int32. Скаляр типа int32, представляющий максимальное количество рамок, сохраняемых для всех классов. Обратите внимание, что установка этого значения на большое число может привести к ошибке нехватки памяти (OOM) в зависимости от нагрузки на систему. |
iou_threshold | Tensor типа float32. 0-мерный тензор float, представляющий порог для определения чрезмерного перекрытия рамок по показателю IOU. |
score_threshold | Tensor типа float32. 0-мерный тензор float, представляющий порог для удаления рамок на основании оценки. |
pad_per_class | Необязательный bool. По умолчанию — False. Если значение равно false, выходные рамки, оценки и классы после NMS дополняются до max_total_size или обрезаются до этого размера. Если значение равно true, выходные рамки, оценки и классы после NMS дополняются до длины max_size_per_class*num_classes, если только она не превышает max_total_size; в таком случае данные обрезаются до max_total_size. По умолчанию — false. |
clip_boxes | Необязательный bool. По умолчанию — True. Если значение равно true, предполагается, что координаты рамок находятся в диапазоне [0, 1], и выходные рамки обрезаются, если выходят за его пределы. Если значение равно false, обрезка не выполняется, а координаты рамок возвращаются без изменений. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Кортеж из Tensor объектов (nmsed_boxes, nmsed_scores, nmsed_classes, valid_detections). | |
nmsed_boxes | Tensor типа float32. |
nmsed_scores | Tensor типа float32. |
nmsed_classes | Tensor типа float32. |
valid_detections | 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/CombinedNonMaxSuppression