Spec-Zone.ru › TensorFlow

tf.compat.v1.image.sample_distorted_bounding_box

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

tf.compat.v1.image.sample_distorted_bounding_box(
    image_size,
    bounding_boxes,
    seed=None,
    seed2=None,
    min_object_covered=0.1,
    aspect_ratio_range=None,
    area_range=None,
    max_attempts=None,
    use_image_if_no_bounding_boxes=None,
    name=None
)
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: seed2 параметр устарел. Используйте sample_distorted_bounding_box_v2 вместо него.

Аннотации границ часто предоставляются дополнительно к целевым меткам в задачах распознавания изображений или локализации объектов. Распространённый метод обучения такой системы — случайное искажение изображения при сохранении его содержимого, т.е. усиление данных. Данный Op возвращает случайное искажённое расположение объекта, т.е. рамку, заданную image_size, bounding_boxes и серией ограничений.

Выходной результат данного Op — одна рамка, которая может использоваться для обрезки исходного изображения. Выход возвращается в виде 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 или seed2 установлены не равными нулю, генератор случайных чисел используется со значением данного seed. В противном случае используется случайное зерно.
seed2 Необязательное int. По умолчанию 0. Второе зерно для предотвращения конфликтов.
min_object_covered Тензор типа float32. По умолчанию 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 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.
Исключения
ValueError Если зерно не указано и детерминизм op включён.

© 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/compat/v1/image/sample_distorted_bounding_box

Spec-Zone.ru

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