(1)研究和学习相关的图像处理技术和软件,如计算机视觉库OpenCV、OCR软件FineReader等。
(2)研究和实现针对一种3D文本验证码的字符提取算法。编写程序实现验证码字符的提取、后期处理和识别功能。
(3)用实验检验算法结果并进行优化。文献综述
1。4 本文结构安排
本文主要分为5章,具体安排如下:
第1章是引言。主要阐述本毕业设计课题的研究背景、研究意义和验证码破解技术的国内外研究现状,并介绍本课题的主要工作和本文的结构安排。
第2章是课题的总体知识介绍和思路阐述。主要介绍了三维验证码的特点,并根据此提出破解其的方法和流程,并在本章介绍本课题所主要应用的计算机视觉库OpenCV。
第3章是具体阐述三维验证法破解的步骤和算法。三维验证码的破解主要分为字符边界提取、字符背景去除、字符提取、字符后期处理和字符识别五大步骤。
第4章是算法实验的验证、统计和评价。采集验证码样本,测试验证码的破解成功率,根据结果对该实验进行评价。
第5章是对本次毕业设计的总结和展望。分析本次研究的成果和不足,发掘可以进一步研究改进的内容,并阐述本人在研究过程中的感悟和收获。
2 三维验证码破解算法及实现
三维验证码(3D CAPTCHA)相当于将传统二维文本进行了三维抽象渲染,而形成字符的三维模型。而这样的转变使得针对传统二维文本验证码的破解方法对其不再有效。想要顺利破解三维验证码,我们就要先了解它与二维验证码到底有什么不同,也即它具有怎样的特点。了解了它的特点,我们就能根据特点设计提取字符的方法。
本章将简要介绍本次课题运用到的主要工具OpenCV,剖析三维文本验证码样本的特征,提出破解方法并实现具体流程。
本课题破解的三维验证码样本来源于网络,如图2。1,本文也将以该样本为例进行破解。
图2。1 本文实验三维验证码样本
2。1 OpenCV简介
OpenCV是一个开放源代码的计算机视觉库,全称为Open Source Computer Vision Library。它最初由英特尔公司发起并开发,以BSD许可证授权发行,在商业和研究领域中都可以免费使用,现在由美国Willow Garage提供主要支持。OpenCV在工商业及科研领域有着广泛的应用,被用于开发图像处理、模式识别以及计算机视觉等方面的程序。
OpenCV诞生于Intel,采用C/C++语言编写,可以运行在Windows/Linux/Mac等系统上,并有Python、Ruby、MATLAB等其他语言的接口。OpenCV的目标是构建一个简单易用的计算机视觉框架,以帮助开发人员便捷地设计各种计算机视觉相关应用程序,它含有500多个函数,覆盖如工厂产品检测、医学成像、机器人等许多计算机视觉的应用领域。
OpenCV所有的开放源代码协议允许用户使用其全部代码或者部分代码生产商业产品而不必开放自己的代码。这种协议促进了计算机视觉技术的迅速传播,让更多的人从OpenCV受益。在这种协议下,企业可以利用OpenCV进行产品研发,而不需要担心版权问题,科研工作者者也可以使用OpenCV帮助课题研究。本文也使用OpenCV来实现三维验证码的破解算法。
2。2 三维验证码特点
通过观察大量样本,我们发现本文研究的这种三维验证码有如下的特点:
(1)该验证码图像由自左上至右下的斜线构成,并对斜线进行扰动而形成三维字母和数字。
(2)在没有被扰动的地方,斜线的斜率几乎一致。
(3)从图像的左下至右上,图像呈一种由近及远的透视关系,主要由斜线之间的间隙进行改变。