|Open WebRTC Toolkit实时视频分析系统


随着物联网技术的发展 , 实时视频分析技术已应用于智能物联网的各个领域 。 英特尔基于与GStreamer以及OpenVINO构建了整套实时视频分析方案 , 为用户提供更加灵活、便捷的实时视频分析服务 。 本文由英特尔高级软件工程师 吴秋娇在LiveVideoStack线上分享内容整理而成 。
文 / 吴秋娇
整理 / LiveVideoStack
背景介绍

|Open WebRTC Toolkit实时视频分析系统
本文插图

随着物联网技术的发展 , 实时视频分析技术已应用于智能物联网的各个领域 , 例如:智能零售、智能工厂、智能监控等 , 如果把视频比作物联网的眼睛 , 那么实时视频分析技术就是物联网的大脑 。
目前基于深度学习以及计算机视觉的视频分析是最通用的方式 。

|Open WebRTC Toolkit实时视频分析系统
本文插图

以物联网技术中非常通用的场景-物体识别技术为例 , 如图是典型的物体识别的流程图 , 在前端采集一段视频流 , 再将物体识别出来 , 对所识别的物体进行标注 , 再进行回传显示 , 需要经过很多复杂的步骤 , 其中需要调用很多接口 。 同样还会涉及到颜色空间转换、缩放、推理、以及编解码的过程 , 这些过程都需要占用很大的计算资源 。
同时在实际环境中如果有CPU , GPU , VPU等多种计算资源 , 如何让编解码以及推理等过程充分利用不同的计算资源从而提升系统性能?此外 , 当系统需要应对更多的流分析任务时 , 如何进行方便快速地扩展 。 这些都是实时分析系统会碰到的问题 。 接下来我们从这些问题出发来介绍OWT(Open WebRTC Toolkit)如何解决实时分析系统的复杂性 , 性能以及扩展问题 。 OWT的实时分析系统是基于英特尔的OpenVINO以及开源的GStreamer框架进行开发 , 我们先对OpenVINO , GStreamer以及OWT做个简单的介绍 。
英特尔 vision computing platform

|Open WebRTC Toolkit实时视频分析系统
本文插图

Open VINO是英特尔推出的pipeline的工具集 , 具有完成算法、模型部署所需要的各种能力 。
从图中可以看出 , 其主要由两部分组成:模型优化器(Model Optimizer),可以把在其它框架下已经训练好的模型转换为Open VINO所适用的模型再进行优化 , 转换速度较快;推理引擎(Inference Engine) , 即在设备上运行的AI负载在做推理时 , 可以将我们所需要的处理效果例如前处理、后处理、特征叠加等 , 通过Open VINO接口的形式方便的实现 。
而且Open VINO 中还可以支持多种模型 , 目前已经提供有150多种训练好的模型供用户直接使用 。 可以在Open Model Zoo(https://docs.openvinotoolkit.org/2019_R1/_docs_Pre_Trained_Models.html)的网站查看具体支持的模型 。 另外OpenVINO在Intel平台进行优化 , 提升计算机视觉相关深度学习性能达19倍以上 , 可以充分利用相应的计算资源 。

|Open WebRTC Toolkit实时视频分析系统
本文插图

另外OWT使用GStreamer框架 。 GStreamer 是一个高度模块化的管线驱动式媒体框架 , 大概从2002年开始发布第一个版本 , 一直到现在还在不断更新 。 特别是AI时代 , 由于其灵活性及可扩展性 , GStreamer在AI领域应用也比较广泛 , 目前已有很多丰富的AI插件 , 可以提供各种功能 。
目前已经推出支持Open VINO的GStreamer插件gst-video-analytics, 提供了推理 , 监测及分类等多种功能的插件 , 详见https://github.com/opencv/gst-video-analytics/wiki/Elements 。
OWT视频分析系统给用户提供了方便的接口 , 用户可自行组合不同的GStreamer plugin来实现不同的分析任务 。


推荐阅读