tensorflow::ops::SampleDistortedBoundingBoxV2
#include <image_ops.h>
Генерация одного случайного искажённого прямоугольника для изображения.
Summary
Аннотации прямоугольников часто предоставляются дополнительно к истинным меткам в задачах распознавания изображений или локализации объектов. Распространённый метод обучения такой системы заключается в случайном искажении изображения при сохранении его содержимого, то есть усиление данных. Данный 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 прямоугольников, связанных с изображением. - min_object_covered: Область изображения после обрезки должна содержать по меньшей мере эту долю любого предоставленного прямоугольника. Значение этого параметра должно быть неотрицательным. В случае 0, область обрезки не обязана перекрывать какие-либо предоставленные прямоугольники.
Необязательные атрибуты (см. Attrs):
- seed: Если либо
seedилиseed2установлены в ненулевое значение, генератор случайных чисел инициализируется указаннымseed. В противном случае используется случайное значение. - seed2: Второй seed для предотвращения конфликтов.
- 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.
| Конструкторы и деструкторы | |
|---|---|
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 | |
begin | |
operation | |
size | |
| Публичные статические функции | |
|---|---|
AreaRange(const gtl::ArraySlice< float > & x) | |
AspectRatioRange(const gtl::ArraySlice< float > & x) | |
MaxAttempts(int64 x) | |
Seed(int64 x) | |
Seed2(int64 x) | |
UseImageIfNoBoundingBoxes(bool x) | |
| Структуры | |
|---|---|
| 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 )
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/cc/class/tensorflow/ops/sample-distorted-bounding-box-v2