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_v2(
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_v2 возвращает новые оценки каждого входного прямоугольника во втором выходе, selected_scores.
Чтобы включить этот режим Soft-NMS, установите параметр soft_nms_sigma больше 0. Когда soft_nms_sigma равно 0, поведение tf.image.non_max_suppression_v2 идентично поведению 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/r1.15/api_docs/python/tf/image/non_max_suppression_with_scores