论文部分内容阅读
随着互联网技术的发展,网络的安全问题也日渐突出。网站为了防止恶意破解密码、刷票、论坛灌水等不安全因素,验证码技术应运而生。验证码是一种区分用户是计算机和人的公共全自动程序,其目的是强制人机交互,现在已经被普遍用于提高网站的安全性和抗攻击的能力。验证码识别是应用图像处理、人工智能等技术让计算机自动识别出服务器端发送到浏览器端的验证码图像。虽然对验证码识别技术的研究有违互联网安全的原则,但是验证码的识别与生成技术是矛盾的两个方面,验证码识别技术迫使网络安全技术向前发展,而新的验证码生成技术又向图像处理和人工智能提出新的挑战。本文根据验证码图像的特点提出其除噪和分割算法,实现了用于验证码识别的弹性传播神经网络类并阐述怎样用它来完成验证码的识别工作,并提出使用支持OpenCL标准的GPU等具有并行计算能力的硬件来运行人工神经网络训练的程序,以减少其训练时间。本文的工作主要由以下三个方面组成:(1)选取具有不同特点的字符型验证码,介绍它们常用的图像灰度化和二值化方法,并根据实际需要对二值化处理做出改进,设计了它们的除边框、除点噪音和除长线噪音等除噪算法和分割算法,为有监督学习的人工神经网络的训练作前期的准备。(2)详述弹性传播神经网络(RPROP Artificial Neural Network)的训练算法,并根据验证码识别的需求设计相应的弹性传播神经网络类,以及阐述怎样使用所设计的弹性传播神经网络类来完成对验证码的识别,然后给出所实现的验证码识别软件并说明验证码识别的方法步骤。(3)由于有监督的学习的神经网络在进行训练时一项耗时的工作,且人工神经网络的训练算法中涉及很多向量和矩阵的运算,很适合具有并行计算能力的硬件来运行其训练程序,所以提出了使用运行在支持OpenCL的GPU上的OpenCL C语言实现人工神经网络的训练算法,以提高训练速度的新方法。对所选取的各类验证码,在第三、四章的小结处分别总结其图像处理和识别的效果,并分析其原因,以找出所做工作的不足之处,为进一步提高识别率和识别更难的验证码提供参考。