CN113723136B - 条码矫正方法、装置、设备及存储介质 - Google Patents
条码矫正方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113723136B CN113723136B CN202111016561.7A CN202111016561A CN113723136B CN 113723136 B CN113723136 B CN 113723136B CN 202111016561 A CN202111016561 A CN 202111016561A CN 113723136 B CN113723136 B CN 113723136B
- Authority
- CN
- China
- Prior art keywords
- code
- bar code
- points
- determining
- correction
- 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
- 238000012937 correction Methods 0.000 title claims abstract description 138
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000011218 segmentation Effects 0.000 claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 15
- 230000009466 transformation Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000010408 film Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000007769 metal material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1413—1D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1473—Methods for optical code recognition the method including quality enhancement steps error correction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种条码矫正方法、装置、设备及存储介质,属于数据处理技术领域。所述方法包括:对目标图像进行语义分割,以得到目标图像中的背景区和码区,对码区进行条码识别,以确定码区是否为条码,在码区为条码的情况下,确定码区的多个轮廓点,基于该多个轮廓点的位置信息确定矫正参数,基于该矫正参数,对目标图像中的条码进行矫正,得到标准无畸变条码,将标准无畸变条码进行译码。本申请实施例通过对目标图像进行语义分割,来确定码区和各个角点的位置信息,能够在低对比度、污损等复杂场景下精确识别出码区的位置,避免复杂场景对码区位置的识别造成影响。
Description
技术领域
本申请实施例涉及数据处理技术领域,特别涉及一种条码矫正方法、装置、设备及存储介质。
背景技术
条码包括一维条码和二维条码,一维条码也被称为条形码,二维条码也被称为二维码。条码可以通过光电扫描设备进行扫描来实现信息的自动识别。但是,当条码附着在非平面材质上会造成条码扭曲,形成畸变形态的条码,从而降低条码识别率。因此亟需一种条码矫正方法,以将畸变形态的条码纠正到无畸变形态。
在相关技术中,对条码进行矫正时,通常采用二值化等传统方法提取条码区域,从而获取到条码边界的角点。然后,通过建立拟合映射函数对条码进行矫正。然而,传统的提取条码区域的方法并不适用于对复杂场景的条码进行提取,比如,在低对比度、污损或者金属材质等场景下,很难提取出条码区域。这样就会降低条码的识别率。
发明内容
本申请实施例提供了一种条码矫正方法、装置、设备及存储介质,可以解决相关技术的码区识别率低的问题。所述技术方案如下:
一方面,提供了一种条码矫正方法,所述方法包括:
对目标图像进行语义分割,以得到所述目标图像中的背景区和码区;
对所述码区进行条码识别,以确定所述码区是否为条码;
在所述码区为条码的情况下,确定所述码区的多个轮廓点;
基于所述多个轮廓点的位置信息确定矫正参数;
基于所述矫正参数,对所述目标图像中的条码进行矫正,得到标准无畸变条码,将所述标准无畸变条码进行译码。
可选地,所述确定所述码区的多个轮廓点,包括:
从所述码区的每个边界线上除角点之外的部分线段中确定出多个边界点;
将确定得到的多个边界点以及所述码区的各个角点,确定为所述码区的多个轮廓点。
可选地,所述从所述码区的每个边界线上除角点之外的部分线段中确定出多个边界点,包括:
基于所述码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;
在所述多个连接线中的各个连接线上分别绘制出多个划分线;
确定所述码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到所述多个边界点。
可选地,每个连接线上的多个划分线用于等分对应的连接线。
可选地,所述对所述码区进行条码识别,以确定所述码区是否为条码,包括:
将所述码区作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
基于所述识别结果,确定所述码区是否为条码。
可选地,所述对所述码区进行条码识别,以确定所述码区是否为条码,包括:
获取所述码区的中心区域;
将所述码区的中心区域作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
基于所述识别结果,确定所述码区是否为条码。
可选地,所述基于所述多个轮廓点的位置信息确定矫正参数,包括:
基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,所述多个矫正点与所述多个轮廓点一一对应;
基于所述多个轮廓点的位置信息和所述多个矫正点的位置信息,确定所述多个轮廓点映射到所述多个矫正点的变换矩阵;
将所述变换矩阵确定为所述矫正参数。
可选地,所述基于所述矫正参数,对所述目标图像中的条码进行矫正,包括:
确定所述码区内的各个像素点的位置信息;
基于所述矫正参数和所述码区内的各个像素点的位置信息,对所述目标图像中的条码进行矫正。
另一方面,提供了一种条码矫正装置,所述装置包括:
语义分割模块,用于对目标图像进行语义分割,以得到所述目标图像中的背景区和码区;
条码识别模块,用于对所述码区进行条码识别,以确定所述码区是否为条码;
轮廓点确定模块,在所述码区为条码的情况下,用于确定所述码区的多个轮廓点;
矫正参数确定模块,用于基于所述多个轮廓点的位置信息确定矫正参数;
矫正模块,用于基于所述矫正参数,对所述目标图像中的条码进行矫正,得到标准无畸变条码;
译码模块,用于将所述标准无畸变条码进行译码。
可选地,所述轮廓点确定模块,包括:
边界点确定单元,用于从所述码区的每个边界线上除角点之外的部分线段中确定出多个边界点;
轮廓点确定单元,用于将确定得到的多个边界点以及所述码区的各个角点,确定为所述码区的多个轮廓点。
可选地,所述边界点确定单元,包括:
连接线确定子单元,用于基于所述码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;
划分线绘制子单元,用于在所述多个连接线中的各个连接线上分别绘制出多个划分线;
交点确定子单元,用于确定所述码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到所述多个边界点。
可选地,每个连接线上的多个划分线用于等分对应的连接线。
可选地,所述条码识别模块,包括:
第一识别结果输出单元,用于将所述码区作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
条码确定单元,用于基于所述识别结果,确定所述码区是否为条码。
可选地,所述条码识别模块,包括:
中心区域获取单元,用于获取所述码区的中心区域;
第二识别结果输出单元,用于将所述码区的中心区域作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
条码确定单元,用于基于所述识别结果,确定所述码区是否为条码。
可选地,所述矫正参数确定模块,包括:
第一位置信息确定单元,用于基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,所述多个矫正点与所述多个轮廓点一一对应;
变换矩阵确定单元,用于基于所述多个轮廓点的位置信息和所述多个矫正点的位置信息,确定所述多个轮廓点映射到所述多个矫正点的变换矩阵;
矫正参数确定单元,用于将所述变换矩阵确定为所述矫正参数。
可选地,所述矫正模块,包括:
第二位置信息确定单元,用于确定所述码区内的各个像素点的位置信息;
矫正单元,用于基于所述矫正参数和所述码区内的各个像素点的位置信息,对所述目标图像中的条码进行矫正。
另一方面,提供了一种读码设备,所述读码设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述所述的条码矫正方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述条码矫正方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述所述的条码矫正方法的步骤。
本申请实施例提供的技术方案至少可以带来以下有益效果:
由于语义分割算法不易受场景环境的影响,所以通过对目标图像进行语义分割,来确定码区和各个角点的位置信息,能够在低对比度、污损等复杂场景下精确识别出码区的位置,避免复杂场景对码区位置的识别造成影响。而且,由于码区的轮廓点具有普遍适用性,因此,基于码区的多个轮廓点的位置信息对条码进行矫正,这样能够使条码的矫正方法更具适应性,进而能够提高条码的识别率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种读码设备的结构示意图;
图3是本申请实施例提供的一种条码矫正方法的流程图;
图4是本申请实施例提供的一种目标图像中码区划分的示意图;
图5是本申请实施例提供的另一种目标图像中码区划分的示意图;
图6是本申请实施例提供的第一种确定码区的多个轮廓点的示意图;
图7是本申请实施例提供的第二种确定码区的多个轮廓点的示意图;
图8是本申请实施例提供的第三种确定码区的多个轮廓点的示意图;
图9是本申请实施例提供的一种条码矫正结果示意图;
图10是本申请实施例提供的一种条码矫正装置的结构示意图;
图11是本申请实施例提供的一种读码设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的条码矫正方法进行详细的解释说明之前,先对本申请实施例提供的应用场景和实施环境进行介绍。
本申请实施例提供的条码矫正方法可以应用于多种场景,比如,在物流仓储领域中,通常可以通过物品上的条码对物品进行识别、检索等等。但是对于非平面形状的物品来说,物品上的条码可能会存在扭曲,如瓶罐等柱状物品上的条码会存在整体曲面扭曲。而且在对这类条码进行拍摄后,由于成像设备的透视畸变等因素,使条码的形态在扭曲的同时还会带有局部性的其他畸变,如透视或错切畸变等。所以,可以通过本申请实施例提供的条码矫正方法,对物品上的条码进行矫正,从而提高条码的识别率。
请参考图1,图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境包括图像采集设备101和光电扫描设备102,图像采集设备101可以与光电扫描设备102进行通信连接。该通信连接可以为有线或者无线连接,本申请实施例对此不做限定。
图像采集设备101可以作为成像设备,对物品上的条码进行拍摄,并按照本申请实施例提供的条码矫正方法,对拍摄得到的图像中条码进行矫正,得到矫正后的条码。然后,图像采集设备101可以将矫正后的条码展示给光电扫描设备102,光电扫描设备102对矫正后的条码进行扫描,从而识别条码的内容。
当然,上述为一种示例性的实施环境,在另一些实施环境中,也可以不包括图像采集设备101。这样,光电扫描设备102可以作为成像设备,对物品上的条码进行扫描,并按照本申请实施例提供的条码矫正方法,对扫描得到的条码进行矫正,得到矫正后的条码。之后,光电扫描设备102对矫正后的条码进行识别,从而得到条码的内容。
也就是说,本申请实施例可以通过图像采集设备101对条码进行矫正,也可以通过光电扫描设备102对条码进行矫正。为了便于描述,可以将对条码进行矫正的图像采集设备或者光电扫描设备称为条码矫正设备或者读码设备。
请参考图2,该读码设备可以包括语义分割模块、轮廓划分模块和矫正模块。语义分割模块用于对拍摄到的图像进行语义分割,以确定背景区和码区。轮廓划分模块用于对码区的轮廓进行划分,以确定多个轮廓点的位置信息。矫正模块用于基于该多个轮廓点的位置信息确定矫正参数,并基于该矫正参数,对图像中的条码进行矫正,得到标准无畸变条码。
可选地,该读码设备还可以包括译码模块,译码模块用于对标准无畸变条码进行译码,也即是对标准无畸变条码进行识别,从而得到条码的内容。
其中,图像采集设备101可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行交互,进而对条码进行拍摄的设备,例如PC(Personal Computer,个人计算机)、手机、智能手机、PDA(Personal Digital Assistant,个人数字助手)、掌上电脑PPC(Pocket PC)、平板电脑、智能电视等。光电扫描设备102可以是滚筒扫描仪、平板扫描仪、手持式扫描仪、胶片和透明介质扫描仪等。
本领域技术人员应能理解上述图像采集设备101和光电扫描设备102仅为举例,其他现有的或今后可能出现的图像采集设备或光电扫描设备如可适用于本申请实施例,也应包含在本申请实施例保护范围以内,并在此以引用方式包含于此。
接下来对本申请实施例提供的条码矫正方法进行详细的解释说明。
图3是本申请实施例提供的一种条码矫正方法的流程图,该方法可应用于读码设备。请参考图3,该方法包括如下步骤。
步骤301:对目标图像进行语义分割,以得到目标图像中的背景区和码区。
在一些实施例中,目标图像包括多个像素点,利用语义分割算法可以将目标图像中的每个像素点按照表达语义的不同进行分割,得到多个区域,该多个区域对应于目标图像中的各类物体。之后,将该多个区域中除码区之外的其他区域作为目标图像中的背景区,从而得到目标图像中的背景区和码区。
需要说明的是,对目标图像进行语义分割得到的各个区域具有对应的标签,该标签用于指示对应区域中的物体的类别。也即是,通过该多个区域对应的标签,能够确定该多个区域中哪个区域为码区,哪个区域不是码区,从而能够区分出目标图像中的背景区和码区。
步骤302:对目标图像中的码区进行条码识别,以确定目标图像中的码区是否为条码。
在一些实施例中,可以将该目标图像中的码区作为条码识别模型的输入,以得到条码识别模型输出的识别结果,基于条码识别模型输出的识别结果,确定目标图像中的码区是否为条码。
在另一些实施例中,可以获取目标图像中码区的中心区域,将该码区的中心区域作为条码识别模型的输入,以得到条码识别模型输出的识别结果,基于条码识别模型输出的识别结果,确定目标图像中的码区是否为条码。
作为一种示例,条码识别模型输出的识别结果包括第一概率和第二概率,第一概率为该码区为条码的概率,第二概率为该码区为非条码的概率。如果第一概率大于第二概率,则确定目标图像中的码区为条码。如果第一概率小于第二概率,则确定目标图像中的码区为非条码。
作为另一种示例,条码识别模型输出的识别结果还可以为特定数值,此时,可以基于条码识别模型输出的特定数值,确定目标图像中的码区是否为条码。比如,如果条码识别模型输出的特定数值为1,则确定目标图像中的码区为条码。如果条码识别模型输出的特定数值为0,则确定目标图像中的码区为非条码。
需要说明的是,条码包括一维条码和二维条码,一维条码也被称为条形码,二维条码也被称为二维码。非条码是指外形与条码类似的图形,并非条码。另外,条码识别模型是事先训练得到的。
其中,获取该码区的中心区域的实现方式可以包括多种,接下来对其中的两种实现方式进行介绍。
第一种实现方式,基于存储的各个边界区域对应的尺寸占比,确定目标图像中的码区所包括的多个边界区域,将码区中除该多个边界区域之外的区域确定为该码区的中心区域。
作为一种示例,将该多个边界区域分别对应的尺寸占比与目标图像中的码区的尺寸相乘,得到各个边界区域的尺寸。然后,基于各个边界区域的尺寸,从目标图像的码区中确定多个边界区域,进而将码区中除该多个边界区域之外的区域确定为该码区的中心区域。
第二种实现方式,基于存储的中心区域对应的尺寸占比,从目标图像的码区中确定该中心区域。
作为一种示例,将该中心区域对应的尺寸占比与目标图像中的码区的尺寸相乘,得到该中心区域的尺寸。然后,确定该目标图像中码区的几何中心点的位置信息,基于该中心区域的尺寸和该几何中心点的位置信息,确定该码区的中心区域,以使该码区的几何中心点与该码区的几何中心点重合。
需要说明的是,该中心区域对应的尺寸占比和该多个边界区域分别对应的尺寸占比可以事先设置,而且还可以按照不同的需求来调整。
其中,对于中心区域和该多个边界区域中的任一区域,该区域对应的尺寸占比可以包括最大长度占比和最大宽度占比,最大长度占比为该区域的最大长度与码区最大长度之间的比值,最大宽度占比为该区域的最大宽度与码区最大宽度之间的比值。这样,可以将该区域对应的最大长度占比与码区的最大长度相乘,得到该区域的最大长度,将该区域对应的最大宽度占比与码区的最大宽度相乘,得到该区域的最大宽度,以此得到该区域的尺寸。
此外,该区域对应的尺寸占比也可以为该区域的面积与码区面积之间的比值。这样,可以将该区域对应的尺寸占比与码区的面积相乘,得到该区域的面积,也即是得到该区域的尺寸。
需要说明的是,由于有畸变的码区的形状通常不是规则形状,比如,码区的部分曲面弯曲,所以码区的长度通常包括最大长度和最小长度,这样,关于上述各个区域,也可以包括最大长度和最小长度。同理,码区的宽度包括最大宽度和最小宽度,上述各个区域也包括最大宽度和最小宽度。
比如,请参考图4,假设获取到上边界区域对应的尺寸占比包括的最大长度占比为1,最大宽度占比为1/5,将上边界区域的最大长度占比与码区的最大长度相乘,得到上边界区域的长度,将上边界区域的最大宽度占比与码区的最大宽度相乘,得到上边界区域的宽度,基于上边界区域的长度和宽度,即可确定出得到上边界区域为图4中U1所指示的区域。按照相同的方式,可以确定出下边界区域为图4中U2所指示的区域,左边界区域为图4中V1所指示的区域,右边界区域为图4中V2所指示的区域。这样,可以将图4中除四个边界区域之外的区域C1确定为该码区的中心区域。
又比如,请参考图5,假设获取到中心区域对应的尺寸占比包括的最大长度占比为1/2,最大宽度占比为3/5,将中心区域的最大长度占比与码区的最大长度相乘,得到中心区域的长度。将中心区域的最大宽度占比与码区的最大宽度相乘,得到中心区域的宽度。假设该码区的几何中心点为点O,那么可以基于中心区域的长度和宽度,以及点O的位置信息,确定出中心区域为图5中C1所指示的区域。
步骤303:在目标图像中码区为条码的情况下,确定码区的多个轮廓点。
在一些实施例中,从码区的每个边界线上除角点之外的部分线段中确定出多个边界点,将确定得到的多个边界点以及码区的各个角点,确定为码区的多个轮廓点。
其中,确定该多个边界点时,可以直接对每个边界线上除角点之外的部分线段进行划分,也可以间接对每个边界线上除角点之外的部分线段进行划分。即,可以直接对每个边界线上除角点之外的部分线段分别划分,将划分点确定为该多个边界点。或者,基于目标图像中码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线。在该多个连接线中的各个连接线上分别绘制出多个划分线,确定该码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到多个边界点。
在本申请实施例中,可以在目标图像中建立坐标系,这样,在通过语义分割确定出目标图像中的码区之后,可以获取码区的各个角点在该坐标系中的坐标,以得到各个角点的位置信息。
其中,对于每个边界线上除角点之外的部分线段进行划分时,可以进行等分,也可以不等分。对于该多个连接线中的任一连接线来说,可以对该连接线进行等分,从而确定出多个等分点,并在每个等分点处沿着与该连接线垂直的方向绘制划分线,以得到多个划分线。
需要说明的是,对于该多个连接线来说,可以按照相同的方式在每个连接线上绘制出多个划分线。当然,也可以按照不同的方式在对应的连接线上绘制出多个划分线,本申请实施例对此不做限定。而且,对于同一连接线来说,该连接线上的多个划分线可以等分该连接线,也可以不等分该连接线。也即是,同一连接线上的多个划分线中每相邻两个划分线之间的距离可以相等,也可以不相等。
比如,请参考图6,从码区的上边界线1-3上除角点之外的部分线段中确定出12、13、14共3个边界点。同理,从码区的下边界线2-4上除角点之外的部分线段中确定出15、16、17、18共4个边界点。其次,从码区的左边界线1-2上除角点之外的部分线段中确定出5、6、7、8共4个边界点。以及从码区的右边界线3-4上除角点之外的部分线段中确定出9、10、11共3个边界点。将确定得到的14个边界点以及码区的4个角点,确定为码区的18个轮廓点。
又比如,请参考图7,将码区的两个角点1、3进行连接,得到连接线1-3。对连接线1-3进行4等分,从而确定出3个等分点,并在每个等分点处沿着与该连接线1-3垂直的方向绘制划分线,以得到3个划分线。其次,确定上边界区域的外轮廓线与连接线1-3上的3个划分线之间的交点,由此得到11、12、13共3个交点。接下来按照相同的方法,确定连接线1-2、连接线2-4、以及连接线3-4,进而确定左边界区域的外轮廓线与连接线1-2上的3个划分线之间的交点,下边界区域的外轮廓线与连接线2-4上的3个划分线之间的交点,以及右边界区域的外轮廓线与连接线3-4上的3个划分线之间的交点,从而得到5、6、7、8、9、10、14、15、16共9个交点。将12个交点以及码区的4个角点,确定为码区的16个轮廓点。
又比如,请参考图8,将码区的两个角点1、3进行连接,得到连接线1-3。对连接线1-3进行4等分,从而确定出3个等分点,并在每个等分点处沿着与该连接线1-3垂直的方向绘制划分线,以得到3个划分线。其次,确定上边界区域的外轮廓线与连接线1-3上的3个划分线之间的交点,由此得到12、13、14共3个交点。同理,将码区的两个角点2、4进行连接,得到连接线2-4,对连接线2-4进行5等分,从而确定出4个等分点,并在每个等分点处沿着与该连接线2-4垂直的方向绘制划分线,以得到4个划分线。其次,确定下边界区域的外轮廓线与连接线2-4上的4个划分线之间的交点,得到15、16、17、18这个4交点。之后,确定连接线1-2以及连接线3-4,进而确定左边界区域的外轮廓线与连接线1-2上的4个划分线之间的交点,得到5、6、7、8这个4交点。以及确定右边界区域的外轮廓线与连接线3-4上的3个划分线之间的交点,从而得到9、10、11共3个交点。将14个交点以及码区的4个角点,确定为码区的18个轮廓点。
步骤304:基于该多个轮廓点的位置信息确定矫正参数。
在一些实施例中,可以基于该多个轮廓点的位置信息,确定多个矫正点的位置信息,该多个矫正点与该多个轮廓点一一对应。基于该多个轮廓点的位置信息和该多个矫正点的位置信息,确定该多个轮廓点映射到该多个矫正点的变换矩阵,将该变换矩阵确定为矫正参数。
在本申请实施例中,可以基于该多个轮廓点的位置信息,通过多种方式确定该多个矫正点的位置信息。接下来对其中的两种实现方式进行介绍。由于确定每个轮廓点对应的矫正点的方式相同,因此,接下来以该多个轮廓点中的任一轮廓点为例进行说明。为了便于描述,将该任一轮廓点称为目标轮廓点,将目标轮廓点所在的边界线称为目标边界线。
第一种实现方式,从目标边界线两端的角点中选择一个角点作为基准角点,确定目标轮廓点与该基准角点之间的边界线段的长度,以得到第一长度。然后,确定目标边界线的总长度以及目标拟合曲线的长度,该目标拟合曲线为目标边界线对应的拟合曲线,且目标拟合曲线为矫正后的目标边界线。确定第一长度与目标边界线的总长度之间的比值,将该比值与目标拟合曲线的长度相乘,得到第二长度。之后,将位于目标拟合曲线上且与该基准角点之间的曲线长度为第二长度的点,确定为目标轮廓点对应的矫正点,从而确定该矫正点的位置信息。
需要说明的是,该码区的各个边界线对应的拟合曲线是指矫正后的边界线,且各个边界线对应的拟合曲线可以采用多种方法来确定。
作为一种示例,可以确定该条码的形状,如果该条码为正方形,则从该条码的四个边界线中选择一个边界线,将选择的边界线的长度确定为该条码的各个边界线对应的拟合曲线的长度。之后,基于选择的边界线两端的角点的位置信息和该条码的各个边界线对应的拟合曲线的长度,按照正方形来确定该条码的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为该条码的各个边界线对应的拟合曲线。
同理,如果该条码为长方形,则从该条码的四个边界线中选择相邻两个边界线,将选择的相邻两个边界线的长度确定为该条码的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度。之后,基于选择的两个边界线上的三个角点的位置信息、该条码的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,按照长方形来确定该条码的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为该条码的各个边界线对应的拟合曲线。
其中,在确定码区是否为条码时,还可以确定该条码为条形码还是二维码。由于条形码通常为长方形,二维码通常为正方形,所以,在确定出该条码为条形码还是二维码之后,可以确定该条码的形状。
第二种实现方式,从目标边界线两端的角点中选择一个角点作为基准角点,确定目标轮廓点与该基准角点之间的连线,进而确定该连线与目标边界线对应的基准线之间的夹角,即第一角度,目标边界线对应的基准线与目标拟合曲线垂直,目标拟合曲线为目标边界线对应的拟合曲线,且目标拟合曲线为矫正后的目标边界线。然后,基于目标轮廓点与该基准角点之间的连线的长度和第一角度,确定目标轮廓点与该基准角点之间的连线在目标拟合曲线上的投影线的长度,以得到第二长度。将位于目标拟合曲线上且与该基准角点之间的曲线长度为第二长度的点,确定为目标轮廓点对应的矫正点,从而确定该矫正点的位置信息。
需要说明的是,在目标边界线为上边界线或者下边界线时,目标边界线对应的基准线为垂直线,在目标边界线为左边界线或者右边界线时,目标边界线对应的基准线为水平线。
其中,确定该码区的各个边界线对应的拟合曲线的方式可以参考上述第一种实现方式中的相关内容,此处不再赘述。
步骤305:基于该矫正参数,对目标图像中的条码进行矫正,得到标准无畸变条码,将标准无畸变条码进行译码。
在一些实施例中,确定目标图像中码区内的各个像素点的位置信息。基于该矫正参数和目标图像中码区内的各个像素点的位置信息,对目标图像中的条码进行矫正,得到标准无畸变条码,可以将标准无畸变条码进行译码,从而得到条码的内容。
可选地,不仅可以对目标图像中的条码进行矫正,在某些情况下,还可以对目标图像中的背景区进行矫正。此时,可以直接确定目标图像中的各个像素点的位置信息,基于该矫正参数和目标图像中的各个像素点的位置信息,对目标图像进行矫正。也即是,对目标图像中的背景区和码区均进行矫正。
基于上文描述,目标图像包括多个像素点,而且在目标图像中建立有坐标系,所以,可以直接获取各个像素点在该坐标系中的坐标,以得到各个像素点的位置信息。之后,将各个像素点的位置信息与矫正参数相乘,从而得到矫正后的各个像素点的位置信息。
图9是本申请实施例提供的一种条码矫正结果示意图,请参考图9,左图为目标图像中的畸变形态的条码,右图为通过本申请实施例提供的条码矫正方法,对目标图像中的条码进行矫正,从得到矫正后的条码。
在本申请实施例中,由于语义分割算法不易受场景环境的影响,所以通过对目标图像进行语义分割,来确定码区和各个角点的位置信息,能够在低对比度、污损等复杂场景下精确识别出码区的位置,避免复杂场景对码区位置的识别造成影响。而且,由于码区的轮廓点具有普遍适用性,因此,基于码区的多个轮廓点的位置信息对条码进行矫正,这样能够使条码的矫正方法更具适应性,进而能够提高条码的识别率。
图10是本申请实施例提供的一种条码矫正装置的结构示意图,该条码矫正装置可以由软件、硬件或者两者的结合实现成为读码设备的部分或者全部,读码设备可以为图1所示的读码设备。请参考图10,该装置包括:语义分割模块1001、条码识别模块1002、轮廓点确定模块1003、矫正参数确定模块1004、矫正模块1005和译码模块1006。
语义分割模块1001,用于对目标图像进行语义分割,以得到目标图像中的背景区和码区。详细实现过程参考上述各个实施例中对应的内容,此处不再赘述。
条码识别模块1002,用于对目标图像中的码区进行条码识别,以确定目标图像中的码区是否为条码。详细实现过程参考上述各个实施例中对应的内容,此处不再赘述。
轮廓点确定模块1003,在目标图像中的码区为条码的情况下,用于确定码区的多个轮廓点。详细实现过程参考上述各个实施例中对应的内容,此处不再赘述。
矫正参数确定模块1004,用于基于码区多个轮廓点的位置信息确定矫正参数。详细实现过程参考上述各个实施例中对应的内容,此处不再赘述。
矫正模块1005,用于基于该矫正参数,对目标图像中的条码进行矫正,得到标准无畸变条码。详细实现过程参考上述各个实施例中对应的内容,此处不再赘述。
译码模块1006,用于将标准无畸变条码进行译码。详细实现过程参考上述各个实施例中对应的内容,此处不再赘述。
可选地,轮廓点确定模块1003包括:
边界点确定单元,用于从码区的每个边界线上除角点之外的部分线段中确定出多个边界点;
轮廓点确定单元,用于将确定得到的多个边界点以及码区的各个角点,确定为码区的多个轮廓点。
可选地,边界点确定单元包括:
连接线确定子单元,用于基于目标图像中码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;
划分线绘制子单元,用于在该多个连接线中的各个连接线上分别绘制出多个划分线;
交点确定子单元,用于确定该码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到多个边界点。
可选地,每个连接线上的多个划分线用于等分对应的连接线。
可选地,条码识别模块1002包括:
第一识别结果输出单元,用于将目标图像中的码区作为条码识别模型的输入,以得到条码识别模型输出的识别结果;
条码确定单元,用于基于条码识别模型输出的识别结果,确定目标图像中的码区是否为条码。
可选地,条码识别模块1002包括:
中心区域获取单元,用于获取目标图像中码区的中心区域;
第二识别结果输出单元,用于将该码区的中心区域作为条码识别模型的输入,以得到条码识别模型输出的识别结果;
条码确定单元,用于基于条码识别模型输出的识别结果,确定目标图像中的码区是否为条码。
可选地,矫正参数确定模块1004包括:
第一位置信息确定单元,用于基于该多个轮廓点的位置信息,确定多个矫正点的位置信息,该多个矫正点与该多个轮廓点一一对应;
变换矩阵确定单元,用于基于该多个轮廓点的位置信息和该多个矫正点的位置信息,确定该多个轮廓点映射到该多个矫正点的变换矩阵;
矫正参数确定单元,用于将该变换矩阵确定为矫正参数。
可选地,矫正模块1005,包括:
第二位置信息确定单元,用于确定目标图像中码区内的各个像素点的位置信息;
矫正单元,用于基于该矫正参数和目标图像中的各个像素点的位置信息,对目标图像中的条码进行矫正。
在本申请实施例中,由于语义分割算法不易受场景环境的影响,所以通过对目标图像进行语义分割,来确定码区和各个角点的位置信息,能够在低对比度、污损等复杂场景下精确识别出码区的位置,避免复杂场景对码区位置的识别造成影响。而且,由于码区的轮廓点具有普遍适用性,因此,基于码区的多个轮廓点的位置信息对条码进行矫正,这样能够使条码的矫正方法更具适应性,进而能够提高条码的识别率。
需要说明的是:上述实施例提供的条码矫正装置在对目标图像中的条码进行矫正时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的条码矫正装置与条码矫正方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是本申请实施例提供的一种终端1100的结构框图。该终端1100为上述的读码设备,而且可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1100包括有:处理器1101和存储器1102。
处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本申请中方法实施例提供的条码矫正方法。
在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、触摸显示屏1105、摄像头1106、音频电路1107、定位组件1108和电源1109中的至少一种。
外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请实施例对此不加以限定。
显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
定位组件1108用于定位终端1100的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1108可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。
加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制触摸显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3D动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1113可以设置在终端1100的侧边框和/或触摸显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在触摸显示屏1105的下层时,由处理器1101根据用户对触摸显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商Logo时,指纹传感器1114可以与物理按键或厂商Logo集成在一起。
光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制触摸显示屏1105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1105的显示亮度;当环境光强度较低时,调低触摸显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。
接近传感器1116,也称距离传感器,通常设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制触摸显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制触摸显示屏1105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中条码矫正方法的步骤。例如,所述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
值得注意的是,本申请实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的条码矫正方法的步骤。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种条码矫正方法,其特征在于,所述方法包括:
对目标图像进行语义分割,以得到所述目标图像中的背景区和码区;
通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,所述条码识别模型为预先训练得到,且所述条码识别模型的输出结果能够指示所述码区是否为条码;
在所述码区为条码的情况下,基于所述码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;在所述多个连接线中的各个连接线上分别绘制出多个划分线;确定所述码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到多个边界点,将确定得到的多个边界点以及所述码区的各个角点,确定为所述码区的多个轮廓点;
确定所述条码的形状;如果所述条码为正方形,则从所述码区的四个边界线中选择一个边界线,将选择的边界线的长度确定为所述码区的各个边界线对应的拟合曲线的长度,基于选择的边界线两端的角点的位置信息和所述码区的各个边界线对应的拟合曲线的长度,按照正方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;如果所述条码为长方形,则从所述码区的四个边界线中选择相邻两个边界线,将选择的相邻两个边界线的长度确定为所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,基于选择的两个边界线上的三个角点的位置信息、所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,按照长方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;
基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,所述多个矫正点与所述多个轮廓点一一对应;基于所述多个轮廓点的位置信息和所述多个矫正点的位置信息,确定所述多个轮廓点映射到所述多个矫正点的变换矩阵;将所述变换矩阵确定为矫正参数;
基于所述矫正参数,对所述目标图像中的条码进行矫正,得到标准无畸变条码,将所述标准无畸变条码进行译码;
其中,基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,包括:
从目标边界线两端的角点中选择一个角点作为基准角点,确定目标轮廓点与基准角点之间的连线,进而确定连线与目标边界线对应的基准线之间的夹角,得到第一角度,目标边界线对应的基准线与目标拟合曲线垂直,目标拟合曲线为目标边界线对应的拟合曲线,基于目标轮廓点与基准角点之间的连线的长度和第一角度,确定目标轮廓点与所述基准角点之间的连线在目标拟合曲线上的投影线的长度,以得到第二长度,将位于目标拟合曲线上且与基准角点之间的曲线长度为第二长度的点,确定为目标轮廓点对应的矫正点,从而确定所述矫正点的位置信息。
2.如权利要求1所述的方法,其特征在于,每个连接线上的多个划分线用于等分对应的连接线。
3.如权利要求1所述的方法,其特征在于,所述通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,包括:
将所述码区作为所述条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
基于所述识别结果,确定所述码区是否为条码。
4.如权利要求1所述的方法,其特征在于,所述通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,包括:
获取所述码区的中心区域;
将所述码区的中心区域作为所述条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
基于所述识别结果,确定所述码区是否为条码。
5.如权利要求1所述的方法,其特征在于,所述基于所述矫正参数,对所述目标图像中的条码进行矫正,包括:
确定所述码区内的各个像素点的位置信息;
基于所述矫正参数和所述码区内的各个像素点的位置信息,对所述目标图像中的条码进行矫正。
6.一种条码矫正装置,其特征在于,所述装置包括:
语义分割模块,用于对目标图像进行语义分割,以得到所述目标图像中的背景区和码区;
条码识别模块,用于通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,所述条码识别模型为预先训练得到,且所述条码识别模型的输出结果能够指示所述码区是否为条码;
轮廓点确定模块,在所述码区为条码的情况下,用于确定所述码区的多个轮廓点;
矫正参数确定模块,用于基于所述多个轮廓点的位置信息确定矫正参数;
矫正模块,用于基于所述矫正参数,对所述目标图像中的条码进行矫正,得到标准无畸变条码;
译码模块,用于将所述标准无畸变条码进行译码;
其中,所述轮廓点确定模块,包括:
边界点确定单元,用于从所述码区的每个边界线上除角点之外的部分线段中确定出多个边界点;
轮廓点确定单元,用于将确定得到的多个边界点以及所述码区的各个角点,确定为所述码区的多个轮廓点;
其中,所述边界点确定单元,包括:
连接线确定子单元,用于基于所述码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;
划分线绘制子单元,用于在所述多个连接线中的各个连接线上分别绘制出多个划分线;
交点确定子单元,用于确定所述码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到所述多个边界点;
其中,所述矫正参数确定模块,包括:
第一位置信息确定单元,用于基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,所述多个矫正点与所述多个轮廓点一一对应;其中,第一位置信息确定单元具体用于:确定所述条码的形状;如果所述条码为正方形,则从所述码区的四个边界线中选择一个边界线,将选择的边界线的长度确定为所述码区的各个边界线对应的拟合曲线的长度,基于选择的边界线两端的角点的位置信息和所述码区的各个边界线对应的拟合曲线的长度,按照正方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;如果所述条码为长方形,则从所述码区的四个边界线中选择相邻两个边界线,将选择的相邻两个边界线的长度确定为所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,基于选择的两个边界线上的三个角点的位置信息、所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,按照长方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;
变换矩阵确定单元,用于基于所述多个轮廓点的位置信息和所述多个矫正点的位置信息,确定所述多个轮廓点映射到所述多个矫正点的变换矩阵;
矫正参数确定单元,用于将所述变换矩阵确定为所述矫正参数;
其中,基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,包括:
从目标边界线两端的角点中选择一个角点作为基准角点,确定目标轮廓点与基准角点之间的连线,进而确定连线与目标边界线对应的基准线之间的夹角,得到第一角度,目标边界线对应的基准线与目标拟合曲线垂直,目标拟合曲线为目标边界线对应的拟合曲线,基于目标轮廓点与基准角点之间的连线的长度和第一角度,确定目标轮廓点与所述基准角点之间的连线在目标拟合曲线上的投影线的长度,以得到第二长度,将位于目标拟合曲线上且与基准角点之间的曲线长度为第二长度的点,确定为目标轮廓点对应的矫正点,从而确定所述矫正点的位置信息。
7.如权利要求6所述的装置,其特征在于,
每个连接线上的多个划分线用于等分对应的连接线;
其中,所述条码识别模块,包括:
第一识别结果输出单元,用于将所述码区作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
条码确定单元,用于基于所述识别结果,确定所述码区是否为条码;
其中,所述条码识别模块,包括:
中心区域获取单元,用于获取所述码区的中心区域;
第二识别结果输出单元,用于将所述码区的中心区域作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
条码确定单元,用于基于所述识别结果,确定所述码区是否为条码;
其中,所述矫正模块,包括:
第二位置信息确定单元,用于确定所述码区内的各个像素点的位置信息;
矫正单元,用于基于所述矫正参数和所述码区内的各个像素点的位置信息,对所述目标图像中的条码进行矫正。
8.一种读码设备,其特征在于,所述读码设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述权利要求1-5任一所述方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016561.7A CN113723136B (zh) | 2021-08-31 | 2021-08-31 | 条码矫正方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016561.7A CN113723136B (zh) | 2021-08-31 | 2021-08-31 | 条码矫正方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113723136A CN113723136A (zh) | 2021-11-30 |
CN113723136B true CN113723136B (zh) | 2024-10-11 |
Family
ID=78680153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111016561.7A Active CN113723136B (zh) | 2021-08-31 | 2021-08-31 | 条码矫正方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113723136B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115310469B (zh) * | 2022-10-12 | 2023-02-14 | 广东奥普特科技股份有限公司 | 条形码定位模型训练方法、定位方法、系统、设备及介质 |
TWI808032B (zh) * | 2022-11-03 | 2023-07-01 | 國立彰化師範大學 | 形變條碼處理系統 |
CN115630663A (zh) * | 2022-12-19 | 2023-01-20 | 成都爱旗科技有限公司 | 一种二维码识别方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104766037A (zh) * | 2015-03-20 | 2015-07-08 | 中国联合网络通信集团有限公司 | 一种二维码的识别方法及设备 |
CN106156674A (zh) * | 2015-03-31 | 2016-11-23 | 联想(北京)有限公司 | 一种识别方法及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7780084B2 (en) * | 2007-06-29 | 2010-08-24 | Microsoft Corporation | 2-D barcode recognition |
CN105046256B (zh) * | 2015-07-22 | 2018-10-16 | 福建新大陆自动识别技术有限公司 | 基于畸变图像校正的qr码解码方法和系统 |
CN106529633B (zh) * | 2015-09-10 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 二维码的生成方法、解码方法以及装置 |
CN105701434A (zh) * | 2015-12-30 | 2016-06-22 | 广州卓德信息科技有限公司 | 二维码扭曲图像的图像校正方法 |
CN109543486A (zh) * | 2018-10-29 | 2019-03-29 | 华南理工大学 | 基于神经网络的条形码定位方法及系统 |
CN112381183B (zh) * | 2021-01-12 | 2021-05-07 | 北京易真学思教育科技有限公司 | 目标检测方法、装置、电子设备及存储介质 |
CN113111674A (zh) * | 2021-04-12 | 2021-07-13 | 广东奥普特科技股份有限公司 | Aztec码定位与解码方法、系统、设备及存储介质 |
-
2021
- 2021-08-31 CN CN202111016561.7A patent/CN113723136B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104766037A (zh) * | 2015-03-20 | 2015-07-08 | 中国联合网络通信集团有限公司 | 一种二维码的识别方法及设备 |
CN106156674A (zh) * | 2015-03-31 | 2016-11-23 | 联想(北京)有限公司 | 一种识别方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113723136A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059685B (zh) | 文字区域检测方法、装置及存储介质 | |
CN109684980B (zh) | 自动阅卷方法及装置 | |
CN113723136B (zh) | 条码矫正方法、装置、设备及存储介质 | |
CN108830186B (zh) | 文本图像的内容提取方法、装置、设备及存储介质 | |
CN110795019B (zh) | 软键盘的按键识别方法、装置及存储介质 | |
CN107248137B (zh) | 一种实现图像处理的方法及移动终端 | |
CN111256676B (zh) | 移动机器人定位方法、装置和计算机可读存储介质 | |
CN110991457B (zh) | 二维码处理方法、装置、电子设备及存储介质 | |
CN108491748B (zh) | 图形码的识别及生成方法、装置及计算机可读存储介质 | |
CN113627413B (zh) | 数据标注方法、图像比对方法及装置 | |
CN111754386B (zh) | 图像区域屏蔽方法、装置、设备及存储介质 | |
CN112396076A (zh) | 车牌图像生成方法、装置及计算机存储介质 | |
CN110738185B (zh) | 表单对象的识别方法、装置及存储介质 | |
WO2020244592A1 (zh) | 物品取放检测系统、方法及装置 | |
CN112308103B (zh) | 生成训练样本的方法和装置 | |
CN113012211A (zh) | 图像采集方法、装置、系统、计算机设备及存储介质 | |
CN110503159B (zh) | 文字识别方法、装置、设备及介质 | |
CN109754439B (zh) | 标定方法、装置、电子设备及介质 | |
CN110533019B (zh) | 车牌定位方法、装置及存储介质 | |
CN112257594B (zh) | 多媒体数据的显示方法、装置、计算机设备及存储介质 | |
CN110377914B (zh) | 字符识别方法、装置及存储介质 | |
CN112184802B (zh) | 标定框的调整方法、装置及存储介质 | |
CN111444749B (zh) | 路面导向标志的识别方法、装置及存储介质 | |
CN110163192B (zh) | 字符识别方法、装置及可读介质 | |
CN112950535B (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 |