Spec-Zone.ru › TensorFlow C++

tensorflow::ops::StatelessSampleDistortedBoundingBox

#include <image_ops.h>

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

Summary

Аннотации границ часто предоставляются дополнительно к меткам фактических результатов в задачах распознавания изображений или локализации объектов. Общей техникой для обучения такой системы является случайное искажение изображения при сохранении его содержимого, т. е. усиление данных. Этот оператор, получив те же 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 ложно, а прямоугольники не указаны, возникает ошибка.

Аргументы:

  • 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: Управляет поведением, если прямоугольники не указаны. Если истинно, предполагается неявный прямоугольник, охватывающий весь вход. Если ложно, возникает ошибка.

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

  • 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/api_docs/cc/class/tensorflow/ops/stateless-sample-distorted-bounding-box

Spec-Zone.ru

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