nvidia.dali.fn.resize_crop_mirror#

nvidia.dali.fn.resize_crop_mirror(__input, /, *, antialias=True, bytes_per_sample_hint=[0], crop=None, crop_d=0.0, crop_h=0.0, crop_pos_x=0.5, crop_pos_y=0.5, crop_pos_z=0.5, crop_w=0.0, dtype=None, interp_type=DALIInterpType.INTERP_LINEAR, mag_filter=DALIInterpType.INTERP_LINEAR, max_size=None, min_filter=DALIInterpType.INTERP_LINEAR, minibatch_size=32, mirror=0, mode='default', preserve=False, resize_longer=0.0, resize_shorter=0.0, resize_x=0.0, resize_y=0.0, resize_z=0.0, roi_end=None, roi_relative=False, roi_start=None, rounding='round', size=None, subpixel_scale=True, temp_buffer_hint=0, device=None, name=None)#

执行融合的调整大小、裁剪、镜像操作。

此操作的结果等效于应用 resize,然后是 cropflip。在内部,此操作符会计算相关的感兴趣区域,并对该区域执行单次调整大小操作。

此操作符允许序列输入并支持体积数据。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

__input (TensorList ('HWC', 'FHWC', 'CHW', 'FCHW', 'CFHW', 'DHWC', 'FDHWC', 'CDHW', 'FCDHW', 'CFDHW')) – 操作符的输入。

关键字参数:
  • antialias (bool, optional, default = True) –

    如果启用,则在缩小比例时应用抗锯齿滤波器。

    注意

    最近邻插值不支持抗锯齿。

  • bytes_per_sample_hint (int or list of int, optional, default = [0]) –

    每个样本的输出大小提示(以字节为单位)。

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

  • crop (float or list of float or TensorList of float, optional) –

    裁剪图像的形状,指定为值列表(例如,对于 2D 裁剪为 (crop_H, crop_W),对于体积裁剪为 (crop_D, crop_H, crop_W))。

    提供 crop 参数与提供单独的参数(如 crop_dcrop_hcrop_w)不兼容。

  • crop_d (float or TensorList of float, optional, default = 0.0) –

    适用于体积输入;裁剪窗口深度(以体素为单位)。

    crop_wcrop_hcrop_d 必须一起指定。为 crop_wcrop_hcrop_d 提供值与提供固定裁剪窗口尺寸(参数 crop)不兼容。

  • crop_h (float or TensorList of float, optional, default = 0.0) –

    裁剪窗口高度(以像素为单位)。

    crop_wcrop_h 提供值与提供固定裁剪窗口尺寸(参数 crop)不兼容。

  • crop_pos_x (float or TensorList of float, optional, default = 0.5) –

    裁剪窗口的标准化(0.0 - 1.0)水平位置(左上角)。

    实际位置计算为 crop_x = crop_x_norm * (W - crop_W),其中 crop_x_norm 是标准化位置,W 是图像宽度,crop_W 是裁剪窗口宽度。

    有关 crop_x 如何转换为整数值的更多详细信息,请参阅 rounding 参数。

  • crop_pos_y (float or TensorList of float, optional, default = 0.5) –

    裁剪窗口起点的标准化(0.0 - 1.0)垂直位置(通常为左上角)。

    实际位置计算为 crop_y = crop_y_norm * (H - crop_H),其中 crop_y_norm 是标准化位置,H 是图像高度,crop_H 是裁剪窗口高度。

    有关 crop_y 如何转换为整数值的更多详细信息,请参阅 rounding 参数。

  • crop_pos_z (float or TensorList of float, optional, default = 0.5) –

    适用于体积输入。

    裁剪窗口的标准化(0.0 - 1.0)法线位置(前平面)。实际位置计算为 crop_z = crop_z_norm * (D - crop_D),其中 crop_z_norm 是标准化位置,D 是图像深度,crop_D 是裁剪窗口深度。

    有关 crop_z 如何转换为整数值的更多详细信息,请参阅 rounding 参数。

  • crop_w (float or TensorList of float, optional, default = 0.0) –

    裁剪窗口宽度(以像素为单位)。

    crop_wcrop_h 提供值与提供固定裁剪窗口尺寸(参数 crop)不兼容。

  • dtype (nvidia.dali.types.DALIDataType, optional) –

    输出数据类型。

    必须与输入类型或 float 相同。如果未设置,则使用输入类型。

  • interp_type (nvidia.dali.types.DALIInterpType or TensorList of nvidia.dali.types.DALIInterpType, optional, default = DALIInterpType.INTERP_LINEAR) –

    要使用的插值类型。

    使用 min_filtermag_filter 可以为缩小比例和放大比例指定不同的滤波。

    注意

    现在已弃用 INTERP_TRIANGULAR 的用法,应将其替换为

    启用 antialias 的 INTERP_LINEAR。

  • mag_filter (nvidia.dali.types.DALIInterpType or TensorList of nvidia.dali.types.DALIInterpType, optional, default = DALIInterpType.INTERP_LINEAR) – 放大比例时使用的滤波器。

  • max_size (float or list of float, optional) –

    输出大小的限制。

    当操作符配置为保持纵横比且仅指定较小尺寸时,其他尺寸可能会变得非常大。当使用 resize_shorter 参数或“not_smaller”模式或某些范围未指定时,可能会发生这种情况。

    此参数限制了输出可以变得多大。此值可以按轴指定,也可以为所有轴统一指定。

    注意

    当与“not_smaller”模式或 resize_shorter 参数一起使用时,max_size 优先,并且保持纵横比 - 例如,使用 mode="not_smaller", size=800, max_size=1400 调整大小,尺寸为 1200x600 的图像将调整为 1400x700。

  • min_filter (nvidia.dali.types.DALIInterpType or TensorList of nvidia.dali.types.DALIInterpType, optional, default = DALIInterpType.INTERP_LINEAR) – 缩小比例时使用的滤波器。

  • minibatch_size (int, optional, default = 32) – 内核调用中处理的最大图像数。

  • mirror (int or TensorList of int, optional, default = 0) –

    用于翻转的掩码

    支持的值

    • 0 - 不翻转

    • 1 - 水平翻转

    • 2 - 垂直翻转

    • 4 - 深度方向翻转

    • 以上任意按位组合

  • mode (str, optional, default = ‘default’) –

    调整大小模式。

    以下是支持的模式列表

    • "default" - 图像调整为指定大小。
      缺失的范围会使用提供的范围的平均比例进行缩放。
    • "stretch" - 图像调整为指定大小。
      缺失的范围根本不缩放。
    • "not_larger" - 图像调整大小,保持纵横比,以便输出图像的任何范围都不超过指定大小。
      例如,1280x720 的图像,所需的输出大小为 640x480,实际生成的输出为 640x360。
    • "not_smaller" - 图像调整大小,保持纵横比,以便输出图像的任何范围都不小于指定大小。
      例如,对于一个 640x480 的图像,如果期望的输出尺寸为 1920x1080,实际生成的输出尺寸将为 1920x1440。

      此参数与 resize_longerresize_shorter 互斥。

  • preserve (bool, optional, default = False) – 阻止运算符从图中移除,即使其输出未被使用。

  • resize_longer (float 或 float 的 TensorList, optional, default = 0.0) –

    调整大小后的图像较长边的长度。

    此选项与 resize_shorter 和显式尺寸参数互斥,并且运算符会保持原始图像的宽高比。此选项等效于为所有维度指定相同的大小和 mode="not_larger"

  • resize_shorter (float 或 float 的 TensorList, optional, default = 0.0) –

    调整大小后的图像较短边的长度。

    此选项与 resize_longer 和显式尺寸参数互斥,并且运算符会保持原始图像的宽高比。此选项等效于为所有维度指定相同的大小和 mode="not_smaller"。较长边可以通过设置 max_size 参数来限制。有关更多信息,请参阅 max_size 参数文档。

  • resize_x (float 或 float 的 TensorList, optional, default = 0.0) –

    调整大小后的图像 X 维度的长度。

    此选项与 resize_shorter, resize_longersize 互斥。如果 resize_y 未指定或为 0,则运算符会保持原始图像的宽高比。负值会翻转图像。

  • resize_y (float 或 float 的 TensorList, optional, default = 0.0) –

    调整大小后的图像 Y 维度的长度。

    此选项与 resize_shorter, resize_longersize 互斥。如果 resize_x 未指定或为 0,则运算符会保持原始图像的宽高比。负值会翻转图像。

  • resize_z (float 或 float 的 TensorList, optional, default = 0.0) –

    调整大小后的体数据 Z 维度的长度。

    此选项与 resize_shorter, resize_longersize 互斥。如果 resize_xresize_y 未指定或为 0,则运算符会保持原始体数据的宽高比。负值会翻转体数据。

  • roi_end (floatfloat 列表,或 float 的 TensorListoptional) –

    输入感兴趣区域 (ROI) 的结束坐标。

    必须与 roi_start 一起指定。坐标遵循张量形状顺序,这与 size 相同。坐标可以是绝对坐标(像素,默认)或相对坐标 (0..1),具体取决于 relative_roi 参数的值。如果任何维度中 ROI 起始坐标大于 ROI 结束坐标,则该区域在该维度上会翻转。

  • roi_relative (bool, optional, default = False) – 如果为 true,则 ROI 坐标相对于输入尺寸,其中 0 表示顶部/左侧,1 表示底部/右侧。

  • roi_start (floatfloat 列表,或 float 的 TensorListoptional) –

    输入感兴趣区域 (ROI) 的起始坐标。

    必须与 roi_end 一起指定。坐标遵循张量形状顺序,这与 size 相同。坐标可以是绝对坐标(像素,默认)或相对坐标 (0..1),具体取决于 relative_roi 参数的值。如果任何维度中 ROI 起始坐标大于 ROI 结束坐标,则该区域在该维度上会翻转。

  • rounding (str, optional, default = ‘round’) –

    确定用于将窗口的起始坐标转换为整数值的舍入函数(请参阅 crop_pos_x, crop_pos_y, crop_pos_z)。

    可能的值包括

    • "round" - 四舍五入到最接近的整数值,中间值远离零舍入。
    • "truncate" - 丢弃数字的小数部分(向零截断)。

  • size (floatfloat 列表,或 float 的 TensorListoptional) –

    期望的输出尺寸。

    必须是列表/元组,每个空间维度一个条目,不包括视频帧和通道。维度大小为 0 的将被视为不存在,输出尺寸将根据其他维度和 mode 参数计算。

  • subpixel_scale (bool, optional, default = True) –

    如果为 True,则直接指定或计算的分数尺寸将导致调整输入 ROI 以保持缩放比例。

    否则,将调整缩放比例,以使源图像映射到四舍五入后的输出尺寸。

  • temp_buffer_hint (int, optional, default = 0) –

    重采样临时缓冲区初始大小(字节)。

    注意

    此参数在 CPU 变体中被忽略。