基于WVP的轻量化智能监控平台-程序员宅基地

技术标签: java  人工智能  http  数据库  分布式  

当代智能监控平台不乏功能强大的产品,但由于涉及模块、组件多,产品容易臃肿,对私有化场景增加了一定的阻碍。于是,轻量化智能监控平台很有必要。

下面为大家一一介绍~

01. WVP是什么?

WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。

02. 基于WVP平台的智能监控产品

在WVP开源框架的基础上进行重构和融合,把强大的业务功能与WVP开源的强大底层视频支撑能力进行结合,构建新的智能监控平台。新的智能监控平台更加轻量化、功能更全面、部署更快捷。

03. Web服务端技术架构

0a4ed77e2950cd7e88085e409710e5fe.png

各组件责任与功能:

  1. 1.  摄像头:提供视频流(国标摄像头需注册到Sip服务器);

  2. 2.  Sip Server:国标摄像头sip信令鉴权,提供国标摄像头注册、注销、心跳,保活、开流、关流等一系列摄像头服务;

  3. 3.  ZLMediaKit:流媒体服务器(一个基于C++11的高性能运营级流媒体服务框架),提供各种视频流协议推拉流直播点播等服务;

  4. 4. KubeEdge:一套开源的边缘计算平台,负责从MediaKit拉取视频流,抽帧,调取AI接口获取事件,并存放到Kafka消息队列中,实时监控设备在离线状态等;

  5. 5. AI服务:提供多种人脸识别,入侵检测,吸烟检测等多种算法的AI服务;

  6. 6.  OSS:AI事件的图片、视频等储存服务,由KubeEdge实时上传;

  7. 7. Kafka:消息队列(KubeEdge与Web服务端之间),存放与传输KubeEdge检测出的AI事件;

  8. 8.  Web Server:web服务端,提供设备管理、技能管理、事件管理、数据统计、数据分析等一系列web后端功能;

  9. 9.  MongoDB:云存事件、AI事件的储存;

  10. 10. Mysql:Web服务端数据的储存;

  11. 11. Milvus数据库:储存人脸特征向量,并提供一系列人脸比对功能;

  04. 摄像头技能下发时序图

上图描述了如何赋予摄像头AI技能:

  1. 1.  前端将页面每个摄像头配置了对应技能的信息按照一定的格式储存为json字符串传递给web服务端 ;

  2. 2.  Web服务端将摄像头技能信息储存数据库同时,透传并下发给边缘端,消费Kafka的AI事件;

  3. 3.  KudeEdge实时从MediaKit拉取视频流,并根据Web服务端下发的技能信息进行抽帧,调AI接口,并将检测到的事件上传到S3,存入Kafka消息队列;

  4. 4.  S3:储存来自KudeEdge上传的图片与小视频,并提供URL下载地址;

  5. 5.  Kafka:接收从KudeEdge生产过来的事件,提供给Web服务端进行消费。

  05. 国标摄像机SIP信令注册流程图

91ce302bc5f1cf718189df7d9b5a23f8.png

  1. 1. 提前分配好摄像头用户名密码。

  2. 2. 国标摄像机后台填写好Sip服务器IP,用户名密码,国标Id,通道ID等相关信息,点击确定。

  3. 3. 摄像头会主动向填写的Sip地址发送注册请求。

  4. 4. Sip服务器会携带相关的鉴权字段,并返回401。

  5. 5. 摄像头拿到鉴权信息并重新发送注册请求,返回200成功。

       该鉴权方法为Digest鉴权算法,常用于国标摄像机,1400摄像机等注册流程。

    06. 国标摄像头实时开流技术架构

a5af280683a50478cf32ddf22bea6fe4.png

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值等内容;

10. SIP服务器将消息9转发给媒体流接收者;

11. 媒体流接收看收到200 OK响应后回复ACK消息,完成与SHP服务器的Invite会话建立过程;

12. SIP服务器将消息11转发给媒体服务器完成与媒体服务器的-Invite会话建立过程;

13. 最终两端都收到ack确认码后,媒体服务器将实时流推送给媒体接收者(播放端)。

07. 功能展示

总览页如下图:

2f935bc8d326dfa7c28f9c0403de88d8.png

de49db237f5c6c40110839ce53b84540.png

支持的核心功能:

1. 支持海康,RTSP,国标等多种协议;

2. 技能配置;

3. 技能下发;

4. 事件的告警,统计等数据可视化,数据分析;

5. 设备管理;

6. 地图定位;

7. 云存回看;

8. 实时播放;

9. 车牌库;

10. 人脸库管理。

已实现的AI技能如下图:

d47c5f1f8059e36b82e693204873fc86.png

08. 技术创新

使用MongoDb取代原先的Mysql来接收事件数据:

假如一家企业接入100路摄像头,每个摄像头平均5秒产生一个事件,预计每天将会有接近200万的数据进入数据库。对于海量数据库存储,为提高存储和查询效率,决定使用MongoDB。(Mysql:90ms, Mongo:10ms)

边缘端使用KubeEdge灵活调度盒子:

无需手动配置摄像头给盒子。根据负载情况灵活将摄像头分配到不同盒子(pod)。以前一个盒子就是一个单体,机器跑着一个服务,现在集群方式,服务跑在pod(盒子)上,可灵活调度pod。缓解摄像头拉流,抽帧,调AI接口等高频操作的压力,提高效率。

事件的图片和小视频分两次上报:

能更快获取到时间信息,提高告警时效性。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qihoo_tech/article/details/127543791

智能推荐

安装texstudio的坑_texstudio无法找到入口-程序员宅基地

文章浏览阅读1.2k次。最后看了一篇博客,说有可能是中间安装了winedt,在 WinEdt 内的 ctex 发行版(其实是一个 miktex 引擎)会覆盖这个环境变量, 导致 texlive 发行版找不到 tex 引擎以及对应的 fmt 文件, 引起了上述的错误。重复卸载下载多次后都无法解决问题。怀疑可能是版本不适配问题,于是在https://sourceforge.net/projects/texstudio/files/4.0.0/下载了4.0.0版本,终于成功打开texstudio了!所以尝试在环境变量处添加:【来源。_texstudio无法找到入口

学习Rust的第29天: cat in Rust

否则,假设提供了文件名,并且它将继续读取和打印这些文件的内容,当前将其作为注释保留。函数将命令行参数收集到字符串向量中,删除第一个参数(程序名称本身),然后。方法当前留空,可能会被实现来读取和打印指定文件的内容。方法读取由名称指定的文件的内容并将其作为 a 返回。它首先检查是否没有提供文件名,在这种情况下它调用。它检查是否没有提供文件名,在这种情况下它调用。文件名中是否存在该标志,如果存在,则调用该。文件名中是否存在该标志,如果存在,则调用该。否则,它会迭代每个文件名,使用 读取其内容。

GitHub Copilot Workspace:欢迎进入原生Copilot开发环境

一旦你对计划感到满意,你可以直接在Copilot Workspace中运行你的代码,跳入底层的GitHub Codespace,并调整所有代码更改直到你对最终结果感到满意。在去年GitHub Universe的早期展示后,今天,我们正重新想象开发者体验的本质,推出了GitHub Copilot Workspace的技术预览版:一个原生支持Copilot的开发环境。然后剩下的就是提交你的拉取请求,运行你的GitHub Actions,进行安全代码扫描,并请求你的团队成员进行人工代码审查。而且完全可以编辑……

【微机原理复试面试简答题汇总】_微机原理复试常见问题-程序员宅基地

文章浏览阅读1.2k次,点赞6次,收藏29次。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。_微机原理复试常见问题

vue快速入门(五十五)插槽基本用法

注释很详细,直接上代码……

Hbase 的架构详解_hbase架构-程序员宅基地

文章浏览阅读5.6k次,点赞10次,收藏19次。Hbase 作为 NoSQL 数据库的代表,属于三驾马车之一 BigTable 的对应实现,HBase 的出现很好地弥补了大数据快速查询能力的空缺。在前面咱们也有介绍过 HBase 的数据模型,感兴趣的小伙伴可以翻看下。谈谈你对HBase数据模型的认识?HBase 的核心架构由五部分组成,分别是 HBase Client、HMaster、Region Server、ZooKeeper 以及 HDFS。它的架构组成如下图所示。下面我们对 HBase 架构组成的每一部分详细介绍一下。1.HBas_hbase架构

随便推点

WML(Wireless Markup Language - 无线标记语言)_无线标记语言的特点-程序员宅基地

文章浏览阅读583次。WML  WML(Wireless Markup Language - 无线标记语言)。它是一种从 HTML 继承而来的标记语言,但是 WML 基于 XML,因此它较 HTML 更严格。  WML 被用来创建可显示在 WAP 浏览器中的页面。用WML编写的页面被称为 DECKS。DECKS 是作为一套 CARDS 被构造的。  这种描述语言同我们常听说的HTML语言同出一家,都属于XML语言这一大_无线标记语言的特点

23种设计模式(第三章结构型模式7种)_设计模式符合-程序员宅基地

文章浏览阅读307次。结构型模式结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。结构型模式分为以下 7 种:代理模式适配器模式装饰者模式桥接模式外观模式组合模式享元模式5.1 代理模式5.1.1 概述由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能_设计模式符合

链表中为何使用二级指针_链表初始化为什么要二级指针-程序员宅基地

文章浏览阅读3.6k次,点赞30次,收藏128次。本篇目录前言参数的调用方式传值调用传址调用传引用调用示例说明使用二级指针/一级指针创建链表时的对比主函数中作此调用使用二级指针创建链表使用一级指针创建链表会成功吗销毁链表时二级指针和一级指针的对比使用二级指针销毁链表使用一级指针销毁链表会成功吗总结完整代码参考来源前言在学习数据结构时,在链表初始化或者销毁链表的时候,经常使用二级指针或者一级指针的引用,这是为什么呢?同样是指向内存单元的地址,为什么就不能使用一级指针呢?使用一级指针去初始化或者是销毁链表的时候,究竟会发生什么呢?到底什么时候该用二级指针,_链表初始化为什么要二级指针

win10通过pycharm远程登录到Linux服务器,并通过matplotlib作图_pycharm连接服务绘图-程序员宅基地

文章浏览阅读3.6k次,点赞9次,收藏24次。准备工作:1.下载专业版本的Pycharm。这里为大家提供18版本的链接: https://pan.baidu.com/s/1-GYSJvUx9JoUujPfu3EPwA密码: p283 或者直接去官网下载: https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows2.安装并..._pycharm连接服务绘图

更改 MATLAB 当前文件夹 或 将其文件夹添加到 MATLAB 路径。出错_manually add this path to the matlab path-程序员宅基地

文章浏览阅读8.7k次。更改 MATLAB 当前文件夹 或 将其文件夹添加到 MATLAB 路径。出错_manually add this path to the matlab path

iOS之UIView动画_oc uiview animate 关键帧-程序员宅基地

文章浏览阅读5.5k次。在AppStore中的应用越来越重视动画效果的使用,一个良好动画效果可以让两个状态之间平滑地过度,也可以利用动画吸引住用户的眼球_oc uiview animate 关键帧