Создайте одну случайно искаженную ограничивающую рамку для изображения.
Аннотации ограничивающего прямоугольника часто предоставляются в дополнение к основным меткам в задачах распознавания изображений или локализации объектов. Распространенным методом обучения такой системы является случайное искажение изображения с сохранением его содержания, т. е. увеличение данных . Эта операция выводит случайно искаженную локализацию объекта, то есть ограничивающую рамку с учетом `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, выдать ошибку. |
---|