版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-PAGEIII-基于深度学习的验证码识别算法设计案例目录TOC\o"1-3"\h\u7295基于深度学习的验证码识别算法设计案例 1298091.1为什么采用深度学习 1204131.2深度学习框架的介绍 139391.2.1环境搭建 3110101.3验证码的获取及预处理 368801.3.1验证码获取 3193981.3.2灰度化处理 475541.3.3验证码的二值化 523561.3.4去噪处理 6145561.3.5图像分割 6208311.4准备及分析阶段 8210761.4.1原始数据和标签值及标签值处理分析 8279461.5代码实现 930591.6模型训练结果分析 12为什么采用深度学习机器学习提取特征需要手动提取,过程很复杂,需要有扎实的专业知识并且提取特征效率不高,要花费大量时间,所以目前验证码识别一般不采用机器学习比如支持向量机识别而是采用深度学习识别比如CNN神经网络。深度学习通常由多个层组成,根据数据复杂程度及要求训练精度决定层数,将上一层的数据传递到下一层去构建模型,然后通过反向传播等算法自动训练出需要的模型,大大提高了代码效率且效果更好。深度学习框架的介绍在深度学习的萌芽阶段,任何一个深度学习研究者都要编写很多的重复代码。为了提高工作效率,这些研究人员将这些代码集成一个系统框架,然后放到互联网上供所有研究人员一起使用。随着时间的推移,最好用的框架被大量的人使用并变得流行起来。目前世界上流行的深度学习框架大致有三个,分别是TensorFlow、Caffe、PyTorch。本文主要使用的是TensorFlow框架,即主要对其展开说明:TensorFlow框架因为是Google框架出品,更新和维护频率比较高,再加上它有着Python和C++接口,所以成为了全世界使用人数最多一个框架。TensorFlow使用数据流图进行计算。图中的每一个节点表示数学运算,行表示多维数据数组(张量op)之间的交互。TensorFlow的灵活体系结构可以部署在带有一个或多个CPU和GPU的台式机服务器上,或者在使用单个API的移动设备中,TensorFlow可用于语音或图像识别等机器学习和深层神经网络中。TensorFlow框架大体流程包括构建图、图传递、图运行。构建图:用户定义数据和操作,基于TensorFlow的多语言编程窗口进行添加算子,即完成计算图的构造。图传递:用户开启Session(会话),通过其建立与master之间的连接。之后执行session.run(),将构造好的graph序列化为grapdef,然后以protobuf的格式传递给master.运行图:简单来说就是将定义好的数据和操作运行起来。在使用TensorFlow框架训练神经网络时,中间的步骤可能非常复杂,为了使复杂的计算步骤更好理解,研究人员研发出了tensorboard可视化平台,模型训练过程中的数据和操作都可以直观的通过图形展现出来。Tensorboard随着TensorFlow自动安装并不需要额外的安装,其界面基于Web.在运行TensorFlow程序期间,可以输出汇总各种类型数据的日志文件。要可视化TensorFlow程序的运行状态,需要使用TensorBoard读取这些日志文件,解析数据并生成可视化的web界面。生成events文件代码:f.summary.FileWriter(path,graph=sess.graph);启用tensorboard:(TF1.12)C:\Users\feilongzaitian>tensorboard--logdir="D:\Users\feilongzaitian\Desktop\shengduxuexi\temp\summary"--host=127.0.0.1浏览器输入:127.0.0.1:6006环境搭建第一次接触深度学习的学习者,深度学习环境的搭建可谓是一座大山,本文采用在anaconda3下搭建TensorFlow-gpu-1.12,中间出现了很多问题,比如各个库版本不匹配等等,耗时两天才搭建完成。第一步就是去Anaconda官网下载Win10版本的Anaconda.第二步创建一个单独的环境,在CMD命令行窗口或者Anacondaprompt环境下都可以,以第二种为例先创建一个python环境:输入命令condacreate-ntensorflowpython=3.6.第三步激活anaconda的tensorflow环境第四步在激活的环境下安装合适的TensorFlow版本即可。需要特别注意的是,如果电脑有GPU的话建议安装Gpu版本,提前查看一下自己电脑的显卡驱动版本选择适合的CUDn和TensorFlow版本。还有选择相匹配版本的各种库,假如版本不适应是不能使用的。最后就是将所搭建的TensorFlow框架导入Pycharm即可,这里比较简单就不做详细描述了.验证码的获取及预处理验证码的获取及预处理是验证码识别必须经历的步骤,本文主要介绍获取易分割验证码和其预处理。验证码获取在神经网络的训练中,往往都需要大量的数据,如何获取数据呢?一般采用网站爬虫然后整理的方式。本文主要采用自动生成的方式,有一些专门生成验证码的第三方库,例如python集成的captcha库。自动生成可以在短时间内获取大量验证码,很容易就能满足大样本的需求。同时更加方便的是可以在生成的过程中对验证码命名完成标记。图4.1验证码示例1还能生成更加复杂的验证码:图4.2验证码示例2网页上抓取验证码的话可以获取各种各样式的,但是这样必须手动对验证码进行标记,由于训练的样本数量一般比较大,这样子的话就会给任务带来很大的工作量灰度化处理灰度就是灰度图像上每个像素的颜色值,也就是颜色深度,数值范围一般在0到255之间,白色为255,黑色为0。灰度表示没有颜色,RGB颜色分量都相等。如果是二值灰度图像的话,它的像素值只能是0或1,我们说它的灰度级是2。由于现在大多数彩色图像都使用RGB颜色模式。在处理图像时,必须对RGB的三个分量分别进行处理,这样极大的增加了要处理的数据量。但实际上,RGB并不能反映图像的形态特征,只是根据光学原理对颜色进行调整。图像灰度处理可以作为图像处理的预处理步骤,为后续的图像分割、图像识别、等训练操作做准备。图像灰度化处理有如下几种方法:分量法:将彩色图像中的中的三分量的亮度作为其灰度值,即: (4.1)最大值法:将彩色图像中的三分量亮度最大值作为灰度图的灰度值。即: (4.2)平均值法:将彩色图像的亮度求平均得到想要的灰度值,即: (4.3)加权平均法:根据重要性等指标,对三个分量进行加权平均,并赋予不同的权重。由于人眼对绿色最敏感,而对蓝色最不敏感,因此可以通过如下加权RGB三个分量来获得更合理的灰度图像。即: (4.5)图4.3灰度化图片示例验证码的二值化二值化即将非二值图像经过计算转化为二值图像,一般用它将感兴趣的目标和背景分离,能更好的分析物体的形状和轮廓,可以看作聚类或者分类。二值图像表示每个像素只有两种可能的数字图像,我们可以设定一个阈值,小于这个值的为灰度极小值,大于这个值的为灰度极大值,这样就能实现二值化。根据阈值的选取,常用的方法可以分为全局阈值和局部阈值。全局阈值指的是整个图像的像素点都使用相同的阈值。这一阈值可以选取经验值也可以根据灰度的平均值或者灰度的分布情况来选取合适的阈值。目前最有名的就是日本工程师大津展之发明的OTSU大津算法,该方法也称为最大类间差法。大津算法类似于一维离散化模拟,通过穷举法找到一个阈值,然后把这些像素切成两类,这就让这两类像素的类方差最小,类方差指的是两类像素的加权和,权指的就是像素点在整个图像像素点数量的比重。由于其计算简单而且二值化效果良好,在很多二值化场景都能见到这个算法。局部阈值又称自适应阈值,局部阈值法假设图像在某一区域的亮度相对较近。它用滑动窗口扫描图像,并将滑动窗口中心点的亮度与滑动窗口中其他区域(称为邻域区域)的亮度进行比较。如果中心点的亮度高于邻域的亮度,则中心点标记为白色,否则标记为黑色。这种方法对于背景比较复杂、光照不匀、对比度不同的图片具有良好的处理效果,并且具有很强的抗干扰能力。图4.4不同类型图对比去噪处理2008年,Viren-Jain等人提出利用CNN来处理自然图像的去噪问题[21],取得了与传统方法相似或更好的结果。研究还表明,一种特定形式的CNN可以作为马尔可夫模型推理结果的近似值用于图像去噪,而神经网络模型可以避免马尔可夫模型在概率学习和推理过程中的计算困难,从而降低计算复杂度。在神经网络的训练过程中,为了更快、更准确地收敛,采用了分层训练的方法。2012年,Xie等人使用栈式去噪自动编码器进行图像去噪和图像修复,使用的网络结构为多层全连通网络。之后Burger等人提出使用多层感知机的方法实现网络去噪。2016年Mao等人提出深度的卷积编解码网络应用于图像去噪,2017年Zhang等人提出较深层的CNN网络,即DnCNN实现去噪。由于本文章处理图片较简单不需要进行去噪处理。图像分割图像分割是计算机视觉研究中的一个老问题,已成为图像领域的热点。图像分割是指根据灰度、颜色、纹理、几何特征等特征将图像分割成不同区域,因此这些特征在同一区域表现出相似性,但在不同区域表现出不同的相关性。简单地说,就是把图像中的目标和背景分开。对于灰度图像,该区域的像素往往具有相似性,并且往往会对区域边界产生无损影响。目前,国内尚无通用的、完善的分割方法,但对图像分割的一般规则有一个一般性的推荐,并且已经开发出了大量的研究成果和模型。由于本文处理的验证码不是粘连的验证码,可以使用两种方法对其分割为单个的字符:颜色填充分割的方法和平均分割。1.颜色填充分割:对于具有分离的验证码,相邻字符之间没有连接,可以采用一种简单的分割方法:颜色填充分割,从整个验证码图像中提取相同的符号。该算法的基本思想是捕获所有相邻像素,即捕获图像中的相邻像素点。首先,捕捉前景像素。因为图像是二值化的,所以这里的前景像素是黑色像素。然后,遍历每个相邻像素点,直到色块遍历结束。然后,该算法在另一个块中定位黑色像素并继续遍历。此操作将继续进行直到所有颜色块遍历完。图4.5颜色填充分割示例2.平均分割:简单来说就是将图片平均分割成N个宽度相同的图片。但是当字符是粘连到一块的时候平均切分会导致有一部分字符的不完整和多余噪声,也可能直接丧失需要识别的相关内容。 图4.6平均分割示例准备及分析阶段 原始数据和标签值及标签值处理分析本文使用的数据集一共有6000张验证码图片,标签值为验证码图片所包含的4个字母,然后以图片文件名为索引存放在labels.csv文件中,如下图所示: (a)label.csv文件内容(b)验证码图片示例图4.7数据集内容示例由于每张图片的标签值都是一个字符串,可以将其当做一个个的字符串单独处理。一张验证码的图片的目标值由四个字母组成,可以将其转换成对应数字,例如“NZPP”转换成“13,25,15,15”。然后对每个位置进行one_hot编码,例如“NZPP”的真实值就为“[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,0,0,1][0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0]”,即每个验证码的目标就有[4,26]这样一个数组。至于如何衡量损失?我们考虑将目标值拼接在一块,形成一个[104]长度一阶张量。如果计算预测概率值仍然使用SoftMax函数,并对这两个一阶张量(真实值和预测值)计算交叉熵损失会存在损失值过大而且不能减小的问题。由于SoftMax针对所有104个输出的logits计算输出概率,和为1,最好的结果是真实值编码为1的4个位置对应的预测概率值为0.25。在迭代优化过程中,如果要使其概率进一步提供,势必造成其他三个真实值编码为1的位置对应的概率值下降。SoftMax交叉熵适合于计算类别相互排斥的离散分类任务的损失值,每个输出对应一个类别。比如CIFAR-10图像都标有-一个且仅有一个标签,只能是10个类别中的--种。但如果遇到需要预测4个真实结果的情况,我们就需要使用sigmoid交叉熵计算损失。如果计算预测概率值时仍然使用SoftMax函数,并对这两个104个元素的--阶张量计算交叉熵损失,会存在损失值过大并且无法减小的问题。由于SoftMax针对所有104个输出的logits计算输出概率,和为1,最好的结果是真实值编码为1的4个位置对应的预测概率值为0.25。在迭代优化过程中,如果要使其概率进一步提供,势必造成其他三个真实值编码为1的位置对应的概率值下降。SoftM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省安塞区高级中学2025-2026学年度第一学期期末高一地理考试(含答案)
- 2025-2026学年陕西省铜川二中九年级(上)期末数学试卷(含答案)
- 2026届高三生物二轮复习课件:专题七 热点聚焦 生态位
- 12月转债策略展望:震荡高低切或持续建议稳健配置
- 飞机附件培训
- 2026台州市水利水电勘测设计院有限公司招聘笔试备考试题及答案解析
- 2026年西北民族大学舞蹈学院专任教师招聘考试备考试题及答案解析
- 2026时代北汽(北京)新能源科技有限公司 (正式工)招聘备考考试试题及答案解析
- 2026广东广州市天河区培艺学校招聘初中英语老师1人备考考试题库及答案解析
- 2026年度烟台招远市事业单位公开招聘工作人员(47人)备考考试试题及答案解析
- 大数据驱动下的尘肺病发病趋势预测模型
- 炎德英才大联考雅礼中学2026届高三月考试卷英语(五)(含答案)
- 【道 法】期末综合复习 课件-2025-2026学年统编版道德与法治七年级上册
- 2025-2026学年仁爱科普版七年级英语上册(全册)知识点梳理归纳
- TNAHIEM 156-2025 口内数字印模设备消毒灭菌管理规范
- 顶棚保温施工组织方案
- ISO13485:2016医疗器械质量管理手册+全套程序文件+表单全套
- 学校6S管理培训
- DB15-T 4031-2025 建设项目水资源论证表编制导则
- 2025-2030国学启蒙教育传统文化复兴与商业模式探索报告
- 2025年事业单位考试(医疗卫生类E类)职业能力倾向测验试卷及答案指导
评论
0/150
提交评论