基于Emgu CV的实时家庭安全防护系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

㊀㊀文章编号:1009-2552(2018)10-0077-04㊀㊀DOI:10 13274/j cnki hdzj 2018 10 016
基于EmguCV的实时家庭安全防护系统
黄祎翎ꎬ刘㊀威ꎬ黄慧明
(武汉大学物理科学与技术学院ꎬ武汉430072)
摘㊀要:为实现实时高效的智能家庭安全防护ꎬ文中提出了基于EmguCV图像处理技术的实时家庭安全防护系统设计方案ꎮ首先建立人脸识别库ꎬ采集保护对象人脸特征信息ꎮ由Wi ̄Fi摄像头实时监控ꎬ并在监控区域划出被保护区域(门㊁窗㊁灶台等)ꎮ监控中心基于EmguCVꎬ通过HOG ̄SVM进行人体监测跟踪ꎬ当运动人体越过保护区域安全防护线时系统开始捕获人脸图像并识别ꎮ若判定为被保护人则通过GSM模块进行短信报警提示ꎬ使监护人及时接收警报信息ꎬ有效避免需要照顾的家庭成员触碰㊁越过危险区域ꎮ
关键词:EmguCVꎻHOG ̄SVM算法ꎻ区域入侵检测ꎻ人脸识别ꎻ实时家庭安全防护系统中图分类号:TP391㊀㊀文献标识码:A
Real ̄timehomesecurityprotectionsystembasedonEmguCV
HUANGYi ̄lingꎬLIUWeiꎬHUANGHui ̄ming
(SchoolofPhysicsandTechnologyꎬWuhanUniversityꎬWuhan430072ꎬChina)
Abstract:Inordertoachievereal ̄timeandefficientintelligenthomesecurityprotectionꎬthispaperproposesareal ̄timehomesecurityprotectionsystembasedonEmuguCVimageprocessingtechnology.Firstꎬafacerecognitiondatabaseisestablishedtoacquirethefacefeatureinformationoftheprotectionobject.MonitoredbytheWi ̄Ficamerainrealtimeꎬandtheprotectedarea(doorsꎬwindowsꎬstovesꎬetc.)isdrawninthemonitoringarea.ThemonitoringcenterperformshumanbodydetectiontrackingthroughtheHOG ̄SVM.Whenthemovingbodycrossesthesafetylineꎬthesystemstartstocapturethefaceimageandrecognizeit.IfitisdeterminedtobeaprotectedpersonꎬtheSMSalarmispromptedby
theGSMmoduleꎬsothattheguardiancanreceivethealarminformationatanytimeandatanyplaceꎬeffectivelyavoidingfamilymembersneedingcaretotouchthedangerousarea.Keywords:EmguCVꎻHOG ̄SVMalgorithmꎻregionalintrusiondetectionꎻfacerecognitionꎻreal ̄
timehomesecuritysystem
收稿日期:2018-04-03
基金项目:国家自然科学基金(61722405)
作者简介:黄祎翎(1994-)ꎬ女ꎬ硕士研究生ꎬ研究方向为计算机
软件ꎮ
0㊀引言
老人和儿童的居家安全问题常常被忽视ꎬ当家
长忙于家务等事务ꎬ无暇顾及灶台ꎬ门窗等危险区域ꎬ常常将他们置于危险之中ꎮ而当环境背景复杂㊁人体相对静止时人体红外传感器检测误差较大ꎮ且对于普通监控系统ꎬ单纯移动侦测报警缺少针对特定人群㊁特定区域的防护ꎬ易造成误报ꎬ使用较为不便[1]ꎮ
本文主要结合EmguCV入侵检测与人脸识别
技术ꎬ使用Wi ̄Fi家用摄像头对保护对象进行实时
监控ꎬ当受保护人触碰危险区域ꎬ系统通过GSM模块向监护人发出短信报警ꎬ使家庭监护更具针对性及灵活性ꎮ
1㊀相关技术简介
1.1㊀EmguCV简介
EmguCV是OpenCV图像处理库在.NET平台
77
下的封装ꎮ它可以运行多种语言环境ꎬ使用与.NET兼容的编程语言ꎬ如C#㊁VC++㊁VB㊁IronPython等调用OpenCV函数ꎬ继承了OpenCV所有功能和特点ꎮ同时可实现跨平台操作ꎮ可以在Mono下编译ꎬ并且可以在Windows㊁Linux㊁MacOSX㊁IOS㊁An ̄
droid等多平台上运行ꎮ除此之外ꎬEmguCV包含了基于颜色和深度的图像类ꎬ可以进行自动内存管理与垃圾收集ꎬ而且.NET的优美界面ꎬ可以给用户操作带来直观感受[2]ꎮ
EmguCV包含两层封装:第一层基础层ꎬ包括函数㊁结构和枚举类型ꎬ与OpenCV直接对应ꎻ第二层扩充层则包括了有.NET优势的混合类ꎮ当EmguCV安装完成后ꎬ需要进行环境变量的配置ꎬ以及在解决方案中添加相应的dll文件引用并添加Emgu.CV.UI.dll控件ꎮ当需要在未安装EmguCV电脑运行程序ꎬ只需要将安装目录的X64及X86文件夹复制到程序debug目录下即可ꎮ
1.2㊀行人检测跟踪技术
行人检测跟踪技术是物体检测方法的典型应用ꎬ可以运用于智能交通㊁智能安防监控㊁机器人技术等ꎬ近年来受到广泛关注并取得显著进展ꎮ行人检测跟踪的实现ꎬ需要将图像序列与目标进行相关特征的比对运算ꎬ通过线性或非线性迭代对跟踪目标在当前视频帧的位置进行估计ꎮ包括光流法㊁基于在线场景背景建模算法㊁Viola ̄Jones算法㊁HOG+SVM算法㊁可变形的组建模型(DPM)㊁卷积神经网络等典型算法被广泛应用进来[3]ꎮ1.3㊀人脸识别技术
随着互联网的高速发展ꎬ人脸识别技术在构建智慧城市场景中获得了十分广泛的应用ꎮ相比指纹㊁基因验证ꎬ基于人脸识别的身份验证不需要人参与配合ꎬ灵活性高ꎮ同时对人姿态㊁表情等面部信息的获取及分析能够获得许多有用信息ꎮ
人脸识别的方法大致可分为基于先验知识的模板匹配方法㊁基于统计学的人脸识别ꎬ其中包括几何特征匹配㊁子空间分析㊁基于神经网络的人脸识别等㊁隐形马尔科夫模型(HMM)法㊁基于3D的人脸识别方法等[4]ꎮ为人脸识别的多场景应用提供有力支持ꎮ
2㊀系统设计与实现
系统主要分为三个部分:视频采集端㊁监控中心以及报警接收端ꎮ视频采集端采用红外无线网络摄像机获取视频信息ꎬ监控中心可由无线摄像头同一局域网内任意电脑端实现ꎬ通过EmguCV获取摄像头视频流并进行视频处理㊁用户指令处理ꎮ报警接收端可以接收监控中心发出的异常报警信息并进行及时处理ꎮ系统整体流程如图1所示

图1㊀系统流程图
用户开启监控以后ꎬ通过鼠标响应函数ꎬ在监控图像上顺次点出安全防护区域顶点ꎬ依次连接相邻顶点得到一个封闭的安全保护区ꎮ首先需要对监控视频帧进行图像增强和平滑去噪预处理ꎬ增强行人检测的鲁棒性ꎮ随后进行视频行人检测与行人目标跟踪ꎮ系统检测到行人入侵安全防护区时开启人脸识别模块ꎬ当识别对象为受保护人时ꎬ系统便向监护人发出警报ꎬ让监护人能够及时采取相应保护措施ꎮ
3㊀系统实现
3.1㊀监控端图像采集
将VideoCapture类对象_cam初始化ꎬ获取摄像头ꎬ其中括号内填写摄像头RTSP地址ꎮ这里需要使用支持即时串流协议的无线摄像头ꎮ
_cam=newVideoCapture( rtsp:ʊusername:password@ip:port )ꎻ
_cam.ImageGrabbed+=ProcessFrameꎮ
其中ImageGrabbed事件在获取图片后触发ꎬ开启摄像头后_cam每获取一帧视频图像都会调用ProcessFrame中的方法ꎮ此时在ProcessFrame中使用VideoCapture.Retrieve(frameꎬ3)方法将摄像头捕获的视频帧保存到Mat类型的对象frame中以便图像后续操作ꎬ3表示通道数ꎮ
3.2㊀图像预处理
网络摄像头采集到视频图像后ꎬ需要对视频帧图像进行图像预处理ꎬ一般使用图像增强技术和图像平滑去噪处理ꎮ首先将视频帧图像灰度化处理并采用Gamma校正法进行颜色空间标准化ꎮ图像归一化可以调节对比度ꎬ降低图像局部的阴影和光照变化的影响ꎮ同时在一定程度上约束噪声干扰ꎮGamma压缩公式:
I(xꎬy)=I(xꎬy)gamma(1)采用平滑滤波算法提高抗噪性ꎬ使用高斯平滑
87
滤波:
L(xꎬy)=G(xꎬyꎬσ)ˑI(xꎬy)(2)G(xꎬyꎬσ)=12πσ2e-(x2+y2)/2σ2(3)其中ꎬG(xꎬyꎬσ)为高斯函数ꎬσ是尺度坐标ꎬL(xꎬy)为原图像卷积运算后的平滑图像ꎮ在Emgucv中可采用CvInvoke类调用GaussianBlur函数进行处理ꎮ
3.3㊀行人检测跟踪技术
目标检测方法对于不同的感兴趣检测目标与系统应用方向具有明显差别ꎮ通常根据检测目标共性完成运动侦测后ꎬ需要针对每个兴趣目标的特性进行目标跟踪ꎮ为了实时高效地检测行人目标ꎬ本系统采用方向梯度直方图-支持向量机(HOG ̄SVM)人体识别算法ꎮ
方向梯度直方图(HistogramofOrientedGradi ̄entꎬHOG)特征通过计算和统计图像局部区域的梯度方向直方图构成ꎮ将图像划分成小的单元格(cell)ꎬ对每个cell的梯度直方图进行统计ꎬ然后采集cell中各像素点梯度或边缘的方向直方图并组合构成特征描述器ꎮ每几个cell组成一个空间联通的块(block)ꎬ对每一个block块内的cell进行对比度归一化ꎬ能更好地处理图像内的光照和阴影变化ꎮ串联图像内所有重叠的block的HOG特征ꎬ便可得到最终可供分类使用的特征向量ꎮ
基于HOG的行人检测通过光照强度梯度或边缘方向排布进行目标局部特征表达ꎬ能够有效提取场景中行人边缘特征ꎮHOG特征结合SVM分类器的行人检测方法已被广泛应用到实际场景中ꎮ系统需要采集足够多的样本以确保检测精度ꎮ其中包括包含行人图片的正样本和不包含行人图片的负样本ꎬ并进行归一化处理ꎮ根据训练样本设计HOG描述子ꎮ
HOGDescriptor(SizewinSizeꎬSizeblocksizeꎬSizeblockStrideꎬSizecellSizeꎬchannel)ꎮ
获得正负样本HOG值ꎬ将正负样本图片依次读取并逐一计算ꎬ添加到Matrix矩阵中ꎮ
Matrix<float>FeatureDatas=newMatrix<float> (trainImages.Countꎬ900)ꎮ
Matrix<int>FeatureClasses=newMatrix<int> (trainImages.Countꎬ1)ꎮ
FeatureDatas为全部样本的hog矩阵ꎬ其中trainImages.Count为样本总数量㊁900为HOG纬度ꎬ可由hog.compute()方法得到ꎮ而FeatureClasses为样本的类别标签ꎬ正样本对应1ꎬ负样本对应-1ꎮ接下来依次提取正负样本hog特征ꎬ投入SVM分类器进行训练并保存训练结果为xmlꎬ随后从训练好的SVM提取出hog描述值ꎬ就可以利用训练好的分类器进行行人检测ꎬ并对目标人员画出矩形框标注了ꎮ
3.4㊀区域入侵检测
在监控中心的监控画面设置任意封闭多边形作为安全禁区ꎮ因为监控场景为室内安全防护ꎬ所以同时要求对被保护人员的各身体部位(手㊁头等)是否入侵危险区域进行检测ꎮ而根据运动目标质心与防护圈的特征距离判断目标的安全状态的方法很难准确实现身体部位入侵检测[4]ꎮ本系统使用行人检测时对目标标注的矩形框是否越界来进行入侵判断ꎬ避免单点判断造成的敏感度不高的问题ꎬ如图2所示

图2㊀基于行人检测框的入侵检测
依次对标注的行人检测边框的四个顶点进行判断ꎬ其中只要有一个顶点位于保护区内部即判断为越界ꎮ本系统采用交叉数法来判断点与多边形保护区的相对位置[5]ꎮ
由需要判断的顶点向左或向右发出水平射线ꎬ射线与多边形的交点个数若为奇数ꎬ则此点在多边形内部ꎬ若交点数为偶数或0ꎬ则在多边形外部ꎮ因此ꎬ需要依次读出多边形每条边交点数ꎬ得到总交点个数ꎬ同时考虑射线与边平行或与多边形顶点相交的特殊情况ꎮ
当系统检测到区域入侵时ꎬ同时开启视频录像以及人脸识别模块ꎬ以进行进一步处理ꎮ
3.5㊀人脸识别
由于人脸特征提取较为费时ꎬ且将每一帧视频进行人脸识别十分消耗监控端计算机性能ꎮ故需要提前提取被保护人人脸特征并保存ꎮ只有当被保护区域出现行人入侵检测报警ꎬ系统便开始加载预先在人脸库中保存的被保护人人脸特征ꎬ并运行人脸检测识别模块ꎮ
首先提取待检测人脸特征ꎬ与事先采集的人脸
97
特征进行比对ꎬ程序预先设定判定阈值ꎬ当采集特征与预先保存的特征相差超过阈值ꎬ则系统判定为白名单人员ꎬ不触发报警ꎮ而特征差值在阈值范围内则识别成功ꎬ系统判定为黑名单需保护人员ꎬ监控中心向GSM模块发送报警信号ꎬ进行相应报警处理ꎬ如图3所示

图3㊀人脸识别模块运行过程
使用QueryFrame()方法获取帧数据ꎬ通过Cas ̄
cadeClassifier类进行基于级联分类器的人脸区域监测ꎮ其中使用EmguCV提供的训练好的识别文件
haarcascade_frontalface_alt2.xml实例化人脸Haar特征级联分类器ꎬ检测后返回一个Rectangle数组ꎮ接下来使用foreach遍历数组并绘制出人脸区域ꎮRe ̄size人脸图像ꎬ将其转换成灰度并固定图片大小ꎬ同
时输入人脸对应名称进行保存ꎬ建立人脸库ꎮEmguCV人脸识别主要通过FaceRecognizer抽
象类实现ꎬ其中包含三个子类ꎬ代表不同的识别方法ꎮ首先需要获取人脸库照片ꎬ使用Train()方法训练图片并使用Save()保存训练完成的数据ꎬ注意样本训练后返回的是一个识别后的人脸标签而不是名字ꎬ需要与用户自己输入的名字信息对应起来ꎮ接下来便可使用FaceRecognizer.PredictionResult类进行最后的人脸识别步骤了ꎮ
3.6㊀报警实现
当识别到入侵人脸为被保护人脸ꎬ监控中心上
位机通过串口与GSM模块连接ꎬ当报警触发ꎬ上位机对短信进行编码并发送AT指令到GSM模块ꎬ得到确认后上位机将完成编码的短信发送给GSM模块并转发到GSM网络ꎮ当短信息进入GSM网络后ꎬ会经过移动短消息中心(SMC)接收ꎬ转发给监护人手持移动终端ꎬ使其能够及时收到预警ꎮ
3.7㊀主要功能页面实现
系统运行监控中心客户端界面如图4所示

图4㊀监控中心客户端界面
由鼠标框出来的矩形安全防护区为监测区域ꎮ当安全防护区出现目标受保护人员时ꎬ系统发出警报ꎮ把相关信息更新显示在屏幕界面上ꎬ可以使用双缓冲更新界面ꎬ并设置更新时间间隔ꎬ防止画面更新造成闪烁ꎬ使更新更加流畅ꎮ
4㊀结束语
本文通过对现有家庭安全防护现状的需求分
析ꎬ结合计算机视觉与图像处理技术ꎬ设计了一种基于EmguCV的实时家庭安全防护系统ꎮ监控中心系统由纯C#代码实现ꎬ采用开源的EmguCV做计算机视觉处理ꎬ可以充分利用.NET的丰富类库ꎬ大大提高开发效率ꎮ同时HOG+SVM行人检测跟踪算法配合基于行人检测框的自定义区域入侵检测ꎬ使针对身体部位的入侵危险区域防护更加精准㊁警报区域设置更加灵活ꎮ同时配合人脸识别进行针对性报警ꎬ大大减少误报ꎬ在实时家庭安全防护方面能起到一定的作用ꎮ今后系统可向多监控网点方向拓展ꎬ进一步提高系统可用性和灵活性ꎮ参考文献:
[1]ChangKCꎬLiuPKꎬYuCS.Designofreal ̄timevideostreaming
andobjecttrackingsystemforhomecareservices[C].IEEEInterna ̄tionalConferenceonConsumerElectronics ̄Taiwan.IEEEꎬ2016:
1-2.
[2]杨延新.基于C#语言的EmguCV图像处理[J].电子制作ꎬ2014(11):86-87.
[3]BenensonRꎬOmranMꎬHosangJꎬetal.TenYearsofPedestrian
DetectionꎬWhatHaveWeLearned?[C].EuropeanConferenceonComputerVision.SpringerꎬChamꎬ2014:613-627.[4]左腾.人脸识别技术综述[J].软件导刊ꎬ2017ꎬ16(2):182-185.
[5]周记生.安全敏感区域的入侵检测算法研究与实现[D].北京:
北京邮电大学ꎬ2013.
[6]刘勇奎著.计算机图形学的基础算法[M].北京:科学出版社ꎬ
2001.
责任编辑:杨静
08。

相关文档
最新文档