nvidia.dali.fn.coord_transform#

nvidia.dali.fn.coord_transform(__input, /, *, M=None, MT=None, T=None, bytes_per_sample_hint=[0], dtype=DALIDataType.FLOAT, preserve=False, device=None, name=None)#

对点或向量应用线性变换。

变换形式如下:

out = M * in + T

其中 M 是一个 m x n 矩阵,T 是一个具有 m 个分量的平移向量。输入必须由 n 元素向量或点组成,输出具有 m 个分量。

此操作符可用于多种操作。以下是(不完整的)列表:

  • 将仿射变换应用于点云

  • 将点投影到子空间上

  • 一些颜色空间转换,例如 RGB 到 YCbCr 或灰度

  • 对颜色进行线性操作,如色调旋转、亮度及对比度调整

此操作符允许序列输入。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

__input (TensorList) – 操作符的输入。

关键字参数:
  • M (floatfloat 列表或 floatTensorList,可选) –

    用于变换输入向量的矩阵。

    如果未指定,则使用单位矩阵。

    矩阵 M 不需要是方阵 - 如果不是,则输出向量的分量数将等于 M 中的行数。

    如果提供标量值,则 M 被假定为对角线上具有该值的方阵。然后,矩阵的大小被假定为与输入向量中的分量数匹配。

    支持 per-frame 输入。

  • MT (floatfloat 列表或 floatTensorList,可选) –

    一个块矩阵 [M T],它组合了参数 MT

    为此参数提供标量值等同于为 M 提供相同的标量值,而将 T 保持未指定状态。

    列数必须比输入中的分量数多一个。此参数与 MT 互斥。

    支持 per-frame 输入。

  • T (floatfloat 列表或 floatTensorList,可选) –

    平移向量。

    如果未指定,则不应用平移,除非使用了 MT 参数。

    此向量的分量数必须与矩阵 M 中的行数匹配。如果提供标量值,则该值将广播到 T 的所有分量,并且选择的分量数与 M 中的行数匹配。

    支持 per-frame 输入。

  • bytes_per_sample_hint (int 或 int 列表,可选,默认值 = [0]) –

    输出大小提示,以每样本字节数为单位。

    如果指定,则驻留在 GPU 或页锁定主机内存中的操作符输出将被预先分配,以容纳此大小的样本批次。

  • dtype (nvidia.dali.types.DALIDataType,可选,默认值 = DALIDataType.FLOAT) –

    输出坐标的数据类型。

    如果使用整数类型,则输出值将四舍五入到最接近的整数,并钳制到此类型的动态范围。

  • preserve (bool,可选,默认值 = False) – 阻止操作符从图中移除,即使其输出未使用。