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
,然后是crop
和flip
。在内部,操作符计算相关的感兴趣区域,并对该区域执行单次调整大小操作。此操作符允许序列输入并支持体积数据。
- 支持的后端
‘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_d¶ (float or TensorList of float, optional, default = 0.0) –
仅适用于体积输入;裁剪窗口深度(以体素为单位)。
crop_w
、crop_h
和crop_d
必须一起指定。为crop_w
、crop_h
和crop_d
提供值与提供固定裁剪窗口尺寸(参数crop
)不兼容。crop_h¶ (float or TensorList of float, optional, default = 0.0) –
裁剪窗口高度(以像素为单位)。
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) –
裁剪窗口宽度(以像素为单位)。
dtype¶ (
nvidia.dali.types.DALIDataType
, optional) –输出数据类型。
必须与输入类型相同或为
float
。如果未设置,则使用输入类型。interp_type¶ (
nvidia.dali.types.DALIInterpType
or TensorList ofnvidia.dali.types.DALIInterpType
, optional, default = DALIInterpType.INTERP_LINEAR) –要使用的插值类型。
使用
min_filter
和mag_filter
为缩小比例和放大比例指定不同的滤波。注意
现在不建议使用 INTERP_TRIANGULAR,应将其替换为
antialias
启用的 INTERP_LINEAR 的组合。INTERP_LINEAR 与启用
antialias
的组合。mag_filter¶ (
nvidia.dali.types.DALIInterpType
or TensorList ofnvidia.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 ofnvidia.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, 可选, 默认值 = ‘default’) –
缩放模式。
以下是支持的模式列表
"default"
- 图像被缩放到指定大小。缺失的尺寸会按照提供的尺寸的平均比例进行缩放。"stretch"
- 图像被缩放到指定大小。缺失的尺寸不会进行缩放。"not_larger"
- 图像被缩放,保持宽高比,使得输出图像的任何尺寸都不超过指定大小。例如,对于 1280x720 的图像,如果期望的输出大小为 640x480,实际会生成 640x360 的输出。"not_smaller"
- 图像被缩放,保持宽高比,使得输出图像的任何尺寸都不小于指定大小。例如,对于 640x480 的图像,如果期望的输出大小为 1920x1080,实际会生成 1920x1440 的输出。此参数与
resize_longer
和resize_shorter
互斥
preserve¶ (bool, 可选, 默认值 = False) – 阻止运算符从图中移除,即使其输出未被使用。
resize_longer¶ (float 或 float 的 TensorList, 可选, 默认值 = 0.0) –
调整大小后的图像的较长边的长度。
此选项与
resize_shorter
和显式的大小参数互斥,并且运算符会保持原始图像的宽高比。此选项等效于为所有维度指定相同的大小并使用mode="not_larger"
。resize_shorter¶ (float 或 float 的 TensorList, 可选, 默认值 = 0.0) –
调整大小后的图像的较短边的长度。
此选项与
resize_longer
和显式的大小参数互斥,并且运算符会保持原始图像的宽高比。此选项等效于为所有维度指定相同的大小并使用mode="not_smaller"
。较长边可以通过设置max_size
参数来限制。 有关更多信息,请参阅max_size
参数文档。resize_x¶ (float 或 float 的 TensorList, 可选, 默认值 = 0.0) –
调整大小后的图像的 X 维度的长度。
此选项与
resize_shorter
,resize_longer
和size
互斥。 如果resize_y
未指定或为 0,则运算符会保持原始图像的宽高比。 负值会翻转图像。resize_y¶ (float 或 float 的 TensorList, 可选, 默认值 = 0.0) –
调整大小后的图像的 Y 维度的长度。
此选项与
resize_shorter
,resize_longer
和size
互斥。 如果resize_x
未指定或为 0,则运算符会保持原始图像的宽高比。 负值会翻转图像。resize_z¶ (float 或 float 的 TensorList, 可选, 默认值 = 0.0) –
调整大小后的体积的 Z 维度的长度。
此选项与
resize_shorter
,resize_longer
和size
互斥。 如果resize_x
和resize_y
未指定或为 0,则运算符将保持原始体积的宽高比。 负值会翻转体积。roi_end¶ (float 或 float 列表或 float 的 TensorList, 可选) –
输入感兴趣区域 (ROI) 的结束位置。
必须与
roi_start
一起指定。 坐标遵循张量形状顺序,这与size
相同。 坐标可以是绝对坐标(像素,默认值)或相对坐标 (0..1),具体取决于relative_roi
参数的值。 如果任何维度上的 ROI 起始位置大于 ROI 结束位置,则该区域在该维度上会被翻转。roi_relative¶ (bool, 可选, 默认值 = False) – 如果为 true,则 ROI 坐标相对于输入大小,其中 0 表示顶部/左侧,1 表示底部/右侧
roi_start¶ (float 或 float 列表或 float 的 TensorList, 可选) –
输入感兴趣区域 (ROI) 的起始位置。
必须与
roi_end
一起指定。 坐标遵循张量形状顺序,这与size
相同。 坐标可以是绝对坐标(像素,默认值)或相对坐标 (0..1),具体取决于relative_roi
参数的值。 如果任何维度上的 ROI 起始位置大于 ROI 结束位置,则该区域在该维度上会被翻转。rounding¶ (str, 可选, 默认值 = ‘round’) –
确定用于将窗口的起始坐标转换为整数值的舍入函数(请参阅
crop_pos_x
,crop_pos_y
,crop_pos_z
)。可能的值为
"round"
- 四舍五入到最接近的整数值,中间值远离零舍入。"truncate"
- 丢弃数字的小数部分(向零截断)。
size¶ (float 或 float 列表或 float 的 TensorList, 可选) –
期望的输出大小。
必须是列表/元组,每个空间维度一个条目,不包括视频帧和通道。 维度为 0 的尺寸将被视为不存在,输出大小将根据其他尺寸和
mode
参数计算。subpixel_scale¶ (bool, 可选, 默认值 = True) –
如果为 True,直接指定或计算的分数大小将导致调整输入 ROI 以保持比例因子。
否则,比例因子将被调整,以便源图像映射到四舍五入的输出大小。
temp_buffer_hint¶ (int, 可选, 默认值 = 0) –
重采样的临时缓冲区的初始大小(以字节为单位)。
注意
此参数对于 CPU 变体将被忽略。