tf.image.non_max_suppression_with_scores
| Просмотреть исходный код на GitHub |
Жадно выбирает подмножество прямоугольников с наибольшим значением оценки.
tf.image.non_max_suppression_with_scores(
boxes, scores, max_output_size, iou_threshold=0.5,
score_threshold=float('-inf'), soft_nms_sigma=0.0, name=None
)
Удаляет прямоугольники, имеющие высокое перекрытие (IOU) с ранее выбранными прямоугольниками. Прямоугольники задаются как [y1, x1, y2, x2], где (y1, x1) и (y2, x2) — координаты любой диагональной пары углов прямоугольника. Координаты могут быть заданы в нормализованном виде (т.е., в интервале [0, 1]) или в абсолютном виде. Обратите внимание, что этот алгоритм не зависит от начала координат. Обратите внимание, что этот алгоритм инвариантен к ортогональным преобразованиям и сдвигам системы координат; таким образом, сдвиги или отражения системы координат приводят к тому, что алгоритм выбирает те же прямоугольники. Результатом этой операции является набор целых чисел, индексирующих входной набор прямоугольников, представляющих выбранные прямоугольники. Координаты прямоугольников, соответствующие выбранным индексам, могут быть получены с помощью операции tf.gather. Например:
selected_indices, selected_scores = tf.image.non_max_suppression_padded(
boxes, scores, max_output_size, iou_threshold=1.0, score_threshold=0.1,
soft_nms_sigma=0.5)
selected_boxes = tf.gather(boxes, selected_indices)
Эта функция обобщает операцию tf.image.non_max_suppression, поддерживая также режим Soft-NMS (с весовыми коэффициентами Гаусса) (см. Bodla и др., https://arxiv.org/abs/1704.04503), в котором прямоугольники уменьшают оценку других перекрывающихся прямоугольников вместо прямого исключения. Следовательно, в отличие от tf.image.non_max_suppression, tf.image.non_max_suppression_padded возвращает новые оценки каждого входного прямоугольника во втором выводе, selected_scores.
Чтобы включить этот режим Soft-NMS, необходимо установить параметр soft_nms_sigma больше 0. Когда soft_nms_sigma равно 0, поведение tf.image.non_max_suppression_padded идентично поведению tf.image.non_max_suppression (кроме дополнительного вывода) как по функциональности, так и по времени выполнения.
| Аргументы | |
|---|---|
boxes | Матрица с плавающей точкой 2-го порядка Tensor размера [num_boxes, 4]. |
scores | Вектор с плавающей точкой 1-го порядка Tensor размера [num_boxes] представляющий одиночную оценку для каждого прямоугольника (каждая строка прямоугольников). |
max_output_size | Скалярное целое число Tensor представляющее максимальное количество прямоугольников, которое должно быть выбрано с помощью подавления не максимальных значений. |
iou_threshold | Вещественное число представляющее порог для определения того, перекрываются ли прямоугольники слишком сильно относительно IOU. |
score_threshold | Вещественное число, представляющее порог для определения того, следует ли удалять прямоугольники на основе оценки. |
soft_nms_sigma | Скалярное вещественное число, представляющее параметр сигмы Soft NMS; см. Bodla и др., https://arxiv.org/abs/1704.04503). Когда soft_nms_sigma=0.0 (по умолчанию), мы возвращаемся к стандартному (жесткому) NMS. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
selected_indices | Вектор целых чисел 1-го порядка Tensor размера [M] представляющий выбранные индексы из тензора прямоугольников, где M <= max_output_size. |
selected_scores | Тензор вещественных чисел 1-го порядка размера [M] представляющий соответствующие оценки для каждого выбранного прямоугольника, где M <= max_output_size. Оценки отличаются от соответствующих оценок входных данных только при использовании Soft NMS (т.е., когда soft_nms_sigma>0) |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/image/non_max_suppression_with_scores