本申请涉及图像识别,尤其涉及一种条形码的识别方法、装置、设备及可读存储介质。
背景技术:
1、目前基于图像处理的条码识别的传统方案中,需要识别到潜在的条码区域,并对条码区域中的条形码进行解码。但是目前传统的识别方案在针对复杂的识别场景时,对条码定位的过程中很容易被非条形码部分的背景影响,从而导致定位失败,进而使的后续解码部分获取不到准确的条码,最终使得解码失败。
技术实现思路
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、本申请实施例提出的一种条形码的识别方法、装置、设备及可读存储介质。本实施例中,对待识别图像进行分块处理得到局部图像集合;基于所述局部图像集合中各候选图像的梯度方向趋势,对各所述局部图像进行聚类得到聚类结果,其中,所述聚类结果中同一类型的候选图像之间梯度方向趋势差异小于或等于预设差异阈值;基于所述聚类结果确定所述待识别图像中的目标区域,对所述目标区域的条形码进行解码,得到所述条形码的识别结果。即本申请实施例会对待识别图像进行分块,得到局部图像集合,再基于局部图像集合中的候选图像的梯度方向趋势进行聚类,而由于条形码所在区域的梯度特征具有相似且分布密集的特点,故基于梯度方向趋势进行聚类的聚类结果中属于同一类的候选图像所组成的区域即为条形码的目标区域,从而实现条形码的精准定位,在确定条形码所在的目标区域后,即可对目标区域中的条形码进行解码,从而完成条形码的识别。由于本申请实施例通过聚类实现条形码的精准定位,保证了条形码识别的稳定性,提高条形码解码的成功概率,即提高了条形码的识别方案的鲁棒性。
1.一种条形码的识别方法,其特征在于,所述条形码的识别方法包括:
2.如权利要求1所述的条形码的识别方法,其特征在于,在所述对待识别图像进行分块处理得到局部图像集合的步骤之后,所述方法还包括:
3.如权利要求2所述的条形码的识别方法,其特征在于,所述将所述局部图像作为候选图像的步骤包括:
4.如权利要求1所述的条形码的识别方法,其特征在于,在所述基于所述局部图像集合中各候选图像的梯度方向趋势,对各所述局部图像进行聚类得到聚类结果的步骤之前,所述方法还包括:
5.如权利要求1所述的条形码的识别方法,其特征在于,所述基于所述聚类结果确定所述待识别图像中的目标区域的步骤包括:
6.如权利要求1所述的条形码的识别方法,其特征在于,在所述对所述目标区域的条形码进行解码的步骤之前,所述方法还包括:
7.如权利要求1所述的条形码的识别方法,其特征在于,所述对所述目标区域的条形码进行解码,得到所述条形码的识别结果的步骤包括:
8.如权利要求7所述的条形码的识别方法,其特征在于,所述基于预设扫描方向在所述目标区域中不同扫描位置进行扫描,得到多个宽度信息组的步骤包括:
9.一种条形码的识别装置,其特征在于,所述条形码的识别装置包括:
10.一种条形码的识别设备,其特征在于,所述条形码的识别设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的条形码的识别程序,所述条形码的识别程序被所述处理器执行时实现如权利要求1至8中任一项所述的条形码的识别方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质为计算机可读存储介,所述可读存储介质上存储有条形码的识别程序,所述条形码的识别程序被处理器执行时实现如权利要求1至8中任一项所述的条形码的识别方法的步骤。