视觉检测设备OCR 和 OCV之间的区别

2020-05-30 11:19:01 0

视觉检测设备OCR 和 OCV之间的区别

 
简介
1.光学字符识别(OCR)和光学字符验证(OCV)之间是有区别的。在OCR的情况下,将根据与字符模式数据库的比较来识别单个字母数字字符。换句话说,将识别出的字母数字字符的模式与数据库中每个字符的模式进行比较。选择最匹配的模式作为当前识别的字符。在OCV的情况下,对于特定的字母数字模式是什么有先验知识,并且系统实质上是在验证或验证当前字符是否正确。虽然验证和识别之间存在细微的差异,但意义重大。

2.对于涉及光学字符识别(OCR)或光学字符验证的应用,有一些“经验法则”:

3.最小字符的笔划宽度应至少为三个像素宽
一个典型的字符应覆盖约20-25像素乘以20-25像素的区域
字符之间的间距应为两个像素
字体样式应为粗体
那么,这里的关键问题是一个人想要读取的字符串的长度。在一个字符上有20个像素,字符之间有两个像素间距时,字符串的最大长度应在22个字符的数量级上,以适合500像素排列的相机。这假定了可重复的定位,因此在视野内不提供字符串位置。在光学字符识别/验证应用中,希望使用粗体字体。通常,在基于机器视觉的实现中,在给定的时间只能处理一种字体样式,这也是事实。

4.另一个经验法则是,最佳的OCR系统的正确读取率约为99.9%。换句话说,每千个字符中有一个将被误读或“未读”。应该评估在给定应用程序中的影响。例如,如果每分钟要读取300个对象,并且0.1%被分类为“不读取”,则在一小时内您将有大约20种产品要手动读取。这可以接受吗?这是最好的情况。最糟糕的情况是他们被误读了。

5.在开发OCR / OCV应用程序时,还必须理解许多其他应用程序问题。必须定义数据集中的字母数字数量。另外,必须理解可能期望的不同字体样式的数量。是否必须同时处理大小写字符?字母数字,大写和小写以及字体样式的组合可能最终决定代表每个相应字母数字的数据库中必须存在的模式数量。

6.必须理解所有可能影响场景的变量。位置变量可能包括零件位置,字符字段位置以及最终在字段内的特定字符位置。位置变量可以同时具有平移和旋转性质。这可能意味着在使用模式识别算法读取字母数字之前,机器视觉系统需要“查找例程”。位置不确定性的程度可能决定优化性能所需的特定算法。对于所有密集用途,机器视觉系统应在旋转和过渡上对用户尽可能透明。

7.如果由于打印字母数字的平面相对于必须安装相机的位置的变化而存在“ z轴”位置不确定性,则系统可能还必须保持比例不变。给定字母数字出现的平面不能保持与相机平面平行,这也可能意味着系统具有处理透视误差的能力。如果字符串恰好位于圆柱或球形零件上,则必须将其传送给投标的潜在机器视觉公司,因为系统必须处理字符图像捕获中的任何变形。

8.具有字母数字字符串的物体的表面特性可能会有变化,应将其传达给潜在投标人。例如,由于制造(不同的机床,刀具等)的变化,或者由于正常暴露于大气而随着时间的流逝,零件的表面光洁度和/或反射特性可能会在零件内部或零件之间变化。零件的颜色可能因批次而异,甚至在给定批次内也不一样。如果色相不变,则颜色的饱和度或亮度水平可能会发生变化。可能存在其他零件属性,这些属性可能是包围字母数字字符串的变量,例如孔或其他切口。系统可能必须容忍可接受的物理条件;例如零件尺寸公差,表面划痕,毛刺等。

9.毫无疑问,字符的笔划宽度,字符高度,字符到字符的间距以及字母数字字符串的有效对比度会因字符的打印方式而有所不同。这种对比度可以从一个字符变化到同一部分上的另一个字符,既可以在一个特定的字符上任意变化,也可以随零件而变化。这些可能是由于制造过程,印刷过程,零件或原材料供应商以及后期制造和应用处理而引起的变化。

10.交付的任何系统都应足够强大,以处理“混淆对”,而不管预期的所有外观变量如何。换句话说,系统不应将“ B”与“ 3”或“ 8”混淆。字母“ I”带有“ 1”;'G'与'6'; 字母“ O”,数字为零;'6'和'9'或'3'和'8'; 或应用程序中会遇到的字母数字的任何其他组合。

11.尽管由于打印不当或由于处理不当而导致某些字符笔迹丢失,但系统可能应该能够可靠地读取字符。对于部分打印的所有条件,这可能是不可能的要求。因此,向供应商建议在这种情况下,系统应该在出现不确定性的情况下发出“未读”信号,而不是冒着被误读的信号。

12.这些都是在邀请供应商竞标之前应在全面规范中定义的所有注意事项。为了提高可靠性,应指定一种字体样式。它应该是尽可能粗体的字体样式,并具有一组字母数字,每个字母数字都在几何上进行了唯一定义,以提高系统的可靠性。该规范应同时包括错误接受(误读)和错误拒绝(未读)速率。


13.至少有四种基本的OCR方法:
基于相关性的,基本上是几何形状的评分和匹配
最近邻分类器/决策理论,基本上使用特定的几何特征/特征集并基于与特定多维模型的接近度进行匹配
句法的或结构的,本质上使用特定的特征以及这些特征之间的关系
神经网络/基于演示的模糊逻辑分类和基于正确决策的强化。
有些系统出厂时已预先安装了字体,这些字体已经过预先培训:例如,半字体,OCR-A,OCR-B。有些软件可以在工厂接受使用特定字体样式的培训。其他要求供应商训练新的字体样式。

不同的执行可能会产生不同的性能,因此很难说一种方法是最优越的。除语法方法外,所有方法都是特定于字体的。要求系统接受培训以同时读取多个字体样式,这会加剧提供正确读取的能力,因为更多字符可能会成为混乱对的受害者。当涉及多字体应用程序时,通常认为语法方法是最可靠的。通过这种方法,可以使用通常与字体样式无关的特定字符特征和特定关系。

例如," E”的特征可能是:如果一个向量通常向东,另一个向量向南,并且如果该向量在向南的方向与一个相交点相交,则从开始,在该向量也向东方向和向南的向量以及向南的向量与向东的向量相交,则字符为“ E”。

该方法要求根据矢量和弧及其方向唯一定义每个字符。尽管可能存在字体样式,但无论它们的字体样式如何,通常都会存在这些条件,但就其性质而言可能会引起混淆。在任何应用中都应避免这些情况。

没有公司提供有关阅读准确性的数字。所有人都正确地认为阅读准确性与许多因素有关:打印质量,应用条件(例如照明均匀性/一致性,字体样式和混淆对的可能性),系统训练得如何,字符间距的一致性等等。在良好的条件下,人们可以期望99.9%的读取准确性。给定更多的“读取”时间,某些系统要求99.96%的读取精度。

通常,系统具有多种读取字符的方法。如果可以高置信度可靠地读取字符(由系统确定),则仅启用一组算法。如果系统确定了给定字符的不确定程度,则更好的系统可以启用另一组算法来读取该特定字符。如果仍然令人担忧,则某些系统可以启用更多的识别算法。然后,最终决定可以基于“投票”,即不同方法表明同一性格导致有关该性格的决定的次数。即使只有一套字符识别算法,系统也可能具有通过读取5至10次字符来“投票”的能力。例如,如果十次,

通常可以通过在训练过程中建立有利于“不读”的条件来控制错误读。在“不读”的情况下,系统通常会以突出显示的方式显示未识别的字符,因此操作员可以通过键盘确定并输入正确的字符。

还可以通过在字符串中添加校验和数字来减少错误读取。该数字必须与某些规则读取的另一个数字一致:例如,读取的所有数字的总和的最后一位必须与校验和的编号相同。

比较读取速率也不是一件容易的事。大多数公司都不愿意在读取率或吞吐量上增加太多。在大多数情况下,可以假定要求的读取速率基于最佳条件。在大多数情况下,阅读之前还必须增加与拍照和查找字符串/查找字符相关的时间。同样,这些取决于打印和字体类型的质量以及是否必须处理旋转和平移。

14.照明
对于OCR,照明非常关键。照明对于实现严格的OCR可能与算法一样重要。在OCR应用中,照明产生字符串的二进制图像。字符在深色背景上显示为白色,反之亦然。理想地,照明产生一致的二进制图像。结果,所使用的算法通常在二进制图像而不是灰度图像上运行,这加速了处理和读取。

15.关于光学字符验证的评论
除了工程细节之外,还有两个与光学字符验证(OCV)应用有关的基本问题。它们是:通过验证字符正确对应用程序满意吗?还是系统必须能够确保字符质量的要求-打印质量检查(PQI)。公司采用这种方式的方式并不相互包含。

正如我们在有关OCR的评论中所观察到的,在OCV应用中,照明至关重要。目的是产生二进制图像。OCV的大多数方法都利用了图像是二进制的事实。许多提供GPMV系统的人都提供了一种二进制关联方法来验证字符。只要可以确保二进制状态,此方法通常会产生足够的结果来验证正确的字符。

一些系统使用灰度模板作为建立角色图案和随后进行比较的基础。相关例程使用匹配度或匹配分数作为确定字符是否正确的基础。基于灰度模板,它可以容忍影响灰度的条件,从而有效地将其标准化。因此,这种情况不太可能引起错误的拒绝。

一些这样的条件包括:印刷对比度本身,源自不同背景颜色的印刷对比度差异,笔划宽度上对比度的变化,源自场景之间,场景之间的照明不均匀性的对比度变化等。

另一方面,形状评分可能不是检查字符质量的最佳方法。如果条件变化会影响字符笔划的形状,但在可读性方面仍然可以接受(笔划变粗或变细,轻微擦拭),则建立可以容忍这些条件的形状匹配分数可能会影响字符验证的可靠性。通过放宽形状得分匹配标准以容忍反映适度字符退化但仍然清晰易读的字符的条件,甚至可能会出现不同字符的形状变得可接受的情况,或者可能产生可能会被误解的字符的条件对于系统。

一个特别需要关注的条件是处理喷墨打印中的笔划宽度变化。解决此问题的一种方法是通过训练系统接受一个字符来“愚弄”系统,前提是该系统与三种字体样式之一中的任何相似字符匹配。字体样式将对应于:粗,细和标称笔划宽度。这种方法的两个缺点是:最有可能使系统对质量问题和速度的容忍度更高。每个比赛得分比较需要花费有限的时间;与三个匹配相关的时间是进行单个相关的时间的三倍。

某些系统实际上在操作员设置期间执行光学字符识别(OCR),但在运行模式下进行光学字符验证(OCV)。在设置过程中,系统基于将灰度模板与字体库中的每个字符相关联来读取每个字符。字体库中匹配得分最高或与正在读取的字符相关性最高的字符被视为已读取的字符。这将显示在屏幕上,以供操作员验证正确性。在运行模式下,系统会知道每个位置都有哪个字符,因此仅实际执行“匹配”或验证。

从当前印记派生的灰度模板与为当前训练集中的特定位置存储的灰度模板匹配。只要匹配数(或相关数)大于先前确定的值(在1-1000的范围内,其中1000是最佳匹配),系统就会确认该字符为正确字符。

验证可能构成“混乱对”的字符不仅需要匹配分数,还需要其他逻辑才能可靠。一种方法是建立可能引起混淆的感兴趣区域(ROI),并寻找对比度变化。另一种方法包括根据涉及的字符集自动启用的不同工具。因此,例如,虽然前一种方法会沿“ B”的左笔触在三个位置应用“感兴趣区域”(ROI),这些区域是将其与“ 8”或“ 3”区分开的区域并寻找对比度变化,后一种方法将使用方向矢量属性-沿着边界的每个像素处的灰度变化方向。人们认为这更加可靠。

以下讨论回顾了其他两种方法的属性。提供OCV / PQI系统的其他大多数公司都体现了所审查的一种或多种技术。因此,该讨论实际上比所建议的更为笼统,并且该讨论的目的是讨论文献中发现的方法之间的差异。

尽管一些公司使用二进制模板作为他们进行字符比较的基础,但它们各自的执行方式可能会大不相同。例如,在一种情况下,该方法基于使用标称值周围的灰度区域作为二进制图像的基础。即,将具有例如在60-120之间的灰色阴影值的所有像素分配给黑色或前景区域。超出该范围的所有像素均被分配为背景或白色区域。标称值本身是自适应的。也就是说,它使用当前场景内ROI中的灰度分布来校正该值。

另一种方法可能是建立一个阈值,高于该阈值所有像素均为白色或背景,低于该阈值所有像素为黑色或前景。该方法使用自适应阈值来补偿光水平变化。然后,它基于执行相关例程以针对最初确定的名义阈值和围绕名义的10个灰色阴影的每个阴影建立最佳字符匹配。这些都是在操作员设置期间自动执行的。但是,阈值可能无法根据场景进行调整。

方法之间的另一个基本区别可能是窗口搜索例程的基础。在一种情况下,它可能基于斑点分析,而在另一种情况下,它可能基于标准化的灰度相关性。斑点分析基于字符像素字符串的边界框分布,并定位其质心并相应地校正到参考位置。这种方法将对可能太靠近要检查的字符串的任何文本,图形或多余的“噪声”敏感。

找到区域后,一种方法可能是在特定字符上寻找特定特征以执行精细对齐。在另一种方法中,精确对齐通常基于一个字符(“灰度边缘模板”)使用相关匹配。通常,这是在操作员设置期间自动完成的,并且系统包含某些规则,以标识应使用哪个字符的哪个字符作为相关模板的基础。

在对图像进行二值化之后,一个系统可能会执行侵蚀操作,然后基于每个子区域对与学习的模板进行的前景和背景比较来做出决策。在另一个系统中,在进行图像减法之前,除了较大的字符串对齐之外,还逐字符进行对齐。随后可以进行单个像素腐蚀以消除多余的像素,然后进行另一种腐蚀,其像素宽度基于在工程设置过程中建立的粗/细设置。旨在补偿笔划宽度的变化。

在某些方法中,该决定是基于单个子区域的结果,而在其他方法中,该决定是基于与特定字符模板减法相关的像素残差结果。在这两种情况下,拒绝的“灵敏度”都可能基于预先确定的变化像素百分比。一些实现还自动拒绝对比度小于操作员培训期间建立的对比度的50%的字符。该百分比可以在工程设置期间进行调整。

在某些产品中发现的另一种方法是基于二进制图像和基于提取局部几何特征及其相互关系的句法分析。这种方法更适合OCR应用,而不太适合涉及字符质量的应用。另一种方法也是基于二进制图像,并使用矢量相关性作为验证或识别的基础。尽管这种方法对缩放或笔划宽度变细或变小应该不那么敏感,但它可能对局部笔划形状变化更敏感。

在两种情况下,二值化的鲁棒性都取决于特定机器视觉系统在对图像进行二值化之前或之后可能执行的图像预处理。尽管如此,预计这种方法可能会产生对OCV有利的性能,但在字符质量问题上却缺乏希望。

其他几种执行都是基于OCR作为验证字符的方法。这些趋向于变慢并且不适合PQI。除了执行特定的算法外,吞吐量还取决于以下功能:字符串的位置可重复性,字符串中的字符数,字符串数,外观上的预期变量以及是否还需要PQI。

通常,执行形态学运算的系统在PQI上更好。

执行之间的区别是,有些执行是基于较大区域中的子区域执行模板匹配,而子区域一次包含多个字符(甚至可能是整个字符串),而逐个字符进行匹配。一些人认为这对于激光打标可能是足够的,因为失败通常是整个字符集(所有字符串和字符串中的所有字符)的“无标记”条件,而不是特定于字符的“无标记”。在喷墨打印中不太可能是这种情况。

在将几个字符验证为一个模式的情况下,混淆对更成问题,因为不会逐个字符地进行分析。它也更容易受到字符间距变化的字符的影响。通常,系统确实提供了基于字符建立其感兴趣区域的能力,但是在操作员设置过程中这样做可能比较笨拙,并且可能需要更多时间。

同样如上所述,某些系统具有一组内置规则来处理混乱对。在其他系统中,此功能可能不存在,或者它们使用基于ROI分析的方法。在操作员设置期间,某些系统比其他系统需要更多的操作员干预。在某些系统中,属性(例如:阈值,字符串定位,字符对齐,拒绝的对比度属性,字符比例和宽高比以及使混淆对成为可能的规则)对操作员完全自动透明地执行。

这是什么意思呢?基本上,有很多方法可以执行可靠的OCV。执行更多图像处理的方法也更适合执行PQI。更鲁棒的方法通常在灰度数据上运行,并且比二进制像素计数做得更多。设置为避免错误接受时,较简单的方法往往会产生较高的错误拒绝率。其中一些不如其他字符更适合于字符质量评估,例如,由于喷墨打印的性质,预计会出现更多的错误次品。另一方面,某些方法被认为更适合处理混淆对。