Skip to main content
Qualcomm ® Linux ® 提供多种示例应用。每个应用适用于不同的用例,例如零售、Qualcomm ® 边缘 AI 盒子解决方案(Edge AI Box Solutions)和 IP 摄像机。示例应用可分为以下几类:
  • 多媒体示例应用,展示摄像头、视频和音频功能。
  • AI 示例应用,展示 AI 和机器学习(ML)能力。

先决条件

开始之前,请先完成 IQ-8275 设备的设置。 要使用摄像头,请在目标设备上运行以下命令启用 camx

运行多媒体示例应用

多媒体示例应用展示了 Dragonwing EVK 上摄像头、显示和视频流的用例。

多摄像头流传输或编码(行车记录仪)

说明: gst-multi-camera-example 应用允许您同时从两个摄像头传感器采集视频流。该应用将摄像头画面并排合成后显示在屏幕上,或将视频流编码并保存到文件。 需要多路摄像头输入的用例包括行车记录仪或立体摄像头。您可以以此应用为参考构建您的用例。例如,一个需要从多个摄像头采集视频的安防系统。您可以实时查看视频,也可以将其存档以备日后回看。 下图展示了多路摄像头流的流水线。有关此流水线中使用的元素的更多信息,请参见流水线流程。 多摄像头流水线 图:gst-multi-camera-stream-example 流水线 应用: gst-multi-camera-example

运行应用

注意: 在以下命令中,请提供必要的参数,例如宽度、高度和输出类型。宽度和高度的更改仅适用于主摄像头。
1

完成先决条件

确保已完成先决条件
2

在目标设备的终端中,选择以下任一用例并运行相应命令:

Waylandsink 用例: 查看 Waylandsink 输出:
编码器用例: 查看编码器输出:
3

停止正在运行的用例

Ctrl + C
4

在目标设备的终端中,运行以下命令显示可用的帮助选项:

5

在主机的终端中,运行以下命令从目标设备拉取文件:

预期输出

输出会显示在屏幕上并保存到文件。
  • 如果输出类型是显示,您可以在显示器上预览视频流。
  • 如果输出类型是视频编码,则编码后的文件分别保存在 /etc/media/cam1_vid.mp4(摄像头 1)和 /etc/media/cam2_vid.mp4(摄像头 2)。
摄像头预览输出图:gst-multi-camera-example 应用的预期输出 – 预览

流水线流程

下表列出了多摄像头流传输流水线中使用的插件:
流水线说明
在显示器上预览
  1. qticamsrc 从 camera0 和 camera1 同时采集视频。
  2. 应用 Capsfilter 对原始视频数据施加约束。
  3. qtivcomposer 合成视频流,并将合成后的视频数据发送到 Wayland 显示 sink。
  4. waylandsink 显示实时预览。
在设备上保存编码文件
  1. qticamsrc 从 camera0 和 camera1 同时采集视频。
  2. 应用 Capsfilter 对原始视频数据施加约束。
  3. 使用 v4l2h264enc 以 H.264 格式编码视频。
  4. 使用 H264parse 解析视频。
  5. 使用 Mp4mux 将视频复用到 MP4 容器中。
  6. 使用 Filesink 将视频写入文件。

多通道视频解码与合成(视频墙)

说明: gst-concurrent-videoplay-composition 应用支持 MP4 AVC (H.264) 视频的并发播放,并在视频墙显示器上执行合成。 在并发视频播放和合成流水线中,四条解码和合成流水线并发运行。有关此流水线中使用的插件的更多信息,请参见流水线流程。 单摄像头流水线 图:包含四路流的 gst-concurrent-videoplay-composition 流水线 应用: gst-concurrent-videoplay-composition

运行应用

下表列出了 gst-concurrent-videoplay-composition 应用支持的用例:
用例说明
视频会议
  • 同时解码多个参会者的视频流。
  • 适用于应用需要管理多路视频流的多方视频会议场景。
监控系统
  • 并发解码来自两个独立摄像头的视频画面。
数字标牌
  • 允许对在多个地点以电子方式显示的集中管理信息进行同步更改或更新。
要运行这些用例,请执行以下操作:
1

完成先决条件

确保已完成先决条件。
2

准备输入视频文件

在目标设备上添加至少一个 MP4 AVC (H.264) 视频文件。
3

运行用例

在目标设备的终端中运行:
命令行参数示例
  • 两个会话的并发播放
  • 四个会话的并发播放
4

停止正在运行的用例

Ctrl + C
5

在目标设备的终端中,运行以下命令显示可用的帮助选项:

预期输出

各路合成的视频流平铺在一起,显示为一个统一的视频流。视频墙输出图:gst-concurrent-videoplay-composition 应用的预期输出

流水线流程

下表列出了运行视频墙流水线所使用的插件:
插件说明
filesrc
    读取视频数据。
qtdemux
    解复用视频数据。
h264parse
    解析 H.264 视频流。
v4l2h264dec
    解码 H.264 视频流。
qtivcomposer
    合成解码后的视频流并发送到显示器。
waylandsink
    在 Wayland 显示器上显示合成后的视频流。

运行 AI 示例应用

AI 示例应用展示了在 Dragonwing EVK 上对来自摄像头、视频文件或实时流传输协议(RTSP)流的输入进行目标检测、多流推理和并行推理的用例。

下载并传输 AI 模型和标签

要运行 AI 示例应用,请使用以下方法之一下载所需的模型和标签:
  • Qualcomm® AI Hub 下载 AI 模型,并从 GitHub 下载标签
  • 使用 download_artifacts.sh 脚本下载 AI 模型和标签 在目标设备上,获取 download_artifacts.sh 脚本,设置可执行权限,并运行它以下载模型、媒体和标签文件:
要运行目标检测、并行推理和多流推理 AI 用例,应用使用以下 AI 模型:

AI 目标检测

说明: gst-ai-object-detection 应用可用于检测图像和视频中的目标。这些用例展示了在 Qualcomm AI 硬件加速器上执行 YOLOv5YOLOv8YOLOX 下图展示了该流水线,它从实时摄像头画面、文件、USB 源或 RTSP 流接收输入,对其进行预处理,并在 AI 硬件上运行推理。结果或显示在屏幕上,或保存为编码的 MP4 文件,或通过 RTSP 服务器进行流传输。有关流水线流程中使用的插件的信息,请参见流水线流程 流水线示意图 应用: gst-ai-object-detection
当软件镜像包含 qticamsrc 插件时,摄像头框架默认使用它。如果不存在,框架会改用 libcamera。由于 Config #1 不支持 qticamsrc,系统默认使用 libcamera

输入和输出能力

示例模型和标签文件

在目标设备上运行应用

1

下载产物

确保已将所有必需的产物下载到目标设备。
2

运行应用

示例应用使用 /etc/configs/config_detection.json 文件读取输入参数。显示所有可用选项:
要停止用例,请按 CTRL + C

配置

gst-ai-object-detection 应用使用 /etc/configs/config_detection.json 文件。请更新其属性以匹配您的模型、输入流和输出。有关所有字段,请参见配置 JSON 字段说明
对于 USB 摄像头输入,请在配置文件中设置 video-formatresolutionframerate 参数, 使其与摄像头能力匹配,参见配置 USB 摄像头
snpe-tensors 字段仅适用于 SNPE 运行时。要获取 DLC 模型的输出张量名称,请在 Netron 中打开模型。
使用来自 AI Hub 的 DLC 模型时,snpe-tensors 字段为可选。
摄像头源、LiteRT 模型、DSP 运行时

预期输出

检测到的目标带有边界框和标签,叠加在视频上并显示在本地显示器上。输出示意图

流水线流程

下表列出了目标检测流水线中使用的插件:

配置 JSON 字段说明

并行 AI 推理

说明gst-ai-parallel-inference 应用允许您对来自摄像头、文件或 RTSP 网络等不同来源的输入流执行目标检测、目标分类、姿态检测和图像分割。这些用例使用 LiteRT 模型实现目标检测、图像分割、分类和姿态检测。 下图展示了该流水线,它从摄像头、文件或 RTSP 流接收输入流,针对四个用例执行并行推理,并将结果并排显示在屏幕上。
由于不支持 CPU 运行时,此应用在 QLI 2.0 发行版的 Config #1 中不受支持。
有关此流水线中使用的插件的信息,请参见流水线流程 流水线示意图 应用: gst-ai-parallel-inference

输入和输出能力

示例模型和标签文件

在目标设备上运行应用

1

下载产物

确保已将所有必需的产物下载到目标设备。
2

运行应用

示例应用使用 /etc/configs/config-parallel-inference.json 文件读取输入参数。显示所有可用选项:
要停止用例,请按 CTRL + C

配置

gst-ai-parallel-inference 应用使用 /etc/configs/config-parallel-inference.json 文件。请更新其属性以匹配您的模型、输入流和输出。有关所有字段,请参见配置 JSON 字段说明
对于 QCS6490,如果配置文件中不存在 file-pathrtsp-ip-port,则选择摄像头输入。
文件源、LiteRT 模型、DSP 运行时

预期输出

执行四路并行推理后,结果并排显示在屏幕上。流水线示意图

流水线流程

下表列出了元数据解析器流水线中使用的插件:

配置 JSON 字段说明

多流推理

说明gst-ai-multistream-inference 应用演示了对最多 32 路来自摄像头、文件或 RTSP 流的输入流进行 AI 推理(目标检测和分类)。 下图展示了该流水线,它接收多路输入流,对其进行预处理、运行 AI 推理,然后组合各路流并将它们全部合并为单一视频输出。 在 1080P 和 720P 下验证的各 SoC 支持的最大输入流数量如下:
  • QCS6490–8
  • Dragonwing IQ-8275–16
  • Dragonwing IQ-9075–32
    由于不支持 CPU 运行时,此应用在 QLI 2.0 发行版的 Config #1 中不受支持。
    输出会显示在 HDMI 显示器上、保存为 H.264 编码的 MP4 文件,或转换为 RTSP 流。
有关此流水线中使用的插件的信息,请参见流水线流程 流水线示意图 应用: gst-ai-multistream-inference

输入和输出能力

示例模型和标签文件

在目标设备上运行应用

1

下载产物

确保已完成先决条件。这会将所有必需的产物下载到目标设备。
2

运行应用

示例应用使用 /etc/configs/config-multistream-inference.json 文件读取输入参数。显示所有可用选项:
要停止用例,请按 CTRL + C

配置

gst-ai-multistream-inference 应用使用 /etc/configs/config-multistream-inference.json 文件。请更新其属性以匹配您的模型、输入流和输出。有关所有字段,请参见配置 JSON 字段说明
如果观察到性能下降,可以使用 YOLOv8 LiteRT 模型。有关 YOLOv8 的导出说明,请参见先决条件
对 8 路 H.264 文件输入进行目标检测、LiteRT 模型、DSP 运行时

预期输出

流水线示意图

流水线流程

下表列出了元数据解析器流水线中使用的插件:

配置 JSON 字段说明