一种二维码识别方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机视觉技术领域,特别是涉及一种二维码识别方法、装置、设备及可读存储介质。
背景技术
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。二维码在信息获取、网站跳转、广告推送、手机电商、防伪溯源、优惠促销、会员管理、手机支付等场景中被广泛应用。
但是,在现实应用场景下拍摄的二维码图片信息有部分丢失,进一步造成的识别困难问题。目前,对模糊二维码图像进行恢复主要集中在图片受到的污染的估计,例如运动模糊、高斯噪声、随机噪声等,图片恢复处理过程中包含大量人工调节的参数,而且实际图片相对复杂,面对不同污染程度的图片时参数的选择需要人的经验,恢复准确率较低,进一步导致二维码识别准确率较低。
综上所述,如何有效地提升二维码识别准确率等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种二维码识别方法、装置、设备及可读存储介质,以通过提高模糊二维码图像恢复准确率,进一步提升二维码识别准确率。
为解决上述技术问题,本发明提供如下技术方案:
一种二维码识别方法,包括:
获取模糊二维码图像训练集,并对生成器和判别器进行初始化;其中,所述生成器为包括残差密集模块的神经网络;
利用所述模糊二维码图像训练集,在对抗生成网络训练模式下交替训练所述生成器和所述判别器,直到所述生成器和所述判别器收敛,获得目标生成器;
获取待识别的目标模糊二维码图像,并将所述目标模糊二维码图像输入至所述目标生成器中进行图像恢复,获得目标二维码图像;
对所述目标二维码图像进行识别,获得识别结果。
优选地,获取所述模糊二维码图像训练集,包括:
利用二维码生成软件生成原始二维码图像集;
对所述原始二维码图像集内的原始二维码图像进行模糊化处理,获得所述模糊二维码图像训练集。
优选地,在所述利用二维码生成软件生成原始二维码图像集之后,在对所述原始二维码图像集中的原始二维码进行模糊化处理,获得模糊二维码图像训练集之前,还包括:
对所述原始二维码图像集中的所述原始二维码图像进行图像数据增强处理。
优选地,所述生成器的训练过程,包括:
将所述模糊二维码图像训练集输入至所述生成器中进行图像恢复,获得恢复图像集合;
利用所述判别器判断所述恢复图像集合中的各个恢复图像是否清晰,获得判断结果;
利用所述判断结果对所述生成器进行参数调整。
优选地,所述在对抗生成网络训练模式下交替训练所述生成器和所述判别器,直到所述生成器和所述判别器收敛,获得目标生成器,包括:
在所述对抗生成网络训练模式下,每完成一轮所述生成器和所述判别器的交替训练时,利用损失函数计算所述生成器和所述判别器的总体损失值;
在所述总体损失值的变化差异小于预设阈值时,确定所述生成器和所述判别器收敛,停止训练,并将当前时刻的所述生成器作为所述目标生成器。
优选地,将所述目标模糊二维码图像输入至所述目标生成器中进行图像恢复,获得目标二维码图像,包括:
对所述目标模糊二维码图像的尺寸进行调整,并将调整后的所述目标模糊二维码图像输入至所述目标生成器中进行图像恢复,获得所述目标二维码图像。
优选地,在所述目标生成器为包括第一卷积模块、所述残差密集模块和第二卷积模块的神经网络时,将所述目标模糊二维码图像输入至所述目标生成器中进行图像恢复,获得目标二维码图像,包括:
将所述目标模糊二维码图像输入至所述目标生成器中;
利用所述第一卷积模块对所述目标模糊二维码图像进行通道数量变换,获得第一特征张量;
利用所述残差密集模块基于所述第一特征张量进行计算,获得第二特征张量;
利用所述第二卷积模块对所述第二特征张量进行通道反变换,获得所述目标二维码图像。
一种二维码识别装置,包括:
初始化模块,用于获取模糊二维码图像训练集,并对生成器和判别器进行初始化;其中,所述生成器为包括残差密集模块的神经网络;
目标生成器获得模块,用于利用所述模糊二维码图像训练集,在对抗生成网络训练模式下交替训练所述生成器和所述判别器,直到所述生成器和所述判别器收敛,获得目标生成器;
图像恢复模块,用于获取待识别的目标模糊二维码图像,并将所述目标模糊二维码图像输入至所述目标生成器中进行图像恢复,获得目标二维码图像;
图像识别模块,用于对所述目标二维码图像进行识别,获得识别结果。
一种二维码识别设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述二维码识别方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述二维码识别方法的步骤。
应用本发明实施例所提供的方法,获取模糊二维码图像训练集,并对生成器和判别器进行初始化;其中,生成器为包括残差密集模块的神经网络;利用模糊二维码图像训练集,在对抗生成网络训练模式下交替训练生成器和判别器,直到生成器和判别器收敛,获得目标生成器;获取待识别的目标模糊二维码图像,并将目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像;对目标二维码图像进行识别,获得识别结果。
在对抗生成网络训练模式下,基于模糊二维码图像训练集交替训练生成器和判别器。其中,生成器为包括残差密集模块的神经网络,残差密集模块可将输入的原图恢复为高分辨率的图像,即具有图像恢复处理能力。在生成器与判别器的博弈过程中,基于神经网络所具有的学习能够可使得训练过程自动进行而无需人为干涉,便能够提升图片恢复准确率。即,能够使得生成器对模糊二维码图片的恢复处理效果越来越显著。在训练结束之后,即生成器和判别器收敛之后,便可获得目标生成器。在获取到待识别的目标模糊二维码图像之后,便可将目标模糊二维码图像输入至目标生成器进行图像恢复,以得到清晰的目标二维码图像。然后对目标二维码图像进行识别,得到识别结果。即,在二维码识别过程中,对于模糊二维码图像首先输入至图片恢复表现更为优秀的目标生成器进行图片恢复,相应的,恢复得到的目标二维码图像则更加有利于二维码识别。如此,便可提升二维码识别的准确率。
相应地,本发明实施例还提供了与上述二维码识别方法相对应的二维码识别装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种二维码识别方法的实施流程图;
图2为本发明实施例中一种二维码识别装置的结构示意图;
图3为本发明实施例中一种二维码识别设备的结构示意图;
图4为本发明实施例中一种二维码识别设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种二维码识别方法的流程图,该方法包括以下步骤:
S101、获取模糊二维码图像训练集,并对生成器和判别器进行初始化。
其中,生成器为包括残差密集模块的神经网络。
在本发明实施例中,可预先设置生成器和判别器,其中生成器为包括残差密集模块的神经网络,判别器实现判断图像是否清晰即可。其中,残差密集模块可将输入的原图恢复为高分辨率的图像,即具有图像恢复处理能力,具体的残差密集模块如何进行图像恢复,可参见残差密集技术的具体实现过程,在此不再一一赘述。另外,判别器主要用于与生成器进行博弈训练,即判别器能够实现判断图像是否清晰即可,可采用卷积网络如常见的VGG-16网络或VGG-19网络来设计判别器。
获取到模糊二维码图像训练集之后,便可对生成器和判别器进行初始化。其中,初始化生成器和判别器即将生成器和判别器内的参数初始化。
获取模糊二维码图像训练集的方式包括:直接读取预先存储的真实模糊二维码图像。优选地,考虑到实际应用场景下,难以找到大量的模糊二维码图像,因此还可通过对清晰二维码图像进行模糊化的方式来得到仿真数据,即得到模糊二维码图像训练集。具体的可利用二维码生成软件生成原始二维码图像集;对原始二维码图像集内的原始二维码图像进行模糊化处理,获得模糊二维码图像训练集。其中,二维码生成软件可选用能够生成二维码的软件即可,无需特别设置;模糊化处理具体为对每一张原始二维码图像进行随机翻转、随机裁剪、加入噪声、降采样等模糊化方式中的至少一种模糊化方式进行模糊处理。进一步,为了提高模糊二维码图像训练集的多样性、真实性和数量,还可同时通过混合两种模糊二维码图像,然后将真实数据和仿真数据进行混合,得到模糊二维码图像训练集。
优选地,为了提高模糊二维码数据的多样性,还可在利用二维码生成软件生成原始二维码图像集之后,在对原始二维码图像集中的原始二维码进行模糊化处理,获得模糊二维码图像训练集之前,对原始二维码图像集中的原始二维码图像进行图像数据增强处理。其中,图像数据增强处理可参见常见的图像数据增强处理,如可选用常见的镜像、翻转、转置、颜色空间转换、图像调整(如亮度调整,对比度调整,gammer调整)等增强处理方式中的一种或多种方式对原始二维码图像集内的原始二维码图像进行随机处理。
S102、利用模糊二维码图像训练集,在对抗生成网络训练模式下交替训练生成器和判别器,直到生成器和判别器收敛,获得目标生成器。
其中,生成器即为对输入的模糊二维码图像进行图像恢复处理的神经网络,判别器为能够判断图像是否清晰的判决网络。在对抗生成网络训练模式交替训练生成器和判别器即令判别器对生成器的输出图像进行身是否清晰的判断,并将判断结果反馈给生成器以进行参数调整。而对判别器进行训练则是提升判别器的判决准确率。反复交替训练生成器和判别器则会使得生成器的图像恢复处理准确率更高,同时也使得判别器的判决能力越明显。对抗网络训练过程即为生成器与判别器的博弈过程,当判别器和生成器收敛时,便可认为基于当前的模糊二维码图像训练集无法再提升生成器和判别器,可停止训练。可直接将此时的生成器作为目标生成器。
其中,生成器的训练过程,包括:
步骤一、将模糊二维码图像训练集输入至生成器中进行图像恢复,获得恢复图像集合;
步骤二、利用判别器判断恢复图像集合中的各个恢复图像是否清晰,获得判断结果;
步骤三、利用判断结果对生成器进行参数调整。
为了便于描述,下面将上述三个步骤结合起来进行说明。
首先将模糊二维码图像训练即输入至生成器中进行图像恢复,得到恢复图像集合;由于本发明实施例主要针对二维码识别过程中的模糊二维码图像恢复处理,因此可利用判别器判断恢复图像集合中的各个恢复图像是否清晰即可。具体的,判断恢复图像是否清晰可通过能否准确识别二维码图像来确定,例如若能够识别,则表明恢复图像是清晰的;若不能识别,则表明恢复图像是模糊的。得到判断结果之后,便可利用判断结果对生成器进行参数调整。具体的,由于生成器为神经网络,而神经网络具有学习能力,即生成器可基于判断结果对自行进行参数调整。
其中,确定训练完成与否的判决过程可具体为通过生成器和判别器的总体损失值进行判决。即,在对抗生成网络训练模式下交替训练生成器和判别器,直到生成器和判别器收敛,包括:
步骤一、在对抗生成网络训练模式下,每完成一轮生成器和判别器的交替训练时,利用损失函数计算生成器和判别器的总体损失值;
步骤二、在总体损失值的变化差异小于预设阈值时,确定生成器和判别器收敛,停止训练。
为了便于描述,下面将上述两个步骤结合起来进行说明。
在对抗网络训练模式下,生成器训练和判别器训练的交替进行的,在本发明实施例中将训练一次生成器和训练一次判别器称为一轮训练。考虑到到在进行多轮训练之后,难以再提升生成器和判别器的性能,此时可无需重复进行大量效果不明显的重复训练,直接视为达到收敛。具体的,可在每一轮交替训练时,便可利用损失函数计算生成器和判别器的总体损失值。例如可采用常规的表示为:
的损失函数计算总体损失值,其中I
HR是清晰图片,I
HR是生成器生成的恢复图片,G、D分别代表生成器网络、判别器网络。当总体损失值的变化差异小于预设阈值时,则确定生成器和判别器收敛,便可停止训练。其中,判别器和生成器收敛指判别器和生成器的优化训练结果已达到难以优化的程度,或已达到最佳组合优化程序。
S103、获取待识别的目标模糊二维码图像,并将目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像。
其中,待识别的目标模糊二维码图像可为进行二维码图像识别时,无法识别出内容的模糊二维码图像。将目标模糊二维码图像输入至目标生成器中进行图像恢复,得到目标二维码图像。由于该目标生成器为与判别器进行博弈训练之后得到的,此时可认为该目标二维码图像即为目标模糊二维码图像准确恢复后的图像。具体的,考虑到在实际应用中,目标模糊二维码图像的大小可能会与目标生成器的不匹配,因此,还可在训练结束后,对目标模糊二维码图像的尺寸进行调整,并将调整后的目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像。例如,为了避免对目标模糊二维码图像进行降采样,可将生成器的输入图像的大小设置为较大数值如100*100(相应地对生成器进行训练时,模糊二维码图像训练集的各个图像大小也为100*100),此时则可将目标模糊二维码图像调整至100*100。
其中,图像恢复处理过程即为目标生成器中各个模块对目标模糊二维码图像进行处理的过程。在目标生成器为包括第一卷积模块、残差密集模块和第二卷积模块的神经网络时,图像恢复处理过程,包括:
步骤一、将目标模糊二维码图像输入至生成器中;
步骤二、利用第一卷积模块对目标模糊二维码图像进行通道数量变换,获得第一特征张量;
步骤三、利用残差密集模块基于第一特征张量进行计算,获得第二特征张量;
步骤四、利用第二卷积模块对第二特征张量进行通道反变换,获得目标二维码图像。
为便于描述,下面将上述四个步骤结合起来进行说明。
其中,第一卷积模块和第二卷积模块仅用于表示卷积模块的在目标生成器中的层级顺序。
考虑到用于二维码识别的二维码图像大多是RGB格式的图像,为了更好的利用残差密集模块进行图像恢复处理,可使用第一卷积模块将3通道的目标模糊二维码图像进行通道变换,以使用残差密集模块的图像恢复处理。其中,通道变换即将3通道的目标模糊二维码图像转换为n通道的第一特征张量,n的数值可为32、64或128。然后利用残差密集模块基于第一特征张量进行计算,获得第二特征张量,具体的,在本发明实施例中为了提高处理效率,还可设置多个残差密集模块,如6个。然后在利用第二卷积模块对第二特征张量进行通道反变换,即使得通道数量还原为3通道RGB格式,即可获得目标二维码图像。可见,在本发明实施例中,将目标模糊二维码图像输入目标生成器中进行处理之后,便可得到目标二维码图像。即本发明实施例中的图像恢复处理为端到端的,能够直接从模糊二维码图像恢复出任意准确识别二维码的目标生成器,相对于现有的图像恢复省去了中间参数的估计环节,缩短图像恢复耗时。
S104、对目标二维码图像进行识别,获得识别结果。
在恢复得到目标二维码图像之后,便可对目标二维码图像进行识别,得到识别结果。
应用本发明实施例所提供的方法,获取模糊二维码图像训练集,并对生成器和判别器进行初始化;其中,生成器为包括残差密集模块的神经网络;利用模糊二维码图像训练集,在对抗生成网络训练模式下交替训练生成器和判别器,直到生成器和判别器收敛,获得目标生成器;获取待识别的目标模糊二维码图像,并将目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像;对目标二维码图像进行识别,获得识别结果。
在对抗生成网络训练模式下,基于模糊二维码图像训练集交替训练生成器和判别器。其中,生成器为包括残差密集模块的神经网络,残差密集模块可将输入的原图恢复为高分辨率的图像,即具有图像恢复处理能力。在生成器与判别器的博弈过程中,基于神经网络所具有的学习能够可使得训练过程自动进行而无需人为干涉,便能够提升图片恢复准确率。即,能够使得生成器对模糊二维码图片的恢复处理效果越来越显著。在训练结束之后,即生成器和判别器收敛之后,便可获得目标生成器。在获取到待识别的目标模糊二维码图像之后,便可将目标模糊二维码图像输入至目标生成器进行图像恢复,以得到清晰的目标二维码图像。然后对目标二维码图像进行识别,得到识别结果。即,在二维码识别过程中,对于模糊二维码图像首先输入至图片恢复表现更为优秀的目标生成器进行图片恢复,相应的,恢复得到的目标二维码图像则更加有利于二维码识别。如此,便可提升二维码识别的准确率。
实施例二:
为便于本领域技术人员更好地理解本发明实施例所提供的二维码识别方法,下面结合具体的应用场景为例对本发明实施例所提供的二维码识别方法进行详细说明。
本发明实施例所提供的二维码识别方法主要解决现实工业场景下拍摄的二维码图片信息有部分丢失所造成的识别困难问题,利用深度学习以及二维码本身的信息冗余性,将原图恢复到能够正确识别。具体实现过程包括:利用软件生成部分模糊二维码图片加上现场收集的图片组合成训练数据集;数据增强;设计对抗生成网络结构;用预处理好的数据集训练所设计的网路;对模糊二维码图像进行恢复,基于恢复得到的二维码图像进行二维码识别。如此便能够实现端到端的,能够直接从模糊二维码图像恢复出较容易准确识别二维码的网络,省去了中间参数的估计;同时,能够有效处理自然和人工合成的模糊图像,获得更好的效果。
其中,数据集构建过程可具体为通过二维码生成软件生成8000张750*750像素的二维码图片,通过随机翻转、随机裁剪、加入噪声等操作后再降采样到100*100大小(工业场景下的数据大小约为100*100)。然后搜集3000张现实的真实模糊二维码数据抽取其中1000张与合成数据组成训练数据集;将剩余的2000张真实环境下的模糊二维码图片作为测试集。需要说明的是,数据集涉及到的图片量以及图片大小均可进行调整。其中图片量尽量在5000张以上保证训练质量,图片的大小在100*100像素左右,不要小于50*50,否则信息丢失太多,反而对训练不好。在输入数据前的数据增强阶段,可将输入尺寸固定(如固定为100*100)。当然,在制作训练数据时,可直接将尺寸定为100*100,数据增强阶段便可不用调整图像大小。
生成器网络设计具体为,为了将模糊二维码信息尽可能正确恢复出来,所以作为生成器的神经网络无降采样的过程,且输入与输出拥有同样的尺寸。另外不同于图像锐化,网络的优化方向是使得输出图片更加容易识别,而不是简单的人类视觉上的清晰化。所以设计网络时,可设计为输入图像经过一个卷积模块后,再依次通过6个残差密集模块,最后在通过2个卷积层将输出通道固定与输入数据的通道数相同。取消常规网络中所进行的归一化过程,即取消BN层,设置密集型模块,可保证生成器速度与图像恢复处理性能。其中,卷积模块后依次输入6个设计为一样结构的残差密集模块,前面的卷积模块是对输入数据预处理,将原来的3通道变换为64通道,方便后面密集模块使用;选用6个是针对我们的数据调整的,如果面对的图片尺寸更大,恢复更困难那么可以相应的增加密集模块数量,数量越多可以面向更复杂的任务,但同时算法运行时间也会增加,相对于100*100的图片大小优选设置6个残差密集模块。
判别器主要用于分辨出图片是当前生成器输出的还是来自于Groundtruth(用于有监督训练的训练集的分类准确性),可基于经典的VGG-19网络来设计判别器,将网络最终的线性层输出经Sigmoid函数后固定到尺度为1,即二分类。1代表输入为Groundtruth,0代表当前输入是由生成器网络生成的。当然,除了VGG-19,还可选用VGG-16等判决网络作为判别器,只要判别器能够用来分辨得到的输入图像是生成器生成的还是Groundtruth即可。
网络训练过程:将建立好的图片数据集进行数据增强处理后,按Bacthsize=16进行读取作为输入数据流;基于PyTorch框架修改好生成器和判别器模块,然后将学习率设置为0.001,随机初始化网络,从头训练;不断交替训练生成器网络以及判别器网络,总体损失函数表示为:
使用训练集数据训练模型,总共训练50轮,最后在测试集数据上检测模型的整体效果。具体的,生成对抗网络的构架就是利用生成器和判别器相互学习来提高模型训练效果,生成器得到的图即为预期的恢复处理后的图,为了提高生成器的图片恢复处理准确率可通过将输出图片与Groundtruth的真实图片对比来骗过判别器,在判别器也分辨不出生成器的输出是‘真’或‘假’时表明生成器得到的图非常接近真实图片了,模型训练结束。判别器的存在就是让生成器的输出更加接近人的感官上的真实,防止使用损失函数带来人工痕迹。
训练结束之后,直接利用生成器网络得到输出就可以获得恢复的图片,即可利用生成器对模糊二维码图像进行恢复,并对生成器输出的二维码图像进行二维码识别。与传统方法相比,本发明实施例所提供的二维码识别方法的优点主要是恢复的效果更好,更利于识别,另外不需要像传统方法不断地针对不同场景调节参数。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种二维码识别装置,下文描述的二维码识别装置与上文描述的二维码识别方法可相互对应参照。
参见图2所示,该装置包括以下模块:
初始化模块101,用于获取模糊二维码图像训练集,并对生成器和判别器进行初始化;其中,生成器为包括残差密集模块的神经网络;
目标生成器获得模块102,用于利用模糊二维码图像训练集,在对抗生成网络训练模式下交替训练生成器和判别器,直到生成器和判别器收敛,获得目标生成器;
图像恢复模块103,用于获取待识别的目标模糊二维码图像,并将目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像;
图像识别模块104,用于对目标二维码图像进行识别,获得识别结果。
应用本发明实施例所提供的装置,获取模糊二维码图像训练集,并对生成器和判别器进行初始化;其中,生成器为包括残差密集模块的神经网络;利用模糊二维码图像训练集,在对抗生成网络训练模式下交替训练生成器和判别器,直到生成器和判别器收敛,获得目标生成器;获取待识别的目标模糊二维码图像,并将目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像;对目标二维码图像进行识别,获得识别结果。
在对抗生成网络训练模式下,基于模糊二维码图像训练集交替训练生成器和判别器。其中,生成器为包括残差密集模块的神经网络,残差密集模块可将输入的原图恢复为高分辨率的图像,即具有图像恢复处理能力。在生成器与判别器的博弈过程中,基于神经网络所具有的学习能够可使得训练过程自动进行而无需人为干涉,便能够提升图片恢复准确率。即,能够使得生成器对模糊二维码图片的恢复处理效果越来越显著。在训练结束之后,即生成器和判别器收敛之后,便可获得目标生成器。在获取到待识别的目标模糊二维码图像之后,便可将目标模糊二维码图像输入至目标生成器进行图像恢复,以得到清晰的目标二维码图像。然后对目标二维码图像进行识别,得到识别结果。即,在二维码识别过程中,对于模糊二维码图像首先输入至图片恢复表现更为优秀的目标生成器进行图片恢复,相应的,恢复得到的目标二维码图像则更加有利于二维码识别。如此,便可提升二维码识别的准确率。
在本发明的一种具体实施方式中,初始化模块101,具体用于利用二维码生成软件生成原始二维码图像集;对原始二维码图像集内的原始二维码图像进行模糊化处理,获得模糊二维码图像训练集。
在本发明的一种具体实施方式中,初始化模块101,具体用于在利用二维码生成软件生成原始二维码图像集之后,对原始二维码图像集中的原始二维码图像进行图像数据增强处理。
在本发明的一种具体实施方式中,目标生成器获得模块102,具体用于执行生成器的训练过程,训练过程包括:将模糊二维码图像训练集输入至生成器中进行图像恢复,获得恢复图像集合;利用判别器判断恢复图像集合中的各个恢复图像是否清晰,获得判断结果;利用判断结果对生成器进行参数调整。
在本发明的一种具体实施方式中,目标生成器获得模块102,具体用于在对抗生成网络训练模式下,每完成一轮生成器和判别器的交替训练时,利用损失函数计算生成器和判别器的总体损失值;在总体损失值的变化差异小于预设阈值时,确定生成器和判别器收敛,停止训练,并将当前时刻的生成器作为目标生成器。
在本发明的一种具体实施方式中,图像恢复模块103,具体对目标模糊二维码图像的尺寸进行调整,并将调整后的目标模糊二维码图像输入至目标生成器中进行图像恢复,获得目标二维码图像。
在本发明的一种具体实施方式中,图像恢复模块103,具体用于在目标生成器为包括第一卷积模块、残差密集模块和第二卷积模块的神经网络时,将目标模糊二维码图像输入至目标生成器中;利用第一卷积模块对目标模糊二维码图像进行通道数量变换,获得第一特征张量;利用残差密集模块基于第一特征张量进行计算,获得第二特征张量;利用第二卷积模块对第二特征张量进行通道反变换,获得目标二维码图像。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种二维码识别设备,下文描述的一种二维码识别设备与上文描述的一种二维码识别方法可相互对应参照。
参见图3所示,该二维码识别设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的二维码识别方法的步骤。
具体的,请参考图4,为本实施例提供的一种二维码识别设备的具体结构示意图,该二维码识别设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在二维码识别设备301上执行存储介质330中的一系列指令操作。
二维码识别设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的二维码识别方法中的步骤可以由二维码识别设备的结构实现。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种二维码识别方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的二维码识别方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。