欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 探索QCS6490目标检测AI应用开发(二):摄像头视频的拉取和解码

探索QCS6490目标检测AI应用开发(二):摄像头视频的拉取和解码

2024/11/30 8:35:09 来源:https://blog.csdn.net/csdnsqst0050/article/details/139995288  浏览:    关键词:探索QCS6490目标检测AI应用开发(二):摄像头视频的拉取和解码

作为《探索QCS6490目标检测AI应用开发》文章,紧接上一期,我们介绍如何在应用程序中拉取视频流,并且用硬件解码,得到逐帧的图像画面。我们使用了高通的Intelligent Multimedia SDK(IM SDK)完成视频的拉流和硬件解码的工作,IMSDK 是一套基于GStreamer框架开发的多媒体SDK,里面包含了多媒体应用开发的多个插件,用极少的代码量就能够高效的利用了硬件资源。

有关IMSDK的使用和介绍,参考文档Qualcomm Documentation

1.准备工作

1.1 前置条件

在踏上开发之旅前,我们需要确保开发环境的完备。这不仅包括安装适用于QCS6490的开发工具链,更涉及到根据《高通QCS6490开发(六):连接使用摄像头》完成摄像头的接线工作,确保硬件的无缝对接。

1.2 摄像头测试预览

完成摄像头的连接后,我们执行以下命令用于

gst-launch-1.0 qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12,framerate=30/1,width=1920,height=1080 ! videoconvert ! video/x-raw,framerate=30/1 ! waylandsink fullscreen=true async=true

这个GStreamer的命令,用qtiqmmfsrc拉取一个视频预览 输出的格式为NV12 分辨率是1920x1080的高清分辨率

video/x-raw,format=NV12,framerate=30/1,width=1920,height=1080 

最后通过videoconvert和waylandsink插件,将高清视频流以30fps的帧率流畅地显示在屏幕上

2 视频流处理与硬件解码

2.1 视频解码

视频解码是视频流处理的第一步。在QCS6490上拉取摄像头视频解码后,通过videoconvert转换格式,然后使用appsink将解码后的视频帧传递给应用程序进行进一步处理

gst-launch-1.0 qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12,framerate=30/1,width=1920,height=1080 ! videoconvert ! video/x-raw,framerate=30/1 ! appsink

对应的,C++的代码实现可以参考

sample-apps-for-robotics-platforms/RB5/linux_kernel_5_x/AI-ML-apps/AI_Age_Gender_Emotion_Solution/src/StreamDecode.cpp at 68b77ac20929ae21263f92ed7bfda58641c11227 · quic/sample-apps-for-robotics-platforms · GitHub

2.2 应用程序中的推理

在应用程序中,我们将在appsink中获取用解码后的视频帧画面,把图像进行目标检测的推理。涉及到推理的具体实现我们放在下一期的文章讲解

​​​​​​​2.3 结果展示

推理完成后,我们需要将检测结果(如物体框)绘制到视频帧上,并显示给用户。这可以通过修改GStreamer Pipeline来实现:

appsrc stream-type=0 is-live=true caps=video/x-raw,format=BGR,width=1920,height=1080! videoconvert ! video/x-raw,width=1920,height=1080 ! waylandsink

这个Pipeline从应用程序接收处理后的视频帧,通过videoconvert转换格式,然后使用waylandsink显示在屏幕上,实现代码参考

sample-apps-for-robotics-platforms/RB5/linux_kernel_5_x/AI-ML-apps/AI_Tracker_Solution/src/StreamEncode.cpp at 68b77ac20929ae21263f92ed7bfda58641c11227 · quic/sample-apps-for-robotics-platforms · GitHub

作者:Ricky Li

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com