Создайте одну случайно искаженную ограничивающую рамку для изображения.
Аннотации ограничивающего прямоугольника часто предоставляются в дополнение к основным меткам в задачах распознавания изображений или локализации объектов. Распространенным методом обучения такой системы является случайное искажение изображения с сохранением его содержания, т. е. увеличение данных . Эта операция выводит случайно искаженную локализацию объекта, то есть ограничивающую рамку с учетом `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)
 Вложенные классы
| сорт | SampleDistortedBoundingBox.Options | Дополнительные атрибуты для SampleDistortedBoundingBox | |
Константы
| Нить | OP_NAME | Название этой операции, известное основному движку TensorFlow. | 
Публичные методы
| статический SampleDistortedBoundingBox.Options |  areaRange (Список<Float> areaRange) | 
| статический SampleDistortedBoundingBox.Options |  аспектРатиоРанге (Список<Float> аспектРатиоРанге) | 
| Вывод <TFloat32> |  ббоксы ()  Трехмерное изображение с формой `[1, 1, 4]`, содержащее искаженную ограничивающую рамку. | 
| Выход <Т> |  начинать ()  1-D, содержащий `[offset_height, offset_width, 0]`. | 
| static <T расширяет TNumber > SampleDistortedBoundingBox <T> |  create ( Область действия , Операнд <T> imageSize, Операнд <TFloat32> boundingBoxes, Операнд <TFloat32> minObjectCovered, Параметры... параметры)  Фабричный метод для создания класса, обертывающего новую операцию SampleDistortedBoundingBox. | 
| статический SampleDistortedBoundingBox.Options |  maxAttempts (длинные maxAttempts) | 
| статический SampleDistortedBoundingBox.Options |  семя (длинное семя) | 
| статический SampleDistortedBoundingBox.Options |  семя2 (длинное семя2) | 
| Выход <Т> |  размер ()  1-D, содержащий `[target_height, target_width, -1]`. | 
| статический SampleDistortedBoundingBox.Options |  useImageIfNoBoundingBoxes (логическое значение useImageIfNoBoundingBoxes)  | 
Унаследованные методы
Константы
общедоступная статическая финальная строка OP_NAME
Название этой операции, известное основному движку TensorFlow.
Публичные методы
общедоступный статический SampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)
Параметры
| площадьДиапазон | Обрезанная область изображения должна содержать часть предоставленного изображения в пределах этого диапазона. | 
|---|
общедоступный статический SampleDistortedBoundingBox.Options аспектRatioRange (List<Float> аспектRatioRange)
Параметры
| аспектRatioRange | Обрезанная область изображения должна иметь соотношение сторон = ширина/высота в пределах этого диапазона. | 
|---|
публичный вывод <TFloat32> bboxes ()
 Трехмерное изображение с формой `[1, 1, 4]`, содержащее искаженную ограничивающую рамку. Предоставьте входные данные для tf.image.draw_bounding_boxes . 
публичный вывод <T> начать ()
 1-D, содержащий `[offset_height, offset_width, 0]`. Предоставьте входные данные для tf.slice . 
public static SampleDistortedBoundingBox <T> create ( область области действия, операнд <T> imageSize, операнд < TFloat32 >boundingBoxes, операнд < TFloat32 > minObjectCovered, параметры... параметры)
Фабричный метод для создания класса, обертывающего новую операцию SampleDistortedBoundingBox.
Параметры
| объем | текущий объем | 
|---|---|
| Размер изображения | 1-D, содержащий `[высоту, ширину, каналы]`. | 
| ограничивающие коробки | Трехмерное изображение с формой `[batch, N, 4]`, описывающее N ограничивающих рамок, связанных с изображением. | 
| minObjectCovered | Обрезанная область изображения должна содержать как минимум эту часть любой предоставленной ограничивающей рамки. Значение этого параметра должно быть неотрицательным. В случае 0 обрезанная область не обязательно должна перекрывать какую-либо из предоставленных ограничивающих рамок. | 
| параметры | содержит значения необязательных атрибутов | 
Возврат
- новый экземпляр SampleDistortedBoundingBox
общедоступный статический SampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)
Параметры
| МаксПопытки | Количество попыток создания обрезанной области изображения с указанными ограничениями. После неудачи max_attempts вернуть все изображение. | 
|---|
общедоступное статическое семя SampleDistortedBoundingBox.Options (длинное семя)
Параметры
| семя | Если для `seed` или `seed2` установлено значение, отличное от нуля, генератор случайных чисел заполняется данным `seed`. В противном случае он засеивается случайным семенем. | 
|---|
общедоступный статический SampleDistortedBoundingBox.Options семя2 (длинное семя2)
Параметры
| семя2 | Второе семя, чтобы избежать столкновения семян. | 
|---|
размер публичного вывода <T> ()
 1-D, содержащий `[target_height, target_width, -1]`. Предоставьте входные данные для tf.slice . 
общедоступный статический SampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (логическое значение useImageIfNoBoundingBoxes)
Параметры
| использоватьImageIfNoBoundingBoxes | Управляет поведением, если ограничивающие рамки не указаны. Если это правда, предположим, что неявная ограничивающая рамка охватывает весь ввод. Если false, выдать ошибку. | 
|---|