掌桥专利:专业的专利平台
掌桥专利
首页

图形码识别方法、装置、计算设备及计算机可读存储介质

文献发布时间:2023-06-19 19:28:50


图形码识别方法、装置、计算设备及计算机可读存储介质

技术领域

本发明实施例涉及图形码识别技术领域,具体涉及一种图形码识别方法、装置、计算设备及计算机可读存储介质。

背景技术

条形码是将宽度不等的多个黑条和空白,按一定的编码规则排列,用以表达一组信息的图形标识符。随着科技的迅速发展,条形码技术日趋成熟,在商品流通的各个领域皆有应用。条形码上承载着商品的各种信息,是供应链管理的基础技术,是管理现代化的重要手段之一。对条形码的精确识别大大加快商品流通,增强企业竞争力。

现有图像式条形码识别主要采取基于软件编程技术和硬件技术两种方案。与硬件识别系统相比,基于软件编程技术的识别方案具有非接触性、效率高以及成本低廉等优点,识别系统具有较好的灵活性和较低的成本,发展潜力更大。现有图像式条形码通常由相机扫描得到,经解码软件识别,识别结果容易出错,尤其针对在流水线上进行工业解码的情况,由于流水线上产品较多,若条形码识别结果出错,可能造成不合格产品出厂,造成损失。

发明内容

鉴于上述问题,本发明实施例提供了一种图形码识别方法、装置、计算设备及计算机可读存储介质,用于解决上述技术问题。

根据本发明实施例的第一方面,提供了一种图形码识别方法,所述方法包括:

获取图形码对象的k个原图,k为大于0的正整数;

解码识别每一所述原图的目标图形码,得到k个第一解码结果,将属于同一解码结果数量最多的n个所述第一解码结果作为n个第二解码结果,n为大于0小于或等于k的正整数;

根据n个所述第二解码结果对应所述原图的图像质量参数计算总解码质量得分;

判断所述总解码质量得分是否大于或等于第一质量阈值;

若所述总解码质量得分大于或等于所述第一质量阈值,则将所述总解码质量得分大于或等于所述第一质量阈值对应的所述第二解码结果输出。

在一些实施例中,所述解码识别每一所述原图的目标图形码,得到k个第一解码结果,进一步包括:

提取所述原图的图形码特征;

根据所述图形码特征进行矫正,得到指定角度的所述目标图形码;

解码识别所述目标图形码,得到所述第一解码结果。

在一些实施例中,所述图形码特征包括图形码图案的角点位置、类别、置信度、倾斜角度,所述提取所述原图的图形码特征,进一步包括:

对所述原图进行语义分割计算,得到所述图形码图案;

对所述图形码图案进行定位计算,得到所述角点位置、所述类别、所述置信度和所述倾斜角度。

在一些实施例中,所述图形码特征包括图形码图案的角点位置、倾斜角度,所述根据所述图形码特征进行矫正,得到指定角度的所述目标图形码,进一步包括:

基于所述角点位置和所述倾斜角度进行仿射变换,得到水平角度的所述目标图形码。

在一些实施例中,所述解码识别每一所述原图的目标图形码,得到k个第一解码结果,进一步包括:

采用Zbar算法对所述目标图形码进行第一解码操作;

若所述第一解码操作成功,得到所述第一解码结果;

若所述第一解码操作失败,对所述目标图形码进行像素分类识别计算,得到识别结果图像;

对所述识别结果图像进行第二解码操作;

若所述第二解码操作成功,得到所述第一解码结果。

在一些实施例中,所述解码识别每一所述原图的目标图形码,得到k个第一解码结果,进一步包括:

根据每一所述原图的所述图像质量参数计算第一解码质量得分;

判断所述第一解码质量得分是否大于或等于第二质量阈值;

若所述第一解码质量得分大于或等于所述第二质量阈值,采用第一解码算法对所述第一解码质量得分大于或等于所述第二质量阈值对应的所述图形码图案进行第一解码操作;

若所述第一解码操作成功,得到所述第一解码结果;

若所述第一解码操作失败或所述第一解码质量得分小于所述第二质量阈值,判断所述第一解码质量得分是否大于或等于第三质量阈值,所述第三质量阈值小于所述第二质量阈值;

若所述第一解码质量得分大于或等于所述第三质量阈值,采用第二解码算法对所述第一解码质量得分大于或等于所述第三质量阈值对应的所述图形码图案进行第二解码操作;

若所述第二解码操作成功,得到所述第一解码结果。

在一些实施例中,所述根据n个所述第二解码结果对应所述原图的图像质量参数计算总解码质量得分,进一步包括:

计算第i个所述第二解码结果对应的第二解码质量得分s

计算所述总解码质量得分

根据本发明实施例的第二方面,提供了一种图形码识别装置,所述装置包括:

获取模块,用于获取图形码对象的k个原图,k为大于0的正整数;

解码模块,用于解码识别每一所述原图的图形码图案,得到k个第一解码结果,将属于同一解码结果数量最多的n个所述第一解码结果作为n个第二解码结果,n为大于0小于或等于k的正整数;

计算模块,用于根据n个所述第二解码结果对应所述原图的图像质量参数计算总解码质量得分;

判断模块,用于判断所述总解码质量得分是否大于或等于第一质量阈值;

输出模块,用于若所述总解码质量得分大于或等于所述第一质量阈值,则将所述总解码质量得分大于或等于所述第一质量阈值对应的所述第二解码结果输出。

根据本发明实施例的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述任一项所述的图形码识别方法的操作。

根据本发明实施例的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在运行时执行如上述任一项所述的图形码识别方法的操作。

本发明实施例通过将k个第一解码结果中同一结果数量最多的n个第一解码结果作为n个第二解码结果,以提高解码准确度;通过计算n个第二解码结果对应原图的图像质量参数计算总解码质量得分,以评价第二解码结果是否可靠。其中若处理器判断总解码质量得分大于或等于第一质量阈值,则将对应的第二解码结果输出,在此情况下,可以认为n个第二解码结果对应的原图的图像质量较好,所得到的第二解码结果是可靠的,避免出现由于n个原图的图像质量不好导致n个识别错误的第二解码结果被输出的情况。并且,只需计算n个第二解码结果对应的总解码质量得分,无需计算其他解码结果的解码质量得分,减少处理器的计算量,提高处理器的处理速度。

此外,在工业产线上,相机针对图形码对象进行飞拍,得到同一图形码对象的多个原图,并得到多个第二解码结果,由于飞拍是快速拍摄,且图形码对象在产线是运动的,所得的原图容易模糊不清,影响解码结果,在此情况下,通过判断总解码质量得分是否大于或等于第一质量阈值对第二解码结果进行筛选,则将总解码质量得分大于或等于第一质量阈值对应的第二解码结果输出,从而使得输出的第二解码结果更为准确可靠,且处理器计算方便简单,能够快速输出准确可靠的第二解码结果,从而保证产线的正常运行以及生产效率较高,以及保证产品的合格率要求。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的图形码识别方法的流程示意图;

图2示出了图形码识别方法中步骤120一实施例的流程示意图;

图3示出了图形码识别方法中步骤120另一实施例的流程示意图;

图4示出了图形码识别方法中步骤120又一实施例的流程示意图;

图5示出了图形码识别方法中步骤130一实施例的流程示意图;

图6示出了本发明实施例提供的图形码识别装置的结构示意图;

图7示出了本发明一些实施例提供的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。

针对现有的条形码识别出现解码出错的情况,发明人发现,相机对条形码对象拍摄所得的原图由于光照、像素、清晰度等图像质量的问题,导致原图中条形码图案部分显示不清楚,解码软件对原图中的条形码图案容易识别错误。尤其针对流水线上运动的多个产品,该多个产品即为多个条形码对象,相机对运动的产品进行飞拍操作,以拍摄出一个产品不同视角的多个原图,利用解码软件对多个原图中的条形码图案进行解码识别,选择同一解码结果最多的作为输出的图形码结果,以提高识别准确度。然而在一些情况下,若识别的同一解码结果最多的条形码结果是错误的,无法及时发现,则会与其他合格产品一起流出,造成损失。具体的,假设解码结果是把控样本合格率的最后一道关口,如果解码出错,将不合格样品判断为合格样品出厂,损失难以估量,例如一辆汽车质量合格二维码解码错误并出厂交付,用户使用车子会发生故障,损害生命财产,公司理赔,公司信誉降低,破产等,因此要求确保解码结果准确性。

发明人提供了一种图形码识别方法,通过设置解码质量得分评价解码原图以及解码结果,若解码质量得分大于或等于质量阈值,则输出对应的解码结果,以保证解码结果是准确的,防止解码识别失误。

图1示出了本发明实施例提供的图形码识别方法的流程图,该方法由计算设备执行,该计算设备可以是包括一个或多个处理器的计算设备,该处理器可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路,在此不做限定。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC,在此不做限定。

如图1所示,该方法包括以下步骤:

步骤110:获取图形码对象的k个原图,k为大于0的正整数;

步骤120:解码识别每一原图的目标图形码,得到k个第一解码结果,将属于同一解码结果数量最多的n个第一解码结果作为n个第二解码结果,n为大于0小于或等于k的正整数;

步骤130:根据n个第二解码结果对应原图的图像质量参数计算总解码质量得分;

步骤140:判断总解码质量得分是否大于或等于第一质量阈值;

步骤150:若总解码质量得分大于或等于第一质量阈值,则将总解码质量得分大于或等于第一质量阈值对应的第二解码结果输出。

步骤110中,图形码通过特定的几何图形按照一定规律在平面上分布的图像记录数据信息,常见的图形码例如有二维码、条形码等。对图形码进行识别,可获取到其中记录的信息。图形码对象是图形码实体,可以体现为具有图形码图案的贴纸;或者体现为具有图形码图案的产品,例如直接在产品表面喷涂图形码图案,其中产品的材质不限,可以为纸质也可以为塑料或者其他材质,在此不做限定;或者图形码对象体现为其他形态,在此不做限定,根据需要设置。相机针对同一图形码对象进行拍摄,得到k个原图并传输给处理器,以使处理器获取k个原图,每一原图上显示有图形码图案。其中,若k=1,表示有一个原图;若k>1,表示有多个原图,该多个原图可以是图形码对象同一视角的原图,也可以是图形码对象不同视角的原图,在此不做限定。

步骤120中,处理器通过解码算法解码识别每一原图对应的目标图形码,在一些情况下,解码算法可以是原图上直接识别图形码图案进行解码,相应的,该原图上原始的图形码图案即为目标图形码,解码算法可以采用Zbar算法直接解码;或者在一些情况下,通过对原图的图形码图案进行定位以及矫正处理,以将图形码图案摆正,得到对应的目标图形码,以提高解码准确度。解码算法可以采用Zbar算法、Zxing算法或者机器学习算法或者其他算法中的至少一种算法进行解码计算,在此不做限定,根据需要设置。

解码算法解码识别每一原图的目标图形码后,得到k个第一解码结果,其中,第一解码结果不一定是表示图形码的解码内容的,有可能是异常的解码结果,或者表示其他情况的解码结果,在此不做限定。

处理器将属于同一解码结果数量最多的n个第一解码结果作为n个第二解码结果,以提高解码准确度,并为后续步骤提供计算基础。其中,针对k=1的情况,第一解码结果只有一个,相应的n为1;针对k>1的情况,处理器选择结果相同且数量最多的第一解码结果,以提高解码准确度,例如共有10个第一解码结果,其中有6个第一解码结果相同,相应的,n即为6。

步骤130中,由于所得的第二解码结果有可能因为图像质量的问题导致解码算法识别错误,因此,通过根据第二解码结果对应原图的图像质量参数相应计算解码质量得分,以评价解码结果是否可靠。针对n=1的情况,即第二解码结果为一个,处理器对应根据一个原图的图像质量参数计算总解码质量得分;针对n>1的情况,第二解码结果有多个,以及每一第二解码结果具有对应的原图,其中每一原图均可根据图像质量参数计算对应的解码质量得分,总解码质量得分根据n个解码质量得分计算。在此情况下,只需计算n个第二解码结果对应的总解码质量得分,无需计算其他解码结果的解码质量得分,减少处理器的计算量,提高处理器的处理速度。

其中,总解码质量得分可以通过简单的加法计算n个解码质量得分的总和;或者总解码质量得分也可以通过加权方式进行归一化处理,得到0-1之间的数值,总解码质量得分的计算方法不做限定,根据需要设置;或者总解码质量得分也可以通过计算平均值的方式,得到0-1之间的数值;总解码质量得分的计算方法不做限定,根据需要设置。

图像质量参数包括清晰度、噪声、曝光度、色差、颜色、对焦等,在此不一一列举。相应的,原图对应的解码质量得分根据该图像质量参数进行计算,例如针对清晰度、噪声、曝光度、色差、颜色、对焦的得分分别进行计算,而后进行归一化处理,得到0-1之间的数值。在一些实施例中,可以通过图像质量评估算法SSIM进行相应的解码质量得分计算。或者在一些实施例中,也可以通过PSNR或ZNCC或者其他图像质量评估算法进行相应的解码质量得分计算,在此不做限定,根据需要设置。

例如,在一些实施例中,第二解码结果对应原图的解码质量得分的计算步骤如下:计算第i个第二解码结果对应原图的清晰度得分a

在一些实施例中,若目标图形码为一维条形码,还可以计算第i个第二解码结果对应原图的解码正确率c

当然,在一些实施例中,原图对应的解码质量得分也可以不是0-1之间的数值,例如设置为100的数值或者其他数值,在此不做限定,根据需要设置。相应的,n个解码质量得分的总解码质量得分也可以进行归一化处理,设为0-1之间的数值,或者根据需要设置为其他数值,在此不做限定。

步骤140和步骤150中,处理器通过判断总解码质量得分是否大于或等于第一质量阈值,在一些实施例中,若解码质量得分为0-1之间,总解码质量得分通过简单的加法计算n个解码质量得分的总和,相应的,第一质量阈值的数值设置为0-n之间,优选的,设置为0.6n以上;在一些实施例中,若总解码质量得分通过加权方式进行归一化处理,得到0-1之间的数值,相应的,第一质量阈值的数值设置为0-1之间,优选的,设置为0.7以上,以保证总解码质量得分的可靠性较大。在一些实施例中,若总解码质量得分通过平均值计算,得到0-1之间的数值,相应的,第一质量阈值的数值设置为0-1之间,优选的,设置为0.7以上,以保证总解码质量得分的可靠性较大。若处理器判断总解码质量得分大于或等于第一质量阈值,则将对应的第二解码结果输出,在此情况下,可以认为n个第二解码结果对应的原图的图像质量较好,所得到的第二解码结果是可靠的,避免出现由于n个原图的图像质量不好导致n个识别错误的第二解码结果被输出的情况。尤其在工业产线上,相机针对图形码对象进行飞拍,得到同一图形码对象的多个原图,并得到多个第二解码结果,由于飞拍是快速拍摄,且图形码对象在产线是运动的,所得的原图容易模糊不清,影响解码结果,在此情况下,通过判断总解码质量得分是否大于或等于第一质量阈值对第二解码结果进行筛选,则将总解码质量得分大于或等于第一质量阈值对应的第二解码结果输出,从而保证输出的第二解码结果更为准确可靠,保证产线的正常运行以及生产效率较高,以及保证产品的合格率要求。

步骤110至步骤150中,通过将k个第一解码结果中同一结果数量最多的n个第一解码结果作为n个第二解码结果,以提高解码准确度。通过计算n个第二解码结果对应原图的图像质量参数计算总解码质量得分,以评价第二解码结果是否可靠。其中若处理器判断总解码质量得分大于或等于第一质量阈值,则将对应的第二解码结果输出,在此情况下,可以认为n个第二解码结果对应的原图的图像质量较好,所得到的第二解码结果是可靠的,避免出现由于n个原图的图像质量不好导致n个识别错误的第二解码结果被输出的情况。并且,只需计算n个第二解码结果对应的总解码质量得分,无需计算其他解码结果的解码质量得分,减少处理器的计算量,提高处理器的处理速度。

此外,在工业产线上,相机针对图形码对象进行飞拍,得到同一图形码对象的多个原图,并得到多个第二解码结果,由于飞拍是快速拍摄,且图形码对象在产线是运动的,所得的原图容易模糊不清,影响解码结果,在此情况下,通过判断总解码质量得分是否大于或等于第一质量阈值对第二解码结果进行筛选,则将总解码质量得分大于或等于第一质量阈值对应的第二解码结果输出,从而使得输出的第二解码结果更为准确可靠,且处理器计算方便简单,能够快速输出准确可靠的第二解码结果,从而保证产线的正常运行以及生产效率较高,以及保证产品的合格率要求。

在一些实施例中,若处理器判断总解码质量得分小于第一质量阈值,对应的,可以认为n个第二解码结果对应的原图的图像质量较差,所得到的第二解码结果是不可靠的,处理器可以发出解码警报提示,提示产线或者处理人员进行相应的异常处理。

如图2所示,在一些实施例中,步骤120进一步包括:

步骤a01:提取原图的图形码特征;

步骤a02:根据图形码特征进行矫正,得到指定角度的目标图形码;

步骤a03:解码识别目标图形码,得到第一解码结果。

步骤a01用于对原图的图形码图案进行识别定位,以计算得到相关的图形码特征,并为后续图形码图案的矫正提供计算基础。该图形码特征包括图形码图案的角点位置、类别、置信度、倾斜角度等特征中的至少一种,在此不一一列举根据,根据需要计算对应的图形码特征。

步骤a02和步骤a03中,根据图形码特征进行计算,在此情况下,图形码特征至少包括倾斜角度和角点位置,以根据该倾斜角度和角点位置进行矫正,调整图形码图案的角度,使得图形码图案进行指定角度的摆正,从而得到对应的目标图形码,而后处理器根据解码算法解码识别目标图形码,得到第一解码结果。该摆正角度根据解码算法的识别角度设置,通常为水平摆正,以提高解码识别的准确率以及成功率。其中,在一些实施例中,若图形码图案的整体形状为方形,相应的角点位置即为方形的角点位置,该角点位置设有四个并以坐标点方式体现。在一些实施例中,若图形码图案的整体形状为三角形或者其他形状,相应的角点位置即为该形状的角点位置,该角点位置以坐标点方式体现,以及角点位置的数量根据图形码图案的角点数量设置。或者在一些实施例中,角点位置的数量也可以不与图形码图案的角点数量相同,只要能根据角点位置调整图形码图案的角度即可。

步骤a01至步骤a03中,通过对原图的图形码图案进行定位以及矫正,使得图形码图案进行指定角度的摆正,从而得到对应的目标图形码,以提高解码识别的准确率以及成功率。

在一些实施例中,图形码特征包括图形码图案的角点位置、类别、置信度、倾斜角度,步骤a01进一步包括:

步骤a011:对原图进行语义分割计算,得到图形码图案;

步骤a012:对图形码图案进行定位计算,得到角点位置、类别、置信度和倾斜角度。

步骤a011中,通过网络模型对原图进行语义分割计算,得到图形码图案。其中,该网络模型借鉴Darknet53作为backbone融合多尺度特征深层语义融合机制信息和注意力机制,以增强了图形码特征的提取能力,其中,预测头采用多尺度预测回归,loss部分包括位置信息损失、类别损失、角度损失。或者在一些实施例中,也可以通过Contents、FCN、U-net、SegNet、DeepLab v1、RefineNet、PSPnet、Deeplab v2、v3等图像语义分割算法进行语义分割计算,得到对应的图形码图案。

步骤a012中,在进行语义分割计算过程中,图形码图案的坐标位置已在坐标系中确定,因此,可以直接定位计算图形码图案的角点位置和倾斜角度。其中,类别用于表示图形码图案类型,例如当图形码图案为一维条形码时,则对应表示为条形码类别。该类别可以通过深度学习的方式确定,并且可以通过深度学习得到图形码图案的边框位置,例如,通过标注多个图像样本对应的图形码图案类别以及边框位置,而后通过深度学习的方式获取对应的参数并且计算当前原图中图形码图案类别以及边框位置。置信度用于判断该深度学习所得到的类别、边框位置等是否可靠,若可靠,则将对应的图形码图案进行后续处理,以保证图形码图案在后续被解码的结果更为准确,有利于解码准确率。

在一些实施例中,图形码特征包括图形码图案的角点位置、类别、置信度、倾斜角度,步骤a02进一步包括:

步骤a021:基于角点位置和倾斜角度进行仿射变换,得到水平角度的目标图形码。

步骤a021中,根据倾斜角度得到将原始的图形码图案旋转到指定角度的旋转角度,其中,倾斜角度是相对于水平角度得到的,该水平角度为0°,若指定角度设为水平角度,则相应的,旋转角度即为倾斜角度,通过仿射矩阵将原始图形码图案进行旋转变换得到水平变换后的角点位置的坐标,以及对应水平角度的目标图形码。

如图3所示,在一些实施例中,步骤120进一步包括:

步骤b01:采用Zbar算法对目标图形码进行第一解码操作;

步骤b02:若第一解码操作成功,得到第一解码结果;

步骤b03:若第一解码操作失败,对目标图形码进行像素分类识别计算,得到识别结果图像;

步骤b04:对识别结果图像进行第二解码操作;

步骤b05:若第二解码操作成功,得到第一解码结果。

步骤b01和步骤b02中,处理器优先采用Zbar算法对目标图形码进行第一解码操作,其解码速度较快,具有较高的解码效率,能够快速使得第一解码操作成功得到的第一解码结果,此外,Zbar算法可以适应的范围较广,适用具有一定倾斜角度的目标图形码,有利于识别大多数原图的目标图形码,识别成功率较高。尤其在工业解码情况下,针对同一条码对象的多张原图进行解码,采用Zbar算法解码,能够满足工业解码的效率要求。

步骤b03、步骤b04和步骤b05中,针对Zbar算法进行第一解码操作失败,不能识别目标图形码的情况,通过采用像素分类识别计算,针对图形码图案中每一个像素识别,给到相应的标签,得到识别结果图像,而后基于解码规则对该识别结果图像进行第二解码操作,识别得到第一解码结果。其中,针对条形码和二维码,均具有黑条和白空,像素值差异很明显,因此分割模型可能很好的完成这个分类任务,得到对应的针对黑条的标签以及针对白空的标签,识别成功率较高,以及识别得到的第一解码结果准确率较高。该像素分类识别计算是一种深度学习的分割算法,通过分割识别原图,得到输出后带有对应标签的宽度流检测结果。在一些实施例中,使用蒸馏模型,可以使得计算耗时小于10ms,计算速度较快,以保证识别效率较高。在一些实施例中,通过GPU/CPU/NPU加速,进行像素分类识别计算,以减少采用不同算法导致的识别时长,进一步提高计算速度,提高识别效率。

通过步骤b01至步骤b05,以Zbar算法和像素分类识别算法通过先后顺序针对目标图形码进行解码,得到k个第一解码结果,解码结果互补,增大解码识别范围,提高识别成功率。

此外,在一些实施例中,若原图中的图形码图案经过步骤a01和步骤a02的定位和矫正处理后得到指定角度的目标图形码,通过步骤b01至步骤b05进行解码所得到的解码准确率能够进一步提高,以及解码效率进一步提高。

如图4所示,在一些实施例中,步骤120进一步包括:

步骤c01:根据每一原图的图像质量参数计算第一解码质量得分;

步骤c02:判断第一解码质量得分是否大于或等于第二质量阈值;

步骤c03:若第一解码质量得分大于或等于第二质量阈值,采用第一解码算法对第一解码质量得分大于或等于第二质量阈值对应的图形码图案进行第一解码操作;

步骤c04:若第一解码操作成功,得到第一解码结果;

步骤c05:若第一解码操作失败或第一解码质量得分小于第二质量阈值,判断第一解码质量得分是否大于或等于第三质量阈值,第三质量阈值小于第二质量阈值;

步骤c06:若第一解码质量得分大于或等于第三质量阈值,采用第二解码算法对第一解码质量得分大于或等于第三质量阈值对应的图形码图案进行第二解码操作;

步骤c07:若第二解码操作成功,得到第一解码结果。

步骤c01至步骤c04中,不同的解码算法对图像质量的要求不一样,针对第一解码算法,通过判断第一解码质量得分是否大于或等于第二质量阈值,以确定是否采用第一解码算法,第二质量阈值的设置根据第一解码质量得分的数值相应设置。例如,在一些实施例中,若第一解码质量得分的数值设置为0-1之间,相应的,第二质量阈值设置为0-1之间,例如设置为0.8,或者其他符合第一解码算法适应的数值;在一些实施例中,若第一解码质量得分的数值设置为0-100之间,相应的,第二质量阈值设置为0-100之间,例如设置为80,或者其他符合第一解码算法适应的数值。

若处理器判断第一解码质量得分大于或等于第二质量阈值,说明该第一解码质量得分对应原图的图像质量较高,在此情况下,能够提高第一解码算法的解码成功率和解码准确率,使得解码成功后的第一解码结果更准确,降低误识别率。

其中,第一解码算法可以为Zbar算法、Zxing算法或者其他算法,在此不做限定。优选的,第一解码算法采用Zbar算法,以在工业解码情况中,优先根据Zbar算法进行第一解码质量得分的判断,能够满足工业解码的效率要求,使得整体的解码效率较快。

步骤c05至步骤c07中,针对采用第一解码算法进行第一解码操作失败或者第一解码质量得分小于第二质量阈值的情况,在此情况下,判断第一解码质量得分是否大于或等于第三质量阈值,第三质量阈值小于第二质量阈值,其中第三质量阈值根据第二解码算法的适应的图像质量相应设置,采用第二解码算法可以识别图像质量较差的原图的目标图形码,且具有较高的解码成功率和解码准确率,以补充第一解码算法不能识别的部分,增大解码识别范围和识别率。在此情况下,第三质量阈值设置为小于第二质量阈值。若处理器判断若第一解码质量得分大于或等于第三质量阈值,采用第二解码算法对第一解码质量得分大于或等于第三质量阈值对应的图形码图案进行第二解码操作,识别得到第二解码操作成功后的第一解码结果。

其中,第二解码算法可以为机器学习算法或者其他算法,在此不做限定。机器学习算法优选为像素分类识别算法,该像素分类识别算法参照上述步骤b03至b05步骤的相关描述,在此不做赘述。

第一解码质量得分和第二解码质量得分均根据对应原图的图像质量参数计算,该图像质量参数包括清晰度、噪声、曝光度、色差、颜色、对焦等,在此不一一列举。

通过步骤c01至步骤c07,针对采用多种解码算法进行补充解码的情况,通过判断第一解码质量与不同质量阈值的比较,确定相应的解码算法,节省一一通过各种解码算法进行解码的步骤,从而提高解码效率,并且可以补充识别范围,增大解码识别范围和识别率。

其中,若处理器判断第一解码质量得分大于或等于第二质量阈值,则第一解码算法相应针对目标图项目进行解码,说明该第一解码质量得分对应原图的图像质量较高,在此情况下,能够提高第一解码算法的解码成功率和解码准确率,使得解码成功后的第一解码结果更准确,降低误识别率。若处理器判断若第一解码质量得分大于或等于第三质量阈值,则第二解码算法相应针对目标图项目进行解码,说明第二解码算法可以识别第三质量阈值所限制图像质量的原图的目标图形码,以补充第一解码算法不能识别的部分,增大解码识别范围和识别率。

此外,根据每一原图的图像质量参数得到第一解码质量得分,以评价对应原图的图像质量,从而提供相应的解码算法进行解码,提高解码效率和解码成功率,相应的,在后续进行总解码质量得分计算步骤中,能够提高第二解码结果的输出成功率。

如图5所示,在一些实施例中,步骤130进一步包括:

步骤d01:计算第i个第二解码结果对应的第二解码质量得分s

步骤d02:计算总解码质量得分

步骤d01和步骤d02针对总解码质量得分通过平均值计算的方式,以保证总解码质量得分的可靠性较大。

图6示出了本发明实施例提供的图形码识别装置的结构示意图,该装置200包括:

获取模块210,用于获取图形码对象的k个原图,k为大于0的正整数;

解码模块220,用于解码识别每一原图的图形码图案,得到k个第一解码结果,将属于同一解码结果数量最多的n个第一解码结果作为n个第二解码结果,n为大于0小于或等于k的正整数;

计算模块230,用于根据n个第二解码结果对应原图的图像质量参数计算总解码质量得分;

判断模块240,用于判断总解码质量得分是否大于或等于第一质量阈值;

输出模块250,用于若总解码质量得分大于或等于第一质量阈值,则将总解码质量得分大于或等于第一质量阈值对应的第二解码结果输出。

在一些实施例中,解码模块220进一步包括:

提取单元,用于提取原图的图形码特征;

矫正单元,用于根据图形码特征进行矫正,得到指定角度的目标图形码;

第一识别单元,用于解码识别目标图形码,得到第一解码结果。

在一些实施例中,图形码特征包括图形码图案的角点位置、类别、置信度、倾斜角度,提取单元进一步包括:

语义分割单元,用于对原图进行语义分割计算,得到图形码图案;

定位单元,用于对图形码图案进行定位计算,得到角点位置、类别、置信度和倾斜角度。

在一些实施例中,图形码特征包括图形码图案的角点位置、倾斜角度,矫正单元进一步包括:

变换单元,用于基于角点位置和倾斜角度进行仿射变换,得到水平角度的目标图形码。

在一些实施例中,解码模块220进一步包括:

第一执行单元,用于采用Zbar算法对目标图形码进行第一解码操作;

第一取得单元,用于若第一解码操作成功,得到第一解码结果;

第二执行单元,,用于若第一解码操作失败,对目标图形码进行像素分类识别计算,得到识别结果图像;

第二识别单元,用于对识别结果图像进行第二解码操作;

第二取得单元,用于若第二解码操作成功,得到第一解码结果。

在一些实施例中,解码模块220进一步包括:

第一解算单元,用于根据每一原图的图像质量参数计算第一解码质量得分;

第一判定单元,用于判断第一解码质量得分是否大于或等于第二质量阈值;

第三执行单元,用于若第一解码质量得分大于或等于第二质量阈值,采用第一解码算法对第一解码质量得分大于或等于第二质量阈值对应的图形码图案进行第一解码操作;

第三取得单元,用于若第一解码操作成功,得到第一解码结果;

第二判定单元,用于若第一解码操作失败或第一解码质量得分小于第二质量阈值,判断第一解码质量得分是否大于或等于第三质量阈值,第三质量阈值小于第二质量阈值;

第四执行单元,用于若第一解码质量得分大于或等于第三质量阈值,采用第二解码算法对第一解码质量得分大于或等于第三质量阈值对应的图形码图案进行第二解码操作;

第四取得单元,用于若第二解码操作成功,得到第一解码结果。

在一些实施例中,计算模块230进一步包括:

第二解算单元,用于计算第i个第二解码结果对应的第二解码质量得分s

第三解算单元,用于计算总解码质量得分

图7示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图7所示,该计算设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。

其中:处理器302、通信接口304、以及存储器306通过通信总线408完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于图形码识别方法实施例中的相关步骤。

具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。

处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

本发明实施例还提供一种种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在运行时执行上述任一项所述的图形码识别方法的操作。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 声纹识别方法、装置、计算机设备和计算机可读存储介质
  • 一种构件识别方法、装置、设备及计算机可读存储介质
  • 可疑团伙识别方法、装置、设备及计算机可读存储介质
  • 新设备识别方法、装置、服务器及计算机可读存储介质
  • 人脸识别方法、装置、计算机设备和可读存储介质
  • 家系图的识别方法、装置、设备和计算机可读存储介质
  • 图数据识别方法、装置、计算机设备及可读存储介质
技术分类

06120115919415