条码识别方法、装置、计算机设备和存储介质与流程

文档序号:27339046发布日期:2021-11-10 02:41阅读:97来源:国知局
条码识别方法、装置、计算机设备和存储介质与流程

1.本技术涉及图像处理技术领域,特别是涉及一种条码识别方法、装置、计算机设备和存储介质。


背景技术:

2.在工业应用中,条码的使用越来越广泛,对条码的使用需求越来越大。条码技术发展迅速,已经衍生出了多种类型。
3.现有技术中,通常一种生产场景对应一套条码识别方案;若需要切换其他条码识别方案,需要人工手动进行设置;现有的条码识别方式还较为单一,无法适应于多变的工业生产场景,导致现有的条码识别效率还较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种条码识别方法、装置、计算机设备和存储介质。
5.一种条码识别方法,包括:
6.将条码图像输入预先构建的目标神经网络模型,得到所述目标神经网络模型输出的预测序列;所述预测序列携带有码制标识;
7.对所述预测序列进行解码处理,得到包含有编码信息的目标预测序列;
8.根据与所述码制标识匹配的编码规则及所述编码信息,对所述目标预测序列进行识别,得到识别结果。
9.在其中一个实施例中,所述将条码图像输入预先构建的目标神经网络模型,包括:
10.若所述条码图像的尺寸不等于预设尺寸,则调整所述条码图像至所述预设尺寸后输入所述目标神经网络模型。
11.在其中一个实施例中,所述对所述预测序列进行解码处理,得到包含有编码信息的目标预测序列,包括:
12.获取所述目标预测序列中至少一个最大值所对应的位置信息,根据所述位置信息生成解码序列;
13.剔除所述解码序列中的重复项及预设占位符后,得到所述包含有编码信息的目标预测序列。
14.在其中一个实施例中,所述根据与所述码制标识匹配的编码规则及所述编码信息,对所述目标预测序列进行识别,包括:
15.根据所述编码规则对所述目标预测序列进行解析,得到解析结果;
16.根据所述解析结果,构造所述目标预测序列的子序列;
17.根据所述编码规则对所述目标预测序列的子序列进行校验,根据校验结果确认所述识别结果。
18.在其中一个实施例中,在将包含有条码的图像输入预先构建的目标神经网络模型
之前,还包括:
19.获取样本条码图像以及对应的样本编码信息;
20.将所述样本条码图像输入初始神经网络模型,得到所述样本条码图像在预设高度下的预测结果;
21.根据所述预测结果与所述样本编码信息对所述初始神经网络模型进行训练,得到所述目标神经网络模型。
22.在其中一个实施例中,所述获取样本条码图像以及对应的样本编码信息,包括:
23.根据不同编码规则随机生成多个原始编码信息;
24.将所述原始编码信息按照对应的编码规则生成原始编码图像;
25.将所述原始编码图像作为所述样本条码图像,将所述原始编码信息作为所述样本编码信息。
26.在其中一个实施例中,所述根据所述预测结果与所述样本编码信息对所述初始神经网络模型进行训练,包括:
27.基于所述预测结果以及所述样本编码信息之间的差异程度构建损失函数;
28.根据所述损失函数训练所述初始神经网络模型,直至训练后的初始神经网络模型满足预设训练条件时,将所述训练后的初始神经网络模型作为所述目标神经网络模型。
29.一种条码识别装置,所述装置包括:
30.序列输出模块,用于将条码图像输入预先构建的目标神经网络模型,得到所述目标神经网络模型输出的预测序列;所述预测序列携带有码制标识;
31.序列解码模块,用于对所述预测序列进行解码处理,得到包含有编码信息的目标预测序列;
32.序列识别模块,用于根据与所述码制标识匹配的编码规则及所述编码信息,对所述目标预测序列进行识别,得到识别结果。
33.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
34.将条码图像输入预先构建的目标神经网络模型,得到所述目标神经网络模型输出的预测序列;所述预测序列携带有码制标识;
35.对所述预测序列进行解码处理,得到包含有编码信息的目标预测序列;
36.根据与所述码制标识匹配的编码规则及所述编码信息,对所述目标预测序列进行识别,得到识别结果。
37.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
38.将条码图像输入预先构建的目标神经网络模型,得到所述目标神经网络模型输出的预测序列;所述预测序列携带有码制标识;
39.对所述预测序列进行解码处理,得到包含有编码信息的目标预测序列;
40.根据与所述码制标识匹配的编码规则及所述编码信息,对所述目标预测序列进行识别,得到识别结果。
41.上述条码识别方法、装置、计算机设备和存储介质,方法包括:将条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码
制标识;对预测序列进行解码处理,得到包含有编码信息的目标预测序列;根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。本技术通过预先构建的目标神经网络模型对条码图像进行识别,输出预测序列和相应的码制标识;在对预测序列进行解码处理后得到有编码信息的目标预测序列;最后利用编码信息及码制标识对应的编码规则,识别目标预测序列得到识别结果,实现了对任意码制的条码图像的识别;无需人工预先按照条码图像的码制进行切换与调整,即可直接对条码图像进行识别,提高了条码识别的效率。
附图说明
42.图1为一个实施例中条码识别方法的应用环境图;
43.图2为一个实施例中条码识别方法的流程示意图;
44.图3为一个实施例中得到包含有编码信息的目标预测序列步骤的流程示意图;
45.图4为一个实施例中对目标预测序列进行识别步骤的流程示意图;
46.图5为一个实施例中对初始神经网络模型进行训练步骤的流程示意图;
47.图6为一个实施例中条码识别装置的结构框图;
48.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
49.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
50.本技术提供的条码识别方法,可以单独应用于部署有目标神经网络模型的终端设备;具体地,终端设备拍摄得到包含有条码信息的条码图像;终端设备将条码图像输入预先部署在终端设备内的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码制标识;终端设备对预测序列进行解码处理,得到包含有编码信息的目标预测序列;终端设备根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。
51.本技术提供的条码识别方法,还可以应用于如图1所示的应用环境中。其中,终端11通过网络与服务器12进行通信。终端11将条码图像发送至服务器12,服务器12将接受到的条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码制标识;服务器12对预测序列进行解码处理,得到包含有编码信息的目标预测序列;服务器12根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果;服务器12将识别结果返回至终端11。
52.其中,终端11可以但不限于是各种扫码设备、个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器12可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
53.在一个实施例中,如图2所示,提供了一种条码识别方法,以该方法应用于图1中的服务器12为例进行说明,包括以下步骤:
54.步骤21,将条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型
输出的预测序列;预测序列携带有码制标识。
55.其中,条码图像是指包含有条码信息的图像;目标神经网络模型是指经过预先训练的,能够对条码图像中的条码信息进行识别并输出相应结果的神经网络模型;预测序列是指目标神经网络模型对条码图像进行识别后输出的序列形式的结果;码制标识是指目标神经网络模型识别出的条码图像中条码信息对应的码制,即神经网络预测出的符合条码图像的编码要求。
56.具体地,服务器将条码图像输入预先构建的目标神经网络模型;目标神经网络模型根据预先训练过程中确定好的权重参数等信息,提取出条码图像对应的图像特征,对特征进行卷积运算、池化运算等输出最终的预测结果作为预测序列。码制标识可以由目标神经网络模型中相应的神经元被激活的次数确定。
57.步骤22,对预测序列进行解码处理,得到包含有编码信息的目标预测序列。
58.具体地,服务器对预测序列进行argmax操作,通过提取每个序列位置i上的top

n最大值位置,获得解码序列;
59.解码处理可以通过贪心搜索(greedy search)、集束搜索(beam search)、前缀束搜索(prefix beam search)等多种算法进行,具体可根据实际需要进行确定。
60.解码后对序列中重复的元素进行合并,解码后的解码序列中若包含有连续且重复的元素,则将其中连续且重复的元素进行剔除;例如根据解码序列中top

1最大值位置得到的序列表示为[1,2,106,2,2,2,7,5,3],可见该序列中连续的三个2是需要合并的,合并处理后仅保留一个2,即合并后的序列为[1,2,106,2,7,5,3];
[0061]
最后根据编码信息将序列中的占位符进一步剔除,即得到包含有编码信息的目标预测序列;例如codo128中指定106号为占位符,则在上述序列中需要剔除106,变换后的序列变成[1,2,2,7,5,3];至此,得到包含有起始符、内容、校验位、终止符作为编码信息的目标预测序列。
[0062]
步骤23,根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。
[0063]
服务器根据码制标识确定该目标预测序列对应的编码规则;根据编码信息识别目标预测序列中的起始符、校验位、终止符以及内容,对目标预测序列进行解析;例如编码规则为code128的目标预测序列为[104,35,19,99,91,24,56,78,89,106],服务器通过起始符104进一步确定该目标预测序列为code128

b子编码规则,则根据code128

b子编码规则对目标预测序列进一步解析,得到解析结果。解析结果在通过校验后可作为识别结果进行输出。
[0064]
上述条码识别方法,包括:将条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码制标识;对预测序列进行解码处理,得到包含有编码信息的目标预测序列;根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。本技术通过预先构建的目标神经网络模型对条码图像进行识别,输出预测序列和相应的码制标识;在对预测序列进行解码处理后得到有编码信息的目标预测序列;最后利用编码信息及码制标识对应的编码规则,识别目标预测序列得到识别结果,实现了对任意码制的条码图像的识别;无需人工预先按照条码图像的码制进行切换与调整,即可直接对条码图像进行识别,提高了条码识别的效率。
[0065]
在一个实施例中,步骤21,将条码图像输入预先构建的目标神经网络模型,包括:若条码图像的尺寸不等于预设尺寸,则调整条码图像至预设尺寸后输入目标神经网络模型。
[0066]
具体地,预设尺寸可以根据目标神经网络模型训练时的样本条码图像的尺寸进行设定。本实施例中,输入的条码图像与样本条码图像保持一致,使得目标神经网络模型能够在一致的基础下对条码图像进行预测识别,提高了目标神经网络模型识别条码图像的效率和准确性。
[0067]
在一个实施例中,如图3所示,上述步骤22,对预测序列进行解码处理,得到包含有编码信息的目标预测序列,包括:
[0068]
步骤31,获取目标预测序列中至少一个最大值所对应的位置信息,根据位置信息生成解码序列;
[0069]
步骤32,剔除解码序列中的重复项及预设占位符后,得到包含有编码信息的目标预测序列。
[0070]
具体地,预设占位符是根据目标神经网络模型中,构建损失函数所用的ctc算法而设置的,因此在解码后需要删除该预设占位符。
[0071]
获取目标预测序列中各个最大值的位置,根据最大值的位置生成解码序列可以通过argmax算法进行计算取得。argmax是一种函数,是对函数求参数(集合)的函数;即argmax(f(x))是使得f(x)取得最大值所对应的变量点x(或x的集合)。
[0072]
解码序列可以通过集束搜索算法得到;集束搜索(beam search)是一种启发式图搜索算法,能够通过预先设定的经验参数k(经验参数k影响算法时延以及最终效果;可根据实际场景以及经验进行设定)。还可以利用朴素解码方式对解码序列进行处理,即直接获取解码序列中的第一行作为解码后的解码序列,即top

1最大值对应位置的序列。
[0073]
本实施例中,通过位置生成解码序列、得到解码后的解码序列以及剔除解码后的解码序列中的重复项,能够逐渐将模型输出的预测序列调整为接近条码编码格式的目标预测序列,提高了条码识别的效率。
[0074]
在一个实施例中,如图4所示,上述步骤23,根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,包括:
[0075]
步骤41,根据编码规则对目标预测序列进行解析,得到解析结果;
[0076]
步骤42,根据解析结果,构造目标预测序列的子序列;
[0077]
步骤43,根据编码规则对目标预测序列的子序列进行校验,根据校验结果确认识别结果。
[0078]
具体地,对目标预测序列进行识别的过程主要包括解析以及校验;若解析结果为校验通过状态,则可确认目标预测序列完成识别;反之若解析结果为校验未通过状态,则可确认目标预测序列未完成识别。
[0079]
解析的过程需要通过编码规则确定具体的解析方式,编码规则用于识别序列中不同的组成部分。编码规则同样能对解析结果进行校验,根据校验结果能够判断解析结果是否能够作为可信的识别结果。例如在解析到序列末尾时出现终止符,则根据终止符之前的元素构造新的序列作为目标预测序列的子序列,并对该子序列进行校验。
[0080]
本实施例中,通过解析结果构造相应的子序列实现对目标预测序列以及解析结果
的校验,提高了条码识别的效率和准确率。
[0081]
在一个实施例中,如图5所示,上述步骤21,在将条码图像输入预先构建的目标神经网络模型之前,还包括:
[0082]
步骤51,获取样本条码图像以及对应的样本编码信息;
[0083]
步骤52,将样本条码图像输入初始神经网络模型,得到样本条码图像在预设高度下的预测结果;
[0084]
步骤53,根据预测结果与样本编码信息对初始神经网络模型进行训练,得到目标神经网络模型。
[0085]
其中,样本条码图像是指包含有明确条码信息且用于对模型进行训练的图像;样本编码信息是指与样本条码图像一一对应的编码信息。样本条码图像可以获取出相应的样本编码信息,同理根据样本编码信息也能获取到相应的样本条码图像。
[0086]
具体地,例如希望构造code128制式的样本条码图像,且包含信息“c391245678”,需要通过code128编码规则,对所包含的信息进行编码,得到编码后的序列[104,35,19,99,91,24,56,78,89,106];其中第1位为起始符,同时指示了该编码遵循code128

b子制式对后续信息进行编码;被编码内容包含“35,19,99,91,24,56,78”其中35编码了信息中的“c”,19编码了信息中的“3”,“99”表示后续信息遵循code128

c子制式进行编码;“91”编码了信息中的“91”,“24”编码了信息中的“24”,依次类推,直到倒数第2位“89”为校验位,末位“106”为终止位。将样本编码信息全部识别后,可以按照code128制式的编码规则,生成与样本编码信息对应的样本条码图像。
[0087]
若已获取有样本条码图像需要获取其对应的样本编码信息,可再知道样本条码图像所利用编码规则的基础上,直接利用现有的解码软件对样本条码图像进行识别,得到对应的样本编码信息。
[0088]
可以通过初始神经网络模型中的最大池化层将输出的高度进行固定;例如在h高度的样本条码图像输入的情况下,初始神经网络模型输出高度记为h_model。如果h_model值不为1时,可以再通过高度为h_model、宽度为1步长为1、填充为0的最大池化层对输出进行最大池化处理,使得初始神经网络模型输出为一个高度为1的二维矩阵作为样本条码图像的预测结果。类似地,还可以通过特定参数的池化、卷积、resize(尺寸调整函数)、插值等方式使得样本条码图像的预测结果控制在预设高度下。
[0089]
本实施例通过包含有最大池化层的初始神经网络模型使得输出的样本条码图像的预测结果始终保持尺寸统一,提高了初始神经网络模型进行训练的效率以及目标神经网络模型预测的准确性。
[0090]
在一个实施例中,上述步骤51,获取样本条码图像以及对应的样本编码信息,包括:根据不同编码规则随机生成多个原始编码信息;将原始编码信息按照对应的编码规则生成原始编码图像;将原始编码图像作为样本条码图像,将原始编码信息作为样本编码信息。
[0091]
具体地,初始神经网络模型在训练过程中需要用到样本编码信息与样本条码图像组成的信息对进行,因此可以获取样本条码图像及样本编码信息中的一种,并通过相关技术等生成另一种信息,完成训练数据的积累;除了利用随机生成的原始编码信息生成相应的样本条码图像外,还可以根据已获取的样本条码图像,对样本条码图像进行解码处理得
到相应的原始编码信息作为样本编码信息,即得到了样本条码图像

样本编码信息的信息对。
[0092]
本实施例通过随机生成的多个原始编码信息生成相应的样本条码图像,实现了样本条码图像和样本编码信息的积累;样本的积累能够提高初始神经网络模型训练的效果。
[0093]
在一个实施例中,上述步骤53,根据预测结果与样本编码信息对初始神经网络模型进行训练,包括:基于预测结果以及样本编码信息之间的差异程度构建损失函数;根据损失函数训练初始神经网络模型,直至训练后的初始神经网络模型满足预设训练条件时,将训练后的初始神经网络模型作为目标神经网络模型。
[0094]
具体地,损失函数可以利用ctc(connectionist temporal classification,一种时序分类算法)算法进行构建;通过ctc损失函数计算预测结果以及样本编码信息之间的差异程度得到损失函数值,根据损失函数值反向传播到初始神经网络模型,对各个权值参数进行调节;直到初始神经网络模型满足预设训练条件,例如训练达到一定次数,或者损失函数值低于某个预设阈值等。
[0095]
本实施例通过构建损失函数,使得模型训练过程中不断朝着降低预测结果以及样本编码信息之间的差异程度进行,提高了初始神经网络模型训练的效果。
[0096]
在一个实施例中,还提供了又一种条码识别方法,包括:
[0097]
1、获取样本条码图像以及样本编码信息:样本条码图像以及样本编码信息可以遵循的编码规则为ean系列、code码系列、upc码系列、itf码系列,且样本编码信息中通常包含起始符、内容、校验位及终止符。
[0098]
2、训练初始神经网络模型:将所有样本条码图像标准化到统一高度h。将所有样本条码图像进行数据增强处理,包括:模糊、调整图像亮度、对图像进行裁剪、增加噪声等,目的在于将比较规整的图像降低质量;得到变化后的样本条码图像。选择一个神经网络模型,计算在h高度图像输入情况下,该模型输出高度值h_model;如果h_model值不为1,则将模型输出通过一层高度为h_model宽度为1步长为1,padding(填充值)为0的maxpooling(最大池化)层。
[0099]
对初始神经网络模型输出的预测结果进行1*1卷积运算,输出通道数量c为条码中可能出现的编码总数量。例如针对code128则输出维度为106+1,其中+1是由于ctc算法中设计的占位符“blank”所需。
[0100]
通过ctc算法计算样本编码信息和预测结果之间的误差l,通过反向传播更新初始神经网络模型的模型参数,多次迭代该过程,直到误差l收敛为止(l收敛典型值0

20)时,得到训练完成的初始神经网络模型并作为预先构建的目标神经网络模型。
[0101]
3、利用预先构建的目标神经网络模型对条码图像进行识别:将待识别的条码图像的高度标准化到h后送入目标神经网络模型m,得到目标神经网络模型输出的预测序列;该预测序列为一个通道数量为c,宽度跟随输入图像宽度变化的二维矩阵。
[0102]
对预测序列进行解码:对预测序列进行argmax操作,提取每个位置i上的top_n最大值位置,获得序列t。
[0103]
朴素解码方式:取出序列t的第一行,即预测序列中top 1最大值的位置。beamsearch解码方式:选取经验参数k(k影响算法时延、最终效果;通常根据实际场景权衡)。以k作为备选解码最优的k个序列,通过beamsearch搜索到序列t。
[0104]
合并t中连续且重复的信号;剔除合并后序列中的“blank”占位符。以codo128为例,若在训练阶段指定106号为占位符,则在上述例子中需要剔除106。变换后的序列变成[1,2,2,7,5,3]。此时序列中的重复字符不需要进行合并。将顺序通过解码、合并和剔除三个步骤后的序列称为目标预测序列。该目标预测序列即包含起始符、内容、校验位、终止符等原始编码信息。
[0105]
4、根据编码规则及编码信息,对目标预测序列进行识别,得到识别结果:对目标预测序列运用编码规则进行解码;以code128的序列
[0106]
[104,35,19,99,91,24,56,78,89,106]为例,根据起始符104判断该码为code128

b子制式,对后续数值通过code128

b子制式进行解析,直到末尾106出现终止符时,从终止符向前倒退1位,构造子序列,将子序列通过code128校验方式,即对[104,35,19,99,91,24,56,78,89]进行校验,若通过校验,则认为目标预测序列有效,完成条码识别。
[0107]
上述条码识别方法,通过预先构建的目标神经网络模型对条码图像进行识别,输出预测序列和相应的码制标识;在对预测序列进行解码处理后得到有编码信息的目标预测序列;最后利用编码信息及码制标识对应的编码规则,识别目标预测序列得到识别结果,实现了对任意码制的条码图像的识别;无需人工预先按照条码图像的码制进行切换与调整,即可直接对条码图像进行识别,提高了条码识别的效率。
[0108]
应该理解的是,虽然图2

5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2

5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0109]
在一个实施例中,如图6所示,提供了一种条码识别装置,包括:序列输出模块61、序列解码模块62和序列识别模块63,其中:
[0110]
序列输出模块61,用于将条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码制标识;
[0111]
序列解码模块62,用于对预测序列进行解码处理,得到包含有编码信息的目标预测序列;
[0112]
序列识别模块63,用于根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。
[0113]
在一个实施例中,序列输出模块61,还用于若条码图像的尺寸不等于预设尺寸,则调整条码图像至预设尺寸后输入目标神经网络模型。
[0114]
在一个实施例中,序列解码模块62,还用于获取目标预测序列中至少一个最大值所对应的位置信息,根据位置信息生成解码序列;剔除解码序列中的重复项及预设占位符后,得到包含有编码信息的目标预测序列。
[0115]
在一个实施例中,序列识别模块63,还用于根据编码规则对目标预测序列进行解析,得到解析结果;根据解析结果,构造目标预测序列的子序列;根据编码规则对目标预测序列的子序列进行校验,根据校验结果确认识别结果。
[0116]
在一个实施例中,条码识别装置还包括模型训练模块,用于获取样本条码图像以
及对应的样本编码信息;将样本条码图像输入初始神经网络模型,得到样本条码图像在预设高度下的预测结果;根据预测结果与样本编码信息对初始神经网络模型进行训练,得到目标神经网络模型。
[0117]
在一个实施例中,模型训练模块,还用于根据不同编码规则随机生成多个原始编码信息;将原始编码信息按照对应的编码规则生成原始编码图像;将原始编码图像作为样本条码图像,将原始编码信息作为样本编码信息。
[0118]
在一个实施例中,模型训练模块,还用于基于预测结果以及样本编码信息之间的差异程度构建损失函数;根据损失函数训练初始神经网络模型,直至训练后的初始神经网络模型满足预设训练条件时,将训练后的初始神经网络模型作为目标神经网络模型。
[0119]
关于条码识别装置的具体限定可以参见上文中对于条码识别方法的限定,在此不再赘述。上述条码识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0120]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储条码识别数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种条码识别方法。
[0121]
本领域技术人员可以理解,图7中示出的结构,仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0122]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0123]
将条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码制标识;
[0124]
对预测序列进行解码处理,得到包含有编码信息的目标预测序列;
[0125]
根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。
[0126]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若条码图像的尺寸不等于预设尺寸,则调整条码图像至预设尺寸后输入目标神经网络模型。
[0127]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取目标预测序列中至少一个最大值所对应的位置信息,根据位置信息生成解码序列;剔除解码序列中的重复项及预设占位符后,得到包含有编码信息的目标预测序列。
[0128]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据编码规则对目标预测序列进行解析,得到解析结果;根据解析结果,构造目标预测序列的子序列;根据编码规则对目标预测序列的子序列进行校验,根据校验结果确认识别结果。
[0129]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取样本条码图像
以及对应的样本编码信息;将样本条码图像输入初始神经网络模型,得到样本条码图像在预设高度下的预测结果;根据预测结果与样本编码信息对初始神经网络模型进行训练,得到目标神经网络模型。
[0130]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据不同编码规则随机生成多个原始编码信息;将原始编码信息按照对应的编码规则生成原始编码图像;将原始编码图像作为样本条码图像,将原始编码信息作为样本编码信息。
[0131]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于预测结果以及样本编码信息之间的差异程度构建损失函数;根据损失函数训练初始神经网络模型,直至训练后的初始神经网络模型满足预设训练条件时,将训练后的初始神经网络模型作为目标神经网络模型。
[0132]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0133]
将条码图像输入预先构建的目标神经网络模型,得到目标神经网络模型输出的预测序列;预测序列携带有码制标识;
[0134]
对预测序列进行解码处理,得到包含有编码信息的目标预测序列;
[0135]
根据与码制标识匹配的编码规则及编码信息,对目标预测序列进行识别,得到识别结果。
[0136]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若条码图像的尺寸不等于预设尺寸,则调整条码图像至预设尺寸后输入目标神经网络模型。
[0137]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取目标预测序列中至少一个最大值所对应的位置信息,根据位置信息生成解码序列;剔除解码序列中的重复项及预设占位符后,得到包含有编码信息的目标预测序列。
[0138]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据编码规则对目标预测序列进行解析,得到解析结果;根据解析结果,构造目标预测序列的子序列;根据编码规则对目标预测序列的子序列进行校验,根据校验结果确认识别结果。
[0139]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取样本条码图像以及对应的样本编码信息;将样本条码图像输入初始神经网络模型,得到样本条码图像在预设高度下的预测结果;根据预测结果与样本编码信息对初始神经网络模型进行训练,得到目标神经网络模型。
[0140]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据不同编码规则随机生成多个原始编码信息;将原始编码信息按照对应的编码规则生成原始编码图像;将原始编码图像作为样本条码图像,将原始编码信息作为样本编码信息。
[0141]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于预测结果以及样本编码信息之间的差异程度构建损失函数;根据损失函数训练初始神经网络模型,直至训练后的初始神经网络模型满足预设训练条件时,将训练后的初始神经网络模型作为目标神经网络模型。
[0142]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0143]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0144]
以上各个实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1