OpenVINO系列18丨视频处理的介绍

1.视频分析推理流程

解码 – 预处理 – 推理 – 后处理 – 编码

0831143415

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脚本实例。


转载请注明:康瑶明的博客


转载请注明:康瑶明的博客