Spec-Zone.ru › TensorFlow C++ 2.9

tensorflow::ops::SampleDistortedBoundingBox

#include <image_ops.h>

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

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

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

Например,

# 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 и рамки не предоставлены, генерируется ошибка.

Аргументы:

  • scope: Объект Scope
  • image_size: 1-мерный массив, содержащий [height, width, channels].
  • bounding_boxes: 3-мерный массив с формой [batch, N, 4] описывающий N рамок, связанных с изображением.

Дополнительные атрибуты (см. Attrs):

  • seed: Если либо seed или seed2 установлены в ненулевое значение, генератор случайных чисел инициализируется заданным seed. В противном случае, он инициализируется случайным значением.
  • seed2: Второй параметр генерации, для предотвращения коллизий.
  • min_object_covered: Область обрезки изображения должна содержать не менее этой доли любой предоставленной рамки. Значение этого параметра должно быть неотрицательным. В случае 0, области обрезки не обязательно нужно перекрывать предоставленные рамки.
  • 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.
Конструкторы и деструкторы
SampleDistortedBoundingBox(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes)
SampleDistortedBoundingBox(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::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
MinObjectCovered(float x)
Attrs
Seed(int64 x)
Attrs
Seed2(int64 x)
Attrs
UseImageIfNoBoundingBoxes(bool x)
Attrs
Структуры
tensorflow::ops::SampleDistortedBoundingBox::Attrs

Дополнительные параметры для SampleDistortedBoundingBox.

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

bboxes

::tensorflow::Output bboxes

begin

::tensorflow::Output begin

operation

Operation operation

size

::tensorflow::Output size

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

SampleDistortedBoundingBox

 SampleDistortedBoundingBox(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes
)

SampleDistortedBoundingBox

 SampleDistortedBoundingBox(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  const SampleDistortedBoundingBox::Attrs & attrs
)

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

Диапазон значений площади

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

Диапазон коэффициентов формы

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

Максимальное количество попыток

Attrs MaxAttempts(
  int64 x
)

Минимальная покрываемая область

Attrs MinObjectCovered(
  float x
)

Генератор случайных чисел

Attrs Seed(
  int64 x
)

Генератор случайных чисел 2

Attrs Seed2(
  int64 x
)

Использовать изображение при отсутствии рамок

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/sample-distorted-bounding-box

Spec-Zone.ru

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