tf.raw_ops.SampleDistortedBoundingBoxV2 | TensorFlow v2.16.1 (original) (raw)
tf.raw_ops.SampleDistortedBoundingBoxV2
Stay organized with collections Save and categorize content based on your preferences.
Generate a single randomly distorted bounding box for an image.
View aliases
Compat aliases for migration
SeeMigration guide for more details.
tf.compat.v1.raw_ops.SampleDistortedBoundingBoxV2
tf.raw_ops.SampleDistortedBoundingBoxV2(
image_size,
bounding_boxes,
min_object_covered,
seed=0,
seed2=0,
aspect_ratio_range=[0.75, 1.33],
area_range=[0.05, 1],
max_attempts=100,
use_image_if_no_bounding_boxes=False,
name=None
)
Bounding box annotations are often supplied in addition to ground-truth labels in image recognition or object localization tasks. A common technique for training such a system is to randomly distort an image while preserving its content, i.e. data augmentation. This Op outputs a randomly distorted localization of an object, i.e. bounding box, given an image_size
,bounding_boxes
and a series of constraints.
The output of this Op is a single bounding box that may be used to crop the original image. The output is returned as 3 tensors: begin
, size
andbboxes
. The first 2 tensors can be fed directly into tf.slice to crop the image. The latter may be supplied to tf.image.draw_bounding_boxes to visualize what the bounding box looks like.
Bounding boxes are supplied and returned as [y_min, x_min, y_max, x_max]
. The bounding box coordinates are floats in [0.0, 1.0]
relative to the width and height of the underlying image.
For example,
# 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)
Note that if no bounding box information is available, settinguse_image_if_no_bounding_boxes = true
will assume there is a single implicit bounding box covering the whole image. If use_image_if_no_bounding_boxes
is false and no bounding boxes are supplied, an error is raised.
Args | |
---|---|
image_size | A Tensor. Must be one of the following types: uint8, int8, int16, int32, int64. 1-D, containing [height, width, channels]. |
bounding_boxes | A Tensor of type float32. 3-D with shape [batch, N, 4] describing the N bounding boxes associated with the image. |
min_object_covered | A Tensor of type float32. The cropped area of the image must contain at least this fraction of any bounding box supplied. The value of this parameter should be non-negative. In the case of 0, the cropped area does not need to overlap any of the bounding boxes supplied. |
seed | An optional int. Defaults to 0. If either seed or seed2 are set to non-zero, the random number generator is seeded by the given seed. Otherwise, it is seeded by a random seed. |
seed2 | An optional int. Defaults to 0. A second seed to avoid seed collision. |
aspect_ratio_range | An optional list of floats. Defaults to [0.75, 1.33]. The cropped area of the image must have an aspect ratio = width / height within this range. |
area_range | An optional list of floats. Defaults to [0.05, 1]. The cropped area of the image must contain a fraction of the supplied image within this range. |
max_attempts | An optional int. Defaults to 100. Number of attempts at generating a cropped region of the image of the specified constraints. After max_attempts failures, return the entire image. |
use_image_if_no_bounding_boxes | An optional bool. Defaults to False. Controls behavior if no bounding boxes supplied. If true, assume an implicit bounding box covering the whole input. If false, raise an error. |
name | A name for the operation (optional). |
Returns | |
---|---|
A tuple of Tensor objects (begin, size, bboxes). | |
begin | A Tensor. Has the same type as image_size. |
size | A Tensor. Has the same type as image_size. |
bboxes | A Tensor of type float32. |