一种基于CNN的QR码寻像图形缺陷恢复方法与流程

文档序号:17082794发布日期:2019-03-09 00:28阅读:503来源:国知局
一种基于CNN的QR码寻像图形缺陷恢复方法与流程

本发明涉及qr码领域,特别地,涉及一种基于cnn的qr码寻像图形缺陷恢复方法。



背景技术:

目前对于qr码的寻像图形缺失其中一处的情况,手机等其他终端依然无法识别,对于目前现有公开的一些涉及这种寻像图形缺失一处情况的恢复处理的专利都是基于对qr码的结构的深入解析以及根据qr码版本号精心设计的算法来进行的。这一处理过程复杂,不易操作,恢复效果又不够好。



技术实现要素:

为了克服现有技术的不足,本发明提供一种简洁方便,易操作,恢复效果好的基于cnn的qr码寻像图形缺陷恢复方法。

本发明解决其技术问题所采用的技术方案是:

一种基于cnn的qr码寻像图形缺陷恢复方法,包括以下步骤:

s1:输入寻像图形缺失或者缺损一处的qr码灰度图,以无损的qr码灰度图作为标签,训练卷积神经网络;

s2:得到六层的卷积神经网络;

s3:将待恢复的qr灰度图放入到六层的卷积神经网络之中;

s4:将每一层的输出结果进行处理;

s5:得到无缺损的qr码灰度图像。

优选地,所述六层的卷积神经网络前三层为卷积层和后三层为转置卷积层,前三层的卷积层将图片逐层变小,后三层的转置卷积层再将图片逐层变大。

优选地,所述卷积层和转置卷积层输出的结果分别进行批归一化和leakrelu激活函数处理,收敛速度快,过程简单。

本发明的有益效果:

由上述方案可知,输入寻像图形缺失或者缺损一处的qr码灰度图,以无损的qr码灰度图作为标签,训练卷积神经网络,得到六层结构的卷积神经网络。将待恢复的图片输入到训练完成的卷积神经网络,经过处理可以得到寻像图形完整的qr码。该方法不需要额外的图片预处理,不用根据qr码版本号精心设计算法,简洁方便,易操作,恢复效果好,适应能力强。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明qr码结构图;

图2是本发明所用的卷积操作示意图;

图3是本发明所用的转置卷积操作示意图。

具体实施方式

参照图1、图2、图3,一种基于cnn的qr码寻像图形缺陷恢复方法,包括以下步骤:

一种基于cnn的qr码寻像图形缺陷恢复方法,包括以下步骤:s1:输入寻像图形缺失或者缺损一处的qr码灰度图,以无损的qr码灰度图作为标签,训练卷积神经网络;

s2:得到六层的卷积神经网络;

s3:将待恢复的qr灰度图放入到六层的卷积神经网络之中;

s4:将每一层的输出结果进行处理;

s5:得到无缺损的qr码灰度图像。

cnn为卷积神经网络的缩写,卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。

输入寻像图形缺失或者缺损一处的qr码灰度图,以无损的qr码灰度图作为标签,训练卷积神经网络,得到六层结构的卷积神经网络。将待恢复的图片输入到训练完成的卷积神经网络,经过处理可以得到寻像图形完整的qr码。该方法不需要额外的图片预处理,不用根据qr码版本号精心设计算法,简洁方便,易操作,恢复效果好,适应能力强。

所述六层的卷积神经网络前三层为卷积层和后三层为转置卷积层,前三层的卷积层将图片逐层变小,后三层的转置卷积层再将图片逐层变大。

所述卷积层和转置卷积层输出的结果分别进行批归一化和leakrelu激活函数处理,收敛速度快,过程简单。

具体的操作步骤如下:

将一张寻像图形缺失或者破损一处的qr码的灰度图作为输入,无缺损图像作为目标图像,训练整个卷积神经网络。将缺损图像放入到训练好的卷积神经网络,可以得到寻像图形无缺损的qr码灰度图像。

卷积操作的计算方式为:已知输入尺寸i,卷积核尺寸k,步长s,补零尺寸p,则输出边长大小为:由卷积的定义,当卷积核大小为3×3时,y=cx卷积操作矩阵c排列如下:

转置卷积操作的计算方式为:已知输入尺寸i,卷积核尺寸k,步长s,补零尺寸p,则输出边长大小为:o=s(i-1)+k-2p。由转置卷积的定义,当卷积核大小为3×3时,y=ctx卷积操作矩阵ct排列如下:

图2和图3中下方图像为输入,上方图像为输出。

卷积神经网络的整体结构为六层,为三层卷积和三层转置卷积,对于每一层卷积后的输出结果,分别进行批归一化和leakrelu激活函数处理。损失函数为输出图片和目标图片之间的逐像素均方误差(mse),即输出图片与目标图片逐像素灰度值之差的平方的期望值,计算公式为l(x,y)=l={l1,...,ln}t,ln=(xn-yn)2,其中x为输出值,y为目标值,n为批的大小。参数优化的方法采用adam算法。记批的大小为n,通道数为c,输入图片高为h,宽为w,输入尺寸为(n,cin,h,w),输出尺寸为(n,cout,hout,wout),具体网络参数设置如下:

第一层卷积层的卷积核为5×5,输出通道数cout为8,图片填充为0,步长设置为1×1。即输入图片数据量为n×1×h×w,第一层对应的输出结果的数据量为n×8×(h-4)×(w-4)。经过卷积操作,将卷积操作所得结果根据进行批归一化处理。最后使用leakrelu激活函数leakrelu(x1)=max(0,x1)+0.01×min(0,x1)进行运算。

第二层卷积层的卷积核为5×5,输出通道数cout为16,图片填充为0,步长设置为1×1。即输入数据量为n×8×(h-4)×(w-4),第二层对应的输出结果的数据量为n×16×(h-8)×(w-8)。经过卷积操作,将卷积操作所得结果根据进行批归一化处理。最后使用leakrelu激活函数leakrelu(x2)=max(0,x2)+0.01×min(0,x2)进行运算。

第三层卷积层的卷积核为5×5,输出通道数cout为16,图片填充为0,步长设置为1×1。即输入数据量为n×16×(h-8)×(w-8),第三层对应的输出结果的数据量为n×16×(h-12)×(w-12)。经过卷积操作,将卷积操作所得结果根据进行批归一化处理。最后使用leakrelu激活函数leakrelu(x3)=max(0,x3)+0.01×min(0,x3)进行运算。

第四层为转置卷积层,转置层的卷积核为5×5,输出通道数cout为16,图片填充为0,步长设置为1×1。即输入数据量为n×16×(h-12)×(w-12),第四层对应的输出结果的数据量为n×16×(h-8)×(w-8)。经过转置卷积操作,将转置卷积操作所得结果根据进行批归一化处理。最后使用leakrelu激活函数leakrelu(x4)=max(0,x4)+0.01×min(0,x4)进行运算。

第五层为转置卷积层,转置层的卷积核为5×5,输出通道数cout为8,图片填充为0,步长设置为1×1。即输入数据量为n×16×(h-8)×(w-8),第五层对应的输出结果的数据量为n×8×(h-4)×(w-4)。经过转置卷积操作,将转置卷积操作所得结果根据进行批归一化处理。最后使用leakrelu激活函数leakrelu(x5)=max(0,x5)+0.01×min(0,x5)进行运算。

第六层为转置卷积层,转置层的卷积核为5×5,输出通道数为1,图片填充为0,步长设置为1×1。即输入数据量为n×8×(h-4)×(w-4),第六层对应的输出结果的数据量为n×1×h×w。经过转置卷积操作,将转置卷积操作所得结果根据进行批归一化处理。最后使用prelu激活函数prelu(x6)=max(0,x6)+0.25×min(0,x6)进行运算。

以上所述只是本发明的较佳实施方式,但本发明并不限于上述实施例,只要其以任何相同或相似手段达到本发明的技术效果,都应落入本发明的保护范围之内。

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