高通Linux软件示例应用程序——AI目标检测与并行人工智能处理(第2部分/共2部分)
发表于 2024-07-26 09:50:57

上次我们介绍了高通智能多媒体软件开发工具包提供的两种模块构建示例应用程序。该软件开发工具包以本公司提供的高通Linux®软件为基础,利用该软件,您可以仅进行一次开发,即可部署到本公司诸多的物联网片上系统(SoC)中。在本文中,我们将探讨该软件开发工具包中22种示例应用程序中的另外两种,以演示如何为我们的物联网芯片组编写应用程序。

3. 看透人工智能:实时流目标检测

命令行应用程序gst-ai-object-detection可以获取摄像机的实时视频流,并将其传送给开源的YOLO(You Only Look Once)人工智能模型进行目标检测。它使用骁龙神经处理软件开发工具包执行YOLOV5、YOLOV8或YOLO-Nas模型,通过预处理和人工智能推理在专用硬件上进行目标检测。然后,它根据模型的输出显示了一个带有叠加(例如:标签和边界框)的预览图。

该应用程序的流水线如下:

1. qtiqmmfsrc – 使用该gstreamer插件,应用程序可以捕获摄像机实时流,然后使用tee将实时流分配到多个输出中。

2. qtimlvconverter – 该预处理插件针对数据流执行诸如色彩空间转换、缩放和归一化等任务。该插件将视频流转换为张量流,以便稍后进行推理。

3. qtimlsnpe – 该机器学习推理插件应用YOLO-Nas(默认)、YOLOV8或YOLOV5来检测流中的目标。该插件在基于CPU、GPU和DSP的神经网络处理器(NPU)上执行骁龙神经网络处理运行时。

4. SNPE运行时对张量流进行推理,并利用推理结果生成一个张量流。

5. qtimlvdetection – 在进行后处理时,该插件将阈值应用于选定数量的期望结果。该插件加载了YOLO-Nas模块进行后处理,生成仅包含边界框(用于叠加)的视频帧,并将帧进行视频组成。

6. qtivcomposer – 该插件将帧与边界框和标签叠加到来自实时摄像机流的帧上,然后将gst缓冲区与组合层结合在一起。

7. Waylandsink将接收到的视频流提交给Weston,后者在本地显示器上呈现视频流。

以下为使用gst-ai-object-detection检测摄像机流中人员的示例:

您会在什么情况下使用该应用程序?

gst-ai-object-detection有几十个类别,您可以将其构建到自己的应用程序中,用于检测各种目标(人、车辆、动物等),并在视频帧中对其定位。实例包括检测头盔、火灾/烟雾和入侵者等。

4. 并行人工智能融合:实时相机进行4种AI推理

命令行应用程序gst-ai-parallel-inference可以将上述单通道应用程序扩展到四个通道,并行的在专用硬件上进行人工智能模型分析。除了目标检测,该应用程序还增加了分类、姿态检测和分割,然后利用所有四个模型的输出叠加显示实时摄像机流的预览图。

该应用程序流水线是上述流水线的一个变体,每个人工智能推理都有单独的流程,如下所示:

1. qtiqmmfsrc – 使用该gstreamer插件,应用程序可以捕获摄像机实时流,然后使用tee将实时流分配到4个输出中。

2. qtimlvconverter – 该预处理插件针对数据流执行诸如色彩空间转换、缩放和归一化等任务。该插件将视频流转换为张量流,以便稍后进行推理。

3. qtimlsnpe – 该机器学习推理插件应用YOLO-Nas进行目标检测,应用 DeepLabv3进行图像分割。该插件在基于CPU、GPU和DSP的神经网络处理器(NPU)上执行骁龙神经网络处理运行时。

4. qtimltflite – 该插件应用PoseNet进行姿态检测,应用Inception V3进行对象分类。该插件在基于CPU、GPU和DSP的神经网络处理器(NPU)上执行TFLite运行时。

5. 每个模型的后处理使用不同的插件。

1. qtimlvdetection – 进行目标检测时,该插件将阈值应用于选定数量的期望结果。该插件加载了YOLO-Nas模块进行后处理,生成仅包含边界框(用于叠加)的视频帧,并将帧进行视频组成。

2. Qtimlvclassification – 进行分类时,该插件将阈值应用于选定数量的期望结果。该插件加载了Inception V3后处理模块,生成具有分类标签(用于叠加)的视频帧,并将帧进行视频组成。

3. qtimlvpose – 进行姿态估计时,该插件将阈值应用于选定数量的期望结果。该插件能够(应用于)不同的姿态估计模型。在该用例中,该插件加载了PoseNet模块,生成具有提取姿势的视频帧(用于叠加),并将帧进行视频组成。

4. qtimlvsegmentation – 进行分割时,该插件将其接收到的推理张量转换成本公司的多媒体插件可以理解的视频格式。

6. qtivcomposer< code>qtivcomposer</code> - 该插件将人工智能模型叠加到来自实时摄像机流的帧上,然后将gst缓冲区与组合层结合在一起。

7. Waylandsink将接收到的视频流提交给Weston,后者在本地显示器上呈现视频流。

以下为gst-ai-parallel-inference渲染视频流的实例:

左上:目标检测。右上:分类模型输出。左下:姿态估计输出,绿色为骨骼点连线。右下:分割模型输出为叠加在人身上的白色像素。

您会在什么情况下使用该应用程序?

作为gst-ai-object-detection的超集,利用gst-ai-parallel-inference,您可以检测视频帧中的人、车辆、动物和其他物体——甚至烟雾和火焰。

通过姿势检测,您可以确定一个人是躺着,坐着还是站着,并且有可能确定此人是否摔倒。健身教练或瑜伽教练可以利用姿势检测来了解学生是否正确地摆出了一个姿势。人体工程学应用程序可以观察并提醒人们坐在椅子或桌子上的正确姿势。

分类应用程序的场景包括产品分类,细分应用程序的场景包括制造业、医疗保健和物流。

后续步骤

这是我们为展示高通Linux软件而构建的另外两种引人注目的应用程序。您可以通过开源获得这两种应用程序以及整个高通智能多媒体软件开发工具包,其中包含20多种人工智能和多媒体应用程序。然后您可以开始将其整合到自己的应用程序中。

我们设计了高通Linux软件,您可以用相同的源代码编写一次并在多个物联网芯片组上运行。高通智能多媒体软件开发工具包是我们第一次通过应用程序接口向开发人员开放我们所有的多媒体子系统 – 包括摄像机、人工智能和音频。随着我们向开源提供更多内容,您可以自定义、试用并为此项工作做出贡献。这是我们开发人员优先理念的一大步,我们确保您能够更轻松在Linux软件上运行的物联网应用程序中开发您想要的各种定制程序。

在所发布内容中表达的观点仅为原作者的个人观点,并不代表高通公司或其子公司(以下简称为“高通公司”)的观点。所提供的内容仅供参考之用,而并不意味着高通公司或任何其他方的赞同或表述。本网站同样可以提供非高通公司网站和资源的链接或参考。高通公司对于可能通过本网站引用、访问、或链接的任何非高通公司网站或第三方资源并没有做出任何类型的任何声明、保证、或其他承诺。

骁龙与高通品牌产品均属于高通科技公司和/或其子公司产品。

CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
微博关注
【免责声明:CSDN本栏目发布信息,目的在于传播更多信息,丰富网络文化,稿件仅代表作者个人观点,与CSDN无关。其原创性以及文中陈述文字和文字内容未经本网证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网不做任何保证或者承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件有任何怀疑或质疑,请立即与CSDN联系,我们将迅速给您回应并做处理。】