为图像生成单个随机扭曲的边界框。 (已弃用)
用法
tf.compat.v1.image.sample_distorted_bounding_box(
image_size, bounding_boxes, seed=None, seed2=None, min_object_covered=0.1,
aspect_ratio_range=None, area_range=None, max_attempts=None,
use_image_if_no_bounding_boxes=None, name=None
)
参数
-
image_size
一个Tensor
。必须是以下类型之一:uint8
,int8
,int16
,int32
,int64
。一维,包含[height, width, channels]
。 -
bounding_boxes
Tensor
类型为float32
。 3-D,形状为[batch, N, 4]
,说明了与图像相关的 N 个边界框。 -
seed
可选的int
。默认为0
。如果seed
或seed2
设置为非零,则随机数生成器由给定的seed
播种。否则,它由随机种子播种。 -
seed2
可选的int
。默认为0
。避免种子碰撞的第二个种子。 -
min_object_covered
float32
类型的张量。默认为0.1
。图像的裁剪区域必须至少包含所提供的任何边界框的这一部分。此参数的值应为非负数。在 0 的情况下,裁剪区域不需要与提供的任何边界框重叠。 -
aspect_ratio_range
floats
的可选列表。默认为[0.75, 1.33]
。图像的裁剪区域必须在此范围内具有纵横比 = 宽度 /高度。 -
area_range
floats
的可选列表。默认为[0.05, 1]
。图像的裁剪区域必须包含此范围内提供的图像的一小部分。 -
max_attempts
可选的int
。默认为100
。尝试生成具有指定约束的图像的裁剪区域的次数。max_attempts
失败后,返回整个图像。 -
use_image_if_no_bounding_boxes
可选的bool
。默认为False
。如果未提供边界框,则控制行为。如果为真,则假设一个隐式边界框覆盖整个输入。如果为 false,则引发错误。 -
name
操作的名称(可选)。
返回
-
Tensor
对象的元组(开始、大小、bbox)。 -
begin
一个Tensor
。具有与image_size
相同的类型。一维,包含[offset_height, offset_width, 0]
。作为输入提供给tf.slice
。 -
size
一个Tensor
。具有与image_size
相同的类型。一维,包含[target_height, target_width, -1]
。作为输入提供给tf.slice
。 -
bboxes
Tensor
类型为float32
。 3-D,形状为[1, 1, 4]
,包含扭曲的边界框。作为输入提供给tf.image.draw_bounding_boxes
。
抛出
-
ValueError
如果未指定种子并启用操作确定性。
警告:此函数已弃用。它将在未来的版本中删除。更新说明:seed2
arg 已弃用。请改用 sample_distorted_bounding_box_v2。
在图像识别或对象定位任务中,除了 ground-truth 标签之外,通常还提供边界框注释。训练这种系统的常用技术是在保留其内容的同时随机扭曲图像,即数据增强。在给定 image_size
, bounding_boxes
和一系列约束的情况下,此 Op 输出对象的随机失真定位,即边界框。
这个 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,
min_object_covered=0.1)
# 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.compat.v1.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
为假且未提供边界框,则会引发错误。
相关用法
- Python tf.compat.v1.image.draw_bounding_boxes用法及代码示例
- Python tf.compat.v1.image.extract_glimpse用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代码示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.Variable.eval用法及代码示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.layers.conv3d用法及代码示例
- Python tf.compat.v1.strings.length用法及代码示例
- Python tf.compat.v1.data.Dataset.snapshot用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.reduce用法及代码示例
- Python tf.compat.v1.feature_column.categorical_column_with_vocabulary_file用法及代码示例
- Python tf.compat.v1.data.TextLineDataset.from_tensors用法及代码示例
- Python tf.compat.v1.variable_scope用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.as_numpy_iterator用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代码示例
- Python tf.compat.v1.placeholder用法及代码示例
- Python tf.compat.v1.layers.Conv3D用法及代码示例
- Python tf.compat.v1.train.get_or_create_global_step用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.image.sample_distorted_bounding_box。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。