Keras 3 API 文档 / KerasCV / / 增强层 / JitteredResize 层

抖动缩放层

[来源]

JitteredResize

keras_cv.layers.JitteredResize(
    target_size,
    scale_factor,
    crop_size=None,
    bounding_box_format=None,
    interpolation="bilinear",
    seed=None,
    **kwargs
)

JitteredResize 实现带有尺度失真的缩放。

JitteredResize 采用三步法来实现基于尺度失真的图像增强。这种技术专门针对目标检测管道进行调整。该层接受图像和边界框的输入,两者都可能是参差不齐的。它输出一个密集的图像张量,可以立即馈送到模型以进行训练。因此,该层通常将是增强管道中的最后一步。

增强过程如下

图像首先根据随机采样的尺度因子进行缩放。然后根据采样的尺度调整图像的宽度和高度。这样做是为了在图像中特征的局部尺度中引入噪声。然后根据 crop_size 随机裁剪图像的子集。然后对该裁剪进行填充以成为 target_size。边界框根据随机缩放和随机裁剪进行平移和缩放。

参数

  • target_size: 表示图像输出尺寸的元组。
  • scale_factor: 两个浮点数的元组或 keras_cv.FactorSampler。对于每个增强图像,从提供的范围中采样一个值。该因子用于缩放输入图像。要复制 MaskRCNN 论文的结果,请传递 (0.8, 1.25)
  • crop_size: (可选)从缩放后的图像中裁剪的图像尺寸,如果没有提供,则默认为 target_size
  • bounding_box_format: 输入框边界框的格式。有关支持的边界框格式的更多详细信息,请参阅 https://github.com/keras-team/keras-cv/blob/master/keras_cv/bounding_box/converters.py。
  • interpolation: 字符串,插值方法,默认为 "bilinear"。支持 "bilinear""nearest""bicubic""area""lanczos3""lanczos5""gaussian""mitchellcubic"
  • seed: (可选)用作随机种子整数。

示例

train_ds = load_object_detection_dataset()
jittered_resize = layers.JitteredResize(
    target_size=(640, 640),
    scale_factor=(0.8, 1.25),
    bounding_box_format="xywh",
)
train_ds = train_ds.map(
    jittered_resize, num_parallel_calls=tf.data.AUTOTUNE
)
# images now are (640, 640, 3)

# an example using crop size
train_ds = load_object_detection_dataset()
jittered_resize = layers.JitteredResize(
    target_size=(640, 640),
    crop_size=(250, 250),
    scale_factor=(0.8, 1.25),
    bounding_box_format="xywh",
)
train_ds = train_ds.map(
    jittered_resize, num_parallel_calls=tf.data.AUTOTUNE
)
# images now are (640, 640, 3), but they were resized from a 250x250 crop.