【基于深度学习的验证码识别算法探究10000字(论文)】_第1页
【基于深度学习的验证码识别算法探究10000字(论文)】_第2页
【基于深度学习的验证码识别算法探究10000字(论文)】_第3页
【基于深度学习的验证码识别算法探究10000字(论文)】_第4页
【基于深度学习的验证码识别算法探究10000字(论文)】_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于深度学习的验证码识别算法研究目录TOC\o"1-3"\h\u21523摘要 I18469引言 1268021.绪论 1178721.1.研究背景及意义 1192891.2.国内外研究现状 262781.2.1.国内研究现状 2149311.2.2.国外研究现状 343171.3.论文研究内容 445102.深度学习与卷积神经网络 465732.1深度学习 5236082.1.1深度学习的三大经典模型 5223672.2卷积神经网络 6257952.2.1卷积神经网络的运用 7108803.卷积神经网络的实现流程简介 741583.1卷积神经网络基础 8307353.2卷积层 8316583.3激活函数 9279413.4池化采样 9234293.5正则化 9248004.基于深度学习的验证码识别算法的设计与实现 10216434.1.torch库的使用(pytorch框架) 10201644.2.CNN模型搭建 10325444.3.数据加载 10299234.4.训练 1149344.5.实现效果图 11155025.结论 1426897参考文献 15摘要:在互联网迅速发展的今天,人工智能技术正在成为我们生活中的常态。诸如验证码识别等技术已经在当前的人工智能研究中占据了不可或缺的独特地位。自动化的网络入侵破解的程序在日渐地增多,这已经对保护我们赖以生存的信息网络的安全构成起了一项相当地大地的重大挑战。验证码测试是指一种能够完全自动化完成的自动区分计算机人和互联网人行为的公共图灵测试,是网站防止受到自动恶意程序的攻击使用的一门重要的人机智能区分测试技术,网站用户有时由于在相当短时间范围内会被自动恶意程序所恶意地访问,会白白浪费掉大量珍贵的计算机网络资源,在这种复杂情况环境下,验证码技术由此应运而生。通常这种情况下,各大网站会自动生成验证码供用户识别,这个识别过程对计算机来说很困难,但对人类来说很容易。通常情况下,各大网站会自动生成验证码供用户识别,这个识别过程对计算机来说很困难,但对人类来说很容易。如果人类破解验证码的成功率可以达到90%或更高,而计算机程序的成功率只有不到1%,那么这类验证码可以被认为是成功的。目前,各大网站都设计了各种低分辨率、多噪声点、变形字符、粘连字符的验证码。这样一来,便对搜索引擎优化产生了较大的工作量和工作压力[1]。因此,本文提出一个基于深度学习的验证码识别算法,为搜索引擎优化者和测试者实现自动验证码识别。关键词:验证码识别技术;卷积神经网络技术;深度学习引言由于网络验证码系统近年来在当今全球互联网上已得到空前的高度快速地广泛部署和推广使用,国内外研究者都在对各种网络验证码系统具有的多种安全及识别等功能特点进行较为广泛系统了深入分析的研究,并开始陆续的开发并研究提出了其他领域许多可以用来破解的网络验证码问题的系统解决新方法。目前,参考向量机学习技术分析(SVM)系统和卷积神经网络技术分析方法(CNN)方法已被是当今两种最为主要的有效的网络验证码系统和识别方法。张涛等人的[2]同时文章还特别专门的提出,对其中一些很容易会被分割合并掉的验证码图像应尽量先进行淡化、二进制化、去噪,切割或合并分割成至少两个互相独立存在的字符,并特别推荐使用深度卷积网络技术作为一个对对其中的单个独立的字符图像先进行训练、识别后再分割再进行分割和合并处理的有效方法.该分析和方法是完全可以基于深度卷积神经网络技术中强大的特征信息提取器的处理能力,并且它还被使用上了一个非线性的激活函数,效果上也明显程度的上优于了SVM中的分类方法,但是目前它也就只是一个仅仅的是能够被用来处理容易的被分割出来的验证码图像[3].对于那些不容易被分割出来的验证码,张涛等人用1*144的向量来表示4个字符10个数字26个字符的标签,每个字符需要1*36,采用基于深度学习的LearnThrough单任务通用分类,分类类别多,匹配效果差,准确率只有85%。张涛等人此前也多次提出可以使用CNN+RNN技术进行身份验证码的识别,但目前由于目前他们参与开发中的CNN网络中的层厚度仍然较低,发现的该新方法其实并没有达到超过单独使用一个CNN网络的效果1.绪论1.1.研究背景及意义验证码(CompletelyAutomatedPublicTuringtesttellComputersandHumnansApart,CAPTCHA)是一种全自动的图灵测试,可以将计算机与人类区分开来,最早是作为卡内基梅隆大学的一个研究项目而开发的,验证码的第一个用户是雅虎[1]。大多数程序的验证码测试都是由一个由每一个二进制数字、字母和每一串二进制汉字所组成,验证码测试的其真正设计目的极可能本身就是作为一个用来区分计算机程序与其他普通计算机人类程序之间差别的测试,这种测试手段或许只是可以暂时的让我们一般机器人类程序得以更轻松快捷得快速通过,但是这最终可能会永远无法有效阻止任何其他的计算机程序可以顺利得通过。在如今这个移动互联网时代,验证码系统正在日益扮演的起演着另一种越来越的重要的重要的角色,它其实应该是指一个公共计算机的身份自动身份识别的程序,用于实现自动地区分移动互联网用户人机与个人计算机,它可以防止网站受到黑客的暴力破解手段[1]。随着当今社会经济的迅速进步,互联网行业的技术不断向前发展,网络信息安全相关问题亦随之也越来越多地的问题出现,验证码技术在网络保护和保障信息方面有了广泛的应用。验证码的设计是成功情况下,它很容易被人类和计算机识别,能够很好地防止恶意程序,为用户信息提供安全保障,并改善用户体验[1]。然而,在某些情况下,验证码的存在也有一定的消极作用,例如,对于一些测试开发人员需要手动才能登录是他们工作中的一个困扰,人们已经尝试着自动检测验证码。作为图灵测试,验证码识别将图像检索处理与人工智能相结合,在人工智能技术的发展中发挥了积极作用,如车牌识别、手写识别和字符识别应用。本文重点讨论了最广泛使用的基于字符的图像验证码的识别算法,这种验证码由随机数字和英文字母组成,不仅容易生成,而且不受用户文化背景的影响,不能用暴力方法破解。在传统的图像处理中,验证码识别方法分为图像预处理、定位、字符输入、字符识别等步骤[6]。然而,用传统方法,很难定义一套精确的模式。由于复杂的验证码附着在背面,传统的逐个像素提取的模式匹配只能识别简单的验证码,对破损和复杂的验证码的识别率很低。因此,需要一种更有效的方法来检测这种验证码。最近,深度学习网络已被广泛用于科学研究中。近年来,深度学习已经作为现代人工智能中的几个核心重要研究前沿领域发展之一,在计算机图像快速识别、语音识别、自然语言分析处理算法和多目标视觉识别研究等国内外诸多相关领域中取得出了较为长足意义的进步。与传统的模式识别方法相比,深度学习最大的优势在于它能自动检索出更深层次的特征。实验结果表明,深度学习提取的特征比人工提出的特征表现更好[7]。与人工机器学习算法相比,将深度学习应用于验证码识别可以自动从图像中提取特征,实现相对更高的识别精度[8]。传统的神经网络在处理类似的验证码符号时不够准确,无法从小的分辨区域如数字"2"和字母"Z"中找到并提取特征,验证码的识别精度会大大降低。在本文中,我们提出了一种基于深度学习的验证码图像识别算法。1.2.国内外研究现状1.2.1.国内研究现状截至目前大多数可用基于文本的验证码识别算法可分为两大类:基于分割的算法和无分割的算法[9]。基于分割的识别算法通常只包括了两个最主要的阶段:分割识别和字符识别。在分割的步骤过程中,验证码图像将被自动分割成若干单个的字符,字符识别模块会被用来帮助识别出这些单个字符。分割步骤被认为是最重要的部分,因为它可以显著影响系统的整体准确性和效率。然而,大多数分割算法表现不佳,效率低下,效果不佳。因此,许多研究人员已经开始使用没有分割的验证码检测算法,以避免分割步骤的负面效应。现在,无分割模型被广泛用于验证码的识别[10]。他们可以直接识别和分类输入的验证码字符,而无需将验证码分割成单个字符。此外,大多数无分割模型具有较高的准确性和效率。同时,无分割模型通常具有多路复用的结构,需要相对较大的内存资源。特别是当文本验证码的字符数增加时,对内存资源的要求会急剧增加。为了避免无分段验证码算法的缺点,研究人员开始使用基于深度学习的无分段验证码识别系统来直接识别验证码,而无需分段[11]。研究人员使用了一个无分割的验证码CNN模型,通过在输出层为每个验证码字符分配特定数量的神经元(与字符类别相对应)进行分类,训练它同时识别所有验证码字符[12]。这种识别模型工作迅速,避免了验证码的分割。然而,随着验证码符号数量的增加,输出层的神经元数量也随之增加,内存大小也随之增加。该CNN模型的内部结构旨在考虑相邻字符之间的关联性,以提高识别的准确性。然而,该模型对验证码中的每个符号都使用了一组单独的卷积层和全连接层,这使得架构非常复杂,并且随着验证码符号数量的增加,模型的复杂性也在增加。然而,该模型对验证码中的每个符号都使用一组单独的卷积层和全连接层。1.2.2.国外研究现状在互联网技术出现的最早期,美国的科学家LuisyouAlto开始专门研究验证码技术及其安全的性能,并提出验证码的概念[13]。路易斯-你-阿尔托继续研究验证码及其他安全的属性了很长时间,然后他发现了RE-CAPTCHA技术[14],进一步扩大了验证码的使用。JRendraMalik继续深入研究了其验证码及其安全的属性[15],发现了验证码可以通过利用基于形状上下文的形状条纹的不同的特征来自动的进行相关的匹配[16]。JRendraMalik进一步细致的工作对于验证码及其相关安全性问题也进行深入了分析研究,发现验证码能够自动对基于形状上下文的形状条纹的各种不同的特征来进行相关信息之间的自动匹配[4]。Goodfellox等人[17]建议使用深度卷积神经网络,但训练卷积神经网络需要大量的训练数据集,而可用于验证码识别的令牌训练数据集很小。另外,Moii和Malik使用Chellapila和Simard提出的方法首先将验证码分解成单个的字符,接着重新识别代码。然而,由于当前验证码中的字符是重叠的,因此不可能简单地用一个矩形框来分割各个字符。这些Yaderberg等人[18]开发了一个卷积神经网络,用于自然场景图像的文字识别,但作者不得不手动生成大量的文字图像来产生训练结果。这些算法都不是解决验证码识别问题的好办法。1.3.论文研究内容本文主要是从使用卷积神经网络实现验证码字符识别的角度出发,分析验证码的安全性以及深入讨论卷积神经网络算法原理。第一部分:绪论,主要系统介绍基于本文提出的验证码识别研究目前研究的相关研究工作背景内容和应用研究目的意义等以及相关国内外相关研究现状。主要的内容就是简单地总结与阐述了一下现阶段国内外学者关于验证码识别研究学习等领域研究成果以及发展现状。第二部分:深度学习与卷积神经网络,对深度学习进行简要介绍,介绍了深度学习的三大经典模型,对卷积神经网络的理论进行分析以及运用的了解。第三部分:本部分着重介绍使用了验证码符号,分析了并进一步解释了各种影响其数据安全性问题和数据可用性问题的各种因素,并尝试在深度机器学习研究的前沿背景条件下系统探讨研究了卷积神经网络,这无疑是又一种面向端到端数据的学习方法。描述讨论了卷积神经网络理论的一些主要技术组成的部分理论和工程实施的过程。描述了卷积层、关联层、激活函数和正则化方法。卷积层是神经网络计算中特征数据提取技术的技术基础。聚合操作被用来整合特征,降低特征和模型参数的维度,并确保输入和输出数据的不变性。激活函数限制了网络层输出的振幅并压缩了信息,而正则化方法旨在提高网络的泛化性能。这些基本组件的组合是使网络活起来的一种有机方式。这些基本组件的有机结合允许原始数据的叠加,从表面形状特征到更高层次的语义,以及模式预测。这些基本组件的有机结合使得来自表格表面特征的原始数据可以与更高层次的语义相叠加,此外还可以与模式预测相叠加。第四部分:基于深度学习的验证码识别算法的设计与实现,结合getimage库图片测定等设计方法,训练样本集,实现验证码识别系统,并展示其运行过程及结果。第五部分:总结,对本次研究基于深度学习的验证码识别实现过程进行回顾与分析,并在研究方向过程中进行未来规划。2.深度学习与卷积神经网络2.1深度学习深度学习算法是机器学习中另一个新生的前沿领域,它在机器学习中被广泛采用,使其功能更接近计算机科学的原始发展,即人工智能。深度学习技术用于探索大样本数据信息的内部结构规律和语义表征的层次性,通过这些机器学习技术获得的数据信息对实现对文本、图像数据和音频信息等海量数据特征的深度解读具有重要意义。发展人工智能技术的最终目标之一可能是探索任何人类机器大脑如何能够成为几乎与世界上每个人的大脑一样有能力分析语言信息或机器学习,自动并正确识别文本、图像数据和其他信息,如视频、声音和图像数据。它基于一种相对更复杂的机器学习算法,但在识别语音数据中的特征以及对语音和图像信息中的特征进行分析和计算方面能够取得明显的快速效果,远远超过了该领域以前研究的所有技术。深度机器学习的研究已经在一些相关学科中取得了显著的发现,包括智能机器搜索和识别技术、智能数据挖掘、机器学习、机器视觉和翻译、自然语言分析和处理、人工智能研究和个性化智能的机器识别技术等相关学科。深度机器学习解决了模式识别和复杂的人类行为的许多技术问题,使智能机器能够模仿人类的活动,如音频、视觉、语言和逻辑语言思维,导致人工智能和相关技术的显著进步。2.1.1深度学习的三大经典模型(1)卷积神经网络模型在无监督预读出现之前,训练深度神经网络往往非常困难,但可以产生深度训练的最重要例子之一是卷积神经网络。卷积神经网络的设计灵感通常来自视觉系统的结构。第一个专门用于卷积神经网络结构模型的计算建模和分析的结构模型被明确提出,并首次用于开发福岛(D)神经认知机器模型,其基础是各层神经节点之间的局部连接和各层节点之间图像的神经组织。跨层转换将是这样的:一个包含至少一组相同结构参数的神经元被应用于位于神经网络节点中不同位置的几个神经元的相对位置,这些神经元从最前端到最后一层完全平行分布,从而形成一个翻译不变的神经网络结构。到目前为止,基于卷积神经网络技术的模式识别的实现已经被认为是当前工业界实现人工智能进行模式识别的最佳解决方案之一,特别是在执行智能任务方面,如识别和处理手写字符的信息[21]。(2)深度信任网络模型DBN模型同样可以被看作是一个随机生成的概率贝叶斯模型,可以用更简单的数学术语来解释,它由一系列具有几层随机潜变链接的单元组成,其中顶层的每个单元层都要求上下两个相邻的单元层之间至少有一个无限的随机潜变链接。下面相邻的每个细胞层的两个细胞层之间也有对称联系,从每个细胞层的最左层到最右层,每个可见的细胞层的顶部和底部的两个细胞层之间有一个随机或定向的对称联系,从最左层靠近底部的细胞的状态是每个可见的顶部和底部两个细胞层之间的随机或定向对称联系。DBN由一个至少有两个F的结构单元堆叠而成,可以简单翻译为RBM(受限玻尔兹曼机)。堆叠系统中每个RBM块的可见隐藏神经元的数量等于每个或任何前面的RBM块上的可见隐藏神经元的数量。根据深度机器学习模型的机制,输入样本模型和输入样本的输出模型可被同时用来分别训练输出样本模型中以及输入样本模型的第一层中的所有的RBM块,并且还可以反过来用输出样本模型来同时来训练输出样本模型中第一层的和输入样本模型的第二层中的所有RBM块。RBM块的输入模型允许将所有的输入模型都作为一个RBM块的输出模型,,在求和后提高输出模型性能。在预读和无监督学习过程中,来自DBN块的编码结果被传递给另一个更高层次的RBM块,由解码块检测到的高层次块状态值被直接送回另一个低层次块,该块最初可能更接近低层次块状态值,允许低层次块和低层次输入块之间重新配置。RBM块也可以作为上一级DBN块中的组织单元和上一级高层块中每隔一层的下一级DBN块之间的共同参数[22]。(3)堆栈自编码网络模型堆叠自编码模型网络包含了模型网络最重要的拓扑结构,与DBN相似,由一些结构单元组成,共同进行堆叠和自编码操作。带有自编码层的模型网络通常被认为是具有至少一个两层模型网络的神经网络,其第一层通常被称为自编码层,模型网络的第二层也通常被称为自编码层。第一层通常被称为自编码层,第二层被称为自解码层[23]。2.2卷积神经网络卷积神经网络(CCN)的算法基础是一类使用前瞻性神经网络的算法,它结合了卷积计算并同时实现了深度机器学习算法的结构特征。卷积神经网络则是一种翻译不变的神经分类,由于其固有的表征学习能力,所有的神经信息都可以由自己的神经层次提供给它们,有人有时称之为"平移的不变的人工神经网络(SIANN)"[24]。随着我国人类科学家近年来在有关深度认知机器学习研究理论体系及其实现方法体系理论领域的大量研究成果并不断深入系统化地总结提出理论问题和关键技术进行应用研究实践与研究发展,以及有关各种复杂大规模智能计算机数值模拟实时智能处理分析算法设计和各种数值实时智能计算分析软件系统研发应用及各种计算机相关实时智能硬件系统设计研究及开发与应用领域的许多领域最新研究成果的相关技术体系研究应用和技术性能研究改进,卷积神经网络系统统技术相关的世界各领域研究技术和技术领域目前正逐步经历并起了这样一种前所未有的程度上的持续并快速发展地高速增长和变化持续和快速的发展,并将会因此它们已经逐渐开始地逐渐的被其它世界科学家们所认识成功地并被广泛应用于其在各种智能工程和应用的实践研究中因此,它们现在都已经在逐渐的开始和成功的地被应用和广泛使用于世界其它的各种智能学科,如计算机视觉、自然语言分析与处理机器智能学习和人工智能云计算人工智能。卷积神经网络模拟型是一种基于高度生物学的视知觉机制模型的神经网络模型可以直接用于单独的监督学习和无监督学习,模型本身与结构层模型中的卷积核参数之间具有高度的可分离性,具有高度隐含的生物学特征。模型本身与各层结构模型内的卷积核参数之间具有高度隐含的生物特征,各层结构模型参数之间的连接数具有高度的稀疏性,这些特点使卷积神经网络系统成为一类可以直接独立设计的系统,用于训练一些或较小范围的参数格点计算和学习,用于一个或极其例如,它们可以直接用于像素和声音特性等特征的深度学习。它们对要学习的特征有相对良好和稳定的效果,对数据质量要求不高,不需要额外的训练或计算。2.2.1卷积神经网络的运用图像识别(imageclassification):卷积神经网络作为当前大规模图像分类和特征识别算法领域的两个主要算法架构之一,早已被开发出来。事实证明,在有效利用大规模机器学习计算和大型数据源时,它们是一种相对稳定和强大的算法技术。对于大规模、复杂的薄层图像的一般分类和识别问题,卷积神经网络方法可用于直接和快速建立分层分类器。它还可以应用于在更大更详细的图像上进行分类和特征识别的计算领域,并有可能直接从图像中快速提取辨别和特征数据,用于快速深度学习其他分层分类器数据。快速的深度学习。在后一种情况下,自动特征提取也可以通过人工或自动随机选择至少三个功能不同的图像特征段进行提取并分别存储在卷积神经网络中,可以通过无监督学习随机选择特征提取本身。卷积神经网络系统将继续被广泛用于检测和识别有用的字符段和字符识别,以进一步确定计算机输入的图像文件是否真的包含有用的字符,从中可以直接和任意地切除和分离有用的字符段。3.卷积神经网络的实现流程简介3.1卷积神经网络基础开发一个基于卷积神经网络模型的更高效、更快速简单可靠的学习算法一直也是目前深度机器学习方向的一大热门前沿研究与课题,卷积神经网络模型完全可以简单被抽象化为一个实现从提取原始数据到确定最终算法目标之间的一个"拟合"过程。每隔一层的设计目的都是为了将原始的数据转化为特征,并最终转化为目标函数,如分类等。图1是其基本结构。图1CNN基本结构3.2卷积层普通神经网络与卷积神经网络有一定的区别,其主要区别就是卷积神经网络在普通神经网络的一些层上进行卷积运算。卷积层的主要作用是检测图像特征,通常通过卷积层后的输出信号,反映图像的局部纹理、边缘和形状。这一层使用稀疏连接、权重分离和等价表示等理念来强化整个学习系统。传统的神经元网络只是通过矩阵乘法技术在各个神经元节点之间建立一个连接,这实际上意味着网络输入部分和网络输出部是可以完全相互连接通信的。另一方面,卷积神经网络使用了稀疏连接的设计理念,这实际上意味着每个输出层元素都只可能与同一个输入层内的任意几个单元紧密相连。这减少了所需的内存量,提高了整个系统的统计效率,而这意味着计算成本的降低。卷积层设计的另一个突出特点即是可共享权重,即允许相同权重的两个参数可用于模型设计中实现的多个不同的功能。在一种传统的神经网络计算中,权重矩阵里的每个元素在输出矩阵的计算周期中可能只重复使用过一次,一旦它与最后一个输入的值相乘,这个权重元素也就基本不会重新再会出现。在卷积神经网络系统中,卷积神经核中的每个元素都是用于每个神经元信号的输入,这意味着不是单个神经元在单独的参数集上训练,而是整个网络在所有神经元的参数集上训练[19]。3.3激活函数所有的神经网络模型都使用一个激活函数,它可以是连续的、可微分的或二进制的、线性的或非线性的,其主要功能是限制输出信号的振幅以压缩信息。当激活函数是非线性的时候(在大多数情况下,它必须是非线性的)时,这同样可以用于使模型的分类能更好,更好地表示特征,并可能在某一定的程度意义上可以增加模型对扰动信号的鲁棒性。主要的激活函数包括SoftPlus,ReLU,tanh,Sigmod和Linear。线性函数线性函数是常数映射,在线性网络中最常使用,但不能执行非线性分类任务。非线性激活函数是对输入的数据信号进行一次非线性的转换,类似于基本的信号处理环境转换,使原来线性无差别的数据变成线性有差别的。3.4池化采样池化采样的最大优点之一是,对于输入信号的微小变化,特征表示保持不变,这对于卷积神经网络中的特征提取很有用。最大值池是稀疏特征的理想选择,而均值池可以减少邻域大小导致的特征提取误差。均值组合减少了因邻域大小有限而产生的特征提取误差。一般来说,聚合的作用是合并特征,这一不仅大幅降低了模型特征维度和模型参数的维度,还充分保证了模型输入的和模型输出之间的不完全变性,这无疑在卷积神经网络模型的特征维度提取技术中都起发挥到了十分关键作用。这一步在卷积神经网络中的特征信息提取的过程研究中将起演着重要关键的作用[20]。3.5正则化一个经过训练的模型在新数据上的表现被称为模型的"泛化性"或"泛化能力"[26]产生一种算法是机器学习的最终一个目标,这种算法经过训练,在训练集上表现良好,并且在验证集上也表现得很好。一个算法在训练集上表现良好,但在验证集上却失败了,这种称为"过拟合"现象。机器学习中用于处理过拟合问题的主要技术是"正则化"。因此,在CNN网络模型中,有必要明确使用正则化来提供模型的泛化:通常将正则化项直接添加到目标函数整体中,测量误差,并进行反向传播,以达到使用正则化的相同结果。正则化项通常直接加入到整个目标函数中,误差被测量并传播回来以影响和控制网络模型的效果。4.基于深度学习的验证码识别算法的设计与实现4.1.torch库的使用(pytorch框架)PyTorch是一个优化的张量库,主要用于使用gpu和cpu的深度学习中。它是一个针对Python的开源机器学习库,PyTorch是基于python和torch库构建的,torch库支持在图形处理单元上计算张量。在pytorch中,FloatTensor是基本的数据格式,另一种常用格式是变量Variable,常用于计算图。4.2.CNN模型搭建CNN主要由卷积层,池化层,激活函数组成,加上一个BatchNorm,BatchNorm叫做批规范化,可以加速模型的收敛速度。图2模型代码4.3.数据加载pytorch有非常方便高效的数据加载模块--Dataset和DataLoader。

Dataset是数据样本的封装,可以方便的读取数据。实现一个Dataset的子类,需要重写__len__和__getitem__方法,__len__需要返回整个数据集的大小,__getitem__提供一个整数索引参数,一个样本数据(一个图片张量和一个标签张量)。4.4.训练训练网络的一般流程为:1定义网络,2定义优化器optimizer和损失函数criterion,3遍历dataloader,每次取一个batch训练。计算loss,将优化器梯度置零,loss向后传播,计算梯度,优化器更新参数。4.训练集训练完一个epoch后,使用测试集计算下准确率。5.保存模型4.5.实现效果图(1)模型测试过程如下图3.图3模型测试过程图(2)验证码识别——代码运行截图图4代码运行过程图验证码识别——代码运行结果图5代码实现图5.结论在本文实验结果中,通过使用卷积神经网络方法来快速完成对训练验证码图像的特征提取,在线闭路消除干扰线和删除了少量冗余的训练数据信息以及仅使用800张验证码图片作为训练集的情况下,该实验模型的最终效果仍是仅能勉强保证达到了近75%左右的训练数据准确率。通过去除干扰谱线、增加训练测试数据或通过使用多个训练实验进行模型数据间的数据的融合,可以来帮助用户进一步高效的快速提高训练测试集数据的准确性。随着生物图像生物信号识别及分析处理技术应用研究技术的可持续与不断地深化及发展,生成验证码数据的各种算法规则模型等数据也是势必都将在相应中发生了巨大变化。参考文献[1]马佳宁,基于深度学习的图像验证码识别算法研究[2]张涛,张乐乐,基于卷积神经网络的图片验证码识别[J],电子测量技术,2018,41(14)[3]徐星,宋小鹏,杜春晖,基于深度学习的验证码图像识[J],测试技术学报,2019,033(002)138-142[4]郭釜晨,基于深度学习的验证码识别技术研究[5]何福泉,李伟烽,林培娜,等,验证码的识别技术分析与研究[J],甘肃科技纵横,2019,48(02):7-10+28[6]德林,基于Web技术的验证码的开发与实现[D],电子科技大学,2013.[7]逄淑超,深度学习在计算机视觉领域的若干关键技术研究[D],吉林大学,2018.[8]唐胜贵,胡运红,王宝丽.基于深度学习的验证码识别技术研究[J].数学的实践与认识,2020,50(07):161-170.[9]程舟航.端到端文本验证码识别[D].

西安电子科技大学,2019.[10]杜薇,周武能.基于CTC模型的无分割文本验证码识别[J].计算机与现代化,2018[11]田怀川.基于神经网络的图形验证码识别及防识别的研究与应用[D],哈尔滨工业大学,2010.[12]张国荣,刘炳君,付成丽.基于Python和CNN的数字验证码识别[J]太原师范学院学报(自然科学版),2

温馨提示

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

评论

0/150

提交评论