当代智能监控平台不乏功能强大的产品,但由于涉及模块、组件多,产品容易臃肿,对私有化场景增加了一定的阻碍。于是,轻量化智能监控平台很有必要。
下面为大家一一介绍~
01. WVP是什么?
WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。
02. 基于WVP平台的智能监控产品
在WVP开源框架的基础上进行重构和融合,把强大的业务功能与WVP开源的强大底层视频支撑能力进行结合,构建新的智能监控平台。新的智能监控平台更加轻量化、功能更全面、部署更快捷。
03. Web服务端技术架构
- 1. 摄像头:提供视频流(国标摄像头需注册到Sip服务器);
- 2. Sip Server:国标摄像头sip信令鉴权,提供国标摄像头注册、注销、心跳,保活、开流、关流等一系列摄像头服务;
- 3. ZLMediaKit:流媒体服务器(一个基于C++11的高性能运营级流媒体服务框架),提供各种视频流协议推拉流直播点播等服务;
- 4. KubeEdge:一套开源的边缘计算平台,负责从MediaKit拉取视频流,抽帧,调取AI接口获取事件,并存放到Kafka消息队列中,实时监控设备在离线状态等;
- 5. AI服务:提供多种人脸识别,入侵检测,吸烟检测等多种算法的AI服务;
- 6. OSS:AI事件的图片、视频等储存服务,由KubeEdge实时上传;
- 7. Kafka:消息队列(KubeEdge与Web服务端之间),存放与传输KubeEdge检测出的AI事件;
- 8. Web Server:web服务端,提供设备管理、技能管理、事件管理、数据统计、数据分析等一系列web后端功能;
- 11. Milvus数据库:储存人脸特征向量,并提供一系列人脸比对功能;
04. 摄像头技能下发时序图
上图描述了如何赋予摄像头AI技能:
- 1. 前端将页面每个摄像头配置了对应技能的信息按照一定的格式储存为json字符串传递给web服务端 ;
- 2. Web服务端将摄像头技能信息储存数据库同时,透传并下发给边缘端,消费Kafka的AI事件;
- 3. KudeEdge实时从MediaKit拉取视频流,并根据Web服务端下发的技能信息进行抽帧,调AI接口,并将检测到的事件上传到S3,存入Kafka消息队列;
- 4. S3:储存来自KudeEdge上传的图片与小视频,并提供URL下载地址;
- 5. Kafka:接收从KudeEdge生产过来的事件,提供给Web服务端进行消费。
1. 提前分配好摄像头用户名密码。
2. 国标摄像机后台填写好Sip服务器IP,用户名密码,国标Id,通道ID等相关信息,点击确定。
3. 摄像头会主动向填写的Sip地址发送注册请求。
4. Sip服务器会携带相关的鉴权字段,并返回401。
5. 摄像头拿到鉴权信息并重新发送注册请求,返回200成功。
该鉴权方法为Digest鉴权算法,常用于国标摄像机,1400摄像机等注册流程。
06. 国标摄像头实时开流技术架构
1. 媒体流接收者向SIP服务器发送 Invite消息;2. SIP服务器收到Invite请求后,向媒体服务器发送 Invite消息;3. 媒体服务器收到SIP服务器的 Invite请求后,回复200 OK响应;4. SIP服务器收到媒体服务器返回的200 OK响应后,向媒体流发送者发送 Invite请求;5. 媒体流发送者收到SIP服务器的Invite请求后,回复200 OK响应;6. SIP服务器收到200 OK响应后向媒体服务器发送ACK请求, 完成与媒体服务器的Invite会话建立过程;7. SIP服务器收到媒体流发送者返回的200 OK 响应后,向媒体流发送者发送ACK请求,完成与媒体流发送者的Invite会话建立过程;8. 完成三方呼叫控制后,SIP服务器通过B2BUA代理方式建立媒体流接收者和媒体服务器之间的媒体连接;9. 媒体服务器收到Invite请求,回复200OK响应,携带SDP消息体,消息体中描述了媒体服务器发送媒体流的IP端口、媒体格式SSRC值等内容;11. 媒体流接收看收到200 OK响应后回复ACK消息,完成与SHP服务器的Invite会话建立过程;12. SIP服务器将消息11转发给媒体服务器完成与媒体服务器的-Invite会话建立过程;13. 最终两端都收到ack确认码后,媒体服务器将实时流推送给媒体接收者(播放端)。07. 功能展示
08. 技术创新
使用MongoDb取代原先的Mysql来接收事件数据:
假如一家企业接入100路摄像头,每个摄像头平均5秒产生一个事件,预计每天将会有接近200万的数据进入数据库。对于海量数据库存储,为提高存储和查询效率,决定使用MongoDB。(Mysql:90ms, Mongo:10ms)
边缘端使用KubeEdge灵活调度盒子:
无需手动配置摄像头给盒子。根据负载情况灵活将摄像头分配到不同盒子(pod)。以前一个盒子就是一个单体,机器跑着一个服务,现在集群方式,服务跑在pod(盒子)上,可灵活调度pod。缓解摄像头拉流,抽帧,调AI接口等高频操作的压力,提高效率。
事件的图片和小视频分两次上报:
能更快获取到时间信息,提高告警时效性。