OneAPM大讲堂 | 基于图像质量分析的摄像头监控系统的实现
今天咱们要介绍的技术很简单,请看场景:
你在家里安装了几个摄像头想监视你家喵星人的一举一动,然而,就在喵星人准备对你的新包发动攻击的时候,图像突然模糊了。毕竟图像模糊了以后你就没法截图回家和喵当面对质了啊。
请问如何才能避免这一情况的发生?
请看下文。
摘要: 随着现代化建设的加快,从银行、交通、军队等特殊领域到社区、学校、商城等各行业都安装了摄像头监控平台。但随着监控摄像机数量的不断增加,也给视频监控系统维护工作带来了严峻挑战。视频质量诊断系统通过捕获图像,应用计算机视觉算法,对视频图像出现的噪声、模糊、偏色、信号缺失等常见摄像头故障做出判断及告警,对摄像头产生及时保护的作用。
1. 概述
视频质量诊断系统是一套智能化视频故障分析与预警系统,可以对前端传回的视频图像进行质量分析判断,能对视频故障做出准确判断并发出报警信息。视频诊断系统采用先进的科学的视频质量诊断技术,应用计算机视觉算法,对视频图像出现的模糊、雪花、偏色、噪声、增益失衡和云台失控等常见摄像机故障,做出准确判断并发出报警信息。该系统还可以检测异物遮挡和亮度异常等情况,有效地预防因图像质量问题所带来的不必要的损失,并及时检测破坏监控设备的不法行为。视频质量诊断技术为后继的视频分析、处理提供了保障。
视频质量诊断系统作为视频分析技术在安防领域的革新,是应用相对普遍的一种产品。在视频监控设备日益增多的今天,其在监控系统中的应用,必然更加有利于帮助用户快速掌控前端设备运行情况,轻松维护大型的安防系统。
2. 视频质量诊断系统架构
2.1 监控设备
支持设备:海康威视摄像头、大华摄像头等
2.2 监控方式
部署:如下图Figure 1所示,我们可在不同区域或分公司部署分布式数据采集服务器,再统一由 Portal 入口浏览资源健康的状况,实现 IT 资源统一的监控管理。采集服务器横向扩展监控能力满足企业监控资源的数量限制。
首先通过SNMP发现核心网络设备及视频设备连接的网络交换机,形成基本的网络主干结构。然后通过Ping扫描通过网络设备发现的子网,获取所有可Ping通的IP地址列表。通过预设好的SDK参数(设备IP、设备端口、用户名、密码、上联设备及接口)获取对应视频设备的各种状态及信息。

Figure 1 监控原理示意图
捕获数据:我们通过DCS采集器进行数据采集,我们通过摄像头的SDK开发包,可以每隔一个时间段就对摄像头的数据进行采集,通过图像分析技术,诊断摄像头可能存在的问题并及时对检测结果进行反馈,流程图如下。

Figure 2 取值流程图
3. 关键技术
3.1 颜色异常检测
由于视频线路接触不良、外部干扰或摄像机故障等原因造成的视频中的画面偏色现象;主要包括全屏单一偏色或多种颜色混杂的带状偏色。
主要方法是将RGB图像转变到CIE L*a*b*空间,其中L*表示图像亮度,a*表示图像红/绿分量,b*表示图像黄/蓝分量。通常存在色偏的图像,在a*和b*分量上的均值会偏离原点很远,方差也会偏小;通过计算图像在a*和b*分量上的均值和方差,就可评估图像是否存在色偏。如下图Figure 3所示,为图像的检测结果。

Figure 3 色偏效果图
3.2 亮度异常检测
视频中由于摄像机故障、增益控制紊乱、照明条件异常或人为恶意遮挡等各种原因引起的画面过亮、过暗等故障。
亮度检测与色偏检测相似,计算图片在灰度图上的均值和方差,当存在亮度异常时,均值会偏离均值点,方差也会偏小;通过计算灰度图的均值和方差,就可评估图像是否存在过曝光或曝光不足。

Figure 4 亮度检测
3.3 噪声检测
视频图像中由于高斯噪声等引起的图像布满杂乱的色点,从而影响视频的监控。视频图像中一阵阵杂乱的飞点状干扰导致的雪花等故障。
我们定义4个方向的卷积模板,用图像先和四个模板做卷积,用四个卷积绝对值最小值Min来检测噪声点。求灰度图gray与其中值滤波图median。噪声点占整幅图像的比重较高说明噪声已经影响了图像的整体质量,此时我们认为该摄像头已经存在故障。

Figure 5 噪声检测
3.4 画面清晰度检测
视频中由于虚焦、聚焦错误、镜头损坏引起的图像模糊故障。该功能对实时视频的画面清晰程度做出评价,从而及时发现这种“图像骤变”的故障。
衡量画面模糊的主要方法就是梯度的统计特征,通常梯度值越高,画面的边缘信息越丰富,图像越清晰。需要注意的是梯度信息与每一个视频本身的特点有关系,如果画面中本身的纹理就很少,即使不失焦,梯度统计信息也会很少,对监控设备失焦检测需要人工参与的标定过程,由人告诉计算机某个设备正常情况下的纹理信息是怎样的。
能量梯度函数更适合实时评价图像清晰度,该函数定义如下:


Figure 6 图像模糊
4. OneAPM SI
OneAPM Si 是 OneAPM(蓝海讯通)自主研发的跨平台、支持多种中间件的 IT 综合运维平台, 可以实现对服务器、网络设备、中间件、数据库、存储、虚拟化以及大数据平台等上千种产品的数十万关键指标进行深入监控并进行集中统一的可视化管理,能够有效预防问题的产生及快速帮助用户定位故障,降低运维成本。同时采用丰富的多维度报表为用户决策提供数据支撑。
在摄像头监控上,我们有很好的模型平台支持和相应的插件来分析,这样在以后的升级中可以很好的满足很多用户的需求,可扩展性很高。首先,在摄像头发现上我们提供便捷的方向方式,目前在摄像头监控上,我们平台可以提供很方便的发现方式和信息采集方式,能提供可用性分析、性能分析和基本的配置信息显示(如Figure 9,Figure 10,Figure 11)。

Figure 9 摄像头发现_1

Figure 10 摄像头发现_2

Figure 11 摄像头配置信息
另外,OneAPM Si 支持全网自动自动扫描,实时动态展现核心、接入、汇聚之间的逻辑关系,链路负载过高和设备健康度出现问题后,能通过不同颜色进行告知,我们可以通过摄像头网络拓扑和信息一览表能够直观的看到摄像头的网络部署和具体信息(如Figure 12,Figure 13)。

Figure 12 摄像头网络拓扑

Figure 13 拓扑设备一览
而且,在对于每个摄像头的数据分析中,我们主要对图像的清晰度、噪声、亮度和偏色进行检测,由于每一个摄像头所监控的环境不稳定性,我们采用无监督图像算法进行分析,能取得不错的效果(如Figure 14)。
我们通过其他配置信息能够获得摄像头监控保存的位置并可以人工查看图像信息进行二次鉴定,在摄像头图像质量监控中,有很多特殊情况可能并非摄像头本身出了故障而发生告警,这中情况很少见,通过二次鉴定可以更准确的发现摄像头的问题所在。我们通过每隔一段时间采集数据分析摄像头常出现的问题,降低维护成本,减少维护压力(如Figure 15)。

Figure 14 摄像头指标状态

Figure 15 摄像头通道列表
最后,就是我们的告警机制,当摄像头出现的故障已经达到告警要求,我们就会对其分配的维护人员进行通知,OneAPM SI支持邮件、短信和微信企业号3种类型的告警方式,其中短信小到短信猫大到短信网关都能够支持,而且如果维护人员在一定时间内没有处理掉这些告警的话还会进行告警升级,主动推送给上层管理人员进行解决(如Figure 16)。

Figure 16 告警发送
OneAPM Si 是 OneAPM(蓝海讯通)自主研发的跨平台、支持多种中间件的 IT 综合运维平台。可以实现对服务器、网络设备、中间件、数据库、存储、虚拟化以及大数据平台等上千种产品的数十万关键指标进行深入监控并进行集中统一的可视化管理,能够有效预防问题的产生及快速帮助用户定位故障,降低运维成本。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
来源:http://blog.oneapm.com/apm-tech/807.html
OneAPM大讲堂 | 基于图像质量分析的摄像头监控系统的实现的更多相关文章
- 基于邮件系统的远程实时监控系统的实现 Python版
人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...
- 运维开发实践——基于Sentry搭建错误日志监控系统
错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...
- 基于 HTML5 WebGL 的 CPU 监控系统
前言 科技改变生活,科技的发展带来了生活方式的巨大改变.随着通信技术的不断演进,5G 技术应运而生,随时随地万物互联的时代已经来临.5G 技术不仅带来了更快的连接速度和前所未有的用户体验,也为制造业, ...
- 基于类和redis的监控系统开发
最近学习python运维开发,编写得一个简单的监控系统,现记录如下,仅供学习参考. 整个程序分为7个部分: 第一个部分根据监控架构设计文档架构如下: .├── m_client│ ├── conf ...
- 基于Android的远程视频监控系统(含源码)
基本过程是android作为socket客户端将采集到的每一帧图像数据发送出去,PC作为服务器接收并显示每一帧图像实现远程监控.图片如下(后来PC端加了个拍照功能)... (PS.刚学android和 ...
- 基于Prometheus+Grafana+AlertManager的监控系统
一.Prometheus 1.1 简介 Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 . 1.2 下载&安装 ...
- 嵌入式应用开发第四阶段-基于rk3399的视频监控系统
一.需求分析 伴随着嵌入式技术.图像处理技术和无线网络传输技术的发展,传统模拟视频监控系统和基于PC的远程视频监控系统由于自身的不足,已经无法满足现代社会应用中不断涌现出来的新需求,于是基于嵌入式技术 ...
- [经验交流] 试用基于 influxdb+kapacitor 的监控系统
2017年10月16日: 使用中发现kapacitor的ui过于简单,不能满足实际工作需要,现已切换到grafana --------- 两个月前试用了基于 elasticsearch + xpack ...
- 理解OpenShift(7):基于 Prometheus 的集群监控
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...
随机推荐
- Maven 常用的远程中央仓库地址
https://repo1.maven.org/maven2/ http://maven.jahia.org/maven2/ http://maven.aliyun.com/nexus/content ...
- $.parseJson()定义和用法
$.parseJSON() 函数用于将符合标准格式的的JSON字符串转为与之对应的JavaScript对象. 例子: 这里首先给出JSON字符串集,字符串集如下: var data=" { ...
- vue项目打包上线时的配置操作
vue的图片路径,和背景图片路径打包后错误解决 2017-12-11 16:00 by muamaker, 7037 阅读, 0 评论, 收藏, 编辑 最近在研究vue,老实的按照官网提供的,搭建的了 ...
- PHP扩展开发教程(总结)
PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工 ...
- vue 父子组件之间传参
父组件中有子组件 msg 为父组件向子组件传的内容, 子组件向父组件传参数 子组件:this.$emit("shownumber",[this.num]);//this.$emi ...
- 服务端如何安全获取客户端请求IP地址
服务端如何获取客户端请求IP地址,网上代码一搜一大把.其中比较常见有x-forwarded-for.client-ip等请求头,及remote_addr参数,那么为什么会存在这么多获取方式,以及到底怎 ...
- Android应用系列:完美运行GIF格式的ImageView(附源码)
前言 我们都知道ImageView是不能完美加载Gif格式的图片,如果我们在ImageView中src指定的资源是gif格式的话,我们将会惊喜的发觉画面永远停留在第一帧,也就是不会有动画效果.当然,经 ...
- MySQL多表查询练习题
一.准备数据 #创建表及插入记录 CREATE TABLE class ( cid ) NOT NULL AUTO_INCREMENT, caption ) NOT NULL, PRIMARY KEY ...
- 修改mysql忽略大小写
mysql -p --1.登录mysql show variables like "%case%";+------------------------+-------+| Vari ...
- Python知识梳理
这是个人学习笔记,非教程,内容会有些混乱 极简教程 数据类型 我们可以使用type()函数类获取对象的类型,Python3中内置数据类型包括:None,int,float,complex,st ...