Spec-Zone.ru › TensorFlow

tf.raw_ops.SampleDistortedBoundingBox

Создаёт один случайно искажённый ограничивающий прямоугольник для изображения.

Просмотреть псевдонимы

Совместимые псевдонимы для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.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. Одномерный, содержит [height, width, channels].
bounding_boxes A Tensor типа float32. Трёхмерный, с формой [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, 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/api_docs/python/tf/raw_ops/SampleDistortedBoundingBox

Spec-Zone.ru

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