基本信息
- 项目名称:
- 基于视觉加密的新一代银行ATM系统
- 来源:
- 第十二届“挑战杯”省赛作品
- 小类:
- 信息技术
- 大类:
- 科技发明制作A类
- 简介:
- 该作品为一个新型的、实用的、易用的、高效的、安全性高的ATM系统。系统采用视觉控制方代替ATM的手工输入,通过人脸识别来确定操作人的合法性。通信过程中对数据进行透明加密。人眼操作需要人眼特征参数,如果不是本人,无法准确定位人眼的注视坐标。每次进行“确定”操作时,根据实时人脸识别来进行验证是否是本人。如果不是本人,则操作无效。每一个操作界面的屏幕键盘数字的位置随机改变,提升安全性。
- 详细介绍:
- 1 系统方案 1.1开发平台和硬件组成 本系统基于PC开发,以XP系统为例来进行系统的开发,系统采用C++进行开发,所以在移植到别的平台上时比较灵活,可以移植到很多嵌入式平台。系统采用近红外LED作为光源,在镜头上用红外截止滤光片滤去850nm波长红外光之外的一切光波;用CCD摄像机实时获取人眼的图像,对图像进行处理和分析,分析得出人眼的瞳孔中心位置及光斑位置信息;同时,用一个摄像头来供人脸的实时检测和识别之用,进行信息确认,保证当前人的身份合法。 1.2功能结构 在进行人眼操作的过程中,系统需要对两个三维空间坐标系和一个平面坐标系进行转换和映射,来获取准确的人眼注视坐标位置。如图1.2所示。首先,系统对人眼进行跟踪;然后,获取人眼的图像,对图像进行处理,得到人眼的瞳孔中心位置;之后,利用单摄像机,显示屏幕,人眼,及红外光源这几个空间坐标映射,得出人眼注视屏幕坐标;最后,ATM模拟程序根据坐标点进行相应的响应。 实时人脸检测与识别是在用户业务办理过程中,实时获取人脸图像,以人脸图像进行分析处理,将当前人脸与特征库中的人脸进行比对,实现人脸的实时检测与识别。在用户使用系统的过程中,如果当前人是人脸特征库中的人,对其身份进行确认,否则通知系统此为非法用户,取消其操作。 传输数据做透明加密处理,采用一次一密算法,保证信息安全而高效地进行交互。所采用的加密算法我们称之为随机素数表即时更新加密算法,该算法是本小组对传统的RSA非对称加密算法的一种有效且有针对性的改进,在一次交互过程中,密钥会进行一次复杂随机变化,实现一次一密。使得ATM系统不会出现信息在传输过程中泄漏的情况,传输过程中传的是无意义的密文,对同一个明文加密后的密文不固定的,而且没有规律可寻的。这样就保证的信息在传输过程中的安全性 ATM客户端: 插入银行卡,从库中提取本人的眼睛参数。然后根据人眼参数进行程序里的人眼参数设定,如果人眼参数不符合,那么就无法定位注视点;如果符合,就用人眼进行所有的屏幕按键操作。输入密码进行登陆,进行正常的ATM客户服务:取款,查询余额,转账,修改密码等。每个操作完成点“确定”的时候,进行实时人脸识别,如果当前操作的人不是银行卡对应的持卡人,则其操作无效,不能执行操作。 服务器端: 处理客户端的业务请求,存储所有的数据信息。用户的个人信息、账户信息等全都存储在服务器端。当客户端向服务器端发出请求时,服务器端根据客户端的请求做出响应,再将信息反馈给客户端。 一次一密通信模块: 完成ATM客户端和服务器端的交互工作,确保信息在传输过程中的安全性。对于发送的信息进行加密,接收的信息进行解密。信息加密采用一次传输改变一次密钥,对于同一信息,在不同时候加密,其加密后密文也是不一样的,实现一次一密。 2 技术原理 2.1视觉控制部分总体原理 系统采用角膜反射原理。近红外光源发出的光在用户眼睛角膜上形成高亮度反射点(glints),利用瞳孔中心和光斑的相对位置关系确定视线方向。使用云台,摄像机能作二维扫描,保证用户眼睛始终在摄像机视场范围内。为克服可见光对人的干扰,系统采用近红外光源,用对近红外灵敏的低照度CCD摄像机和红外带通滤光镜(去可见光,通近红外光)获取图像,消除可见光对测量的影响,增加系统的抗干扰能力。 眼睛是一个特殊的光学系统,它对光线有特殊的反射和透射作用。使用850nm的红外线照射眼睛,由于虹膜对红外线的反射为0.9,而对普通光的反射为0.5,因此,人眼在红外光源照射下的特征为只有瞳孔的位置为黑色,虹膜部分是灰白色的。而且,人眼中的角膜、虹膜和瞳孔对红外线的吸收和反射都不同,因此,在眼睛红外图像中有非常丰富的信息。提取眼睛红外图像中的特征目标(瞳孔、光斑)是视线跟踪技术的基础和关键,特征目标的高精度定位对系统的分辨率及准确度至关重要。 在基于视频的非侵入视线跟踪系统中,要获得理想精度,面临的困难主要是眼睛图像的分辨率不够。在上述系统中,假设眼睛图像大小为120×75 pixels,眼球转动范围大约为70°,则瞳孔运动的区域约为60×60 pixels,在像素级精度下,视线跟踪最好的分辨率为70ο/60≈1.2ο。也可以通过下述方法,更为精确地计算视线估计方向精度。计算时,取眼球转动中心或其他相对固定的面部特征点(像眼角)作为参考点,CCD捕获的眼睛图像通过图像采集卡,送计算机进行图像处理,提取瞳孔、光斑信息,进行注视点计算。利用提取的注视位置等信息,进而对系统进行相应操作。 2.1.1通过面部特征粗定眼睛位置 采用离散对称变换来实现对眼睛位置的粗定位。离散对称变换,它不仅具有广义对称变换描述物体对称性大小的特点,而且通过对各点领域的考察,去除那些处于规则区域外的点,可大大降低计算量,实现眼睛定位的快速算法。广义对称变换把图像中的所有像素点同等对待,每个像素点都计算其对称值。事实上,在图像中物体的单一背景区域中,大面积的灰度均匀区域上的像素点在一定的尺度范围内不具有明显意义的对称性,所以就不必计算它的对称值,而这样的像素点在人脸图像中占了很大一部分,如头发、脸部除眼、嘴等特征区域之外的区域及部分身体区域。眼、嘴、鼻子等特征区域在大于其轮廓的范围内灰度有变化,这样的区域称为灰度不均匀区。离散对称变换以减少计算量为出发点,在计算对称之前加入一个对图像灰度不均匀区域的检测步骤以减少计算量,然后定义了一个与广义对称变化相似的对称算子来计算点对称。 离散对称变换实际上可看成一种非线性滤波[3],由于对每个像素点都进行相同的领域处理,适合于并行处理,在定位圆形物体圆心时,算子领域采用圆环。通过图像的离散对称变换后,眼睛中心点附近像素的对称值一般都处在对称值最大的前四、五位,对具有强对称值的候选点,采用两条简单的规则进行筛选。规则(1):邻近像素合并,一般选取对称值内最大的前10位候选点,将其中位置相邻的候选点合并到它们中对称值最大的像素处;规则(2):几何约束判别,对经过规则(1)筛选后的候选点,利用眼在脸部的几何分布性质进一步筛选,取基本符合眼睛分布规律的两点作为最终的定位双眼结果。 2.1.2估算瞳孔的中心和大小 精确确定瞳孔中心是非常关键的任务。在基于明、暗瞳孔原理[4]的系统中,瞳孔算法包括如下步骤: 1)明、暗瞳孔图像相减,得到差值图像; 2)对差值图像进行阈值分割; 3)粗定瞳孔的中心和大小(形心、半径); 4)置初始边界(画圆); 5)确定瞳孔边缘; 6)确定瞳孔位置(椭圆拟合)。 采用阈值技术,得到二值化图后,进行数学形态学操作(膨胀、腐蚀),经组合算法处理后,根据大小、形状进行滤波处理,得到瞳孔区域,对瞳孔区域扫描处理可计算出瞳孔中心。 2.1.3瞳孔像素级边缘点提取 边缘是指图像中灰度值迅速变化的像素点序列。在一幅图像中,边缘有方向和幅度两个持性。一般认为,沿边缘走向的灰度变化较为平缓,而垂直于边缘走向的灰度变化剧烈。边缘点检测通过运用边缘算子,算出图像中每一个像素的灰度梯度的大小和方向,然后采用取阈值等操作将边缘检测出来。使用经典算子提取边缘,常对整个图像操作,考虑到瞳孔边界只占图像很小部分,故这些方法效率不高。为加快算法执行的速度,依据第1步估算的瞳孔中心位置和瞳孔大小置初始边界(画圆),确定ROI(a region-of-interest),仅对ROI进行操作。改通常的二维扫描为一维搜索,在搜索方向上使用设计的一维边缘检测算子[-1-1 0 1 1]提取瞳孔像素级边缘点。依据已求出的相邻方向上的瞳孔边缘点到中心的距离,更新下一搜索方向上的搜索区域。 依据瞳孔边界点的灰度值、梯度值及瞳孔边界曲线的平滑特性,剔除虚假边界点,去除眼皮、眼睫毛及边界上光斑的干扰影响。 依据估算的瞳孔中心位置和瞳孔大小置初始边界(画圆),确定ROI(a region-of-interest),仅对ROI进行操作。改通常的二维扫描为一维搜索,在搜索方向上使用设计的一维边缘检测算子[-1-1 0 1 1]提取瞳孔像素级边缘点。依据已求出的相邻方向上的瞳孔边缘点到中心的距离,更新下一搜索方向上的搜索区域。 2.1.4瞳孔边缘点亚像素位置检测 根据眼睛红外图像中瞳孔像素级边缘点梯度方向上图像信息,确定亚像素[5]边界位置:对所求的像素级边缘点,通过沿其梯度方向搜索局部梯度极大值,得到亚像素边界点;对所有边缘点操作,得到最终的亚像素级边缘位置。 像素级边缘点(i,j),其小邻域如图2.7所示。 沿梯度方向上将直线穿过的相关点的梯度值变化拟合成一条曲线、通过令曲线导数为零的条件建立方程来确定亚像素边界点的位置。 设二次拟合曲线的形式为: y=ax2+bx+c 则极值点坐标: x=-b/2a 像素边缘检测 1)由像素级边缘点(i,j),确定其梯度方向及所处区域(方向1(1)、方向2(2)、方向3(3)、方向4(4))。 2)如图3.7所示,为方向1或(1)。由(i-1,j+1)点和(i,j+1)点的梯度值经线性插值得a点梯度值Ga(ya,xa);由(i,j-1)点和(i+1,j-1)点的梯度值经线性插值得b点 梯度值Gb(yb,xb)。其他方向处理方法类同。 3)由Ga(ya,xa),Gb(yb,xb)及(i,j)点梯度值在梯度方向进行二次曲线拟合,并寻找极值点,得到最终的亚像素边缘点位置。 2.1.5瞳孔亚像素中心定位 瞳孔经光学系统在CCD成像为平面椭圆,所以对提取的边缘点进行椭圆最小二乘拟合[6]链接成边界,即可确定瞳孔中心位置。椭圆方程取为:第四章亚像素边缘检测与中心定位x2+Axy+By2+Cx+Dy+E=0 椭圆拟合可求得椭圆方程的5个参数A、B、C、D和E,为了抑制图像噪声的影响,提高定位精度,可进行两次椭圆拟合。第一次拟合后,计算每个边缘点的残差,将残差较大的点去除掉(即剔除偏离拟合曲线上较远的点),再对剩余点进行第二次椭圆拟合。 2.1.6获取光斑坐标 光斑提取算法通常包括如下步骤: 步骤一:对眼睛图像取阈值进行分割,得到二值化图像; 步骤二:对二值化图像进行数学形态学操作; 步骤三:组合(八邻域扫描、label算法); 步骤四:计算光斑中心。 为提高算法速度,可依据光源位置,及前面图像提取的信息,来确定光斑搜索窗口的位置、大小。对搜索区域进行限制(位置限制、大小限制)。瞳孔中心提取的算法,大多可用来进行光斑中心的提取。但考虑到图像中光斑体积小、亮度大,采用等权重质心法[7] 可以较精确地算出五个光斑的坐标,为后续的映射打下基础。 2.1.7映射 首先进行特征提取。打开显示器上的四个近红外发光二极管,关闭CCD摄相机口上的一个近红外发光源。近红外光源发出的光在用户眼睛角膜上形成高亮度反射点(glints),利用瞳孔中心和光斑的相对位置关系确定视线方向。这被称为角膜反射[1]。 关闭显示器上的四个近红外发光二极管,打开CCD摄相机口上的一个近红外发光 源。为了得到更加准备的数据,对两张图片进行处理:一张是显示器上的四个光源打开,而CCD摄相机上的光源关闭;另一张是显示器上的四个光源关闭,而CCD摄相机上的光源打开。如果两张照片的间隔很小,那么两张照片的瞳孔区域强度差很大,而瞳孔区域外的部分很少。 然后用交比[8]的方法对眼睛注视点进行估算。 这样就可以求出人眼注视屏幕点X’的坐标,同理可以求得Y’的坐标。P’(X’,Y’)就是所求的屏幕注视点的坐标。 2.2人脸检测与识别模块原理 近年来出现了大量的人脸检测方法,其中PaulViola和Michael Jones于2001年 提出的Adaboost算法[14]是第一个实时的人脸检测算法,从根本上解决了检测的速度问题,同时具有较好的识别效果。OpenCV是Intel公司开发的数字图像处理和计算机视觉软件,可以应用于很多领域作为二次开发的工具。本系统中人脸检测与识别模块的实现利用了OpenCV中的Adaboost的人脸检测算法。 人脸检测与识别模块首先要捕获图像,对图像进行处理,提取人脸的图像,对人脸图像进行分析,进而提取人脸的特征。 人脸检测与识别模块主要分为人脸检测和人脸识别两大部分,都是根据人脸的haar特征[15]来进行检测和识别的。对于人脸检测部分,采用了OpenCV中开源的静态图像人脸检测方法的原理,进一步深化扩展到本系统所需的动态实时人脸检测。对于人脸识别部分,主要利用了特征人脸分析法[16]和PCA(Principal Component Analysis)[17]主成分分析法来实现。 2.3一次一密原理 此算法是基于公式XA mod P = B(公式1) 即使在A,P,B均确定的情况下,解X也会有很多的这样一个事实,而对传统的RSA加密算法的一种改进算法。剔除了RSA算法中的公钥,增强了原算法中密钥。使原来单一出现的密钥,成为了组合密钥,加强了保密性,也使密钥的选取更容易实现。最终做到一次传输变换一次密钥。本小组将其名命为随机素数表即时更新加密算法。 算法分析: ① 破译困难: 此算法加密的强度体现在随机大素数表的选取上。随机大素表中,素数越大,且个数越多,那么算法加密的强度越高。在密文中,体现出来的信息只有幂次A,素数表的下标P,以及结果B,还有隐藏了原文标记解的Temp。显然,随机选取的素数越大,那么对于破译工作来说,需要枚举的素数就越多,且对于每一个枚举的素数来说,需要枚举的可能解y也随之增多。如果大素数选取的是128bit,那么其需要枚举的时间复杂度也是2256(世界上最快的计算机也要运算上1.308*1054年),得到的可能解对(y,p)也有许多对,这样在有限的信息内,也就无法破译出其中正确的解对。 ② 密钥选取简单: 传统的RSA算法: 对于传统的RSA算法来说,随着计算机的运算速度越来越快,RSA所需要选择的密钥长度也越来越长,由于其无法做到一次一密,所以在信息传递过程中,大量的使用相同密钥加密的信息会给破译人员提供很多在破译工作中处理冲突的方法,这样就大大减轻了破译的工作量,也使算法更不安全。那么RSA的安全性在于不断的寻找两个非常大的素数作为私钥和公钥,通常为1024bit。而当今还没有任何一种算法可以使素数的选取变得简单易行。 随机素数表算法: 由于其使用的是一张私有的素数表,不涉及公钥,也就不用担心信息在传递过程中被截获后解密出来。又由于其对于每个信息的加密都是随即选取大素数,所以即使相同的信息在一个文章里面出现,加密后的信息也不尽相同,这样就使破译人员无法通过文章结构来判断原始信息的大致分布。也是基于上面一点,使密文提供给破译人员相同密钥的信息变得十分有限,也就使破译人员在破译密钥的过程中冲突处理的方法十分有限,增加的破译的困难性,也加强了信息传递过程中的安全性。一般来说,对于传统的RSA算法要选取1024bit的大素数作为密钥,对于此算法而言,只要选取128bit的16个大素数作为一张素数表来对信息加密,加密的强度就可以远远超过RSA的1024bit密钥加密。并且此算法还可以做到随时更新密钥,这样就是破译工作更为困难!
作品专业信息
设计、发明的目的和基本思路、创新点、技术关键和主要技术指标
- 目的:提高银行提款机的安全性 基本思路、创新点:克服现在的ATM取款机用手输入密码的不安全性,提出的全新的基于视觉跟踪的方法来克服手工操作带来的各种安全隐患,让用户可以通过自己的眼睛来代替现在的手工操作,反映操作者的意志,使得银行客户使用更安全,也更加方便,再通过人脸识别来时刻确定操作人的合法性,提升操作的安全性。 技术关键: ⑴瞳孔边界点的准确提取和人眼参数精度的把握 ⑵自然环境对实验的影响 ⑶人脸差异问题的解决 ⑷准确的空间坐标映射的解决 主要技术指标 ⑴视觉跟踪与视觉控制模块功能的实现 ⑵人脸检测与识别模块功能的实现 ⑶系统运行效率 ⑷ATM交互模块功能的实现 ⑸读卡模块功能的实现 ⑹通信模块功能的实现
科学性、先进性
- 本系统采用最优化的方法来解决。算法上,对每一个环节都采用了多种算法进行比较,综合分析,研究出最小时间复杂度的算法;实时性上,对CCD的监测速度和图像采集卡的预处理速度进行了折中,每秒获取并处理24帧图片,达到了很好的实时效果。 本系统利用角膜反射原理,实现了一种全新的用视觉跟踪的方法来实现眼控技术。用眼操作规避了手动操作会带来的种种安全隐患,使ATM安全性得到一个质的升华,而目前视觉技术在ATM取款系统中没有成熟的技术和产品。 人眼操作让ATM的操作过程有一个全新的方式,不用担心现在不法分子采用的录相偷窥得不法手段,再高超的偷窥也无济于事。 系统自适应性高。对于任何人,对不同的人,系统可以提取其眼球特征,对其特定的参数做处理,最终达到最佳的效果和最高的精度。 本系统成本低。硬件设备价格便宜,用到的材料都是生活中比较常用的,银行企业实施起来也比较容易,可以在现有的系统上加载本系统,也可以以比较低的成本换成全新的眼控ATM系统。
获奖情况及鉴定结果
- 2010年 哈尔滨工业大学全国信息安全大赛 二等奖 2011年 哈尔滨工程大学第十七届“五四杯” 一等奖
作品所处阶段
- 实验室阶段
技术转让方式
- 非专利转让
作品可展示的形式
- 模型、现场演示、录像
使用说明,技术特点和优势,适应范围,推广前景的技术性说明,市场分析,经济效益预测
- 一、系统以视觉控制技术和人脸识别技术为核心进行实现,对数据的加密处理实现一次一密。系统主要分为视觉控制模块、人脸识别模块、通信模块。 视觉主要用来实现输入密码和其他操作的选择,而人脸主要是用来时刻判断使用者的合法性,一但身份不符,则取消其操作。另外,操作过程中使用随机界面,提高密码的安全性,通信过程中实现一种RSA改进算法,实现一次通信即时改变一次密钥。 二、用视觉进行控制的ATM取款系统,省去了手工操作的同时,用人脸识别来确认身份,大大提升了ATM的安全性。近年来,随着图像处理技术和计算机技术的发展,视线跟踪技术无论是在技术上还是在实际应用上都取得了较大的进展,陆续出现了一些比较实用和精度较高的方法。对视线跟踪技术的研究主要是围绕如何精确地、对人无干扰地追踪人的视觉过程的技术来进行的。生物识别技术现在发展还不是很成熟,本系系统所采用的技术比较精良,设备价格便宜,有很高的市场推广价值。
同类课题研究水平概述
- 目前美国麻省理工大学对于视觉跟踪加密技术有着较成熟的研究,但其研究方向为犯罪信息和战争武器;其他一些国家在国内部分对于该技术有着广泛的理论研究,,但是没有大量的应用到实际,还有待与我们的进一步研发。