深度学习技术与应用 课件 第11章 多输出神经网络实现 CAPTCHA 验证码识别_第1页
深度学习技术与应用 课件 第11章 多输出神经网络实现 CAPTCHA 验证码识别_第2页
深度学习技术与应用 课件 第11章 多输出神经网络实现 CAPTCHA 验证码识别_第3页
深度学习技术与应用 课件 第11章 多输出神经网络实现 CAPTCHA 验证码识别_第4页
深度学习技术与应用 课件 第11章 多输出神经网络实现 CAPTCHA 验证码识别_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深度学习技术与应用DeepLearningTechnologyandApplicationcontents目录第十一章多输出神经网络实现CAPTCHA验证码识别01.

CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator02.搭建深度卷积神经网络模型BuildadeepconvolutionneuralnetworkmodelPART1CAPTCHA验证码生成器的使用01.CAPTCHA验证码生成器的使用UseofcaptchaverificationcodegeneratorCAPTCHA(CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart,全自动区分计算机和人类的图灵测试)是一种区分用户是计算机还是人的公共全自动程序。可以防止恶意破解密码、刷票、论坛灌水等,它能够有效地防止某个黑客对某个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上用验证码是现在很多网站通行的方式,利用比较简易的方式实现了这个功能。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator

CAPTCHA是基于Python的一个验证码生成库,它可以根据用户给定的参数,随机生成图片验证码,并且还支持语音验证码。使用它生成的图片验证码功能,为接下来的任务提供训练集和测试集数据后,搭建模型进行训练。最终目的是使用训练好的模型实现对CAPTCHA验证码的识别。先来熟悉一下CAPTCHA所生成的验证码是什么样的形式。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator

CAPTCHA

先尝试使⽤ImageCaptcha函数,随意传递⼏个参数,⽣成⼏个验证码。我们设定原始字符为'HOWAREYOU',⽣成400*200的⼀张验证码图⽚。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建CAPTCHA验证码生成器首先预设好CAPTCHA验证码为一张字符数(numlen)为4、宽(width)为170、高(height)为80。同时构建一个包含26个大写字母,和0~9共10个阿拉伯数字的字符字典(CHARACTERS)。这样就构成一种在日常生活中比较常用的大写英文字母混合数字的验证码,这个字符字典中的36个字符就是神经网络需要处理的36个分类(classnum)。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建CAPTCHA验证码生成器构建randomcodegenerator函数,⽤于⽣成⼀张验证码图⽚和⼀个原始字符在字典中的各个索引地址。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建CAPTCHA验证码生成器测试randomcodegenerator函数所⽣成的数据。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建CAPTCHA验证码生成器

显示索引,可以发现idx_list返回的是⼀个索引列表,我们将其转换成字符字典中的字符串idx_list[55,55,14,27]#转换索引为字符串[CHARACTERS[idx]foridxinidx_list]['3','3','G','q']01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建数据集生成器

需要在已经定义好的随机生成函数random_code_generator()的情况下构建数据集的生成器,该生成器可以直接提供给数据集使用。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建数据集生成器尝试构建一对数据01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建数据集生成器将生成的随机验证码和图片存放到数据集中,并查看设置好的数据集。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建数据集生成器

根据以上函数,我们构造⼀个⽣成器,⽅便后⾯⽣产数据使⽤。01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建可视化函数

构造好生成器后,先尝试生产一小批量的数据集X,y=next(gen())定义decode函数用于将One-Hot编码转换成字符串。defdecode(y,idx):return"".join([CHARACTERS[np.argmax(np.array(item)[idx])]foriteminy])01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建可视化函数定义show_data函数,可以显示⼀对数据的图⽚和真实结果.01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建可视化函数随机选择⼀对数据进⾏查看.01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建可视化函数定义showimglist可查看多对数据可视化结果01.CAPTCHA验证码生成器的使用Useofcaptchaverificationcodegenerator构建可视化函数定义showimglist可查看多对数据可视化结果PART2搭建深度卷积神经网络模型02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel搭建深度卷积神经网络模型使⽤Keras的函数式(functional)API来构建神经⽹络,使⽤函数式的API构建模型可以实现多输出的效果,以下是模型的定义:模型中每个卷积层之后都需要跟随一个BatchNormalization层,主要是用于批标准化,使用标准化后的模型更加容易收敛。02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel搭建深度卷积神经网络模型最后输出是四个字⺟的预测,使⽤softmax来进⾏预测。02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel训练模型训练模型采⽤上⼩节定义的⽣成器,对8个训练周期,每次训练单次数据批量64,每个周期增加2000个新的数据。并设置回调函数保存训练过程中效果最佳的模型。为了⽅便,把上节定义需要⽤到的函数放在此处。02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel训练模型02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel训练模型02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel训练模型显示四个输出层的准确率可以发现,第3个周期时模型出现了⼀些问题,后⾯仍然收敛了大家可以根据⾃⼰训练出来的模型结果进⾏调整参数,再尝试训练找出原因。02.搭建深度卷积神经网络模型Buildadeepconvolutionneuralnetworkmodel评估模型准确率

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论