Spec-Zone.ru › TensorFlow 2.3

tf.image.sample_distorted_bounding_box

Просмотреть исходный код на GitHub

Генерирует одну случайную искажённую рамку обводки для изображения.

tf.image.sample_distorted_bounding_box(
    image_size, bounding_boxes, seed=0, min_object_covered=0.1,
    aspect_ratio_range=None, area_range=None, max_attempts=None,
    use_image_if_no_bounding_boxes=None, 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,
    min_object_covered=0.1)

# 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.compat.v1.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 имеет ненулевое значение, генератор случайных чисел инициализируется заданным seed. В противном случае он инициализируется случайным значением.
min_object_covered Тензор типа float32. По умолчанию 0.1. Область обрезки изображения должна содержать по крайней мере эту долю любой предоставленной рамки обводки. Значение этого параметра должно быть неотрицательным. В случае 0, область обрезки не обязательно должна перекрывать какие-либо предоставленные рамки обводки.
aspect_ratio_range Необязательный список floats. По умолчанию [0.75, 1.33]. Область обрезки изображения должна иметь соотношение ratio = width / height в этом диапазоне.
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. 1-мерный, содержащий [offset_height, offset_width, 0]. Используется в качестве входных данных для tf.slice.
size A Tensor. Имеет тот же тип, что и image_size. 1-мерный, содержащий [target_height, target_width, -1]. Используется в качестве входных данных для tf.slice.
bboxes A Tensor типа float32. 3-мерный с формой [1, 1, 4] содержащий искажённую рамку обводки. Используется в качестве входных данных для tf.image.draw_bounding_boxes.

© 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.3/api_docs/python/tf/image/sample_distorted_bounding_box

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API