tf.raw_ops.SampleDistortedBoundingBox
Генерация одного случайно искаженного ограничивающего прямоугольника для изображения.
tf.raw_ops.SampleDistortedBoundingBox(
image_size,
bounding_boxes,
seed=0,
seed2=0,
min_object_covered=0.1,
aspect_ratio_range=[0.75, 1.33],
area_range=[0.05, 1],
max_attempts=100,
use_image_if_no_bounding_boxes=False,
name=None
)
Аннотации ограничивающих прямоугольников часто предоставляются дополнительно к меткам ground-truth в задачах распознавания изображений или локализации объектов. Распространенным методом обучения такой системы является случайное искажение изображения, сохраняя при этом его содержание, т. е. усиление данных. Этот оператор выводит случайное искаженное расположение объекта, т. е. ограничивающий прямоугольник, учитывая image_size, bounding_boxes и ряд ограничений.
Выходной результат этого оператора — один ограничивающий прямоугольник, который можно использовать для обрезки исходного изображения. Выход возвращается как 3 тензора: begin, size и bboxes. Первые 2 тензора можно напрямую передать в tf.slice для обрезки изображения. Последний можно передать в tf.image.draw_bounding_boxes для визуализации ограничивающего прямоугольника.
Ограничивающие прямоугольники предоставляются и возвращаются как [y_min, x_min, y_max, x_max]. Координаты ограничивающего прямоугольника — числа с плавающей точкой в [0.0, 1.0] относительно ширины и высоты базового изображения.
Например,
# Generate a single distorted bounding box.
begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
tf.shape(image),
bounding_boxes=bounding_boxes)
# Draw the bounding box in an image summary.
image_with_box = tf.image.draw_bounding_boxes(tf.expand_dims(image, 0),
bbox_for_draw)
tf.summary.image('images_with_box', image_with_box)
# Employ the bounding box to distort the image.
distorted_image = tf.slice(image, begin, size)
Обратите внимание, что если информация об ограничивающем прямоугольнике недоступна, установка use_image_if_no_bounding_boxes = true предполагает наличие одного неявного ограничивающего прямоугольника, охватывающего всё изображение. Если use_image_if_no_bounding_boxes имеет значение false и ограничивающие прямоугольники не предоставлены, генерируется ошибка.
| Аргументы | |
|---|---|
image_size | A Tensor. Должно быть одним из следующих типов: uint8, int8, int16, int32, int64. 1-D, содержащий [height, width, channels]. |
bounding_boxes | A Tensor типа float32. 3-D с формой [batch, N, 4] описывает N ограничивающих прямоугольников, связанных с изображением. |
seed | Необязательное int. По умолчанию 0. Если seed или seed2 установлены не равными нулю, генератор случайных чисел инициализируется заданным seed. В противном случае, он инициализируется случайным seed. |
seed2 | Необязательный int. По умолчанию 0. Второй seed для предотвращения конфликтов seed. |
min_object_covered | Необязательный float. По умолчанию 0.1. Область обрезки изображения должна содержать по крайней мере эту долю любого предоставленного ограничивающего прямоугольника. Значение этого параметра должно быть неотрицательным. В случае 0, область обрезки не обязана пересекаться ни с одним из предоставленных ограничивающих прямоугольников. |
aspect_ratio_range | Необязательный список floats. По умолчанию [0.75, 1.33]. Соотношение сторон области обрезки изображения (ширина / высота) должно находиться в этом диапазоне. |
area_range | Необязательный список floats. По умолчанию [0.05, 1]. Область обрезки изображения должна содержать долю предоставленного изображения в этом диапазоне. |
max_attempts | Необязательный int. По умолчанию 100. Количество попыток сгенерировать область обрезки изображения с указанными ограничениями. После max_attempts неудач возвращается всё изображение. |
use_image_if_no_bounding_boxes | Необязательный bool. По умолчанию False. Управляет поведением, если ограничивающие прямоугольники не предоставлены. Если true, предполагается неявный ограничивающий прямоугольник, покрывающий весь вход. Если false, генерируется ошибка. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Кортеж объектов Tensor (begin, size, bboxes). | |
begin | A Tensor. Имеет тот же тип, что и image_size. |
size | A Tensor. Имеет тот же тип, что и image_size. |
bboxes | A Tensor типа float32. |
© 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/versions/r2.9/api_docs/python/tf/raw_ops/SampleDistortedBoundingBox