基于OpenCV的家庭入侵检测系统
2018-03-29张清华温阳东
张清华,林 勇,温阳东
(合肥工业大学 电气自动化工程学院,合肥 230009)
0 引言
监控系统能够为家居环境的安全提供一个重要保障。一个监视系统包括进行图像采集的摄像头和负责进行流媒体处理的服务器。通过结合计算机视觉的方法,能够对捕获的视频进行智能检测,如自动车辆监控[1]、行人检测[2]。同样,在家庭环境中,通过监控系统提供智能化的功能,在特定的情况下能够实现对环境动态的监视。通过对视频的图像帧的分析自动的得出运算结果,并自动执行相应的任务,以代替人工的干预和监测行为。
文中对嵌入式系统的设计考虑到了家庭环境和设备资源的局限性。系统识别每个视频帧中是否有人体的存在。为了识别人体的存在,系统集成了HoG特征和Haar-like功能的算法[3]。当入侵检测模块处于工作状态时,在正常情况下,本地不存在任何人,如果存在,将被确认为入侵者。这里的入侵者指的是人,其他任何移动的物体,如宠物将被忽视,但系统仍然能够感知到他们的存在。
在视频监控领域已经有较多的研究,但大多数的设计自动化程度并不高,如远程视频监视配合红外热能传感器监测、超声波传感器检测入侵者。如果这些外围传感器检测到入侵信号,相机会被用来捕捉瞬间影像。本文设计的监控系统采用了基于图像差分的运动检测方法[4],实现了通知、报警、保存事件图像等有效的操作。图像差值可以通过计算不同像素的数目来确定,当这个数字超过预定值时,系统将其识别为运动事件。本文同时考虑了由于外界环境的变化如正常的光线强度变化,引起的监测失误的情况。该系统采用物联网[5]提供的远程监控基础平台。
1 系统整体结构
1.1 硬件构成
系统硬件的基本组成:1)控制器,为一个嵌入式Linux板。目前该系统采用树莓派开发板作为控制器平台;2)摄像头,视频采集装置,系统测试使用普通的网络摄像头;3)以太网网卡,它为该系统提供了TCP/IP连接,使这个该设备捕获的视频帧能够传输到网络上。它还提供了监控系统应用的可访问性;4)存储介质,负责视频帧的存储。
1.2 软件构造
系统软件的组件采用面向事件和服务的体系结构,具体采用Java模块化设计。同时采用Python程序实现管理外围元件的输入和输出。图1从软件架构的角度描述了服务的组件。有两个重要的计算机视觉算法被用来检测入侵者。为降低开发难度,系统集成了OpenCV开发环境[6]。
2 系统工作流程
系统基本构造包含一个嵌入式Linux板和一个通用串行总线(USB)存储介质。一个普通的摄像头通过USB端口连接到板上作为一个视频捕获设备。系统实现
图1 应用软件结构图
的拓扑结构如图2所示。
图2 监控系统拓扑结构
在实际环境中,监控系统应放置在安全位置,以实现图2所示星型拓扑结构,摄像头模块分布在家中各处,控制器需要一些时间来检测所有的镜头并采取必要的预警措施。采用外部输入按钮启动入侵者检测功能,为了这个目的,采用一个通用输入输出(General Purpose Input Output,GPIO)引脚作为输入源。其他的GPIO引脚用来驱动外部设备进行各种活动,如打开照明开关。
在基于ARM架构的32位芯片上使用OpenCV,需要在主机平台上编译该库,同时也需要在控制器上配置Java运行环境(Java Run Time Environment,JRE),最后,为了优化系统性能和最大限度地利用中央处理单元,对未使用的Linux服务[7],如日志记录服务进行裁剪。
图3 系统初始化流程图
2.1 系统初始化
在系统启动阶段,使用相应的系统服务调用应用程序软件。当应用程序启动后,它初始化外设GPIO引脚,检查是否有任何视频输入设备连接到系统中。如创建一个视频设备,应用软件读取设备信息并保存为xml文件格式。此外,它检查备份存储介质,如果发现,将其挂载到预定义的位置,然后创建一个可写目录。
在启动阶段,操作系统通过网络时间协议(Network Time Protocol,NTP)初始化当前日期和时间。当网络无法连接到外部服务器时,可以使用代替的解决方案,手动设置日期、时间和时区。系统软件架构支持USB连接摄像头模块,在启动或者启动阶段结束时,系统为每个摄像头模块启动专用线程[8],以捕获视频帧。除了视频捕获线程,在结束设备初始化阶段后对USB端口连接状态进行侦听,以观测USB连接的生命周期,初始化流程图如图3所示。
2.2 图像采集
摄像头模块首先读取设备配置文件。使用有效配置信息,系统应用程序开始记录每个设备捕获的视频帧。在捕获每个视频帧之前,每个相机模块系统都会在系统启动阶段创建一个独立的目录,目录名称对应配置文件中的相机名称。在该阶段系统只检查设备的可访问性、读取调用请求。如果此设备读取请求调用返回成功,则将相关配置视为有效配置。除此之外,配置文件还包含一个键值数据库表单。表1描述了一个模型配置文件结构。在应用的生命周期,如果应用软件未能读取任何设备,软件生成系统警报信息,并产生相应的事件通知。
表1 摄像头设备模型配置
2.3 入侵检测
入侵的检测是一个很具有价值的研究领域,具有很广泛的用途。通过比较身体形状可以从图像中识别出人;上下文匹配是用来比较形状的算法之一。然而通过评价特定的形状来定义人是很困难的,由于人的姿势不同,人站着的形状不同于坐着的形状。有一些研究已经采取了改进的检测模型,如头部轮廓检测。利用HoG特征和支持向量机(Support Vector Machine,SVM)[9]有效地提升检测的性能。该方法考虑检测对象的特征在于由局部强度梯度或边缘方向的分布。将图像分为小的方格和空间区域的小窗口,包含局部一维梯度方向直方图。支持向量机的计算复杂度高,但OpenCV提供了训练支持向量机,减少了训练阶段的开支。
OpenCV默认的HoG实施已经过测试,当类似人的形状存在于低对比度和分辨率图像时容易产生错误的检测,如图4所示,图4(a)原始图像包含类人型的形状以进行对比,图4(b)出现错误的检测信息,图4(c)采用HoG相关方法,能够消除检测的错误,图4(d)对真实人物能够正确的检测,相关因素变化大于0.02。为了提高系统的可靠性,对图像的内容和强度偏差使用相关性的方法。对于每个摄像头模块,需要提供一个参考图像,它代表预定义的环境和照明条件。该参考图像应在正常的环境照明条件下进行,并应确保图中没有人的存在,以供系统确定光照强度和图像内容的变化。每个对象反射由成像设备捕获的光量以在二维平面再现图像。
图4 入侵者检测方法仿真
另一方面,当环境光强度降低时,同一物体反射的光量减少。同样,当光照强度增加时,物体反射光的量不同,图像质量也随之增加。图像特征,如边缘或角点变得更清晰,如图5所示为光线强度变化时图像像素的变化。HoG特征是通过计算图像局部区域的梯度方向直方图来获取的。因此,如果图像特征变得更加明显,HoG特征检测和SVM分类器可以得出更好的结果。综上所述,当开启入侵检测时,将当前图像帧的直方图与参考图像直方图进行比较。
图5 光线强度对像素的影响
系统同时使用Haar-like特征算法,Haar-like的功能与HoG方法结合的人的检测方法,通过Haar-like特征的方法来检测对象。在该系统中,它用来检测人脸特征。OpenCV提供了一个可以训练的正面人脸检测分类器[10]。为了避开分类器的训练阶段以及降低计算成本,系统使用已实现的OpenCV的一个功能,Haar-like特征的级联分类器。对于每个捕获的视频帧,该方法用于确定人脸的存在,如果检测到则产生报警。在某些情况下,如电源故障、光源故障或摄像头被覆盖,当前图像帧变得无效,通过HoG特征检测能够识别无效的图像帧。无效图像指当前图像帧的图像内容和光照强度发生显著变化。通过HoG特征检测能够识别,如果相关系数低于0.70,系统将认为它是一个巨大变化的光强度或内容,即使没有入侵者检测也会生成系统报警,如图6所示。
图6 光线强度发生显著变化时的检测结果
【】【】
3 实验结果讨论
使用HoG特征算法对人体的检测方法进行了测试。根据观测,当光照强度降低时、发生变化时,系统会产生误报。为了降低出错的概率,在进行HoG特征匹配时,如果没有观察到偏差,则丢弃当前检测的图像。如图7所示,当图像的分辨率增加时[11],错误检测会消失。可知在有足够的光照强度和相机分辨率时将产生更好的结果。考虑光照强度和图像本身的变化,对HoG特征比较,在理想的情况下参考图像等于当前图像帧相,关系数约为1,当图像光强变化为亮到暗时,相关系数降低,当低于0.7时考虑为显著变化。
图7 比较不同分辨率的检测结果
性能测试观察到采用频率为900MHz的四核ARM芯片的嵌入式Linux平台,当检测尺寸为640×480的图片时,整个过程需要1.22秒来检测人体的存在。
4 结束语
该系统的主要目标是实现一个嵌入式监控[12]系统的体系结构,能够支持入侵检测。通过整合计算机视觉算法,已经实现该项功能。影响系统性能的两个重要因素一是光强,二是相机模块,高分辨率摄像头是系统设计的首选。
系统软件已经提供了必要的服务构件,实现了监控系统的基本功能。通过对核心架构的扩展可以提供如Web控制台、报警服务、短消息服务、语音消息和电子邮件等广泛应用于智能家居领域的通知接口,以增强当前系统的通知发送机制。
[1]VIOLA P, JONES M J. Robust real-time face detection[J].International journal of computer version,2004,57(2):137-154.
[2]DALAL N,TRIGG S B. Histograms of oriented gradients for human detection[A].In Proc.IEEE CVPR[C].2005,886-893.
[3]向征,谭恒良,马争鸣.改进的HOG和Gabor、LBP性能比较[J].计算机辅助设计与图形学学报,2012,24(6):787-792.
[4]GOULD S.DARWIN:a framework for machine learning and computer vision research and development[J].Journal of Machine Learning Research,2012,13(12):3499-3503.
[5]刘晓克,孙燮华,周永霞.基于新Haar-like特征的多角度人脸检测[J].计算机工程,2009,35(19):195-197.
[6]YANG M H,KRIEGMAN D J,AHUJA N.Detecting faces in images: A survey[J].IEEE transactions on pattern analysis and machine intelligence,2002,24(1):34-58.
[7]叶林,陈岳林,林景亮.基于HOG的行人快速检测[J].计算机工程,2010(22):206-207.
[8]郭烈,王荣本,张明恒,金立生.基于Adaboost算法的行人检测方法[J].计算机工程,2008(3):202-204.
[9]王进花,曹洁,李宇.一种基于特征融合的点特征目标跟踪算法[J].电子测量与仪器学报,2010,24(6):536-541.
[10]TREFNY J,MATAS J.Extended set of local binary patterns for rapid object detection[A].Proceedings of the Computer Vision Winter Workshop.Nove Hrady,Czech Republic: Czech Pattern Recognition Society[C].2010:1589-1596.
[11]FAWCETT T.An introduction to ROC analysis[J].PatternRecognition Letters,2006,27(8):861-874.
[12]汪亚明.基于动态图像序列的自动扶梯客流量的测量[J].测试技术学报,2012,16(1):14-16.