基于Tensorflow的验证码生成与识别算法研究及实现开题报告

 2020-02-18 06:02

1. 研究目的与意义(文献综述)

1.1 研究目的及意义

随着互联网的高速发展,网络在给人们的生活带来极大便利的同时,其安全问题也日益突出。验证码(captcha) 最早作为卡内基梅隆大学的一个科研项目,yahoo! 是captcha的第一个用户。captcha是“completely automated public turing test to tell computers and humans apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是人类还是计算机的公共自动程序。在一个验证码测试中,由计算机生成一个问题并评判用户的答案,这个问题必须只有人类才能解答。由于计算机无法解答,回答出该问题的用户就会被认为是人类。captcha在网络上的大规模使用起源于1999-2000年yahoo 网站的账号注册。目前大部分网站都引入了验证码机制来加强网络的安全验证。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

2. 研究的基本内容与方案

本课题拟设计一个Tensorflow平台下先用python进行验证码生成,生成的验证码由四位数字构成,无需包含大写字母或小写字母,再用Tensorflow来实现一个基于CNN卷积神经网络模型以进行数字验证码的识别。

整个项目包含四部分,验证码生成,tfrecord文件生成,数据集训练,验证码的识别测试。在验证码生成的项目中,使用python编程语言分别编写验证码生成器的代码、生成treford文件的代码;验证码的识别与测试环节,在本课题中,要求用Tensorflow平台实现一个基于CNN卷积神经网络模型的验证码识别功能。

网络上提供的大量验证码识别图基本上都是经过干扰信息处理过的彩色图片,这里主要研究的是对该类数字型验证码的识别,其主要识别过程如图1。



图1 数字型验证码识别流程图

使用深度学习 训练数据 大量计算力,可以在几天内训练一个可以破解验证码的模型,前提是获得大量训练数据。但是,由纯数字组成的验证码在训练中使用的数据量相对减少,则训练中迭代次数也会有相应减少,在保证训练精度的前提下缩短所需的训练时间。

计算机视觉长久以来没有大的突破,卷积神经网络的出现,给这一领域带来了突破。作为深度神经网络的一种, 卷积神经网络(Convolutionional Neural Networks, CNN)在图像识别领域内表现出优异的性能, 大大优于传统的机器学习方法. 较传统方法而言, CNN的主要优势在于卷积层提取的图像特征具有很强的表达能力, 避免了传统识别技术存在的数据预处理、人工设计特征等问题. 在具备足够的标注样本的情况下, 只需要定义一个合适的网络模型, 就能够取得远高于传统方法所取得的识别效果。

一组验证码的图片,图片大小为60*160,验证码由4个数字组成,数字的范围为0到9,并且每个验证码图片上都加上了干扰背景,穷举每张图片的可能性几乎不可能,所以传统的程序思路不可能解这个问题,那么必须让计算机通过自我学习,获取识别验证码的能力。先让计算机看大量的验证码的图片,并告诉计算机这些图片的结果,让计算机自我学习,慢慢地计算机就会学习如何识别验证码。

在介绍卷积神经网络的具体原理之前,先要了解机器是如何识别图片的。

在白纸上画一只大熊猫,只需要一种颜色的画笔——黑色,即,只要在白纸上将大熊猫需要画成黑色的地方涂成黑色,一个大熊猫的图像就可以展现出来,画大熊猫的方式,和十字绣很接近——在给定的格子里,绣上不同的颜色,最后就可以展现出一幅特定的“图片”。机器识图的方式正好和绣十字绣的方式相反,现在有了一幅图片,机器通过识别图片中每个格子(像素点)上的颜色,将每个格子里的颜色用数字类型存储,得到一张很大的数字矩阵,图片信息也就存储在这张数字矩阵中。

图2 数字矩阵

上图中每一个格子代表一个像素点,像素点里的数字代表颜色码,颜色码范围是[0,255],(各式各样的颜色都是由红、绿、蓝三色组成,每个颜色都是0~255之间数字),在得到的一张大数字矩阵的基础上开展卷积神经网络识别工作。

机器识图的过程:机器识别图像并不是一下子将一个复杂的图片完整识别出来,而是将一个完整的图片分割成许多个小部分,把每个小部分里具有的特征提取出来(也就是识别每个小部分),再将这些小部分具有的特征汇总到一起,就可以完成机器识别图像的过程。

使用卷积神经网络进行验证码识别的具体思路如下:
1、特征
每个数字的形状各异,各自特征明显,这里的特征实际上指的是线条的走向、弯曲程度等等形状上的不同表征,那么对于侦测图形上的形状,卷积神经网络加上Relu和Max采样,可以很精确的做到这一点,本质原因在于,把卷积核拉直了看,本质上所做的事情就算向量的点积运算,求一个向量在另一个向量上的投影。
2、网络结构设计
对于每张图片而言,有5个数字作为输出结果,那么得设计一个有5个output的深度神经网络,首先用多个卷积核 Max采样层的结构来抽取明显特征,最后获得的特征经过两个全连接层逼近,这里加全连接层有两个目的,第一:经过sigmoid函数把值压缩到0到1之间,便于softmax计算,第二,加上全连接层可以更加抽象特征,让函数的逼近更加容易。
3、张量表示
对于Label的表示用one-hot来表示,这样可以很好的配合softmax。对于图片上的像素点,值域在0到255之间,图片如果是彩色,那么实际上会有三个通道,这里都是黑白色,所以,只有一个通道,取图片上真实像素点的值,除以255进行归一化即可。用CNN卷积神经网络识别图片的主要流程框图如图3:

图3 CNN卷积神经网络识别流程框图

1、卷积层工作原理

卷积层的作用:就是提取图片每个小部分里具有的特征

2、池化层工作原理

池化层的输入就是卷积层输出的原数据与相应的卷积核相乘后的输出矩阵

3、全连接层工作原理

卷积层和池化层的工作就是提取特征,并减少原始图像带来的参数。然而,为了生成最终的输出,我们需要应用全连接层来生成一个等于我们需要的类的数量的分类器。

全连接层的工作原理和之前的神经网络学习很类似,我们需要把池化层输出的张量重新切割成一些向量,乘上权重矩阵,加上偏置值,然后对其使用ReLU激活函数,用梯度下降法优化参数既可。










3. 研究计划与安排

(1)第1-4周:查阅相关文献资料,明确研究内容,了解研究所需理论基础。确定方案,完成开题报告。

(2)第5-6周:熟悉掌握基本理论,完成英文资料的翻译,熟悉相关工具软件的使用。

(3)第7-9周: 利用python进行四位数字验证码的生成。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

4. 参考文献(12篇以上)

[1] kaushal h,kaddoum g.under water optical wireless communication[j].ieee access,2016,4:1518-1547.

[2] anoh k,tanriover c,adebisi b,et al. a new approach to iterative clipping and filtering papr reduction scheme for ofdm systems[j].ieee access,2018,6:17533-17544.

剩余内容已隐藏,您需要先支付 5元 才能查看该篇文章全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。