CN116894792B - 一种二维码修复方法、装置、电子设备及存储介质 - Google Patents
一种二维码修复方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116894792B CN116894792B CN202311153521.6A CN202311153521A CN116894792B CN 116894792 B CN116894792 B CN 116894792B CN 202311153521 A CN202311153521 A CN 202311153521A CN 116894792 B CN116894792 B CN 116894792B
- Authority
- CN
- China
- Prior art keywords
- dimensional code
- loss
- neural network
- repairing
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000013528 artificial neural network Methods 0.000 claims abstract description 89
- 230000007547 defect Effects 0.000 claims abstract description 42
- 238000007781 pre-processing Methods 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 81
- 230000008439 repair process Effects 0.000 claims description 48
- 238000012549 training Methods 0.000 claims description 24
- 230000004913 activation Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 238000011176 pooling Methods 0.000 claims description 12
- 238000011478 gradient descent method Methods 0.000 claims description 4
- 230000002950 deficient Effects 0.000 abstract description 12
- 238000013461 design Methods 0.000 abstract description 7
- 238000007796 conventional method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 230000000875 corresponding effect Effects 0.000 description 16
- 230000000694 effects Effects 0.000 description 10
- 238000012937 correction Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/52—Scale-space analysis, e.g. wavelet analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供一种二维码修复方法、装置、电子设备及存储介质,涉及二维码技术领域。该装置包括利用已训练的二维码修复神经网络对待修复二维码进行预处理;利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征;将所述图像特征输入所述二维码修复神经网络中的解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。该方法使用二维码修复神经网络对有缺陷的二维码进行快速、高质量的修复,可大大提升二维码解码的速度及成功率,使用编码器‑解码器结构,结构简明清晰,且模块化设计可根据需求方便地进行缩放,适用于不同缺陷程度的二维码修复,解决了现有方法具有使用限制且成功率不高的问题。
Description
技术领域
本申请涉及二维码技术领域,具体而言,涉及一种二维码修复方法、装置、电子设备及存储介质。
背景技术
在当今社会,二维码的使用已经渗透到了方方面面。无论是人们日常生活的购物、出行、交友等场景,还是工业生产中产品的标识,亦或是物流运输中包裹的定位与跟踪,都与二维码密不可分。但是在实际使用中,通常由于各种自然不可抗力以及人为因素,会导致二维码出现破损、脏污、模糊等情况,导致二维码不可读取,因此针对二维码的修复技术必不可少。
目前常用的二维码修复方式是在二维码中添加纠错码,通过在二维码中添加冗余的信息,当二维码出现破损等情况时,利用冗余信息对原二维码进行解码,但纠错码只能对二维码破损面积很小的二维码进行修复,难以处理比较明显的破损或模糊;也有利用数字图像处理技术解决以上问题的方法,对模糊的二维码进行成像分析,通过滤波等图像技术对模糊的二维码进行处理得到清晰的二维码,但需要进行各种参数设置,比较繁琐,且一旦出现二维码图像光照不均、背景颜色变化大的情况就会失效,修复成功率不高。
发明内容
本申请实施例的目的在于提供一种二维码修复方法、装置、电子设备及存储介质,采用已训练的二维码修复神经网络对二维码进行快速、高质量的修复,大大提高修复成功率,解决了现有方法具有使用限制且成功率不高的问题。
本申请实施例提供了一种二维码修复方法,所述方法包括:
利用已训练的二维码修复神经网络对待修复二维码进行预处理,所述二维码修复神经网络是利用辅助网络同时计算与辅助网络对应的图像特征的损失以及输出端的码字损失进行训练得到的;
利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征;
将所述图像特征输入所述二维码修复神经网络中的解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。
在上述实现过程中,使用二维码修复神经网络对有缺陷的二维码进行快速、高质量的修复,可大大提升二维码解码的速度及成功率,使用编码器-解码器结构,结构简明清晰,且模块化设计可根据需求方便地进行缩放,适用于不同缺陷程度的二维码修复,解决了现有方法具有使用限制且成功率不高的问题。
进一步地,所述利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征,包括:
将预处理后的待修复二维码输入第一编码器,经过计算操作后获得第一尺度特征;
将所述第一尺度特征输入第二编码器,经过计算操作后获得第二尺度特征;
将所述第二尺度特征输入第三编码器,经过计算操作后获得第三尺度特征,其中,所述计算操作包括卷积、池化和激活操作。
在上述实现过程中,三个编码器串联,分别提取不同分辨率的特征并传递给下一级编码器,实现了图像特征的提取。
进一步地,所述方法还包括对所述二维码修复神经网络进行训练:
将缺陷二维码输入二维码修复神经网络,对应的无缺陷的理想二维码输入辅助网络,所述二维码修复神经网络和所述辅助网络的结构相同;
对所述二维码修复神经网络所产生的特征以及所述辅助网络所产生的特征进行损失计算;
计算输出的修复二维码和理想二维码的损失;
获得输出的修复二维码和理想二维码经过码字损失计算后的损失;
将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,再重新进行上述损失计算,直至各个损失结果达到期望值,得到训练后的二维码修复神经网络。
在上述实现过程中,利用辅助网络以及多种损失特别是码字损失对二维码修复神经网络进行训练,使用辅助网络可提升训练效果,使用多种损失特别是码字损失,可以使修复的二维码更加符合解码要求,提高解码的成功率。
进一步地,所述获得输出的修复二维码和理想二维码经过码字损失计算后的损失,包括:
将修复二维码和所述理想二维码分别按照设定码字排布顺序拆分成重组为多个码字;
计算修复二维码和理想二维码每组对应位置处的码字之间的差异度,得到多个损失值;
将所述损失值进行加权计算,得到经过码字损失计算后的损失。
在上述实现过程中,将损失值进行加权计算,使得缺陷二维码的码字损失数值更大,与解码难度呈正相关,因此修复得到的二维码更符合解码要求,解码成功率更高。
进一步地,所述将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,包括:
得到所有损失的加权结果后根据链式法则依次对所述二维码修复神经网络的各个编码器和解码器对应的参数进行求导,获得梯度信息;
基于所述梯度信息并利用梯度下降法对所述二维码修复神经网络的参数进行更新。
在上述实现过程中,利用反向传播对参数进行更新,直到达到最佳的训练效果,提高了二维码修复效果。
本申请实施例还提供一种二维码修复装置,所述装置包括:
预处理模块,用于利用已训练的二维码修复神经网络对待修复二维码进行预处理,所述二维码修复神经网络是利用辅助网络,同时计算与辅助网络对应的图像特征的损失以及输出端的码字损失进行训练得到的;
编码模块,用于利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征;
解码模块,用于将所述图像特征输入所述二维码修复神经网络中的解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。
在上述实现过程中,使用二维码修复神经网络对有缺陷的二维码进行快速、高质量的修复,可大大提升二维码解码的速度及成功率,使用编码器-解码器结构,结构简明清晰,且模块化设计可根据需求方便地进行缩放,适用于不同缺陷程度的二维码修复,解决了现有方法具有使用限制且成功率不高的问题。
进一步地,所述编码模块包括:
第一编码器模块,用于将预处理后的待修复二维码输入第一编码器,经过计算操作后获得第一尺度特征;
第二编码器模块,用于将所述第一尺度特征输入第二编码器,经过计算操作后获得第二尺度特征;
第三编码器模块,用于将所述第二尺度特征输入第三编码器,经过计算操作后获得第三尺度特征,其中,所述计算操作包括卷积、池化和激活操作。
在上述实现过程中,三个编码器串联,分别提取不同分辨率的特征并传递给下一级编码器,实现了图像特征的提取。
进一步地,所述装置还包括训练模块,所述训练模块包括:
将缺陷二维码输入二维码修复神经网络,对应的无缺陷的理想二维码输入辅助网络,所述二维码修复神经网络和所述辅助网络的结构相同;
特征损失计算模块,用于对所述二维码修复神经网络所产生的特征以及所述辅助网络所产生的特征进行损失计算;
输出端损失计算模块,用于计算输出的修复二维码和理想二维码的损失;
码字损失计算模块,用于获得输出的修复二维码和理想二维码经过码字损失计算后的损失;
参数更新模块,用于将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,再重新进行上述损失计算,直至各个损失结果达到期望值,得到训练后的二维码修复神经网络。
在上述实现过程中,利用辅助网络以及多种损失特别是码字损失对二维码修复神经网络进行训练,使用辅助网络可提升训练效果,使用多种损失特别是码字损失,可以使修复的二维码更加符合解码要求,提高解码的成功率。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的二维码修复方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的二维码修复方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种二维码修复方法的流程图;
图2为本申请实施例提供的二维码修复神经网络示意图;
图3为本申请实施例提供的图像特征提取流程图;
图4为本申请实施例提供的二维码修复神经网络的训练流程图;
图5为本申请实施例提供的训练用网络示意图;
图6为本申请实施例提供的码字损失计算流程图;
图7为本申请实施例提供的DataMatrix二维码示意图;
图8为本申请实施例提供的码字的示意图;
图9为本申请实施例提供的码字排布顺序示意图;
图10为本申请实施例提供的码字损失的具体计算过程示意图;
图11为本申请实施例提供的不同缺陷二维码的示意图;
图12为本申请实施例提供的二维码修复神经网络的参数更新流程图;
图13为本申请实施例提供的一种二维码修复装置的结构框图;
图14为本申请实施例提供的另一种二维码修复装置的结构框图。
图标:
100-预处理模块;200-编码模块;201-第一编码器模块;202-第二编码器模块;203-第三编码器模块;300-解码模块;400-训练模块;401-输入模块;402-特征损失计算模块;403-输出端损失计算模块;404-码字损失计算模块;405-参数更新模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供的一种二维码修复方法的流程图。该方法可对有缺陷(包括但不限于模糊、脏污、破损等)的二维码进行修复得到正确、完整、清晰的二维码。
该方法具体包括以下步骤:
步骤S100:利用已训练的二维码修复神经网络对待修复二维码进行预处理;
预处理包括两方面:将待修复二维码的格式(任意的图像存储格式)转换为编码模块需要的格式(GPU推理需要的tensor格式);对输入数据进行数据增强,包括但不限于随机旋转、色相偏移、高斯噪声等常见的数据增强方法。
步骤S200:利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征;
步骤S300:将所述图像特征输入所述二维码修复神经网络中的解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。
如图2所示,为二维码修复神经网络示意图,二维码修复神经网络首先接收有缺陷的待修复二维码,待修复二维码分别经过预处理模块、编码模块和解码模块,最终得到修复后二维码,完成对二维码的修复。
其中,如图3所示,为图像特征提取流程图,步骤S200具体包括以下步骤:
步骤S201:将预处理后的待修复二维码输入第一编码器,经过计算操作后获得第一尺度特征;
步骤S202:将所述第一尺度特征输入第二编码器,经过计算操作后获得第二尺度特征;
步骤S203:将所述第二尺度特征输入第三编码器,经过计算操作后获得第三尺度特征,其中,所述计算操作包括卷积、池化和激活操作。
在本申请所述示例中,采用三个编码器串联,分别提取不同分辨率的特征并传递给下一级编码器,具体地,第一编码器接收预处理模块处理后的数据(tensor格式的数值矩阵,矩阵形状为C×H×W,C为通道数,H和W分别为高和宽),经过卷积、池化、激活等操作的计算后,得到第一尺度特征(分辨率为H/2×W/2,形状为2C×H/2×W/2的tensor);第二编码器接收第一尺度特征,经过卷积、池化、激活等操作的计算后,得到第二尺度特征(分辨率为H/4×W/4,形状为4C×H/4×W/4的tensor);第三编码器接收第二尺度特征,经过卷积、池化、激活等操作的计算后,得到第三尺度特征(分辨率为H/8×W/8,形状为8C×H/8×W/8的tensor)。
需要说明的是,对编码器的数量(解码器数量与编码器相同)不做具体限定,可根据需要进行具体设定。
编码器将输入的图像逐级降低分辨率、增加通道数;解码器将编码器的输出逐级增加分辨率、减少通道数,最终得到与输入的图像大小一致的数值矩阵。而解码器具体解码过程为:
第一解码器接收第三尺度特征,经过卷积、池化、激活、上采样等操作的计算后,得到第四尺度特征(分辨率为H/4×W/4,形状为4C×H/4×W/4的tensor);第二解码器接收第四尺度特征,经过卷积、池化、激活、上采样等操作的计算后,得到第五尺度特征(分辨率为H/2×W/2,形状为2C×H/2×W/2的tensor);第三解码器接收第五尺度特征,经过卷积、池化、激活、上采样等操作的计算后,得到修复后二维码的数值矩阵(形状为C×H×W)。
二维码修复神经网络是利用辅助网络同时使用了多种不同的损失,尤其是码字损失进行训练得到的。如图4所示,为二维码修复神经网络的训练流程图,具体地,对所述二维码修复神经网络进行训练包括以下步骤:
步骤S410:将缺陷二维码输入二维码修复神经网络,对应的无缺陷的理想二维码输入辅助网络,所述二维码修复神经网络和所述辅助网络的结构相同;
如图5所示,为训练用网络示意图,辅助网络与二维码修复神经网络的结构和参数完全相同。在训练过程中,从数据集获取成对的有缺陷二维码和无缺陷的理想二维码。有缺陷二维码进入二维码修复神经网络得到修复后二维码,与此同时,理想二维码进入辅助网络。
步骤S420:对所述二维码修复神经网络所产生的特征以及所述辅助网络所产生的特征进行损失计算;
有缺陷二维码在经过二维码修复神经网络的每一个模块时,分别产生第一尺度特征、第二尺度特征、第三尺度特征、第四尺度特征、第五尺度特征等5个特征;理想二维码在经过辅助网络的每一个模块时,也将分别产生5个特征,以上每组对应位置的特征进行损失计算,得到第一损失至第五损失的计算结果。
此处5个损失结果的作用为计算有缺陷二维码与理想二维码的特征图的差异度,计算方法包括但不限于使用L1 loss、L2 loss等。用以促进有缺陷二维码与理想二维码经过特征提取后有相似的特征,可以在加速网络收敛的同时保证修复后二维码与理想二维码更加一致。
此处使用了5个损失结果,在实际应用中,可根据网络层数和具体需求,增加或减少损失的数量。至少使用上述5个损失中的1个,也可实现类似效果,对于编码器和解码器的数量以及对应的损失计算数量不做具体限定。
步骤S430:计算输出的修复二维码和理想二维码的损失;
此处的第六损失用于计算修复后二维码与理想二维码的差异度,计算方法包括但不限于使用L1 loss、L2 loss等。作用为促使网络的输出结果与理想二维码趋于一致,保证二维码修复神经网络对缺陷二维码的修复能力。
步骤S440:获得输出的修复二维码和理想二维码经过码字损失计算后的损失;
此处的码字损失的作用为计算修复后二维码与理想二维码在每个单独的码字上的差异度,计算方法包括但不限于使用L1 loss、L2 loss等。用以促使修复后二维码在每个码字上都与理想二维码更加相似。
步骤S450:将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,再重新进行上述损失计算,直至各个损失结果达到期望值,得到训练后的二维码修复神经网络。
如图6所示,为码字损失计算流程图,步骤S440具体包括以下步骤:
步骤S441:将修复二维码和所述理想二维码分别按照设定码字排布顺序拆分成重组为多个码字;
步骤S442:计算修复二维码和理想二维码每组对应位置处的码字之间的差异度,得到多个损失值;
步骤S443:将所述损失值进行加权计算,得到经过码字损失计算后的损失。
二维码形式分为多种,如图7所示,为DataMatrix二维码(DM码)示意图。本申请以DataMatrix二维码进行举例说明。在DM二维码中,每个最小的方格单元称为一个码元。每8个码元排列成“L”型组成一个码字,如图8所示,为码字的示意图,按照规则,每个码字可以表示该二维码中的一条信息,即码字是二维码中储存信息的基本单位。如图9所示,为码字排布顺序示意图,所有码字按照图中的码字排布顺序依次排布,即可形成二维码。处于边缘位置的码字(比如图中的1号、7号等)需要拆分排布到对侧的边缘。
如图10所示,为码字损失的具体计算过程示意图。具体地,码字损失模块接收修复后二维码和理想二维码作为输入。按照上图中的码字排布顺序的格式,将修复后二维码拆分重组为多个码字(码字411、码字412…码字41n),将理想二维码拆分重组为多个码字(码字421、码字422…码字42n)。然后计算每组对应位置的码字之间的差异度,计算方法包括但不限于使用L1 loss、L2 loss等,得到多个损失(损失431、损失432…损失43n),最后将以上多个损失按照权重441、权重442、权重44n和权重45加权计算得到最终的损失,即为经过码字损失计算后的损失。其中,权重441、权重442和权重44n根据相应码字中缺陷面积大小来确定,码字中缺陷面积越大该码字的损失权重越大,权重45根据存在缺陷的码字数量确定,存在缺陷的码字越多,权重45越大。
如图11所示,为不同缺陷二维码的示意图,各个码字的排列如图中的理想二维码所示。当缺陷位置分别位于第一缺陷二维码和第二缺陷二维码所示的位置时,第一缺陷二维码中的缺陷只覆盖了一个码字(6号码字),而第二缺陷二维码中的缺陷同时覆盖率两个码字(6号和8号),因为二维码中的码字是储存信息的基本单位,所以在不进行修复的情况下,对这两种二维码解码的难度是不同的,且缺陷二维码的解码难度更大。
在网络训练中,如果只计算缺陷第一二维码中的输出的修复二维码和理想二维码的损失,那么这两种情况得到的损失数值是相同的;而码字损失得益于权重441、权重442、权重44n和权重45的合理设计,第二缺陷二维码的码字损失数值更大,与解码难度呈正相关,因此修复得到的二维码更符合解码要求,解码成功率更高。
以上使用了DM码进行举例,相应的码字结构为“L”型。但应用于其他类型的二维码时,比如QR码,其码字结构根据QR码的标准进行相应的改变同样可实现二维码修复效果,对于二维码的类型在此不做具体限定。
如图12所示,为二维码修复神经网络的参数更新流程图,步骤S450具体包括以下步骤:
步骤S451:得到所有损失的加权结果后根据链式法则依次对所述二维码修复神经网络的各个编码器和解码器对应的参数进行求导,获得梯度信息;
反向传播:得到以上多种损失的加权结果后,根据链式法则依次对第三解码器、第二解码器……第一编码器等所有模块的网络参数求导并保存得到的梯度信息,具体加权结果计算如下:
W1×第一损失+W2×第二损失+W3×第三损失+W4×第四损失+W5×第五损失+W6×(第六损失+码字损失);
其中,越靠近网络输出端的损失权重越大,即W6>W5>W4>W3>W2>W1,具体数值可根据训练效果进行调整。
步骤S452:基于所述梯度信息并利用梯度下降法对所述二维码修复神经网络的参数进行更新。
参数更新:根据反向传播过程得到的梯度信息,使用梯度下降法对所有参数进行更新。重复进行以上操作直到各个损失达到期望值,最终得到训练完成的二维码修复神经网络。
在二维码修复神经网络的训练过程中,使用辅助网络完成训练,可以使网络训练的效果更佳;而使用阶段则删除辅助网络,可以使网络更轻量化,速度更快。
训练过程中使用了多种不同的损失,尤其是码字损失,可以使修复的二维码更加符合解码要求,提高解码的成功率。
该方法使用二维码修复神经网络,对有缺陷的二维码进行快速、高质量的修复,可大大提升二维码解码的速度及成功率。
相比于现有的添加纠错码的方法,本申请可修复的最大缺陷面积与数据集中的最大缺陷面积正相关,可以远大于纠错码可纠错的面积;相比于现有的数字图像处理方法,本申请使用神经网络自动学习二维码缺陷特征,不需手动设置各种参数,针对不同情况的缺陷,只需要在模拟数据集中补充对应类型的缺陷数据即可,操作简单且通用性强;相比于现有的模糊二维码修复方法,本申请使用编码器-解码器结构,结构简明清晰,且模块化设计可根据需求方便地进行缩放,此外,得益于多种损失特别是码字损失的设计,修复的二维码不仅可保证视觉上的清晰,同时也能保证其与真实二维码的一致性,更能提高解码的成功率。
实施例2
本申请实施例提供一种二维码修复装置,如图13所示,为一种二维码修复装置的结构框图,所述装置包括但不限于:
预处理模块100,用于利用已训练的二维码修复神经网络对待修复二维码进行预处理;
编码模块200,用于利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征;
解码模块300,用于将所述图像特征输入所述二维码修复神经网络中的解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。
如图14所示,为另一种二维码修复装置的结构框图,所述编码模块200包括:
第一编码器模块201,用于将预处理后的待修复二维码输入第一编码器,经过计算操作后获得第一尺度特征;
第二编码器模块202,用于将所述第一尺度特征输入第二编码器,经过计算操作后获得第二尺度特征;
第三编码器模块203,用于将所述第二尺度特征输入第三编码器,经过计算操作后获得第三尺度特征,其中,所述计算操作包括卷积、池化和激活操作。
所述装置还包括训练模块400,所述训练模块400包括:
输入模块401,用于将缺陷二维码输入二维码修复神经网络,对应的无缺陷的理想二维码输入辅助网络,所述二维码修复神经网络和所述辅助网络的结构相同;
特征损失计算模块402,用于对所述二维码修复神经网络所产生的特征以及所述辅助网络所产生的特征进行损失计算;
输出端损失计算模块403,用于计算输出的修复二维码和理想二维码的损失;
码字损失计算模块404,用于获得输出的修复二维码和理想二维码经过码字损失计算后的损失;
参数更新模块405,用于将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,再重新进行上述损失计算,直至各个损失结果达到期望值,得到训练后的二维码修复神经网络。
该装置使用二维码修复神经网络对有缺陷的二维码进行快速、高质量的修复,可大大提升二维码解码的速度及成功率,使用编码器-解码器结构,结构简明清晰,且模块化设计可根据需求方便地进行缩放,适用于不同缺陷程度的二维码修复,解决了现有方法具有使用限制且成功率不高的问题。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行实施例1所述的二维码修复方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的二维码修复方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种二维码修复方法,其特征在于,所述方法包括:
利用已训练的二维码修复神经网络对待修复二维码进行预处理,所述二维码修复神经网络是利用辅助网络,同时计算与辅助网络对应的图像特征的损失以及输出端的码字损失进行训练得到的,其中,码字损失的具体计算如下:
将修复二维码和理想二维码输入辅助网络得到的输出结果分别按照设定码字排布顺序拆分成重组为多个码字;计算修复二维码和理想二维码每组对应位置处的码字之间的差异度,得到多个损失值;将所述损失值进行加权计算,得到经过码字损失计算后的损失,其中,将缺陷二维码输入二维码修复神经网络得到修复二维码;
利用多个编码器提取所述待修复二维码的图像特征;
将所述图像特征输入解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。
2.根据权利要求1所述的二维码修复方法,其特征在于,所述利用所述二维码修复神经网络中的多个编码器提取所述待修复二维码的图像特征,包括:
将预处理后的待修复二维码输入第一编码器,经过计算操作后获得第一尺度特征;
将所述第一尺度特征输入第二编码器,经过计算操作后获得第二尺度特征;
将所述第二尺度特征输入第三编码器,经过计算操作后获得第三尺度特征,其中,所述计算操作包括卷积、池化和激活操作。
3.根据权利要求1所述的二维码修复方法,其特征在于,所述方法还包括对所述二维码修复神经网络进行训练:
将缺陷二维码输入二维码修复神经网络,对应的无缺陷的理想二维码输入辅助网络,所述二维码修复神经网络和所述辅助网络的结构相同;
对所述二维码修复神经网络所产生的特征以及所述辅助网络所产生的特征进行损失计算;
计算输出的修复二维码和理想二维码的损失;
获得输出的修复二维码和理想二维码经过码字损失计算后的损失;
将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,再重新进行上述损失计算,直至各个损失结果达到期望值,得到训练后的二维码修复神经网络。
4.根据权利要求3所述的二维码修复方法,其特征在于,所述将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,包括:
得到所有损失的加权结果后根据链式法则依次对所述二维码修复神经网络的各个编码器和解码器对应的参数进行求导,获得梯度信息;
基于所述梯度信息并利用梯度下降法对所述二维码修复神经网络的参数进行更新。
5.一种二维码修复装置,其特征在于,所述装置包括:
预处理模块,用于利用已训练的二维码修复神经网络对待修复二维码进行预处理,所述二维码修复神经网络是利用辅助网络,同时计算与辅助网络对应的图像特征的损失以及输出端的码字损失进行训练得到的,其中,码字损失的具体计算如下:
将修复二维码和理想二维码输入辅助网络得到的输出结果分别按照设定码字排布顺序拆分成重组为多个码字;计算修复二维码和理想二维码每组对应位置处的码字之间的差异度,得到多个损失值;将所述损失值进行加权计算,得到经过码字损失计算后的损失,其中,将缺陷二维码输入二维码修复神经网络得到修复二维码;
编码模块,用于利用多个编码器提取所述待修复二维码的图像特征;
解码模块,用于将所述图像特征输入解码器,获得修复二维码,所述解码器的数量与所述编码器的数量相同。
6.根据权利要求5所述的二维码修复装置,其特征在于,所述编码模块包括:
第一编码器模块,用于将预处理后的待修复二维码输入第一编码器,经过计算操作后获得第一尺度特征;
第二编码器模块,用于将所述第一尺度特征输入第二编码器,经过计算操作后获得第二尺度特征;
第三编码器模块,用于将所述第二尺度特征输入第三编码器,经过计算操作后获得第三尺度特征,其中,所述计算操作包括卷积、池化和激活操作。
7.根据权利要求5所述的二维码修复装置,其特征在于,所述装置还包括训练模块,所述训练模块包括:
将缺陷二维码输入二维码修复神经网络,对应的无缺陷的理想二维码输入辅助网络,所述二维码修复神经网络和所述辅助网络的结构相同;
特征损失计算模块,用于对所述二维码修复神经网络所产生的特征以及所述辅助网络所产生的特征进行损失计算;
输出端损失计算模块,用于计算输出的修复二维码和理想二维码的损失;
码字损失计算模块,用于获得输出的修复二维码和理想二维码经过码字损失计算后的损失;
参数更新模块,用于将所有损失结果加权后进行反向传播,以对所述二维码修复神经网络的参数进行更新,再重新进行上述损失计算,直至各个损失结果达到期望值,得到训练后的二维码修复神经网络。
8.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行根据权利要求1至4中任一项所述的二维码修复方法。
9.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至4中任一项所述的二维码修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311153521.6A CN116894792B (zh) | 2023-09-08 | 2023-09-08 | 一种二维码修复方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311153521.6A CN116894792B (zh) | 2023-09-08 | 2023-09-08 | 一种二维码修复方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116894792A CN116894792A (zh) | 2023-10-17 |
CN116894792B true CN116894792B (zh) | 2023-12-19 |
Family
ID=88311049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311153521.6A Active CN116894792B (zh) | 2023-09-08 | 2023-09-08 | 一种二维码修复方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116894792B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783494A (zh) * | 2020-06-24 | 2020-10-16 | 成都明灯云工程科技有限公司 | 结合二值分割的卷积自编码器的受损二维码恢复方法 |
CN113989412A (zh) * | 2021-10-25 | 2022-01-28 | 胡志雄 | 基于随机信息缺失模型的二维码图像修复模型构建方法 |
CN116167935A (zh) * | 2023-01-17 | 2023-05-26 | 中国建设银行股份有限公司 | 二维码的修复方法、装置、设备及介质 |
CN116522973A (zh) * | 2023-04-20 | 2023-08-01 | 广东技术师范大学 | 基于深度学习图像修复网络的受损qr码图像修复方法、装置及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130278699A1 (en) * | 2012-04-19 | 2013-10-24 | Toshiba Tec Kabushiki Kaisha | Printer and print method |
CN109376830B (zh) * | 2018-10-17 | 2022-01-11 | 京东方科技集团股份有限公司 | 二维码生成方法及装置 |
-
2023
- 2023-09-08 CN CN202311153521.6A patent/CN116894792B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783494A (zh) * | 2020-06-24 | 2020-10-16 | 成都明灯云工程科技有限公司 | 结合二值分割的卷积自编码器的受损二维码恢复方法 |
CN113989412A (zh) * | 2021-10-25 | 2022-01-28 | 胡志雄 | 基于随机信息缺失模型的二维码图像修复模型构建方法 |
CN116167935A (zh) * | 2023-01-17 | 2023-05-26 | 中国建设银行股份有限公司 | 二维码的修复方法、装置、设备及介质 |
CN116522973A (zh) * | 2023-04-20 | 2023-08-01 | 广东技术师范大学 | 基于深度学习图像修复网络的受损qr码图像修复方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
Hopfield神经网络在二维码污损复原中的应用;袁红春;侍倩倩;;传感器与微系统(08);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116894792A (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110782462B (zh) | 一种基于双流特征融合的语义分割方法 | |
CN110728682B (zh) | 一种基于残差金字塔池化神经网络的语义分割方法 | |
CN110059698A (zh) | 用于街景理解的基于边缘稠密重建的语义分割方法及系统 | |
US11651578B2 (en) | End-to-end modelling method and system | |
CN110765740B (zh) | 一种基于dom树的全类型文本替换方法、系统、装置及存储介质 | |
CN115222630A (zh) | 图像生成方法、图像去噪模型的训练方法和设备 | |
CN110930327B (zh) | 基于级联深度残差网络的视频去噪方法 | |
CN111898482A (zh) | 基于渐进型生成对抗网络的人脸预测方法 | |
CN113297804B (zh) | 基于U-Transformer多层次特征重构的异常检测方法及系统 | |
CN111986275A (zh) | 一种多模态半色调图像的逆半色调化方法 | |
CN113112401A (zh) | 一种基于跨尺度纹理迁移的图像超分辨率方法 | |
CN116894792B (zh) | 一种二维码修复方法、装置、电子设备及存储介质 | |
CN110399344A (zh) | 选取重复图像的方法及装置 | |
CN112381147B (zh) | 动态图片相似度模型建立、相似度计算方法和装置 | |
CN114494823A (zh) | 零售场景下的商品识别检测计数方法及系统 | |
CN115934484B (zh) | 基于扩散模型数据增强的异常检测方法、存储介质及设备 | |
CN115170807B (zh) | 一种图像分割、模型训练方法、装置、设备及介质 | |
CN110191341A (zh) | 一种深度数据的编码方法和解码方法 | |
CN110995396A (zh) | 基于层级结构的用电信息采集系统通信报文的压缩方法 | |
CN114943655A (zh) | 基于循环深度卷积生成对抗网络结构的图像修复系统 | |
CN110378466A (zh) | 基于神经网络差分的量化方法及系统 | |
US20230154140A1 (en) | Neural network-based high-resolution image restoration method and system | |
CN114760474A (zh) | 视频编码方法及装置 | |
US9615111B2 (en) | Complexity-adaptive compression of color images using binary arithmetic coding | |
CN118283266A (zh) | 一种基于特征残差预测的端到端可变码率图像编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |