тензорный поток:: опс:: СэмплДистортедБаундингбокс
#include <image_ops.h>Создайте одну случайно искаженную ограничивающую рамку для изображения.
Краткое содержание
 Аннотации ограничивающего прямоугольника часто предоставляются в дополнение к основным меткам в задачах распознавания изображений или локализации объектов. Распространенным методом обучения такой системы является случайное искажение изображения с сохранением его содержания, т. е. увеличение данных . Эта операция выводит случайно искаженную локализацию объекта, то есть ограничивающую рамку с учетом image_size , bounding_boxes и ряда ограничений.
 Результатом этой операции является единая ограничивающая рамка, которую можно использовать для обрезки исходного изображения. Выходные данные возвращаются в виде трех тензоров: begin , size и bboxes . Первые два тензора можно передать непосредственно в 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 и ограничивающие рамки не указаны, возникает ошибка.
Аргументы:
- область: объект области.
-  image_size: 1-D, содержащий [height, width, channels].
-  Bounding_boxes: 3-D с формой [batch, N, 4], описывающей N ограничивающих рамок, связанных с изображением.
 Необязательные атрибуты (см. Attrs ):
-  семя: если для seedилиseed2установлено значение, отличное от нуля, генератор случайных чисел заполняется даннымseed. В противном случае он засеивается случайным семенем.
- семя2: второе семя, чтобы избежать столкновения семян.
- min_object_covered: обрезанная область изображения должна содержать как минимум эту часть любой предоставленной ограничивающей рамки. Значение этого параметра должно быть неотрицательным. В случае 0 обрезанная область не обязательно должна перекрывать какую-либо из предоставленных ограничивающих рамок.
- age_ratio_range: обрезанная область изображения должна иметь соотношение сторон = ширина/высота в пределах этого диапазона.
- area_range: обрезанная область изображения должна содержать часть предоставленного изображения в пределах этого диапазона.
-  max_attempts: количество попыток создания обрезанной области изображения с указанными ограничениями. После сбоя max_attemptsверните весь образ.
- use_image_if_no_bounding_boxes: управляет поведением, если ограничивающие рамки не указаны. Если это правда, предположим, что неявная ограничивающая рамка охватывает весь ввод. Если false, выдать ошибку.
Возврат:
-  Начало Output: 1-D, содержащее[offset_height, offset_width, 0]. Предоставьте входные данные дляtf.slice.
-  Размер Output: 1-D, содержащий[target_height, target_width, -1]. Предоставьте входные данные дляtf.slice.
-  Outputbbox: трехмерные с формой[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
начинать
::tensorflow::Output begin
операция
Operation operation
размер
::tensorflow::Output size
Общественные функции
СэмплДистортедБаундингбокс
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 )
Публичные статические функции
ПлощадьДиапазон
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 )