NVIDIA Holoscan SDK v2.9.0

holoscan.operators

此模块为底层 C++ API 算子提供 Python API。

holoscan.operators.AJASourceOp 用于从 AJA 采集卡获取视频流的算子。
holoscan.operators.BayerDemosaicOp 拜耳去马赛克算子。
holoscan.operators.FormatConverterOp 格式转换算子。
holoscan.operators.GXFCodeletOp(fragment, ...) GXF Codelet 包装器算子。
holoscan.operators.HolovizOp(fragment, *args) 使用 Holoviz 模块的 Holoviz 可视化算子。
holoscan.operators.InferenceOp 推理算子。
holoscan.operators.InferenceProcessorOp Holoinfer 处理算子。
holoscan.operators.PingRxOp(fragment, *args, ...) 简单接收器算子。
holoscan.operators.PingTensorRxOp 张量接收示例算子。
holoscan.operators.PingTensorTxOp 旨在用于测试和示例的张量生成算子。
holoscan.operators.PingTxOp(fragment, *args, ...) 简单发送器算子。
holoscan.operators.SegmentationPostprocessorOp 对分割输出执行后处理操作的算子。
holoscan.operators.V4L2VideoCaptureOp 用于从 V4L2 源获取视频流的算子。
holoscan.operators.VideoStreamRecorderOp 用于将视频流记录到文件的算子类。
holoscan.operators.VideoStreamReplayerOp 用于从文件回放视频流的算子类。

class holoscan.operators.AJASourceOp

基类: holoscan.core._core.Operator

用于从 AJA 采集卡获取视频流的算子。

==命名输入==

overlay_buffer_inputnvidia::gxf::VideoBuffer (可选)

为了调用 compute,此算子不需要在此输入端口上接收消息。如果找到消息,且 enable_overlayTrue,则图像将与 AJA 卡捕获的图像混合。如果 enable_overlayFalse,则此端口上的任何消息都将被忽略。

==命名输出==

video_buffer_outputnvidia::gxf::VideoBuffer

来自 AJA 采集卡的输出视频帧。如果 overlay_rdmaTrue,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。

overlay_buffer_outputnvidia::gxf::VideoBuffer (可选)

仅当 enable_overlayTrue 时,此输出端口才会发出视频缓冲区。如果 overlay_rdmaTrue,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

devicestr, 可选

要定位的设备 (例如,“0”表示设备 0)。默认值为 "0"

channelholoscan.operators.NTV2Channel 或 int, 可选

用于输出的摄像头 NTV2Channel (例如,NTV2Channel.NTV2_CHANNEL1 (0) 或 “NTV2_CHANNEL1” (在 YAML 中) 表示第一个通道)。默认值为 NTV2Channel.NTV2_CHANNEL1 ("NTV2_CHANNEL1" 在 YAML 中)。

widthint, 可选

视频流的宽度。默认值为 1920

heightint, 可选

视频流的高度。默认值为 1080

framerateint, 可选

视频流的帧率。默认值为 60

interlacedbool, 可选

视频是否为隔行扫描格式。默认值为 False ("false" 在 YAML 中)。

rdmabool, 可选

指示是否启用 RDMA 的布尔值。默认值为 False ("false" 在 YAML 中)。

enable_overlaybool, 可选

指示是否启用单独的叠加通道的布尔值。默认值为 False ("false" 在 YAML 中)。

overlay_channelholoscan.operators.NTV2Channel 或 int, 可选

用于叠加输出的摄像头 NTV2Channel。默认值为 NTV2Channel.NTV2_CHANNEL2 ("NTV2_CHANNEL2" 在 YAML 中)。

overlay_rdmabool, 可选

指示是否为叠加启用 RDMA 的布尔值。默认值为 False ("false" 在 YAML 中)。

namestr, 可选 (仅限构造函数)

算子的名称。默认值为 "aja_source"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.aja_source._aja_source.AJASourceOp, fragment: holoscan.core._core.Fragment, *args, device: str = '0', channel: Union[str, holoscan.operators.aja_source._aja_source.NTV2Channel] = <NTV2Channel.NTV2_CHANNEL1: 0>, width: int = 1920, height: int = 1080, framerate: int = 60, interlaced: bool = False, rdma: bool = False, enable_overlay: bool = False, overlay_channel: Union[str, holoscan.operators.aja_source._aja_source.NTV2Channel] = <NTV2Channel.NTV2_CHANNEL2: 1>, overlay_rdma: bool = True, name: str = 'aja_source') → None

用于从 AJA 采集卡获取视频流的算子。

==命名输入==

overlay_buffer_inputnvidia::gxf::VideoBuffer (可选)

为了调用 compute,此算子不需要在此输入端口上接收消息。如果找到消息,且 enable_overlayTrue,则图像将与 AJA 卡捕获的图像混合。如果 enable_overlayFalse,则此端口上的任何消息都将被忽略。

==命名输出==

video_buffer_outputnvidia::gxf::VideoBuffer

来自 AJA 采集卡的输出视频帧。如果 overlay_rdmaTrue,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。

overlay_buffer_outputnvidia::gxf::VideoBuffer (可选)

仅当 enable_overlayTrue 时,此输出端口才会发出视频缓冲区。如果 overlay_rdmaTrue,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

devicestr, 可选

要定位的设备 (例如,“0”表示设备 0)。默认值为 "0"

channelholoscan.operators.NTV2Channel 或 int, 可选

用于输出的摄像头 NTV2Channel (例如,NTV2Channel.NTV2_CHANNEL1 (0) 或 “NTV2_CHANNEL1” (在 YAML 中) 表示第一个通道)。默认值为 NTV2Channel.NTV2_CHANNEL1 ("NTV2_CHANNEL1" 在 YAML 中)。

widthint, 可选

视频流的宽度。默认值为 1920

heightint, 可选

视频流的高度。默认值为 1080

framerateint, 可选

视频流的帧率。默认值为 60

interlacedbool, 可选

视频是否为隔行扫描格式。默认值为 False ("false" 在 YAML 中)。

rdmabool, 可选

指示是否启用 RDMA 的布尔值。默认值为 False ("false" 在 YAML 中)。

enable_overlaybool, 可选

指示是否启用单独的叠加通道的布尔值。默认值为 False ("false" 在 YAML 中)。

overlay_channelholoscan.operators.NTV2Channel 或 int, 可选

用于叠加输出的摄像头 NTV2Channel。默认值为 NTV2Channel.NTV2_CHANNEL2 ("NTV2_CHANNEL2" 在 YAML 中)。

overlay_rdmabool, 可选

指示是否为叠加启用 RDMA 的布尔值。默认值为 False ("false" 在 YAML 中)。

namestr, 可选 (仅限构造函数)

算子的名称。默认值为 "aja_source"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.BayerDemosaicOp

基类: holoscan.core._core.Operator

拜耳去马赛克算子。

==命名输入==

receivernvidia::gxf::Tensor 或 nvidia::gxf::VideoBuffer

要处理的输入视频帧。如果输入是 VideoBuffer,则必须是 8 位无符号灰度视频 (nvidia::gxf::VideoFormat::GXF_VIDEO_FORMAT_GRAY)。如果未找到视频缓冲区,则将在输入端口消息中搜索名称由 in_tensor_name 指定的设备张量。张量必须具有 8 位或 16 位无符号整数格式。张量或视频缓冲区可以位于主机或设备内存中 (如果需要,将执行主机 -> 设备复制)。

==命名输出==

transmitternvidia::gxf::Tensor

去马赛克后的输出视频帧。如果 alpha_valueTrue,则这将是 3 通道 RGB 图像,否则将是 4 通道 RGBA 图像。数据类型将是 8 位或 16 位无符号整数 (与输入的位深度匹配)。输出张量的名称由 out_tensor_name 控制。

==设备内存要求==

将此算子与 holoscan.resources.BlockMemoryPool 结合使用时,最小 block_size(rows * columns * output_channels * element_size_bytes),其中当 generate_alphaTrue 时,output_channels 为 4,否则为 3。如果输入张量或视频缓冲区已在设备上,则只需要一个内存块。但是,如果输入在主机上,则还需要第二个内存块,以便在内部复制输入到设备。内存缓冲区必须在设备上 (storage_type=1)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

poolholoscan.resources.Allocator

算子使用的内存池分配器。

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

in_tensor_namestr, 可选

输入张量的名称。默认值为 "" (空字符串)。

out_tensor_namestr, 可选

输出张量的名称。默认值为 "" (空字符串)。

interpolation_modeint, 可选

用于去马赛克的插值模型。可用值请参见:https://docs.nvda.net.cn/cuda/npp/nppdefs.html?highlight=Two%20parameter%20cubic%20filter#c.NppiInterpolationMode

  • NPPI_INTER_UNDEFINED (0): 未定义的滤波插值模式。

  • NPPI_INTER_NN (1): 最近邻滤波。

  • NPPI_INTER_LINEAR (2): 线性插值。

  • NPPI_INTER_CUBIC (4): 立方插值。

  • NPPI_INTER_CUBIC2P_BSPLINE (5): 双参数立方滤波器 (B=1, C=0)

  • NPPI_INTER_CUBIC2P_CATMULLROM (6): 双参数立方滤波器 (B=0, C=1/2)

  • NPPI_INTER_CUBIC2P_B05C03 (7): 双参数立方滤波器 (B=1/2, C=3/10)

  • NPPI_INTER_SUPER (8): 超级采样。

  • NPPI_INTER_LANCZOS (16): Lanczos 滤波。

  • NPPI_INTER_LANCZOS3_ADVANCED (17): 3 阶通用 Lanczos 滤波。

  • NPPI_SMOOTH_EDGE (0x8000000): 平滑边缘滤波。

默认值为 0 (NPPI_INTER_UNDEFINED)。

bayer_grid_posint, 可选

拜耳网格位置。可用值请参见:https://docs.nvda.net.cn/cuda/npp/nppdefs.html?highlight=Two%20parameter%20cubic%20filter#c.NppiBayerGridPosition

  • NPPI_BAYER_BGGR (0): 默认注册位置 BGGR。

  • NPPI_BAYER_RGGB (1): 注册位置 RGGB。

  • NPPI_BAYER_GBRG (2): 注册位置 GBRG。

  • NPPI_BAYER_GRBG (3): 注册位置 GRBG。

默认值为 2 (NPPI_BAYER_GBRG)。

generate_alphabool, 可选

生成 Alpha 通道。默认值为 False

alpha_valueint, 可选

如果 generate_alpha 设置为 True,则要生成的 Alpha 值。默认值为 255

namestr, 可选 (仅限构造函数)

算子的名称。默认值为 "bayer_demosaic"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(*args, **kwargs)

重载函数。

  1. __init__(self: holoscan.operators.bayer_demosaic._bayer_demosaic.BayerDemosaicOp) -> None

  2. __init__(self: holoscan.operators.bayer_demosaic._bayer_demosaic.BayerDemosaicOp, fragment: holoscan.core._core.Fragment, *args, pool: holoscan.resources._resources.Allocator, cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, in_tensor_name: str = ‘’, out_tensor_name: str = ‘’, interpolation_mode: int = 0, bayer_grid_pos: int = 2, generate_alpha: bool = False, alpha_value: int = 255, name: str = ‘bayer_demosaic’) -> None

拜耳去马赛克算子。

==命名输入==

receivernvidia::gxf::Tensor 或 nvidia::gxf::VideoBuffer

要处理的输入视频帧。如果输入是 VideoBuffer,则必须是 8 位无符号灰度视频 (nvidia::gxf::VideoFormat::GXF_VIDEO_FORMAT_GRAY)。如果未找到视频缓冲区,则将在输入端口消息中搜索名称由 in_tensor_name 指定的设备张量。张量必须具有 8 位或 16 位无符号整数格式。张量或视频缓冲区可以位于主机或设备内存中 (如果需要,将执行主机 -> 设备复制)。

==命名输出==

transmitternvidia::gxf::Tensor

去马赛克后的输出视频帧。如果 alpha_valueTrue,则这将是 3 通道 RGB 图像,否则将是 4 通道 RGBA 图像。数据类型将是 8 位或 16 位无符号整数 (与输入的位深度匹配)。输出张量的名称由 out_tensor_name 控制。

==设备内存要求==

将此算子与 holoscan.resources.BlockMemoryPool 结合使用时,最小 block_size(rows * columns * output_channels * element_size_bytes),其中当 generate_alphaTrue 时,output_channels 为 4,否则为 3。如果输入张量或视频缓冲区已在设备上,则只需要一个内存块。但是,如果输入在主机上,则还需要第二个内存块,以便在内部复制输入到设备。内存缓冲区必须在设备上 (storage_type=1)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

poolholoscan.resources.Allocator

算子使用的内存池分配器。

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

in_tensor_namestr, 可选

输入张量的名称。默认值为 "" (空字符串)。

out_tensor_namestr, 可选

输出张量的名称。默认值为 "" (空字符串)。

interpolation_modeint, 可选

用于去马赛克的插值模型。可用值请参见:https://docs.nvda.net.cn/cuda/npp/nppdefs.html?highlight=Two%20parameter%20cubic%20filter#c.NppiInterpolationMode

  • NPPI_INTER_UNDEFINED (0): 未定义的滤波插值模式。

  • NPPI_INTER_NN (1): 最近邻滤波。

  • NPPI_INTER_LINEAR (2): 线性插值。

  • NPPI_INTER_CUBIC (4): 立方插值。

  • NPPI_INTER_CUBIC2P_BSPLINE (5): 双参数立方滤波器 (B=1, C=0)

  • NPPI_INTER_CUBIC2P_CATMULLROM (6): 双参数立方滤波器 (B=0, C=1/2)

  • NPPI_INTER_CUBIC2P_B05C03 (7): 双参数立方滤波器 (B=1/2, C=3/10)

  • NPPI_INTER_SUPER (8): 超级采样。

  • NPPI_INTER_LANCZOS (16): Lanczos 滤波。

  • NPPI_INTER_LANCZOS3_ADVANCED (17): 3 阶通用 Lanczos 滤波。

  • NPPI_SMOOTH_EDGE (0x8000000): 平滑边缘滤波。

默认值为 0 (NPPI_INTER_UNDEFINED)。

bayer_grid_posint, 可选

拜耳网格位置。可用值请参见:https://docs.nvda.net.cn/cuda/npp/nppdefs.html?highlight=Two%20parameter%20cubic%20filter#c.NppiBayerGridPosition

  • NPPI_BAYER_BGGR (0): 默认注册位置 BGGR。

  • NPPI_BAYER_RGGB (1): 注册位置 RGGB。

  • NPPI_BAYER_GBRG (2): 注册位置 GBRG。

  • NPPI_BAYER_GRBG (3): 注册位置 GRBG。

默认值为 2 (NPPI_BAYER_GBRG)。

generate_alphabool, 可选

生成 Alpha 通道。默认值为 False

alpha_valueint, 可选

如果 generate_alpha 设置为 True,则要生成的 Alpha 值。默认值为 255

namestr, 可选 (仅限构造函数)

算子的名称。默认值为 "bayer_demosaic"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.FormatConverterOp

基类: holoscan.core._core.Operator

格式转换算子。

==命名输入==

source_videonvidia::gxf::Tensor 或 nvidia::gxf::VideoBuffer

要处理的输入视频帧。如果输入是 VideoBuffer,则必须是 GXF_VIDEO_FORMAT_RGBA、GXF_VIDEO_FORMAT_RGB 或 GXF_VIDEO_FORMAT_NV12 格式。如果未找到视频缓冲区,则将在输入端口消息中搜索名称由 in_tensor_name 指定的张量。这必须是几种受支持格式之一的张量 (无符号 8 位整数或 float32 灰度、无符号 8 位整数 RGB 或 RGBA YUV420 或 NV12)。张量或视频缓冲区可以位于主机或设备内存中 (如果需要,将执行主机 -> 设备复制)。

==命名输出==

tensornvidia::gxf::Tensor

处理后的输出视频帧。此输出张量的形状、数据类型和通道数将取决于为此算子设置的特定参数。在此端口上传输的张量的名称由 out_tensor_name 确定。

==设备内存要求==

将此算子与 holoscan.resources.BlockMemoryPool 结合使用时,根据输入张量和参数,将需要 1 到 3 个设备内存块 (storage_type=1)

  • 1.) 在所有情况下,输出张量都需要一个内存块。此块的大小将为

    block 将为 out_height * out_width * out_channels * out_element_size_bytes,其中 (out_height, out_width) 将为 (in_height, in_width) (或 (resize_height, resize_width),如果指定了调整大小)。out_element_size 是元素大小 (以字节为单位) (例如,RGB888 为 1,Float32 为 4)。

  • 2.) 如果正在执行调整大小,则还需要另一个内存块。此块的大小将为

    大小为 resize_height * resize_width * in_channels * in_element_size_bytes

  • 3.) 如果输入张量将在主机内存中,则需要一个内存块来复制输入

    到设备。此块的大小将为 in_height * in_width * in_channels * in_element_size_bytes

因此,在声明内存池时,num_blocks 将介于 1 和 3 之间,并且 block_size 必须大于或等于上述各个块大小中的最大值。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

poolholoscan.resources.Allocator

算子使用的内存池分配器。

out_dtypestr

目标数据类型。可用选项为

  • "rgb888"

  • "uint8"

  • "float32"

  • "rgba8888"

  • "yuv420"

  • "nv12"

in_dtypestr, 可选

源数据类型。可用选项为

  • "rgb888"

  • "uint8"

  • "float32"

  • "rgba8888"

  • "yuv420"

  • "nv12"

in_tensor_namestr, 可选

输入张量的名称。默认值为 "" (空字符串)。

out_tensor_namestr, 可选

输出张量的名称。默认值为 "" (空字符串)。

scale_minfloat, 可选

输出将被裁剪为此最小值。默认值为 0.0

scale_maxfloat, 可选

输出将被裁剪为此最大值。默认值为 1.0

alpha_valueint, 可选

范围为 [0, 255] 的无符号整数,指示从 RGB 转换为 RGBA 时要使用的 Alpha 通道值。默认值为 255

resize_heightint, 可选

所需的 (调整大小后的) 输出高度。如果 resize_height0,则高度将保持不变。默认值为 0

resize_widthint, 可选

所需的 (调整大小后的) 输出宽度。如果 resize_width0,则宽度将保持不变。默认值为 0

resize_modeint, 可选

与 NPP 的 NppiInterpolationMode 对应的调整大小模式枚举值。可用值请参见:https://docs.nvda.net.cn/cuda/npp/nppdefs.html?highlight=Two%20parameter%20cubic%20filter#c.NppiInterpolationMode

  • NPPI_INTER_UNDEFINED (0): 未定义的滤波插值模式。

  • NPPI_INTER_NN (1): 最近邻滤波。

  • NPPI_INTER_LINEAR (2): 线性插值。

  • NPPI_INTER_CUBIC (4): 立方插值。

  • NPPI_INTER_CUBIC2P_BSPLINE (5): 双参数立方滤波器 (B=1, C=0)

  • NPPI_INTER_CUBIC2P_CATMULLROM (6): 双参数立方滤波器 (B=0, C=1/2)

  • NPPI_INTER_CUBIC2P_B05C03 (7): 双参数立方滤波器 (B=1/2, C=3/10)

  • NPPI_INTER_SUPER (8): 超级采样。

  • NPPI_INTER_LANCZOS (16): Lanczos 滤波。

  • NPPI_INTER_LANCZOS3_ADVANCED (17): 3 阶通用 Lanczos 滤波。

  • NPPI_SMOOTH_EDGE (0x8000000): 平滑边缘滤波。

默认值为 0 (NPPI_INTER_UNDEFINED),它等效于 4 (NPPI_INTER_CUBIC)。

channel_ordersequence of int

描述如何置换通道值的整数序列。对于 3 通道图像,默认值为 [0, 1, 2],对于 4 通道图像,默认值为 [0, 1, 2, 3]

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

namestr, 可选 (仅限构造函数)

算子的名称。默认值为 "format_converter"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.format_converter._format_converter.FormatConverterOp, fragment: holoscan.core._core.Fragment, *args, pool: holoscan.resources._resources.Allocator, out_dtype: str, in_dtype: str = '', in_tensor_name: str = '', out_tensor_name: str = '', scale_min: float = 0.0, scale_max: float = 1.0, alpha_value: int = 255, resize_height: int = 0, resize_width: int = 0, resize_mode: int = 0, out_channel_order: list[int] = [], cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, name: str = 'format_converter') → None

格式转换算子。

==命名输入==

source_videonvidia::gxf::Tensor 或 nvidia::gxf::VideoBuffer

要处理的输入视频帧。如果输入是 VideoBuffer,则必须是 GXF_VIDEO_FORMAT_RGBA、GXF_VIDEO_FORMAT_RGB 或 GXF_VIDEO_FORMAT_NV12 格式。如果未找到视频缓冲区,则将在输入端口消息中搜索名称由 in_tensor_name 指定的张量。这必须是几种受支持格式之一的张量 (无符号 8 位整数或 float32 灰度、无符号 8 位整数 RGB 或 RGBA YUV420 或 NV12)。张量或视频缓冲区可以位于主机或设备内存中 (如果需要,将执行主机 -> 设备复制)。

==命名输出==

tensornvidia::gxf::Tensor

处理后的输出视频帧。此输出张量的形状、数据类型和通道数将取决于为此算子设置的特定参数。在此端口上传输的张量的名称由 out_tensor_name 确定。

==设备内存要求==

将此算子与 holoscan.resources.BlockMemoryPool 结合使用时,根据输入张量和参数,将需要 1 到 3 个设备内存块 (storage_type=1)

  • 1.) 在所有情况下,输出张量都需要一个内存块。此块的大小将为

    block 将为 out_height * out_width * out_channels * out_element_size_bytes,其中 (out_height, out_width) 将为 (in_height, in_width) (或 (resize_height, resize_width),如果指定了调整大小)。out_element_size 是元素大小 (以字节为单位) (例如,RGB888 为 1,Float32 为 4)。

  • 2.) 如果正在执行调整大小,则还需要另一个内存块。此块的大小将为

    大小为 resize_height * resize_width * in_channels * in_element_size_bytes

  • 3.) 如果输入张量将在主机内存中,则需要一个内存块来复制输入

    到设备。此块的大小将为 in_height * in_width * in_channels * in_element_size_bytes

因此,在声明内存池时,num_blocks 将介于 1 和 3 之间,并且 block_size 必须大于或等于上述各个块大小中的最大值。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

poolholoscan.resources.Allocator

算子使用的内存池分配器。

out_dtypestr

目标数据类型。可用选项为

  • "rgb888"

  • "uint8"

  • "float32"

  • "rgba8888"

  • "yuv420"

  • "nv12"

in_dtypestr, 可选

源数据类型。可用选项为

  • "rgb888"

  • "uint8"

  • "float32"

  • "rgba8888"

  • "yuv420"

  • "nv12"

in_tensor_namestr, 可选

输入张量的名称。默认值为 "" (空字符串)。

out_tensor_namestr, 可选

输出张量的名称。默认值为 "" (空字符串)。

scale_minfloat, 可选

输出将被裁剪为此最小值。默认值为 0.0

scale_maxfloat, 可选

输出将被裁剪为此最大值。默认值为 1.0

alpha_valueint, 可选

范围为 [0, 255] 的无符号整数,指示从 RGB 转换为 RGBA 时要使用的 Alpha 通道值。默认值为 255

resize_heightint, 可选

所需的 (调整大小后的) 输出高度。如果 resize_height0,则高度将保持不变。默认值为 0

resize_widthint, 可选

所需的 (调整大小后的) 输出宽度。如果 resize_width0,则宽度将保持不变。默认值为 0

resize_modeint, 可选

与 NPP 的 NppiInterpolationMode 对应的调整大小模式枚举值。可用值请参见:https://docs.nvda.net.cn/cuda/npp/nppdefs.html?highlight=Two%20parameter%20cubic%20filter#c.NppiInterpolationMode

  • NPPI_INTER_UNDEFINED (0): 未定义的滤波插值模式。

  • NPPI_INTER_NN (1): 最近邻滤波。

  • NPPI_INTER_LINEAR (2): 线性插值。

  • NPPI_INTER_CUBIC (4): 立方插值。

  • NPPI_INTER_CUBIC2P_BSPLINE (5): 双参数立方滤波器 (B=1, C=0)

  • NPPI_INTER_CUBIC2P_CATMULLROM (6): 双参数立方滤波器 (B=0, C=1/2)

  • NPPI_INTER_CUBIC2P_B05C03 (7): 双参数立方滤波器 (B=1/2, C=3/10)

  • NPPI_INTER_SUPER (8): 超级采样。

  • NPPI_INTER_LANCZOS (16): Lanczos 滤波。

  • NPPI_INTER_LANCZOS3_ADVANCED (17): 3 阶通用 Lanczos 滤波。

  • NPPI_SMOOTH_EDGE (0x8000000): 平滑边缘滤波。

默认值为 0 (NPPI_INTER_UNDEFINED),它等效于 4 (NPPI_INTER_CUBIC)。

channel_ordersequence of int

描述如何置换通道值的整数序列。对于 3 通道图像,默认值为 [0, 1, 2],对于 4 通道图像,默认值为 [0, 1, 2, 3]

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

namestr, 可选 (仅限构造函数)

算子的名称。默认值为 "format_converter"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.GXFCodeletOp(fragment, *args, **kwargs)

基类: holoscan.operators.gxf_codelet._gxf_codelet.GXFCodeletOp

GXF Codelet 包装器算子。

==命名输入==

输入端口根据底层 GXF Codelet 的参数自动定义,其中包括 nvidia::gxf::Receiver 组件句柄。

要查看有关算子的信息,请参阅此对象的 description 属性。

==命名输出==

输出端口基于底层 GXF Codelet 的参数自动定义,这些参数包括 nvidia::gxf::Transmitter 组件句柄。

要查看关于该操作符的信息,请参考此对象的 description 属性。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

gxf_typenamestr

GXF 类型名称,用于标识正在包装的特定 GXF Codelet。

*argstuple

额外的 positional 参数(holoscan.core.Conditionholoscan.core.Resource)。

namestr, 可选 (仅限构造函数)

操作符的名称。默认值为 "gxf_codelet"

**kwargsdict

可以传递的额外关键字参数取决于底层的 GXF Codelet。 额外的参数是底层 GXF Codelet 的参数,这些参数既不是 nvidia::gxf::Receiver 组件也不是 nvidia::gxf::Transmitter 组件的特定组成部分。 这些参数可以为操作符提供进一步的自定义和功能。

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(*args, **kwargs)

重载函数。

  1. __init__(self: holoscan.operators.gxf_codelet._gxf_codelet.GXFCodeletOp) -> None

  2. __init__(self: holoscan.operators.gxf_codelet._gxf_codelet.GXFCodeletOp, op: object, fragment: holoscan.core._core.Fragment, gxf_typename: str, *args, name: str = ‘gxf_codelet’, **kwargs) -> None

GXF Codelet 包装器算子。

==命名输入==

输入端口根据底层 GXF Codelet 的参数自动定义,其中包括 nvidia::gxf::Receiver 组件句柄。

要查看有关算子的信息,请参阅此对象的 description 属性。

==命名输出==

输出端口基于底层 GXF Codelet 的参数自动定义,这些参数包括 nvidia::gxf::Transmitter 组件句柄。

要查看关于该操作符的信息,请参考此对象的 description 属性。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

gxf_typenamestr

GXF 类型名称,用于标识正在包装的特定 GXF Codelet。

*argstuple

额外的 positional 参数(holoscan.core.Conditionholoscan.core.Resource)。

namestr, 可选 (仅限构造函数)

操作符的名称。默认值为 "gxf_codelet"

**kwargsdict

可以传递的额外关键字参数取决于底层的 GXF Codelet。 额外的参数是底层 GXF Codelet 的参数,这些参数既不是 nvidia::gxf::Receiver 组件也不是 nvidia::gxf::Transmitter 组件的特定组成部分。 这些参数可以为操作符提供进一步的自定义和功能。

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.HolovizOp(fragment, *args, allocator=None, receivers=(), tensors=(), color_lut=(), window_title='Holoviz', display_name='DP-0', width=1920, height=1080, framerate=60, use_exclusive_display=False, fullscreen=False, headless=False, framebuffer_srgb=False, vsync=False, display_color_space=<ColorSpace.AUTO: -1>, enable_render_buffer_input=False, enable_render_buffer_output=False, enable_camera_pose_output=False, camera_pose_output_type='projection_matrix', camera_eye=(0.0, 0.0, 1.0), camera_look_at=(0.0, 0.0, 0.0), camera_up=(0.0, 1.0, 0.0), key_callback=None, unicode_char_callback=None, mouse_button_callback=None, scroll_callback=None, cursor_pos_callback=None, framebuffer_size_callback=None, window_size_callback=None, font_path='', cuda_stream_pool=None, window_close_condition=None, name='holoviz_op')

基类:holoscan.operators.holoviz._holoviz.HolovizOp

使用 Holoviz 模块的 Holoviz 可视化算子。

这是一个基于 Vulkan 的可视化工具。

==命名输入==

receivers多接收器,接受 nvidia::gxf::Tensor 和/或 nvidia::gxf::VideoBuffer

任意数量的上游端口可以连接到此 receivers 端口。 此端口可以接受 VideoBuffer 或 Tensor。 这些输入可以在主机内存或设备内存中。 每个 tensor 或 video buffer 将产生一个图层。 对于某些输入类型(例如,video buffer 将产生图像图层),操作符会自动检测图层类型。 对于其他输入类型或更复杂的用例,可以在初始化时作为参数或在运行时动态提供输入规范(通过 input_specs)。 在每次调用 compute 时,必须找到与 tensors 参数中指定的所有名称对应的 tensor,否则将引发异常。 任何未在 tensors 参数规范(或可选的动态 input_specs 输入)中出现的额外的、命名的 tensor 将被忽略。

input_specslist[holoscan.operators.HolovizOp.InputSpec],可选

InputSpec 对象的列表。 此端口可用于在运行时动态更新叠加规范。 操作符 compute 不需要在此端口上输入。

render_buffer_inputnvidia::gxf::VideoBuffer,可选

可以选择性地提供一个空的渲染缓冲区。 video buffer 必须具有 GXF_VIDEO_FORMAT_RGBA 格式并且位于设备内存中。 仅当 enable_render_buffer_input 设置为 True 时,此输入端口才存在,在这种情况下,仅当此输入端上收到消息时才会调用 compute

==命名输出==

render_buffer_outputnvidia::gxf::VideoBuffer,可选

用于填充渲染缓冲区的输出。 如果指定了输入渲染缓冲区,则使用该缓冲区,否则会分配一个新的缓冲区。 video buffer 将具有 GXF_VIDEO_FORMAT_RGBA 格式并且位于设备内存中。 此输出对于离线渲染或无头模式很有用。 仅当 enable_render_buffer_output 设置为 True 时,此输出端口才存在。

camera_pose_outputstd::array<float, 16> 或 nvidia::gxf::Pose3D,可选

相机姿态。 根据 camera_pose_output_type 的值,此输出端口输出一个 4x4 行主序投影矩阵(类型为 std::array<float, 16>)或相机外参模型(类型为 nvidia::gxf::Pose3D)。 仅当 enable_camera_pose_output 设置为 True 时,此输出端口才存在。

==设备内存要求==

如果启用了 render_buffer_input,则使用提供的缓冲区,并且不会分配内存块。 否则,当将此操作符与 holoscan.resources.BlockMemoryPool 一起使用时,需要单个设备内存块(storage_type=1)。 此内存块的大小可以通过将宽度和高度向上舍入到最接近的偶数大小,然后根据需要填充行,以使行步幅为 256 字节的倍数来确定。 用于计算块大小的 C++ 代码如下

复制
已复制!
            

def get_block_size(height, width): height_even = height + (height & 1) width_even = width + (width & 1) row_bytes = width_even * 4 # 4 bytes per pixel for 8-bit RGBA row_stride = row_bytes if (row_bytes % 256 == 0) else ((row_bytes // 256 + 1) * 256) return height_even * row_stride

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.core.Allocator,可选

用于分配渲染缓冲区输出的分配器。 如果 None,则默认为 holoscan.core.UnboundedAllocator

receiversholoscan.core.IOSpec 序列,可选

输入接收器列表。

tensors字典序列,可选

输入 tensor 列表。 每个 tensor 由一个字典定义,其中 "name" 键必须对应于发送到操作符输入的 tensor。 有关如何定义 tensor 字典的更多详细信息,请参见下面的注释部分。

color_lut浮点列表的列表,可选

类型为 color_lut 的 tensor 的颜色查找表。 形状应为 (n_colors, 4)

window_titlestr,可选

窗口画布上的标题。 默认值为 "Holoviz"

display_namestr,可选

在独占显示或全屏模式下,要使用的显示器的名称,如 xrandrhwinfo –monitor 所示。 默认值为 ""

widthint, 可选

窗口宽度或独占显示或全屏模式下的显示分辨率宽度。 默认值为 1920

heightint, 可选

窗口高度或独占显示或全屏模式下的显示分辨率宽度。 默认值为 1080

frameratefloat,可选

如果处于独占显示模式,则显示帧率(以 Hz 为单位)。 默认值为 60.0

use_exclusive_displaybool,可选

启用独占显示。 默认值为 False

fullscreenbool,可选

启用全屏窗口。 默认值为 False

headlessbool,可选

启用无头模式。 不会打开窗口,渲染缓冲区输出到端口 render_buffer_output。 默认值为 False

framebuffer_srgbbool,可选

启用 sRGB 帧缓冲区。 如果设置为 true,则操作符将使用 sRGB 帧缓冲区进行渲染。 如果设置为 false,则操作符将使用线性帧缓冲区。 默认值为 False

vsyncbool,可选

启用垂直同步。 如果设置为 true,则操作符会等待显示器的下一个垂直消隐周期以更新当前图像。 默认值为 False

display_color_spaceholoscan.operators.HolovizOp.ColorSpace,可选

设置显示颜色空间。 支持的颜色空间取决于显示设置。 始终支持 'ColorSpace::SRGB_NONLINEAR'。 在无头模式下,由于没有显示器,因此仅支持 'ColorSpace::PASS_THROUGH'。 对于其他颜色空间,需要将显示器配置为 HDR。 默认值为 ColorSpace::AUTO

enable_render_buffer_inputbool,可选

如果 True,则会向操作符添加一个名为 "render_buffer_input" 的附加输入端口。 默认值为 False

enable_render_buffer_outputbool,可选

如果 True,则会向操作符添加一个名为 "render_buffer_output" 的附加输出端口。 默认值为 False

enable_camera_pose_outputbool,可选

如果 True,则会向操作符添加一个名为 "camera_pose_output" 的附加输出端口。 默认值为 False

camera_pose_output_typestr,可选

"camera_pose_output" 处输出的数据类型。 支持的值为 projection_matrixextrinsics_model。 默认值为 projection_matrix

camera_eye三个浮点数的序列,可选

初始相机视点位置。 默认值为 (0.0, 0.0, 1.0)

camera_look_at三个浮点数的序列,可选

初始相机注视位置。 默认值为 (0.0, 0.0, 0.0)

camera_up三个浮点数的序列,可选

初始相机向上向量。 默认值为 (0.0, 1.0, 0.0)

key_callbackCallable[HolovizOp.Key, HolovizOp.KeyAndButtonAction, HolovizOp.KeyModifiers],可选

当按下、释放或重复按键时,将调用回调函数。

unicode_char_callbackCallable[int],可选

当输入 Unicode 字符时,将调用回调函数。

mouse_button_callbackCallable[HolovizOp.MouseButton, HolovizOp.KeyAndButtonAction, HolovizOp.KeyModifiers],可选

当按下或释放鼠标按钮时,将调用回调函数。

scroll_callbackCallable[float, float],可选

当使用滚动设备(例如鼠标滚轮或触摸板的滚动区域)时,将调用回调函数。

cursor_pos_callbackCallable[float, float],可选

当光标位置更改时,将调用回调函数。 坐标以屏幕坐标提供,相对于内容区域的左上边缘。

framebuffer_size_callbackCallable[int, int],可选

当帧缓冲区调整大小时,将调用回调函数。

window_size_callbackCallable[int, int],可选

当窗口调整大小时,将调用回调函数。

font_pathstr,可选

用于渲染文本的字体的文件路径。 默认值为 ""

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

window_close_conditionholoscan.conditions.BooleanCondition,可选

这是操作符上的 BooleanCondition,如果显示窗口关闭,将导致操作符停止执行。 默认情况下,此条件在初始化期间自动创建。 如果例如有多个 HolovizOp 操作符,并且您希望在两者之间共享相同的窗口关闭条件,则用户可能希望提供它。 通过共享相同的条件,如果关闭其中一个显示窗口,它也会关闭其他窗口。

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "holoviz_op"

注释

tensors 参数用于指定要显示的 tensor。 每个 tensor 都是使用字典定义的,该字典至少必须包含一个 ‘name’ 键,该键对应于在操作符输入上找到的 tensor。 还应提供 ‘type’ 键以指示要显示的条目的类型。 ‘type’ 键将是 {"color", "color_lut", "crosses", "lines", "lines_3d", "line_strip", "line_strip_3d", "ovals", "points", "points_3d", "rectangles", "text", "triangles", "triangles_3d", "depth_map", "depth_map_color", "unknown"} 之一。 默认类型为 "unknown",它将尝试根据 tensor 维度猜测相应的类型。 下面给出了具体的示例。

要显示单个 2D RGB 或 RGBA 图像,请使用包含单个 "color" 类型的 tensor 的列表。

复制
已复制!
            

tensors = [dict(name="video", type="color", opacity=1.0, priority=0)]

在此处,可选键 opacity 用于缩放 tensor 的不透明度。 priority 键用于指定图层的渲染优先级。 优先级较高的图层将渲染在优先级较低的图层之上。

如果我们还有一个表示矩形边界框的 "boxes"` tensor,我们可以像这样将它们显示在图像的顶部。

复制
已复制!
            

tensors = [ dict(name="video", type="color", priority=0), dict(name="boxes", type="rectangles", color=[1.0, 0.0, 0.0], line_width=2, priority=1), ]

其中 colorline_width 键指定边界框的颜色和线宽。

字典的详细信息如下

  • name:包含要显示的输入数据的 tensor 的名称

    • type: str

  • type:输入类型(默认 "unknown"

    • type: str

    • 可能的值

      • unknown:未知类型,操作符尝试通过检查 tensor 来猜测类型。

      • color:RGB 或 RGBA 颜色 2d 图像。

      • color_lut:单通道 2d 图像,颜色已查找。

      • points:点图元,每个图元一个坐标 (x, y)。

      • lines:线图元,每个图元两个坐标 (x0, y0) 和 (x1, y1)。

      • line_strip:线带图元,线图元 i 由每个坐标 (xi, yi) 和后续坐标 (xi+1, yi+1) 定义。

      • triangles:三角形图元,每个图元三个坐标 (x0, y0)、(x1, y1) 和 (x2, y2)。

      • crosses:十字图元,十字由中心坐标和大小 (xi, yi, si) 定义。

      • rectangles:轴对齐矩形图元,每个矩形由两个坐标 (xi, yi) 和 (xi+1, yi+1) 定义。

      • ovals:椭圆图元,椭圆图元由中心坐标和轴大小 (xi, yi, sxi, syi) 定义。

      • text:文本由每个字符串的左上角坐标和大小 (x, y, s) 定义,文本字符串由 InputSpec 成员 text 定义。

      • depth_map:单通道 2d 数组,其中每个元素表示深度值。 数据使用点、线或三角形作为 3d 对象渲染。 元素的颜色可以通过 depth_map_color 指定。 深度图的支持格式

        • 8 位无符号归一化格式,具有单个 8 位深度分量

        • 32 位有符号浮点格式,具有单个 32 位深度分量

      • depth_map_color:RGBA 2d 图像,与深度图大小相同。 深度图网格的每个元素一个颜色值。 支持的格式:32 位无符号归一化格式,具有字节 0 中的 8 位 R 分量、字节 1 中的 8 位 G 分量、字节 2 中的 8 位 B 分量和字节 3 中的 8 位 A 分量。

  • opacity:图层不透明度,1.0 为完全不透明,0.0 为完全透明(默认值:1.0

    • type: float

  • priority:图层优先级,确定渲染顺序,优先级较高的图层

    值渲染在优先级较低的图层之上(默认值:0

    • type: int

  • image_format:颜色图像格式,如果 typecolorcolor_lut

    depth_map_color 时使用。 (默认值:auto_detect)。

    • type: str

  • color:渲染几何体的 RGBA 颜色(默认值:[1.F, 1.F, 1.F, 1.F]

    • type: List[float]

  • line_width:由线组成的几何体的线宽(默认值:1.0

    • type: float

  • point_size:由点组成的几何体的点大小(默认值:1.0

    • type: float

  • text:文本字符串数组,当 type 为 text 时使用(默认值:[]

    • type: List[str]

  • yuv_model_conversion:YUV 模型转换(默认值:yuv_601

    • type: str

    • 可能的值

      • yuv_601:BT.601 中定义的从 YUV 到 RGB 的颜色模型转换

      • yuv_709:BT.709 中定义的从 YUV 到 RGB 的颜色模型转换

      • yuv_2020:BT.2020 中定义的从 YUV 到 RGB 的颜色模型转换

  • yuv_range:YUV 范围(默认值:itu_full

    • type: str

    • 可能的值

      • itu_full:编码值的完整范围有效,并根据

        ITU “全范围”量化规则进行解释

      • itu_narrow:在编码的数值范围内保留了顶部空间和底部空间

        值,其余值根据 ITU “窄范围”量化规则进行扩展

  • x_chroma_location:相对于亮度分量采样的下采样色度分量样本的位置

    样本。 (默认值:cosited_even

    • type: str

    • 可能的值

      • cosited_even:下采样的色度样本与偶数的亮度样本对齐

        坐标

      • midpoint:下采样的色度样本位于每个偶数

        亮度样本和最近的较高奇数亮度样本之间的中间位置

  • y_chroma_location:相对于亮度分量采样的下采样色度分量样本的位置

    样本。 (默认值:cosited_even

    • type: str

    • 可能的值

      • cosited_even:下采样的色度样本与偶数的亮度样本对齐

        坐标

      • midpoint:下采样的色度样本位于每个偶数

        亮度样本和最近的较高奇数亮度样本之间的中间位置

  • depth_map_render_mode:深度图渲染模式(默认值:points

    • type: str

    • 可能的值

      • points:渲染为点

      • lines:渲染为线

      • triangles:渲染为三角形

  1. 显示彩色图像

    图像数据可以在主机或设备 (GPU) 上。 对于 tensor,如果 image_formatauto_detect(默认值),则图像格式从分量计数和分量类型派生。 在自动检测模式下支持以下图像格式

    • 灰度 8 位有符号归一化

    • 灰度 8 位无符号归一化

    • 灰度 16 位有符号归一化

    • 灰度 16 位无符号归一化

    • 灰度 32 位有符号归一化

    • 灰度 32 位无符号归一化

    • 灰度 32 位浮点

    • RGB 8 位有符号归一化

    • RGB 8 位无符号归一化

    • RGBA 8 位有符号归一化

    • RGBA 8 位无符号归一化

    • RGBA 16 位有符号归一化

    • RGBA 16 位无符号归一化

    • RGBA 32 位浮点

    此外,image_format 可以设置为以下值

    • “r8_uint”

    • “r8_sint”

    • “r8_unorm”

    • “r8_snorm”

    • “r8_srgb”

    • “r16_uint”

    • “r16_sint”

    • “r16_unorm”

    • “r16_snorm”

    • “r16_sfloat”

    • “r32_uint”

    • “r32_sint”

    • “r32_sfloat”

    • “r8g8b8_unorm”

    • “r8g8b8_snorm”

    • “r8g8b8_snorm”

    • “r8g8b8a8_unorm”

    • “r8g8b8a8_snorm”

    • “r8g8b8a8_srgb”

    • “r16g16b16a16_unorm”

    • “r16g16b16a16_snorm”

    • “r16g16b16a16_sfloat”

    • “r32g32b32a32_sfloat”

    • “a2b10g10r10_unorm_pack32”

    • “a2r10g10b10_unorm_pack32”

    • “b8g8r8a8_unorm”

    • “b8g8r8a8_srgb”

    • “a8b8g8r8_unorm_pack32”

    • “y8u8y8v8_422_unorm”

    • “u8y8v8y8_422_unorm”

    • “y8_u8v8_2plane_420_unorm”

    • “y8_u8v8_2plane_422_unorm”

    • “y8_u8_v8_3plane_420_unorm”

    • “y8_u8_v8_3plane_422_unorm”

    • “y16_u16v16_2plane_420_unorm”

    • “y16_u16v16_2plane_422_unorm”

    • “y16_u16_v16_3plane_420_unorm”

    • “y16_u16_v16_3plane_422_unorm”

    type 参数设置为 color_lut 时,最终颜色使用 color_lut 参数中的值进行查找。 对于颜色查找,支持以下图像格式

    • R 8 位有符号

    • R 8 位无符号

    • R 16 位有符号

    • R 16 位无符号

    • R 32 位有符号

    • R 32 位无符号

  2. 绘制几何图形

    在所有情况下,xy 都是 [0, 1] 范围内的归一化坐标。 xy 分别对应于显示的水平轴和垂直轴。 原点 (0, 0) 位于显示的左上角。 可见区域之外的几何图元将被裁剪。 坐标数组应具有 (N, C) 的形状,其中 N 是坐标计数,C 是每个坐标的分量计数。

    • 点由 (x, y) 坐标对定义。

    • 线由一组两个 (x, y) 坐标对定义。

    • 线带由 (x, y) 坐标对序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。

    • 三角形由一组三个 (x, y) 坐标对定义。

    • 十字由 (x, y, size) 元组定义。 size 指定十字在 x 方向上的大小,并且是可选的,如果省略,则设置为 0.05y 方向的大小使用窗口的纵横比计算,以使十字为正方形。

    • 矩形(边界框)由一对 2 元组定义,这些元组定义框的左上角和右下角坐标:(x1, y1), (x2, y2)

    • 椭圆由 (x, y, size_x, size_y) 元组定义。 size_xsize_y 是可选的,如果省略,则设置为 0.05

    • 文本由 (x, y, size) 元组定义。 size 指定文本在 y 方向上的大小,并且是可选的,如果省略,则设置为 0.05x 方向的大小使用窗口的纵横比计算。 每个坐标的索引引用 text 参数中的文本字符串,并且索引被限制为文本数组的大小。 例如,如果为 text 参数设置了一个项目,例如 text=["my_text"] 和三个坐标,则 my_text 将渲染三次。 如果 text=["first text", "second text"] 并且指定了三个坐标,则 first text 在第一个坐标处渲染,second text 在第二个坐标处渲染,然后在第三个坐标处再次渲染 second texttext 字符串数组是固定的,并且在初始化后无法更改。 要隐藏不应显示的文本,请为文本项指定大于 (1.0, 1.0) 的坐标,然后文本将被裁剪掉。

    • 3D 点由 (x, y, z) 坐标元组定义。

    • 3D 线由一组两个 (x, y, z) 坐标元组定义。

    • 3D 线带由 (x, y, z) 坐标元组序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。

    • 3D 三角形由一组三个 (x, y, z) 坐标元组定义。

  3. 显示深度图

    typedepth_map 时,提供的数据被解释为深度值矩形数组。 此外,可以通过将 type 设置为 depth_map_color 来指定网格中每个点的颜色值的 2d 数组。

    可以通过设置 depth_map_render_mode 来选择绘制的几何图形类型。

    深度图以 3D 方式渲染,并支持相机移动。 相机使用鼠标控制

    • 轨道(LMB)

    • 平移(LMB + CTRL | MMB)

    • 推拉(LMB + SHIFT | RMB | 鼠标滚轮)

    • 环顾四周(LMB + ALT | LMB + CTRL + SHIFT)

    • 缩放(鼠标滚轮 + SHIFT)

  4. 输出

    默认情况下,会打开一个窗口来显示渲染,但扩展也可以使用 headless 参数在无头模式下运行。

    使用独占模式显示也受到 use_exclusive_display 参数的支持。 这通过避免桌面合成器来减少延迟。

    渲染的帧缓冲区可以输出到 render_buffer_output

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

InputSpec HolovizOp 操作符的 InputSpec。
add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

ChromaLocation
ColorSpace
DepthMapRenderMode
ImageFormat
InputType
Key
KeyAndButtonAction
KeyModifiers
MouseButton
OperatorType
YuvModelConversion
YuvRange

class ChromaLocation

基类: pybind11_builtins.pybind11_object

成员

COSITED_EVEN

MIDPOINT

属性

name

value
COSITED_EVEN = <ChromaLocation.COSITED_EVEN: 0>
MIDPOINT = <ChromaLocation.MIDPOINT: 1>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.ChromaLocation, value: int) → None
property name
property value
class ColorSpace

基类: pybind11_builtins.pybind11_object

成员

AUTO

SRGB_NONLINEAR

EXTENDED_SRGB_LINEAR

BT2020_LINEAR

HDR10_ST2084

PASS_THROUGH

BT709_LINEAR

属性

name

value
AUTO = <ColorSpace.AUTO: -1>
BT2020_LINEAR = <ColorSpace.BT2020_LINEAR: 2>
BT709_LINEAR = <ColorSpace.BT709_LINEAR: 5>
EXTENDED_SRGB_LINEAR = <ColorSpace.EXTENDED_SRGB_LINEAR: 1>
HDR10_ST2084 = <ColorSpace.HDR10_ST2084: 3>
PASS_THROUGH = <ColorSpace.PASS_THROUGH: 4>
SRGB_NONLINEAR = <ColorSpace.SRGB_NONLINEAR: 0>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.ColorSpace, value: int) → None
property name
property value
class DepthMapRenderMode

基类: pybind11_builtins.pybind11_object

成员

POINTS

LINES

TRIANGLES

属性

name

value
LINES = <DepthMapRenderMode.LINES: 1>
POINTS = <DepthMapRenderMode.POINTS: 0>
TRIANGLES = <DepthMapRenderMode.TRIANGLES: 2>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.DepthMapRenderMode, value: int) → None
property name
property value
class ImageFormat

基类: pybind11_builtins.pybind11_object

成员

AUTO_DETECT

R8_UINT

R8_SINT

R8_UNORM

R8_SNORM

R8_SRGB

R16_UINT

R16_SINT

R16_UNORM

R16_SNORM

R16_SFLOAT

R32_UINT

R32_SINT

R32_SFLOAT

R8G8B8_UNORM

R8G8B8_SNORM

R8G8B8_SRGB

R8G8B8A8_UNORM

R8G8B8A8_SNORM

R8G8B8A8_SRGB

R16G16B16A16_UNORM

R16G16B16A16_SNORM

R16G16B16A16_SFLOAT

R32G32B32A32_SFLOAT

D16_UNORM

X8_D24_UNORM

D32_SFLOAT

A2B10G10R10_UNORM_PACK32

A2R10G10B10_UNORM_PACK32

B8G8R8A8_UNORM

B8G8R8A8_SRGB

A8B8G8R8_UNORM_PACK32

A8B8G8R8_SRGB_PACK32

Y8U8Y8V8_422_UNORM

U8Y8V8Y8_422_UNORM

Y8_U8V8_2PLANE_420_UNORM

Y8_U8V8_2PLANE_422_UNORM

Y8_U8_V8_3PLANE_420_UNORM

Y8_U8_V8_3PLANE_422_UNORM

Y16_U16V16_2PLANE_420_UNORM

Y16_U16V16_2PLANE_422_UNORM

Y16_U16_V16_3PLANE_420_UNORM

Y16_U16_V16_3PLANE_422_UNORM

属性

name

value
A2B10G10R10_UNORM_PACK32 = <ImageFormat.A2B10G10R10_UNORM_PACK32: 26>
A2R10G10B10_UNORM_PACK32 = <ImageFormat.A2R10G10B10_UNORM_PACK32: 27>
A8B8G8R8_SRGB_PACK32 = <ImageFormat.A8B8G8R8_SRGB_PACK32: 31>
A8B8G8R8_UNORM_PACK32 = <ImageFormat.A8B8G8R8_UNORM_PACK32: 30>
AUTO_DETECT = <ImageFormat.AUTO_DETECT: -1>
B8G8R8A8_SRGB = <ImageFormat.B8G8R8A8_SRGB: 29>
B8G8R8A8_UNORM = <ImageFormat.B8G8R8A8_UNORM: 28>
D16_UNORM = <ImageFormat.D16_UNORM: 23>
D32_SFLOAT = <ImageFormat.D32_SFLOAT: 25>
R16G16B16A16_SFLOAT = <ImageFormat.R16G16B16A16_SFLOAT: 21>
R16G16B16A16_SNORM = <ImageFormat.R16G16B16A16_SNORM: 20>
R16G16B16A16_UNORM = <ImageFormat.R16G16B16A16_UNORM: 19>
R16_SFLOAT = <ImageFormat.R16_SFLOAT: 9>
R16_SINT = <ImageFormat.R16_SINT: 6>
R16_SNORM = <ImageFormat.R16_SNORM: 8>
R16_UINT = <ImageFormat.R16_UINT: 5>
R16_UNORM = <ImageFormat.R16_UNORM: 7>
R32G32B32A32_SFLOAT = <ImageFormat.R32G32B32A32_SFLOAT: 22>
R32_SFLOAT = <ImageFormat.R32_SFLOAT: 12>
R32_SINT = <ImageFormat.R32_SINT: 11>
R32_UINT = <ImageFormat.R32_UINT: 10>
R8G8B8A8_SNORM = <ImageFormat.R8G8B8A8_SNORM: 17>
R8G8B8A8_SRGB = <ImageFormat.R8G8B8A8_SRGB: 18>
R8G8B8A8_UNORM = <ImageFormat.R8G8B8A8_UNORM: 16>
R8G8B8_SNORM = <ImageFormat.R8G8B8_SNORM: 14>
R8G8B8_SRGB = <ImageFormat.R8G8B8_SRGB: 15>
R8G8B8_UNORM = <ImageFormat.R8G8B8_UNORM: 13>
R8_SINT = <ImageFormat.R8_SINT: 1>
R8_SNORM = <ImageFormat.R8_SNORM: 3>
R8_SRGB = <ImageFormat.R8_SRGB: 4>
R8_UINT = <ImageFormat.R8_UINT: 0>
R8_UNORM = <ImageFormat.R8_UNORM: 2>
U8Y8V8Y8_422_UNORM = <ImageFormat.U8Y8V8Y8_422_UNORM: 33>
X8_D24_UNORM = <ImageFormat.X8_D24_UNORM: 24>
Y16_U16V16_2PLANE_420_UNORM = <ImageFormat.Y16_U16V16_2PLANE_420_UNORM: 38>
Y16_U16V16_2PLANE_422_UNORM = <ImageFormat.Y16_U16V16_2PLANE_422_UNORM: 39>
Y16_U16_V16_3PLANE_420_UNORM = <ImageFormat.Y16_U16_V16_3PLANE_420_UNORM: 40>
Y16_U16_V16_3PLANE_422_UNORM = <ImageFormat.Y16_U16_V16_3PLANE_422_UNORM: 41>
Y8U8Y8V8_422_UNORM = <ImageFormat.Y8U8Y8V8_422_UNORM: 32>
Y8_U8V8_2PLANE_420_UNORM = <ImageFormat.Y8_U8V8_2PLANE_420_UNORM: 34>
Y8_U8V8_2PLANE_422_UNORM = <ImageFormat.Y8_U8V8_2PLANE_422_UNORM: 35>
Y8_U8_V8_3PLANE_420_UNORM = <ImageFormat.Y8_U8_V8_3PLANE_420_UNORM: 36>
Y8_U8_V8_3PLANE_422_UNORM = <ImageFormat.Y8_U8_V8_3PLANE_422_UNORM: 37>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.ImageFormat, value: int) → None
property name
property value
class InputSpec

基类: pybind11_builtins.pybind11_object

HolovizOp 操作符的 InputSpec。

参数
tensor_namestr

The tensor name for this input.

typeholoscan.operators.HolovizOp.InputType or str

The type of data that this tensor represents.

属性

type (holoscan.operators.HolovizOp.InputType) The type of data that this tensor represents.
opacity (float) The opacity of the object. Must be in range [0.0, 1.0] where 1.0 is fully opaque.
priority (int) Layer priority, determines the render order. Layers with higher priority values are rendered on top of layers with lower priority.
image_format (holoscan.operators.HolovizOp.ImageFormat) Color image format, used if type is HolovizOp.InputType.COLORR, HolovizOp.InputType.COLOR_LUT or HolovizOp.InputType.DEPTH_MAP_COLOR.
color (4-tuple of float) RGBA values in range [0.0, 1.0] for rendered geometry.
line_width (float) Line width for geometry made of lines.
point_size (float) Point size for geometry made of points.
text (sequence of str) Sequence of strings used when type is HolovizOp.InputType.TEXT.
yuv_model_conversion (holoscan.operators.HolovizOp.YuvModelConversion) YUV model conversion.
yuv_range (holoscan.operators.HolovizOp.YuvRange) YUV 范围。
x_chroma_location (holoscan.operators.HolovizOp.ChromaLocation) chroma location in x direction for formats which are chroma downsampled in width (420 and 422).
y_chroma_location (holoscan.operators.HolovizOp.ChromaLocation) chroma location in y direction for formats which are chroma downsampled in height (420).
depth_map_render_mode (holoscan.operators.HolovizOp.DepthMapRenderMode) The depth map render mode. Used only if type is HolovizOp.InputType.DEPTH_MAP or HolovizOp.InputType.DEPTH_MAP_COLOR.
views (list of HolovizOp.InputSpec.View) Sequence of layer views. By default a layer will fill the whole window. When using a view, the layer can be placed freely within the window. When multiple views are specified, the layer is drawn multiple times using the specified layer views.

方法

View View for the InputSpec of a HolovizOp operator.
description(self)

返回值

class View

基类: pybind11_builtins.pybind11_object

View for the InputSpec of a HolovizOp operator.

注释

Layers can also be placed in 3D space by specifying a 3D transformation matrix. Note that for geometry layers there is a default matrix which allows coordinates in the range of [0 … 1] instead of the Vulkan [-1 … 1] range. When specifying a matrix for a geometry layer, this default matrix is overwritten.

When multiple views are specified, the layer is drawn multiple times using the specified layer views.

It’s possible to specify a negative term for height, which flips the image. When using a negative height, one should also adjust the y value to point to the lower left corner of the viewport instead of the upper left corner.

属性

offset_x, offset_y (float) Offset of top-left corner of the view. (0, 0) is the upper left and (1, 1) is the lower right.
width (float) Normalized width (range [0.0, 1.0]).
height (float) Normalized height (range [0.0, 1.0]).
matrix (sequence of float) 16-elements representing a 4x4 transformation matrix.

__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.InputSpec.View) → None

View for the InputSpec of a HolovizOp operator.

注释

Layers can also be placed in 3D space by specifying a 3D transformation matrix. Note that for geometry layers there is a default matrix which allows coordinates in the range of [0 … 1] instead of the Vulkan [-1 … 1] range. When specifying a matrix for a geometry layer, this default matrix is overwritten.

When multiple views are specified, the layer is drawn multiple times using the specified layer views.

It’s possible to specify a negative term for height, which flips the image. When using a negative height, one should also adjust the y value to point to the lower left corner of the viewport instead of the upper left corner.

属性

offset_x, offset_y (float) Offset of top-left corner of the view. (0, 0) is the upper left and (1, 1) is the lower right.
width (float) Normalized width (range [0.0, 1.0]).
height (float) Normalized height (range [0.0, 1.0]).
matrix (sequence of float) 16-elements representing a 4x4 transformation matrix.

property height
property matrix
property offset_x
property offset_y
property width
__init__(*args, **kwargs)

重载函数。

  1. __init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.InputSpec, arg0: str, arg1: holoscan.operators.holoviz._holoviz.HolovizOp.InputType) -> None

HolovizOp 操作符的 InputSpec。

参数
tensor_namestr

The tensor name for this input.

typeholoscan.operators.HolovizOp.InputType or str

The type of data that this tensor represents.

属性

type (holoscan.operators.HolovizOp.InputType) The type of data that this tensor represents.
opacity (float) The opacity of the object. Must be in range [0.0, 1.0] where 1.0 is fully opaque.
priority (int) Layer priority, determines the render order. Layers with higher priority values are rendered on top of layers with lower priority.
image_format (holoscan.operators.HolovizOp.ImageFormat) Color image format, used if type is HolovizOp.InputType.COLORR, HolovizOp.InputType.COLOR_LUT or HolovizOp.InputType.DEPTH_MAP_COLOR.
color (4-tuple of float) RGBA values in range [0.0, 1.0] for rendered geometry.
line_width (float) Line width for geometry made of lines.
point_size (float) Point size for geometry made of points.
text (sequence of str) Sequence of strings used when type is HolovizOp.InputType.TEXT.
yuv_model_conversion (holoscan.operators.HolovizOp.YuvModelConversion) YUV model conversion.
yuv_range (holoscan.operators.HolovizOp.YuvRange) YUV 范围。
x_chroma_location (holoscan.operators.HolovizOp.ChromaLocation) chroma location in x direction for formats which are chroma downsampled in width (420 and 422).
y_chroma_location (holoscan.operators.HolovizOp.ChromaLocation) chroma location in y direction for formats which are chroma downsampled in height (420).
depth_map_render_mode (holoscan.operators.HolovizOp.DepthMapRenderMode) The depth map render mode. Used only if type is HolovizOp.InputType.DEPTH_MAP or HolovizOp.InputType.DEPTH_MAP_COLOR.
views (list of HolovizOp.InputSpec.View) Sequence of layer views. By default a layer will fill the whole window. When using a view, the layer can be placed freely within the window. When multiple views are specified, the layer is drawn multiple times using the specified layer views.
2. __init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.InputSpec, arg0: str, arg1: str) -> None

property color
property depth_map_render_mode
description(self: holoscan.operators.holoviz._holoviz.HolovizOp.InputSpec) → str
返回值
descriptionstr

YAML string representation of the InputSpec class.

property image_format
property line_width
property opacity
property point_size
property priority
property text
property type
property views
property x_chroma_location
property y_chroma_location
property yuv_model_conversion
property yuv_range
class InputType

基类: pybind11_builtins.pybind11_object

成员

UNKNOWN

COLOR

COLOR_LUT

POINTS

LINES

LINE_STRIP

TRIANGLES

CROSSES

RECTANGLES

OVALS

TEXT

DEPTH_MAP

DEPTH_MAP_COLOR

POINTS_3D

LINES_3D

LINE_STRIP_3D

TRIANGLES_3D

属性

name

value
COLOR = <InputType.COLOR: 1>
COLOR_LUT = <InputType.COLOR_LUT: 2>
CROSSES = <InputType.CROSSES: 7>
DEPTH_MAP = <InputType.DEPTH_MAP: 11>
DEPTH_MAP_COLOR = <InputType.DEPTH_MAP_COLOR: 12>
LINES = <InputType.LINES: 4>
LINES_3D = <InputType.LINES_3D: 14>
LINE_STRIP = <InputType.LINE_STRIP: 5>
LINE_STRIP_3D = <InputType.LINE_STRIP_3D: 15>
OVALS = <InputType.OVALS: 9>
POINTS = <InputType.POINTS: 3>
POINTS_3D = <InputType.POINTS_3D: 13>
RECTANGLES = <InputType.RECTANGLES: 8>
TEXT = <InputType.TEXT: 10>
TRIANGLES = <InputType.TRIANGLES: 6>
TRIANGLES_3D = <InputType.TRIANGLES_3D: 16>
UNKNOWN = <InputType.UNKNOWN: 0>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.InputType, value: int) → None
property name
property value
class Key

基类: pybind11_builtins.pybind11_object

成员

SPACE

APOSTROPHE

COMMA

MINUS

PERIOD

SLASH

ZERO

ONE

TWO

THREE

FOUR

FIVE

SIX

SEVEN

EIGHT

NINE

SEMICOLON

EQUAL

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

LEFT_BRACKET

BACKSLASH

RIGHT_BRACKET

GRAVE_ACCENT

ESCAPE

ENTER

TAB

BACKSPACE

INSERT

DELETE

RIGHT

LEFT

DOWN

UP

PAGE_UP

PAGE_DOWN

HOME

END

CAPS_LOCK

SCROLL_LOCK

NUM_LOCK

PRINT_SCREEN

PAUSE

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

F13

F14

F15

F16

F17

F18

F19

F20

F21

F22

F23

F24

F25

KP_0

KP_1

KP_2

KP_3

KP_4

KP_5

KP_6

KP_7

KP_8

KP_9

KP_DECIMAL

KP_DIVIDE

KP_MULTIPLY

KP_SUBTRACT

KP_ADD

KP_ENTER

KP_EQUAL

LEFT_SHIFT

LEFT_CONTROL

LEFT_ALT

LEFT_SUPER

RIGHT_SHIFT

RIGHT_CONTROL

RIGHT_ALT

RIGHT_SUPER

MENU

属性

name

value
A = <Key.A: 65>
APOSTROPHE = <Key.APOSTROPHE: 39>
B = <Key.B: 66>
BACKSLASH = <Key.BACKSLASH: 92>
BACKSPACE = <Key.BACKSPACE: 259>
C = <Key.C: 67>
CAPS_LOCK = <Key.CAPS_LOCK: 280>
COMMA = <Key.COMMA: 44>
D = <Key.D: 68>
DELETE = <Key.DELETE: 261>
DOWN = <Key.DOWN: 264>
E = <Key.E: 69>
EIGHT = <Key.EIGHT: 56>
END = <Key.END: 269>
ENTER = <Key.ENTER: 257>
EQUAL = <Key.EQUAL: 61>
ESCAPE = <Key.ESCAPE: 256>
F = <Key.F: 70>
F1 = <Key.F1: 290>
F10 = <Key.F10: 299>
F11 = <Key.F11: 300>
F12 = <Key.F12: 301>
F13 = <Key.F13: 302>
F14 = <Key.F14: 303>
F15 = <Key.F15: 304>
F16 = <Key.F16: 305>
F17 = <Key.F17: 306>
F18 = <Key.F18: 307>
F19 = <Key.F19: 308>
F2 = <Key.F2: 291>
F20 = <Key.F20: 309>
F21 = <Key.F21: 310>
F22 = <Key.F22: 311>
F23 = <Key.F23: 312>
F24 = <Key.F24: 313>
F25 = <Key.F25: 314>
F3 = <Key.F3: 292>
F4 = <Key.F4: 293>
F5 = <Key.F5: 294>
F6 = <Key.F6: 295>
F7 = <Key.F7: 296>
F8 = <Key.F8: 297>
F9 = <Key.F9: 298>
FIVE = <Key.FIVE: 53>
FOUR = <Key.FOUR: 52>
G = <Key.G: 71>
GRAVE_ACCENT = <Key.GRAVE_ACCENT: 96>
H = <Key.H: 72>
HOME = <Key.HOME: 268>
I = <Key.I: 73>
INSERT = <Key.INSERT: 260>
J = <Key.J: 74>
K = <Key.K: 75>
KP_0 = <Key.KP_0: 320>
KP_1 = <Key.KP_1: 321>
KP_2 = <Key.KP_2: 322>
KP_3 = <Key.KP_3: 323>
KP_4 = <Key.KP_4: 324>
KP_5 = <Key.KP_5: 325>
KP_6 = <Key.KP_6: 326>
KP_7 = <Key.KP_7: 327>
KP_8 = <Key.KP_8: 328>
KP_9 = <Key.KP_9: 329>
KP_ADD = <Key.KP_ADD: 334>
KP_DECIMAL = <Key.KP_DECIMAL: 330>
KP_DIVIDE = <Key.KP_DIVIDE: 331>
KP_ENTER = <Key.KP_ENTER: 335>
KP_EQUAL = <Key.KP_EQUAL: 336>
KP_MULTIPLY = <Key.KP_MULTIPLY: 332>
KP_SUBTRACT = <Key.KP_SUBTRACT: 333>
L = <Key.L: 76>
LEFT = <Key.LEFT: 263>
LEFT_ALT = <Key.LEFT_ALT: 342>
LEFT_BRACKET = <Key.LEFT_BRACKET: 91>
LEFT_CONTROL = <Key.LEFT_CONTROL: 341>
LEFT_SHIFT = <Key.LEFT_SHIFT: 340>
LEFT_SUPER = <Key.LEFT_SUPER: 343>
M = <Key.M: 77>
MENU = <Key.MENU: 348>
MINUS = <Key.MINUS: 45>
N = <Key.N: 78>
NINE = <Key.NINE: 57>
NUM_LOCK = <Key.NUM_LOCK: 282>
O = <Key.O: 79>
ONE = <Key.ONE: 49>
P = <Key.P: 80>
PAGE_DOWN = <Key.PAGE_DOWN: 267>
PAGE_UP = <Key.PAGE_UP: 266>
PAUSE = <Key.PAUSE: 284>
PERIOD = <Key.PERIOD: 46>
PRINT_SCREEN = <Key.PRINT_SCREEN: 283>
Q = <Key.Q: 81>
R = <Key.R: 82>
RIGHT = <Key.RIGHT: 262>
RIGHT_ALT = <Key.RIGHT_ALT: 346>
RIGHT_BRACKET = <Key.RIGHT_BRACKET: 93>
RIGHT_CONTROL = <Key.RIGHT_CONTROL: 345>
RIGHT_SHIFT = <Key.RIGHT_SHIFT: 344>
RIGHT_SUPER = <Key.RIGHT_SUPER: 347>
S = <Key.S: 83>
SCROLL_LOCK = <Key.SCROLL_LOCK: 281>
SEMICOLON = <Key.SEMICOLON: 59>
SEVEN = <Key.SEVEN: 55>
SIX = <Key.SIX: 54>
SLASH = <Key.SLASH: 47>
SPACE = <Key.SPACE: 32>
T = <Key.T: 84>
TAB = <Key.TAB: 258>
THREE = <Key.THREE: 51>
TWO = <Key.TWO: 50>
U = <Key.U: 85>
UP = <Key.UP: 265>
V = <Key.V: 86>
W = <Key.W: 87>
X = <Key.X: 88>
Y = <Key.Y: 89>
ZERO = <Key.ZERO: 48>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.Key, value: int) → None
property name
property value
class KeyAndButtonAction

基类: pybind11_builtins.pybind11_object

成员

按下

释放

重复

属性

name

value
PRESS = <KeyAndButtonAction.PRESS: 0>
RELEASE = <KeyAndButtonAction.RELEASE: 1>
REPEAT = <KeyAndButtonAction.REPEAT: 2>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.KeyAndButtonAction, value: int) → None
property name
property value
class KeyModifiers

基类: pybind11_builtins.pybind11_object

属性

alt
caps_lock
control
num_lock
shift

__init__(*args, **kwargs)
property alt
property caps_lock
property control
property num_lock
property shift
class MouseButton

基类: pybind11_builtins.pybind11_object

成员

LEFT

MIDDLE

RIGHT

属性

name

value
LEFT = <MouseButton.LEFT: 0>
MIDDLE = <MouseButton.MIDDLE: 1>
RIGHT = <MouseButton.RIGHT: 2>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.MouseButton, value: int) → None
property name
property value
class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
class YuvModelConversion

基类: pybind11_builtins.pybind11_object

成员

YUV_601

YUV_709

YUV_2020

属性

name

value
YUV_2020 = <YuvModelConversion.YUV_2020: 2>
YUV_601 = <YuvModelConversion.YUV_601: 0>
YUV_709 = <YuvModelConversion.YUV_709: 1>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.YuvModelConversion, value: int) → None
property name
property value
class YuvRange

基类: pybind11_builtins.pybind11_object

成员

ITU_FULL

ITU_NARROW

属性

name

value
ITU_FULL = <YuvRange.ITU_FULL: 0>
ITU_NARROW = <YuvRange.ITU_NARROW: 1>
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp.YuvRange, value: int) → None
property name
property value
__init__(self: holoscan.operators.holoviz._holoviz.HolovizOp, fragment: holoscan.core._core.Fragment, *args, allocator: holoscan.resources._resources.Allocator, receivers: list[holoscan.core._core.IOSpec] = [], tensors: list[holoscan::ops::HolovizOp::InputSpec] = [], color_lut: list[list[float]] = [], window_title: str = 'Holoviz', display_name: str = '', width: int = 1920, height: int = 1080, framerate: int = 60, use_exclusive_display: bool = False, fullscreen: bool = False, headless: bool = False, framebuffer_srgb: bool = False, vsync: bool = False, display_color_space: holoscan.operators.holoviz._holoviz.HolovizOp.ColorSpace = <ColorSpace.AUTO: -1>, enable_render_buffer_input: bool = False, enable_render_buffer_output: bool = False, enable_camera_pose_output: bool = False, camera_pose_output_type: str = 'projection_matrix', camera_eye: Annotated[list[float], FixedSize(3)] = [0.0, 0.0, 1.0], camera_look_at: Annotated[list[float], FixedSize(3)] = [0.0, 0.0, 0.0], camera_up: Annotated[list[float], FixedSize(3)] = [0.0, 1.0, 1.0], key_callback: Callable[[holoscan::viz::Key, holoscan::viz::KeyAndButtonAction, holoscan::viz::KeyModifiers], None] = None, unicode_char_callback: Callable[[int], None] = None, mouse_button_callback: Callable[[holoscan::viz::MouseButton, holoscan::viz::KeyAndButtonAction, holoscan::viz::KeyModifiers], None] = None, scroll_callback: Callable[[float, float], None] = None, cursor_pos_callback: Callable[[float, float], None] = None, framebuffer_size_callback: Callable[[int, int], None] = None, window_size_callback: Callable[[int, int], None] = None, font_path: str = '', cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, window_close_condition: holoscan.conditions._conditions.BooleanCondition = None, name: str = 'holoviz_op') → None

使用 Holoviz 模块的 Holoviz 可视化算子。

这是一个基于 Vulkan 的可视化工具。

==命名输入==

receivers多接收器,接受 nvidia::gxf::Tensor 和/或 nvidia::gxf::VideoBuffer

任意数量的上游端口可以连接到此 receivers 端口。 此端口可以接受 VideoBuffer 或 Tensor。 这些输入可以在主机内存或设备内存中。 每个 tensor 或 video buffer 将产生一个图层。 对于某些输入类型(例如,video buffer 将产生图像图层),操作符会自动检测图层类型。 对于其他输入类型或更复杂的用例,可以在初始化时作为参数或在运行时动态提供输入规范(通过 input_specs)。 在每次调用 compute 时,必须找到与 tensors 参数中指定的所有名称对应的 tensor,否则将引发异常。 任何未在 tensors 参数规范(或可选的动态 input_specs 输入)中出现的额外的、命名的 tensor 将被忽略。

input_specslist[holoscan.operators.HolovizOp.InputSpec],可选

InputSpec 对象的列表。 此端口可用于在运行时动态更新叠加规范。 操作符 compute 不需要在此端口上输入。

render_buffer_inputnvidia::gxf::VideoBuffer,可选

可以选择性地提供一个空的渲染缓冲区。 video buffer 必须具有 GXF_VIDEO_FORMAT_RGBA 格式并且位于设备内存中。 仅当 enable_render_buffer_input 设置为 True 时,此输入端口才存在,在这种情况下,仅当此输入端上收到消息时才会调用 compute

==命名输出==

render_buffer_outputnvidia::gxf::VideoBuffer,可选

用于填充渲染缓冲区的输出。 如果指定了输入渲染缓冲区,则使用该缓冲区,否则会分配一个新的缓冲区。 video buffer 将具有 GXF_VIDEO_FORMAT_RGBA 格式并且位于设备内存中。 此输出对于离线渲染或无头模式很有用。 仅当 enable_render_buffer_output 设置为 True 时,此输出端口才存在。

camera_pose_outputstd::array<float, 16> 或 nvidia::gxf::Pose3D,可选

相机姿态。 根据 camera_pose_output_type 的值,此输出端口输出一个 4x4 行主序投影矩阵(类型为 std::array<float, 16>)或相机外参模型(类型为 nvidia::gxf::Pose3D)。 仅当 enable_camera_pose_output 设置为 True 时,此输出端口才存在。

==设备内存要求==

如果启用了 render_buffer_input,则使用提供的缓冲区,并且不会分配内存块。 否则,当将此操作符与 holoscan.resources.BlockMemoryPool 一起使用时,需要单个设备内存块(storage_type=1)。 此内存块的大小可以通过将宽度和高度向上舍入到最接近的偶数大小,然后根据需要填充行,以使行步幅为 256 字节的倍数来确定。 用于计算块大小的 C++ 代码如下

复制
已复制!
            

def get_block_size(height, width): height_even = height + (height & 1) width_even = width + (width & 1) row_bytes = width_even * 4 # 4 bytes per pixel for 8-bit RGBA row_stride = row_bytes if (row_bytes % 256 == 0) else ((row_bytes // 256 + 1) * 256) return height_even * row_stride

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.core.Allocator,可选

用于分配渲染缓冲区输出的分配器。 如果 None,则默认为 holoscan.core.UnboundedAllocator

receiversholoscan.core.IOSpec 序列,可选

输入接收器列表。

tensors字典序列,可选

输入 tensor 列表。 每个 tensor 由一个字典定义,其中 "name" 键必须对应于发送到操作符输入的 tensor。 有关如何定义 tensor 字典的更多详细信息,请参见下面的注释部分。

color_lut浮点列表的列表,可选

类型为 color_lut 的 tensor 的颜色查找表。 形状应为 (n_colors, 4)

window_titlestr,可选

窗口画布上的标题。 默认值为 "Holoviz"

display_namestr,可选

在独占显示或全屏模式下,要使用的显示器的名称,如 xrandrhwinfo –monitor 所示。 默认值为 ""

widthint, 可选

窗口宽度或独占显示或全屏模式下的显示分辨率宽度。 默认值为 1920

heightint, 可选

窗口高度或独占显示或全屏模式下的显示分辨率宽度。 默认值为 1080

frameratefloat,可选

如果处于独占显示模式,则显示帧率(以 Hz 为单位)。 默认值为 60.0

use_exclusive_displaybool,可选

启用独占显示。 默认值为 False

fullscreenbool,可选

启用全屏窗口。 默认值为 False

headlessbool,可选

启用无头模式。 不会打开窗口,渲染缓冲区输出到端口 render_buffer_output。 默认值为 False

framebuffer_srgbbool,可选

启用 sRGB 帧缓冲区。 如果设置为 true,则操作符将使用 sRGB 帧缓冲区进行渲染。 如果设置为 false,则操作符将使用线性帧缓冲区。 默认值为 False

vsyncbool,可选

启用垂直同步。 如果设置为 true,则操作符会等待显示器的下一个垂直消隐周期以更新当前图像。 默认值为 False

display_color_spaceholoscan.operators.HolovizOp.ColorSpace,可选

设置显示颜色空间。 支持的颜色空间取决于显示设置。 始终支持 'ColorSpace::SRGB_NONLINEAR'。 在无头模式下,由于没有显示器,因此仅支持 'ColorSpace::PASS_THROUGH'。 对于其他颜色空间,需要将显示器配置为 HDR。 默认值为 ColorSpace::AUTO

enable_render_buffer_inputbool,可选

如果 True,则会向操作符添加一个名为 "render_buffer_input" 的附加输入端口。 默认值为 False

enable_render_buffer_outputbool,可选

如果 True,则会向操作符添加一个名为 "render_buffer_output" 的附加输出端口。 默认值为 False

enable_camera_pose_outputbool,可选

如果 True,则会向操作符添加一个名为 "camera_pose_output" 的附加输出端口。 默认值为 False

camera_pose_output_typestr,可选

"camera_pose_output" 处输出的数据类型。 支持的值为 projection_matrixextrinsics_model。 默认值为 projection_matrix

camera_eye三个浮点数的序列,可选

初始相机视点位置。 默认值为 (0.0, 0.0, 1.0)

camera_look_at三个浮点数的序列,可选

初始相机注视位置。 默认值为 (0.0, 0.0, 0.0)

camera_up三个浮点数的序列,可选

初始相机向上向量。 默认值为 (0.0, 1.0, 0.0)

key_callbackCallable[HolovizOp.Key, HolovizOp.KeyAndButtonAction, HolovizOp.KeyModifiers],可选

当按下、释放或重复按键时,将调用回调函数。

unicode_char_callbackCallable[int],可选

当输入 Unicode 字符时,将调用回调函数。

mouse_button_callbackCallable[HolovizOp.MouseButton, HolovizOp.KeyAndButtonAction, HolovizOp.KeyModifiers],可选

当按下或释放鼠标按钮时,将调用回调函数。

scroll_callbackCallable[float, float],可选

当使用滚动设备(例如鼠标滚轮或触摸板的滚动区域)时,将调用回调函数。

cursor_pos_callbackCallable[float, float],可选

当光标位置更改时,将调用回调函数。 坐标以屏幕坐标提供,相对于内容区域的左上边缘。

framebuffer_size_callbackCallable[int, int],可选

当帧缓冲区调整大小时,将调用回调函数。

window_size_callbackCallable[int, int],可选

当窗口调整大小时,将调用回调函数。

font_pathstr,可选

用于渲染文本的字体的文件路径。 默认值为 ""

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

window_close_conditionholoscan.conditions.BooleanCondition,可选

这是操作符上的 BooleanCondition,如果显示窗口关闭,将导致操作符停止执行。 默认情况下,此条件在初始化期间自动创建。 如果例如有多个 HolovizOp 操作符,并且您希望在两者之间共享相同的窗口关闭条件,则用户可能希望提供它。 通过共享相同的条件,如果关闭其中一个显示窗口,它也会关闭其他窗口。

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "holoviz_op"

注释

tensors 参数用于指定要显示的 tensor。 每个 tensor 都是使用字典定义的,该字典至少必须包含一个 ‘name’ 键,该键对应于在操作符输入上找到的 tensor。 还应提供 ‘type’ 键以指示要显示的条目的类型。 ‘type’ 键将是 {"color", "color_lut", "crosses", "lines", "lines_3d", "line_strip", "line_strip_3d", "ovals", "points", "points_3d", "rectangles", "text", "triangles", "triangles_3d", "depth_map", "depth_map_color", "unknown"} 之一。 默认类型为 "unknown",它将尝试根据 tensor 维度猜测相应的类型。 下面给出了具体的示例。

要显示单个 2D RGB 或 RGBA 图像,请使用包含单个 "color" 类型的 tensor 的列表。

复制
已复制!
            

tensors = [dict(name="video", type="color", opacity=1.0, priority=0)]

在此处,可选键 opacity 用于缩放 tensor 的不透明度。 priority 键用于指定图层的渲染优先级。 优先级较高的图层将渲染在优先级较低的图层之上。

如果我们还有一个表示矩形边界框的 "boxes"` tensor,我们可以像这样将它们显示在图像的顶部。

复制
已复制!
            

tensors = [ dict(name="video", type="color", priority=0), dict(name="boxes", type="rectangles", color=[1.0, 0.0, 0.0], line_width=2, priority=1), ]

其中 colorline_width 键指定边界框的颜色和线宽。

字典的详细信息如下

  • name:包含要显示的输入数据的 tensor 的名称

    • type: str

  • type:输入类型(默认 "unknown"

    • type: str

    • 可能的值

      • unknown:未知类型,操作符尝试通过检查 tensor 来猜测类型。

      • color:RGB 或 RGBA 颜色 2d 图像。

      • color_lut:单通道 2d 图像,颜色已查找。

      • points:点图元,每个图元一个坐标 (x, y)。

      • lines:线图元,每个图元两个坐标 (x0, y0) 和 (x1, y1)。

      • line_strip:线带图元,线图元 i 由每个坐标 (xi, yi) 和后续坐标 (xi+1, yi+1) 定义。

      • triangles:三角形图元,每个图元三个坐标 (x0, y0)、(x1, y1) 和 (x2, y2)。

      • crosses:十字图元,十字由中心坐标和大小 (xi, yi, si) 定义。

      • rectangles:轴对齐矩形图元,每个矩形由两个坐标 (xi, yi) 和 (xi+1, yi+1) 定义。

      • ovals:椭圆图元,椭圆图元由中心坐标和轴大小 (xi, yi, sxi, syi) 定义。

      • text:文本由每个字符串的左上角坐标和大小 (x, y, s) 定义,文本字符串由 InputSpec 成员 text 定义。

      • depth_map:单通道 2d 数组,其中每个元素表示深度值。 数据使用点、线或三角形作为 3d 对象渲染。 元素的颜色可以通过 depth_map_color 指定。 深度图的支持格式

        • 8 位无符号归一化格式,具有单个 8 位深度分量

        • 32 位有符号浮点格式,具有单个 32 位深度分量

      • depth_map_color:RGBA 2d 图像,与深度图大小相同。 深度图网格的每个元素一个颜色值。 支持的格式:32 位无符号归一化格式,具有字节 0 中的 8 位 R 分量、字节 1 中的 8 位 G 分量、字节 2 中的 8 位 B 分量和字节 3 中的 8 位 A 分量。

  • opacity:图层不透明度,1.0 为完全不透明,0.0 为完全透明(默认值:1.0

    • type: float

  • priority:图层优先级,确定渲染顺序,优先级较高的图层

    值渲染在优先级较低的图层之上(默认值:0

    • type: int

  • image_format:颜色图像格式,如果 typecolorcolor_lut

    depth_map_color 时使用。 (默认值:auto_detect)。

    • type: str

  • color:渲染几何体的 RGBA 颜色(默认值:[1.F, 1.F, 1.F, 1.F]

    • type: List[float]

  • line_width:由线组成的几何体的线宽(默认值:1.0

    • type: float

  • point_size:由点组成的几何体的点大小(默认值:1.0

    • type: float

  • text:文本字符串数组,当 type 为 text 时使用(默认值:[]

    • type: List[str]

  • yuv_model_conversion:YUV 模型转换(默认值:yuv_601

    • type: str

    • 可能的值

      • yuv_601:BT.601 中定义的从 YUV 到 RGB 的颜色模型转换

      • yuv_709:BT.709 中定义的从 YUV 到 RGB 的颜色模型转换

      • yuv_2020:BT.2020 中定义的从 YUV 到 RGB 的颜色模型转换

  • yuv_range:YUV 范围(默认值:itu_full

    • type: str

    • 可能的值

      • itu_full:编码值的完整范围有效,并根据

        ITU “全范围”量化规则进行解释

      • itu_narrow:在编码的数值范围内保留了顶部空间和底部空间

        值,其余值根据 ITU “窄范围”量化规则进行扩展

  • x_chroma_location:相对于亮度分量采样的下采样色度分量样本的位置

    样本。 (默认值:cosited_even

    • type: str

    • 可能的值

      • cosited_even:下采样的色度样本与偶数的亮度样本对齐

        坐标

      • midpoint:下采样的色度样本位于每个偶数

        亮度样本和最近的较高奇数亮度样本之间的中间位置

  • y_chroma_location:相对于亮度分量采样的下采样色度分量样本的位置

    样本。 (默认值:cosited_even

    • type: str

    • 可能的值

      • cosited_even:下采样的色度样本与偶数的亮度样本对齐

        坐标

      • midpoint:下采样的色度样本位于每个偶数

        亮度样本和最近的较高奇数亮度样本之间的中间位置

  • depth_map_render_mode:深度图渲染模式(默认值:points

    • type: str

    • 可能的值

      • points:渲染为点

      • lines:渲染为线

      • triangles:渲染为三角形

  1. 显示彩色图像

    图像数据可以在主机或设备 (GPU) 上。 对于 tensor,如果 image_formatauto_detect(默认值),则图像格式从分量计数和分量类型派生。 在自动检测模式下支持以下图像格式

    • 灰度 8 位有符号归一化

    • 灰度 8 位无符号归一化

    • 灰度 16 位有符号归一化

    • 灰度 16 位无符号归一化

    • 灰度 32 位有符号归一化

    • 灰度 32 位无符号归一化

    • 灰度 32 位浮点

    • RGB 8 位有符号归一化

    • RGB 8 位无符号归一化

    • RGBA 8 位有符号归一化

    • RGBA 8 位无符号归一化

    • RGBA 16 位有符号归一化

    • RGBA 16 位无符号归一化

    • RGBA 32 位浮点

    此外,image_format 可以设置为以下值

    • “r8_uint”

    • “r8_sint”

    • “r8_unorm”

    • “r8_snorm”

    • “r8_srgb”

    • “r16_uint”

    • “r16_sint”

    • “r16_unorm”

    • “r16_snorm”

    • “r16_sfloat”

    • “r32_uint”

    • “r32_sint”

    • “r32_sfloat”

    • “r8g8b8_unorm”

    • “r8g8b8_snorm”

    • “r8g8b8_snorm”

    • “r8g8b8a8_unorm”

    • “r8g8b8a8_snorm”

    • “r8g8b8a8_srgb”

    • “r16g16b16a16_unorm”

    • “r16g16b16a16_snorm”

    • “r16g16b16a16_sfloat”

    • “r32g32b32a32_sfloat”

    • “a2b10g10r10_unorm_pack32”

    • “a2r10g10b10_unorm_pack32”

    • “b8g8r8a8_unorm”

    • “b8g8r8a8_srgb”

    • “a8b8g8r8_unorm_pack32”

    • “y8u8y8v8_422_unorm”

    • “u8y8v8y8_422_unorm”

    • “y8_u8v8_2plane_420_unorm”

    • “y8_u8v8_2plane_422_unorm”

    • “y8_u8_v8_3plane_420_unorm”

    • “y8_u8_v8_3plane_422_unorm”

    • “y16_u16v16_2plane_420_unorm”

    • “y16_u16v16_2plane_422_unorm”

    • “y16_u16_v16_3plane_420_unorm”

    • “y16_u16_v16_3plane_422_unorm”

    type 参数设置为 color_lut 时,最终颜色使用 color_lut 参数中的值进行查找。 对于颜色查找,支持以下图像格式

    • R 8 位有符号

    • R 8 位无符号

    • R 16 位有符号

    • R 16 位无符号

    • R 32 位有符号

    • R 32 位无符号

  2. 绘制几何图形

    在所有情况下,xy 都是 [0, 1] 范围内的归一化坐标。 xy 分别对应于显示的水平轴和垂直轴。 原点 (0, 0) 位于显示的左上角。 可见区域之外的几何图元将被裁剪。 坐标数组应具有 (N, C) 的形状,其中 N 是坐标计数,C 是每个坐标的分量计数。

    • 点由 (x, y) 坐标对定义。

    • 线由一组两个 (x, y) 坐标对定义。

    • 线带由 (x, y) 坐标对序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。

    • 三角形由一组三个 (x, y) 坐标对定义。

    • 十字由 (x, y, size) 元组定义。 size 指定十字在 x 方向上的大小,并且是可选的,如果省略,则设置为 0.05y 方向的大小使用窗口的纵横比计算,以使十字为正方形。

    • 矩形(边界框)由一对 2 元组定义,这些元组定义框的左上角和右下角坐标:(x1, y1), (x2, y2)

    • 椭圆由 (x, y, size_x, size_y) 元组定义。 size_xsize_y 是可选的,如果省略,则设置为 0.05

    • 文本由 (x, y, size) 元组定义。 size 指定文本在 y 方向上的大小,并且是可选的,如果省略,则设置为 0.05x 方向的大小使用窗口的纵横比计算。 每个坐标的索引引用 text 参数中的文本字符串,并且索引被限制为文本数组的大小。 例如,如果为 text 参数设置了一个项目,例如 text=["my_text"] 和三个坐标,则 my_text 将渲染三次。 如果 text=["first text", "second text"] 并且指定了三个坐标,则 first text 在第一个坐标处渲染,second text 在第二个坐标处渲染,然后在第三个坐标处再次渲染 second texttext 字符串数组是固定的,并且在初始化后无法更改。 要隐藏不应显示的文本,请为文本项指定大于 (1.0, 1.0) 的坐标,然后文本将被裁剪掉。

    • 3D 点由 (x, y, z) 坐标元组定义。

    • 3D 线由一组两个 (x, y, z) 坐标元组定义。

    • 3D 线带由 (x, y, z) 坐标元组序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。

    • 3D 三角形由一组三个 (x, y, z) 坐标元组定义。

  3. 显示深度图

    typedepth_map 时,提供的数据被解释为深度值矩形数组。 此外,可以通过将 type 设置为 depth_map_color 来指定网格中每个点的颜色值的 2d 数组。

    可以通过设置 depth_map_render_mode 来选择绘制的几何图形类型。

    深度图以 3D 方式渲染,并支持相机移动。 相机使用鼠标控制

    • 轨道(LMB)

    • 平移(LMB + CTRL | MMB)

    • 推拉(LMB + SHIFT | RMB | 鼠标滚轮)

    • 环顾四周(LMB + ALT | LMB + CTRL + SHIFT)

    • 缩放(鼠标滚轮 + SHIFT)

  4. 输出

    默认情况下,会打开一个窗口来显示渲染,但扩展也可以使用 headless 参数在无头模式下运行。

    使用独占模式显示也受到 use_exclusive_display 参数的支持。 这通过避免桌面合成器来减少延迟。

    渲染的帧缓冲区可以输出到 render_buffer_output

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.InferenceOp

基类: holoscan.core._core.Operator

推理算子。

==命名输入==

receivers多接收器,接受 nvidia::gxf::Tensor(s)

任意数量的上游端口都可以连接到此 receivers 端口。操作符将在所有消息中搜索与 in_tensor_names 中指定的张量相匹配的张量。这些是 inference_map 中模型使用的一组输入张量。

==命名输出==

transmitternvidia::gxf::Tensor(s)

将发出包含来自所有模型的推理结果的张量的消息。 传输的张量的名称与 out_tensor_names 中的名称相对应。

==设备内存要求==

当将此操作符与 holoscan.resources.BlockMemoryPool 一起使用时,num_blocks 必须大于或等于将生成的输出张量的数量。 以字节为单位的 block_size 必须大于或等于最大的输出张量(以字节为单位)。 如果 output_on_cudaTrue,则块应位于设备内存中 (storage_type=1),否则应位于 CUDA pinned 主机内存中 (storage_type=0)。

有关 InferenceOp 参数的更多详细信息,请参阅[自定义推理操作符](https://docs.nvda.net.cn/holoscan/sdk-user-guide/examples/byom.html#customizing-the-inference-operator) 或参考[推理](https://docs.nvda.net.cn/holoscan/sdk-user-guide/inference.html)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

backend{“trt”, “onnxrt”, “torch”}

用于推理的后端。 对于 TensorRT,设置为 "trt";对于 LibTorch,设置为 "torch";对于 ONNX 运行时,设置为 "onnxrt"

allocatorholoscan.resources.Allocator

用于输出的内存分配器。

inference_mapdict[str, List[str]]

张量到模型映射。

model_path_mapdict[str, str]

要加载的 ONNX 模型的路径。

pre_processor_mapdict[str, List[str]]

预处理数据到模型映射。

device_mapdict[str, int], optional

模型到 GPU ID 的映射,用于推理。

temporal_mapdict[str, int], optional

模型到帧延迟的映射,用于推理。

activation_mapdict[str, int], optional

模型到激活状态的映射,用于推理。

backend_mapdict[str, str], optional

模型到后端类型的映射,用于推理。 后端选项:"trt""torch"

in_tensor_namessequence of str, optional

输入张量。

out_tensor_namessequence of str, optional

输出张量。

trt_opt_profilesequence of int, optional

具有动态输入的模型的 TensorRT 优化配置文件。

infer_on_cpubool, optional

是否在 CPU 而不是 GPU 上运行计算。 默认值为 False

parallel_inferencebool, optional

是否启用并行执行。 默认值为 True

input_on_cudabool, optional

输入缓冲区是否在 GPU 上。 默认值为 True

output_on_cudabool, optional

输出缓冲区是否在 GPU 上。 默认值为 True

transmit_on_cudabool, optional

是否在 GPU 上传输消息。 默认值为 True

enable_fp16bool, optional

使用 16 位浮点计算。 默认值为 False

enable_cuda_graphsbool, optional

使用 CUDA Graphs。 默认值为 True

is_engine_pathbool, optional

输入模型路径映射是否用于 trt 引擎文件。 默认值为 False

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "inference"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

DataMap
DataVecMap
OperatorType

class DataMap

基类: pybind11_builtins.pybind11_object

方法

get_map(self)

insert(self)

__init__(self: holoscan.operators.inference._inference.InferenceOp.DataMap) → None
get_map(self: holoscan.operators.inference._inference.InferenceOp.DataMap) → dict[str, str]
insert(self: holoscan.operators.inference._inference.InferenceOp.DataMap) → dict[str, str]
class DataVecMap

基类: pybind11_builtins.pybind11_object

方法

get_map(self)

insert(self)

__init__(self: holoscan.operators.inference._inference.InferenceOp.DataVecMap) → None
get_map(self: holoscan.operators.inference._inference.InferenceOp.DataVecMap) → dict[str, list[str]]
insert(self: holoscan.operators.inference._inference.InferenceOp.DataVecMap) → dict[str, list[str]]
class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.inference._inference.InferenceOp, fragment: holoscan.core._core.Fragment, *args, backend: str, allocator: holoscan.resources._resources.Allocator, inference_map: dict, model_path_map: dict, pre_processor_map: dict, device_map: dict = {}, temporal_map: dict = {}, activation_map: dict = {}, backend_map: dict = {}, in_tensor_names: list[str] = [], out_tensor_names: list[str] = [], trt_opt_profile: list[int] = [1, 1, 1], infer_on_cpu: bool = False, parallel_inference: bool = True, input_on_cuda: bool = True, output_on_cuda: bool = True, transmit_on_cuda: bool = True, enable_fp16: bool = False, enable_cuda_graphs: bool = True, is_engine_path: bool = False, cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, name: str = 'inference') → None

推理算子。

==命名输入==

receivers多接收器,接受 nvidia::gxf::Tensor(s)

任意数量的上游端口都可以连接到此 receivers 端口。操作符将在所有消息中搜索与 in_tensor_names 中指定的张量相匹配的张量。这些是 inference_map 中模型使用的一组输入张量。

==命名输出==

transmitternvidia::gxf::Tensor(s)

将发出包含来自所有模型的推理结果的张量的消息。 传输的张量的名称与 out_tensor_names 中的名称相对应。

==设备内存要求==

当将此操作符与 holoscan.resources.BlockMemoryPool 一起使用时,num_blocks 必须大于或等于将生成的输出张量的数量。 以字节为单位的 block_size 必须大于或等于最大的输出张量(以字节为单位)。 如果 output_on_cudaTrue,则块应位于设备内存中 (storage_type=1),否则应位于 CUDA pinned 主机内存中 (storage_type=0)。

有关 InferenceOp 参数的更多详细信息,请参阅[自定义推理操作符](https://docs.nvda.net.cn/holoscan/sdk-user-guide/examples/byom.html#customizing-the-inference-operator) 或参考[推理](https://docs.nvda.net.cn/holoscan/sdk-user-guide/inference.html)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

backend{“trt”, “onnxrt”, “torch”}

用于推理的后端。 对于 TensorRT,设置为 "trt";对于 LibTorch,设置为 "torch";对于 ONNX 运行时,设置为 "onnxrt"

allocatorholoscan.resources.Allocator

用于输出的内存分配器。

inference_mapdict[str, List[str]]

张量到模型映射。

model_path_mapdict[str, str]

要加载的 ONNX 模型的路径。

pre_processor_mapdict[str, List[str]]

预处理数据到模型映射。

device_mapdict[str, int], optional

模型到 GPU ID 的映射,用于推理。

temporal_mapdict[str, int], optional

模型到帧延迟的映射,用于推理。

activation_mapdict[str, int], optional

模型到激活状态的映射,用于推理。

backend_mapdict[str, str], optional

模型到后端类型的映射,用于推理。 后端选项:"trt""torch"

in_tensor_namessequence of str, optional

输入张量。

out_tensor_namessequence of str, optional

输出张量。

trt_opt_profilesequence of int, optional

具有动态输入的模型的 TensorRT 优化配置文件。

infer_on_cpubool, optional

是否在 CPU 而不是 GPU 上运行计算。 默认值为 False

parallel_inferencebool, optional

是否启用并行执行。 默认值为 True

input_on_cudabool, optional

输入缓冲区是否在 GPU 上。 默认值为 True

output_on_cudabool, optional

输出缓冲区是否在 GPU 上。 默认值为 True

transmit_on_cudabool, optional

是否在 GPU 上传输消息。 默认值为 True

enable_fp16bool, optional

使用 16 位浮点计算。 默认值为 False

enable_cuda_graphsbool, optional

使用 CUDA Graphs。 默认值为 True

is_engine_pathbool, optional

输入模型路径映射是否用于 trt 引擎文件。 默认值为 False

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "inference"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.InferenceProcessorOp

基类: holoscan.core._core.Operator

Holoinfer 处理算子。

==命名输入==

receivers多接收器,接受 nvidia::gxf::Tensor(s)

任意数量的上游端口都可以连接到此 receivers 端口。操作符将在所有消息中搜索与 in_tensor_names 中指定的张量相匹配的张量。这些是 process_map 中指定的处理操作使用的一组输入张量。

==命名输出==

transmitternvidia::gxf::Tensor(s)

将发出包含来自操作的处理结果的张量的消息。 传输的张量的名称与 out_tensor_names 中的名称相对应。

==设备内存要求==

当将此操作符与 holoscan.resources.BlockMemoryPool 一起使用时,num_blocks 必须大于或等于将生成的输出张量的数量。 以字节为单位的 block_size 必须大于或等于最大的输出张量(以字节为单位)。 如果 output_on_cudaTrue,则块应位于设备内存中 (storage_type=1),否则应位于 CUDA pinned 主机内存中 (storage_type=0)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator

用于输出的内存分配器。

process_operationsholoscan.operators.InferenceProcessorOp.DataVecMap

张量上的顺序操作。

processed_mapholoscan.operators.InferenceProcessorOp::DataVecMap

输入-输出张量映射。

in_tensor_namessequence of str, optional

要馈送到操作符的输入张量的名称顺序。

out_tensor_namessequence of str, optional

要馈送到操作符的输出张量的名称顺序。

input_on_cudabool, optional

输入缓冲区是否在 GPU 上。 默认值为 False

output_on_cudabool, optional

输出缓冲区是否在 GPU 上。 默认值为 False

transmit_on_cudabool, optional

是否在 GPU 上传输消息。 默认值为 False

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

config_pathstr, optional

配置文件的文件路径。 默认值为 ""

disable_transmitterbool, optional

如果为 True,则禁用操作符的 transmitter 输出端口。 默认值为 False

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "postprocessor"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

DataMap
DataVecMap
OperatorType

class DataMap

基类: pybind11_builtins.pybind11_object

方法

get_map(self)

insert(self)

__init__(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp.DataMap) → None
get_map(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp.DataMap) → dict[str, str]
insert(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp.DataMap) → dict[str, str]
class DataVecMap

基类: pybind11_builtins.pybind11_object

方法

get_map(self)

insert(self)

__init__(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp.DataVecMap) → None
get_map(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp.DataVecMap) → dict[str, list[str]]
insert(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp.DataVecMap) → dict[str, list[str]]
class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.inference_processor._inference_processor.InferenceProcessorOp, fragment: holoscan.core._core.Fragment, *args, allocator: holoscan.resources._resources.Allocator, process_operations: dict = {}, processed_map: dict = {}, in_tensor_names: list[str] = [], out_tensor_names: list[str] = [], input_on_cuda: bool = False, output_on_cuda: bool = False, transmit_on_cuda: bool = False, disable_transmitter: bool = False, cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, config_path: str = '', name: str = 'postprocessor') → None

Holoinfer 处理算子。

==命名输入==

receivers多接收器,接受 nvidia::gxf::Tensor(s)

任意数量的上游端口都可以连接到此 receivers 端口。操作符将在所有消息中搜索与 in_tensor_names 中指定的张量相匹配的张量。这些是 process_map 中指定的处理操作使用的一组输入张量。

==命名输出==

transmitternvidia::gxf::Tensor(s)

将发出包含来自操作的处理结果的张量的消息。 传输的张量的名称与 out_tensor_names 中的名称相对应。

==设备内存要求==

当将此操作符与 holoscan.resources.BlockMemoryPool 一起使用时,num_blocks 必须大于或等于将生成的输出张量的数量。 以字节为单位的 block_size 必须大于或等于最大的输出张量(以字节为单位)。 如果 output_on_cudaTrue,则块应位于设备内存中 (storage_type=1),否则应位于 CUDA pinned 主机内存中 (storage_type=0)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator

用于输出的内存分配器。

process_operationsholoscan.operators.InferenceProcessorOp.DataVecMap

张量上的顺序操作。

processed_mapholoscan.operators.InferenceProcessorOp::DataVecMap

输入-输出张量映射。

in_tensor_namessequence of str, optional

要馈送到操作符的输入张量的名称顺序。

out_tensor_namessequence of str, optional

要馈送到操作符的输出张量的名称顺序。

input_on_cudabool, optional

输入缓冲区是否在 GPU 上。 默认值为 False

output_on_cudabool, optional

输出缓冲区是否在 GPU 上。 默认值为 False

transmit_on_cudabool, optional

是否在 GPU 上传输消息。 默认值为 False

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

config_pathstr, optional

配置文件的文件路径。 默认值为 ""

disable_transmitterbool, optional

如果为 True,则禁用操作符的 transmitter 输出端口。 默认值为 False

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "postprocessor"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.NTV2Channel

基类: pybind11_builtins.pybind11_object

成员

NTV2_CHANNEL1

NTV2_CHANNEL2

NTV2_CHANNEL3

NTV2_CHANNEL4

NTV2_CHANNEL5

NTV2_CHANNEL6

NTV2_CHANNEL7

NTV2_CHANNEL8

NTV2_MAX_NUM_CHANNELS

NTV2_CHANNEL_INVALID

属性

name

value
NTV2_CHANNEL1 = <NTV2Channel.NTV2_CHANNEL1: 0>
NTV2_CHANNEL2 = <NTV2Channel.NTV2_CHANNEL2: 1>
NTV2_CHANNEL3 = <NTV2Channel.NTV2_CHANNEL3: 2>
NTV2_CHANNEL4 = <NTV2Channel.NTV2_CHANNEL4: 3>
NTV2_CHANNEL5 = <NTV2Channel.NTV2_CHANNEL5: 4>
NTV2_CHANNEL6 = <NTV2Channel.NTV2_CHANNEL6: 5>
NTV2_CHANNEL7 = <NTV2Channel.NTV2_CHANNEL7: 6>
NTV2_CHANNEL8 = <NTV2Channel.NTV2_CHANNEL8: 7>
NTV2_CHANNEL_INVALID = <NTV2Channel.NTV2_MAX_NUM_CHANNELS: 8>
NTV2_MAX_NUM_CHANNELS = <NTV2Channel.NTV2_MAX_NUM_CHANNELS: 8>
__init__(self: holoscan.operators.aja_source._aja_source.NTV2Channel, value: int) → None
property name
property value
class holoscan.operators.PingRxOp(fragment, *args, **kwargs)

Bases: holoscan.core.Operator

简单接收器算子。

这是具有一个输入端口的本机操作符的示例。 在每次 tick 时,它都会从 “in” 端口接收一个整数。

==命名输入==

inany

接收到的值。

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(op_input, op_output, context) compute 的默认实现
initialize() initialize 的默认实现
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(spec) setup 方法的默认实现。
start() start 的默认实现
stop() stop 的默认实现
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.core._core.Operator, arg0: object, arg1: holoscan::Fragment, *args, **kwargs) → None

Operator 类。

可以使用任意数量的 Python 位置参数和关键字参数进行初始化。

如果提供了 name 关键字参数,则它必须是 str 类型,并将用于设置操作符的名称。

Condition 类将被添加到 self.conditionsResource 类将被添加到 self.resources,任何其他参数都将从 Python 参数类型转换为 C++ Arg 并存储在 self.args 中。 (有关如何进行转换的详细信息,请参阅 py_object_to_arg 实用程序)。当通过 kwarg 提供 Condition 或 Resource 时,它的名称将自动更新为 kwarg 的名称。

参数
fragmentholoscan.core.Fragment

此 Operator 所属的 holoscan.core.Fragment (或 holoscan.core.Application)。

*args

位置参数。

**kwargs

关键字参数。

Raises
RuntimeError

如果提供了 name kwarg,但不是 str 类型。 如果提供了多个 Fragment 类型的参数。 如果任何其他参数无法通过 py_object_to_arg 转换为 Arg 类型。

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(op_input, op_output, context)

compute 的默认实现

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize()

initialize 的默认实现

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(spec: holoscan.core._core.PyOperatorSpec)

setup 方法的默认实现。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start()

start 的默认实现

stop()

stop 的默认实现

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.PingTensorRxOp

基类: holoscan.core._core.Operator

张量接收示例算子。

==命名输入==

innvidia::gxf::TensorMap

包含任意数量的主机或设备张量的消息。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "ping_tensor_rx"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.ping_tensor_rx._ping_tensor_rx.PingTensorRxOp, fragment: holoscan.core._core.Fragment, *args, name: str = 'ping_tensor_rx') → None

张量接收示例算子。

==命名输入==

innvidia::gxf::TensorMap

包含任意数量的主机或设备张量的消息。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

namestr, 可选 (仅限构造函数)

操作符的名称。 默认值为 "ping_tensor_rx"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.PingTensorTxOp

基类: holoscan.core._core.Operator

旨在用于测试和示例的张量生成算子。

生成张量的**内容**是未初始化的。

==命名输出==

outputnvidia::gxf::Tensor

包含**单个**张量的消息,该张量具有指定的形状、存储类型、数据类型和名称。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator, optional

用于分配张量输出的分配器。如果未指定,则使用 holoscan.resources.UnboundedAllocator

storage_type{“host”, “device”, “system”}, optional

生成张量的内存存储类型。 此处,“system” 对应于 CPU 内存,而 “host” 对应于使用 CUDA 的 cudaMallocHost 分配的固定主机内存。 最后,“device” 对应于通过 cudaMalloc 分配的 GPU 设备内存。

batch_sizeint or None, optional

批次维度的**大小**(默认值:0)。张量形状将为 ([batch], rows, [columns], [channels]),其中维度周围的 [] 表示仅当相应参数的大小 > 0 时才存在。 如果为 0 或 None,则不会存在批次维度。

rowsint, optional

生成张量中的行数。

colsint, optional

生成张量中的列数。 如果为 0 或 None,则不会存在列维度。

channelsint, optional

生成张量中的通道数。 如果为 0 或 None,则不会存在通道维度。

data_typestr or numpy.dtype, optional

张量使用的数据类型。 应该是与以下 C++ 类型之一匹配的字符串 {“int8_t”, “int16_t”, “int32_t”, “int64_t”, “uint8_t”, “uint16_t”,” “uint32_t”, “uint64_t”,

“float”, “double”, “complex<float>”, “complex<double>”}。 或者,可以提供 numpy.dtype

对象以指示所需的数据类型。

tensor_namestr, optional

输出张量的名称。

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

async_device_allocationTrue 时,用于内存分配的 CUDA 流池。

async_device_allocationbool, optional

如果为 True,则在内部分配的 CUDA 流上使用 cudaMallocAsync 分配内存。 否则,在默认流上使用 cudaMalloc。

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "ping_tensor_tx"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.ping_tensor_tx._ping_tensor_tx.PingTensorTxOp, fragment: holoscan.core._core.Fragment, *args, allocator: Optional[holoscan.resources._resources.Allocator] = None, storage_type: str = 'system', batch_size: Optional[int] = None, rows: int = 32, columns: Optional[int] = 64, channels: Optional[int] = None, dtype: Union[str, numpy.dtype] = 'uint8_t', tensor_name: str = 'tensor', cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, async_device_allocation: bool = False, name: str = 'video_stream_replayer') → None

旨在用于测试和示例的张量生成算子。

生成张量的**内容**是未初始化的。

==命名输出==

outputnvidia::gxf::Tensor

包含**单个**张量的消息,该张量具有指定的形状、存储类型、数据类型和名称。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator, optional

用于分配张量输出的分配器。如果未指定,则使用 holoscan.resources.UnboundedAllocator

storage_type{“host”, “device”, “system”}, optional

生成张量的内存存储类型。 此处,“system” 对应于 CPU 内存,而 “host” 对应于使用 CUDA 的 cudaMallocHost 分配的固定主机内存。 最后,“device” 对应于通过 cudaMalloc 分配的 GPU 设备内存。

batch_sizeint or None, optional

批次维度的**大小**(默认值:0)。张量形状将为 ([batch], rows, [columns], [channels]),其中维度周围的 [] 表示仅当相应参数的大小 > 0 时才存在。 如果为 0 或 None,则不会存在批次维度。

rowsint, optional

生成张量中的行数。

colsint, optional

生成张量中的列数。 如果为 0 或 None,则不会存在列维度。

channelsint, optional

生成张量中的通道数。 如果为 0 或 None,则不会存在通道维度。

data_typestr or numpy.dtype, optional

张量使用的数据类型。 应该是与以下 C++ 类型之一匹配的字符串 {“int8_t”, “int16_t”, “int32_t”, “int64_t”, “uint8_t”, “uint16_t”,” “uint32_t”, “uint64_t”,

“float”, “double”, “complex<float>”, “complex<double>”}。 或者,可以提供 numpy.dtype

对象以指示所需的数据类型。

tensor_namestr, optional

输出张量的名称。

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

async_device_allocationTrue 时,用于内存分配的 CUDA 流池。

async_device_allocationbool, optional

如果为 True,则在内部分配的 CUDA 流上使用 cudaMallocAsync 分配内存。 否则,在默认流上使用 cudaMalloc。

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "ping_tensor_tx"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.PingTxOp(fragment, *args, **kwargs)

Bases: holoscan.core.Operator

简单发送器算子。

在每次 tick 时,它将一个整数传输到“out”端口。

==命名输出==

outint

每次调用 compute 时递增 1 的索引值。起始值为 1。

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(op_input, op_output, context) compute 的默认实现
initialize() initialize 的默认实现
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(spec) setup 方法的默认实现。
start() start 的默认实现
stop() stop 的默认实现
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.core._core.Operator, arg0: object, arg1: holoscan::Fragment, *args, **kwargs) → None

Operator 类。

可以使用任意数量的 Python 位置参数和关键字参数进行初始化。

如果提供了 name 关键字参数,则它必须是 str 类型,并将用于设置操作符的名称。

Condition 类将被添加到 self.conditionsResource 类将被添加到 self.resources,任何其他参数都将从 Python 参数类型转换为 C++ Arg 并存储在 self.args 中。 (有关如何进行转换的详细信息,请参阅 py_object_to_arg 实用程序)。当通过 kwarg 提供 Condition 或 Resource 时,它的名称将自动更新为 kwarg 的名称。

参数
fragmentholoscan.core.Fragment

此 Operator 所属的 holoscan.core.Fragment (或 holoscan.core.Application)。

*args

位置参数。

**kwargs

关键字参数。

Raises
RuntimeError

如果提供了 name kwarg,但不是 str 类型。 如果提供了多个 Fragment 类型的参数。 如果任何其他参数无法通过 py_object_to_arg 转换为 Arg 类型。

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(op_input, op_output, context)

compute 的默认实现

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize()

initialize 的默认实现

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(spec: holoscan.core._core.PyOperatorSpec)

setup 方法的默认实现。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start()

start 的默认实现

stop()

stop 的默认实现

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.SegmentationPostprocessorOp

基类: holoscan.core._core.Operator

对分割输出执行后处理操作的算子。

==命名输入==

in_tensornvidia::gxf::Tensor

期望消息包含名为 in_tensor_name 的 32 位浮点设备张量。 此张量的预期数据布局为 HWC、NCHW 或 NHWC 格式,如通过 data_format 指定。

==命名输出==

out_tensornvidia::gxf::Tensor

发出包含名为 “out_tensor” 的设备张量的消息,该张量包含分割标签。 此张量将具有无符号 8 位整数数据类型和形状 (H, W, 1)。

==设备内存要求==

当与 holoscan.resources.BlockMemoryPool 一起使用时,此运算符仅需要大小为 height * width 字节的单个设备内存块 (storage_type=1)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator

用于输出的内存分配器。

in_tensor_namestr, 可选

输入张量的名称。 默认值为 ""

network_output_typestr, optional

网络输出类型(例如 ‘softmax’)。 默认值为 "softmax"

data_formatstr, optional

网络输出的数据格式。 默认值为 "hwc"

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "segmentation_postprocessor"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.segmentation_postprocessor._segmentation_postprocessor.SegmentationPostprocessorOp, fragment: holoscan.core._core.Fragment, *args, allocator: holoscan.resources._resources.Allocator, in_tensor_name: str = '', network_output_type: str = 'softmax', data_format: str = 'hwc', cuda_stream_pool: holoscan.resources._resources.CudaStreamPool = None, name: str = 'segmentation_postprocessor') → None

对分割输出执行后处理操作的算子。

==命名输入==

in_tensornvidia::gxf::Tensor

期望消息包含名为 in_tensor_name 的 32 位浮点设备张量。 此张量的预期数据布局为 HWC、NCHW 或 NHWC 格式,如通过 data_format 指定。

==命名输出==

out_tensornvidia::gxf::Tensor

发出包含名为 “out_tensor” 的设备张量的消息,该张量包含分割标签。 此张量将具有无符号 8 位整数数据类型和形状 (H, W, 1)。

==设备内存要求==

当与 holoscan.resources.BlockMemoryPool 一起使用时,此运算符仅需要大小为 height * width 字节的单个设备内存块 (storage_type=1)。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator

用于输出的内存分配器。

in_tensor_namestr, 可选

输入张量的名称。 默认值为 ""

network_output_typestr, optional

网络输出类型(例如 ‘softmax’)。 默认值为 "softmax"

data_formatstr, optional

网络输出的数据格式。 默认值为 "hwc"

cuda_stream_poolholoscan.resources.CudaStreamPool, 可选

holoscan.resources.CudaStreamPool 实例,用于分配 CUDA 流。默认值为 None

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "segmentation_postprocessor"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.V4L2VideoCaptureOp

基类: holoscan.core._core.Operator

用于从 V4L2 源获取视频流的算子。

https://linuxkernel.org.cn/doc/html/v4.9/media/uapi/v4l/v4l2.html

从 V4L2 节点输入视频流,包括 USB 摄像头和 HDMI IN。 如果 yaml 配置文件中未指定像素格式,则将自动选择像素格式。 如果 yaml 文件中指定了像素格式,则将使用此格式。

==命名输出==

signalnvidia::gxf::VideoBuffer or nvidia::gxf::Tensor

如果 V4L2 像素格式具有等效的 nvidia::gxf::VideoFormat,则为包含视频缓冲区的消息,否则为张量。

参数
fragmentFragment(仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator

已弃用,请勿使用。

devicestr

要定位的设备(例如,设备 0 为 “/dev/video0”)。 默认值为 "/dev/video0"

widthint, 可选

视频流的宽度。 如果设置为 0,则使用设备的默认宽度。 默认值为 0

heightint, 可选

视频流的高度。 如果设置为 0,则使用设备的默认高度。 默认值为 0

frame_rate: float, optional

视频流的帧率。 如果设备不支持确切的帧率,则会改为使用最接近的匹配项。 如果设置为 0,则使用设备的默认帧率。 默认值为 0.0

num_buffersint, optional

要使用的 V4L2 缓冲区数量。 默认值为 4

pixel_formatstr

视频流像素格式(小端四字符代码 (fourcc))。 默认值为 "auto"

pass_throughbool

已弃用,请勿使用。

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "v4l2_video_capture"

exposure_timeint, optional

相机传感器的曝光时间,以 100 μs 的倍数表示(例如,将 exposure_time 设置为 100 为 10 毫秒)。 默认值:自动曝光或相机传感器默认值。 使用 v4l2-ctl -d /dev/<your_device> -L 获取设备支持的值范围。 当用户未设置时,V4L2_CID_EXPOSURE_AUTO 设置为 V4L2_EXPOSURE_AUTO,如果前者不受支持,则设置为 V4L2_EXPOSURE_APERTURE_PRIORITY。 当用户设置时,V4L2_CID_EXPOSURE_AUTO 设置为 V4L2_EXPOSURE_SHUTTER_PRIORITY,如果前者不受支持,则设置为 V4L2_EXPOSURE_MANUAL。 然后,提供的值用于设置 V4L2_CID_EXPOSURE_ABSOLUTE。

gainint, optional

相机传感器的增益。 默认值:自动增益或相机传感器默认值。 使用 v4l2-ctl -d /dev/<your_device> -L 获取设备支持的值范围。 当用户未设置时,V4L2_CID_AUTOGAIN 设置为 true(如果支持)。 当用户设置时,V4L2_CID_AUTOGAIN 设置为 false(如果支持)。 然后,提供的值用于设置 V4L2_CID_GAIN。

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.v4l2_video_capture._v4l2_video_capture.V4L2VideoCaptureOp, fragment: holoscan.core._core.Fragment, *args, allocator: holoscan.resources._resources.Allocator = None, device: str = '/dev/video0', width: int = 0, height: int = 0, frame_rate: float = 0.0, num_buffers: int = 4, pixel_format: str = 'auto', pass_through: bool = False, name: str = 'v4l2_video_capture', exposure_time: Optional[int] = None, gain: Optional[int] = None) → None

用于从 V4L2 源获取视频流的算子。

https://linuxkernel.org.cn/doc/html/v4.9/media/uapi/v4l/v4l2.html

从 V4L2 节点输入视频流,包括 USB 摄像头和 HDMI IN。 如果 yaml 配置文件中未指定像素格式,则将自动选择像素格式。 如果 yaml 文件中指定了像素格式,则将使用此格式。

==命名输出==

signalnvidia::gxf::VideoBuffer or nvidia::gxf::Tensor

如果 V4L2 像素格式具有等效的 nvidia::gxf::VideoFormat,则为包含视频缓冲区的消息,否则为张量。

参数
fragmentFragment(仅限构造函数)

算子所属的片段。

allocatorholoscan.resources.Allocator

已弃用,请勿使用。

devicestr

要定位的设备(例如,设备 0 为 “/dev/video0”)。 默认值为 "/dev/video0"

widthint, 可选

视频流的宽度。 如果设置为 0,则使用设备的默认宽度。 默认值为 0

heightint, 可选

视频流的高度。 如果设置为 0,则使用设备的默认高度。 默认值为 0

frame_rate: float, optional

视频流的帧率。 如果设备不支持确切的帧率,则会改为使用最接近的匹配项。 如果设置为 0,则使用设备的默认帧率。 默认值为 0.0

num_buffersint, optional

要使用的 V4L2 缓冲区数量。 默认值为 4

pixel_formatstr

视频流像素格式(小端四字符代码 (fourcc))。 默认值为 "auto"

pass_throughbool

已弃用,请勿使用。

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "v4l2_video_capture"

exposure_timeint, optional

相机传感器的曝光时间,以 100 μs 的倍数表示(例如,将 exposure_time 设置为 100 为 10 毫秒)。 默认值:自动曝光或相机传感器默认值。 使用 v4l2-ctl -d /dev/<your_device> -L 获取设备支持的值范围。 当用户未设置时,V4L2_CID_EXPOSURE_AUTO 设置为 V4L2_EXPOSURE_AUTO,如果前者不受支持,则设置为 V4L2_EXPOSURE_APERTURE_PRIORITY。 当用户设置时,V4L2_CID_EXPOSURE_AUTO 设置为 V4L2_EXPOSURE_SHUTTER_PRIORITY,如果前者不受支持,则设置为 V4L2_EXPOSURE_MANUAL。 然后,提供的值用于设置 V4L2_CID_EXPOSURE_ABSOLUTE。

gainint, optional

相机传感器的增益。 默认值:自动增益或相机传感器默认值。 使用 v4l2-ctl -d /dev/<your_device> -L 获取设备支持的值范围。 当用户未设置时,V4L2_CID_AUTOGAIN 设置为 true(如果支持)。 当用户设置时,V4L2_CID_AUTOGAIN 设置为 false(如果支持)。 然后,提供的值用于设置 V4L2_CID_GAIN。

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.VideoStreamRecorderOp

基类: holoscan.core._core.Operator

用于将视频流记录到文件的算子类。

==命名输入==

inputnvidia::gxf::Tensor

包含要序列化到磁盘的视频帧的消息。 输入张量可以位于 CPU 或 GPU 上。 此数据位置将作为序列化到磁盘的元数据的一部分进行记录,如果稍后通过 VideoStreamReplayerOp 读回数据,则该运算符的张量输出将位于同一设备(CPU 或 GPU)上。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

directorystr

用于存储文件的目录路径。

basenamestr

用户指定的文件名,不带扩展名。

flush_on_tickbool, optional

True 时,在每个 tick 上刷新输出缓冲区。 默认值为 False

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "video_stream_recorder"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.video_stream_recorder._video_stream_recorder.VideoStreamRecorderOp, fragment: holoscan.core._core.Fragment, *args, directory: str, basename: str, flush_on_tick: bool = False, name: str = 'video_stream_recorder') → None

用于将视频流记录到文件的算子类。

==命名输入==

inputnvidia::gxf::Tensor

包含要序列化到磁盘的视频帧的消息。 输入张量可以位于 CPU 或 GPU 上。 此数据位置将作为序列化到磁盘的元数据的一部分进行记录,如果稍后通过 VideoStreamReplayerOp 读回数据,则该运算符的张量输出将位于同一设备(CPU 或 GPU)上。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

directorystr

用于存储文件的目录路径。

basenamestr

用户指定的文件名,不带扩展名。

flush_on_tickbool, optional

True 时,在每个 tick 上刷新输出缓冲区。 默认值为 False

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "video_stream_recorder"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

class holoscan.operators.VideoStreamReplayerOp

基类: holoscan.core._core.Operator

用于从文件回放视频流的算子类。

==命名输出==

outputnvidia::gxf::Tensor

包含从磁盘反序列化的视频帧的消息。 根据正在读取的文件中的元数据,此张量可能位于 CPU 或 GPU 上。 对于 SDK 随附的示例中使用的数据,张量将是未命名的 GPU 张量(名称 == “”)。

==设备内存要求==

此运算符从文件读取数据到中间主机缓冲区,然后将数据传输到 GPU。 由于需要主机和设备内存,因此必须使用同时支持这两种内存类型的分配器。 此选项为 UnboundedAllocatorRMMAllocator。 当为 RMMAllocator 指定内存池大小**时**,需要以下内存块

  1. 一个主机内存块,其大小等于单个未压缩的视频帧

**是**需要的。 请注意,对于 RMMAllocator,内存大小应以 MiB 为单位指定,因此最小值可以通过 math.ceil(height * width * channels * element_size_bytes) / (1024 * 1024)) 获得

  1. 一个设备内存块,其大小等于主机内存块。

当声明 RMMAllocator 内存池时,host_memory_initial_sizedevice_memory_initial_size 必须大于或等于上面讨论的值。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

directorystr

用于从中读取文件的目录路径。

basenamestr

用户指定的文件名,不带扩展名。

batch_sizeint, optional

一次 tick 读取和发布的实体数量。 默认值为 1

ignore_corrupted_entitiesbool, optional

如果无法反序列化实体,则默认情况下会忽略该实体;否则会生成故障。 默认值为 True

frame_ratefloat, optional

要重放的帧率。 如果指定零值,则遵循时间戳中的时序。 默认值为 0.0

realtimebool, optional

基于 frame_rate 或时间戳实时播放视频。 默认值为 True

repeatbool, optional

循环重复播放视频流。 默认值为 False

countint, optional

要播放的帧计数数。 如果指定零值,则忽略该值。 如果计数小于视频中的帧数,则会提前结束。 默认值为 0

allocatorholoscan.core.Allocator

用于张量内存的分配器。 目前,仅支持 holoscan.resources.UnboundedAllocatorNone 的默认值将导致使用 holoscan.resources.UnboundedAllocator

entity_serializerholoscan.core.EntitySerializer

用于反序列化的实体序列化器。 None 的默认值将导致使用默认的 holoscan.resources.StdEntitySerializer。 如果指定了此参数,则会忽略 allocator 参数。

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "video_stream_replayer"

属性

args 与组件关联的参数列表。
conditions 与算子关联的条件。
description 描述算子的 YAML 格式字符串。
fragment 算子所属的片段 (holoscan.core.Fragment)。
id 组件的标识符。
is_metadata_enabled 指示此算子所属的片段是否已启用元数据传输的布尔值。
metadata 与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。
metadata_policy 与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。
name 算子的名称。
operator_type 算子类型。
resources 与算子关联的资源。
spec 与算子关联的算子规范 (holoscan.core.OperatorSpec)。

方法

add_arg(*args, **kwargs) 重载函数。
compute(self, arg0, arg1, arg2) 算子计算方法。
initialize(self) 算子初始化方法。
receiver(self, port_name) 获取输入端口使用的接收器。
resource(self, name) 与算子关联的资源。
setup(self, arg0) 算子设置方法。
start(self) 算子启动方法。
stop(self) 算子停止方法。
transmitter(self, port_name) 获取输出端口使用的发送器。

OperatorType

class OperatorType

基类: pybind11_builtins.pybind11_object

执行器使用的算子类型的枚举类。

  • NATIVE: 本地算子。

  • GXF: GXF 算子。

  • VIRTUAL: 虚拟算子。(供内部使用,不适用于应用程序作者)

成员

NATIVE

GXF

VIRTUAL

属性

name

value
GXF = <OperatorType.GXF: 1>
NATIVE = <OperatorType.NATIVE: 0>
VIRTUAL = <OperatorType.VIRTUAL: 2>
__init__(self: holoscan.core._core.Operator.OperatorType, value: int) → None
property name
property value
__init__(self: holoscan.operators.video_stream_replayer._video_stream_replayer.VideoStreamReplayerOp, fragment: holoscan.core._core.Fragment, *args, directory: str, basename: str, batch_size: int = 1, ignore_corrupted_entities: bool = True, frame_rate: float = 1.0, realtime: bool = True, repeat: bool = False, count: int = 0, allocator: Optional[holoscan.resources._resources.Allocator] = None, entity_serializer: Optional[holoscan.core._core.Resource] = None, name: str = 'video_stream_replayer') → None

用于从文件回放视频流的算子类。

==命名输出==

outputnvidia::gxf::Tensor

包含从磁盘反序列化的视频帧的消息。 根据正在读取的文件中的元数据,此张量可能位于 CPU 或 GPU 上。 对于 SDK 随附的示例中使用的数据,张量将是未命名的 GPU 张量(名称 == “”)。

==设备内存要求==

此运算符从文件读取数据到中间主机缓冲区,然后将数据传输到 GPU。 由于需要主机和设备内存,因此必须使用同时支持这两种内存类型的分配器。 此选项为 UnboundedAllocatorRMMAllocator。 当为 RMMAllocator 指定内存池大小**时**,需要以下内存块

  1. 一个主机内存块,其大小等于单个未压缩的视频帧

**是**需要的。 请注意,对于 RMMAllocator,内存大小应以 MiB 为单位指定,因此最小值可以通过 math.ceil(height * width * channels * element_size_bytes) / (1024 * 1024)) 获得

  1. 一个设备内存块,其大小等于主机内存块。

当声明 RMMAllocator 内存池时,host_memory_initial_sizedevice_memory_initial_size 必须大于或等于上面讨论的值。

参数
fragmentholoscan.core.Fragment (仅限构造函数)

算子所属的片段。

directorystr

用于从中读取文件的目录路径。

basenamestr

用户指定的文件名,不带扩展名。

batch_sizeint, optional

一次 tick 读取和发布的实体数量。 默认值为 1

ignore_corrupted_entitiesbool, optional

如果无法反序列化实体,则默认情况下会忽略该实体;否则会生成故障。 默认值为 True

frame_ratefloat, optional

要重放的帧率。 如果指定零值,则遵循时间戳中的时序。 默认值为 0.0

realtimebool, optional

基于 frame_rate 或时间戳实时播放视频。 默认值为 True

repeatbool, optional

循环重复播放视频流。 默认值为 False

countint, optional

要播放的帧计数数。 如果指定零值,则忽略该值。 如果计数小于视频中的帧数,则会提前结束。 默认值为 0

allocatorholoscan.core.Allocator

用于张量内存的分配器。 目前,仅支持 holoscan.resources.UnboundedAllocatorNone 的默认值将导致使用 holoscan.resources.UnboundedAllocator

entity_serializerholoscan.core.EntitySerializer

用于反序列化的实体序列化器。 None 的默认值将导致使用默认的 holoscan.resources.StdEntitySerializer。 如果指定了此参数,则会忽略 allocator 参数。

namestr, 可选 (仅限构造函数)

运算符的名称。 默认值为 "video_stream_replayer"

add_arg(*args, **kwargs)

重载函数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None

向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None

向组件添加参数列表。

  1. add_arg(self: holoscan.core._core.Operator, **kwargs) -> None

通过 Python kwargs 向组件添加参数。

  1. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None

  2. add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Resource) -> None

向算子添加条件或资源。

这可用于在算子构建完成后向其添加条件或资源。

参数
argholoscan.core.Condition 或 holoscan.core.Resource

要添加的条件或资源。

property args

与组件关联的参数列表。

返回值
arglistholoscan.core.ArgList
compute(self: holoscan.core._core.Operator, arg0: holoscan.core._core.InputContext, arg1: holoscan.core._core.OutputContext, arg2: holoscan.core._core.ExecutionContext) → None

算子计算方法。此方法定义要由算子执行的主要计算。

property conditions

与算子关联的条件。

property description

描述算子的 YAML 格式字符串。

property fragment

算子所属的片段 (holoscan.core.Fragment)。

property id

组件的标识符。

标识符最初设置为 -1,并在组件初始化后变为有效值。

使用默认执行器 (holoscan.gxf.GXFExecutor) 时,标识符设置为 GXF 组件 ID。

返回值
idint
initialize(self: holoscan.core._core.Operator) → None

算子初始化方法。

property is_metadata_enabled

指示此算子所属的片段是否已启用元数据传输的布尔值。

property metadata

与算子关联的元数据字典 (holoscan.core.MetadataDictionary)。

property metadata_policy

与算子关联的元数据字典 (holoscan.core.MetadataPolicy)。

property name

算子的名称。

property operator_type

算子类型。

holoscan.core.Operator.OperatorType 枚举,表示算子的类型。当前实现的两种类型是本地和 GXF。

receiver(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Receiver]

获取输入端口使用的接收器。

参数
port_namestr

输入端口的名称。

返回值
receiverholoscan.resources.Receiver

此输入端口使用的接收器。如果端口不存在,则为 None。

resource(self: holoscan.core._core.Operator, name: str) → Optional[object]

与算子关联的资源。

参数
namestr

要检索的资源的名称

返回值
holoscan.core.Resource 或 None

具有给定名称的资源。如果未找到具有给定名称的资源,则返回 None。

property resources

与算子关联的资源。

setup(self: holoscan.core._core.Operator, arg0: holoscan.core._core.OperatorSpec) → None

算子设置方法。

property spec

与算子关联的算子规范 (holoscan.core.OperatorSpec)。

start(self: holoscan.core._core.Operator) → None

算子启动方法。

stop(self: holoscan.core._core.Operator) → None

算子停止方法。

transmitter(self: holoscan.core._core.Operator, port_name: str) → Optional[holoscan::Transmitter]

获取输出端口使用的发送器。

参数
port_namestr

输出端口的名称。

返回值
transmitterholoscan.resources.Transmitter 或 None

此输出端口使用的发送器。如果端口不存在,则为 None。

Previous holoscan.logger
Next holoscan.resources
© Copyright 2022-2024, NVIDIA. 最后更新于 2025 年 1 月 27 日。