基于深度学习的验证码识别方法设计与实现分析研究电子信息工程专业.docx
《基于深度学习的验证码识别方法设计与实现分析研究电子信息工程专业.docx》由会员分享,可在线阅读,更多相关《基于深度学习的验证码识别方法设计与实现分析研究电子信息工程专业.docx(36页珍藏版)》请在课桌文档上搜索。
1、目录中文摘要-O-Abstract-1一第一章绪论-3-1.1 课题研究背景及意义-3-1.2 国内外研究现状-4-1.3 研究内容-5-1.4 论文结构-5-第二章深度学习的基本理论-7-2.1 神经元的数学模型-7-2.2 多层前向神经网络-8-2. 3深度神经网络-9-2.4神经网络的学习方式-10-第三章验证码图像处理技术-11-3. 1图像预处理-11-3. 2字符定位和分割-12-第四章卷积神经网络的设计与实现-15-4. 1网络结构-15-4. 2网络初始化-18-4.3误差反向传播-20-4.3.1全连接层的反向传播-21-4.3.2池化层的反向传播-22-4.3.3卷积层的反
2、向传播-23-第五章网络性能分析-24-5. 1参数的选择-24-5. 2识别结果-24-5.3 隐层神经元数量对网络性能的影响-25-5.4 学习率对网络性能的影响-27-第六章总结-29-6. 1工作总结-29-6.2不足与展望-29-参考文献-31-致谢错误!未定义书签。中文摘要验证码是一个系统区分人类与非人类行为的有效方式。验证码识别技术能够使计算机程序输入正确的验证码,伪装成人类用户进入目标系统。另一方面,系统方面需要考虑破解验证码识别技术,修补验证方式的可能漏洞,使之能够更有效地区分人类与计算机的行为。深度学习能够使计算机更好地处理复杂的输入,因此能够识别更为复杂的验证码。深度学习
3、是人工智能的一个重要分支,对于识别验证码图像,相对一些其他的学习算法,深度学习在同样的计算资源的条件下,具有更为优秀的性能,因此在处理同样的问题时深度学习能够节省一定的计算资源。本课题主要讨论了基于深度学习的验证码识别方法设计与实现。具体地,第一步采集验证码图像。这些验证码图像来源有两种:一是通过编程仿照常见的验证码图像生成数据集;二是从网站上下载验证码图像保存成数据集。第二步对验证码数据集进行去噪、定位等预处理,再使用垂直投影法进行分割,将分割出来的字符保存为学习样本。第三步构建卷积神经网络,使用采集的部分验证码图片对网络进行训练,调整参数。最后一步使用剩余的验证码图像对训练好的网络测试,整
4、理测试结果,统计正确率,分析不同参数对神经网络性能的影响。经过测试,本论文设计的卷积神经网络基本能够成功地识别验证码图像,对仅包含数字的验证码图像识别效果较好,正确率达99.28%0关键词:深度学习,卷积神经网络,验证码识别,图像处理AbstractTheverificationcodeisaneffectivewaytodistinguishhumanornon-humanbehavior.Theverificationcoderecognitiontechnologyenablesthecomputerprogramtoinputthecorrectverificationcode,dis
5、guisedasahumanusertoenterthetargetsystem.Ontheotherhand,thesystemneedstoconsidercrackingtheverificationcoderecognitiontechnology,repairthepossibleholesintheverificationmethods,sothatitcanmoreeffectivelydistinguishthebehaviorofhumanandcomputer.Deeplearningenablescomputerstoprocesscomplexinputsbetter,
6、andthereforetorecognizemorecomplexverificationcodes.Itisanimportantbranchofartificialintelligence.Fortherecognitionofverificationcodeimages,comparedwithsomeotherlearningalgorithms,deeplearninginthesameconditionofcomputingresources,hasbetterperformance.Therefore,deeplearningcansavecertaincomputingres
7、ourceswhendealingwiththesameproblemsthanothergeneralalgorithms.Thispapermainlydiscussesthedesignandimplementationofverificationcoderecognitionmethodbasedondeeplearning.Specifically,thefirststepistocapturetheimagesoftheverificationcode.TherearetwosourcesoftheseCAPTC-codeimages:oneistogeneratebyprogra
8、mmingtoemulatecommonCAPTC-codeimages;theotheristodownloadtheCAPTC-codeimagesfromwebsitesandsavethemintodatasets.Thesecondstepistopre-processthedatasetofverificationcodesuchasde-noising,locating,andthenusingverticalprojectionmethodtosegmentthecharactersandsavethecharactersastrainingsamples.Thethirdst
9、epistoconstructtheconvolutionalneuralnetworkandtotrainthenetworkusingsomepicturesoftheCAPTCAtoadjusttheparameters.Thelaststepistousetherestoftheverificationcodeimagestotestthenetwork.Andthencollatethetestresults,countthecorrectrateandanalyztheeffectofdifferentparametersontheperformanceofneuralnetwor
10、k.Aftertesting,theconvolutionalneuralnetworkdesignedinthispapercanrecognizetheimageofverificationcodesuccessfully,anditisbettertorecognizetheimagewhichonlycontainnumbers,thecorrectrateis99.28%.Keywords:DeepLearning,ConvolutionalNeuralNetwork,VerificationCodeIdentification,ImageProcessing第一章绪论人工智能指的是
11、模仿生物神经学,构建神经元的数学模型,使其能对复杂的信息进行处理。自从西班牙解剖学家CajaI在19世纪末创立神经元学说之后,神经元的一些生物学特征和相关的部分电学性质相继被发现。1943年,神经元的M-P模型被首次提出,创建该模型的是来自美国的心理学家MCCUnoCh以及另一位数学家Pitts。来自加拿大的神经心理学家Hebb在1949年提出了“Hebb法则”,他认为学习现象的发生在于神经元突触的产生和变化。来自美国的心理学家Rosenblatt结合了以上三人的理论,首次用精确的数学算法来定义神经网络,提出了“感知机”模型。神经网络的基础就是感知机。一般的神经网络也叫多层感知机,分为输入层、
12、隐藏层和输出层,而具有多个隐藏层的神经网络就是深度神经网络。深度学习就是运用深度神经网络,模仿人脑对声音、图像等数据进行解释的过程,能够很好地将复杂多变的输入映射为具体输出,具有从少量样本中学习集中特征的能力。1.1 课题研究背景及意义深度学习的应用领域有很多,其中之一就是验证码识别。验证码是一个系统区分人类与非人类的有效方式。验证码识别技术能够使计算机程序输入正确的验证码,伪装成人类用户进入目标系统。另一方面,系统方面需要先了解然后破解验证码识别技术,修补自身验证码的可能漏洞,使之能够更有效地区分人类与计算机的行为。随着互联网技术的发展,人们在使用互联网的同时越来越注重验证码的有效保护,希望
13、网络的能够做到人类能识别而拦截所有机器程序的程度。当遇到黑客对网站发起攻击的时候,验证码就是网站安全的第一道防线【2】,27】,因此针对验证码识别的研究的实践意义不容小觑。我们可以通过研究验证码的识别技术,从根本上了解验证码的识别细节,从而做出针对性措施,加强验证码的保护能力,使验证码能够继续实现本身的价值。深度学习的初衷就是为了让计算机在处理某些问题时,能够拥有近似于人类的处理能力,这与验证码存在的意义是相对立的。验证码不希望机器能够像人类一样识别图像中的字符,而深度学习则努力使计算机能够尽可能地接近甚至超越人类。这一点一般的机器学习手段也能够实现,但是深度学习的优势在于能够将目标的特征逐级
14、提取,比如我们学习汉字,先从基本的横、竖、撒、捺开始,最后将这些基本的特征进行组合,形成目标的完整特征,据此能够进行学习将目标分类或者预测。1.2 国内外研究现状早在1986年,RumelharHinton等人就初步将反向传播算法(BP,BackPropagation)应用于神经网络的学习之中川,使神经网络的学习过程变得简单可行。但是,第一因为训练数据集规模太小,第二由于计算资源有限,即使训练一个比较简单的网络都可能需要非常长的时间。与其它的机器学习模型相比较,当时的BP网络模型在正确率上并没有明显优势,更多的学者普遍青睐其他的浅层的机器学习模型,比如支持向量机模型、BoOSting模型等。直
15、到1989年,LeCun根据误差的反向传播算法,成功地将神经网络应用于识别美国邮政服务提供的手写邮政编码数字。根据这一成果,并结合FUkiShima在1980年提出的关于卷积(COnVOlUtiOn)、池化(Pooling)的概念(当时还不称为卷积和池化),1998年LeCUn提出了LeNet-5网络模型叫LeNet-5具有多层神经元,使用合适的梯度学习方法和反向传播算法,能够对图像进行特征的逐级提取,在针对手写字母的识别中取得了非常好的效果,是深度学习史上第一个可称为完善的卷积神经网络(CNN,ConvolutionalNeuralNetworks)。至此,人们对卷积神经网络的研究步入了第一
16、次高潮时期。但是在之后近十年的时间里,有关卷积神经网络的研究渐渐陷入泥沼,其中的主要原因分为两点:第一是当时的人们发现深度神经网络在根据BP算法进行训练时所需的计算资源非常多,仅仅凭借当时的硬件方面的研究水平几乎不可能实现那种大规模的计算;第二是包括支持向量机(SVM,SupportVectorMachine)在内的许多浅层机器学习算法也渐渐开始崭露头角,人们投入到卷积神经网络中的研究热情和精力渐渐稀少。一直到2006年Hinton指出“多隐层神经网络具有更为优异的特征学习能力,并且其在训练上的复杂度可以通过逐层初始化来有效缓解”卬叫有关深度学习和卷积神经网络的研究才再度为人们所关注,深度学习
17、的研究再一次涌起热潮。2012年,Hinton的学生Alex等人在ImageNet竞赛上提出了AIexNet1241o这是在LeNet-5诞生之后深度学习的又一大进步。AleXNet较LeNet-5有许多新的思想,包括但不局限于数据增强、局部归一化、激活函数采用ReLU、DrOPc)Ut方法等。,以2叫在ImageNet竞赛中以高出第二名近10%正确率的优异性能奠定了CNN在深度学习中的重要地位2叫继AIeX之后,关于CNN的研究迭出不穷,成果丰硕,其中较为经典的模型之一是2014年香港中文大学教授汤晓鸥、王晓刚及其研究团队提出的DeepID深度学习模型,在LFW(LabeledFaCeSin
18、theWiId)数据库上获得了99.15%的识别率,这个结果超过了人眼的识别效果(实验表明,如果仅仅给出人脸中心区域,人的肉眼在LFW上的识别率为97.53%)【网。汤晓鸥及其团队于2014年连续发表了文三篇文献,对深度学习进行了系统阐述的同时,尝试从理论上解释CNN模型强大的特征提取能力,这也是人们首次试图去研究CNN的本质属性,标志着对CNN的研究步入新的时代7.8.9JO1.3 研究内容本课题主要讨论基于深度学习的验证码识别方法设计与实现,在深度学习的理论基础上,设计了一个卷积神经网络,对几种常见的验证码图像进行识别,通过调整神经网络的参数来分析讨论不同的识别结果。这些验证码图像部分来自
19、计算机生成与网站上类似的验证码,部分来自人工在网站上的采集。在图像识别之前首先对验证码样本进行二值化和去噪处理,并采用垂直投影法进行图像字符的分割,将分割之后的字符按顺序保存,作为卷积神经网络的输入数据。从所有验证码样本中选取部分作为网络的学习样本,对网络进行训练,部分作为测试样本,用于检测训练后的网络的性能。最后通过调整网络的参数,分析了总结部分参数对网络性能的影响。1.4 论文结构本论文第一章是绪论,详述了深度学习的研究背景、验证码识别的研究意义和国内外的深度学习的发展现状,介绍了主要的工作情况和论文的结构。第二章介绍了深度学习的一些基本理论内容,从神经元的M-P模型,到通用的神经网络模型
20、,再到深度神经网络的一般模型,都做了具体的介绍。第三章介绍了本课题所用到的图像处理技术,包括图像去噪、目标定位与图像分割,图像预处理是保障网络识别率的重要前提之一。第四章是关于如何用Matlab语言构建深度神经网络的内容。涉及到采用的卷积神经网络的基本结构、数据的前向传播、误差的反向传播、网络的权值参数更新等内容。第五章描述了运用第四章构建的网络进行训练学习之后,对实验结果的分析讨论。通过观察实验结果,分析并修改可能对其产生影响的参数,尝试进一步优化网络。第六章是总结和展望。第二章深度学习的基本理论人工神经网络是计算机对生物神经网络的一种模拟和近似,由大量的人工神经元(感知器)通过相互连接,构
21、成自适应的非线性动态网络。神经网络的每一层都由大量的神经元节点组成,节点之间通过权值参数连接,成功训练好的神经网络能够独立处理复杂的非线性问题,而神经网络学习的本质就是权值和偏置量的自适应调整。2.1 神经元的数学模型依据人体神经元的生物结构,来自美国的心理学家McCulloch和另一位数学家PittS于1943年提出了神经单元的数学模型:图2-1神经元的M-P模型根据图2-1可以得到神经元的输出为:ny=f(iwi+b)(2.DZ=I其中,内、马Z是输入的个数据量,吗、叼吗是神经元的连接量,力是偏置量,y为神经元的输出。/是激活函数,它的作用是加入非线性因素,在一定程度上能够用来解决线性模型
22、表达、分类能力不足的问题133。使用较为广泛的激活函数有sigmoid函数:(2.2)1V=l+e-xtanh函数: 八一2x1-ey = 271 + e(2.3)relu函数:y二x,xO0,x0(2.4)以及softmax函数:ne7=1(2.5)这里匕表示输入向量X=,x2,.j中的第i个数据,输出号代表看的指数占所有输入数据的指数的和的概率。2.2 多层前向神经网络神经网络是大量神经元组成的网络,处于不同层的神经元作用不同,它们彼此合作,组成了能够对复杂的输入数据进行解释的网络。典型的前向神经网络结构如图22所示mi。根据图2-2容易得到输入输出关系为(2.6)H=f(XWl+B1)Y
23、=fHWir+B1)其中,=,2,.%y是输入向量,8=%鼠是输入层与隐藏层的全连接权值矩阵,H=(/.,2,.a)是隐藏层向下的输出值,W2=丐.是隐藏层与输出层之间的全连接权值矩阵,4=(4也,.也)丁为隐藏层神经元H对应的偏置向量,&=鱼也,.出y是输出层神经元y对应的偏置向量,y=(y,%,y)7是网络最终的输出向量。网络的输出矢量y一般不是最终的结果,比如用作分类的网络,输出层采用的激活函数一般是SOftmaX函数,y矢量中的每一个分量K的值就代表了网络“认为”输入属于第,类的概率。通常需要加一个判断函数得到网络的分类结果:i=argmaxy网络将概率最大的类别作为分类的结果。2.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 深度 学习 验证 识别 方法 设计 实现 分析研究 电子信息工程 专业

链接地址:https://www.desk33.com/p-1226499.html