RandomErasing

class paddle.vision.transforms. RandomErasing ( prob=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False, keys=None ) [源代码]

擦除图像中随机选择的矩形区域内的像素。

参数

  • prob (float,可选) - 输入数据被执行擦除操作的概率。默认值:0.5。

  • scale (sequence,可选) - 擦除区域面积在输入图像的中占比范围。默认值:(0.02, 0.33)。

  • ratio (sequence,可选) - 擦除区域的纵横比范围。默认值:(0.3, 3.3)。

  • value (int|float|sequence|str,可选) - 擦除区域中像素将被替换为的值。如果 value 是一个数,所有的像素都将被替换为这个数。如果 value 是长为 3 的序列,R,G,B 通道将被对应地替换。如果 value 是"random",每个像素会被替换为随机值。默认值:0。

  • inplace (bool,可选) - 该变换是否在原地操作。默认值:False。

  • keys (list[str]|tuple[str],可选) - 与 BaseTransform 定义一致。默认值:None。

形状

  • img (paddle.Tensor|np.array|PIL.Image) - 输入的图像数据。对于 Tensor 类型的输入,形状需要为(C, H, W)。对于 np.array 类型的输入,形状为(H, W, C)。

  • output (paddle.Tensor|np.array|PIL.Image) - 返回随机擦除后的图像数据。

返回

计算 RandomErasing 的可调用对象。

代码示例

>>> import paddle

>>> fake_img = paddle.randn((1, 5, 5)).astype(paddle.float32)
>>> transform = paddle.vision.transforms.RandomErasing()
>>> result = transform(fake_img)
>>> print(result)
Tensor(shape=[1, 5, 5], dtype=float32, place=Place(gpu:0), stop_gradient=True,
[[[-0.22141267, -0.71004093,  1.71224928,  2.99622107, -0.82959402],
  [ 0.36916021, -0.25601348,  0.86669374,  1.27504587, -0.56462914],
  [-0.45704395, -0.87613666,  1.12195814, -0.87974882,  0.04902615],
  [-0.91549885, -0.15066874,  1.26381516,  0.        ,  0.        ],
  [ 0.87887472, -1.59914243, -0.73970413,  0.        ,  0.        ]]])