阿里OCR-图像文字的识别和理解

3,537 阅读7分钟
原文链接: click.aliyun.com

阿里OCR-图像文字的识别和理解

摘要:2018云栖大会上海峰会,阿里巴巴图像高级算法专家王永攀对阿里OCR-文字识别技术解读和应用实例分享。OCR的本质是识别图片中的文字,即在复杂的图片背景下对所需目标文字进行识别提取。主要从什么是OCR、OCR算法和读光产品及其应用进行了介绍。展示阿里OCR在文字识别中强大的应用。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧
直播视频请点击

什么是OCR?

OCR前期是识别图片中的文字,即找到文字的位置,然后识别是什么字。在原本文字识别的基础上做了文字理解,文字理解是文字识别的一个应用。根据空间关系和语义的了解输出用户想要的结果。根据需要处理的数据类型可以分为四种数据场景,数字原生类、文档类、拍照表单类和自然场景类。这四种文本的差异性是比较大的,每种文本的处理方法也是非常不同。

OCR算法

文字定位和文字识别是OCR的两个基本的算法。识别准确率和通用性就决定了OCR在各种应用场景中的通用性和简洁性。随着应用的发展,扩展到了文本理解。在文本识别文本定位的基础上做表格提取、印章提取等,然后结合语义理解构建出字段的空间和语义关系,最终实现文本理解的过程。
OCR有两种核心的算法能力——通用文字和通用结构化。通用文字识别是识别图片中文字所在的位置,并识别出文字的内容。在文字识别的基础上,结合用户的实际需要进行结构化就是通用结构化。

1


算法如上图所示,该算法是在CV的基础上进行扩展的,首先是基于文字定位和文字识别的,根据图片进行图像分析、图像提取和表格提取。需要根据应用进行结构化,根据实体的检测,同时根据语义和图形图像的空间关系实现结构的关系,最后实现文本的理解,文本分析和KV结构化输出。根据工程设计的能力实现相应的产品,需要考虑深度学习引擎的环境,通过私有云系统进行输出。通过文本理解和工程设计,最终实现了产品的构建。产品的输出包括通用OCR、文档OCR、表单OCR、OCR小程序、端上OCR。

文字定位

文字定位的目标是定位文字在图像中的位置并表征成行。背景特征的干扰问题,特征问题是不可避免的问题,随着深度学习发展,现在已经能够较好的解决特征问题点。

2


scale问题就是物体定位的共性问题,在复杂的图片中,文字的高度也是不同,需要解决更好的识别文字;这个问题经过如图上进程不断地改进,最终通过统一样本学习,多尺度特种输出和多尺度Attention融合已经得到了解决。

3


成行的问题是文字定位特有的问题,文字可能横着、斜着甚至是弧形的排列。刚开始使用行mask解决,但是存在粘连问题;后来定义了行,但是发现定义不清,很难进行标注;最后用起始和方向进行行定义,如果知道行的起始、结尾和方向就可以很容易的定义行,解决了行粘连问题。

文字识别

文字识别就是在文字定位的基础上,识别文字内容同时,输出单字位置和识别用于文本的理解。文字识别包含分类和序列两部分,分类就是精细特征的提取问题;序列就是从人的认知进行分析。
文字识别存在的两大难题就是相似字和生僻字的识别。相似字识别是学术难题。现在发现一共有两千多个形近字,CRN对这两千多个字进行单独的识别测试,识别率只达到83%,最终发现识别率低的原因是softmax不能有效的表征差异导致的偏差。常用汉字大约有3700个,覆盖了99%书面资料,但是姓名、地名大概有21303个,包含大量的生僻字,而且姓名和地名在我们的实际应用中又有着非常重要的价值。CRN进行测试发现识别率只达到21%。样本量的过少,不能进行充分的训练,识别率很难进行提高。

4


生僻字的解决方法如上图所示,首先使用行识别,再进行了Attention单字识别方案解决了生僻字语料偏少的问题,Attention可以解决单字切字问题。通过上述方法,我们对2万多生僻字测试集进行了测试,精确度从21%提高到了99%,基本上解决了生僻字问题。

5


相似字的解决方案如上图所示,之前无法解决相似字的原因是softmax不能有效的表征差异导致的偏差。现在提出了CentleLoss强化特征之间的差异,解决了形似字分类困难的问题。同时结合CTC和CentleLoss这两个技术,对30万形近字进行了测试,精确度从原来的83%提高到了97%。相似字得到了识别。

通用结构化

6


如上图所示通用结构化中结构化的目的是把二维文字图像转化成一维文字或多维结构化输出KV序列。一维文本就是按照阅读顺序进行分析,多维结构化是通过关系分析。例如卡证类,样式是相对固定的,但是种类非常的繁多。表单类样式更加的多样,不计其数。因为种类的繁多,我们必须通用化的结构才能解决繁重的工作量。
通用结构化的实现包括匹配、更新、搜索和过滤四部分。匹配是通过实体和全局的位置实现KV的关系对;更新是通过多阶的局部关系来实现更新;搜索是模糊位置关系的处理,首先需要对模糊的位置进行计算分数,然后进行全局最优的方式进行选择。过滤是当不同信息混合在一起时,使用语义模型和空间规则进行处理分离。

OCR产品

阿里OCR是一项技术,从技术到产品需要规模化,需要从通用、效率、功能三个方面进行实现。

文档OCR

7


文档OCR云产品是最简单的产品之一。如上图所示,文档OCR主要包括文字图像获取、文字识别和识别内容理解三部分。会用到前面讲到的一些关键技术进行实现。

8


如上图所示是一个案例的实现,首先获取图像,并进行相应处理,最后进行四种输出包括行输出、单字输出、表格输出和段落输出。

表单OCR

9


表单OCR产品比文档OCR更加的复杂,它同样需要文字图像获取、文字识别和识别内容理解。在图像获取这一块,要求图像的质量更加高。文字识别这一块和文档OCR相似,但是难度会更大。识别内容理解需要KV结构化和空间拓扑。

10
b77241c7fa24c0a.png)


表单OCR案例,上图是一个房产证,首先进行表格提取,如图1所标的绿色框,然后进行文字提取,如紫色框所示,再进行语义和空间关系提取,如蓝色线条所示,最后进行KV的输出。