一种条码识别方法以及相关设备
技术领域
本申请涉及图像识别领域,尤其涉及一种条码识别方法以及相关设备。
背景技术
实时扫码功能是具有识别商品条形码和二维码图片的功能,例如读取普通商品包装上的一维码,收付款的二维码等,支持广泛的码型,支持复杂的场景,以及快速响应是实时扫码需要达成的目标。
条形码读取器可以基于图像捕获参数顺序地捕获多帧图像,并串行利用多种译码方法对获取到的图像帧进行译码,直到得到译码结果。然而,现有技术中,针对于每一帧图像都采用固定方式的串行译码策略,算力和时间开销较大。
发明内容
本申请实施例提供了一种条码识别方法以及相关设备,过对多帧图像采取不同的译码策略,可以减少复杂尝试带来的单帧耗时长和算力大的问题。
第一方面,本申请实施例提供了一种条码识别方法,所述方法包括:获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
本申请实施例中,第一图像中的第一目标条码可以包括一维码或二维码。示例性的,一维码的种类可以包括但不限于EAN-8一维条码,EAN-13,UPC-A一维条码,UPC-E一维条码,Codabar一维条码,Code 39一维条码,Code 93一维条码,Code 128一维条码以及ITF一维条码。二维码的种类可以包括但不限于PDF417,Aztec,PDF 417二维条码,Datamatrix二维条码,Maxicode二维条码,Code 49,Code 16K,Code one。
本申请实施例中,第一译码方法可以对图像进行特征检测,定位条码或二维码的位置及大小,并使用全局二值化方法将亮度图像转化为二值图像,使用各码型解码器逐一串行尝试解码,第一译码方法的算力开销较小,且针对于正常光照、正常距离、正常形状的常规条码场景,第一译码方法具有较好的效果,然而,针对于远距离、曝光异常(过曝、过暗)等复杂场景中的条码,第一译码方法的译码成功率较低。
本申请实施例中,相比于第一译码方法,第二译码方法可以通过增加尝试不同二值化方法,提高二维码特征定位标志检出率,例如,自适应二值化、局部二值化方法等。这些额外的尝试对于条码的译码定位有增强作用,进而使放大判断更加容易,但相对于第一译码方法会带来额外的算力及时间开销,不符合快速解码的定位,故而将其设定为第二译码方法。同时,第二译码方法还可以额外计算检测区域亮度,用于曝光调节判断和放大调解判断。
本申请实施例中,第三译码方法可以通过尝试多种图像处理方法,尝试解出其他难例和反色二维码,例如,高斯模糊降噪、缩放图像尺寸、Gamma拉亮、对比度增强及二值图取反等。这些尝试大多需要引入相当多的额外算力和时间消耗,同时其对应适用的场景比较少见,不适合每帧都尝试,故可选择将其放入优先度低的第三译码方法。
本申请实施例提供了一种条码识别方法,所述方法包括:获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
在第一方面的一种可选设计中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第一方面的一种可选设计中,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第一方面的一种可选设计中,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第一方面的一种可选设计中,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。
在第一方面的一种可选设计中,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。
在第一方面的一种可选设计中,所述通过第二译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第一方面的一种可选设计中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第一方面的一种可选设计中,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第一方面的一种可选设计中,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第一方面的一种可选设计中,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
第二方面,本申请提供了一种条码识别方法,所述方法包括:
获取第一图像,所述第一图像包括第一目标条码;
根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值。
在第二方面的一种可选设计中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第二方面的一种可选设计中,所述译码方法集合还包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第二方面的一种可选设计中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
第三方面,本申请提供了一种条码识别装置,包括:
获取模块,用于获取第一图像,所述第一图像包括第一目标条码;
第一译码模块,用于通过第一译码方法对所述第一图像进行译码;
若未得到译码结果,则所述获取模块,还用于获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;
第二译码模块,用于通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第三方面的一种可选设计中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第三方面的一种可选设计中,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第三方面的一种可选设计中,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第三方面的一种可选设计中,所述装置还包括:
确定模块,用于若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。
在第三方面的一种可选设计中,所述确定模块还用于:若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。
在第三方面的一种可选设计中,若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第三方面的一种可选设计中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第三方面的一种可选设计中,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第三方面的一种可选设计中,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第三方面的一种可选设计中,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
第四方面,本申请提供了一种条码识别装置,所述装置包括:
获取模块,用于获取第一图像,所述第一图像包括第一目标条码;
确定模块,用于根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值;
译码模块,用于利用所述目标译码方法对所述第一图像进行译码。
在第四方面的一种可选设计中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第四方面的一种可选设计中,所述译码方法集合还包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第四方面的一种可选设计中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
第五方面,本申请提供了一种终端设备,包括:一个或多个处理器;一个或多个存储器;多个应用程序;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或者多个程序被所述处理器执行时,使得所述终端设备执行如下步骤:
获取第一图像,所述第一图像包括第一目标条码;
通过第一译码方法对所述第一图像进行译码;
若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;
通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第五方面的一种可选设计中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第五方面的一种可选设计中,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第五方面的一种可选设计中,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第五方面的一种可选设计中,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。
在第五方面的一种可选设计中,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。
在第五方面的一种可选设计中,所述通过第二译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第五方面的一种可选设计中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第五方面的一种可选设计中,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第五方面的一种可选设计中,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第五方面的一种可选设计中,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
终端设备还可以执行如下步骤:
获取第一图像,所述第一图像包括第一目标条码;
根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值;
利用所述目标译码方法对所述第一图像进行译码。
在第五方面的一种可选设计中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
在第五方面的一种可选设计中,所述译码方法集合还包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
在第五方面的一种可选设计中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
第六方面,本申请提供了一种服务器,包括:一个或多个处理器;一个或多个存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或者多个程序被所述处理器执行时,使得所述服务器执行上述第一方面及第一方面的可能实现方式中任一项所述的步骤,或者上述第二方面及第二方面的可能实现方式中任一项所述的步骤。
第七方面,本申请提供了一种装置,该装置包含在终端设备中,该装置具有实现上述第一方面任一方面的可能实现方式中任一项终端装置行为的功能,或者上述第二方面任一方面的可能实现方式中任一项终端装置行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。
第八方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备或服务器上运行时,使得电子设备执行上述第一方面及第一方面的可能实现方式中任一项所述的步骤,或者上述第二方面及第二方面的可能实现方式中任一项所述的步骤。
第九方面,本申请提供了一种计算机程序产品,当计算机程序产品在电子设备或服务器上运行时,使得电子设备执行上述第一方面及第一方面的可能实现方式中任一项所述的步骤,或者上述第二方面及第二方面的可能实现方式中任一项所述的步骤。
本申请实施例提供了一种条码识别方法,所述方法包括:获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
附图说明
图1为本申请实施例提供的终端设备的结构示意;
图2为本申请实施例的终端设备的软件结构框图;
图3a为本申请实施例提供的一种条码识别方法的实施例示意图;
图3b为本申请实施例提供的一种识别场景示意;
图3c为本申请实施例提供的一种识别场景示意;
图4为本申请实施例提供的一种条码识别方法的实施例示意图;
图5为本申请实施例提供的一种条码识别方法的实施例示意图;
图6为本申请实施例提供的一种条码识别方法的实施例示意图;
图7为本申请实施例提供的一种条码识别装置的结构示意;
图8为本申请实施例提供的一种条码识别装置的结构示意;
图9为本申请实施例提供的一种终端设备的结构示意;
图10为本申请实施例提供的服务器的一种结构示意图;
图11为本申请实施例提供的一种条码识别方法的实施例示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
为便于理解,下面将对本申请实施例提供的终端设备100的结构进行示例说明。参见图1,图1是本申请实施例提供的终端设备100的结构示意图。
如图1所示,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I1C)接口,集成电路内置音频(inter-integrated circuitsound,I1S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括1G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线2转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线1接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
在一些可行的实施方式中,显示屏194可用于显示终端设备100的系统输出的各个界面。终端设备100输出的各个界面可参考后续实施例的相关描述。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG1,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。在一些可行的实施方式中,音频模块170可用于播放视频对应的声音。例如,显示屏194显示视频播放画面时,音频模块170输出视频播放的声音。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定终端设备100的运动姿态。气压传感器180C用于测量气压。
加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
以上是对终端设备100的结构进行的描述,接下来对终端设备的软件结构进行说明。终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图2是本申请实施例的终端设备100的软件结构框图。
如图2所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。界面内容可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备200的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
为了便于理解,本申请以下实施例将以具有图1和图2所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的一种条码识别方法进行具体阐述。
参照图3a,图3a为本申请实施例提供的一种条码识别方法的实施例示意图,如图3a示出的那样,本申请提供的条码识别方法,包括:
301、获取第一图像,所述第一图像包括第一目标条码。
本申请实施例中,终端设备可以获取包括第一目标条码的第一图像,第一图像可以是视频中的一个图像帧。
终端设备可以通过自身携带的摄像头拍摄获取到第一图像。
在一种实施例中,用户可以打开某些应用程序上的条码识别功能,并选择条码扫码,该功能会调用终端设备上的摄像头,进而,用户可以通过终端设备的摄像头拍摄某一区域,该区域设置有条码,终端设备可以控制摄像头采集预览流,进而使得终端设备可以获取预览流中的一个图像帧作为第一图像,该第一图像包括第一目标条码。
本申请实施例中,第一图像中的第一目标条码可以包括一维码或二维码。
示例性的,一维码的种类可以包括但不限于EAN-8一维条码,EAN-13,UPC-A一维条码,UPC-E一维条码,Codabar一维条码,Code 39一维条码,Code 93一维条码,Code 128一维条码以及ITF一维条码,参照图3b,图3b为当第一目标条码为一维码时第一图像的一种示意。
二维码的种类可以包括但不限于PDF417,Aztec,PDF 417二维条码,Datamatrix二维条码,Maxicode二维条码,Code 49,Code 16K,Code one。参照图3c,图3c为当第一目标条码为二维码时第一图像的一种示意。
此外,终端可以在本地相册或者云端相册中获取第一图像。
在一种实施例中,用户可以打开某些应用程序上的条码识别功能,并选择从本地相册或云端相册中选择图像,该功能会打开终端设备上的本地相册或云端相册,用户可以在终端设备上的本地相册或云端相册中选择一幅要进行条码识别的第一图像,该第一图像可以包括第一目标条码,进而,终端设备可以在本地相册或者云端相册中获取到包括第一目标条码的第一图像。
本申请实施例中,终端设备在获取到第一图像之后,可以对第一图像进行译码。
具体的,译码过程可以分为多个优先级流程(包括下文描述的第一译码方法、第二译码方法和第三译码方法),每种优先级流程相对独立,并各有侧重。示例性的,第一优先级流程侧重快速解码;第二优先级流程侧重放大、曝光调节等相机参数调节,第三优先级流程侧重于针对一个特殊的码型进行解码。
可选地,本申请实施例中,终端设备在接收到第一图像之后,会判断第一图像需要激活哪些优先级。
在一种实施例中,会确定第一图像是进入算法的第几帧图片,并判断当前帧需要激活哪些译码方法。例如,第一帧图像激活第一译码方法,第二帧图像激活第一译码方法和第二译码方法,第三帧图像则激活第一译码方法和第三译码方法等等。接下来,可以根据激活的译码方法,确定需要进行哪些译码方法。
302、通过第一译码方法对所述第一图像进行译码。
本申请实施例中,若确定第一图像激活的译码方法为第一译码方法之后,可以采用第一译码方法对第一图像进行译码。
本申请实施例中,第一译码方法可以对图像进行特征检测,定位条码或二维码的位置及大小,并使用全局二值化方法将亮度图像转化为二值图像,使用各码型解码器逐一串行尝试解码,第一译码方法的算力开销较小,且针对于正常光照、正常距离、正常形状的常规条码场景,第一译码方法具有较好的效果,然而,针对于远距离、曝光异常(过曝、过暗)等复杂场景中的条码,第一译码方法的译码成功率较低。
303、若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码。
本申请实施例中,若通过第一译码方法对所述第一图像进行译码之后,若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码。
本申请实施例中,第一图像和第二图像可以为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧,由于拍摄视角的变化或者拍摄位置的变化,第一目标条码在第一图像中的像素位置可以与第二目标条码在第二图像中的像素位置不同,由于图像清晰度的不同,或者条码在图像中的完整度的不同,第一目标条码在第一图像中的图像特征可以与第二目标条码在第二图像中的图像特征不同,但,第一目标条码和第二目标条码包括的解析信息相同,即,若第一目标条码和第二目标条码在图像中为完整的条码,则第一目标条码和第二目标条码包括的解析信息相同,且对第一目标条码和第二目标条码译码成功后得到的解析结果相同。本申请实施例中,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
304、通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
本申请实施例中,终端设备在获取到第二图像之后,可以通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
本申请实施例中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;其中,译码成功率可以表示译码方法的综合性能,可以表示针对于条码在不同场景下进行多次译码后的译码成功率的总体结果,可以是通过多次扫码试验进行统计得到的综合概率结果,而并不限定于某一次扫码的成功率。例如,针对于某些具有相似特征的条码进行多次或不同环境译码,第二译码方法的译码成功率高于第一译码方法。
具体的,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率的具体情况可以包括但是不限于为如下几种:
本申请实施例中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率。
本申请实施例中,当拍摄点距离条码的距离过大时,图像中的条码的尺寸大小会很小,即图像中的条码占有的像素数量会很少,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率,其中,预设数量可以根据实际情况选择,这里并不限定。
本申请实施例中,针对于图像中亮度小于第一预设亮度的条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率,其中,第一预设亮度可以根据实际情况选择,这里并不限定。
本申请实施例中,针对于图像中亮度大于第二预设亮度的条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率,其中,第二预设亮度可以根据实际情况选择,这里并不限定。
本申请实施例中,相比于第一译码方法,第二译码方法可以通过增加尝试不同二值化方法,提高二维码特征定位标志检出率,例如,自适应二值化、局部二值化方法等。这些额外的尝试对于条码的译码定位有增强作用,进而使放大判断更加容易,但相对于第一译码方法会带来额外的算力及时间开销,不符合快速解码的定位,故而将其设定为第二译码方法。同时,第二译码方法还可以额外计算检测区域亮度,用于曝光调节判断和放大调解判断。
需要说明的是,本申请实施例中的第一译码方法和第二译码方法可以通过神经网络实现,其中第二译码方法对应的神经网络模型在训练过程中采用的训练样本和/或收敛条件可以与第一译码方法采用的训练样本和/或收敛条件不同(例如,第二译码方法的训练样本为具有一定亮度特征或者完整度特征的条码,或者第二译码方法的收敛条件要求更高,译码精度更高),进而使得训练得到的第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。换一种表述方式,当条码的在图像中的检测区域面积与图像面积比例低于一定值,则依据该比例,调整相机放大系数,放大条码区域至合适水平。
示例性的,若第二图像为相机基于第一放大等级拍摄得到的,若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数为第三放大等级,相机可以将放大等级调整为第三放大等级,进而提高之后相机拍摄得到的图像帧中条码在图像中占有的像素数量与图像的像素数量的比例。
若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。本申请实施例中,当条码检测区域平均亮度低于或高于一定范围,调节相机曝光等级,以矫正该区域亮度水平至一定范围。
示例性的,若第二图像为相机基于相机曝光等级1拍摄得到的,若所述第二目标条码在所述第二图像中的亮度小于某一预设值,则根据所述亮度确定曝光调整参数为相机曝光等级2,即提高相机曝光等级,进而提高之后相机拍摄得到的图像帧中条码的亮度。
示例性的,若第二图像为相机基于相机曝光等级2拍摄得到的,若所述第二目标条码在所述第二图像中的亮度大于某一预设值,则根据所述亮度确定曝光调整参数为相机曝光等级1,即减小相机曝光等级,进而减少之后相机拍摄得到的图像帧中条码的亮度。
本申请实施例中,若未得到译码结果,则还可以通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
本申请实施例中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
本申请实施例中,图像中的条码可以是一些反色条码,此时,第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
本申请实施例中,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
本申请实施例中,图像中的条码可以由于污渍或者其他遮挡物,或者由于条码本身的破损,其完整度可以小于预设值,此时,第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
本申请实施例中,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
本申请实施例中,预设形状可以是矩形或者圆形等规则图形,图像中的条码可以是一些特殊的形状,例如五边形、梯形等等,图像中的条码与预设形状之间的差异度大于预设差异度可以理解为不是矩形或者不是圆形等等,或者,与矩形或者圆形相似,但是相比于数学上的矩形,其具有一定的形变,且形变程度超出预设的差异度,此时,第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
本申请实施例中,第三译码方法可以通过尝试多种图像处理方法,尝试解出其他难例和反色二维码,例如,高斯模糊降噪、缩放图像尺寸、Gamma拉亮、对比度增强及二值图取反等。这些尝试大多需要引入相当多的额外算力和时间消耗,同时其对应适用的场景比较少见,不适合每帧都尝试,故可选择将其放入优先度低的第三译码方法。
需要说明的是,本申请实施例中的第二译码方法和第三译码方法可以通过神经网络实现,其中第三译码方法对应的神经网络模型在训练过程中采用的训练样本和/或收敛条件可以与第二译码方法采用的训练样本和/或收敛条件不同(例如,第三译码方法的训练样本为具有一定颜色特征或者形状特征的条码,或者第三译码方法的收敛条件要求更高,译码精度更高),进而使得训练得到的第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
本申请实施例中,针对于不同的图像帧,可以采用不同的译码策略组合,接下来进行详细说明:
示例一、第一图像采用第一译码方法,第二图像采用第一译码方法和第二译码方法,第三图像采用第一译码方法,第四图像采用第一译码方法和第二译码方法。
本申请实施例中,可以获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码;若未得到译码结果,则获取第三图像,所述第三图像包括第三目标条码,所述第一目标条码和所述第三目标条码对应于同一个条码;通过第一译码方法对所述第三图像进行译码;若未得到译码结果,则获取第四图像,所述第四图像包括第四目标条码,所述第一目标条码和所述第四目标条码对应于同一个条码;通过所述第一译码方法对所述第四目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第四目标图像进行译码。
其中,第一图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第二图像采用第一译码方法和第二译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第三图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第四图像采用第一译码方法和第二译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述。
本申请实施例中,由于所述第二译码方法的算力开销大于所述第一译码方法的算力开销,所述第二译码方法的时间开销大于所述第一译码方法的时间开销,因此在一帧图像(第一图像)进行译码的过程中,采用第一译码方法进行译码,若没有译码成功,则采用第一译码方法对另一帧图像(第二图像)进行译码,若没有译码成功,则采用第二译码方法对第二图像进行译码,相比于,每一帧图像都采用相同的译码方法,本实施例中,过对连续多帧图像采取不同流程策略,周期性调节单帧扫码流程长短,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
关于第一译码方法、第二译码方法和第三译码方法可以参照上述实施例中的描述,这里不再赘述。
示例二、第一图像采用第一译码方法,第二图像采用第一译码方法和第三译码方法,第三图像采用第一译码方法,第四图像采用第一译码方法和第三译码方法。
本申请实施例中,可以获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码;若未得到译码结果,则获取第三图像,所述第三图像包括第三目标条码,所述第一目标条码和所述第三目标条码对应于同一个条码;通过第一译码方法对所述第三图像进行译码;若未得到译码结果,则获取第四图像,所述第四图像包括第四目标条码,所述第一目标条码和所述第四目标条码对应于同一个条码;通过所述第一译码方法对所述第四目标图像进行译码,若未得到译码结果,则通过第三译码方法对所述第四目标图像进行译码。
其中,第一图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第二图像采用第一译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第三图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第四图像采用第一译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述。
本申请实施例中,由于所述第三译码方法的算力开销大于所述第一译码方法的算力开销,所述第三译码方法的时间开销大于所述第一译码方法的时间开销,因此在一帧图像(第一图像)进行译码的过程中,采用第一译码方法进行译码,若没有译码成功,则采用第一译码方法对另一帧图像(第二图像)进行译码,若没有译码成功,则采用第三译码方法对第二图像进行译码,相比于,每一帧图像都采用相同的译码方法,本实施例中,过对连续多帧图像采取不同流程策略,周期性调节单帧扫码流程长短,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
关于第一译码方法、第二译码方法和第三译码方法可以参照上述实施例中的描述,这里不再赘述。
示例三、第一图像采用第一译码方法,第二图像采用第一译码方法、第二译码方法和第三译码方法,第三图像采用第一译码方法,第四图像采用第一译码方法、第二译码方法和第三译码方法。
本申请实施例中,可以获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码;若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码;若未得到译码结果,则获取第三图像,所述第三图像包括第三目标条码,所述第一目标条码和所述第三目标条码对应于同一个条码;通过第一译码方法对所述第三图像进行译码;若未得到译码结果,则获取第四图像,所述第四图像包括第四目标条码,所述第一目标条码和所述第四目标条码对应于同一个条码;通过所述第一译码方法对所述第四目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第四目标图像进行译码;若未得到译码结果,则通过第三译码方法对所述第四目标图像进行译码。
其中,第一图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第二图像采用第一译码方法、第二译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第三图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第四图像采用第一译码方法、第二译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述。
本申请实施例中,由于第二译码方法和第三译码方法的算力开销大于所述第一译码方法的算力开销,第二译码方法和第三译码方法的时间开销大于所述第一译码方法的时间开销,因此在一帧图像(第一图像)进行译码的过程中,采用第一译码方法进行译码,若没有译码成功,则采用第一译码方法对另一帧图像(第二图像)进行译码,若没有译码成功,则采用第二译码方法和第三译码方法对第二图像进行译码,相比于,每一帧图像都采用相同的译码方法,本实施例中,过对连续多帧图像采取不同流程策略,周期性调节单帧扫码流程长短,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
关于第一译码方法、第二译码方法和第三译码方法可以参照上述实施例中的描述,这里不再赘述。
示例四、第一图像采用第一译码方法,第二图像采用第一译码方法和第二译码方法,第三图像采用第一译码方法、第二译码方法和第三译码方法,第四图像采用第一译码方法和第三译码方法。
其中,第一图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第二图像采用第一译码方法和第二译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第三图像采用第一译码方法、第二译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第四图像采用第一译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述。
示例五、第一图像采用第一译码方法,第二图像采用第一译码方法和第二译码方法,第三图像采用第一译码方法,第四图像采用第一译码方法和第三译码方法,第五图像采用第一译码方法,第六图像采用第一译码方法和第二译码方法,第七图像采用第一译码方法,第八图像采用第一译码方法和第三译码方法。
其中,第一图像采用第一译码方法进行译码的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第二图像采用第一译码方法和第二译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第三图像采用第一译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第四图像采用第一译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第五图像采用第一译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第六图像采用第一译码方法和第二译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述,第七图像采用第一译码方法的具体过程可以参照上述实施例中步骤301和步骤302对应的描述,这里不再赘述,第八图像采用第一译码方法和第三译码方法的具体过程可以参照上述实施例中步骤303和步骤304对应的描述,这里不再赘述。
需要说明的是,以上译码策略仅为一种示意,实际应用中,可以根据需求灵活选择,本申请并不限定。
需要说明的是,本申请实施例中的第一译码方法、第二译码方法和第三译码方法可以通过神经网络实现,本申请并不限定。
本申请实施例提供了一种条码识别方法,所述方法包括:获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
参照图4,图4为本申请实施例提供的一种条码识别方法的示意,如图4中示出的那样,本申请实施例提供的一种条码识别方法包括:
401、获取第一图像,所述第一图像包括第一目标条码;
步骤401的描述可以参照上述实施例中步骤301的描述,这里不再赘述。
402、根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值。
本申请实施例中,概率值可以表示对应的译码方法被选择作为当前图像帧的可能性。
本申请实施例中,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的条码,所述第二译码方法的译码成功率可以高于所述第一译码方法的译码成功率。
本申请实施例中,所述译码方法集合还可以包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
本申请实施例中,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率可以高于所述第二译码方法的译码成功率。
示例性的,本申请实施例中,第一译码方法的概率值可以设置为0.7,第二译码方法的概率值可以设置为0.2,第三译码方法的概率值可以设置为0.1。
403、利用所述目标译码方法对所述第一图像进行译码。
参照图5,图5为本申请实施例提供的一种条码识别方法的示意,如图5中示出的那样,本申请实施例提供的一种条码识别方法包括:
501、终端设备获取第一图像,所述第一图像包括第一目标条码。
步骤501的具体描述可以参照上述实施例中步骤301的描述,这里不再赘述。
502、终端设备将所述第一图像发送至服务器;
步骤502的具体描述可以参照上述实施例中步骤301的描述,这里不再赘述。
503、服务器通过第一译码方法对所述第一图像进行译码;
步骤503的具体描述可以参照上述实施例中步骤302的描述,这里不再赘述。
504、服务器若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;
步骤504的具体描述可以参照上述实施例中步骤303的描述,这里不再赘述。
505、服务器通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
步骤505的具体描述可以参照上述实施例中步骤304的描述,这里不再赘述。
本申请实施例提供了一种条码识别方法,所述方法包括:终端设备获取第一图像,所述第一图像包括第一目标条码;终端设备将所述第一图像发送至服务器;服务器通过第一译码方法对所述第一图像进行译码;服务器若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;服务器通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
参照图6,图6为本申请实施例提供的一种条码识别方法的示意,如图6中示出的那样,本申请实施例提供的一种条码识别方法包括:
601、获取当前图像帧作为第一图像。
步骤601的具体描述,可以参照步骤301的具体描述,这里不再赘述。
具体的,步骤601可以通过如下方式实现:
通过图1中示出的终端设备100的摄像头193拍摄得到图像数据,终端中的处理器可以调用存储器中的代码以将摄像头拍摄得到的图像数据处理为第一图像。可选的,终端中的处理器可以调用存储器中的代码来控制终端设备100中的视频编解码器等硬件设备将图像数据处理为第一图像。
602、通过第一译码方法对第一图像进行译码。
步骤602的具体描述,可以参照步骤302的具体描述,这里不再赘述。
本申请实施例中,步骤602可以通过如下方式实现:
通过图1中示出的终端设备100的处理器110调用存储器121中与第一译码方法相关的代码,进而实现通过第一译码方法对所述第一图像进行译码的功能。
6031、若得到译码结果,则译码成功,并结束当前条码识别流程。
6032、若未得到译码结果,则获取当前图像帧作为第二图像。
步骤6032的具体描述,可以参照步骤303的具体描述,这里不再赘述。
本申请实施例中,若未得到译码结果,则通过图1中示出的终端设备100的摄像头193拍摄得到图像数据,终端中的处理器可以调用存储器中的代码以将摄像头拍摄得到的图像数据处理为第二图像。
604、通过第一译码方法对第二图像进行译码。
本申请实施例中,终端设备可以通过调用存储器121中与第一译码方法相关的代码,进而实现通过第一译码方法对所述第一图像进行译码的功能。
6051、若得到译码结果,则译码成功,并结束当前条码识别流程。
6052、若未得到译码结果,则通过第二译码方法对第二图像进行译码。
步骤604、步骤6051和步骤6052的具体描述,可以参照步骤304的具体描述,这里不再赘述。
本申请实施例中,可以通过调用内部存储器121中与第一译码方法相关的代码,进而实现通过所述第一译码方法对所述第二目标图像进行译码的功能,且若未得到译码结果,则通过调用内部存储器121中与第二译码方法相关的代码,进而实现对所述第二目标图像进行译码的功能。
606、若得到译码结果,则译码成功,并结束当前条码识别流程。
607、若未得到译码结果,则判断是否需要调节相机参数,若需要调节相机参数,则调节相机参数。
本申请实施例中,可以通过调用内部存储器121中相关的代码,进而实现判断是否需要调节相机参数,若需要调节相机参数,则调节相机参数的功能。
608、获取当前图像帧作为第三图像。
本申请实施例还提供一种条码识别装置,请参阅图7,图7为本申请实施例提供的条码识别装置的一种结构示意图,条码识别装置700包括:
获取模块701,用于获取第一图像,所述第一图像包括第一目标条码。
具体的,获取模块701可以执行上述实施例中步骤301对应的步骤。
本申请实施例中,获取模块701可以通过图1中示出的终端设备100的摄像头193拍摄得到图像数据,终端中的处理器可以调用存储器中的代码以将摄像头拍摄得到的图像数据处理为第一图像。
可选的,终端中的处理器可以调用存储器中的代码来控制终端设备100中的视频编解码器等硬件设备将图像数据处理为第一图像。
第一译码模块702,用于通过第一译码方法对所述第一图像进行译码。
本申请实施例中,第一译码模块702可以作为处理器110中实现的一部分功能,通过调用内部存储器121中与第一译码方法相关的代码,进而实现通过第一译码方法对所述第一图像进行译码的功能。具体的,第一译码模块702可以执行上述实施例中步骤302对应的步骤。
若未得到译码结果,则所述获取模块701,还用于获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码。
具体的,获取模块701可以执行上述实施例中步骤303对应的步骤。
本申请实施例中,获取模块701可以通过图1中示出的终端设备100的摄像头193拍摄得到图像数据,终端中的处理器可以调用存储器中的代码以将摄像头拍摄得到的图像数据处理为第二图像。
第二译码模块703,用于通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
本申请实施例中,第二译码模块703可以作为处理器110中实现的一部分功能,通过调用内部存储器121中与第一译码方法相关的代码,进而实现通过所述第一译码方法对所述第二目标图像进行译码的功能,且若未得到译码结果,则通过调用内部存储器121中与第二译码方法相关的代码,进而实现对所述第二目标图像进行译码的功能。具体的,第二译码模块703可以执行上述实施例中步骤304对应的步骤。
可选地,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,所述装置还包括:
确定模块,用于若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。
可选地,所述确定模块还用于:若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。
可选地,若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
本申请实施例提供了一种条码识别装置,其中,获取模块获取第一图像,所述第一图像包括第一目标条码;第一译码模块通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则所述获取模块获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;第二译码模块通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
本申请实施例提供了一种条码识别装置,包括:获取模块,用于获取第一图像,所述第一图像包括第一目标条码;第一译码模块,用于通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则所述获取模块,还用于获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;第二译码模块,用于通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
本申请实施例还提供一种条码识别装置,请参阅图8,图8为本申请实施例提供的条码识别装置的一种结构示意图,条码识别装置800包括:
获取模块801,用于获取第一图像,所述第一图像包括第一目标条码;
确定模块802,用于根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值;
译码模块803,用于利用所述目标译码方法对所述第一图像进行译码。
可选地,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,所述译码方法集合还包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
接下来介绍本申请实施例提供的一种终端设备,请参阅图9,图9为本申请实施例提供的终端设备的一种结构示意图,终端设备900具体可以表现为虚拟现实VR设备、手机、平板、笔记本电脑、智能穿戴设备等,此处不做限定。具体的,终端设备900包括:接收器901、发射器902、处理器903和存储器904(其中终端设备900中的处理器903的数量可以一个或多个,图9中以一个处理器为例),其中,处理器903可以包括应用处理器9031和通信处理器9032。在本申请的一些实施例中,接收器901、发射器902、处理器903和存储器904可通过总线或其它方式连接。
存储器904可以包括只读存储器和随机存取存储器,并向处理器903提供指令和数据。存储器904的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器904存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器903控制终端设备的操作。具体的应用中,终端设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器903中,或者由处理器903实现。处理器903可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器903可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器903可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器904,处理器903读取存储器904中的信息,结合其硬件完成上述方法的步骤。
接收器901可用于接收输入的数字或字符信息,以及产生与终端设备的相关设置以及功能控制有关的信号输入。发射器902可用于通过第一接口输出数字或字符信息;发射器902还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器902还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器903,用于执行上述实施例中图3a以及对应的实施例中描述的步骤。具体的,处理器903,可以用于执行如下步骤:
获取第一图像,所述第一图像包括第一目标条码;
通过第一译码方法对所述第一图像进行译码;
若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;
通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。
可选地,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。
可选地,所述通过第二译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
本申请实施例提供了一种条码识别方法,所述方法包括:获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
本申请实施例中,在一种情况下,处理器903,用于:
获取第一图像,所述第一图像包括第一目标条码;
根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值。
可选地,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,所述译码方法集合还包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
本申请实施例还提供了一种服务器,请参阅图10,图10是本申请实施例提供的服务器的一种结构示意图,服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1022,用于执行上述实施例中描述的多条码识别方法。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行多条码识别方法的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行上述实施例中图3a以及对应的实施例中描述的步骤。具体的,计算机可以用于执行如下步骤:
获取第一图像,所述第一图像包括第一目标条码;
通过第一译码方法对所述第一图像进行译码;
若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;
通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中占有的像素数量与所述第二图像的像素数量的比例小于预设值,则根据所述比例确定放大调整参数,并根据所述放大调整参数进行相机的参数调整。
可选地,所述通过所述第一译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若所述第二目标条码在所述第二图像中的亮度不在预设范围内,则根据所述亮度确定曝光调整参数,并根据所述曝光调整参数进行相机的参数调整。
可选地,所述通过第二译码方法对所述第二目标图像进行译码之后,所述方法还包括:
若未得到译码结果,则通过第三译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,所述第一图像和所述第二图像为终端针对于所述同一个条码进行扫描过程中得到的不同图像帧。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行:
获取第一图像,所述第一图像包括第一目标条码;
根据概率值从译码方法集合中确定针对于所述第一图像的目标译码方法,其中,所述译码方法集合包括第一译码方法和第二译码方法;其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率,所述第一译码方法被调用的概率值大于所述第二译码方法被调用的概率值。
可选地,针对于图像中条码占有的像素数量小于预设数量的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度小于第一预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率;和/或,针对于图像中亮度大于第二预设亮度的同一个条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。
可选地,所述译码方法集合还包括:第三译码方法,其中,针对于具有相同图像特征的条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
可选地,针对于颜色特征为反色的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中完整度小于预设值的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率;和/或,针对于图像中形状与预设形状之间的差异度大于预设差异度的同一个条码,所述第三译码方法的译码成功率高于所述第二译码方法的译码成功率。
本申请实施例提供了一种条码识别方法,所述方法包括:获取第一图像,所述第一图像包括第一目标条码;通过第一译码方法对所述第一图像进行译码;若未得到译码结果,则获取第二图像,所述第二图像包括第二目标条码,所述第一目标条码和所述第二目标条码对应于同一个条码;通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码,其中,针对于具有相同图像特征的条码,所述第二译码方法的译码成功率高于所述第一译码方法的译码成功率。通过上述方式,过对多帧图像采取不同的译码策略,能够有效减少复杂尝试带来的单帧长耗时问题,及时刷新图像,提高扫码成功期望。
参照图11,图11为本申请实施例提供的一种条码识别方法的应用场景示意,如图11中示出的那样,本实施例提供的条码识别方法包括:
1101、接收用户的条码识别指令。
本申请实施例中,用户可以打开某些应用程序上的条码识别功能,并选择条码扫码,例如,当用户要添加某一应用程序的好友时,可以点击该应用程序对应的扫码控件,相应的,终端可以接收到用户的条码识别指令。
具体的,终端的传感器(例如图1中的压力传感器)可以识别出用户的点击操作,若点击操作针对于条码扫码功能,则处理器可以调用存储器中的代码来识别出接收到用户的条码识别指令。
1102、响应于条码识别指令,调用摄像头功能。
本申请实施例中,终端响应于条码识别指令,调用摄像头功能,进而,用户可以通过终端的摄像头拍摄某一区域,该区域包括条码。
具体的,终端的处理器可以调用存储器中的代码来响应于条码识别指令,调用摄像头功能。
1103、拍摄包括条码的区域,得到预览流;
本申请实施例中,终端可以拍摄包括条码的区域,得到预览流。
具体的,终端的处理器可以调用存储器中的代码来处理摄像头拍摄得到的图像数据,得到预览流。
1104、从预览流中获取包括第一目标条码的第一图像;
本申请实施例中,终端可以从预览流中获取一帧图像作为第一图像,具体可以参照上述实施例中步骤301的描述,这里不再赘述。
具体的,终端的处理器可以调用存储器中的代码来从预览流中获取包括第一目标条码的第一图像。
1105、通过第一译码方法对第一图像进行译码,若未得到译码结果,则从预览流中获取包括第二目标条码的第二图像。
本申请实施例中,若未得到译码结果,终端可以从预览流中获取一帧图像作为第二图像,具体可以参照上述实施例中步骤302和步骤303的描述,这里不再赘述。
具体的,终端的处理器可以调用存储器中的代码来通过第一译码方法对第一图像进行译码,若未得到译码结果,则从预览流中获取包括第二目标条码的第二图像。
1106、通过所述第一译码方法对所述第二目标图像进行译码,若未得到译码结果,则通过第二译码方法对所述第二目标图像进行译码。
具体可以参照上述实施例中步骤304的描述,这里不再赘述。
具体的,终端的处理器可以调用存储器中的代码来通过第一译码方法对第一图像进行译码,若未得到译码结果,则从预览流中获取包括第二目标条码的第二图像。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种数据中心服务器状态检测方法及系统