基于机器视觉的银行ATM机风险报警系统
2019-08-29李遥丁艺涛潘登郁金明郭丙君
李遥 丁艺涛 潘登 郁金明 郭丙君
【摘 要】本文以機器视觉为基础,设计了一种能够识别对ATM机非法安装、恶意搬动、损坏ATM机行为,并及时报警的系统,给出了ATM风险报警系统设计、ATM电子振动传感器的设计和基于OPENMV的人脸识别系统,并简要介绍银行ATM机风险报警系统的组成与实现,实验验证了设计的系统的有效性。
【关键词】机器视觉;ATM风险报警;电子振动传感器;OPENMV;人脸识别
中图分类号: F832.2文献标识码: A 文章编号: 2095-2457(2019)19-0053-003
DOI:10.19694/j.cnki.issn2095-2457.2019.19.024
0 前言
监控录像中的人脸图像对于调查异常行为、犯罪嫌疑人的身份有着非常重要的作用。但由于缺乏对自助银行、ATM机监控环境、摄像头架设的相关规范,现有视频监控系统中采集到人脸图像往往分辨率低、姿态差。如不加以规范,很难满足事后调查需要。为此本文以机器视觉为基础,设计了一种能够识别对ATM机非法安装、恶意搬动、损坏ATM机行为,并及时报警的系统。
1 ATM风险报警系统设计
图1给出了ATM风险系统设计方案,利用ATM机配备两个OPENMV摄像头C1及C2,C1进行人脸识别,C2摄像机进行ATM面板行为识别;另外设计一个电子振动传感器,来捕获ATM机异常振动。
对于硬件传感器的设计,我们选用STM32+MPU6050的模式,利用STM32+电子惯性测量单元采集的三轴姿态加速度表征振动,相比传统机械结构,极大丰富了输入数据的信息量,具备更高精度和更强的稳定性。采用基于STM32的OPENMV来进行人脸识别,相比传统的模式识别方法,极大降低误报率,并且能够智能分辨例如镜头遮挡等不同的入侵手段。
以STM32为主控芯片,运用串口USART分别与OPENMV C1及C2进行数据交互。当OPENMV检测到嫌疑人或镜头遮挡等非法行为时,通过串口USART上报给STM32做出相应的报警措施;当MPU6050检测到ATM受到敲击等破坏行为时,STM32通过串口USART通知OPENMV进行现场画面的拍摄。
2 电子振动传感器的设计
MPU6050为一种整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间。当连接到三轴磁强计时,MPU-6050提供完整的9轴运动融合输出到其主I2C或SPI端口。MPU-60X0对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。
MPU6050所测得的加速度值不仅可以用来检测ATM机的振动情况,通过上位机软件,我们还可以通过PC机对ATM机的振动情况进行实时的监控。MPU6050价格低,广泛应用于生活生产的各种智能产品中,如在四旋翼飞行器、自平衡小车等产品中应用非常成熟,有大量的实例可以参考。因此,将它应用于ATM机振动测试中,具有成本低、研发速度快、性能稳定等优势[1]。
2.1 MPU6050的滤波
在本项目中,我们直接读取MPU6050三轴加速度的测量值来表征ATM的运动情况。但由于MPU6050的静态噪声较大,实际测得的加速度往往包含了由MPU6050自身产生的大量噪声,因此必须对原始加速度值进行滤波处理,才可以得到较为准确稳定的加速度数据。MPU6050的三轴加速度计具有长期可靠,短期噪声大的特点,所以我们对加速度计采用低通滤波。
MPU6050本身虽然就内置了低通滤波器(LPF),但是滤波效果并不尽如人意,所以我们在此基础上又加了一阶低通滤波,这样硬件初步滤波后,然后再软件滤波一次,能够较好的还原真实的加速度数据。
2.2 对异常振动的报警
我们用MPU6050加速度计的测量值来表征ATM机的振动情况,当ATM机受到嫌疑人的敲击等破坏行为时,可以直接从加速度的波形上直观反映出来。若ATM机工作在正常状态下时,由于ATM机正常工作所产生的机器振动等因素,三轴的加速度值应均稳定在某一数值范围内小幅振荡。若ATM机受到外力敲打,三轴加速度值应有一个较大的跳变后稳定到原来的范围。所以我们可以根据这一特性设置一个加速度值得变动阈值,当加速度值超过此阈值时,我们认为ATM机受到敲击等破坏行为,发出报警信号,并通过USART通知OPENMV进行现场画面的拍摄。当加速度在此阈值范围内变化时,我们则认为这是ATM机正常工作所产生的振动。对于阈值的设置应根据设备大小材料的不同、MPU6050的安装位置、报警灵敏度的要求等因素,通过实验的方法来确定。
3 基于OPENMV的人脸识别系统
OPENMV是一款可扩展的机器视觉模块,一款由软件程序驱动的硬件设备,可支持人脸识别、物体识别、UART传输、SPI总线、I2C总线等多种功能。在本项目中主要用到其人脸识别和UART传输功能。
可以进行人脸检测与识别的设备不少,但最后我们选择了OPENMV,原因在于:
①该设备较为小巧,适合安装在ATM机上。
②并且上电后可独立运行,无需与PC端相连。
③设备成本相对而言不高,易于普及。
首先下载OPENMV IDE软件,该软件基于MicroPython语言,将OPENMV的镜头焦距校正后使用通用串行总线将其与PC端相连即可使用。在PC端完成对程序的开发与校验。OPENMV设备在使用时可不与PC端相连,在该情况下上电后执行的程序为事先存放在其自带的小型内部文件系统中的程序;若在OPENMV中接入了SD卡,则执行的程序为SD卡中的程序。当需要使用SD卡时应先在OPENMV中接入SD卡,再对OPENMV进行上电操作。若先上电再接入SD卡,则OPENMV仍应用其自带的小型内部文件系统。
4 人脸识别程序
将检测到的人脸与人脸库中的人脸进行对照、识别,以达到对犯罪分子进行识别并发出警报的目的。
人脸库仅包含犯罪分子的人脸,这将大大减小人脸库的规模,加快识别速率,但这同样带来了一个问题:识别出的人脸与检测到的人脸并不一致。该问题的产生主要是因为人脸识别必然会从人脸库中给出一张最接近于被测人脸的图片,当被测人脸实际上并不在人脸库中,即被测人并非犯罪分子时,人脸识别系统往往无法进行有效的分析和判断。但这一问题可以通过制定一个标准,即设定一个阈值得以缓解。
4.1 人脸识别算法
使用Haar特征分类器检测人脸,通过LBP算法进行识别。
(1)Haar特征分类器检测人脸
Haar特征分为三类:边缘特征、线性特征以及中心和对角线特征,这些组合形成特征模块。特征模块的特征值为模块内白色矩形的像素之和减去黑色举行的像素之和,反映的图像的灰度变化情况。通过Adaboost算法的应用可以判断使用何种特征模块能更好地实现对人脸和非人脸的区分。Adaboost算法是通过无数次循环迭代来寻求最优分类器的过程[2],通过积分式(1)可快速得到Haar特征值:
ii(x,y)为经过计算后积分图上的各个像素点的像素值。一个完整的图像包括每个像素的左方及上方的区域总和[3]。
之后要做的是训练分类器,大致步骤是计算所有训练样本的每一个特征的特征值并排序,再通过正负例的权重和确定阈值。这样做的原因是绝大多数的特征对识别人脸与非人脸所起到的作用是微乎其微的,仅有一些特定的特征和相应阈值起到作用。在本项目使用OPENMV自带的分类器,无需自建分类器。
(2)LBP算法
局部二值模式(Local Binary Pattern,LBP)是一种有效的纹理描述算子,它具有旋转不变性和灰度不变性等显著的优点[3]。最初的LBP算子是1个3×3的窗口,以中心像素点的像素值为阈值,将其余8个像素点的像素值分别与之比较,若像素值大于中心像素值则置“1”,反之则置“0”,依照顺序可写出1个8位的二进制数值,该二进制数转换成的十进制数即为LBP值。通常还需要求得LBP算法的对比度LBP/C,其中对比度分量C 是邻域中所有大于和等于中心点的像素的均值与所有小于中心点像素的均值之差。[4]为增加精确性、达到旋转不变性的要求,之后又出现了LBP等价模式和旋转不变的LBP算子,使得LBP算法越发实用。基于LBP的人脸识别方法一般是将图像划为几个互不重叠的区域,分别进行LBP算法处理,通过各区域的统计直方图完成识别。
4.2 自建人脸库
在本项目中需要自建一个人脸库用以检测OPENMV人脸识别的准确度。曾经有考虑过使用随意一张人的照片作为人脸库中照片,这样对人脸库图片的要求将大大降低。但为保证识别的可靠性,在进行人脸检测与识别时不仅要对OPENMV拍摄的图像进行人脸检测,而且对人脸库的图片也进行人脸检测,再对检测到的人脸进行识别,以确保整个识别过程是拍摄到的人脸是在与人脸库中的人脸进行识别.这在OPENMV中难以实现,一方面,对人脸库的图片进行人脸检测所需代价过大,严重影响了识别的效率,过大的运算量也经常导致系统崩溃。另一方面,对人脸库图片进行检测时未必能检测到人脸,原因可能在于图像的压缩使得区分人脸与非人脸的某些特征丢失,影响了人脸的检测。因此对于人脸库的人脸图片,需要满足要求:图片仅包括完整人脸,背景统一为白色或黑色。對图片需要进行的操作有:人脸居中—裁剪图片—直方图均衡。
(1)人脸与镜头距离远近造成的影响
人脸与镜头距离的远近会对人脸识别的准确性产生影响,主要体现在LBP值的差异上。当人脸与镜头距离不合适时,有出现过对10个样本人脸进行识别时出错。推荐人脸与镜头的距离为40厘米并正对镜头,可适当进行调整。在镜头固定的情况下,可通过划线提示人脸与镜头的恰当距离。
(2)光线造成的影响
光线造成的影响主要体现在人脸检测环节,光线光亮或过暗都会导致人脸检测的不准确,即框出的人脸仅为实际人脸的一部分或根本框不出人脸。在该情况下人脸识别的准确率大大降低,事实上用错误检测出的人脸来比照人脸库进行识别根本毫无意义。因此光线是非常重要的一环。在进行人脸检测和识别时,应尽量保持自然光,必须确保没有反光现象,同时也要保证光线不能过暗。
5 镜头遮挡报警
仍然使用OPENMV设备,预期效果为当镜头遭遇遮挡时(全遮挡或半遮挡)报警。
6 结论
基于机器视觉的银行ATM机风险报警系统以STM32为主控芯片,运用串口USART分别与OPENMV C1及C2数据交互,不仅能在识别到嫌疑人或镜头遮挡等非法行为时进行报警,当MPU6050检测到ATM受到敲击等破坏行为时,STM32还能通过串口USART通知OPENMV进行现场画面的拍摄。使得该系统在原有的ATM安全措施上更加高效地完成系统实时监控和防范的功能,实验验证了设计的系统的有效性,对于相关的报警系统的开发具有参考价值。
【参考文献】
[1]赖义汉,王凯.基于MPU6050的双轮平衡车控制系统设计[J].河南工程学院学报(自然科学版),2014,26(03):53-57.
[2]王琳.人脸检测关键技术的研究[D].北京:北京邮电大学,2013.