Spec-Zone.ru › TensorFlow C++ 2.9

tensorflow::ops::StatelessSampleDistortedBoundingBox

#include <image_ops.h>

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

Краткое описание

Аннотации рамок часто предоставляются дополнительно к истинным меткам в задачах распознавания изображений или локализации объектов. Распространённый метод обучения такой системы — это случайное искажение изображения при сохранении его содержимого, т. е. аугментация данных. Данный оператор, при одинаковом seed, детерминированно выводит случайно искажённое расположение объекта, т. е. рамку, при заданном 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] относительно ширины и высоты исходного изображения.

Выход этого оператора гарантированно будет таким же при одинаковом seed и не зависит от того, сколько раз функция вызывается, а также независим от глобальных настроек семян (например, 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]) seed = (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(image, bbox_begin, bbox_size)

Отображение рамки в резюме изображения.

colors = 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, colors)

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

Аргументы:

  • scope: Объект Scope
  • image_size: 1-мерный массив, содержащий [height, width, channels].
  • bounding_boxes: 3-мерный массив размером [batch, N, 4] описывающий N рамок, связанных с изображением.
  • min_object_covered: Область обрезки изображения должна содержать не менее этой доли любой предоставленной рамки. Значение этого параметра должно быть неотрицательным. В случае 0, область обрезки не обязательно должна перекрывать какие-либо из предоставленных рамок.
  • seed: 1-мерный массив размером [2]. Семено генератора случайных чисел. Должен иметь тип int32 или int64. (При использовании XLA разрешён только int32).

Необязательные атрибуты (см. Attrs):

  • aspect_ratio_range: Область обрезки изображения должна иметь отношение сторон = ширина / высота в пределах этого диапазона.
  • area_range: Область обрезки изображения должна содержать долю исходного изображения в пределах этого диапазона.
  • max_attempts: Количество попыток генерации обрезанной области изображения, удовлетворяющей указанным ограничениям. После max_attempts неудач возвращается всё изображение.
  • use_image_if_no_bounding_boxes: Управляет поведением, если рамки не предоставлены. Если true, предполагается неявная рамка, охватывающая весь вход. Если false, генерируется ошибка.

Возвращаемые значения:

  • Output begin: 1-мерный массив, содержащий [offset_height, offset_width, 0]. Используется в качестве входных данных для tf.slice.
  • Output size: 1-мерный массив, содержащий [target_height, target_width, -1]. Используется в качестве входных данных для tf.slice.
  • Output bboxes: 3-мерный массив размером [1, 1, 4] содержащий искажённую рамку. Используется в качестве входных данных для tf.image.draw_bounding_boxes.
Конструкторы и деструкторы
StatelessSampleDistortedBoundingBox(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, ::tensorflow::Input min_object_covered, ::tensorflow::Input seed)
StatelessSampleDistortedBoundingBox(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, ::tensorflow::Input min_object_covered, ::tensorflow::Input seed, const StatelessSampleDistortedBoundingBox::Attrs & attrs)
Общедоступные атрибуты
bboxes
::tensorflow::Output
begin
::tensorflow::Output
operation
Operation
size
::tensorflow::Output
Общедоступные статические функции
AreaRange(const gtl::ArraySlice< float > & x)
Attrs
AspectRatioRange(const gtl::ArraySlice< float > & x)
Attrs
MaxAttempts(int64 x)
Attrs
UseImageIfNoBoundingBoxes(bool x)
Attrs
Структуры
tensorflow::ops::StatelessSampleDistortedBoundingBox::Attrs

Необязательные параметры установки для StatelessSampleDistortedBoundingBox.

Общедоступные атрибуты

bboxes

::tensorflow::Output bboxes

begin

::tensorflow::Output begin

operation

Operation operation

size

::tensorflow::Output size

Общедоступные функции

StatelessSampleDistortedBoundingBox

 StatelessSampleDistortedBoundingBox(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered,
  ::tensorflow::Input seed
)

StatelessSampleDistortedBoundingBox

 StatelessSampleDistortedBoundingBox(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered,
  ::tensorflow::Input seed,
  const StatelessSampleDistortedBoundingBox::Attrs & attrs
)

Общедоступные статические функции

AreaRange

Attrs AreaRange(
  const gtl::ArraySlice< float > & x
)

AspectRatioRange

Attrs AspectRatioRange(
  const gtl::ArraySlice< float > & x
)

MaxAttempts

Attrs MaxAttempts(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)

© 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/versions/r2.9/api_docs/cc/class/tensorflow/ops/stateless-sample-distorted-bounding-box

Spec-Zone.ru

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