文字识别在计算机视觉的重要性、基本技术和最新进展(OCR系列一)

举报
谷雨润一麦 发表于 2019/09/15 16:31:05 2019/09/15
【摘要】 本文为OCR文字识别系列的第一篇,基于深度学习的文字识别为现在人工智能领域研究的热点之一。本文主要介绍文字检测和文字识别作为计算机视觉一部分的重要性,基本知识,面临的挑战,以及部分最新的成果。

人类认识了解世界的信息中91%来自视觉,同样计算机视觉成为机器认知世界的基础,也是人工智能研究的热点,而文字识别是计算机的重要组成部分。我们生活当中文字是无处不在的,可以说离开了文字我们衣食住行各方面都会很不方便。

 

首先,文字并非自然产生,而是人类特有的造物,是高层语义信息的载体,文字从整个文化的角度来讲也是非常重要的,人类的文明离不开文字,文字是我们学习知识、传播信息、记录思想很重要的载体,没有文字人类的文明无从谈起。比如说王羲之的“兰亭序“,不只是文化作品,也是人类历史上璀璨的明珠之一。比如诗经,通过诗经,我们既可以学习它郎朗上口的文学特性,也可以通过它了解两千年前历史的故事和先人的思想。

 

右边的两幅图呢,是我自己拍的啊,里面有建筑、有场景、有树木,如果仅仅看到这两幅图,相信大家并不知道这是在说什么,但是结合了文字之后,我们可以一目了然的看到要讲的内容。所以说文字是计算机视觉的重要线索,与其他视觉信息有重要的互补作用,可以和对话、NLP等,合成多模态语义分析。

 

image.png


首先让我们看一个概念,光学字符识别,英文是OCR。光学字符识别是指把图片、PDF中的文字转换成可编辑的文字,也就是通常所说的文字识别,因为如果我们只提光学字符识别。我估计很多人不知道这是什么意思,所以大家通常把光学字符识别说成为文字识别。实际呢,一般包括检测和识别等多个过程。文字检测呢,是指,判断是否存在文字实例,并给出具体位置的过程。而文字识别是指把文字区域转化成计算机可读和编辑的符号。

 

方法呢,有很多,一种是基于手工设计的特征,这个在2014年前是主流的方法,比如MSERSIFT等,2014年之后,大家主要用的方法是深度学习。左边这两张图分别是把发票和文档转化成文字。

 


image.png


下面是华为云的OCR处理流程,融合了多种图像处理技术,具有高精度,鲁棒性和自适应性等特点。文字识别精度特别高,支持错行,盖章,文字叠加等复杂场景,支持多种类型单据,自适应不同质量图片。整个流程呢,主要是如下,包括图像预处理,表格提取,有没有表格进一步处理,文字定位,其中可能会有文字矫正,文字识别,文字后处理等,最后返回给客户的是结构化的json数据。

image.png



文字和检测和识别的难点非常的多,首先呢,大家可以看一下这张图,它的背景非常的复杂,有各种字体;颜色呢,也是多种多样的,比如说白色,比如说是金色,比如说是黑色。方向呢,也是多种朝向,比如说是竖直、倾斜、水平等等,大小也各不相同,比如说这个路牌儿。语言也不统一,我们常见的是中文和英文,但是在海外也会出现各种其他语言组合,比如阿拉伯语、泰语啊。模板也不固定,不只是场景文字,即使我们的文档也会有各种各样的文档。

 

image.png

日常生活的指示栏、窗户、砖块、图标、花草、栅栏、树木、机电等都与文字有一定的相似性,给检测和识别带来很大的干扰。

图像本身和成像也会存在的问题,比如分比率、曝光、反光、局部遮挡、干扰等,给检测和识别带来很大的挑战。

 

image.png


深度学习时代的文字和检测和识别,主要是基于深度学习。其中的文字检测,和目标检测类似,主要是基于物体检测和基于分割。比如说我们左上边看到的textbox是基于SSD目标检测网络,主要改了anchor的设置。左下图的pixellink,则是基于分割。其中基于目标检测呢,更多是侧重比较规整的、可以用四点表示的。而分割呢,更多倾向于各种不规则形状的文字。

 

文字识别呢,最常用的思想是把文字分成一个个字符,然后直接分类,这是以前传统方法最常用的技术之一。中间一个呢,也是基于分类,但是是基于单词的,对整句话非常难以处理好。最后呢,是基于序列的特征,提取基本特征,比如说CTC,是参考语音识别的,比如说Attention,比如说基于sequence2sequence。还有一点呢,就是端到端,这个是在一个网络里同时做到文字检测和识别,检测和识别可以相辅相成,提高性能。

 


image.png



这是华中科技大学许老师等做的工作,提出一个TextField的概念,就是文字方向场的概念,传统基于分割的文字检测方法有一个很大的局限性就是对密集文本无法有效区分开,他们提出一个文字方向场,基于像素做回归,然后通过后处理组合成一个文字条,对于弯曲特别离谱的文字都可以检测出来。许老师是我们的合作老师之一。

 

image.png


在文字识别当中非常有代表性的一个方法是就是华中科技大学白老师团队做的CRNN模型(后正式发表在IEEE TPAMI2016上),称之为 CRNN,其底层用 CNN 提取特征,中层用 LSTM 进行序列建模,上层用 CTC  loss 对目标进行优化。它是一个端到端可训练的文字识别结构,但并未使用 Attention。目前,CRNN 已成长为该领域的一个标准方法。白老师也是我们合作的老师之一。


image.png

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。