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_overlay
为True
,则图像将与 AJA 卡捕获的图像混合。如果enable_overlay
为False
,则此端口上的任何消息都将被忽略。
==命名输出==
- video_buffer_outputnvidia::gxf::VideoBuffer
-
来自 AJA 采集卡的输出视频帧。如果
overlay_rdma
为True
,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。 - overlay_buffer_outputnvidia::gxf::VideoBuffer (可选)
-
仅当
enable_overlay
为True
时,此输出端口才会发出视频缓冲区。如果overlay_rdma
为True
,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。
- 参数
- 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
属性
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_overlay
为True
,则图像将与 AJA 卡捕获的图像混合。如果enable_overlay
为False
,则此端口上的任何消息都将被忽略。
==命名输出==
- video_buffer_outputnvidia::gxf::VideoBuffer
-
来自 AJA 采集卡的输出视频帧。如果
overlay_rdma
为True
,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。 - overlay_buffer_outputnvidia::gxf::VideoBuffer (可选)
-
仅当
enable_overlay
为True
时,此输出端口才会发出视频缓冲区。如果overlay_rdma
为True
,则此视频缓冲区将在设备内存中,否则将在锁页主机内存中。
- 参数
- 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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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_value
为True
,则这将是 3 通道 RGB 图像,否则将是 4 通道 RGBA 图像。数据类型将是 8 位或 16 位无符号整数 (与输入的位深度匹配)。输出张量的名称由out_tensor_name
控制。
==设备内存要求==
将此算子与
holoscan.resources.BlockMemoryPool
结合使用时,最小block_size
为(rows * columns * output_channels * element_size_bytes)
,其中当generate_alpha
为True
时,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
属性
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)
重载函数。
__init__(self: holoscan.operators.bayer_demosaic._bayer_demosaic.BayerDemosaicOp) -> None
__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_value
为True
,则这将是 3 通道 RGB 图像,否则将是 4 通道 RGBA 图像。数据类型将是 8 位或 16 位无符号整数 (与输入的位深度匹配)。输出张量的名称由out_tensor_name
控制。
==设备内存要求==
将此算子与
holoscan.resources.BlockMemoryPool
结合使用时,最小block_size
为(rows * columns * output_channels * element_size_bytes)
,其中当generate_alpha
为True
时,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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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_height
为0
,则高度将保持不变。默认值为0
。- resize_widthint, 可选
所需的 (调整大小后的) 输出宽度。如果
resize_width
为0
,则宽度将保持不变。默认值为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
属性
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_height
为0
,则高度将保持不变。默认值为0
。- resize_widthint, 可选
所需的 (调整大小后的) 输出宽度。如果
resize_width
为0
,则宽度将保持不变。默认值为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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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.Condition
或holoscan.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
属性
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)
重载函数。
__init__(self: holoscan.operators.gxf_codelet._gxf_codelet.GXFCodeletOp) -> None
__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.Condition
或holoscan.core.Resource
)。- namestr, 可选 (仅限构造函数)
操作符的名称。默认值为
"gxf_codelet"
。- **kwargsdict
可以传递的额外关键字参数取决于底层的 GXF Codelet。 额外的参数是底层 GXF Codelet 的参数,这些参数既不是
nvidia::gxf::Receiver
组件也不是nvidia::gxf::Transmitter
组件的特定组成部分。 这些参数可以为操作符提供进一步的自定义和功能。
- add_arg(*args, **kwargs)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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,可选
在独占显示或全屏模式下,要使用的显示器的名称,如 xrandr 或 hwinfo –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_matrix
和extrinsics_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), ]
其中
color
和line_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:颜色图像格式,如果 type 是 color、color_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:渲染为三角形
显示彩色图像
图像数据可以在主机或设备 (GPU) 上。 对于 tensor,如果 image_format 为 auto_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 位无符号
绘制几何图形
在所有情况下,
x
和y
都是[0, 1]
范围内的归一化坐标。x
和y
分别对应于显示的水平轴和垂直轴。 原点(0, 0)
位于显示的左上角。 可见区域之外的几何图元将被裁剪。 坐标数组应具有(N, C)
的形状,其中N
是坐标计数,C
是每个坐标的分量计数。点由
(x, y)
坐标对定义。线由一组两个
(x, y)
坐标对定义。线带由
(x, y)
坐标对序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。三角形由一组三个
(x, y)
坐标对定义。十字由
(x, y, size)
元组定义。size
指定十字在x
方向上的大小,并且是可选的,如果省略,则设置为0.05
。y
方向的大小使用窗口的纵横比计算,以使十字为正方形。矩形(边界框)由一对 2 元组定义,这些元组定义框的左上角和右下角坐标:
(x1, y1), (x2, y2)
。椭圆由
(x, y, size_x, size_y)
元组定义。size_x
和size_y
是可选的,如果省略,则设置为0.05
。文本由
(x, y, size)
元组定义。size
指定文本在y
方向上的大小,并且是可选的,如果省略,则设置为0.05
。x
方向的大小使用窗口的纵横比计算。 每个坐标的索引引用text
参数中的文本字符串,并且索引被限制为文本数组的大小。 例如,如果为text
参数设置了一个项目,例如text=["my_text"]
和三个坐标,则my_text
将渲染三次。 如果text=["first text", "second text"]
并且指定了三个坐标,则first text
在第一个坐标处渲染,second text
在第二个坐标处渲染,然后在第三个坐标处再次渲染second text
。text
字符串数组是固定的,并且在初始化后无法更改。 要隐藏不应显示的文本,请为文本项指定大于(1.0, 1.0)
的坐标,然后文本将被裁剪掉。3D 点由
(x, y, z)
坐标元组定义。3D 线由一组两个
(x, y, z)
坐标元组定义。3D 线带由
(x, y, z)
坐标元组序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。3D 三角形由一组三个
(x, y, z)
坐标元组定义。
显示深度图
当
type
为depth_map
时,提供的数据被解释为深度值矩形数组。 此外,可以通过将type
设置为depth_map_color
来指定网格中每个点的颜色值的 2d 数组。可以通过设置
depth_map_render_mode
来选择绘制的几何图形类型。深度图以 3D 方式渲染,并支持相机移动。 相机使用鼠标控制
轨道(LMB)
平移(LMB + CTRL | MMB)
推拉(LMB + SHIFT | RMB | 鼠标滚轮)
环顾四周(LMB + ALT | LMB + CTRL + SHIFT)
缩放(鼠标滚轮 + SHIFT)
输出
默认情况下,会打开一个窗口来显示渲染,但扩展也可以使用
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
属性
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
属性
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
属性
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
属性
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)
重载函数。
__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
属性
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
属性
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
成员
按下
释放
重复
属性
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
属性
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
属性
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
属性
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
属性
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,可选
在独占显示或全屏模式下,要使用的显示器的名称,如 xrandr 或 hwinfo –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_matrix
和extrinsics_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), ]
其中
color
和line_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:颜色图像格式,如果 type 是 color、color_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:渲染为三角形
显示彩色图像
图像数据可以在主机或设备 (GPU) 上。 对于 tensor,如果 image_format 为 auto_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 位无符号
绘制几何图形
在所有情况下,
x
和y
都是[0, 1]
范围内的归一化坐标。x
和y
分别对应于显示的水平轴和垂直轴。 原点(0, 0)
位于显示的左上角。 可见区域之外的几何图元将被裁剪。 坐标数组应具有(N, C)
的形状,其中N
是坐标计数,C
是每个坐标的分量计数。点由
(x, y)
坐标对定义。线由一组两个
(x, y)
坐标对定义。线带由
(x, y)
坐标对序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。三角形由一组三个
(x, y)
坐标对定义。十字由
(x, y, size)
元组定义。size
指定十字在x
方向上的大小,并且是可选的,如果省略,则设置为0.05
。y
方向的大小使用窗口的纵横比计算,以使十字为正方形。矩形(边界框)由一对 2 元组定义,这些元组定义框的左上角和右下角坐标:
(x1, y1), (x2, y2)
。椭圆由
(x, y, size_x, size_y)
元组定义。size_x
和size_y
是可选的,如果省略,则设置为0.05
。文本由
(x, y, size)
元组定义。size
指定文本在y
方向上的大小,并且是可选的,如果省略,则设置为0.05
。x
方向的大小使用窗口的纵横比计算。 每个坐标的索引引用text
参数中的文本字符串,并且索引被限制为文本数组的大小。 例如,如果为text
参数设置了一个项目,例如text=["my_text"]
和三个坐标,则my_text
将渲染三次。 如果text=["first text", "second text"]
并且指定了三个坐标,则first text
在第一个坐标处渲染,second text
在第二个坐标处渲染,然后在第三个坐标处再次渲染second text
。text
字符串数组是固定的,并且在初始化后无法更改。 要隐藏不应显示的文本,请为文本项指定大于(1.0, 1.0)
的坐标,然后文本将被裁剪掉。3D 点由
(x, y, z)
坐标元组定义。3D 线由一组两个
(x, y, z)
坐标元组定义。3D 线带由
(x, y, z)
坐标元组序列定义。 前两个坐标定义第一条线,每个附加坐标添加一条连接到前一个坐标的线。3D 三角形由一组三个
(x, y, z)
坐标元组定义。
显示深度图
当
type
为depth_map
时,提供的数据被解释为深度值矩形数组。 此外,可以通过将type
设置为depth_map_color
来指定网格中每个点的颜色值的 2d 数组。可以通过设置
depth_map_render_mode
来选择绘制的几何图形类型。深度图以 3D 方式渲染,并支持相机移动。 相机使用鼠标控制
轨道(LMB)
平移(LMB + CTRL | MMB)
推拉(LMB + SHIFT | RMB | 鼠标滚轮)
环顾四周(LMB + ALT | LMB + CTRL + SHIFT)
缩放(鼠标滚轮 + SHIFT)
输出
默认情况下,会打开一个窗口来显示渲染,但扩展也可以使用
headless
参数在无头模式下运行。使用独占模式显示也受到
use_exclusive_display
参数的支持。 这通过避免桌面合成器来减少延迟。渲染的帧缓冲区可以输出到
render_buffer_output
。
- add_arg(*args, **kwargs)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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_cuda
为True
,则块应位于设备内存中 (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
方法
- __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
方法
- __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
属性
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_cuda
为True
,则块应位于设备内存中 (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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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_cuda
为True
,则块应位于设备内存中 (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
方法
- __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
方法
- __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
属性
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_cuda
为True
,则块应位于设备内存中 (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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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
属性
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
属性
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.conditions
,Resource 类将被添加到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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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
属性
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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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_allocation 为
True
时,用于内存分配的 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
属性
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_allocation 为
True
时,用于内存分配的 CUDA 流池。- async_device_allocationbool, optional
如果为 True,则在内部分配的 CUDA 流上使用 cudaMallocAsync 分配内存。 否则,在默认流上使用 cudaMalloc。
- namestr, 可选 (仅限构造函数)
运算符的名称。 默认值为
"ping_tensor_tx"
。
- add_arg(*args, **kwargs)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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
属性
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.conditions
,Resource 类将被添加到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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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
属性
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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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
属性
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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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
属性
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)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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。 由于需要主机和设备内存,因此必须使用同时支持这两种内存类型的分配器。 此选项为 UnboundedAllocator 和 RMMAllocator。 当为 RMMAllocator 指定内存池大小**时**,需要以下内存块
一个主机内存块,其大小等于单个未压缩的视频帧
**是**需要的。 请注意,对于 RMMAllocator,内存大小应以 MiB 为单位指定,因此最小值可以通过
math.ceil(height * width * channels * element_size_bytes) / (1024 * 1024))
获得一个设备内存块,其大小等于主机内存块。
当声明 RMMAllocator 内存池时,host_memory_initial_size 和 device_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.UnboundedAllocator
。None
的默认值将导致使用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
属性
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。 由于需要主机和设备内存,因此必须使用同时支持这两种内存类型的分配器。 此选项为 UnboundedAllocator 和 RMMAllocator。 当为 RMMAllocator 指定内存池大小**时**,需要以下内存块
一个主机内存块,其大小等于单个未压缩的视频帧
**是**需要的。 请注意,对于 RMMAllocator,内存大小应以 MiB 为单位指定,因此最小值可以通过
math.ceil(height * width * channels * element_size_bytes) / (1024 * 1024))
获得一个设备内存块,其大小等于主机内存块。
当声明 RMMAllocator 内存池时,host_memory_initial_size 和 device_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.UnboundedAllocator
。None
的默认值将导致使用holoscan.resources.UnboundedAllocator
。- entity_serializerholoscan.core.EntitySerializer
用于反序列化的实体序列化器。
None
的默认值将导致使用默认的holoscan.resources.StdEntitySerializer
。 如果指定了此参数,则会忽略 allocator 参数。- namestr, 可选 (仅限构造函数)
运算符的名称。 默认值为
"video_stream_replayer"
。
- add_arg(*args, **kwargs)
重载函数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Arg) -> None
向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.ArgList) -> None
向组件添加参数列表。
add_arg(self: holoscan.core._core.Operator, **kwargs) -> None
通过 Python kwargs 向组件添加参数。
add_arg(self: holoscan.core._core.Operator, arg: holoscan.core._core.Condition) -> None
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。