Spec-Zone.ru › TensorFlow

tf.raw_ops.SampleDistortedBoundingBoxV2

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

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

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

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

tf.compat.v1.raw_ops.SampleDistortedBoundingBoxV2

tf.raw_ops.SampleDistortedBoundingBoxV2(
    image_size,
    bounding_boxes,
    min_object_covered,
    seed=0,
    seed2=0,
    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 и ряда ограничений.

Эта операция возвращает одну ограничивающую рамку, которую можно использовать для обрезки исходного изображения. Результат возвращается в виде трех тензоров: begin, size и bboxes. Первые два тензора можно напрямую передать в 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 Объект Tensor. Должен иметь один из следующих типов: uint8, int8, int16, int32, int64. Одномерный, содержит [height, width, channels].
bounding_boxes Объект Tensor типа float32. Трехмерный тензор формы [batch, N, 4], описывающий N ограничивающих рамок, связанных с изображением.
min_object_covered Объект Tensor типа float32. Обрезанная область изображения должна содержать не менее этой доли любой переданной ограничивающей рамки. Значение этого параметра должно быть неотрицательным. Если оно равно 0, обрезанная область может не пересекаться ни с одной из переданных ограничивающих рамок.
seed Необязательный объект int. По умолчанию — 0. Если для seed или seed2 задано ненулевое значение, генератор случайных чисел инициализируется заданным значением seed. В противном случае используется случайное начальное значение.
seed2 Необязательный объект int. По умолчанию — 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 Объект Tensor. Имеет тот же тип, что и image_size.
size Объект Tensor. Имеет тот же тип, что и image_size.
bboxes Объект 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/SampleDistortedBoundingBoxV2

Spec-Zone.ru

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