您现在的位置:商业报之窗 > 科技关注 > 2020开年解读:计算机视觉突破固化,OCR引擎更具商用价值

2020开年解读:计算机视觉突破固化,OCR引擎更具商用价值

2020-01-16 15:06

在前几天总结和展望机器学习与 AI 系统时,我们提到机器学习如同 AI 的大脑,系统网络如同 AI 的身体躯干,那么本文将要介绍的计算机视觉,无疑相当于 AI 的眼睛。

从人脸识别到 AI 换脸,再到对换脸的检测,构建更加可信的 AI 体系;从 OCR 对简单名片的扫描,到任意场景图像中对任意语言、任意打印和手写字体文字的精确识别,再到其在 RPA(Robotic Process Automation,机器人流程自动化)场景中的实际应用,大大提升企业运营效率;计算机视觉相关技术的发展势如破竹,并且总是掀起一波又一波的探讨与关注。

为了进一步加快计算机视觉技术在实际应用的成熟落地, 微软亚洲研究院在多个方面都取得了突破性的进展。其中有些大大提升了实验室环境下识别的性能和准确率,例如,不局限于图像分类的、面向更为广泛的视觉识别应用(如图像分割、姿态估计等)网络架构的设计;在视觉和语言结合的交叉领域,新的多模态预训练问题。而有些突破则与实际应用场景结合得更加紧密,如对 AI 换脸的辨识;在商业文档、票据场景中 OCR 的应用等。

HRNet:更广的网络结构,突破固化模式

自2012年 AlexNet 被提出以来,深度卷积神经网络结构的设计经历了许多模式的变迁,大致有三种维度的拓展:更深,运用 highway、residual connections 或者 skip connections 有效地训练深度神经网络;更宽,利用多分支网络来增加网络宽度;更轻,利用组卷积、参数和响应量化等减小网络冗余。

目前主流的结构,包括 AlexNet、VGGNet、GoogleNet、ResNet、DenseNet 等,基本上都是为图像分类设计的,沿用了之前 LeNet-5 的设计模式,即卷积是从高分辨率到低分辨率串联起来的,因而只能学到空间粗粒度的低分辨率表征。而用于目标检测、图像语义分割、人体骨架点检测、人脸关键点检测等其他任务高分辨率表征学习网络,如 Hourglass、U-Net、Encoder-decoder、SegNet、DeconvNet、FPN 等,基本把用于分类的低分辨率网络结构作为主干网络,附加额外串联的卷积网络分支以恢复高分辨率。

在微软亚洲研究院看来,这些设计中有两点值得反思:学习高分辨率表征网络一定要从用于分类的低分辨率网络结构出发?或者把它作为主干吗?表征的分辨率一定要逐步减小,然后恢复吗?

基于此,微软亚洲研究院提出了一种新型的、“更广”的网络结构High-Resolution Network (HRNet)[1],试图改变上述两个固化的、近乎标准化的网络设计模式。

HRNet 网络架构

HRNet 在整个过程中始终保持有高分辨率表征,每个分辨率的卷积形成一个分支,然后把多个分支并联,进行多次不同分辨率表征的信息融合,以学到空间精度高、语义强、高分辨率的表征。HRNet 适用范围广泛,可以适用于图像分类,特别是在目标检测、图像语义分割、人体骨架点检测、人脸关键点检测等任务都取得了领先的结果。其代码也已开源,被计算机视觉等领域的同行广泛接受并使用。

 

VL-BERT:多模态预训练

预训练+微调是深度学习应用的一个重要范式。通常来说深度学习依赖于大量标注数据,因此主要适用于拥有大量标注数据的任务和场景,但预训练范式的出现,使得深度学习方法也能广泛并有效地应用于具有中等或少量标注数据量的任务。

在计算机视觉与自然语言处理领域,尽管使用单模态的预训练模型已被广泛证明可提高下游任务性能,但针对多模态学习的任务,单模态预训练模型无法帮助其捕捉多模态数据间的关联关系。

由此,微软亚洲研究院提出了针对多模态数据的预训练模型 VL-BERT [2],在大规模图片文本数据集中进行多模态联合预训练后得到的模型,可帮助关联与对齐不同模态数据间的线索,在视觉问答、视觉常识推理与引用表达式理解等下游多模态联合理解任务中均有显著的性能提升。

VL-BERT 网络架构

 

让假脸无处遁形的新算法

最近 AI 换脸技术发展迅速,例如此前在全球引起轩然大波的 DeepFake,我们前段时间也介绍了更多 AI 换脸的技术和应用。这些逼真的换脸图片让人难辨真假,信任与安全都受到威胁。为了解决这个问题,学界与业界正在研究如何利用 AI 技术去反向鉴别图像、视频的真伪。

AI 换脸与换脸鉴别如同一场攻防战,目前,最常被使用的 AI 换脸算法有三种:DeepFake、FaceSwap 和 Face2Face。微软亚洲研究院研发的换脸鉴别算法,对人脸合成时难以处理的细节进行检查,如眼镜、牙齿、头发边缘、脸部轮廓,将它们作为算法关注的重点,从而提高识别准确率。在 FaceForensics++ 数据库的测试结果也均超越了人类肉眼的识别率以及此前业界的最好水平:对于 DeepFake,FaceSwap 和 Face2Face 的鉴别率均超过99.6%。

 

微软新一代 OCR 引擎:更具商用价值

光学字符识别(OCR)是计算机视觉的重要组成部分之一,它能够检测、识别图片中的文本信息并将其转换成计算机文字,目前已被广泛应用于各种企业级和消费级应用场景中,如在机器人流程自动化场景中,可利用 OCR 和文档理解技术来实现商业文档票据的信息抽取及录入、内容审核、归纳搜索等日常文档处理任务的自动化处理;在增强现实场景中,利用 OCR 技术来提取图像或视频中的文字来帮助用户进行信息检索或者翻译。

微软亚洲研究院发现,近年来的学术研究主要集中在如街景这样的自然场景图像的文字检测和识别上,而忽略了商业文档、票据场景。过去的一年,微软亚洲研究院一直致力于新一代 OCR 引擎的研发,以满足更多场景的需求。

通用文字检测:文本行检测准确率大幅提升

通用文字检测的目标是主要利用图像纹理信息,检测出任意场景图像中任意语言、任意打印和手写字体文字的精确位置。根据所检测文字的粒度,常用的文字检测算法可以划分为三类:字符级别、词级别和文本行级别。由于单独依靠图像纹理信息很难精确标注出所有语言字符级别和词级别的外接框,比如,对于英文连笔手写,很难精确地标注出所有字母的外接框;对于中文,由于单词之间没有空格,无法直接依靠图像纹理信息来标注词的外接框,因此,研究员们认为,文本行级别的文字检测算法更适用于通用文字检测。 

从图像中检测出任意形状文本行的精准外接框是一个非常困难的研究问题,这是因为图像中的文本行具有极大的多样性,比如具有各种各样的形状、大小、方向、排版方式、字符间距,包含各种语言、字符、字体、风格,可能受到拍摄环境的影响产生变形(如透视变换、仿射变换等)、残缺、模糊断裂、非均匀光照等等。

相较于其它物体检测任务,文字检测任务对检测出的外接框的精准度要求更高,因为微小的偏差会导致字符的漏检。此外,某些自然场景图像中可能包含与文字非常类似的背景纹理,极易造成误检。对此,工业界和学术界都投入了大量资源来寻找解决方案,众多基于卷积神经网络的新型文字检测算法涌现出来,并大致可以分为两类。

一类是把文字检测看成是一种特殊的物体检测或者实例分割问题,然后改进最先进的物体检测或者实例分割框架如 Faster R-CNN, Mask R-CNN 等来检测任意形状的文字。这类算法对于检测拉丁单词很有效,但是受限于区域生成网络(Region Proposal Network,RPN)的局限性,难以有效检测密集长文本行。另一类算法是先用物体检测算法检测出文本行片段或用图像分割算法从像素级别分割出文本区域,然后利用拼行算法把文本行片段或文本像素串成文本行,这类算法的难点在于,如何有效地将文本行片段或文本像素串成文本行。相较于基于文本行片段的算法,目前基于像素的算法在任意形状文字检测公开数据集上可以得到更好的结果。尽管如此,基于像素的算法仍然无法有效解决文本行中字符间距较大的问题,这一问题广泛存在于中文票据、菜单等场景中。

为了进一步解决这些问题,微软亚洲研究院创新地提出了一套基于关系网络(Relation Network)的新型文字检测框架[3],主要思想是将文字检测看成是视觉关系检测(Visual Relationship Detection)问题而非物体检测或实例分割问题。

基于关系网络(Relation Network)的新型文字检测框架

具体来说,针对文字检测中的一些子问题(如拼行、冗余检测框抑制等),先用物体检测算法检测出不同粒度的文本基元,然后将这些具体问题抽象为基元之间相应关系的预测问题,再利用关系网络预测这些关系。例如,为了解决文本行拼行问题,文本基元可以定义为文本片段,然后先检测出文本片段,再用关系网络去预测临近片段是否有“连接”关系。实验表明,关系网络可以有效利用上下文信息提高较远文本片段“连接”关系预测的准确率,文本行检测的准确率也大大提升。

除此之外,为了得到更高质量的文本行片段预测,微软亚洲研究院的研究员们发现之前主流物体检测框架中的区域生成网络(RPN)受限于锚点(anchor)设计的缺陷,无法高效预测任意方向的文本框,于是提出了 anchor-free RPN 的物体检测算法[4]。该算法不仅在单词级别的文字检测任务上取得了很好的结果,而且类似思想在当前物体检测领域也成为主流方法之一。

通用文字识别:大规模并行训练,模型压缩

将检测模块得到的文本行图像数据归一化到固定高度之后,需要使用通用文字识别技术,将图像对应的文本内容识别出来。文本行图像数据由于受光照、几何变换、背景、字体、风格、分辨率等的影响,形状纹理尺寸变化多端,对识别工作提出了挑战,不过基于深度学习技术的发展,这些问题可以采用端到端的文本识别方案解决。

常见的端到端文本行识别方法有两大类,一类以卷积神经网络作为特征提取器,以循环神经网络作为序列建模器,利用连接时序分类(Connectionist Temporal Classification, CTC)作为训练准则,即 CRNN-CTC 方法;另一类是基于注意力机制的序列到序列编码-解码方法。受限于自回归式的解码方式,编码-解码方法训练复杂度高,解码时延大,而 CRNN-CTC 方法基于条件独立假设,在快速解码的同时,还可以通过加权有限状态转换机(Weighted Finite State Transducer, WFST), 可以和语言模型、词典等先验信息巧妙地融合在一起,进一步提升效率和准确度。

微软新一代 OCR 识别引擎采用的便是 CRNN-CTC 结合 WFST 的方案,不过将 CRNN-CTC 模型应用于产品,还面临诸多挑战。首先 CRNN-CTC 模型的卓越性能需要依赖大规模的训练数据,传统的单机训练方法会大大增加产品开发周期,研究员们在GPU训练集群上采用基于逐块模型更新滤波(Blockwise Model-Update Filtering, BMUF)[5]的分布式优化框架解决了这一问题。

作为一种通用分布式优化框架,随着计算资源的增加,BMUF 可以在线性加速训练过程的同时,不损害模型的识别性能。另一方面,为了保障识别性能,CRNN 模型参数多、计算量大、识别耗时长、部署代价高,为了成功应用于产品,需要对模型进行压缩和加速。经过分析微软亚洲研究院的研究员发现,CRNN 的计算主要集中于 CNN 部分,针对部署要求,研究员们借鉴 YOLO 框架中的高效 TinyDarkNet 结构作为 CNN 部分,对原基于 VGG 的 CNN 部分在 RNN 部分指导下进行知识蒸馏,然后采用张量分解算法进一步压缩模型降低计算量,压缩的模型推断速度加快了14倍[6],解决了部署难题。

统一模型,同时支持多场景、多语言、混合打印和手写体文字的识别

微软新一代的 OCR 引擎可以同时支持打印体和手写体的复杂文字场景识别。在日常生活中,很多表格单据上同时包含有打印体和手写体文字。传统的 OCR 识别引擎需要有一个专门的分类器来预先判定文本行对应的字体类型,再调用各自对应的识别模型进行文本内容的识别。如果一行文本中同时包含有打印体和手写体,则还需对文本行做单词级别更加细致的切分。经过大量的实验验证,微软亚洲研究院的研究员们发现通过数据和模型共享,一个统一的模型能很好地同时识别打印体和手写体文本行,效果媲美各自独立的识别模型。 

如何快速、经济地将新一代的英文 OCR 技术推广应用到其它语言中,是 OCR 落地的另一个重要课题。相比于各个语言独立部署的传统方式,微软亚洲研究院探索了每个语系共享一套识别模型的新思路。以拉丁语系为例,包括英文、德文、法文、西班牙文、意大利文和葡萄牙文在内的所有拉丁语言共享同一个字符模型和语言模型。

由于每一个语言的字符集和语法规则不同,如果简单地将各个语言的词汇表累加,则会形成过大的词汇表,从而得到一个很大的语言模型。另一方面,如果控制词汇表的长度,又会带来非常严重的集外词(Out of Vocabulary, OOV)问题。OOV 问题是一个普遍存在的问题,学术上尚无完美的解决方案。在上一版的英文识别系统中,微软采用的是由词、子词以及混合词语言模型插值得到的混合语言模型来部分解决这一问题[7]。

新一代的 OCR 引擎中,为了得到一个长度可控,各语言共享的词汇表,采用了在自然语言处理领域中广泛使用的字节对编码(Byte Pair Encoding,BPE)技术,自动从大量语料中习得常见的语言单元,并以此作为语言模型的建模单元。与以单词作为语言单元相比,BPE 语言单元的使用极大地减少了词汇表的大小,使得所有拉丁语言共享同一个语言模型成为可能,同时也极大程度地解决了集外词问题。实验表明,基于 BPE 语言单元集的共享语言模型能力与各语言独立训练的“词/子词”混合语言模型能力相当。

得益于微软亚洲研究院研发的新一代通用文字检测和文字识别技术,以及相关产品部门的紧密合作,这一 OCR 引擎可以从各种场景(如文档、票据、街景、商品、菜单、广告等)图片中准确高效地检测和识别出各种打印和手写体文字。该引擎目前已服务于微软 Power Platform、Office 365、Dynamics 365、Bing、Azure Cognitive Services 等产品。在不久的将来,微软新一代 OCR 引擎将支持更多语言(包括中文)并具有版面分析和表格识别能力,配以文档理解技术,微软 OCR 将进一步推动数字化转型,予力全球更多人、更多组织,成就不凡。

 

更多计算机视觉的研究,超乎你想像

微软亚洲研究院还在许多重要的、受关注的计算机视觉领域持续进行研究。包括:

• 图和关系网络的视觉建模:关系网络 [8]、区域特征学习 [9]、局部关系网络 [10]、全局关系网络 [11]、空间注意力机制 [12];

• 半监督和小样本学习:深度度量迁移学习 [13];

• 更强的视觉表示和计算方法:可变形卷积网络2.0 [14]、基于点集的物体表示方法[15];

• 视觉物体跟踪:两种对语义与外观进行有效平衡的框架[16, 17];

• 深度估计:双网络结构 [18]、室内环境下的无监督深度估计 [19];

• 三维人体姿态估计:跨摄像头特征融合网络 [20]、Locally Connected Network [21]、低维流形估计 [22];

• 行人和物体重识别:基于人体姿态引导的人体部件对齐的方法 [23]、基于人体空间语义对齐的方法 [24]、多图联合学习和知识蒸馏 [25];

• 图像生成:掩码导向的人脸编辑 [26]、基于金字塔式注意力机制的上下文编码网络的图像修复[27];

• 基于二维时间图的视频表征学习 [28];

• 以及轻便深度图像分割网络 [29]。