CN116630946A - 在携带代码的对象的图像中找出代码图像区域 - Google Patents
在携带代码的对象的图像中找出代码图像区域 Download PDFInfo
- Publication number
- CN116630946A CN116630946A CN202310134930.5A CN202310134930A CN116630946A CN 116630946 A CN116630946 A CN 116630946A CN 202310134930 A CN202310134930 A CN 202310134930A CN 116630946 A CN116630946 A CN 116630946A
- Authority
- CN
- China
- Prior art keywords
- code
- candidate
- image
- segmentation
- code image
- 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
- 230000011218 segmentation Effects 0.000 claims abstract description 146
- 238000000034 method Methods 0.000 claims abstract description 103
- 238000010801 machine learning Methods 0.000 claims abstract description 31
- 238000003672 processing method Methods 0.000 claims abstract description 6
- 238000013528 artificial neural network Methods 0.000 claims description 43
- 238000011156 evaluation Methods 0.000 claims description 19
- 230000003287 optical effect Effects 0.000 claims description 9
- 230000000717 retained effect Effects 0.000 claims description 6
- 230000005693 optoelectronics Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 29
- 238000012545 processing Methods 0.000 description 19
- 238000013527 convolutional neural network Methods 0.000 description 10
- 230000004927 fusion Effects 0.000 description 10
- 238000012549 training Methods 0.000 description 9
- 238000012015 optical character recognition Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000001454 recorded image Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010790 dilution Methods 0.000 description 1
- 239000012895 dilution Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000000638 solvent extraction Methods 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/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/1482—Methods for optical code recognition the method including quality enhancement steps using fuzzy logic or natural solvers, such as neural networks, genetic algorithms and simulated annealing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
- G06V30/147—Determination of region of interest
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1491—Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
-
- 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/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
Abstract
本申请涉及在携带代码的对象的图像中找出代码图像区域。一种用于在携带代码的对象(14)的初始图像中找出代码图像区域的方法,其中在第一分割方法中使用没有机器学习的经典图像处理方法确定代码图像区域的第一候选对象,以及在第二分割方法中使用机器学习确定代码图像区域的第二候选对象,其中合并第一候选对象和第二候选对象以找出代码图像区域。
Description
本发明涉及根据权利要求1的前序部分的用于在携带代码的对象的初始图像(Ausgangsbild)中找出代码图像区域的计算机实现的方法,以及根据权利要求15的前序部分的使用相应方法的光电读码器。
读码器在超市收银台、自动包裹辨识、邮政物品分拣、机场行李处理和其他物流应用中是众所周知的。在代码扫描器中,读取光束借助旋转反射镜或多边形镜轮在代码上方被引导横向通过。基于相机的读码器借助于图像传感器记录其上附有代码的对象的图像,并且图像评估软件从这些图像中提取代码信息。基于相机的读码器还可以轻松地处理一维条形码以外的代码类型,这些代码也像矩阵码一样是二维的,并且提供更多信息。
在重要的应用组中,携带代码的对象被传送经过读码器。在此,代码扫描器检测依次被引导到其读取区域中的代码。可替代地,在基于相机的读码器中,线扫描相机以相对运动的方式逐行连续地读入具有代码信息的对象图像。利用二维图像传感器定期记录图像数据,这些数据根据记录频率和输送速度的不同而或多或少地重叠。为了使对象以任何定向布置在传送带上,通常在读取通道上布置有多个读码器,以便从多侧或所有侧记录对象。
在携带代码的对象的所记录的初始图像中搜索代码图像区域,即图像中可能包含代码的区域,作为读取代码的准备。这一步骤称为分割或预分割。对人类观察者来说,识别代码图像区域是非常容易的。然而,从算法的角度来看,这是一项极具挑战性的任务。因为背景中的图案或结构通常具有与代码图像区域本身相似的属性。例如,具有非常小模块的2D代码在许多方面具有非常相似的特性,如文本区域、标识、包装带等。因此,传统上分割的错误率仍然太高。在此,必须区分导致具有代码的区域被忽略的错误(假阴性)和导致没有代码的区域被发现为代码图像区域的错误(假阳性)。如果对象不携带多个冗余代码,则前一个错误可能会阻止由代码信息控制的自动处理,而后一个错误则会占用有限的计算资源和可用的时间窗口,因此可能无法及时读取不同代码图像区域中的代码。
在当今大多数读码应用中,分割是通过传统的图像处理算法和手动创建的分类器来完成的。因此,即使是非常小的结构也常常被很好地识别,因而也会发现具有小代码的代码图像区域,例如具有小的模块尺寸和符号尺寸的2D代码或者具有小的代码高度或条长度的条形码。传统的方法在其评估上仍然非常局部。在困难的读取情况下,例如具有许多背景结构的情况下,会找到许多假阳性的代码图像区域,但是在典型的应用实时条件下这些假阳性的代码图像区域不能被全部处理,因此读取速率会降低。
另一种分割方法基于人工神经网络,特别是深度卷积网络(Deep Neural Network(深度神经网络),Convolutional Neural Network(卷积神经网络,CNN))。最终,这样的神经网络将大量用示例数据训练的滤波器核应用于初始图像。这种大量滤波器的递增应用使得神经网络的计算量非常大。因此,必须在第一层中大大降低图像分辨率。然而,这存在着丢失初始图像中更精细结构的风险。结果就是忽略了较小的代码图像区域,因此存在相对较大的假阴性错误率。未找到的代码图像区域直接影响读取速率。相反,找到的代码图像区域相当可靠,与经典分割方法相比,假阳性错误率较低。
在Zhao Qijie等人的论文“Deep Dual Pyramid Network for BarcodeSegmentation using Barcode-30k Database”,arXiv preprint arXiv:1807.11886(2018)中,对大数据集进行了合成,因此通过CNN进行代码分割。对确切的网络架构和硬件实现未做介绍。
在Xiao Yunzhe和Zhong Ming的“1D Barcode Detection via Integrated Deep-Learning and Geometric Approach”,Applied Sciences 9.16(2019):3268中声称在定位条形码时,与以前的方法相比,性能至少提高了5%,而无需手动设置参数。
在Hansen,Daniel Kold等人的“Real-Time Barcode Detection andClassification using Deep Learning”,IJCCI.2017中,使用Intel i5-6600 3.30GHz和Nvidia GeForce GTX 1080实时识别代码区域(包括扭曲)。
在Zharkov,Andrey;Zagaynov,Ivan的“Universal Barcode Detector viaSemantic Segmentation”,arXiv preprint arXiv:1906.06281,2019中,在CPU环境中识别条形码并辨别代码类型。
DE 101 37 093A1公开了一种识别代码的方法和读码器,其中借助神经网络执行在图像环境中定位代码的步骤。并没有详细描述神经网络的训练和架构。DE 10 2018 109392 A1提出使用卷积网络来检测光学代码。从US 10 650 211B2中已知另一种读码器,该读码器使用卷积网格来找出所记录图像中的代码。
EP 3 428 834 B1使用经典解码器,该解码器使用没有机器学习的方法工作来训练被设计用于机器学习的分类器或者更具体地说是神经网络。但文中并没有详细研究预处理或找出代码区域。
在EP 3 916 633 A1中,描述了一种用于处理图像数据的相机和方法,其中在流处理方法中借助神经网络进行分割,即还在读入另外的图像数据期间,图像数据已经被处理。至少可以在FPGA上实现神经网络的第一层。这大大减少了计算时间和对硬件的要求,但并没有改善分割本身。
在现有技术中,到目前为止只执行经典分割或使用神经网络进行分割。因此,这两种类型的分割的优势互补以及劣势平衡的可能性未被认识到,也没有被利用。
因此,本发明的任务是进一步改进代码图像区域的分割或找出。
该任务通过根据权利要求1的用于在携带代码的对象的初始图像中找出代码图像区域的计算机实现的方法以及根据权利要求15的光电读码器来解决。在对象上附有至少一个光学条形码或2D代码,或者在任何情况下都假定这样。因此,在对象的记录(即初始图像)中,至少有一个代码图像区域,即具有代码的图像区段(ROI,Region of Interest——感兴趣区域),其中不排除由于记录情况或视角而没有记录到代码,并且也可能发生对象实际上没有携带代码或丢失代码的情况。例如,初始图像是由传送带处的相机在输送运动期间记录的,或者对象在相机的视场中被呈现给相机。
找出代码图像区域,也称为分割,优选地是读取光学代码方法的准备步骤,其中,随后将所找出的代码图像区域提供给解码器,解码器读出相应代码图像区域中代码的代码内容或对代码进行解码。
在第一分割方法中,确定代码图像区域的第一候选对象。第一分割方法使用经典图像处理方法工作,例如使用手动选择和参数化的滤波器工作。经典图像处理的区别在于:不使用机器学习方法,特别是不使用神经网络。因此,这里经典应该是与机器学习相反的术语。在经典的图像处理中,也可以进行参数的设置和调整,但这本身并不是机器学习。重要的实际区别在于,经典分割已经为其任务做好了编程准备,而不需要经验或训练,并且经典分割的性能从开始到整个运行时几乎是恒定的。然而,在机器学习中,所有这些决不仅仅取决于程序化的结构,而是更加与训练和训练数据的质量相关。传统经典分割将已经完成了对第一候选对象的确定,第一候选对象将是分割后找到的代码图像区域。
本发明基于以下基本思想:经典分割与机器学习的分割相结合。为此目的,通过使用具有机器学习的第二分割方法确定代码图像区域的第二候选对象。基于机器学习的传统分割只需确定第二候选对象就已经完成了,而无需确定第一候选对象,第二候选对象将是分割后找出的代码图像区域。
根据本发明,使用两种不同的分割方法找到的第一候选对象和第二候选对象随后被组合,以找出代码图像区域。因此,第一候选对象和第二候选对象被一起考虑,这是两个分割的融合(smart fusion——智能融合)。
本发明的优点在于,通过这两种分割方法的组合,可以发挥它们各自的优势。经典分割往往过于精细,会产生太多实际上根本不包含代码的假阳性的代码图像区域,而使用机器学习的分割则容易遗漏代码,从而产生假阴性错误。正如引言中所述,假阳性的图像区域会耗费宝贵的计算时间,这可能间接地导致读取速率降低,因为在实时或准实时条件下,至少有些代码图像区域无法再进行评估。被遗漏的代码图像区域中未被读取的代码会直接降低读取速率。通过智能组合这两个分割,可以减少第一类和第二类的错误。因此,这有效地将经典分割的细粒度和准确率与使用机器学习的分割的选择性结合起来,并且整体读取速率提高。
有利地,第一分割方法生成第一结果图和/或第二分割方法生成第二结果图,其中结果图是分辨率低于初始图像的图像,该图像的像素具有关于在该像素的位置处是否识别到代码图像区域的信息。这是第一候选对象和第二候选对象作为各自的结果图(heatmap——热点图)的特别易于使用的表示。特别地,根据本发明的实施方式,以不同的方式组合两个结果图,以找出代码图像区域(融合热点图)。由于与初始图像相比分辨率较低,结果图的每个像素代表初始图像的某个区域或图块(Kachel),并以二进制形式或使用评分值提供信息,指示该像素是否是代码图像区域的一部分,或者代码(部分)在该图块中被记录的可能性有多大,可能还提供了分类信息,如可能是哪种类型的代码。
在找出候选对象之后,优选地进行精细分割,其中代码图像区域被更精细地限定,特别是以初始图像的分辨率更精细地限定。关于代码图像区域的位置的信息不一定包含代码的确切边界。例如,在结果图的情况下,代码图像区域仅以其较粗的分辨率定位。精细分割改善了代码图像区域的边界,优选是初始图像的分辨率的像素精度。可以对第一候选对象、第二候选对象和/或融合后找出的代码图像区域进行精细分割。
优选地,代码图像区域被视为位于初始图像中确定了第一候选对象和第二候选对象的位置,或者可替代地,位于确定了第一候选对象或第二候选对象的位置。因而,发生了这两种分割方法的逻辑“与”运算或可替代的逻辑“或”运算。在“与”的情况下,两种分割方法都必须确认候选对象,才能认为找出代码图像区域;在“或”的情况下,仅在两种分割方法之一中找出候选对象就足够了。一般情况下,要从语义上理解“与”或者“或”,即两个条件都要累加(kumulativ)设置,或者可替代地只设置一个条件。在结果图的情况下,优选是用“与”或者“或”链接像素的图像处理操作。因此,借助“与”或者“或”将第一结果图和第二结果图组合成第三结果图。如果结果图不是二进制的,则选择等效物,例如两个像素中的评分值或两个像素的相加的评分值必须超过阈值,或者这足以在两个像素之一中找出代码图像区域。借助“与”的组合往往太苛刻,可能会丢失代码图像区域。更容易发生假阴性错误,假阳性错误几乎没有。相反,借助“或”的组合往往太柔和,结果是有太多的所谓的代码图像区域,而几乎没有代码图像区域被遗漏。因此,优选地遵循如下所述的附加步骤,以进一步减少这两种类型的错误。
优先地,补充第一候选对象以形成连通的图像区域,特别是借助连通分量方法(Connected-Components-Verfahren)来实现,其中仅保留小于阈值大小的小的第一候选对象,并且特别地,小的第一候选对象被附加地视为代码图像区域。优选地,该步骤在第一候选对象和第二候选对象已经融合一次(特别是融合成第三结果图)之后进行,以找出附加的代码图像区域。特别是在“与”运算之后,小的代码图像区域往往会被排除,因为使用机器学习的第二分割方法会遗漏这些小的代码图像,因此没有确认它们。因此,再次对第一分割方法的结果进行后处理,以有针对性地找到小的第一候选对象,并随后找到小的代码图像区域。首先,使第一候选对象完整以形成连通分量或所谓的斑点。然后应用尺寸滤波器,该滤波器只保留小的第一候选对象。例如,尺寸滤波器基于像素数或其他度量,如长度、宽度或直径。然后,小的第一候选对象优选地被视为附加的代码图像区域。小的第一候选对象可以在第四结果图中找到或者收集。然后特别地,第三结果图可以借助于“或”与第四结果图组合,以获得第五结果图。在这种情况下,第五结果图是第一结果图“与”第二结果图(等于第三结果图)“或”第四结果图共同产生的结果。这个第五结果图现在显示了,第一分割方法和第二分割方法找到的代码图像区域的位置,加上对应于小的第一候选对象的代码图像区域的位置。
优选地,补充第二候选对象以形成连通的图像区域,特别是借助连通分量方法进行,其中仅保留排他性的第二候选对象,该排他性的第二候选对象的位置与已经找出的代码图像区域的位置不一致,并且其中特别地,该排他性的第二候选对象被附加地视为代码图像区域。第二分割方法也可以被重新审视。再次,优选地,“与”运算可能丢失了第二候选对象,因为没有对应的第一候选对象。然而,在“或”运算的意义上,相对较大的第二候选对象不能简单地覆盖第一候选对象。典型的错误情况是具有彼此重叠的多个小条形码的堆叠码。更精细的第一分割方法可以将这些条形码分开。这些分开的代码图像区域不应被大面积的第二候选对象合并。因此,首先搜索排他性的第二候选对象,即检查在扩大成连通分量或者斑点的相应第二候选对象的位置处是否已经找出代码图像区域。只有当不是这种情况时,才是排他性的第二候选对象,并且只有排他性的第二候选对象被添加作为附加的代码图像区域。排他性的第二候选对象可以在第六结果图中找到或者收集,然后在结果图层面上进行组合。第六结果图可以与第三结果图或与第五结果图进行“或”运算。由此产生第七结果图或总结果图。
特别优选地,小的第一候选对象和排他性的第二候选对象将被添加到第一候选对象和第二候选对象的“与”运算中。使用结果图,导致了以下级联:第一候选对象的第一结果图与第二候选对象的第二结果图进行“与”运算,形成第三结果图。第一候选对象扩大成连通的斑点,并且只有达到阈值大小或最大尺寸的斑点才会被保留为小的第一候选对象,从而产生第四结果图。第三结果图和第四结果图进行“或”运算,形成第五结果图。第二候选对象扩大成连通的斑点,并且只保留作为不对应于已经找出的代码图像区域的排他性的第二候选对象的斑点,从而产生第六结果图。第五结果图和第六结果图的“或”运算得到了具有根据该优选实施方式找出的所有代码图像区域的总结果图。
优选地,为第一候选对象、第二候选对象和/或代码图像区域确定一数值(记分,评分值),该数值指示在所代表的位置处在初始图像中识别到光学代码的可靠程度。因此,可以进一步区分“与”运算或者“或”运算,例如借助投票或加权。如果给代码图像区域分配了一数值(其中优先考虑底层候选对象的数值),则下游的解码可以相应地被优先排序,并且在可用的解码时间有限的情况下从最有希望的代码图像区域开始。数值还允许泛化到超出二进制“有代码/无代码”并且例如包括代码类型的的附加分类结果。
优选地,确定1D代码的第一候选对象、2D代码的第一候选对象、1D代码的第二候选对象和/或2D代码的第二候选对象。因此,在1D代码(条形码)和2D代码之间对候选对象进行区分。代码本身还可以根据各种已知的代码类型进一步区分。下游的解码器通过这样的区分获得重要的指示,即哪些优先的读取尝试使用哪些解码方法最有可能成功,从而更好地利用可用的解码时间。
优选地,将不同时是第二候选对象的2D代码的第一候选对象视为初始图像内的文本图像区域。在这样的图像区域中,第一分割方法的经典图像处理识别出明显的结构。同时,使用机器学习的第二分割方法在这个图像区域中无法辨识到任何形式的代码。因此,有证据表明,经典图像处理所响应的结构是文本区域。该信息可以作为副产品提供给OCR引擎(Optical Character Recogition——光学字符识别,Texterkennung——文本识别)以进一步处理,该OCR引擎从中获得的优点与解码器从代码图像区域中获得的优点类似。可以再次以另一结果图(OCR结果图,OCR热点图)的形式来处理和输出文本区域。
优选地,第一分割方法确定被划分成图块的初始图像中的第一候选对象。由此,只需要分别处理小的图像区段,例如以确定对比度或对亮度边缘进行计数。图块可以依次迭代地处理,但也可以以任何级别(Abstufung)并行处理。优选地,第一结果图包括每图块一个像素。第二结果图的分辨率是相等的,即相应地设计了第二分割方法,或者进行归一化以调整分辨率。
优选地,第一分割方法具有对比度确定,其中第一候选对象必须具有最小对比度。代码元素的明暗过渡提供了高对比度,因此高对比度是识别代码图像区域的第一候选对象的良好的区分标准。对比度的评估优选地每次一个图块关。
在第一分割方法中,优选地沿相互交叉的两条线对亮度边缘进行计数,以根据各自的亮度边缘数量确定首选方向,并且仅在首选方向的情况下识别1D代码的第一候选对象,并且特别地,在其他情况下识别2D代码的第一候选对象。这两条线在初始图像的层面上形成两个方向维度的测试十字。只要待测区域包含条形码,那么至少有一条线横穿条形码的条,并且因此穿过大量的亮度边缘。如果这两条线都不是这种情况,则排除存在条形码。如果测试之前有一个标准可以识别结构,例如高对比度,则该结构就不是条形码,因此可以特别地假定为2D代码。然后,这可能由第二分割方法来确认,或者在进一步的检查中搜索2D代码的查找模式。其他的可能性是散点打印(Streudruck)、文本区域或对前面标准的错误估计。测试十字也优选地与图块有关。
优选地,第二分割方法具有神经网络,特别是深度神经网络或卷积网络(CNN,Convolutional Neural Network——卷积神经网络)。这是用于图像处理的一种特别成熟的机器学习方法。因此,第二分割方法可以特别可靠地确定代码图像区域的第二候选对象。
优选地,借助监督学习,基于示例图像来训练神经网络,特别地基于没有机器学习方法的分割方法和/或解码方法的结果评估示例图像。监督学习(supervised learning)允许根据具有给定正确评估的示例的训练数据集泛化到随后在操作中呈现的初始图像。相应的神经网络架构和用于训练如操作(推断)的算法是众所周知的,因此可以使用或建立在功能良好的解决方案上。引言中提到了一些文献参考。将正确的评估(即,注释或标签)分配给示例图像,原则上可以手动完成,因为训练发生在运行时间之前。此外,第二分割方法可以至少部分地使用第一分割方法已评估过的示例图像来训练。最后,这绝不只是用其他手段复制了第一分割方法,因为神经网络通过训练找到了自己的评估和泛化。此外,可以使用至少一个经典解码器,该经典解码器评估示例图像,并且该经典解码器仅在代码可以实际读取的情况下追溯性地将代码图像区域注释为积极示例(Positivbeispiel)。
根据本发明的光电读码器具有光接收元件,该光接收元件用于从接收光生成图像数据,从而用于记录初始图像。光接收器可以是条形码扫描仪的光接收器,例如光电二极管,并且扫描的强度分布被逐行组合成初始图像。优选地,是基于相机的读码器的图像传感器。图像传感器又可以是线型传感器,用于通过组合图像线来检测代码行或平面代码图像,或者图像传感器也可以是矩阵传感器,其中矩阵传感器的记录也可以被组合成更大的初始图像。多个读码器或相机头的组合也是可以设想的。在控制和评估单元中实现根据所描述的实施方式任一项的用于找出代码图像区域的根据本发明的方法,该控制和评估单元本身可以是条形码扫描器的一部分或基于相机的读码器的一部分,或可以作为控制设备连接到读码器上。随后,代码图像区域被传递给外部和/或解码,以读取代码图像区域中的代码的代码内容。
附图说明
下面将基于实施方式并参考附图对本发明的其他特征和优点进行更详细的阐述。在附图中:
图1示出了示例性地在传送带上方安装读码器的示意性的三维概览图示,在该传送带上输送具有待读取的代码的对象;
图2a示出了由读码器记录的示例性初始图像;
图2b示出了在根据图2a的初始图像中使用经典分割方法确定的代码图像区域的第一候选对象;
图2c示出了在根据图2a的初始图像中通过使用神经网络的分割方法确定的代码图像区域的第二候选对象;
图3示出了经典分割方法的示例流程图;
图4示出了使用神经网络的分割方法的示例流程图;
图5示出了结合经典分割方法和使用神经网络的分割方法的结果以找出代码图像区域的示例流程图;
图6a示出了与图2b类似的第一结果图,表示用经典分割方法确定的代码图像区域的第一候选对象;
图6b示出了如图2c所示第二结果图,表示通过使用神经网络的分割方法确定的代码图像区域的第二候选对象;
图6c示出了第三结果图,表示根据图6a的第一结果图和根据图6b的第二结果图的“与”运算;
图7a以没有初始图像的叠加信息的经过清理的图示示出了根据图6a的第一结果图;
图7b示出了从根据图7a的第一结果图的第一候选对象通过连通分量方法生成的连通斑点的图示;
图7c示出了根据图7b的小于阈值大小的那些斑点的第四结果图;
图7d示出了第五结果图,其中将根据图6c的第三结果图与根据图7c的第四结果图进行“或”运算;
图8a再次示出了根据图6b的第二结果图以用于进行直接比较;
图8b再次示出了根据图7d的第五结果图以用于进行直接比较;
图8c示出了第六结果图,其中辨识出根据图8a的第二结果图的排他性的第二候选对象,这些排他性的第二候选对象不位于第一候选对象或小的第一候选对象的位置;以及
图8d示出了第七结果图或总结果图,其中将根据图8b的第五结果图和根据图8c的第六结果图进行“或”运算。
图1示出了在优选应用情况下光电读码器10安装在传送带12上方,该传送带12如箭头16所示输送对象14通过读码器10的检测区域18。对象14在其外表面上携带有代码区域20,该代码区域20由读码器10检测和评估。这些代码区域20只有在附着在顶面或至少从上面可见时才能被读码器10识别。因此,可以与图1中的图示不同地从不同方向安装多个读码器10,以读取比如附着在侧面或下面的代码22,从而实现从所有方向的所谓的全方位读取。在实践中,将多个读码器10布置成读取系统,通常以读取通道的方式进行。这种将读码器10固定在传送带处的应用在实践中非常普遍。然而,本发明首先涉及读码器10本身或者其中实现的用于解码代码的方法,或更具体地说,涉及用于此目的的预处理步骤,因此不能以限制性的方式理解该示例。
读码器10使用图像传感器24来检测被输送的对象14和代码区域20的图像数据,该图像数据由控制和评估单元26通过图像评估和解码方法进一步处理。对于本发明来说,具体的成像方法并不重要,因此可以根据任何本身已知的原理来构造读码器10。例如,无论是借助于线型图像传感器还是扫描方法,每次仅检测一行,其中在后一种情况下,使用像光电二极管这样的简单光接收器作为图像传感器24就足够了。控制和评估单元26将在输送运动过程中检测到的行组合成图像数据。使用矩阵形图像传感器已经可以在记录中检测到更大的区域,其中在这里不管是在输送方向上还是在相对于输送方向横向的方向上都可以对记录进行组合。多个记录依次被记录和/或由多个读码器10记录,例如这些读码器10的检测区域18仅共同覆盖传送带12的整个宽度,其中每个读码器10仅记录整个图像的部分区段,并且通过图像处理(Stitching——拼接)将这些部分区段组合起来。也可以设想,在单个部分区段内仅进行片段式解码,然后将代码片段进行组合。
读码器10的任务是识别代码区域20并读出附于其中的代码。在所记录的图像中识别代码区域20或者与代码区域20对应的代码图像区域也称为分割或预分割,下面基于图2a至图8d进行详细阐述。
读码器10通过接口28输出诸如读取的代码或图像数据的信息。也可以设想,控制和评估单元26未布置在实际的读码器10中(即图1所示的相机中),而是作为单独的控制装置连接到一个或更多个读码器10。然后,接口28也用作内部与外部的控制和评估之间的连接件。控制和评估功能实际上可以以任意方式分布在内部和外部模块上,其中外部模块也可以通过网络或云来连接。所有这些在此不作进一步区分,并且无论具体实施如何,控制和评估单元26都被理解为读码器10的一部分。控制和评估单元26可以具有多个模块,例如FPGA(Field Programmable Gat Array——现场可编程逻辑门阵列)、微处理器(CPU)等。特别地,对于尚未描述的使用神经网络进行的分割,可以使用专门的硬件模块,例如KI处理器、NPU(Neural Processing Unit——神经处理单元)、GPU(Graphics ProcessingUnit——图形处理单元)等。图像数据的处理,特别是分割,可以在读取图像数据期间或在流传输期间即时进行,特别是以开篇提及的EP 3 916633A1中对读码器的神经网络所描述的方式进行。
图2a示出了一个示例性初始图像,该初始图像例如通过根据图1的读码器10记录并且可替代地来自任何其他源。在背景中,人们可以看到一个在前景中带有白色标签的包裹,该标签具有包括多个光学代码在内的许多文字说明。当前待描述的分割的目标是定位具有代码的代码图像区域。
图2b示出了第一经典分割的结果。由此找到的代码图像区域或感兴趣区域(ROI)的第一候选对象被突出显示。它们被指定为第一候选对象,以区别于随后用神经网络引入的第二分割的第二候选对象。可以看到有太多的第一候选对象,其中仍然包括大量的假阳性代码图像区域。
图3示出了经典分割方法的流程图,其结果在图2b中举例说明。经典分割通常基于相对而言简单的计算规则,这些计算规则也可以由FPGA执行。这里显示的经典分割应纯示例性地理解,任何图像处理方法都可以使用本身已知的分割方法,其中经典分割方法的限制在于不使用机器学习方法,特别是不使用神经网络。
在步骤S1中,将初始图像划分成图块,即划分成例如10×10像素或在X和Y方向上也可以不同的其他像素数量的图像区段。然后,可以逐图块地进行进一步的处理,其中可以在多个图块上并行进行。
在步骤S2中,确定每个图块的对比度,因为具有低对比度的均匀区域不包含代码。为了确定对比度,已经可以例如在FPGA上对读入像素的灰度值及其平方即时求和,因为这样就可以根据这些求和值确定平均值和标准偏差,而无需重新访问像素,其中标准偏差是对比度度量。
在步骤S3中,沿着线,优选在两条相互垂直的线的测试十字上,对从亮到暗或从暗到亮的过渡进行计数。这些是代码元素之间的潜在边缘,其中在代码图像区域中预计会有最小数量的代码元素。
在步骤S4中,进行对比度评估,特别是对照对比度阈值进行。丢弃对比度太低的图块,这些图块不是代码图像区域的第一候选对象。该评估已经可以在步骤S2中直接进行,对于以这种方式排除的图块,就不需要确定亮度边缘了。在具有足够对比度的图块中,将亮度边缘的数量与边缘阈值进行比较,并且数量太少的图块也被丢弃。最后,作为特别是用于找出具有条形码的代码图像区域的进一步的准则,可以设想沿着测试十字的两条线对亮度边缘的数量进行评估,以确定是否存在具有大量亮度边缘的首选方向。没有明确的首选方向的图块不包含条形码,并且被丢弃或可能还被评估为散点打印、文本区域或2D代码图像区域。如上所述,图3仅示出了经典分割的一个示例。特别地,可以设想另外的步骤,例如对图块进行后续分析,该后续分析至少将直接相邻的图块包括在内。
图2c示出了使用神经网络进行第二分割的结果。由此找到的代码图像区域或感兴趣区域(ROI)的第二候选对象被突出显示。与经典分割的第一候选对象相比,只有相对少的第二候选对象被确定。第二分割识别出对比度非常低的第二候选对象,而经典分割忽略了该第二候选对象,该第二候选对象甚至用肉眼都无法看到。
图4示出了使用机器学习方法的分割方法的示例流程图,其结果在图2c中举例说明。神经网络,特别是深度神经网络或者卷积神经网络(Convolutional Neural Network,CNN),特别适合于此。
在步骤S5中,初始图像被送入神经网络的输入层。对图3和图4阐述的两种分割可以依次进行,也可以彼此并行进行。
在步骤S6中,神经网络根据输入在多个层S7中生成代码图像区域的第二候选对象(推断)。仅示例性地示出三层S7,神经网络的架构不应受限制,并且常见的工具,如前向链接和后向链接(前馈、反馈或递归)、省略层(ResNet——残差网络)等,都是可能的。卷积网络的特征是卷积层,这些卷积层有效地将初始图像或者在较深层中将前一层的特征图与局部滤波器进行卷积。在此,由于滤波器的移位步长较大(Strided Convolution——跨步卷积、Pooling Layer——池化层),可能会出现分辨率损失(DownSampling——下采样)。为了能够以有限的资源足够快速地进行推断,期望降低分辨率,特别是降低早期层中的分辨率。与图示相反,神经网络也可以包括没有卷积或池化的层。
基于具有已知代码图像区域的示例图像预先训练神经网络(SupervisedLearning——监督学习)。这样的示例图像可以手动进行评估(Labelling——帖标签,Annotating——做注释)。另一方面,可以使用经典解码器连同经典分割来评估示例图像,并根据实际可读的代码追溯性地识别代码图像区域。特别是在离线模式下没有时间压力,这样的经典手段非常强大,从而可以自动生成大量的训练示例。
在步骤S8中,神经网络已经完成其推断,并且其输出端处的特征图提供了所寻求的代码图像区域的第二候选对象。
在关于图3阐述的经典分割和/或关于图4阐述的使用神经网络进行分割之后,仍然可以进行精细分割。优选地,以结果图(热点图)的形式确定第一候选对象和第二候选对象。这是对应于图块或神经网络输出端处的最后一个特征图的分辨率图像,并且该分辨率图像的像素因此代表更高分辨率的初始图像的某一区域。在二进制结果图的情况下,像素指示在初始图像的代表的图像区段中是否存在代码图像区域。可替代地,像素的数值可以指示对代码和/或特定代码类型的概率评估(Scoring-Wert——评分值)。第一候选对象形成第一结果图,第二候选对象形成第二结果图。如还参照图5所阐述的,将两个分割的结果融合,由此产生的代码图像区域也可以以其他结果图的形式表示。
可选地,下游算法可以对结果图进行操作,即在单个、多个或所有结果图上进行操作。一个示例是根据条形码的首选方向区分条形码。另一个示例是精细分割。在此,代码图像区域不再以图块或特征图的粗略分辨率来确定,而是以更精细的分辨率直至初始图像的原始分辨率来确定。这可以与各自的解码尝试交互地迭代进行,因为一旦实现了读出代码信息的目标,进一步细化分割本身就只是目标了。相反,应通过尽可能无错误的分割来避免精细分割和解码器通过各种尝试以复杂的方式工作(即使在处理过的图像区段中实际上根本没有代码)。
为了实现所找出的代码图像区域的低错误率,对两个分割的结果进行融合。这里的出发点是,这两种分割显示了完全不同的错误行为。经典分割对其图块仅评估狭窄限定的局部区域。经典分割评估精细的结构,因此非常敏感。这可以是部分参数化的,但也需要手动设置。一方面,期望高的灵敏度,因为这意味着即使是小的代码图像区域也能被识别到。另一方面,经典分割可能很难区分类似代码的背景结构(如字体、标识或包装带)和实际的代码区域。因此,产生了相对较高的假阳性错误数。
第二分割基本上是对整个初始图像进行评估。根据设计方案(Dilution——稀释、Strides——跨步、Pooling——池化),通过某些卷积层降低分辨率,这在输出端处的特征图中隐含地导致了与图块相对应的分辨率。然而,来自更大邻域的信息被纳入这些特征中。区分背景结构与实际代码区域的能力很强,在第二候选对象中几乎没有假阳性的代码图像区域。即使是低对比度的代码以及不同标记技术中的代码(例如,金属压印的代码)也能可靠地被识别。然而,在层中分辨率降低得越早(并且由于资源有限,分辨率降低通常是很早的),忽略精细结构的风险就越大。因此,神经网络容易产生假阴性错误,即使这不是神经网络固有的问题,而是由于在真实硬件上实现的读码器应用的早期分辨率降低所致。
根据本发明,通过共同评估各个分割的结果,利用两个分割的互补性错误行为,来找出代码图像区域。现在将阐述这种智能融合的实施方式。优选地,融合在结果图的层面上进行,并以这种方式进行描述,但是在其他表示中同样可以进行相应的过程。在此优选地,结果图被二值化,即在结果图的像素中表明在该位置是否确定了代码图像区域或代码图像区域的候选对象。可替代地,结果图还可以包含相应的概率和/或分类信息(如代码类型)的评分值。
图5示出了将经典分割方法和使用神经网络的分割方法的结果结合以找出代码图像区域的示例性流程图。图6a至图8d中纯示例性地图示了对图2a的初始图像的处理的流程。
在步骤S10中,如参考图3示例性所描述的,使用第一经典分割确定代码图像区域的第一候选对象。应用于根据图2a的初始图像,得到图6a中所示的第一结果图。这里,纯粹为了说明,初始图像的图像信息仍然被叠加在此,该图像信息不是第一结果图的一部分。图6a对应于图2b。
在步骤S11中,如参照图4示例性所描述的,通过使用机器学习方法(特别是神经网络)的第二分割确定代码图像区域的第二候选对象。应用于图2a的初始图像,得到图6b中所示的第二结果图。图6b对应于图2c。
在未示出的可选步骤中,可能需要对第一结果图和/或第二结果图进行归一化。根据经典分割和神经网络层的下采样中图块的大小,两个结果图的像素可能代表不同大小的图像区域。因此,其中一个结果图或两个结果图被重新缩放,以使结果图具有相同的分辨率。
在步骤S12中,现在开始对在步骤S10和S11中找到的第一候选对象和第二候选对象进行融合,特别是对第一结果图和第二结果图进行融合。优选地,完整地贯穿后续的链,然而,每一步骤通常都被视为可选的,那么融合的结果只是部分地达到了期望的目标,但这仍然明显好于唯独经典分割或仅使用机器学习方法的分割。
可以列出四个目标,这四个目标最好共同实现,但只实现其中一部分目标就已经显示出优势了。第一目标在于,不丢失只有敏感的第一经典分割才能找到的小的代码图像区域。第二目标在于,不丢失只有使用机器学习方法的第二分割才能专门找到的更大的代码图像区域。第三目标在于,避免多个代码图像区域聚集在一起。第四个目标在于,尽可能多地排除假阳性的代码图像区域。
在第一近似中,在步骤S12中,对步骤S10的第一候选对象和步骤S11的第二候选对象进行逻辑“与”运算。在二进制的第一结果图和第二结果图的层面上,这是一个逐像素的逻辑“与”运算,在其他表示中,应当设置双重条件,即两个分割都确认各自的代码图像区域。
图6c在第三结果图中图示了步骤S12的结果,该第三结果图通过对根据图6a的第一结果图和根据图6b的第二结果图进行“与”运算而生成的第三结果图中的步骤S12的结果。优选地,第一结果图和第二结果图单独存储,以便在以后的步骤中仍然可供使用。可以看出,在第三结果图中,与上述第一目标相反,第一结果图中的第一候选对象的大部分已经丢失。此外,与第二目标相反,第二结果图中的两个第二候选对象中的一个候选对象也已经丢失。这例如是经典分割的对比度标准所剔除的低对比度、大面积的代码。上述第三目标和第四目标已经实现。
当前可选地,如果结果图不是纯二进制的并且包含评分值,则可以将增加的评分值分配给在第三结果图中找到的代码图像区域,因为这里有两个分割的确认。这些评分值可以被传递给稍后生成的结果图,或者也可以在稍后生成的结果图中继续计算。下游的解码器可以利用这一点来进行优先级排序,以便优先评估最有希望的代码图像区域,或者不会在不太有希望的代码图像区域中损失太多的计算时间。
在步骤S13至S15中,为了追求第三结果图的第一目标,即对两个分割进行“与”运算,现在要添加来自经典分割的小的第一候选对象。图7a现在以没有初始图像的叠加图像信息的经过清理的图示再次示出了第一结果图。
例如,在步骤S13中,首先在连通分量算法的帮助下,补充第一候选对象(即,所谓的斑点)以形成连通分量。在第一结果图的连通像素代表同一代码图像区域的说明性假设下,斑点描述了连通的像素组。根据图7a的第一结果图的斑点在图7b中示出。
在步骤S14中,将尺寸滤波器应用于斑点,以便特别地仅保留小的第一候选对象。例如,尺寸可以由面积、像素数量、边缘长度、直径或其他度量来确定,并且可以与阈值大小进行比较。这种尺寸滤波器背后的动机是,较大的代码图像区域已经被第二分割可靠地检测到,因此已存在于第三结果图中。不应考虑较大的斑点,以避免歪曲第二结果图的和因此第三结果图的在这方面被认为是更有价值的信息。经适当过滤的斑点或小的第一候选对象形成如图7c所示的第四结果图。
在步骤S15中,小的第一候选对象被传送到先前的结果中,即(原始的)第一候选对象和第二候选对象的“与”运算中。特别地,这可以理解为对根据图6c的第三结果图和根据图7c的第四结果图进行“或”运算,由此产生图7d中所示的第五结果图。第五结果图在实现中可以是修改后的第三结果图,第三结果图和第五结果图不一定要单独存储,并且第四结果图现在也不一定需要。只要结果图包含评分值,并且不是二进制的,就可以给添加的小的候选对象一个调整的评分值。第一目标现在已经实现。
在步骤S16至S18中,为了追求第二目标,将仅通过使用机器学习方法的第二分割排他性地确定的第二候选对象添加到先前的结果中。例如,这些是被经典分割所遗漏的低对比度代码。优选地,一方面的步骤S13和S15和另一方面的步骤S16至S18累加应用,但可以在顺序上互换或仅单独应用。
为了更好地理解步骤S16至S18的初始情况,图8a再次示出了图6b的第二结果图以用于进行比较,并且图8b再次示出了先前的结果,即根据图7d的第五结果图。
在步骤S16中,例如借助连通分量算法从第二候选对象生成连通分量或斑点。这类似于步骤S13,但现在针对的是第二候选对象或者第二结果图。在所示的示例中,由于少数第二候选对象明确分开,此步骤不会明显地改变第二结果图,因此斑点没有在另一附图中单独示出。在内部一定是有区别的,因为现在已知有两个候选对象。
在步骤S17中,确定每个斑点的位置,例如其重心。然后,检查每个斑点以确定是否已经在其位置处识别到代码图像区域,即相应的像素已被设置在根据图8b的第五结果图中的该位置处。在已知代码图像区域的位置处的第二候选对象被丢弃。只有在新位置处的第二候选对象才是排他性的第二候选对象,即那些只有使用机器学习方法的分割才发现的第二候选对象,并且只有这些第二候选对象才会被保留。图8c说明了这一步骤。下面的第二候选对象已经是已知的并且将被丢弃,只有右上角被圈出的第二候选对象位于新的位置处,并且是排他性的第二候选对象。可以生成第六结果图,其只包括排他性的第二候选对象。因此,与图8c不同的是,在第六结果图中,底部非排他性的第二候选对象被删除。
在步骤S18中,将排他性的第二候选对象添加到先前找到的代码图像区域中。特别地,这可以理解为对根据图8b的第五结果图与第六结果图进行“或”运算,其中第六结果图进包括根据图8c的被圈出的排他性的候选对象。这就产生了如图8d中所示的第七结果图或总结果图,当然围绕排他性的第二候选对象周围的说明性环不属于结果图。
步骤S16至S18确保上述第二目标也得以实现,即由使用机器学习方法的第二分割找到的代码图像区域没有丢失。乍一看,似乎在根据图8a的第二结果图和根据图8b的第五结果图之间进行简单“或”运算就足够了。然而,这将违背第三目标,即被经典分割正确分离的小的代码图像区域可能会再次合并。这可以很好地理解为所谓的堆叠码,即彼此之间只有很小的间隙的多个重叠的条形码。第一分割可以分离条形码。第二分割可能已经在步骤S11中开始时就已经识别出这是个公共区域,或者稍后通过在步骤S16中扩大成斑点而仅识别为公共区域。现在与第三目标相反,“或”运算将条形码组合成单个代码图像区域。根据步骤S16至S18的过程防止了这种情况的发生,因为在堆叠码的位置处的第二候选对象或其斑点不是排他性的第二候选对象。
根据图8d的总结果图清楚地表明,在根据“与”运算的两个分割从一开始就一致的代码图像区域上,第一分割的小的代码图像区域也被保留,同时排除了大面积的假阳性的代码图像区域,而不丢失第二分割的低对比度排他性的第二候选对象。因此,不会遗漏任何代码,假阴性错误率极低,在示例中为零。剩下的假阳性的代码图像区域较少,而它们也很小。主要的问题将是排除的假阳性的大的代码区域,因为这样大的字体区域、标识、图形和纹理的计算量特别大,而且大量的努力最终也将是徒劳的。
作为可选的进一步步骤,可以输出地址区域和文本区域,以便例如将地址区域和文本区域传递给下游的文本识别(OCR,Optical Character Reading——光学字符读取)。这里的想法是,使用机器学习方法的第二分割实际上只对光学代码选择性地做出反应,而不是对字体做出反应,这在现实中得到了很好的实现。因此,所有的第一候选对象都是潜在的文本区域,而这些文本区域不同时是第二候选对象。只要第一分割基于首选方向识别到条形码(例如,在步骤S3和S4中),则这样的区域也可以被排除。在具有结果图的实现中,这可以被描述为第一结果图或已经清除条形码的第一结果图与第二结果图的“与-非”运算。然后,可以删除小的区域,因为文本经常占用一定的面积。文本区域可以以OCR结果图的形式来处理和输出。可以为文本区域计算出一个定向框架。由于代码和文本通常是相互对齐的、相互定向的,并且在内容上是匹配的,因此对齐仍然可能基于已经进行的解码得到纠正,或者可以设想,从相邻代码推断出文本区域的大小、方向和内容。
对于参考图5所述的将两个分割的结果融合的特别有利的实施方式可替代地,还可以设想另外的实施方式。因此,第一候选对象和第二候选对象只能进行“与”运算,因而可以说,根据图5的方法在步骤S12被中止。由此,只剩下可靠的代码图像区域,这些区域可以在较短的解码时间内被处理,但有忽略代码,特别是小代码的风险。例如,在那些无论如何都只期望大代码的应用中,这是完全可以接受的。可替代地,第一候选对象和第二候选对象只能进行“或”运算,这就使根据图5的方法在步骤S12中用“或”替换“与”来修改,然后中止。这提供了最大的代码图像区域,并且如果有足够的解码时间可用并且希望特别高的读取速率,则是有利的。在另一可替代方案中,第二分割的结果只能用作针对假阳性的代码图像区域的滤波器。例如,如果在第一经典分割之后精细分割单独产生太多的代码图像区域,则排除(特别是动态地排除)未被第二分割确认的代码图像区域。在又一可替代方案中,并行或依次处理两个分割的结果,直到精细分割和解码。这是极其耗费运行时间的,但保证了最高的读取速率。
所述可替代方案允许对可用解码时间和相应的目标运行时间进行控制。可以按所需解码时间和实现的读取速率的升序应用以下组合:纯“与”运算、仅使用第二分割的代码图像区域、参照图5阐述的融合、仅使用第一分割的代码图像区域、可能用第二分割动态过滤、仅使用第一分割的代码图像区域、纯“或”运算、对第一分割和第二分割的单独结果进行双重评估。
Claims (15)
1.一种用于在携带代码的对象(14)的初始图像中找出代码图像区域的计算机实现的方法,其中在第一分割方法中使用没有非机器学习的经典图像处理方法确定代码图像区域的第一候选对象,
其特征在于,
在第二分割方法中使用机器学习确定代码图像区域的第二候选对象,并且合并所述第一候选对象和所述第二候选对象,以找出所述代码图像区域。
2.根据权利要求1所述方法,其中,所述第一分割方法生成第一结果图和/或所述第二分割方法生成第二结果图,其中,结果图是分辨率低于所述初始图像的图像,所述图像的像素具有关于在该像素的位置处是否识别到代码图像区域的信息。
3.根据权利要求1或2所述方法,其中,在找出候选对象之后,进行精细分割,其中所述代码图像区域被更精细地限定,特别是以所述初始图像的分辨率更精细地限定。
4.根据前述权利要求中任一项所述的方法,其中,代码图像区域被视为位于所述初始图像中确定了第一候选对象和第二候选对象的位置,或者可替代地,位于确定了第一候选对象或第二候选对象的位置。
5.根据前述权利要求中任一项所述的方法,其中,补充所述第一候选对象以形成连通的图像区域,特别是借助连通分量方法来进行补充,并且其中,仅保留小于阈值大小的小的第一候选对象,并且特别地,所述小的第一候选对象被附加地视为代码图像区域。
6.根据前述权利要求中任一项所述的方法,其中,补充所述第二候选对象以形成连通的图像区域,特别是通过连通分量方法进行补充,并且其中,仅保留排他性的第二候选对象,所述排他性的第二候选对象的位置与已经找出的代码图像区域的位置不一致,并且特别地,所述排他性的第二候选对象被附加地视为代码图像区域。
7.根据前述权利要求中任一项所述的方法,其中,为所述第一候选对象、所述第二候选对象和/或代码图像区域确定一数值,所述数值指示在所代表的位置处在初始图像中识别到光学代码(20、22)的可靠程度。
8.根据前述权利要求中任一项所述的方法,其中,确定1D代码的第一候选对象、2D代码的第一候选对象、1D代码的第二候选对象和/或2D代码的第二候选对象。
9.根据前述权利要求中任一项所述的方法,其中,将不同时是第二候选对象的第一候选对象视为所述初始图像内的文本图像区域。
10.根据前述权利要求中任一项所述的方法,其中,所述第一分割方法确定被划分成图块的初始图像中的所述第一候选对象。
11.根据前述权利要求中任一项所述的方法,其中,所述第一分割方法具有对比度确定,其中所述第一候选对象必须具有最小对比度。
12.根据前述权利要求中任一项所述的方法,其中,在所述第一分割方法中,沿相互交叉的两条线对亮度边缘进行计数,以根据各自的亮度边缘数量确定首选方向,并且仅在首选方向的情况下识别1D代码的第一候选对象,并且特别地,在其他情况下识别2D代码的第一候选对象。
13.根据前述权利要求中任一项所述的方法,其中,第二分割方法具有神经网络,特别是深度卷积网络。
14.根据权利要求13所述的方法,其中,借助监督学习,基于示例图像来训练所述神经网络,特别地基于没有机器学习方法的分割方法和/或解码方法的结果评估所述示例图像。
15.一种光电读码器(10),具有:至少一个光接收元件(24),其用于从接收光生成图像数据;以及控制和评估单元(26),在所述控制和评估单元中实现在携带代码的对象(14)的初始图像中找出代码图像区域的方法,特别是实现了根据前述权利要求中任一项所述的方法,其中代码图像区域的第一候选对象在第一分割方法中使用没有机器学习的经典图像处理方法来确定,
其特征在于,
在所述控制和评估单元(26)中所实现的方法中,代码图像区域的第二候选对象在第二分割方法中使用机器学习来确定,并且所述第一候选对象和所述第二候选对象被合并,以找出所述代码图像区域。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22157758.8A EP4231195A1 (de) | 2022-02-21 | 2022-02-21 | Auffinden von codebildbereichen in einem bild eines codetragenden objekts |
EP22157758.8 | 2022-02-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116630946A true CN116630946A (zh) | 2023-08-22 |
Family
ID=80446194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310134930.5A Pending CN116630946A (zh) | 2022-02-21 | 2023-02-17 | 在携带代码的对象的图像中找出代码图像区域 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230267293A1 (zh) |
EP (1) | EP4231195A1 (zh) |
JP (1) | JP2023121722A (zh) |
KR (1) | KR20230125749A (zh) |
CN (1) | CN116630946A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3916633A1 (de) * | 2020-05-25 | 2021-12-01 | Sick Ag | Kamera und verfahren zum verarbeiten von bilddaten |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10137093A1 (de) | 2001-07-30 | 2003-02-13 | Sick Ag | Verfahren zum Erkennen eines Codes und Codeleser |
EP3428834B1 (de) | 2017-07-12 | 2019-06-12 | Sick AG | Optoelektronischer codeleser und verfahren zum lesen von optischen codes |
US10650211B2 (en) | 2018-03-28 | 2020-05-12 | Datalogic IP Tech, S.r.l. | Artificial intelligence-based machine readable symbol reader |
DE102018109392A1 (de) | 2018-04-19 | 2019-10-24 | Beckhoff Automation Gmbh | Verfahren zum erfassen optischer codes, automatisierungssystem und computerprogrammprodukt zum durchführen des verfahrens |
US11720766B2 (en) * | 2018-12-28 | 2023-08-08 | Packsize Llc | Systems and methods for text and barcode reading under perspective distortion |
EP3916633A1 (de) | 2020-05-25 | 2021-12-01 | Sick Ag | Kamera und verfahren zum verarbeiten von bilddaten |
-
2022
- 2022-02-21 EP EP22157758.8A patent/EP4231195A1/de active Pending
- 2022-12-16 JP JP2022201590A patent/JP2023121722A/ja active Pending
-
2023
- 2023-02-10 US US18/108,243 patent/US20230267293A1/en active Pending
- 2023-02-14 KR KR1020230019365A patent/KR20230125749A/ko unknown
- 2023-02-17 CN CN202310134930.5A patent/CN116630946A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230267293A1 (en) | 2023-08-24 |
EP4231195A1 (de) | 2023-08-23 |
JP2023121722A (ja) | 2023-08-31 |
KR20230125749A (ko) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tensmeyer et al. | Document image binarization with fully convolutional neural networks | |
CN107617573B (zh) | 一种基于多任务深度学习的物流编码识别和分拣方法 | |
KR102010494B1 (ko) | 광전자 코드 판독기 및 광학 코드 판독 방법 | |
EP3576008B1 (en) | Image based lane marking classification | |
US5787194A (en) | System and method for image processing using segmentation of images and classification and merging of image segments using a cost function | |
US20170124418A1 (en) | System and a method for the detection of multiple number-plates of moving cars in a series of 2-d images | |
JP7221329B2 (ja) | カメラ及び画像データ処理方法 | |
JP2010123090A (ja) | 文字列認識方法及び文字列認識装置 | |
JP2019220129A (ja) | 交通標識を認識するためのシステムおよび方法 | |
CN116630946A (zh) | 在携带代码的对象的图像中找出代码图像区域 | |
CN108171098B (zh) | 一种条码检测方法及设备 | |
Babbar et al. | A new approach for vehicle number plate detection | |
CN111259893A (zh) | 一种基于深度学习的智能工具管理方法 | |
Suh et al. | Fusion of global-local features for image quality inspection of shipping label | |
Pirgazi et al. | An efficient robust method for accurate and real-time vehicle plate recognition | |
CN113228049B (zh) | 用于将奶分类的奶分析仪 | |
Satti et al. | R‐ICTS: Recognize the Indian cautionary traffic signs in real‐time using an optimized adaptive boosting cascade classifier and a convolutional neural network | |
Laroca et al. | Automatic license plate recognition: An efficient and layout-independent system based on the yolo detector | |
Chandra et al. | An automated system to detect and recognize vehicle license plates of Bangladesh | |
KR20030005342A (ko) | 화상에서의 객체 탐색 방법 | |
Cyganek | Real-time detection of the triangular and rectangular shape road signs | |
US20160350928A1 (en) | System And Method For Reading Machine Readable Codes In Transportation And Logistic Applications | |
Amatya et al. | The state of the art–Vehicle Number Plate Identification–a complete Survey | |
US20030215113A1 (en) | Region of interest identification using region of adjacent pixels analysis | |
US20240028847A1 (en) | Reading an optical code |
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 |