人工智能的发展和在行业中的作用就不用多说了,已经到了一个遍地开会、势在必行的阶段,尤其是对于流媒体音视频行业来说。
基本上是人工智能重中之重的核心领域,视频人工智能,也就是机器视觉智能分析的方式大体上可以分为两种:
- 中心计算:也就是云端分析,所有视频图像数据都以图片或者视频流的形式传输到中心服务,再由中心服务进行视频数据的分析,这种模式比较考验中心服务的网络能力和中心硬件的算力;
- 边缘计算:也就是智能分析网关,将大部分的计算工作都在边缘设备中完成,比如人脸、车牌、物体、行为等的分析和比对,这种做法相比于中心计算的优势是不但降低了对带宽占用的要求,而且分析的实时性更高,但边缘计算设型的智能设备的生产和制造门槛会相对较高;
之前我们聊到过关于EasyNVR的视频边缘分析的功能,视频边缘分析的主要作用是解决中心算力和带宽瓶颈的问题,但是对于某些行业应用场景,是不得不采用中心计算方式的,例如部署区域非常广泛的电力、水利、能源、环保等行业,其设备常分布交广且设备与设备间距较大,设备搭配分析网关的话,建设成本和运维成本都会非常高,性价比还不如投入中心计算硬件和带宽的方式;EasyGBS接入AI智能分析算法
经过多年的音视频技术积累,以及在国标GB28181领域的深耕,我们的很多国标GB28181项目用户传递给了我们很多视频智能分析接入的需求,在经过多次的需求沟通和实践论证后,我们成功在EasyGBS国标视频云服务中加入了AI视频智能分析的功能,同样,这里说的我们功能加入,类似于EasyNVR,实际上是我们为更多的AI人工智能公司打开了一个嫁接算法的口子,让做智能分析的公司专注做视频智能分析的事情,充分发挥各自算法的优势,不用担心流媒体流转的问题,我们会将整个视频监控设备从内网,到公网,到客户端的传输的整个流程都整合的非常稳定、可靠。
那么我们是如何将不同厂家的AI智能分析算法接入到EasyGBS?
1、EasyGBS对每一路需要做智能分析的通道进行分析开关的配置,当需要对某一路接入的通道视频进行AI+的智能分析的时候,在不破坏原有由设备取流(Source)到流媒体输出(Sink)大过程的情况下,我们需要在中间加入AI+视频智能分析的过程,即EasyGBS内部的 Source->AIFilter->Sink,而这个AIFilter过程是可选的,配置了这个过程就调用,不配置就不调用,配置了,但是没有Load到视频智能分析库就不调用,Load到了视频智能分析库就调用;
2、需要在每一个通道中配置Filter的名称以及自定义的参数,通过Filter的名称作为Function进行执行,Function会传入(avFrame,userData,userPtr,callback),再由Callback输出(userPtr,userData,avFrame),这样就形成了整个的AI+用户自定义流程;
3、用户回调出来的avFrame是进行下一步推流或者存储的原材料,AVFrame可以是原样的音视频,也可以是经过标注后的视频帧;userData是用户自定义的数据格式,EasyGBS可以通过接口或者SEI数据等形式,传输给业务展示端或者业务端;
EasyAIFilter分析结果输出的几种方式
- 同步输出:叠加分析结果或者原画面与分析结果同步输出;
- 异步输出:原画面即时输出+分析异步结果;
目前,EasyAIFilter已经在很多项目中有了应用,我们的大部分产品也开始支持了EasyAIFilter的架构,现在,我们为AI视频分析的厂家提供了一套完整的视频分析接入的示例:https://github.com/tsingsee/EasyAIFilter