基于CNN的验证码识别的设计与实现文献综述
2020-04-14 21:39:24
1.目的及意义
1.1研究目的及意义
近年来,随着互联网的飞速发展,网络已经成为了人们获取、发布信息的最主要途径,而伴随而来的问题是网络带来的信息安全隐患,针对短时间机器批量操作等恶意网络攻击行为,验证码的识别得以被广泛应用。验证码识别是一种用于识别用户行为是人类行为或机器行为的测试方法,在抵制恶意机器人程序,防止论坛、博客中的垃圾评论,过滤垃圾邮件,保证在线投票真实性以及防止恶意批量注册网站[1]等方面做出了卓越贡献。
验证码识别技术的研究有益于验证当下各大网络平台使用的验证码的安全性,并能对验证码的复杂度、实用度等方面的改进做出一定贡献。此外,验证码识别结合了图像处理、模式识别等多个领域的研究内容,验证码识别的研究,对促进这些领域的技术研究都具有重要意义。
深度学习是新兴的机器学习研究领域,旨在研究如何从数据中自动地提取多层特征表示,其核心思想是通过数据驱动的方式,采用一系列的非线性变换,从原始数据中提取由低层到高层、由具体到抽象、由一般到特定语义的特征[2]。深度学习改变了传统的机器学习方法,迄今已在语音识别、图像理解、自然语言处理、视频推荐等应用领域引发了突破性的变革。
20 世纪 90 年代晚期,信息化程度相对较低,用于训练的数据量相对较小,深层模型的训练存在严重的梯度消失或梯度爆炸问题。直到 2006 年,Hinton 等人提出一种无监督的学习方法,主要采用逐层预训练的方式成功训练了深度网络,重新推动神经网络研究。随后提出各种深度神经网络模型,而最早且影响深远的是深度卷积神经网络(CNN)[3]。与每层具有相当大小的全连接网络相比,CNN能够有效降低网络模型的学习复杂度,具有更少的网络连接数和权值参数,从而更容易训练[4]。CNN具有局部连接、权值共享及多层次的网络结构等特性,能有效地提取图像中的特征信息,促进计算机视觉领域研究技术的发展。
虽然深度学习在自然语言处理、图像识别等领域已取得了比较理想的成果,但深度卷积神经网络在验证码识别方面的研究与应用依旧略显匮乏。在计算机视觉领域,传统的验证码识别技术被分为预处理(去噪等)、定位、分割(字符分割),字符识别等模块。各模块独立存在,这样意味着一旦某个模块出现错误,将导致整个验证码识别系统的识别率降低,而深度神经网络有很多网络层,不同层可以学习到不同等级的特征,整个网络统一训练来完成该系统最终的验证码识别这一目标,不同的神经网络有其独特的使用目的[5],从而简化验证码的识别过程。
本文拟基于谷歌公司的开源深度学习平台TensorFlow研究卷积神经网络,对CNN在验证码识别技术的应用方面做出一定的学习和研究,并在此平台基础之上实现具有较高正确率的验证码识别系统。
1.2国内外研究现状