【精品论文】基于树莓派的人脸识别门禁系统.docx

上传人:李司机 文档编号:6803611 上传时间:2024-02-25 格式:DOCX 页数:47 大小:619.27KB
返回 下载 相关 举报
【精品论文】基于树莓派的人脸识别门禁系统.docx_第1页
第1页 / 共47页
【精品论文】基于树莓派的人脸识别门禁系统.docx_第2页
第2页 / 共47页
【精品论文】基于树莓派的人脸识别门禁系统.docx_第3页
第3页 / 共47页
【精品论文】基于树莓派的人脸识别门禁系统.docx_第4页
第4页 / 共47页
【精品论文】基于树莓派的人脸识别门禁系统.docx_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《【精品论文】基于树莓派的人脸识别门禁系统.docx》由会员分享,可在线阅读,更多相关《【精品论文】基于树莓派的人脸识别门禁系统.docx(47页珍藏版)》请在三一办公上搜索。

1、加以工至上冬本科毕业设计说明书(论文)(2020届)论文题目基于树莓派的人脸识别门禁系统作者姓名Xx指导教师XK学科(专业)计算机科学与技术所在学院计算机科学与技术学院提交日期2020年6月摘要在经济高速发展的新时代,人们的生活水平不断提高,温饱和住房问题得到了有效的解决,使得安防系统越来越受到人们的重视。其中门禁系统是安防系统的重要组成部分,从居民住宅、银行到国家机要部门,无不有它的身影。所以在门禁领域,身份的安全验证问题已成为许多厂商和开发者的重点研究方向。解决安防系统的身份安全认证问题主要有以下几种方式:指纹识别、虹膜识别以及人脸识别等。随着嵌入式设备的蓬勃发展,同时考虑到传统的基于PC

2、机的门禁系统的不足,本文设计并实现了一种基于树莓派的人脸识别门禁系统。本文的主要工作如下:1 .首先简要介绍了门禁系统的国内外研究现状以及代表性成果,然后对人脸识别基本流程、理论、算法进行了概述。2 .对门禁系统的总体结构进行了设计,选择了树莓派3B+开发板以及安卓作为基础硬件平台,实现了手机端与服务器端的通信功能,并对门禁系统运行环境及其他各个模块进行编程实现。3 .对图像进行了一系列的增强处理,同时为系统选择了合适的人脸识别算法以及图像加密算法,通过几种人脸识别算法的测试对比,最终采用OPeneV第三方模块提供的LBPH人脸识别算法作为系统的最终算法。关键词:门禁系统,人脸识别,树莓派3B

3、+,OpenCV,通信模块AbstractNowadays,people,slivingstandardscontinuetoimprove,housing,foodandclothingproblemshavebeeneffectivelysolved,andthesecuritysystemisgainingmoreandmoreattention.Theaccesscontrolsystemisanimportantpartofthesecuritysystem.Youcanseeitspresenceeverywhere,fromlivingquarters,bankstostates

4、ecretdepartments.Therefore,inthefieldofaccesscontrol,theissueofidentityverificationhasbecomeamajorresearchdirectionformanymanufacturersanddevelopers.Therearemainlythefollowingmethodstosolvetheidentityverificationproblemofthesecuritysystem:fingerprintrecognition,irisrecognitionandfacerecognition.With

5、thevigorousdevelopmentofembeddeddevices,takingintoaccounttheshortcomingsofthetraditionalPC-basedaccesscontrolsystem,thispaperdesignsandimplementsafacerecognitionaccesscontrolsystembasedonRaspberryPi3B+.Themainworkofthisarticleisasfollows:1. First,brieflyintroducethedomesticandforeignresearchstatusan

6、drepresentativeachievementsoftheaccesscontrolsystem,andthenoutlinethebasicprocess,theoryandalgorithmoffacerecognition.2. Designedtheoverallstructureoftheaccesscontrolsystem,selectedtheRaspberryPi3B+developmentboardandAndroidasthebasichardwareplatform,realizedthecommunicationmodulebetweenthemobilepho

7、neandtheserver,andrealizedtheoperatingenvironmentandothermodulesoftheaccesscontrolsystem.3. Aseriesofenhancementswereperformedontheimage.Atthesametime,asuitablefacerecognitionalgorithmandimageencryptionalgorithmwereselectedforthesystem.Throughthecomparisonofseveralfacerecognitionalgorithms,theLBPHfa

8、cerecognitionalgorithmprovidedbytheOpenCVthird-partymodulewasfinallyadopted.Keywords:Accesscontrolsystem,Facerecognition,RaspberryPi3B+,OpenCV,Communicationmodule目录摘要IIAbstractIII第一章绪论51.1 课题背景及研究意义51.2 国内外研究现状51.2.1 国外研究成果51.2.2 国内研究成果61.3 本文的主要工作61.4 本文的组织结构61.5 本章小结7第二章人脸识别算法研究72.1 人脸图像采集82.2 人脸图

9、像预处理92.2.1 几何归一化92.2.2 图像灰度化92.2.3 直方图均衡化92.2.4 中值滤波102.3 人脸检测算法研究102.3.1 基于特征的人脸检测112.3.2 基于模板匹配的人脸检测112.3.3 基于统计的人脸检测122.4 人脸识别算法研究122.4.1 基于几何特征的人脸识别方法132.4.2 基于子空间的人脸识别方法132.4.3 基于机器学习的人脸识别方法142.4.4 基于局部模式的人脸识别方法152.5 图像加密算法研窕152.5.1 基于矩阵变换的图像加密方法152.5.2 基于现代密码体制的图像加密方法162.5.3 基于混沌的图像加密方法162.6 本

10、章小结17第三章系统的设计173.1 系统的总体设计173.2 系统各个模块的设计与主要功能183.2.1 客户端模块183.2.2 服务器端模块193.3 本章小结20第四章系统的实现204.1 客户端的实现204.1.1 Android运行环境搭建214.1.2 客户端主程序流程224.1.3 通信模块的实现224.1.4 登录模块的实现244.1.5 预约模块的实现244.1.6 图像加密功能的实现244.2 服务器端的实现254.2.1 树莓派运行环境搭建254.2.2 服务器端主程序流程284.2.3 通信模块的实现284.2.4 人脸识别方案选择314.2.5 识别模块的实现错误!

11、未定义书签。4.3 本章小结33第五章系统的测试335.1 客户端测试345.1.1 登录功能测试345.1.2 预约功能测试355.2 服务器端测试375.2.1 识别功能测试375.3 本章小结38第六章总结396.1 完成的工作396.2 存在的问题及下一步工作39参考文献40致谢42附附附件件件12 3毕业设计文献综述43毕业设计开题报告43毕业设计外文翻译(中文译文与外文原文)43图目录图2-1含椒盐噪声的原图像10图22经过中值滤波处理后的图像10图2-3人脸特征11图24两层感知神经网络结构15图2-5基于现代密码体制的加密通信过程17图2-6基于混沌的加密通信过程17图3-1系

12、统总体设计18图3-2未加密图像20图3-3加密后图像20图4-1勾选Androidvirtualdevice选项22图4-2安装SDK工具22图率3客户端主程序流程图23图4-4包结构24图4-5请求发起和响应处理流程图24图46镜像写入成功对话框26图4-7安装Opencv-Python26图4-8安装Opencv-Contrib-Python26图4-9服务器端主程序流程图27图4-10服务器端请求处理流程图28图&IloRL人脸数据库29图4-12自建人脸数据29图4-13识别模块工作流程图31图5-1登录界面32图5-2主界面32图5-3用户名或密码错误32图5-4添加预约对话框33

13、图5-5日期选择33图5-6时间选择33图5-7完成预约信息的填写34图5-8添加预约成功34图5-9删除预约提示框35图5-10没有添加预约或者当前时间不在预约时间段以内时的识别结果36图5-11当前时间在预约时间段以内时的识别结果36表目录表4-1参与实验的人脸数据库及变量设置30表小2三种算法在ORL人脸数据库、自建数据库下的实验结果30第一章绪论1.1 课题背景及研究意义在经济高速发展的新时代,人们的生活水平不断提高,住房和温饱问题得到了有效的解决,使得安防系统越来越受到人们的重视。门禁系统是安防系统的重要组成部分,从居民住宅、银行到国家机要部门,无不有它的身影。随着生物识别技术的快速

14、发展,由于其具有便利性、难伪冒等优点,已经逐步取代机械锁、电磁锁等传统识别技术,成为人们关注的重点,越来越多地被应用在各个领域。其中,门禁系统与生物识别技术结合的创新就成为了人们研究的热点和重点。生物特征具有唯一性的特点,生物识别技术利用这些生物特征进行身份识别,具有难伪冒、安全性高等优点,是目前比较理想的身份识别依据。其中,指纹识别、虹膜识别和人脸识别是如今应用最多的生物识别技术。相比于指纹识别和虹膜识别,人脸识别具有非接触性、友好性等优点。指纹识别需要人们将手指按在传感器上,虹膜识别则需要人们离摄像头靠的很近,相对而言,人脸识别仅要求人们站在摄像头的视野之内即可。传统的人脸识别技术主要搭建

15、在PC平台上,得益于PC机强大的处理能力和丰富的扩展接口。但在小区门禁等人员访问量不大的地方,PC机长期空闲,反而导致资源的浪费。于是人们将目光投向蓬勃发展的嵌入式设备,在具备足够处理能力的同时,减少了资源浪费,降低了成本。因此,本文将采用基于ARM平台的树福派3B+设计开发一个人脸识别门禁系统。1.2 国内外研究现状1.2.1 国外研究成果美国的Visage公司开发的实时人脸识别系统FaceFinder,凭借其高速的识别速率,已经广泛应用于门禁系统和各种签证系统中;美国GeneX公司发布的多模态的FaCeGam3D产品,能够在2秒内实现身份的验证,将人脸识别产品带到一个新的高度;IBM采用I

16、dentiX公司推出的FaceIt系统进行身份认证,可以结合监控系统用于门禁控制;韩国的FirS公司研制的ViSionGate人脸识别系统,具备考勤、门禁等多种功能,识别率接近99.9%。1.2.2 国内研究成果中科院计算所和成都银晨网讯科技优先公司合作开发了人脸识别门禁、人脸识别考勤等系统,可以在1秒以内完成识别,识别率可达96%以上;上海银晨智能识别科技有限公司开发的人脸识别门禁系统,已成功应用于人民大会堂“十六大”会议代表身份认证,它可以在1秒以内完成识别,并且误识率小于0.01%。基于人脸识别的门禁系统虽然具有许多优势,但是技术上还存在许多问题。比如识别过程受环境影响较大,在不同光照、

17、不同姿势的情况下不能保持稳定的识别准确率。如何提高人脸识别准确率,降低环境对人脸检测和识别过程的影响依然是目前的主流研究方向。1.3 本文的主要工作本文基于树莓派3B+开发板,结合OPenCV第三方模块提供的LBPH人脸识别算法,实现了人脸识别门禁系统相关功能。其中客户端(手机端APP)与服务端的通信模块为系统的登录、预约等基本功能提供了简单一致的通信API,基于此进一步实现登录、预约与界面展示功能。而在服务端实现的人脸识别功能则属于系统的核心模块,包括人脸样本图像的采集、人脸样本图像的训练、摄像头实时检测人脸、摄像头实时识别等功能。通信双方均实现了图像加密的功能,为图像的传输提供了有效的安全

18、保障。1.4 本文的组织结构人脸识别门禁系统涉及到树莓派3B+平台开发,Android界面开发,客户端与服务器通信模块开发,人脸检测与识别等相关知识。首先在PC上安装UbUmU系统,利用摄像头采集图像,学习OPenCV的基本使用,实现简单的实时人脸识别。之后在UbUntU上开发服务器通信模块,并移植到开发板,配置好开发板上的OPenCV环境与摄像头V4L2驱动程序,综合各个部分程序,并进行调试。本文共七章,各章节内容安排如下:第1章主要介绍了人脸识别门禁系统的研究背景、研究意义以及国内外的研究现状,给出设计本系统的原因。第2章主要介绍了人脸识别门禁系统的整体设计,并对系统的各个模块进行简要的概

19、述。第3章主要介绍了如图像预处理、人脸检测、人脸识别、图像加密等算法理论,为系统提供充实的理论依据。第4章主要介绍了系统的实现,即系统开发技术、开发工具的选择,系统开发、运行环境的搭建,各个模块较为详细的工作流程,同时对比了几种不同的人脸识别和图像加密算法,从中选择了最适合系统的算法进行实现。第5章主要是进行系统测试,包括客户端和服务器端基本功能,如登录、预约、识别等功能。保证了系统的正常运行,发现系统可改进之处。第6章为本文的总结部分,提出了系统还存在的问题以及可以进一步改进的地方。1.5 本章小结本章主要介绍了本课题的研究背景及研究意义,接着阐述了人脸识别门禁系统的研究现状以及不足,最后对

20、本文的主要工作和组织结构进行了概括。第二章人脸识别算法研究人脸识别是一种重要且应用十分广泛的生物识别技术,通过使用计算机对人脸样本图像进行处理并获得人脸的有效生物特征,生成训练模型,之后通过对输入图像进行相同的处理得到其有效生物特征,并使用某种合适的算法与训练模型进行匹配比对,最终完成识别。人脸识别过程通常包含以下阶段:首先对待识别人员进行人脸图像采集;之后对采集到的图像进行一系列的图像预处理操作,包括几何归一化、图像灰度化、直方图均衡化等;接下来检测预处理后图像中的人脸,通过图像的裁剪算法得到仅包含人脸信息的图像;再然后对仅包含人脸信息的图像进行特征提取,训练并生成训练模板;最后比对目标图像

21、与训练模板的特征,完成人脸的识别和身份的确认。2.1 人脸图像采集在人脸图像的训练阶段,需要大量的人脸样本图像,这个阶段是保证人脸识别准确率的关键,因此人脸图像采集是人脸识别过程中最基础也是比较重要的环节。首先通过摄像头采集待识别人员的人脸图像,采集过程中,应该选择一个光照良好、背景干扰较小的环境,以达到更好的拍摄效果。得到待识别人员的人脸样本图像集以后,可以将其和其他团队或者机构提供人脸库(如ORL人脸数据库)进行整合,随后对整合后的人脸库进行训练并生成最终的人脸训练模型。2.2 人脸图像预处理由于不同拍摄环境下光照、角度的影响,采集到的人脸图像可能存在对比度不高、噪声干扰过多等问题,从而一

22、定程度上影响到人脸识别的准确率。因此,通常会对采集到的人脸图像进行以下几种预处理操作以提高人脸识别准确率:几何归一化、图像灰度化、直方图均衡化、中值滤波等。2.2.1 几何归一化由于拍摄过程中可能没有调整好角度和距离的原因,采集到的人脸图像可能存在大小不同、角度不同等问题,从而会对训练效果产生影响,为了统一人脸图像标准,需要对采集到的图像进行几何归一化操作,包括但不限于图像的平移、旋转、缩放等。2.2.2 图像灰度化通常摄像头获取的图像为彩色RGB图像,RGB图像属于三通道图像,每个像素都包含R,G,B三个分量值。在对图像进行人脸识别时,图像的梯度信息是最关键的信息,而对图像进行灰度化并不会减

23、少图像的梯度信息。相比之下,RGB图像在消耗更多资源的同时却不会比灰度图像提供更多有效的特征信息,因此,在处理中经常使用公式(21)将彩色图像转换为灰度图像,从而降低处理器的资源消耗,提升图像处理速度。Gray(i,j)=R(i,j)0.41+G(i,j)X0.5+B(iJ)X0.09(2-1)2.2.3 直方图均衡化由于拍摄过程中不同光照及阴影的影响,导致转换后的人脸图像存在部分区域灰度值过大或过小的问题,这时需要采用适当的方法对图像的整体灰度值进行调整。直方图均衡化基本原理是对原图进行处理,使得其直方图的灰度值分布近似于均匀分布,从而缓解图像局部区域灰度值过大或过小的问题,达到提高图像对比

24、度的目的。2.2.4 中值滤波经过直方图均衡化处理后的图像可能存在噪声干扰的问题,直接使用包含噪声的图像会使识别结果存在较大误差,为此通常采用滤波的方式消除噪声。中值滤波在消除图像噪声的同时,不会像低通滤波那样使得图像变得模糊,导致识别效果受到影响,因此中值滤波很适合用于处理人脸图像。中值滤波的基本原理是:对于图像中任一像素点的灰度值,用该点领域范围内各个像素点的中值代替,使用中值滤波处理后的图像和原图的对比如图2-1和2-2所示。图2-1含椒盐噪声的原图像图2-2经过中值滤波处理后的图像2.3 人脸检测算法研究人脸检测是人脸识别过程中不可或缺的环节,它采用合适的算法对图像或视频进行检测,判断

25、其中是否包含人脸,是则确定人脸的大小信息和位置信息。早在20世纪七十年代初,人们就开始研究人脸检测算法。目前主流的人脸检测算法大致可以分为以下几类:基于特征的方法、基于模板匹配的方法以及基于统计的方法。2.3.1 基于特征的人脸检测基于特征的人脸检测方法的基本思路是通过构建人脸特征向量来描述人脸,从而将人脸检测问题转变为特征向量的匹配问题。人脸特征有肤色特征、纹理特征、轮廓特征等(如图2-3所示),如何确定人脸的特征并选取其中的主要特征用于检测人脸是研究人脸检测方法的关键。根据特征类型和特征个数的不同,可以将人脸检测方法分为单特征分析方法和多特征分析方法。单特征分析方法采用单个特征(如颜色特征

26、等)组成的特征向量,以此来表示人脸特征;而多特征分析方法则是在单特征分析方法之上,采用多个特征对人脸进行描述,从而得到更2.3.2 基于模板匹配的人脸检测基于模板匹配的人脸检测方法的基本思路是通过事先构建好的人脸模板库,按照合适的算法和目标图像进行匹配计算,根据计算结果判断目标图像中是否包含人脸。基于模板匹配的人脸检测方法具体过程如下:首先得到多个描述人脸图像局部特征的子模板,由这些子模板构建得到标准的人脸模板库,之后使用不同大小的模板,以窗口的形式对目标图像进行匹配,并将结果与人脸模板库中的子模版进行相关性计算,得到相关系数,最后根据此相关系数判断目标图像中是否包含人脸。2.3.3 基于统计

27、的人脸检测基于统计的人脸检测方法的基本思路是利用机器学习和统计分析的方法收集大量人脸样本图像和非人脸样本图像,接着计算各自的统计特征,并使用这些特征构建出分类器。最后,使用分类器对图像进行人脸检测。常见的统计人脸检测算法有:人工神经网络法(ArtificialNeuralNetwork,ANN)、AdabOOSt方法、支持向量机法(SupportVectorMachines,SVM)等。(1)人工神经网络法:该方法的基本思路是通过采用人工神经网络的算法,将人脸特征中无法描述的显式特征,通过统计的方法进行计算。Rowley等人首次将ANN引入人脸检测领域,取得了令人满意的效果。(2)Adaboo

28、St方法:该方法通过级联的方式对目标图像进行检测,当我们随机地判断一个对象属不属于某一个类,可以有50%的正确率。当一个分类器的分类效果能够达到50%以上的正确率,就将该分类器称为弱分类器。将多个弱分类器级联,可以得到一个正确率更高的强分类器,同理将强分类器进行级联,可以进一步提升分类的正确率。Viola和Jones等人首次讲Adaboost算法引入人脸检测领域,取得了不错的效果。(3)支持向量机方法:该方法的基本思路是在人脸图像的所有特征空间中构建一个二分类器,从而将检测问题转变为对特征的分类问题。OSUna最早将SVM方法引入人脸检测领域,他通过一个大小为19*19的待测窗口来判断目标窗口

29、中中哪些属于“人脸”窗口,哪些属于“非人脸”窗口。2.4 人脸识别算法研究人脸识别阶段从待测图像中提取特征值,然后使用分类器将训练模型中的特征与待测图像的特征进行匹配计算,进而得到识别结果。常见的人脸识别算法有:基于几何特征的人脸识别方法、基于子空间的人脸识别方法和基于机器学习的人脸识别方法和基于局部模式的人脸识别方法等。2.4.1 基于几何特征的人脸识别方法通过几何特征进行人脸识别是人们早期使用的人脸识别算法。它的基本思想是利用眉毛、鼻子、嘴巴等具有代表性的部位,通过计算它们的几何位置关系、形状特点等参数得到描述人脸的特征,并使用该特征完成人脸识别。基于几何特征的人脸识别方法原理简单,计算复

30、杂度不高,但在实际应用过程中,容易受到光照、遮挡、表情变化等因素的影响,从而导致整体识别率不高。2.4.2 基于子空间的人脸识别方法基于子空间的人脸识别方法的基本思路是采用某种方法将原图像中的像素点映射到一个子空间中,从而完成对原图像的降维处理,大大降低了计算的复杂度,从而提高了人脸识别的速率。常见的基于统计特征的人脸识别方法有:主成分分析法(PrinCiPaIComponentsAnalysis,PCA)、独立分量分析方法(IndependentComponentAnalysis,ICA)以及线性鉴别分析方法(LatentDirichletAllocation,LDA)o(1)主成分分析方法

31、主成分分析方法简称PCA算法,它的基本思路是通过图像的协方差矩阵对图像进行压缩,从而完成对图像的降维处理。PCA算法利用K-L变换提取人脸图像中的主成分,并基于此构造出人脸特征空间。在进行人脸识别时,图像被投影到特征空间中并计算相关系数,最后根据此系数判别识别成功还是失败。PCA算法在人脸识别中取得了不错的效果,但它并不一定是最优的人脸特征描述,用它来描述人脸的特征是不够充分的。(2)独立分量分析方法独立份量分析方法简称ICA算法,人脸图像的许多重要的局部纹理信息保存在高阶统计信息中,而ICA算法可以分离其中的二阶和高阶统计信息,因此ICA算法经常被用于描述人脸图像中的高阶局部纹理信息。ICA

32、算法计算量较大,计算工作复杂,不适合应用于实时应用程序;并且目前还没有一个很好的方法对独立分量进行选取,通常都是凭经验而为。因此ICA算法很少被应用在人脸识别领域。(3)线性鉴别分析方法线性鉴别分析方法简称LDA算法,它的基本思路是寻找一个合适的Fisher函数,使用该函数将原特征空间投影到另一个特征空间,以达到寻找最优低维特征的目的。LDA算法在人脸识别领域存在图像向量维度过高的问题,这导致LDA的特征方程求解难度较大,因此它不如PCA算法使用广泛。2.4.3 基于机器学习的人脸识别方法基于机器学习的人脸识别方法的基本思路是通过机器学习算法从预先建立好的人脸数据库中学习得到用于分类和识别的人

33、脸特征信息,不同的算法有各自的人脸分布特征和相应的判别函数。一种常见的基于机器学习的人脸识别方法是:基于人工神经网络的方法(ArtificialNeuralNetwork,ANN)O(1)基于人工神经网络的人脸识别基于人工识别神经网络的基本思路是利用神经网络描述人脸图像中的细微特征信息。此方法的优势在于可以省去特征提取过程的工作量。Xl、y输入层融藏层输通层图2-4两层感知神经网络结构Kohonen首先将人工神经网络引入人脸识别领域,随后Cottrell和Fleming等人在他的基础上扩展得到一种非线性前馈神经网络。图2-4所展示的是一个经典的神经网络结构,它主要由两层网络构成,被称为两层感知

34、神经网络结构。由图2-4可见该结构的输入层存在m个节点X,隐藏层存在n个激励函数g,输出层存在k个激励函数y。其中输入向量X是人脸样本图像的特征空间向量,隐藏层可以选择高斯函数,输出层的类型则可以是线性的。2.4.4 基于局部模式的人脸识别方法基于局部二值模式(LBP)的人脸识别方法使用LBP特征描述人脸图像的局部纹理特征,LBP特征在不同光照、人脸表情变化以及遮挡下都具备健壮性,同时该特征还具有旋转不变性、灰度不变性等优点,因此很适合应用在人脸识别领域。不过最初的LBP算子性能不算优异,赵晓辉基于此提出了分块计算LBP特征的思想,一定程度上优化了LBP算法。LBP算法在描述人脸局部特征时,可

35、以取得不错的效果,但对人脸整体特征的描述能力不强,Ojala等人采用LBP直方图来使得LBP算法保留了一部分整体信息,一定程度上提升了识别效果。2.5 图像加密算法研究当图像在网络上进行传输时,图像本身的安全性是十分重要的,人们不希望自己的人脸图像信息被人轻易截取并赚取利益,因此对图像进行加密是必要的。常见的图像加密方法有:基于矩阵变换的图像加密方法、基于现代密码体制的图像加密方法以及基于混沌的图像加密方法等。2.5.1 基于矩阵变换的图像加密方法基于矩阵变换的图像加密方法通过对图像矩阵进行一定次数的初等矩阵变换,打乱图像像素点的排列位置,从而达到加密的效果。这种加密方法的加密算法是不能公开的

36、,因为它没有有效地分离加密算法本身和密钥,但算法本身简单有效,适合一些简单的图像加密场景。常见的方法有:基于Arnold变换的图像加密方法。AmoId变换如公式(2-2)所示:y=:abb+1Cl(modN)“S(2-2)当a=b=l时,AmOki变换如公式(2-3)所示:;=i?(modN)x,yS(2-3).yLJL乙LjArnOki变换可以看作是通过裁剪和拼接将离散化的数字图像矩阵S中的像素点重新排列,从而达到加密的目的。2.5.2 基于现代密码体制的图像加密方法基于现代密码体制的图像加密方法的基本思路是加密算法可以公开,保密性完全依赖于密钥的保密性,如图2-5所示。加密密钥和解密密钥可

37、以不同,它们相同时,加密算法被称为对称算法,否则被称为非对称算法。对于图像来说,这种加密方法就是把传输的图像看成明文,通过某种加密算法,如RSA,在密钥的干预下,实现图像的保密通信。加密密钥解密密钥图2-5基于现代密码体制的加密通信过程2.5.3 基于混沌的图像加密方法基于混沌的图像加密方法是近年来发展起来的一种加密方法。它将输入的图像看作是按照某种编码方式编码的二进制数据流,并利用混沌信号来对这个二进制数据流进行加密。该算法之所以适合应用于图像加密领域,与它自身的动力学特点密不可分。混沌加密的原理是在发送端将待传输的信号叠加一个或多个混沌信号,使得传输信道上的信号类似一种随机的噪声,进而达到

38、保密通信的目的。接收端在收到信号以后,通过去除叠加的混沌信号,进而恢复出真正传输的信号。基于混沌加密的保密通信过程如图2-6所示。混沌调制信号传输信道混沌发生器混沌同步器图2-6基于混沌的加密通信过程2.6 本章小结本章首先介绍了人脸识别的大致流程,接着简要介绍了人脸图像采集、图像预处理等工作,最后较为详细地介绍了人脸检测、人脸识别和图像加密的相关算法。第三章系统的设计3.1 系统的总体设计一个完整的系统由多个不同的模块组成,每个模块专注于自身的功能,并对其他模块暴露简单的接口,模块之间通过协作实现整个系统平稳地运作。模块化的好处是低耦合,模块之间不会有过多的依赖,修改一个模块不需要同时修改其

39、他模块以保证系统正常运行,使得系统具备高度的可扩展性和可维护性。本系统基于c/s(客户端/服务器)架构,客户端的模块主要有:通信模块、登录模块以及预约模块;服务器端的模块主要有:通信模块、基本功能模块以及识别模块。基本功能模块又分为:预约管理模块、登录管理模块、数据存储模块以及图像处理模块。下面将简要介绍各个模块的设计与主要功能。图3-1系统总体设计3.2 系统各个模块的设计与主要功能3.2.1 客户端模块本系统的客户端主要由以下几个模块组成:通信模块、登录模块、预约模块以及图像加密模块。(1)通信模块通信模块是整个系统的基础,它为客户端和服务端的交互提供了支持,隐藏了底层网络通信繁琐的细节,

40、使得其他模块能够专注于功能本身的实现。网络通信部分,可以选择的通信协议有很多,如TCP、HTTP等,本系统选择基于TCP实现通信模块,一方面TCP是可靠的通信协议,另一方面,比起HTrP面向文本的特点,TCP面向二进制数据流,因此开销更低。(2)登录模块登录模块的主要功能是提供一种身份认证机制,用户必须在登录系统后才能进行进一步的操作。登录模块提供了发送认证信息(如用户名、密码等)的API,并在收到服务器的成功响应后,在Session中添加已成功登录的用户信息(如用户ID),这些信息是其他模块发送请求时必须携带的,否则服务器将拒绝提供服务。(3)预约模块预约模块的主要功能是:用户可以预约一个时

41、间段去访问门禁,只有在通过了管理员的审核之后,用户在该时间段内的访问才会被服务器端的识别模块所允许。用户也可以在客户端的主界面上查看自己的预约详情,以及进行删除预约等操作。(4)图像加密功能预约模块在传输图像前,会对图像进行加密,以确保图像本身的安全性,防止被他人恶意截取。原始图像和加密后图像的对比效果如图3-2和3-3所示。图3-2未加密图像图3-3加密后图像3.2.2 服务器端模块本系统的服务器端主要由以下几个模块组成:通信模块、识别模块以及图像解密模块。(1)通信模块该模块的功能前面已经陈述过。服务器端通信模块和客户端通信模块的主要区别在于,客户端借此发起请求,而服务器端借此收到请求、处

42、理请求并且发送响应。(2)识别模块识别模块的主要功能包括人脸图像的采集、训练、检测以及识别,可以说是整个系统的核心模块。想要使用本系统的用户必要先进行人脸图像的采集,用户在进行预约并通过审核以后,在预约时间段内到摄像头视野内进行识别,摄像头画面中将显示该用户的真实姓名,表示识别成功,允许用户访问门禁;否则画面中将显示“Unknown”,表示识别失败,不允许用户访问门禁。(3)图像解密模块服务器端在收到图像后使用双方约定的解密算法对图像进行解密,以得到原始图像。3.3 本章小结本章的主要介绍了系统的总体设计、各模块的设计与主要功能。第四章系统的实现本章的主要内容分为两部分,第一部分是客户端的实现

43、,包括客户端开发环境的选择、搭建,主程序流程以及各个模块的功能实现;第二部分是服务器端的实现,包括服务器端开发环境的选择、搭建,人脸识别方案的选择、主程序流程以及各个模块的功能实现。4.1 客户端的实现客户端可以选择在手机端以及Pe端上实现,比起PC端,手机移动端无疑更加方便。而移动端有Android,iOS两大阵营,本系统选择Android作为客户端的开发环境。AndrOid以Java、SCaIa等JVM系编程语言为官方开发语言,此外还可以使用C+开发Android程序,一般基于Qt平台推出的QtForAndroid开发环境进行开发,但比起Java,开发环境搭建更加困难,兼容性也不尽人意,容

44、易产生难以解决的问题。因此,本系统选择使用JaVa开发AndrOid客户端程序。4.1.1 Android运行环境搭建(1)安装JDK在OraCIe官方网站下载并安装合适的JDK版本,之后配置好JAVA_HOME、JREJ40ME、PATH、CLASSPATH等环境变量。(2)安装AndroidStudio在AndroidStudio官方网站下载并安装AndroidStudio,在安装引导程序中选择AndroidVirtualDevice组件,如图4-1所示。图4-1勾选AndloidVirtualDevice选项(3)安装AndroidSDK在AndroidStudio自带的AndroidS

45、DKManager程序中选择安装必要的SDK工具,如图4-2所示。v 口. Android 8.1.0 (API 27)/,8, SDK PlatformEi Android TV Intel x86 Atom ffl Intel x86 Atom 64 System Im mi Intel x86 Atom System Image Google Play Intel x86 Atom S m Google APIs Intel x86 Atom S Sources for Android SDK3修 Installed7Not installed1厩 Installed1修 Install

46、ed3修 Installed9修 Installed1修 Installed27272727272727图4-2安装SDK工具4.1.2 客户端主程序流程客户端以一个登录界面作为主程序的入口,整个流程如图43所示。登录界面在Android中是一个Activity组件,在此Activity初始化的过程中,还调用了通信模块的功能,完成了与服务器端socket连接的建立,以便后续登录请求的发送。在完成登录后,用户便进入主界面(HOmeACtiVity),本界面的各个按钮的监听器通过通信模块发送各种不同类型的请求,完成添加预约、删除预约等基本功能。系统初始化图4-3客户端主程序流程图用户登录主操作界面

47、4.1.3 通信模块的实现本系统基于TCP实现了一个简单的二进制通信协议,该协议定义了包的具体结构以及包的解析等规范。包(PaCket)的结构如图4-4所示,其中,size代表包的长度(包括首部的长度),op代表此次请求的类型,body代表包的具体内容,内容统一使用JSON格式,JSON格式的好处在于不同编程语言都对其提供了支持,可以方便地在不同语言间进行数据交互。图4-4包结构通信模块提供了一个框架,其他模块基于此框架便能方便地扩展客户端的能力,来进行不同包的发送以及响应处理。整体框架如图4-5所示。发送请求的流程大致是:Worker委托PaCketBUiIder创建得到符合协议所要求格式的PaCke3并将此Packet放入Client的发送队列,委托Client发送该Packet,收到响应后,Worker将委托PaCketParSei解析响应内容,得到响应信

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号