Holoscan Sensor Bridge v2.0.0

运行 Holoscan Sensor Bridge 示例

Holoscan 传感器桥接 Python 示例应用程序位于 examples 目录下。

以下是在 IGX 和 Jetson AGX 平台上运行应用程序的说明。

  • 文件名以 “linux_” 开头的示例使用未加速的 Linux Sockets API 网络接收器操作符。 这些示例在 IGX 和 AGX 系统上均可运行。

  • 文件名中不含 “linux_” 的示例使用加速网络接收器操作符,并且需要 ConnectX SmartNIC 控制器,例如 IGX 上的控制器。 AGX 系统无法运行这些示例。

  • 这些示例均可在 iGPU 和 dGPU 配置上运行。 如果底层操作系统和 Holoscan 传感器桥接容器是使用适当的 iGPU 或 dGPU 设置构建的,则应用程序代码本身不会更改。

大多数示例都同时具有加速版本和未加速的 Linux Sockets API 版本。

要在具有 ConnectX 加速网络控制器的演示容器中运行高速视频播放器和 IMX274,请执行以下操作:

复制
已复制!
            

$ python3 examples/imx274_player.py

或者,对于未加速的配置(例如 AGX),请执行以下操作:

复制
已复制!
            

$ python3 examples/linux_imx274_player.py

C++ 示例需要首先使用以下命令构建;这会将生成的执行文件留在 /tmp/build/examples 中。

复制
已复制!
            

$ export BUILD_DIR=/tmp/build $ cmake -S . -B $BUILD_DIR -G Ninja -DHOLOLINK_BUILD_PYTHON=OFF $ cmake --build $BUILD_DIR -j $(nproc)

示例构建完成后,您可以运行 imx274_player

复制
已复制!
            

$ $BUILD_DIR/examples/imx274_player

请注意,只有 C++ 示例才支持加速网络接收器。

有关 IMX274 播放器应用程序源代码的文档在此处提供;此示例说明了基本的传感器桥接工作流程,该工作流程在架构文档中进行了描述。 按 Control/C 停止视频播放器。

tao-peoplenet 示例演示了对实时视频流运行推理。Tao PeopleNet提供了一个模型,该模型在给定图像的情况下可以检测人物、包和面孔。 在此示例中,当检测到这些项目时,边界框将显示为实时视频的叠加层。

先决条件:从 NGC 网站下载 PeopleNet ONNX 模型

复制
已复制!
            

wget --content-disposition 'https://api.ngc.nvidia.com/v2/models/org/nvidia/team/tao/peoplenet/pruned_quantized_decrypted_v2.3.3/files?redirect=true&path=resnet34_peoplenet_int8.onnx' -O examples/resnet34_peoplenet_int8.onnx

对于具有加速网络接口的系统:

复制
已复制!
            

$ python3 examples/tao_peoplenet.py

或未加速的配置:

复制
已复制!
            

$ python3 examples/linux_tao_peoplenet.py

这将在 GUI 上启动 Holoscan 可视化工具,其中显示来自 IMX274 设备的实时视频流以及捕获到人物图像时的红色/绿色框叠加层。 按 Ctrl/C 退出。 有关此应用程序的更多信息,请在此处找到。

先决条件:从 YOLOv8 网站下载 YOLOv8 ONNX 模型并生成人体姿势 ONNX 模型。 在 Holoscan 传感器桥接演示容器中

从仓库根目录 holoscan-sensor-bridge

复制
已复制!
            

apt-get update && apt-get install -y ffmpeg pip3 install ultralytics onnx cd examples yolo export model=yolov8n-pose.pt format=onnx trtexec --onnx=yolov8n-pose.onnx --saveEngine=yolov8n-pose.engine.fp32 cd -

请注意,此转换步骤只需执行一次;yolov8n-pose.engine.fp32 文件包含转换后的模型,并且是演示运行所需的全部内容。 容器退出时,已安装的组件将被遗忘;这些组件不需要在演示的未来运行中出现。

对于具有加速网络接口的系统,在传感器桥接演示容器中,启动人体姿势估计

复制
已复制!
            

$ python3 examples/body_pose_estimation.py

对于未加速的配置(例如 AGX),请通过以下方式在演示容器中启动人体姿势估计示例

复制
已复制!
            

$ python3 examples/linux_body_pose_estimation.py

这将在 GUI 上启动 Holoscan 可视化工具,其中显示来自 IMX274 设备的实时视频流,以及绿色叠加层,其中显示人体姿势网络模型找到的关键点。 有关此应用程序的更多信息,请查看此处

按 Ctrl/C 退出。

对于 IGX,examples/stereo_imx274_player.py 显示了一个示例,其中包含两个独立的管道,每个管道用于双摄像头模块上的一个摄像头。 加速网络用于提供对 4k 图像流对的实时访问。 确保 IGX 和 Holoscan 传感器桥接单元之间的两个网络端口均已连接。

复制
已复制!
            

$ python3 examples/stereo_imx274_player.py

这将弹出一个可视化工具显示,其中包含两个帧,一个用于左通道,另一个用于右通道。

对于 AGX 配置,您可以使用单个网络端口观察两个摄像头

复制
已复制!
            

$ python3 examples/linux_single_network_stereo_imx274_player.py

希望将传感器映射到特定数据通道的应用程序可以使用 use_sensor API 来执行此操作,这些示例中对此进行了演示。 AGX 网络接口的带宽限制为 10Gbps,因此仅支持以 1080p 模式观察立体视频。

examples/gpio_example_app.py 是一个使用传感器桥接的 GPIO 接口设置 GPIO 方向、从 GPIO 引脚读取输入值以及向 GPIO 引脚写入输出值的简单示例。 要运行应用程序

复制
已复制!
            

$ python3 examples/gpio_example_app.py

这将弹出一个文本显示,该显示在不同的预设引脚配置之间循环,并允许在引脚的不同设置之间留出时间来测量或回读引脚值。 请参阅应用程序结构部分,以阅读有关GPIO 示例应用程序的更多信息。

examples/linux_hwisp_player.py 显示了 NVIDIA ISP 单元处理使用 IMX274 实时捕获的 Bayer 帧的示例。 ISP 单元当前在 Jetson Orin AGX 和 iGPU 配置的 IGX Orin 上可用。

在启动 docker 运行之前,请使用标志 enableRawReprocessing=1 设置 nvargus-daemon。 这使我们能够使用 Holoscan 传感器桥接单元和 Bayer 帧捕获运行 ISP,并且此更改即使在重启后仍然存在。 在主机系统中

复制
已复制!
            

sudo su pkill nvargus-daemon export enableRawReprocessing=1 nvargus-daemon exit

要运行该示例,请在演示容器中执行以下操作

复制
已复制!
            

$ python3 examples/linux_hwisp_player.py

这将运行带有可视化工具显示的应用程序,其中显示实时捕获。

请注意,如果用户希望撤消使用标志 enableRawReprocessing=1 运行 nvargus-daemon,请执行以下命令。

复制
已复制!
            

sudo su pkill nvargus-daemon unset enableRawReprocessing nvargus-daemon exit

对于 IGX 系统,examples/imx274_latency.py 显示了如何使用时间戳来分析硬件和软件管道的示例。 此示例演示了记录从 FPGA 接收的时间戳(数据获取时)以及在主机中帧接收和管道执行的各个点测得的时间戳。 在运行结束时,应用程序将提供持续时间和延迟报告,其中包含平均值、最小值和最大值。

在运行应用程序之前,请确保已在设置中启用 PTP 同步,然后使用以下命令运行示例。

复制
已复制!
            

$ python3 examples/imx274_latency.py

上一页 构建和测试 Holoscan Sensor Bridge 演示容器
下一页 应用程序结构
© 版权所有 2022-2024 NVIDIA。 上次更新时间:2025 年 2 月 4 日。