megengine.data.transform.VisionTransform

class VisionTransform(order=None)[源代码]

计算机视觉(vision)中所有transform(数据增广)类函数的基类。 调用逻辑:apply_batch() -> apply() -> _apply_image() 以及其他类似 _apply_*() 的类方法。 如果需要自定义处理图像的transform函数的实现,在子类中重写 _apply_image 方法。

参数

order

输入数据中各类型的顺序。输入数据是由不同类型数据组成元组,order则可以用来指明其中 各类数据类型出现的顺序。比如,如果输入为(image, boxes)类型,那么order应该相应地设为(“image”, “boxes”)。目前支持的字符串类型与数据类型有:

  • ”image”: 输入图像,形为 (H, W, C)

  • ”coords”: 坐标,形为 (N, 2)

  • ”boxes”: bounding boxes,形为 (N, 4),采用 “xyxy” 格式,第一个”xy”代表box的左上角,第二个”xy”代表右下角。

  • ”mask”: 用于图像分割的 mask map,形为 (H, W, 1)

  • ”keypoints”: 特征点,形为 (N, K, 3),其中 N 为实例数量, K 为一个实例中的特征点数量。最后一轴对应的数据前两维是特征点的坐标,第三维则是特征点的标签。

  • ”polygons”: 包含numpy数组的序列。其长为实例的数目,每个numpy数组代表一个实例的多边形坐标。

  • ”category”: 某些数据类型的标签。比如,”image_category”表示输入图像的类别,”boxes_category”表示bounding box的类别。

  • ”info”: 关于图像的信息,比如图像形状与图像路径。

只有自定义实现了对应的_apply_*(),才支持自定义数据类型,否则抛出 NotImplementedError 错误。

方法

apply(input)

对单个输入数据实施数据增强。

apply_batch(inputs)

对一批(batch)的输入数据实施数据增广。