tensorflow::ops::SampleDistortedBoundingBox
#include <image_ops.h>
Генерирует один случайный искажённый прямоугольник для изображения.
Краткое описание
Аннотации прямоугольников часто предоставляются дополнительно к истинным меткам в задачах распознавания изображений или локализации объектов. Распространённым методом обучения такой системы является случайное искажение изображения, сохраняя при этом его содержимое, т. е. усиление данных. Данный Op возвращает случайное искажённое расположение объекта, т. е. прямоугольник, учитывая image_size, bounding_boxes и ряд ограничений.
Выходной параметр этого Op — один прямоугольник, который можно использовать для обрезки исходного изображения. Выходной результат возвращается как 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, возникает ошибка.
Возвращает:
-
Outputbegin: 1-мерный массив, содержащий[offset_height, offset_width, 0]. Используется как вход дляtf.slice. -
Outputsize: 1-мерный массив, содержащий[target_height, target_width, -1]. Используется как вход дляtf.slice. -
Outputbboxes: 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 | |
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