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: одномерный тензор, содержащий
[height, width, channels]. - bounding_boxes: трехмерный тензор формы
[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, возникает ошибка.
Возвращает:
-
Outputbegin: одномерный тензор, содержащий[offset_height, offset_width, 0]. Передайте его в качестве входных данных вtf.slice. -
Outputsize: одномерный тензор, содержащий[target_height, target_width, -1]. Передайте его в качестве входных данных вtf.slice. -
Outputbboxes: трехмерный тензор формы[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 | |
begin | |
operation | |
size | |
| Общедоступные статические функции | |
|---|---|
AreaRange(const gtl::ArraySlice< float > & x) | |
AspectRatioRange(const gtl::ArraySlice< float > & x) | |
MaxAttempts(int64 x) | |
MinObjectCovered(float x) | |
Seed(int64 x) | |
Seed2(int64 x) | |
UseImageIfNoBoundingBoxes(bool x) | |
| Структуры | |
|---|---|
| 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 )
Общедоступные статические функции
AreaRange
Attrs AreaRange( const gtl::ArraySlice< float > & x )
AspectRatioRange
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
MaxAttempts
Attrs MaxAttempts( int64 x )
MinObjectCovered
Attrs MinObjectCovered( float 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