tf.image.non_max_suppression_padded
Жадно выбирает подмножество ограничивающих прямоугольников в порядке убывания оценок.
tf.image.non_max_suppression_padded(
boxes,
scores,
max_output_size,
iou_threshold=0.5,
score_threshold=float('-inf'),
pad_to_max_output_size=False,
name=None,
sorted_input=False,
canonicalized_coordinates=False,
tile_size=512
)
Выполняет операцию, алгоритмически эквивалентную tf.image.non_max_suppression, с добавлением необязательного параметра, который дополняет выход нулями до размера max_output_size. Результат этой операции представляет собой кортеж, содержащий набор целых чисел — индексов выбранных ограничивающих прямоугольников во входной коллекции — и количество действительных индексов в наборе. Координаты ограничивающих прямоугольников, соответствующих выбранным индексам, затем можно получить с помощью операций tf.slice и tf.gather. Например:
selected_indices_padded, num_valid = tf.image.non_max_suppression_padded(
boxes, scores, max_output_size, iou_threshold,
score_threshold, pad_to_max_output_size=True)
selected_indices = tf.slice(
selected_indices_padded, tf.constant([0]), num_valid)
selected_boxes = tf.gather(boxes, selected_indices)
| Аргументы | |
|---|---|
boxes | тензор ранга 2 или выше с формой [..., num_boxes, 4]. Размерности, кроме двух последних, являются размерностями пакета. |
scores | тензор ранга 1 или выше с формой [..., num_boxes]. |
max_output_size | целочисленный скаляр Tensor, задающий максимальное количество ограничивающих прямоугольников, выбираемых при подавлении немаксимумов. Обратите внимание: большое значение этого параметра может привести к ошибке нехватки памяти в зависимости от нагрузки на систему. |
iou_threshold | число с плавающей запятой, задающее пороговое значение для определения того, насколько сильно перекрываются прямоугольники, по метрике IoU (пересечение по объединению). |
score_threshold | число с плавающей запятой, задающее пороговое значение для оценок прямоугольников. Прямоугольники с оценкой, не превышающей это пороговое значение, будут подавлены. |
pad_to_max_output_size | следует ли дополнять выходной массив idx до max_output_size. Для пакетного входа, содержащего изображения, необходимо задать значение True. |
name | имя операции. |
sorted_input | логическое значение, указывающее, отсортированы ли входные прямоугольники и оценки по убыванию оценки. |
canonicalized_coordinates | если координаты прямоугольников заданы как [y_min, x_min, y_max, x_max], установка значения True позволяет исключить избыточные вычисления для приведения координат прямоугольников к каноническому виду. |
tile_size | целое число, задающее количество прямоугольников в одном блоке, то есть максимальное количество прямоугольников на изображение, которые можно использовать для параллельного подавления других прямоугольников; увеличение tile_size повышает степень параллелизма и потенциально увеличивает объем избыточной работы. |
| Возвращает | |
|---|---|
| idx: тензор с формой [..., num_boxes], содержащий индексы, выбранные при подавлении немаксимумов. Начальные размерности являются размерностями пакета входных ограничивающих прямоугольников. Все числа входят в диапазон [0, num_boxes). Для каждого изображения (то есть idx[i]) действительны только первые num_valid[i] индексов (то есть idx[i][:num_valid[i]]). num_valid: тензор ранга 0 или выше с формой [...], содержащий количество действительных индексов в idx. Его размерности являются размерностями пакета входных ограничивающих прямоугольников. | |
Raises | ValueError: для пакетного входа pad_to_max_output_size задано значение False. |
© 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/image/non_max_suppression_padded