基于指数型挤压函数驱动胶囊神经网络的文本验证码识别方法与流程

文档序号:18398755发布日期:2019-08-09 23:39阅读:605来源:国知局
基于指数型挤压函数驱动胶囊神经网络的文本验证码识别方法与流程

本发明涉及神经网络与图像处理的交叉学科领域,特别是涉及基于指数型挤压函数驱动胶囊神经网络的文本验证码识别方法。



背景技术:

基于文本的验证码(completelyautomatedpublicturingtesttotellcomputersandhumansapart,captcha)识别,是最为常见的字符识别应用场景之一。captcha是用于区别人类和计算机的一种公共全自动程序,用于避免网络资源被恶意占用,因此也被称为人机交互验证。系统使用算法对图片中的字母和数字进行扭曲变换,或加入复杂的背景等,以确保人类可以轻易识别字符但是计算机不能解答。验证码的设计与识别问题一直是人工智能领域的重要课题,验证码的研究在设计与识别的对抗过程中动态发展,其鲁棒性和可用性也在不断得到改进和提升。

胶囊神经网络理论用单个胶囊的向量输入向量输出的形式代替传统神经元的标量输入标量输出,其提出的胶囊间动态路由提供了用一种新的基于聚类的思想代替卷积神经网络中使用的池化来完成特征整合的方案。胶囊神经网络对特征的位置信息更敏感,更善于处理模糊数据以及粘连数据。需要识别的验证码字符,存在粘连和扭曲的情况,因此,研究用于对文本验证码的识别的胶囊神经网络具有重要的理论和现实意义。



技术实现要素:

为了解决以上问题,本发明提供基于指数型挤压函数驱动胶囊神经网络的文本验证码识别方法,可提高文本验证码的识别准确率,降低模型的训练复杂度,为达此目的,本发明提供基于指数型挤压函数驱动胶囊神经网络的文本验证码识别方法:包含以下步骤:

(1)获得文本验证码数据集作为训练和验证神经网络的数据,采用的是腾讯公司公开的空心验证码数据集;

(2)构建卷积层,将训练集中的数据输入卷积层。卷积操作可以发现图像的特征,卷积层的输出可以反映出图像的局部纹理、边缘和形状,该层使用稀疏连接、权值共享和等价表示等思想来强化整个学习系统;

(3)将卷积层输出的特征图输入给池化层,减少特征的维数和模型的参数,同时保证输入与输出的不变性;

(4)使用正则化方法处理池化层的输出结果,显式的使用正则化方法确保模型泛化性能;

(5)胶囊之间采用动态路由来传递特征,采用这种迭代的聚类方法使得神经网络可以根据自身特性自动更新部分参数;

(6)模型的输出层是使用softmax函数的全连接层,需要将学习到的特征表示映射到样本的标记空间。

作为本发明进一步改进,所述步骤(1)中验证码图片中的字符包含弯曲,重叠和复杂背景中的一种或几种。

作为本发明进一步改进,所述步骤(2)中的卷积操作是指,将一般的矩阵乘法运算替换为矩阵之间的卷积运算。

作为本发明进一步改进,所述步骤(3)中池化采样是指将激活函数在某一神经元及其附近神经元的输出做一个统计分析后再输出。

作为本发明进一步改进,所述步骤(4)正则化是指正则化项加入到目标函数之中,作为一个整体,衡量误差并进行反向传播。

作为本发明进一步改进,所述步骤(5)中的动态路由是指,上一层的输出被路由到所有可能的父节点,同时通过耦合系数总和为1来按比例缩小,对于每个可能的父胶囊,胶囊通过将本身的输出乘以权重矩阵来计算“预测向量”。

本发明提供一种新的识别验证码字符的神经网络,可以用于对腾讯验证码进行识别,保证所得的结果准确有效。通过使用卷积层提取输入特征,最大池化采样去除冗余信息,胶囊层经过三次路由对输入图像的标签进行有效预测。本发明利用指数型挤压函数驱动胶囊神经网络对具有堆叠和粘连的验证码字符进行识别,网络模型复杂度低,并且具有很好的识别性能。本研究结果可以为文本验证码的设计和可用性提供建议,同时也是对用于复杂场景字符识别的卷积神经网络的探索。

附图说明

图1为本发明实现的流程图;

图2为指数型挤压函数驱动胶囊神经网络的网络结构图;

图3为卷积层和胶囊层输出的特征图;

图4为全连接层的降维结果图;

图5为胶囊神经网络识别验证码字符的准确率曲线。

具体实施方式

下面结合附图与具体实施方式对本发明作进一步详细描述:

本发明提供基于指数型挤压函数驱动胶囊神经网络的文本验证码识别方法,可提高文本验证码的识别准确率,减少训练时间,降低模型复杂度。

本发明具体实施例如下:

图1为本发明的实施流程。卷积神经网络能够对学习到的特征检测器进行变换复制,这允许其将在图像中的一个位置处获取的关于权重值的知识转换到其他位置。事实证明,这在图像解释方面非常有用。虽然胶囊神经网络用矢量输出的胶囊替换卷积神经网络的标量输出特征检测器,用胶囊间动态路由替换最大池化,胶囊神经网络仍然需要能够跨空间复制学到的知识,所以除最后一层胶囊外,所有胶囊都是执行卷积的单元。与卷积神经网络一样,胶囊神经网络制作更高级别的胶囊来覆盖图像的更大区域,但与最大池化不同,胶囊神经网络不会丢弃有关该区域内实体的精确位置信息。对于低级别的胶囊,位置信息是“位置编码的”,胶囊处于被激活状态。随着层次结构提升,越来越多的位置信息在胶囊的输出向量的实值分量中被“速率编码”。这个从位置编码到速率编码的转换,与高级别胶囊代表具有更多自由度的更复杂实体这一事实相符,胶囊的维度随着提升层次结构而增加。

胶囊神经网络希望胶囊的输出向量的长度代表由胶囊表示的实体存在于当前输入中的概率。胶囊神经网络用非线性“挤压”(squash)函数,来确保将短向量能够缩小到几乎为零的长度,同时将长向量缩小到略低于1的长度。记低层胶囊为i,高一级的胶囊记为j,i传递给j的预测向量记为uji可以表示为

uji=wijai

其中wij是低级胶囊i对高一级胶囊j的权值矩阵,ai是胶囊i的输出。除去第一个胶囊层,胶囊j的总输入sj是相邻低层所有胶囊对胶囊j的预测向量的加权和,表达式如下。

cij是由迭代动态路由过程决定的耦合系数。胶囊i与相邻高层中的所有胶囊之间的耦合系数总和为1,由softmax函数确定。胶囊神经网络仅在两个相邻的胶囊层之间进行路由。由于卷积层的输出为一维,其空间中没有方向可以达成一致,因此在卷积层和胶囊层胶囊之间不使用路由。由于所有路由bij都初始化为零,最初将胶囊输出ai以相等的概率cij发送到所有的父胶囊。其初始值bij是胶囊i应该耦合到胶囊j的对数先验概率。需要满足的条件是

胶囊神经网络用输出向量的长度来表示某一特征的显著程度。为了保证胶囊输出的向量模长范围处在(0,1)之间,选择用一个squash函数对胶囊j的总输入sj进行压缩,该函数形式为

其中vj是胶囊j的输出向量,表示长度为1的向量,对压缩结果不产生影响。前一项保证,若sj的模长非常长,这部分的值会趋近于1,若sj的模长非常短,该部分的值会很小,趋近于0。这一函数形式是本发明经过对现有的归一化函数进行实验得到的,它能够对特征进行局部放大,并且很好的适配胶囊神经网络架构。

经过胶囊层提取的特征输入到全连接层进行特征整合,最终输出模型的预测标签,在损失函数的约束下完成模型对输入数据的拟合。

图2展示了胶囊神经网络的具体实现模型和参数。该模型一共21层,前15层为普通的卷积神经网络模型及与之配套的最大池化层和批量归一化层。每一层卷积的实现是使用keras框架中的conv2d层,卷积核的数量随着层数的加深逐步增多以提取输入数据更多的特征,用于将像素强度转化为局部特征检测,避免显式的特征提取,而是隐性地对训练数据进行学习。每一个conv2d层使用的激活函数是relu,目的是减少整个学习过程的计算量,同时经过relu作用之后的部分神经元输出会变成0,加强了网络的稀疏性,从而减少参数之间的依存关系。使用最大池化层的目的是保证在尽量不丢失图像特征的同时,对图像进行下采样,从而保证下一个conv2d层的输入不包含与识别任务无关的冗余信息。在批量归一化层中,通过将激活函数规范为均值和方差一致的手段,使得该激活函数的尺度变小,主要用于处理反向传播中可能会出现的梯度消失问题,另外批量归一化在一定程度上增加了模型的泛化性能,可以取代存在争议的dropout等技术,降低模型“过拟合”的风险。前15层的卷积结构的输出经过一维化延展和归一化作为胶囊层的输入矢量,胶囊层中每一个胶囊输出的是向量形式,向量长度代表某一特征与输入图片中存在的字符相似概率,向量方向代表该字符的实例化参数。一个胶囊的输出只路由到相邻层的高级胶囊。其中胶囊层属于自定义层,在该层中实现了三次路由,为了呈现的简洁在表中统称为“capsule_1”,选用3次路由来实现。胶囊神经网络的输出也需要表示为自定义层lambda_1,但事实上输出层lambda_1与卷积神经网络的最后一个全连接层没有本质上的区别,都是用于综合网络学习的特征并输出结果。经过低层胶囊对位置信息进行编码,最高级胶囊代表了更多自由度的复杂实体,该层的输出参数共106496个。

图3所示的卷积核处理输入图像之后输出的特征图。第1和第2层的卷积层输出的特征图可以直接观察到,这两层学习的是字符的形状,边缘等具体的信息。后3层的卷积主要是对字符整体轮廓和相对位置等高层次信息加以关注,其输出的特征图不能够再直观进行分辨。这是因为随着卷积层的增加,网络逐渐学到层次更高更加丰富的知识。前一卷积层的结果,会经过池化和归一化处理传递给后一层卷积,其过程不再是简单数学运算,而是进行了复杂的特征提取。另外随着逐层的卷积操作,每一层卷积输出的特征图尺寸逐渐缩小,更多的冗余信息被去除。胶囊层输出的特征图中,亮色条纹代表模型到目前阶段学习到的特征。

图4为全连接层权值降维结果。模型的输出部分是一个全连接层,为进一步分析该层的权重结构,直观地显示度量标准,本发明需要对全连接层的权重进行降维处理。选择拉普拉斯特征映射(laplacianeigenmaps,le)方法进行降维操作。le算法严格上来讲属于实现流形无监督学习思想的一种数据降维方法。le作为一种基于图的降维算法,注重从局部的角度去构建数据之间的关系,该算法的目标是使相互之间存在关联的点在降维之后的空间中表现地尽可能的靠近,这一属性保证经过该算法降维之后,仍能维持原有的数据结构。该权重的分布相对集中,存在一部分数据点呈放射状分布。可以发现,数据的分布均为中心聚类四周发散,表现出相同类别相聚,不同类别相疏的特点。这表明该全连接层提取结果的确实包含数据的高维特征。

图5展示了使用本发明识别腾讯验证码的识别准确率曲线。虚线代表训练集的准确率,实线代表验证集上的准确率。经过200次左右的训练,验证集准确率达到了93%~95%。相比于目前已发表的成果,在准确率上有了明显的提升。

由于胶囊神经网络一方面保持了卷积神经网络能够将学习到的局部知识复制到其他位置的能力。另一方面,指数型挤压函数驱动的胶囊神经网络采用动态路由这种特征聚类方式,能够对特征进行有效学习,增强了网络对于特征的表征,加速了特征提取的过程,大幅度降低了模型的复杂度。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1