nvidia.dali.fn.optical_flow#
- nvidia.dali.fn.optical_flow(__input_0, __input_1=None, /, *, bytes_per_sample_hint=[0], enable_external_hints=False, enable_temporal_hints=False, hint_grid=4, image_type=DALIImageType.RGB, output_grid=4, preserve=False, preset=0.0, device=None, name=None)#
计算输入图像之间的光流。
此操作符的主要输入是帧序列。 可选地,可以为操作符提供用于光流计算的外部提示。 此操作符的输出格式与光流驱动程序 API 的输出格式匹配。 有关 DALI 使用的 Turing、Ampere 和 Hopper 光流硬件的更多信息,请参阅 https://developer.nvidia.com/opticalflow-sdk。
注意
计算出的光流始终相对于输入图像的分辨率,但输出光流图像的分辨率可能较低,这由
output_grid
决定。 如果您希望光流矢量与此操作符的输出分辨率保持一致,则必须将输出矢量场除以output_grid
。此操作符允许序列输入。
- 支持的后端
‘gpu’
- 参数:
- 关键字参数:
bytes_per_sample_hint¶ (int 或 int 列表, optional, default = [0]) –
输出大小提示,以字节/样本为单位。
如果指定,则操作符位于 GPU 或分页锁定主机内存中的输出将被预先分配,以容纳此大小的样本批次。
enable_external_hints¶ (bool, optional, default = False) –
启用或禁用光流计算的外部提示。
外部提示类似于时间提示,但唯一的区别是外部提示来自外部源。 启用此选项后,操作符需要两个输入。
enable_temporal_hints¶ (bool, optional, default = False) –
为长度超过两张图像的序列启用或禁用时间提示。
这些提示用于提高输出运动场的质量以及加快计算速度。 这些提示在存在大位移或可能使光流算法混淆的周期性模式时尤其有用。)
hint_grid¶ (int, optional, default = 4) –
设置提示矢量场的网格大小。
这些提示用于提高输出运动场的质量以及加快计算速度。 网格分辨率可以设置为与输出不同的值。
注意
目前,Ampere 仅支持 1、2、4 和 8,Turing 仅支持 4。
image_type¶ (
nvidia.dali.types.DALIImageType
, optional, default = DALIImageType.RGB) – 输入色彩空间(RGB、BGR 或 GRAY)。output_format¶ (int) –
警告
参数 output_format 是
output_grid
的已弃用别名。 请改用output_grid
。output_grid¶ (int, optional, default = 4) –
设置输出矢量场的网格大小。
此操作符生成的运动矢量场的分辨率比输入像素粗糙。 此参数指定对应于一个运动矢量的像素网格单元的大小。 例如,值 4 将为每个 4x4 像素块生成一个运动矢量。 因此,要使用 output_grid 为 4 的光流来重新采样全分辨率图像,则流量场将在 *不* 缩放矢量量的情况下进行上采样。
注意
目前,Ampere 仅支持 1、2 和 4,Turing 仅支持 4。
preserve¶ (bool, optional, default = False) – 即使操作符的输出未使用,也防止将其从图中删除。
preset¶ (float, optional, default = 0.0) –
光流计算的速度和质量级别。
允许的值为
0.0
是最低速度和最佳质量。0.5
是中等速度和质量。1.0
是最快速度和最低质量。
速度越低,用于提高光流结果质量的附加预处理和后处理就越多。
另请参阅