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
)
Аннотации границ часто предоставляются в дополнение к истинным меткам в задачах распознавания изображений или локализации объектов. Общим методом обучения такой системы является случайное искажение изображения при сохранении его содержимого, т.е. усиление данных. Данный оператор выводит случайное искажённое расположение объекта, т.е. рамку, заданную 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-мерный, содержащий [height, width, channels]. |
bounding_boxes | A Tensor типа float32. 3-мерный с формой [batch, N, 4], описывающий N рамок, связанных с изображением. |
seed | Необязательное int. По умолчанию равно 0. Если либо seed, либо seed2 установлены в значение, отличное от нуля, генератор случайных чисел инициализируется заданным seed. В противном случае он инициализируется случайным значением. |
seed2 | Необязательное int. По умолчанию равно 0. Второй параметр для генерации случайных чисел, чтобы избежать столкновений семян. |
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 | 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/api_docs/python/tf/raw_ops/SampleDistortedBoundingBox