CN113312937A - 条形码识别方法及装置、存储介质、计算机设备 - Google Patents
条形码识别方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN113312937A CN113312937A CN202110714824.5A CN202110714824A CN113312937A CN 113312937 A CN113312937 A CN 113312937A CN 202110714824 A CN202110714824 A CN 202110714824A CN 113312937 A CN113312937 A CN 113312937A
- Authority
- CN
- China
- Prior art keywords
- bar code
- barcode
- target
- code
- identified
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 14
- 238000001514 detection method Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 3
- 239000002390 adhesive tape Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012567 pattern recognition method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/242—Aligning, centring, orientation detection or correction of the image by image rotation, e.g. by 90 degrees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Toxicology (AREA)
- Electromagnetism (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Quality & Reliability (AREA)
- Character Input (AREA)
Abstract
一种条形码识别方法及装置、存储介质、计算机设备,其中,所述方法包括:获取包含待识别条形码的目标图片;识别所述目标图片中的条形码字符;按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。通过该方法,能够快速且准确的对各种复杂场景下的条形码进行扫码。
Description
技术领域
本发明涉及计算机设备领域,尤其涉及一种条形码识别方法及装置、存储介质、计算机设备。
背景技术
当今,快递物流运输行业取得了快速发展,每个快递单上都有条形码(barcode)。通过扫描条形码,可以记录快递在运输过程中的去向。目前,使用激光扫码或摄像头进行条形码扫码(barcode scanner)以识别该条形码可以简化快递的登记管理,提高物流速度。
传统地,可通过条形码处理类库ZXing对条形码进行识别,其中,ZXing是一个开源Java类库用于解析多种格式的一维或二维的条形码。然而,通过传统的通过ZXing识别条形码的方法,往往无法适用于所有复杂场景下的条形码。当条形码被污渍严重损毁,被严重遮挡,或拍摄图像分辨率低下等情况时,无法准确高效地对条形码进行解码。使得扫码速度和精度下降。
发明内容
本发明解决的技术问题是如何提供一种能够快速且准确的对各种复杂场景下的条形码进行扫码的方法。
为解决上述问题,本发明实施例提供了一种条形码识别方法,所述方法包括:获取包含待识别条形码的目标图片;识别所述目标图片中的条形码字符;按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。
可选的,所述识别所述目标图片中的条形码字符,包括:将所述目标图片输入文本检测模块,通过所述文本检测模型定位所述目标图片中条形码字符的目标区域;根据方向分类器识别所述目标区域的文字方向,并根据识别出的文字方向对所述目标区域进行方向校准;将方向校准后的文本区域输入文本识别模型中,得到所述文本区域中包含的条形码字符。
可选的,所述比较所述目标校验码和基准校验码之后,还包括:当所述目标校验码和所述基准校验码不一致,或者,无法获取所述待识别条形码对应的基准校验码时,获取所述目标图片中的条形码图形,并对所述条形码图形进行校准;对校准后的条形码图形进行解码,将解码的结果作为所述待识别条形码的识别结果。
可选的,所述获取所述目标图片中的条形码图形,并对所述条形码图形进行校准,包括:从所述目标图片中裁剪条形码图形所在的图形区域;识别所述图形区域内条形码与水平方向的倾斜角度,按照所述倾斜角度旋转所述图形区域内条形码,得到按水平方向排列的条形码作为校准后的条形码图形。
可选的,所述识别所述图形区域内条形码与水平方向的倾斜角度,包括:检测所述图形区域中的所有条形码线段,每一条形码线段包括两个端点和两个端点之间的线段;计算每一条形码线段与水平方向的角度,并计算每一条形码线段的长度;求与水平方向的角度相同的条形码线段的长度之和;将最大的所述和对应的与水平方向的角度,作为所述倾斜角度。
可选的,通过图像检测模型获取所述目标图片中的条形码图形,并对所述条形码图形进行校准。
可选的,通过条形码处理类库对校准后的条形码图形进行解码。
本发明实施例还提供一种条形码识别装置,所述装置包括:目标图片获取模块,用于获取包含待识别条形码的目标图片;条形码字符识别模块,用于识别所述目标图片中的条形码字符;目标校验码计算模块,用于按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;校验码比较模块,用于从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;第一识别结果获取模块,用于当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。
本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行任一项所述条形码识别方法的步骤。
本发明实施例还提供一种计算机设备,包括所述条形码识别装置,或者,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行任一项所述条形码识别方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供了提出了一种条形码识别方法,在获取包含待识别条形码的目标图片之后,先对其中的字符进行识别,并判断识别出的字符是否正确,若正确则直接输出所述条形码字符将其作为待识别条形码的识别结果。对于不同的复杂场景(条形码被淋湿、沾染污渍、破损、变形、被其它物体遮挡、打印模糊、条形码方向颠倒歪斜、被透明胶带覆盖等;拍摄的图片存在反光、低光、噪声、分辨率低、多种背景文字和特殊字母符号、多个条形码等)下获取的目标图片,只要能够正确识别出条形码中的字符且,即可准确扫码。
进一步地,条形码字符的识别的过程中需要先定位条形码字符所在的区域,并将条形码字符进行方向校准,由此,能够仅针对条形码字符所在的区域、对一致的文字方向的条形码字符进行字符识别,能够有效提高字符识别的准确性。
进一步地,通过比较目标校验码和所述基准校验码,若二者不一致,不能将识别出的条形码字符作为最终的识别结果,而是需要继续执行条形码图形识别,在此之前可先对条形码图形进行校准,避免由于采集目标图片时的场景复杂导致获取的条形码图形旋转、变形,而影响条形码图形识别的效果。由此,在条形码图形识别之前增加了校准步骤,相比于传统的直接识别条形码图形的方法,本实施例的方案能够覆盖多数复杂的条形码使用场景,可以极大地提高条形码解码的成功率和解码速度。
进一步,当条形码的目标图片中的条形码字符清晰完整,而条形码被遮挡,有破损或有污渍时,ZXing等条形码识别工具不能够正确快速的识别条形码,此时可以将条形码字符识别的结果作为条形码的识别结果。相反地,若条形码字符存在污损被遮挡等情况无法被识别,也可以通过条形码图形识别得到条形码的识别结果。由此,能够结合字符识别和图形识别,共同完成条形码的识别,以适用复杂的条形码扫码环境。
附图说明
图1为本发明实施例的一种条形码识别方法的流程示意图;
图2为图2为一种典型的EAN-13码的示意图;
图3为步骤S102在一个实施例的流程示意图;
图4为本发明实施例的一种条形码字符识别方法的示意图;
图5为本发明实施例的另一种条形码识别方法的流程示意图;
图6为本发明实施例的一种条形码图形识别方法的示意图;
图7为本发明实施例的一种条形码识别装置的结构示意图。
具体实施方式
如背景技术所言,当前可以通过条形码处理类库ZXing对条形码进行识别,具体地,对获取的图像中的条形码进行检测,再使用ZXing对检测到的条形码进行解码。然而这一方案存在以下缺点:a)这种方法需要一个具有自动对焦和相对高分辨率的相机才能正常工作;b)当条形码出现变形,严重破损,打印模糊,严重遮挡等问题时,不能很好的识别;c)当拍摄的条形码图片出现低光。反光,分辨率低,存在噪声等情况时不能很好的识别;d)可以识别某些旋转角度的条形码,不能识别任意旋转角度的条形码。
综上,传统的ZXing识别条形码的方法在复杂场景下不能准确扫码,且使用场景限定较多。
为解决上述问题,本发明实施例提供了一种条形码识别方法,所述方法包括:获取包含待识别条形码的目标图片;识别所述目标图片中的条形码字符;按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。通过该方案,提供了一种能够快速且准确的对各种复杂场景下的条形码进行扫码的方法。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
请参见图1,图1为本发明实施例的一种条形码识别方法的流程示意图,所述方法由终端或者服务器(如云服务器等)侧执行,所述终端可以手机、电脑、移动手表、条码扫描仪等设备。所述条形码识别方法具体可以包括以下步骤S101至步骤S104,详述如下。
步骤S101,获取包含待识别条形码的目标图片。
其中,所述目标图片为包含条形码的图片,所述目标图片为图像采集设备采集到的图片。可选的,所述图像采集设备可以为相机,此时所述目标图片为相机拍摄得到的图片;所述图像采集设备还可以为扫描条形码的设备,如条码扫描仪等,此时所述目标图片为扫描得到的图片。
所述条形码可以为各种类型的条形码,当前常用的条形码包括通用商品条码(European Article Number,简称EAN)和通用产品代码(Universal Product Code,简称UPC)等,其中,EAN包括EAN-13码和EAN-8码。
在一个具体实施例中,所述方法由手机或条码扫描仪等终端执行,手机或条码扫描仪等终端直接通过相机拍摄或者扫描得到所述目标图片,由该终端的处理器,如中央处理器(central processing unit,简称CPU)等,执行图1所述条形码识别方法,以对目标图片中的条形码进行识别。在另一个具体实施例中,所述方法由服务器执行,前述终端在采集到所述目标图片之后,将其发送给服务器,服务器执行图1所述条形码识别方法后将条形码的识别结果再发送给终端。
步骤S102,识别所述目标图片中的条形码字符。
其中,条形码字符为所述条形码图片中包含的条形码对应的字符,如EAN-13的条形码中包含13位条形码字符,EAN-8的条形码中包含8位条形码字符。请参见图2,图2为一种典型的EAN-13码的示意图,该EAN-13条码被划分成了4个区域:数制区域201、厂商码区域202、商品码区域203和校验位204。该4个区域中的字符统称为该EAN-13码的条形码字符。
可选的,可通过光学字符识别(Optical Character Recognition,简称OCR)技术识别所述目标图片中的条形码字符。或者,可以以大量包含字符的图片样本为训练样本,经过大数据训练得到图片分析模型,通过该图片分析模型识别所述目标图片中的条形码字符。
步骤S103,按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码。
其中,待识别条形码的类型与校验算法之间具有预设的对应关系,先判断所述待识别条形码的类型,再根据预设的对应关系确定该待识别条形码对应的校验算法,通过校验算法可以用来保证条形码识别的正确性。
一般而言,不同种类的条形码,都包含一个或多个校验码,且校验码的位置是固定的,请再次参见图2,EAN-13码的校验码指的是校验位204上的数值,也即图2中的校验码为“7”。EAN-13码的校验算法步骤包括(1):从右至左,将13个字符按顺序排列;(2)将偶数位(即第2、4、6、8、10和12位)的数据相加,再将相加之和乘以3得到的结果记作P;(3)将除校验码之外的其他奇数位(即第3,5,7,9,11,13)的数据相加,将相加之和记作N;(4)N+P得到M;(5)取M除以10的余数,并求余数以10为模的补数C;(6)若C与校验码数值相等,则译码正确。
需要说明的是,条形码包括但不限于上述的EAN-13码,可根据条形码的种类确定其对应的校验算法,这里不再赘述。
步骤S104,从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码。当所述目标校验码和所述基准校验码一致时,执行步骤S105,将所述条形码字符作为所述待识别条形码的识别结果。
其中,基准校验码为用于判断识别出的条形码字符是否正确的校验码,可以指各个条形码字符中校验位的数值。基准校验码可以是识别出的条形码字符中预设字段的数值,例如,图2中EAN-13码校验位204上的数值。
对于每一种条形码,通过OCR识别或者其他识别方法识别出条形码字符后,使用该条形码对应的校验算法计算该条形码的校验码,也即目标校验码。判断识别出的条形码字符是否正确,也即目标校验码和基准校验码是否一致,若一致,则识别出的条形码字符正确,此时直接输出所述条形码字符,将所述条形码字符作为所述待识别条形码的识别结果。
图1所述的条形码识别方法中,在获取包含待识别条形码的目标图片之后,先对其中的字符进行识别,并判断识别出的字符是否正确,若正确则直接输出所述条形码字符将其作为待识别条形码的识别结果。对于不同的复杂场景(条形码被淋湿、沾染污渍、破损、变形、被其它物体遮挡、打印模糊、条形码方向颠倒歪斜、被透明胶带覆盖等;拍摄的图片存在反光、低光、噪声、分辨率低、多种背景文字和特殊字母符号、多个条形码等)下获取的目标图片,只要能够正确识别出条形码中的字符且,即可准确扫码。
在一个实施例中,请参见图1和图3,图3为步骤S102在一个实施例的流程示意图,图1中步骤S102所述识别所述目标图片中的条形码字符,可以包括如下步骤S1021至步骤S1023,详述如下。
步骤S1021,将所述目标图片输入文本检测模块,通过所述文本检测模型定位所述目标图片中条形码字符的目标区域。
其中,文本检测模块用于定位目标图片中条形码字符所在的图片区域,也即目标区域,文本检测模块可以基于模型训练得到,该模型的训练样本可以为多张包含条形码的图片。可选的,文本检测模块定位的目标区域为矩形或者其他形状,如六边形等。当目标区域为矩形时,其可以根据矩形的四个顶点确定。可选的,文本检测模块包括可微分二值化处理(Differentiable Binarization,简称DB)网络,DB网络在收集的包含条形码的图片数据集上完成训练。
步骤S1022,根据方向分类器识别所述目标区域的文字方向,并根据识别出的文字方向对所述目标区域进行方向校准。
可选的,方向分类器用于根据目标区域的文字方向对目标区域进行分类,可选的,采用移动网络(MobileNet)或者其他分类网络作为方向分类器的主干网络,以收集的不同文字方向的文本区域图像为训练样本对方向分类器的主干网络进行训练,主干网络能够基于训练样本学习的分类能力识别目标区域的文字方向。可选的,训练样本至少包括正向(文字的显示方向为预设的标准方向)和反向(文字的显示方向与预设的标准方向的夹角为180度)两个文字方向的文本区域图像,主干网络可将输入的目标区域的文字方向分为两类:正向和反向。进一步,文本区域图像为收集的条形码字符所在区域的图像,可从包含条形码的若干图片中裁剪得到,可对文本区域图像进行旋转得到不同文字方向的训练样本。
需要说明的是,可引入其他多种不同文字方向的训练样本,以训练所述主干网络能够识别对应的多种文字方向,如文字的显示方向与预设的标准方向之间的夹角为N,N的取值可以为0度至360度之间的任一角度,如90度等。其中,MobileNet可以包括MobileNetV2或者MobileNetV3等。
可选的,所述根据识别出的文字方向对所述目标区域进行方向校准,包括:对文字显示方向不是预设的标准方向的目标区域进行旋转,以将目标区域的文字显示方向调整为预设的标准方向。例如,将文字显示反向的目标区域旋转180度之后,变为文字显示方向为正向的目标区域。
步骤S1023,将方向校准后的文本区域输入文本识别模型中,得到所述文本区域中包含的条形码字符。
其中,文本识别模型用于识别校准后的文本区域内包含的字符,可选的,所述文本识别模型可以包括卷积递归神经网络(Convolutional Recurrent Neural Network,简称CRNN),以收集的条形码字符为训练样本进行模型训练。
请参见图4,图4为本发明实施例的一种条形码字符识别的识别流程示意图,目标图片按照图3所述的步骤,依次经过文本检测模块401、方向分类器402和文本识别模块403,得到该目标图片中包含的待识别条形码的条形码字符。
本实施例中,条形码字符的识别的过程中需要先定位条形码字符所在的区域,并将条形码字符进行方向校准,由此,能够仅针对条形码字符所在的区域、对一致的文字方向的条形码字符进行字符识别,能够有效提高字符识别的准确性。
在一个实施例中,请参见图1和图5,图5为本发明实施例的另一种条形码识别方法的流程示意图,图1中步骤S104所述比较所述目标校验码和基准校验码之后,还可以包括:当所述目标校验码和所述基准校验码不一致,或者,无法获取所述待识别条形码对应的基准校验码时,执行步骤S501以及步骤S502。
可选的,当所述目标校验码和所述基准校验码不一致,表示识别出的条形码字符不正确。若待识别条形码中不存在校验位,或者该校验位的数字发生被污渍或其他物体遮挡等情形,无法获取待识别条形码对应的基准校验码,此时无法判断识别出的条形码字符是否正确。若识别出的条形码字符不正确或者无法判断识别出的条形码字符是否正确时,继续对待识别条形码的条形码图形进行识别,从而得到待识别条形码的识别结果。
具体地,步骤S501,获取所述目标图片中的条形码图形,并对所述条形码图形进行校准。
其中,条形码图形包括宽度不等的、按照一定的编码规则排列多个黑条和空白。在实际采集目标图片时,无法保证其与条形码标签之间的夹角、距离等固定,可能造成目标图片中呈现的条形码图形存在变形或旋转等情况,其中,旋转指的是条形码图形与标准方向(标准方向可以为指定的方向,如水平方向等)存在夹角。为保证对条形码图形识别准确,可在对条形码图形进行解码之前,先对条形码图形进行校准,所述校准包括将变形的条形码图形恢复,也包括将发生了旋转的条形码图形恢复为平行或垂直于标准方向显示,也即将获取的条形码图像进行旋转。
步骤S502,对校准后的条形码图形进行解码,将解码的结果作为所述待识别条形码的识别结果。
可选的,将校准后的条形码图形输入条形码处理类库(Zxing)以对其解码,或者使用其他用于识别条形码图形的工具(如Smadar等)对校准后的条形码图形解码,以得到待识别条形码的识别结果。
本发明实施例中,通过步骤S104比较目标校验码和所述基准校验码,若二者不一致,不能将识别出的条形码字符作为最终的识别结果,而是需要继续执行步骤S502的条形码图形识别,在执行步骤S502之前,可先对条形码图形进行校准,避免由于采集目标图片时的场景复杂导致获取的条形码图形旋转、变形,而影响条形码图形识别的效果。本实施例中,在条形码图形识别之前增加了校准步骤,相比于传统的直接识别条形码图形的方法,本实施例的方案能够覆盖多数复杂的条形码使用场景,可以极大地提高条形码解码的成功率和解码速度。
在一个实施例中,图5中的步骤S501所述获取所述目标图片中的条形码图形,并对所述条形码图形进行校准,可以包括:从所述目标图片中裁剪条形码图形所在的图形区域;识别所述图形区域内条形码与水平方向的倾斜角度,按照所述倾斜角度旋转所述图形区域内条形码,得到按水平方向排列的条形码作为校准后的条形码图形。
可根据条形码的分布特征,自动从目标图片中裁剪仅包含条形码图形的图形区域。可选的,以水平的矩形检测框对目标图片进行条形码图形检测,将检测到的条形码图形裁剪为该水平的矩形检测框对应的图片区域。若图片区域中的条形码图形非按照按水平方向排列,则对其进行旋转,得到按水平方向排列的条形码图形。其中,条形码图形按水平方向排列是指条形码中的各条线与水平方向垂直,即如图2所示的分布示例。
在一个实施例中,所述识别所述图形区域内条形码与水平方向的倾斜角度,可以包括:检测所述图形区域中的所有条形码线段,每一条形码线段包括两个端点和两个端点之间的线段;计算每一条形码线段与水平方向的角度,并计算每一条形码线段的长度;求与水平方向的角度相同的条形码线段的长度之和;将最大的所述和对应的与水平方向的角度,作为所述倾斜角度。
可选的,使用直线段检测(line segment detection,简称LSD)算法检测边图形区域中的所有线段。然后通过每一线段的两个端点计算每条线段的与水平方向之间的角度和该线段的长度。将具有相同角度的线段聚集在一起,计算具有相同角度的线段的长度之和。线段长度之和最大的线段的角度表示条形码图形的主要角度,能够反映该条形码图形与水平方向之间的夹角,也即倾斜角度,倾斜角度的取值在0度到180度之间。然后按照倾斜角度对条形码图像旋转,使条形码图形按水平方向排列。
可选的,通过图像检测模型获取所述目标图片中的条形码图形,并对所述条形码图形进行校准。其中,图像检测模型可以基于统一的实时目标检测(You Only Look Once:Unified,Real-Time Object Detection,简称YOLO)网络实现。也即,步骤S501可以基于YOLO网络等图像检测模型实现,
本实施例中,在对条形码图形进行解码之前,先对其进行图形校准,以提高条形码解码结果的准确性。
在一个实施例中,图6为本发明实施例的一种条形码图形识别方法的识别流程示意图。目标图片经YOLO网络执行步骤S601检测得到目标图片中的图形区域;对图形区域执行步骤S602条形码角度检测,得到倾斜角度,并对所述条形码图形进行校准得到校准后的条形码图形;将校准后的条形码图形输入ZXing执行步骤S603的解码,得到解码结果,该解码结果即为待识别条形码的最终识别结果。
请参见图4至图6,当所述目标校验码和基准校验码一致时,则可如图4进行条形码字符识别,也即执行步骤S105的步骤。当所述目标校验码和所述基准校验码不一致,或者,无法获取所述待识别条形码对应的基准校验码时,则可按照图6所述条形码图形识别方法识别条形码图形,也即执行步骤S501和步骤S502。
该实施例中,当条形码的目标图片中的条形码字符清晰完整,而条形码被遮挡,有破损或有污渍时,ZXing等条形码识别工具不能够正确快速的识别条形码,此时可以将条形码字符识别的结果作为条形码的识别结果。相反地,若条形码字符存在污损被遮挡等情况无法被识别,也可以通过条形码图形识别得到条形码的识别结果。由此,能够结合字符识别和图形识别,共同完成条形码的识别,以适用复杂的条形码扫码环境。
请参见图7,为本发明实施例还提供一种条形码识别装置70,包括:目标图片获取模块701,用于获取包含待识别条形码的目标图片;条形码字符识别模块702,用于识别所述目标图片中的条形码字符;目标校验码计算模块703,用于按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;校验码比较模块704,用于从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;第一识别结果获取模块705,用于当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。
在一个实施例中,所述条形码字符识别模块702可以包括:文本检测单元,用于将所述目标图片输入文本检测模块,通过所述文本检测模型定位所述目标图片中条形码字符的目标区域;文字方向校准单元,用于根据方向分类器识别所述目标区域的文字方向,并根据识别出的文字方向对所述目标区域进行方向校准;文本识别单元,用于将方向校准后的文本区域输入文本识别模型中,得到所述文本区域中包含的条形码字符。
在一个实施例中,所述条形码识别装置70还可以包括:条形码图形获取模块,用于在比较所述目标校验码和基准校验码之后,当所述目标校验码和所述基准校验码不一致,或者,无法获取所述待识别条形码对应的基准校验码时,获取所述目标图片中的条形码图形,并对所述条形码图形进行校准;图形解码模块,用于对校准后的条形码图形进行解码,将解码的结果作为所述待识别条形码的识别结果。
在一个实施例中,所述条形码图形获取模块可以包括:图像区域获取单元,用于从所述目标图片中裁剪条形码图形所在的图形区域;条形码校准单元,用于识别所述图形区域内条形码与水平方向的倾斜角度,按照所述倾斜角度旋转所述图形区域内条形码,得到按水平方向排列的条形码作为校准后的条形码图形。
在一个实施例中,所述条形码校准单元可以包括:线段检测子单元,用于检测所述图形区域中的所有条形码线段,每一条形码线段包括两个端点和两个端点之间的线段;线段长度计算子单元,用于计算每一条形码线段与水平方向的角度,并计算每一条形码线段的长度;求与水平方向的角度相同的条形码线段的长度之和;倾斜角度确定子单元,用于将最大的所述和对应的与水平方向的角度,作为所述倾斜角度。
可选的,通过图像检测模型获取所述目标图片中的条形码图形,并对所述条形码图形进行校准。
可选的,通过条形码处理类库对校准后的条形码图形进行解码。
关于条形码识别装置70的工作原理、工作方式的更多内容,可以参照图1至图6关于条形码识别方法的相关描述,这里不再赘述。
在具体实施中,上述的条形码识别装置70可以对应于终端或服务器中具有条形码识别功能的芯片,或者对应于具有数据处理功能的芯片,例如片上系统(System-On-a-Chip,SOC)、基带芯片等;或者对应于终端或服务器中包括具有条形码识别功能芯片的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于终端或服务器。
本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行图1至图6任一实施例所述条形码识别方法的步骤。所述存储介质可以是计算机可读存储介质,例如可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器,还可以包括光盘、机械硬盘、固态硬盘等。
本发明实施例还提供一种计算机设备,该计算机设备可以为终端或服务器。所述计算机设备可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行图1至图6所述条形码识别方法的步骤。
具体地,在本发明实施例中,所述处理器可以为中央处理单元(centralprocessing unit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称DSP)、专用集成电路(application specificintegrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(staticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
本申请实施例中出现的“连接”是指直接连接或者间接连接等各种连接方式,以实现设备间的通信,本申请实施例对此不做任何限定。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (10)
1.一种条形码识别方法,其特征在于,所述方法包括:
获取包含待识别条形码的目标图片;
识别所述目标图片中的条形码字符;
按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;
从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;
当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。
2.根据权利要求1所述的方法,其特征在于,所述识别所述目标图片中的条形码字符,包括:
将所述目标图片输入文本检测模块,通过所述文本检测模型定位所述目标图片中条形码字符的目标区域;
根据方向分类器识别所述目标区域的文字方向,并根据识别出的文字方向对所述目标区域进行方向校准;
将方向校准后的文本区域输入文本识别模型中,得到所述文本区域中包含的条形码字符。
3.根据权利要求1所述的方法,其特征在于,所述比较所述目标校验码和基准校验码之后,还包括:
当所述目标校验码和所述基准校验码不一致,或者,无法获取所述待识别条形码对应的基准校验码时,获取所述目标图片中的条形码图形,并对所述条形码图形进行校准;
对校准后的条形码图形进行解码,将解码的结果作为所述待识别条形码的识别结果。
4.根据权利要求3所述的方法,其特征在于,所述获取所述目标图片中的条形码图形,并对所述条形码图形进行校准,包括:
从所述目标图片中裁剪条形码图形所在的图形区域;
识别所述图形区域内条形码与水平方向的倾斜角度,按照所述倾斜角度旋转所述图形区域内条形码,得到按水平方向排列的条形码作为校准后的条形码图形。
5.根据权利要求4所述的方法,其特征在于,所述识别所述图形区域内条形码与水平方向的倾斜角度,包括:
检测所述图形区域中的所有条形码线段,每一条形码线段包括两个端点和两个端点之间的线段;
计算每一条形码线段与水平方向的角度,并计算每一条形码线段的长度;
求与水平方向的角度相同的条形码线段的长度之和;
将最大的所述和对应的与水平方向的角度,作为所述倾斜角度。
6.根据权利要求3至5任一所述的方法,其特征在于,通过图像检测模型获取所述目标图片中的条形码图形,并对所述条形码图形进行校准。
7.根据权利要求3所述的方法,其特征在于,通过条形码处理类库对校准后的条形码图形进行解码。
8.一种条形码识别装置,其特征在于,所述装置包括:
目标图片获取模块,用于获取包含待识别条形码的目标图片;
条形码字符识别模块,用于识别所述目标图片中的条形码字符;
目标校验码计算模块,用于按照所述待识别条形码对应的校验算法计算所述条形码字符对应的目标校验码;
校验码比较模块,用于从所述目标图片中获取所述待识别条形码对应的基准校验码,比较所述目标校验码和基准校验码;
第一识别结果获取模块,用于当所述目标校验码和所述基准校验码一致时,将所述条形码字符作为所述待识别条形码的识别结果。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至7任一项所述方法的步骤。
10.一种计算机设备,包括如权利要求8所述的装置,或者,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714824.5A CN113312937A (zh) | 2021-06-25 | 2021-06-25 | 条形码识别方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714824.5A CN113312937A (zh) | 2021-06-25 | 2021-06-25 | 条形码识别方法及装置、存储介质、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113312937A true CN113312937A (zh) | 2021-08-27 |
Family
ID=77380487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110714824.5A Pending CN113312937A (zh) | 2021-06-25 | 2021-06-25 | 条形码识别方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312937A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114004245A (zh) * | 2021-10-25 | 2022-02-01 | 北京小米移动软件有限公司 | 条码信息识别方法、装置、设备及存储介质 |
WO2023241242A1 (zh) * | 2022-06-15 | 2023-12-21 | 京东方科技集团股份有限公司 | 一种数据识别方法及移动终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343028A (en) * | 1992-08-10 | 1994-08-30 | United Parcel Service Of America, Inc. | Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images |
KR20080079706A (ko) * | 2006-12-27 | 2008-09-02 | 농업협동조합중앙회 | 지방세 자동 수납 시스템 및 그 제어방법 |
CN103177235A (zh) * | 2013-04-18 | 2013-06-26 | 河海大学常州校区 | 一种复杂背景下汉信码的识别装置及方法 |
CN111144161A (zh) * | 2020-04-03 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 条形码的识别方法及装置、商品信息确定方法及支付方法 |
JP2020194594A (ja) * | 2020-09-01 | 2020-12-03 | 東芝テック株式会社 | コード認識装置 |
-
2021
- 2021-06-25 CN CN202110714824.5A patent/CN113312937A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343028A (en) * | 1992-08-10 | 1994-08-30 | United Parcel Service Of America, Inc. | Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images |
KR20080079706A (ko) * | 2006-12-27 | 2008-09-02 | 농업협동조합중앙회 | 지방세 자동 수납 시스템 및 그 제어방법 |
CN103177235A (zh) * | 2013-04-18 | 2013-06-26 | 河海大学常州校区 | 一种复杂背景下汉信码的识别装置及方法 |
CN111144161A (zh) * | 2020-04-03 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 条形码的识别方法及装置、商品信息确定方法及支付方法 |
JP2020194594A (ja) * | 2020-09-01 | 2020-12-03 | 東芝テック株式会社 | コード認識装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114004245A (zh) * | 2021-10-25 | 2022-02-01 | 北京小米移动软件有限公司 | 条码信息识别方法、装置、设备及存储介质 |
WO2023241242A1 (zh) * | 2022-06-15 | 2023-12-21 | 京东方科技集团股份有限公司 | 一种数据识别方法及移动终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046529B (zh) | 二维码识别方法、装置及设备 | |
CN110827247B (zh) | 一种识别标签的方法及设备 | |
CN110659647B (zh) | 印章图像识别方法及装置、智能发票识别设备和存储介质 | |
US5616905A (en) | Two-dimensional code recognition method | |
US7636483B2 (en) | Code type determining method and code boundary detecting method | |
US9171204B2 (en) | Method of perspective correction for devanagari text | |
CN111783495B (zh) | 一种条形码识别方法、装置、电子设备及存储介质 | |
CN109886928B (zh) | 一种目标细胞标记方法、装置、存储介质及终端设备 | |
US9959475B2 (en) | Table data recovering in case of image distortion | |
CN109214229B (zh) | 一种条码扫描方法、装置及电子设备 | |
CN108573184B (zh) | 一种二维码定位方法、模块及计算机可读存储介质 | |
CN113312937A (zh) | 条形码识别方法及装置、存储介质、计算机设备 | |
CN109948521B (zh) | 图像纠偏方法和装置、设备及存储介质 | |
CN111767754B (zh) | 一种识别码的识别方法、装置、电子设备及存储介质 | |
CN112307786B (zh) | 一种多个不规则二维码批量定位识别方法 | |
CN107403179B (zh) | 一种物品包装信息的注册方法及装置 | |
CN111222507A (zh) | 数字式仪表读数的自动识别方法、计算机可读存储介质 | |
CN110135288B (zh) | 一种电子证照的快速核对方法及装置 | |
CN115482186A (zh) | 瑕疵检测方法、电子设备及存储介质 | |
RU2597163C2 (ru) | Сравнение документов с использованием достоверного источника | |
US20230342575A1 (en) | Methods and systems of harvesting data for training machine learning (ml) model | |
US10872257B2 (en) | Barcode detection method and barcode detection system for increasing detection efficiency | |
Yun et al. | Vision-based 1D barcode localization method for scale and rotation invariant | |
CN116469090A (zh) | 喷码图案的检测方法、装置、电子设备和存储介质 | |
Liang et al. | Real time recognition of 2D bar codes in complex image conditions |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210827 |
|
RJ01 | Rejection of invention patent application after publication |