Spec-Zone.ru › TensorFlow C++

tensorflow::ops::SampleDistortedBoundingBoxV2

#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: одномерный тензор, содержащий [height, width, channels].
  • bounding_boxes: трёхмерный тензор формы [batch, N, 4], описывающий N ограничивающих рамок, связанных с изображением.
  • min_object_covered: обрезанная область изображения должна содержать не менее этой доли любой из заданных ограничивающих рамок. Значение этого параметра должно быть неотрицательным. Если оно равно 0, обрезанная область не обязана пересекаться ни с одной из заданных ограничивающих рамок.

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

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

Возвращает:

  • Output begin: одномерный тензор, содержащий [offset_height, offset_width, 0]. Передайте его в tf.slice.
  • Output size: одномерный тензор, содержащий [target_height, target_width, -1]. Передайте его в tf.slice.
  • Output bboxes: трёхмерный тензор формы [1, 1, 4], содержащий искажённую ограничивающую рамку. Передайте его в tf.image.draw_bounding_boxes.
Конструкторы и деструкторы
SampleDistortedBoundingBoxV2(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, ::tensorflow::Input min_object_covered)
SampleDistortedBoundingBoxV2(const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, ::tensorflow::Input min_object_covered, const SampleDistortedBoundingBoxV2::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
Seed(int64 x)
Attrs
Seed2(int64 x)
Attrs
UseImageIfNoBoundingBoxes(bool x)
Attrs
Структуры
tensorflow::ops::SampleDistortedBoundingBoxV2::Attrs

Методы настройки необязательных атрибутов для SampleDistortedBoundingBoxV2.

Открытые атрибуты

bboxes

::tensorflow::Output bboxes

begin

::tensorflow::Output begin

operation

Operation operation

size

::tensorflow::Output size

Открытые функции

SampleDistortedBoundingBoxV2

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

SampleDistortedBoundingBoxV2

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

Открытые статические функции

AreaRange

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

AspectRatioRange

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

MaxAttempts

Attrs MaxAttempts(
  int64 x
)

Seed

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  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/sample-distorted-bounding-box-v2

Spec-Zone.ru

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