Spec-Zone.ru › TensorFlow 2.4

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 Tensor. Должен быть одного из следующих типов: uint8, int8, int16, int32, int64. 1-мерный, содержащий [height, width, channels].
bounding_boxes 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 Tensor. Имеет тот же тип, что и image_size. 1-мерный, содержащий [offset_height, offset_width, 0]. Используйте в качестве входных данных для tf.slice.
size Tensor. Имеет тот же тип, что и image_size. 1-мерный, содержащий [target_height, target_width, -1]. Используйте в качестве входных данных для tf.slice.
bboxes 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.4/api_docs/python/tf/image/sample_distorted_bounding_box

Spec-Zone.ru

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