论文部分内容阅读
本文主要研究验证码识别的过程,为了防止出现恶意破解密码、论坛灌水、刷票、刷页等现象,创造了验证码。随着网络使用量的增大,验证码的数据量也变得异常庞大,这就使得验证码标签的制作需求量增大。以往验证码的标签一直都是人工标注,可想而知,速度并不是很快,而且成本也不低,这时就迫切需要利用计算机识别验证码的方法。验证码识别的一般分为定位、分割、识别三个步骤,在这三个步骤中定位是否准确对识别验证码起着非常重要的作用。在验证码图片中,字符的定位一般采用K近邻分类器、BP网络、SVM等传统方法进行识别定位,这些方法都是基于统计方法构建的算法,这些算法在识别难度较低的验证码图片时表现良好,但是遇到字符粘连情况时就显得底气不足,所以需要一个能够更加准确地定位的方法。本文采用了SSD(Single Shot MultiBox Detector)深度学习网络,这种网络是ECCV2016(European Conference onComputer Vision(欧洲计算机视觉国际会议))的一篇文章提出的物体检测网络模型,它在保证了训练速度的情况下,又保证了测试精度。确定了定位方法后,接下来就是数据的预处理,本文使用的数据来源于客户提供总共546,423张验证码图片,通过对图片标签信息的解读能够对图片数据进行整理和筛选,接着利用随机采样的方法初选30000张,然后再对图片进行筛选,整理得到20000张图片做数据集,同时对这个数据集做编号,将数据集按9:1分为训练集和测试集,即有18000张训练集和2000张测试集,最后就可用此数据集来做定位和识别训练的数据集。在实现定位和识别算法的实现,也就是SSD网络的训练实施和识别算法的实施,需要预先准备好数据集以及caffe的编译,开始训练后在训练过程中会出现一些小问题,这些都需要仔细去查看,最重要的是在网络文件中路径的正确与否,以及参数的设置是否正确等等,并且为了训练收敛速度更快需要去采用合适的策略。本文的创新点如下,以往都是人工识别,速度慢,成本也高,而本文使用计算机识别速度快,效率高,相应的成本也就低。人工打码的准确率不到85%,客户提出要求为85%,希望识别准确率能相比人工高些,利用本文中的方法准确率达到85.796%。定位、分割方法上以往都是用的诸如SVM的传统算法,本文用的是深度学习SSD网络,相比传统方法调参更加方便,准确率也更高。深度学习已经显著运用到各行各业中,未来世界将网络智能化方面发展,深度学习就是一个很好的实现人工智能的途径,所以在深度学习研究上需要更进一步的发展。