1.视频分析推理流程
解码 – 预处理 – 推理 – 后处理 – 编码
2.执行视频解码的几种方法:
- Media-SDK
Intel推荐使用的解码以及图像处理。如果系统中有Intel集成显卡并且安装了Media-SDK,将使用专用硬件执行编解码操作,称之为Intel Quick Sync
,也可以在CPU上运行,并且使用CPU软件来完成加速。使用起来有点难度,不容易上手。
- OpenCV
通过OpenCV调用Media-SDK执行硬件加速,这可能是最简单的视频处理方法。
- GStreamer/ffmpeg
OpenCV也可以调用这两个软件的功能。
3.预处理
解码完成后我们需要获取每一帧的图像,以匹配神经网络的输入格式。
- 图像处理以提高质量
- 将多个流聚合为一批
- 缩放,调整大小,切出感兴趣的区域
- 仅选择选定的帧
4.推理
- 使用深度学习的模型推理
- 可以是并行、串行的多个模型
5.后处理
推理阶段完成后需要的处理,比如在屏幕显示结果或者打印标签等等。
6.编码
在获得视频流处理结果时,要重新对视频流进行压缩,这样可以对视频进行存储,或者是上传到云端
7.如何模拟部署一个完整AI应用的流程
测量性能的最佳方法是,快速构建一个真实流水线,这个流水线应用要看起来尽可能接近我们构建的实际应用,使用的输入内容最好是我们在产品中使用的视频。视频中实际操作量的大小会影响进行解码所需要的算力,如果是camera或者RTSP流,请模拟真实对象。输出内容也尽量要符合这样的要求。如果用户需要实时的查看输出视频,或者可能存储或者上传内容时,视频实际操作量的大小同时会影响编码所需要的算力。如果不需要输出,可以省去成本高昂的编码流程,或者编码较低的分辨率、较低的帧速率都会造成实际的影响。现在,让我们可以模拟整个流程。
8.DL-Streamer
Deep-Learning Streamer是一个框架,可以构建计算图和流水线,它被包含在OpenVINO中。可以把开发的视频分析元素添加到Gstreamer elements列表中,这些新元素用openvino来检测、分类、识别、跟踪、可视化等操作。DL-Streamer有c++、python和纯Gstreamer脚本实例。
转载请注明:康瑶明的博客
转载请注明:康瑶明的博客