白翔作者

白翔:复杂开放场景中的文本理解

编者按:李白的《秋浦歌》中有这样一句诗:“题诗留万古,绿字锦苔生”,描绘了天执笔、地做纸、苔为墨,挥毫题字的豪迈场景,也展示了自然场景中文本类型的多样性;而另两句“古壁剥旧题”,“废寺失题名”,则暗示了场景噪声对文本的影响。这几段描写共同衍生出了现代计算机视觉领域中的一个挑战,即复杂开放场景中的文本理解。

本文中,来自华中科技大学的白翔教授,将针对场景中文字类型多样、场景复杂多变、以及场景噪声等问题,带着大家通过深度神经网络,在开放场景中实现准确的文本理解。

文末,大讲堂特别提供文中提到所有文章的下载链接。

本文整理自白翔教授在ICDAR2017的学术报告。

本次报告是关于场景文本理解的。众所周知,深度学习已在图像视频方面显示了巨大的能力,且在文本分析领域也取得了一些有意义的进步,我也在尝试将深度学习用于文本相关工作。

文本理解目前主要有两个方面的工作,一个是传统的文本理解,它往往只需识别文档中的文本;而另一个场景文字理解,需要将照片或视频中的文字识别出来,它包含文本检测和文本识别两个步骤:

首先是对存在文字区域的定位(Text  Detection),即找到单词或文本行的边界框(bounding box);然后对定位的区域内容进行识别(Text Recognition),即预测边界框中每一个字符的类标签。将这两步合在一起就能达到最终目的:端到端的文本识别。

我的报告分为五个部分。首先,回顾近来用于场景文本理解的深度学习方法;然后介绍我们在场景文本检测和识别方面的最新工作;最后介绍一些场景文本理解的应用和我对领域趋势的认识。


背景

相比于文件图片,自然场景图片中文字的分布更加稀疏和分散,其具有多方向且多语种的特性。

在2016年以前,大多数场景文本检测工作有三个步骤:首先,利用手工设计特征生成候选框;然后,利用二分类卷积神经网络或随机树来进行文本/非文本区域的分类,即过滤掉误检的候选框;最后,利用CNN来修正区域定位,以得到较精确的回归结果。

在2016年以后,文本检测工作逐渐受到深度神经网络的影响,可以大致分为三类:

其一是基于分割的思想,通过分割网络提取文本区域,然后采取一些后处理方法获取边界框。代表性的工作是发表在CVPR2016的“Multi-oriented text detection with fully convolutional networks”;

其二是基于候选框的思想,直接用一个神经网络来检测文本边界框。代表性的工作是发表在CVPR2016的“Synthetic data for text localization in natural images”;

其三是混合思想,它采用多任务学习的框架,结合了分割和边界框检测的方法。代表性的工作是发表在ICCV2017的“Deep Direct Regression for Multi-Oriented Scene Text Detection”。

场景文字识别大致分为两类思路:其一是从单词或字符层面入手,设计单词分类器或字符分类器,将每一个单词或字符作为一类目标,进行多类别分类任务。

而近来循环神经网络大放异彩,它可以将文本识别看作一个序列标签问题,并能够直接输出标签序列。因此,第二种思路从序列层面入手,将文本看作一个字符序列,通过设计序列特征提取器,结合循环神经网络(RNN)和CTC模型(Connectionist temporal classification),将文本序列作为一个整体进行识别。

从“场景文本理解”相关文章在2017年顶会中统计数据来看,超过80%的文章聚焦多方向文字检测,而对场景文本识别和端到端识别的关注度相对较低,且大多数文章集中于解决英文文本问题。

实际上,拉丁文和非拉丁文是截然不同的。我们在此以英文(拉丁文)和中文(非拉丁文)举例,前者相邻单词间通常有一个空格,而后者没有明显的视觉划分,因此中文的单词划分只能借助语义信息指导。考虑到此差异性,如果设计一个同时适用于拉丁文和非拉丁文的文本理解系统,可采用基于文本行的检测和序列标签方法。

区别于普通的物体和英文单词,文本行具有更大的高宽比,对于普通的卷积核,文本行不能被完全覆盖。这意味着现有基于深度学习的目标检测方法并不能很好适用于场景文本检测。

上表展示了在ICDAR 2013、ICDAR 2015、RCTW 2017数据集上检测达到的最好F值结果。即便使用更多的训练数据,中文数据集上的表现也要明显低于英文数据集,这是因为中文文本行相对英文有更大的比例变化。这里中文场景文本RCTW数据集来自于我们最近组织的ICDAR(International Conference on Document Analysis and Recognition)比赛,RCTW数据集包含很多长文本数据。

在非拉丁文本检测中,为了克服长文本行的较大比例变化,我们引入一些策略:首先改变卷积核尺度,比如使用长条形卷积核;然后为了增大感受野范围,我们采用类似于inception的模块,组合不同卷积核产生的特征图。此外,使用基于部分的模型也是一种很好的选择,但这就需要把文本行中相邻的部分进行分组。


场景文字检测


Proposal-based method

这里主要介绍两个场景文本检测思想,一个是基于候选区域的方法(TextBoxes);另一个是基于部件的方法(SegLink),通过检测部件后将其连接起来。首先介绍TextBoxes:

在引入我们的算法之前,首先回顾一下基于CNN的检测方法:SSD(Single Shot detector )。SSD开始在深度特征图上初始化一些默认的方框,这里我们以4*4和2*2的特征图举例。然后默认框将被分类且被分配一个检测分值,同时,默认的方框被回归到一个确切的位置。默认框和回归结果都是矩形的,用中心点和宽高可以将其表示。

TextBoxes方法采用SSD作为基础框架,首先在设计默认框(Default Box)时,采取多比例大小的框(包含长条形状的框)。TextBoxes方法对SSD的卷积核也进行了改进,因为文本行往往比普通物体更长,常用卷积核并不能和文本行很好匹配,因此这里将1*1或3*3的卷积核更换为适合文字的长条形卷积核。

由上表可以看出,TextBoxes明显优于SSD并且在ICDAR2013数据集上达到了state-of-the-arts的效果,这个数据集主要由包含水平文本的图片构成。

而现实图片中的文本往往不是水平的,也就是说,文本的边界框是多边形而不总是矩形的,因此我们添加了一个分支来回归多边形坐标,进一步优化TextBoxes以适用于多方向文本。

我们在ICDAR2015数据集上验证了我们的算法,实验表明,TextBoxes++达到了state-of-the-art的性能。

为了进一步扩大卷积神经网络的感受野,我们使用联结多种特征图的inception模块,举个例子,上图的inception模块整合了3*3、1*5、5*1三种不同卷积核产生的特征图。

为了验证inception模块的有效性,我们在RCTW 2017的一个数据子集上进行测试,这个数据集主要包含一些长条形文本图片,结果表明inception 模块有效提高了长条文本检测准确率

我们也在整个RCTW数据集上进行了测试,通过和曾在比赛中获胜的其他团队方法进行比较,可以看出我们结合inception block的TextBoxes++方法达到了最高的F值。


Part-based method

接下来介绍基于部件的方法SegLink,它的核心思想是将文本行分解成两种可检测的元素:定义为部件(segment)和关联(link)。部件是指文本行的一部分(图中黄色部分),关联是指连接两个相邻部件的联系(图中绿色短线),被关联表明其属于同一单词或者文本行。 基于segments和links,整个文本行可以通过一个简单的组合表达出来。因为Segments和Links不涉及感受野问题,所以这个思路可以处理长文本行。

如图是SegLink的检测框架图,我们依旧使用SSD作为基础框架,采用VGG16检测模型,通过多层CNN同时检测segments和links,跨层连接是对不同层的两个segments的连接,它也是通过计算得到的,因为相邻的segments可能不会来自同一层。

从在MSRA-TD500和ICDAR2015两个数据集上的测试结果来看,我们的SegLink方法对方向不确定的文本行和中英混合的文本都有较好的检测性能。

事实上,SegLink不仅能够处理长文本行,还可以很好地检测弯曲排列的文本行。如图,星巴克的logo字母是弯曲排列的,而SegLink可以灵活地适应它的文本形状。


场景文字识别


CRNN model

针对场景文字识别,这里主要讲述两个算法,针对整齐规则文本的CRNN模型,和针对不规则形文本的RARE模型。首先介绍CRNN:

该网络由三个部分组成:一个CNN网络,一个RNN网络和CTC损失。CNN(卷积神经网络)从输入图片提取特征,然后我们将图片特征转化为特征序列,作为序列标签输入到LSTM中,最后CTC(Connectionist temporal classification) loss将序列标签转化为文本。将这三个部分组合从而可以端到端地训练。

我们将每一个像素宽度图片的深度特征看作一帧,通过这种方法,可以从左到右获得一个帧序列,每一帧对应原始图像中的局部区域。

针对开放字典数据集,我们的方法在识别精度上达到了当时的state-of-the-arts。CRNN还具备以下优势:可以端到端训练;且不受字符标注的约束,这意味着我们可以直接输入文本行进行训练和测试;它没有字典集的限制,因此我们可以将其用于其他序列的识别,比如识别银行卡上的数字;在模型大小上,它比主流的模型参数减少了40~50倍,更有利于在工业实际场景中落地。


RARE model

对于形状不规则的文本行,我们提出了RARE(Robust text recognizer with Automatic REctification)模型来解决。

如图,由于拍摄视角的变化、文字曲形的排列方式等因素影响,自然场景图片中的文本形状常常是不规则的,如图中SVT-Perspective和CUTE80数据集所示,这就给识别造成了极大的困难。CRNN可能对此类情形并不奏效,它是在输入文本水平的前提下提出来的,因此我们提出了RARE。

我们设计的网络由两部分组成,空间转换网络(STN, Spatial Transformer Network)和序列识别网络(Sequence Recognition Network)。其中,STN负责修正输入图片,使其图片中文本呈水平形,SRN负责识别文本。这两个网络通过反向传播进行联合训练,上图中的虚线就表示反向传播。

SRN包含一个编码器和一个解码器。编码器由一个ConvNet和一个Bi-LSTM组成,用来生成特征序列表达,解码器是一个基于注意力机制的字符生成器,根据输入序列循环地产生字符序列,根据每一步的注意力机制来解码相关内容,上图展示了SRN在各数据集上的识别精确度。

区别于CRNN模型中的解码器,我们使用基于注意力机制的模型作为RARE的解码器。解码器逐步将一些特征帧解码为一个字符,但由于某些帧中的形变,解码器可能会输出一些错误的识别结果。

在识别之前,我们可以引入一个空间变换网络STN(Spatial Transformer Network)来修正不规则文本图片。

这里具体讲解一下STN的结构。首先定位网络生成一组基准点C,然后在网格生成器中,从基准点计算TPS变换的参数,在原图上生成一个采样网格P,采样器同时提取网格P和输入图片I,以此输出一个修正后的图片。

STN的一个特点是其采样器是可微的,因此只要有一个可微的定位网络和一个可微的网格生成器,STN就可以反向传播误差并得以训练。

网格生成器估计TPS变换的参数,并产生一个采样网格。如上图,原图中基准点是C,修正后图中定义基准点为C’,网格生成器计算TPS变换的参数T,采样器将原图I 修正为I’。上表显示,相比于单独使用SRN,添加STN可以大幅度提高识别效果,特别是对于一些有形变的文本数据集。

尽管STN校正有效地提高了识别率,但是对于严重弯曲的文本图片它的性能并不理想。因此,我们用带有边界点标注的文本数据作为定位网络的监督信息训练,实验表明,识别率有显著提升。

如图,是STN对SVT-Perspective和CUTE80两个数据集中有形变文本的修正结果。

另一个有趣的发现是,将检测和识别结合起来,可以使得最终检测的准确率有极大提升。如图,输入图片通过检测器检测出来目标区域后,将检测的区域抠取出来输进识别器,这种组合使得很多误检可以被过滤掉,也就是说最终检测的性能提升了。

我们对检测得分和识别得分求取调和平均值,最终从ICDAR2015上的实验结果看出,这种组合有效提高了文本检测的效果。


相关应用


结合文本线索的细粒度图片分类

这里主要介绍场景文本检测识别的三方面应用:

1) 结合文本线索的细粒度图片分类;

2) 基于数字的行人重识别;

3) 从文本识别到行人重识别。

通常,只用图片直观的视觉信息是不足以进行细粒度图像分类的,如上图,看上去(a)和(b)是类似的,而实际上,(b)和(c)描述的是同一场景,且与(a)大不相同。我们仔细观察,(b)(c)中分别包含了语义相近的词“cafe”和“coffee”,这其实可以在图片仅有微小视觉差异的情况下帮助我们进行细粒度的图片分类。

自然场景图片中的文本包含了丰富的语义信息,它与目标或场景有着非常密切的关系。因此,我们将文本表达和深度视觉特征结合起来,训练一个全局的深度卷积神经网络

整个端到端的算法流程如上图所示。首先使用一个已有的文本识别框架来提取出文本,然后通过word embedding提取这些文本的特征,同时,GoogLeNet对输入图片提取1024维视觉特征向量,为了消除文本中的噪声,我们又添加了一个注意力模型对提取出的文本分配权重,最后将视觉特征和文本特征基于一定的权重组合起来,利用多模态融合特征进行最终的分类。

如上图所示,图片中的一些文本不是与图片表达的内容密切关联的,它们会对后期分类造成干扰,因此我们使用了一个注意力模型来筛选对分类有帮助的文本。

为了验证算法的有效性,我们在两个数据集上进行了测试,一个是办公场所建筑数据集Con-Text,它包含28种场景,共24,255张图片。另一个是饮料瓶数据集Drink Bottle,它选自ImageNet数据集,含有20种饮料瓶共18,488张图片。这两个数据集图片都包含了文本,且不同种类间只有很小的视觉差异。

可以看出,添加文本线索后,在Con-Text和Drink Bottle上的识别性能都有大幅度的提高。

如图可以看出,网络中添加的注意力模型可以过滤掉错误的文本,并选择出与类别更相关的文本。

我们也将学习到的融合特征用于图像检索,如图,只用视觉信息可能会因为其差别过小引起误分类,而加入文本信息后,酒瓶图片检索的mAP提升了12.8%。


基于数字的行人重识别

在马拉松比赛中,由于人员庞大、时间持续性长、场景复杂、服装相似等特性,使用行人重识别或者人脸识别的方法来跟踪参赛者是非常困难的,考虑到每一位选手有一个独特的编号,我们试图从场景文本检测的角度入手,根据编号进行行人的定位与跟踪。

如图,我们提出的方法分为如下几个步骤:首先使用TextBoxes对输入图片进行文本检测,即定位出文本区域,然后通过CRNN进行文本识别,再将带搜索文本与识别出的文本库进行匹配,寻找到该数字文本对应的选手。

我们在自己收集的一个马拉松数据集上验证了这个基于号码牌的行人重识别方法,Marathon数据集包含8706张训练图片和1000张测试图片,经测试行人重识别正确率为85%,从某种程度上讲它可以帮助人们进行搜索,还能有效减少搜索时间。


从文本识别到行人重识别

我们发现了一个很有趣的类比思想,将水平文本行看作一个从左到右的序列可以取得很好的识别效果,那么受此启发,我们可以将行人看作一个从上到下分块的序列进行重识别。

我们又进一步探索了LSTM在行人重识别中的作用,发现LSTM可以学到比CNN更加好的特征,如图是基于LSTM的模型,添加LSTM后在Market1501上的识别率显著提升。

我们用上述网络进行行人检索,由上图可以直观地看出,添加LSTM后检索结果明显优于以往。这是因为LSTM使用相邻部分上下文信息丰富了每个人的部分特征,使得模型更具有判别性。


未来发展趋势

未来我们将更加着眼于以下几个方面:不规则文本的检测,比如针对弯曲的或者多视角下的文本行;端到端的多语言文本识别;半监督或弱监督的文本检测识别;基于生成对抗网络的文本图像合成;针对文本识别或自然语言处理的框架;场景文本和图像/视频的结合,以应用到更多的实际场景中去。


文中白老师提到的文章下载链接为: 

https://pan.baidu.com/s/19zAhdrpRH1M5JpAwjpqnsw


深度学习大讲堂
深度学习大讲堂

高质量原创内容平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息。

入门深度神经网络文本理解
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

逻辑异或技术

在数字邏輯中,逻辑算符互斥或閘(exclusive or)是对两个运算元的一种邏輯分析类型,符号为XOR或EOR或⊕。与一般的逻辑或OR不同,当两两数值相同为否,而数值不同时为真。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

多任务学习技术

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

暂无评论
暂无评论~