HALCON高级篇:OCR识别

OCR

光学字符识别(OCR)是识读的一个技术术语,例如识别符号。在HALCON中,OCR被定义为去解释图像区域的特定任务。典型的,这些区域代表了多个单个字符,因此我们将其认为识读单个符号。

在离线阶段,每个字符通过几个样本被训练。在线阶段,图像被分割去提取代表字符的区域,然后运用OCR阅读器去解释每个字符。

OCR识别包含这么几个主要步骤,第一部分是离线,由收集训练样本,然后去训练组成。在线部分由提取字符和识读它们组成。

OCR的优势是训练的灵活性,其运行去选择为特定应用优化的特征。还有,你可以在基于最新技术的不同分类器之间进行选择,提供最优可能的性能。

还有一个更大的优势,HALCON提供一组预先训练好的字体,这些字体是基于来自不同应用领域大量的训练数据,这些字体运行你去阅读文档里的文本,制药或者工业产品上的文本,点印文本,甚至是手写数字。还有,HALCON包含了为OCR-A, OCR-B和基于卷积神经网络(CNNs)的一般字体的与训练字体。

基本概念

OCR主要分了两个主要部分:训练和识读。每一个主要部分都要求额外的准备步骤:

获取图像

对于训练数据的产生和OCR本身图像都必须被获取。

分割图像

对于训练样本和在线识读过程,字符必须从图像中提取出来,这一步就是分割。这就意味着OCR算子,如do_ocr_single_class_svm不去搜索在给定感兴趣区域内的字符,但是期望一个用户分类的分割区域。

如果训练样本是来自真实的应用图像,那么训练和识读可以采用相同的分割方法。如果训练图像更“人造化”,一个更简单方法可能会被用来分割训练图像。

训练OCR

训练由两个重要步骤组成:首先,选择每个字符的样本,并存在所谓的训练文件中。第二部,将这些文件输入到最新创建的OCR分类器中。

HALCON提供了预先训练的字体,例如早已运用的分类器,其早已解决了许多OCR应用。

识读符号

对于识读,你必须从磁盘上读取训练好的分类器,从图像上分割字符,并用分割好的字符作为识读算子的输入。

毁掉分类器

对于基本概念的一个例子是下面的程序,其用HALCON提供的预先训练好的字体之一去读取图像中的数字。

首先,用read_ocr_class_mlp来读取预训练的字体文件Document_0-9。由于没有文件扩展名被指定,MLP特定的扩展名“.omc”的文件被搜索(从HALCON8.0开始)。

然后,数字字符用算子threshold和connection分割出来,因为顺序是无关的,所以没有必须进行下一步的处理。

最后,数字符在一个for循环中被读取。算子do_ocr_single_class_mlp将单个区域,图像和OCR句柄作为输入。结果,最好的和第二好解释连同可信度一起被返回。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200401A068NO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券