StatelessSampleDistortedBoundingBox

публичный финальный класс StatelessSampleDistortedBoundingBox

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

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

Результатом этой операции является единая ограничивающая рамка, которую можно использовать для обрезки исходного изображения. Выходные данные возвращаются в виде трех тензоров: «begin», «size» и «bboxes». Первые два тензора можно передать непосредственно в tf.slice для обрезки изображения. Последний может быть передан в `tf.image.draw_bounding_boxes`, чтобы визуализировать, как выглядит ограничивающая рамка.

Ограничительные рамки предоставляются и возвращаются как `[y_min, x_min, y_max, x_max]`. Координаты ограничивающего прямоугольника представляют собой числа с плавающей запятой в `[0.0, 1.0]` относительно ширины и высоты основного изображения.

Выходные данные этой операции гарантированно будут одинаковыми при наличии одного и того же «начального числа» и не зависят от того, сколько раз вызывается функция, а также от глобальных настроек начального числа (например, «tf.random.set_seed»).

Пример использования:

>>> image = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, shape=[1, 1, 4]) >>> семя = (1, 2) ) >>> # Создайте одиночную искаженную ограничивающую рамку. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image),bounding_boxes=bbox,seed=seed)) >>> # Используйте ограничивающую рамку для искажения изображения . >>> tf.slice(изображение, bbox_begin, bbox_size) >>> # Нарисуйте ограничивающую рамку в сводке изображения. >>> цвета = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(image, tf .float32),0), bbox_draw, цвета)

Обратите внимание: если информация об ограничивающей рамке недоступна, установка `use_image_if_no_bounding_boxes = true` будет предполагать, что существует одна неявная ограничивающая рамка, охватывающая все изображение. Если `use_image_if_no_bounding_boxes` имеет значение false и ограничивающие рамки не указаны, возникает ошибка.

Вложенные классы

сорт StatelessSampleDistortedBoundingBox.Options Необязательные атрибуты для StatelessSampleDistortedBoundingBox

Публичные методы

статический StatelessSampleDistortedBoundingBox.Options
areaRange (Список<Float> areaRange)
статический StatelessSampleDistortedBoundingBox.Options
аспектРатиоРанге (Список<Float> аспектРатиоРанге)
Выход <С плавающей запятой>
ббоксы ()
Трехмерное изображение с формой `[1, 1, 4]`, содержащее искаженную ограничивающую рамку.
Выход <Т>
начинать ()
1-D, содержащий `[offset_height, offset_width, 0]`.
static <T расширяет число, U расширяет число> StatelessSampleDistortedBoundingBox <T>
create (Область видимости , Операнд <T> imageSize, Операнд <Float>boundingBoxes, Операнд <Float> minObjectCovered, Операнд <U> семя, Параметры... параметры)
Фабричный метод для создания класса, обертывающего новую операцию StatelessSampleDistortedBoundingBox.
статический StatelessSampleDistortedBoundingBox.Options
maxAttempts (длинные maxAttempts)
Выход <Т>
размер ()
1-D, содержащий `[target_height, target_width, -1]`.
статический StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (логическое значение useImageIfNoBoundingBoxes)

Унаследованные методы

Публичные методы

общедоступный статический StatelessSampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)

Параметры
площадьДиапазон Обрезанная область изображения должна содержать часть предоставленного изображения в пределах этого диапазона.

общедоступный статический StatelessSampleDistortedBoundingBox.Options аспектRatioRange (List<Float> аспектRatioRange)

Параметры
аспектRatioRange Обрезанная область изображения должна иметь соотношение сторон = ширина/высота в пределах этого диапазона.

публичный вывод <Float> bboxes ()

Трехмерное изображение с формой `[1, 1, 4]`, содержащее искаженную ограничивающую рамку. Предоставьте входные данные для `tf.image.draw_bounding_boxes`.

публичный вывод <T> начать ()

1-D, содержащий `[offset_height, offset_width, 0]`. Предоставьте входные данные для `tf.slice`.

public static StatelessSampleDistortedBoundingBox <T> create (область области действия , операнд <T> imageSize, операнд <Float>boundingBoxes, операнд <Float> minObjectCovered, операнд <U> семя, параметры... параметры)

Фабричный метод для создания класса, обертывающего новую операцию StatelessSampleDistortedBoundingBox.

Параметры
объем текущий объем
Размер изображения 1-D, содержащий `[высоту, ширину, каналы]`.
ограничивающие коробки Трехмерное изображение с формой `[batch, N, 4]`, описывающее N ограничивающих рамок, связанных с изображением.
minObjectCovered Обрезанная область изображения должна содержать как минимум эту часть любой предоставленной ограничивающей рамки. Значение этого параметра должно быть неотрицательным. В случае 0 обрезанная область не обязательно должна перекрывать какую-либо из предоставленных ограничивающих рамок.
семя 1-D с формой `[2]`. Начальное значение для генератора случайных чисел. Должен иметь тип dtype `int32` или `int64`. (При использовании XLA допускается только `int32`.)
параметры содержит значения необязательных атрибутов
Возврат
  • новый экземпляр StatelessSampleDistortedBoundingBox

общедоступный статический StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

Параметры
МаксПопытки Количество попыток создания обрезанной области изображения с указанными ограничениями. После сбоя max_attempts вернуть все изображение.

размер публичного вывода <T> ()

1-D, содержащий `[target_height, target_width, -1]`. Предоставьте входные данные для `tf.slice`.

public static StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (логическое значение useImageIfNoBoundingBoxes)

Параметры
использоватьImageIfNoBoundingBoxes Управляет поведением, если ограничивающие рамки не указаны. Если это правда, предположим, что неявная ограничивающая рамка охватывает весь ввод. Если false, выдать ошибку.