Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

谢恩泽作者

自然场景下的文字检测:从多方向迈向任意形状

题外话

本次分享的主题是文字检测(Text Detection),分享者是旷视研究院检测组算法研究员谢恩泽。通过这篇文章,可以一窥旷视研究院近两年在该方向的工作与思考,并希望为计算机视觉社区带来启发,进一步推动文字检测技术的研究与落地。

文字检测是文字识别的第一站,旷视研究院的努力主要体现在紧紧围绕文字检测领域顽固而核心的问题展开,攻坚克难,功夫花在刀刃上,比如文字形状变化及 FP 问题等。

本文主要介绍自然场景下的文字检测的一些定义、挑战和旷视研究院检测组的相关工作,主要包括:1)SPCNet(AAAI 2019),2)PSENet(CVPR 2019) ,3)ICDAR 2019 ArT 检测冠军的经验分享。

导语

文字在人类生活中不可或缺,它代表着人类文明的发展,是人与人交流的载体。文字承载了丰富和准确的高级语义信息,人们可以通过文字传达思想和情感。

自然场景下的文字检测是计算机视觉目标检测的基础研究之一,近年在深度卷积神经网络的推波助澜下飞速进展,其目的是给定一张图像,定位出其中的文字区域。

一般情况下文字检测分为单词和文本行两个级别,如下图所示:

文字检测是很多计算机视觉任务的前置步骤,比如文字识别,身份认证等,因此,文字的精准定位既十分重要又具备挑战。 相较于通用检测,文字具有多方向、不规则形状、极端长宽比、字体、颜色、背景多样等特点,因此,往往在通用物体检测上较为成功的算法无法直接迁移到文字检测中。

水平/多方向文字检测

深度学习时代,传统文字检测算法被刷新,水平文字和多方向文字检测技术获得大发展,经典算法有: 1)CTPN[1],2)EAST[2],3)TextBoxes[3],4)TextBoxes++[4],5) SegLink[5],6)RRPN[6] 等。

上述算法主要从通用物体检测中汲取灵感,比如 CTPN、RRPN 基于两步法检测器Faster R-CNN;TextBoxes 系列和 Seglink 基于一步法检测器 SSD;EAST 基于 Anchor Free 检测器 DenseBox 和 UnitBox。

下面简单介绍一下这几个算法的优势和局限性:

  • CTPN: 通过 Faster R-CNN+LSTM 预测固定宽度的 text proposal,在后处理部分再将这些小文本段连接起来,得到文本行。只能检测水平文本。

  • EAST: 继承 DenseBox 和 UnitBox, 通过预测 shrink 的文字区域,并对区域内的每个像素预测它到上下左右的四个距离和一个旋转角度,Pipeline 十分简单,同时速度较快。

  • TextBoxes/TextBoxes++: TextBoxes 基于 SSD 修改卷积核尺寸,更适合文字检测,但是只能检测水平文字。TextBoxes++ 基于 TextBoxes, 将回归水平 box 改为回归上下左右 4 个点,可以检测倾斜文字。

  • RRPN:基于 Faster R-CNN,通过引入 rotate anchor,实现多方向的文字检测,但是引入的 anchor 成倍增加,速度较慢,计算量也较大。

这些算法在水平和多方向文字检测数据集上不断刷出 SOTA 成绩,但是无法很好地建模弯曲文字。

弯曲文字检测

在自然场景中,弯曲文字也同样很常见,比如最经典的星巴克 LOGO,如下图所示。 如何科学地建模弯曲文字是一个很有挑战的问题。

弯曲文字检测的发展史要从两个重要的数据集说起:1)Total-Text[9] 和 2)CTW-1500[10]。2017年提出两个数据集之后,大量学术界和工业界关于弯曲文字的研究纷至沓来。旷视研究院是最早针对弯曲文字检测展开研究并提出自身见解的机构之一。

弯曲文字检测的两种方法

经过一年多的发展,弯曲文字检测技术形成两条主线: 1)Top-Down 和 2)Bottom-Up方法。

Top-Down方法

将弯曲文字检测转化为实例分割问题,如下图所示,通过检测水平 box 和分割 box 内的实例,可以很好地解决弯曲文字检测问题。现有 Top-Down 方法大多基于 Mask R-CNN,比如 SPCNet[7],PMTD[11]。

Bottom-Up方法

将弯曲文字检测转化为语义分割问题,通过像素级的分类去判断文字区域。但是由于很多情况下文本行相邻较近,现有 Bottom-Up方法往往通过预测中心线定位文字实例,并通过不同方法建模完整的文字区域,比如 PSENet[8],TextSnake[12]。

弯曲文字检测存在的问题

False Positives

由于自然场景中不少 False Positives(FP)和文字具有相似的纹理,比如圆盘、栅栏,从而很容易被误检为文字。旷视研究院检测组在 AAAI2019 提出 SPCNet[7],将语义分割信息引入 Mask R-CNN,并对文字实例重新打分,从而抑制 FP 的检测。

Pipeline过于复杂,无法达到实时性

基于 Top-Down 方法的弯曲文字检测虽能达到 SOTA 性能,但流程过于复杂,超参数太多,还无法实时运行。

面对这一问题,旷视研究院检测组和南京大学合作,在 CVPR 2019 提出 PSENet[8],通过一个简单的语义分割框架分割出多尺度的文字,并通过渐进式扩展算法合并得到最终结果,在CTW1500 数据集取得 26FPS 的运行速度。

总而言之,目前弯曲文字检测技术主要分为自上向下(Top-Down)和自下向上(Bottom-Up)两条路。

方法

旷视研究院检测组是最早发表弯曲文字检测研究的机构之一,并在 Top-Down 和 Bottom-Up 两个方向分别贡献了一篇论文,分别针对 FP 和实时性两个问题。

接下来介绍的两篇文章都是针对任意形状文字检测而建模的,不仅在传统的水平文字/多方向文字检测任务中效果很好,更是可以灵活地检测弯曲和不规则的文本。

Top-Down方法:SPCNet

本文以 Mask R-CNN 为 Baseline, 并在 Mask R-CNN 的基础上引入 Text Context 模块和 Re-Score 机制,从而提高检测准确率,降低 FP 的出现。

为什么要用 Mask R-CNN?首先,弯曲文字检测可以转化为一个实例分割问题,而 Mask R-CNN 是当前最优的实例分割框架,大多数 COCO Instance Segmentation 冠军队伍都采用Mask R-CNN 作为 Baseline。

本文同样采用 Mask R-CNN 取得了很高的 Baseline,通过水平 box 定位出文字区域,通过分割文字实例得到精准的轮廓。

整个网络流程如下图所示,(a) 是 FPN 结构,(b) 是 text context(TCM)模块,(c) 是Mask R-CNN 的分支,(d) 是 TCM 具体的方法。

整个方法在 Mask R-CNN 基础上多一个分支做文字语义分割,并把语义分割的中间特征和检测分支的特征融合起来,再把语义分割的预测结果作为一个 attention mask 乘回 feature map,起到一个对特征 attention 的作用。

下图是重打分的一个可视化说明,绿色的是水平 box,红色的是 instance seg 结果,下面的是全局语义分割结果,旷视研究院把 instance seg 结果投影到语义分割图上,并在该区域内算一个响应值,得到 instance score,并和原来的 classification score 融合得到最终的 score。

为什么要引入Rescore?下图是 re-score 模块的可视化图。由图可知,Mask R-CNN 将水平box 的分类分数最终的 score,对于倾斜文本不是很友好,并且可能会引入 FP,我们在这里将语义分割图上的响应和原本的 score 融合起来,得到的 fus-score 可以缓解 Mask R-CNN 直接移植到文字检测上分类分数不准的问题。

最终,SPCNet 在几个标准数据集 ICDAR2013、ICDAR2015、ICDAR2017 和 Total-Text 上都取得了 state-of-the-art 结果。

一些可视化效果图如下。

在 ICDAR2015 上对比一些经典方法(EAST、RRPN、TextBoxes++)的 FP 情况,可以看到我们的方法可以有效抑制 FP。

Bottom-Up方法:PSENet

  • 论文链接:https://arxiv.org/abs/1903.12473

  • 其他论文解读:https://zhuanlan.zhihu.com/p/37884603

本文由旷视检测组和南京大学合作,从另一种思路去解决弯曲文字检测的问题,即像素级语义分割。考虑到基于 bounding box的方法无法很好地建模弯曲文字,语义分割方法对文字进行像素级分类,可以很容易建模弯曲文字,但是对于挨得很近的文本实例则无法区分,如下图所示。

直接用语义分割来检测文字又会遇到新问题:很难分离靠的很近的文字块。因为语义分割只关心每个像素的分类问题,所以即使文字块的一些边缘像素分类错误对 loss 的影响也不大。

对于这个问题,一个直接的思路是:增大文字块之间的距离,使其离得远一点。基于这个思路,旷视研究院引入了新的概念 “kernel”,顾名思义就是文字块的核心。

从下图可知:利用“kernel”可以有效地分离靠的很近的文字块。

首先看一下网络结构:

网络采用 FPN 结构,输入一张图片,网络会预测出带有不同尺度的 kernels 的分割结果,并通过渐进式扩展算法去重建文字区域。

本文通过引入渐进式扩展算法(PSE),可以高效地基于多个尺度的 kernels 重建出文字区域。具体流程如下:

该算法主要是对于每个 kernel,向其周围上下左右四个方向扩展像素,直到到达最大的 kernel 的分割边界或者两个 kernel 在扩展时冲突。 因此该算法可以区分挨得很近的文字实例。

PSENet 在两个弯曲文字检测数据集上都取得了 SOTA 结果,并在多方向数据集上也取得了令人满意的结果。

一些可视化效果图如下。

最重要的是,在压缩 backbone 和图片分辨率的情况下,PSENet 可以做到实时性检测,而检测结果同样具有竞争力,这是第一个在弯曲文字数据集上实现 >20FPS 的算法。

ICDAR 2019 Arbitrary-Shaped Text Detection 经验分享

ICDAR “Robust Reading Competitions” 竞赛是评估自然场景/网络图片/复杂视频文本提取与智能识别新技术进展的权威国际赛事及评测标准,竞赛中涌现出诸多方法持续推动业界新技术的创新与应用。参与者不乏国内外顶尖 CV 公司团队和知名高校实验室团队。

旷视检测组的几名实习生参加了本次比赛,这个部分主要分享一些旷视检测组在 ICDAR2019 ArT 比赛中获得冠军的一些经验。

比赛获奖链接如下:rrc.cvc.uab.es/files/IC

首先放出比赛结果:

简单介绍一下任意形状文本检测的任务:传统的物体检测的方法使用的是四点框或者是矩形框,但是因为文字本身的形状具有多变性,后续的一些弯曲文字的数据集比如 Total Text 和 CTW 都是采用多个点的标注形式,而这次 ArT 比赛使用的数据是目前为止最大的弯曲文字数据集,一共有 10166 张图像(5603 张训练图像和 4563 张测试图像)。

本文方法是 base 在 Mask R-CNN 之上,网络整体流程如下:

对于多点的标注,先求其最小外接的矩形作为 Mask R-CNN 的 gt box,而多点的标注就作为 gt mask,一个简单的可视化效果如下图所示:

上图中,黄色框是训练数据的 gt 的标注,而绿色的矩形是我们根据 gt 生成的 box。

当然,只有 Mask R-CNN 是不够的,实际中我们会遇到各种问题,比如说文字有一个很神奇的特性:文字框的某些部分还是文字,但是物体检测中的物体是没有这种局部性的。所以有时候会出现断框的情况,拿上图举例,可能你检测模型的结果是“天主”出了一个框,“堂”出了一个框,这样在评价指标下肯定是不如“天主堂”出一个框更好的。

虽然对于这类问题我们可以采取后处理方法去解决,但是后处理方法要么逻辑复杂很难写,要么效果不理想,解决的方法不是很本质,因此最好的方法是在网络层面解决这个问题。

再比如一些图像因为拍摄视角的原因可能会导致文字本身的检测变得非常困难,尝试采取 affine变换也不能很好地解决等等问题。

那么怎样解决上述的一些问题呢?

在这次比赛中,对于第二个问题我们借鉴了 SeNet 中 attention 的做法,这样使得我们的模型能更好地 focus 在需要关注的特征上,这种做法可以有效检测出一些因为视角问题导致的 bad case。

一个简单的例子如下图所示(绿色部分是我们模型检测结果,红色是 gt box 结果,图像来自我们自己切出来的 validation set,下同):

另外对于预测的 box 的情形,我们采用了增大模型感受野的方法,除了加深网络本身的层数之外,我们还在检测模型的中加入了 PSP 模块,这样做可以使得我们可以 cover 住一些极致长宽比的文字,可以有效杀掉模型中的 FP,使得模型在高 IoU 的结果下面更好。

效果如下图所示:

上图中的“爱酷儿”和“品牌折扣店”很容易检测成两个 box,但是采用我们的方法增大了模型的感受野之后就可以更好地解决这个问题,相比一些繁琐的后处理的方法也更加有效。

可以看到,我们在 IoU>0.5 和 IoU>0.7 两个指标下的分值上都是第一,而且在高 IoU 下的优势更加明显,这表明相比其他队伍的参赛模型,我们的模型预测的 box 也更加精准。

我们在最后的 Ensemble 中融合了Shufflenet v2 作为 Backbone 的模型,Shufflenet v2 也是旷视的工作。

当然,实际比赛中的问题远不止这些,篇幅原因我们拿上述两个问题简单分析一下。

感谢队友@王枫(计算所) @胡立(浙大) @孙培泽(西交) @王文海(南大) 在比赛中做出的贡献,这是我们几个在旷视Detection组实习期间一起做的工作。

最后,欢迎来旷视研究院Detection组来实习,简历可以发送至旷视研究院检测组Leader俞刚:yugang@megvii.com。

作者简介

谢恩泽,同济大学计算机硕士,旷视研究院 Detection Team算法研究员,研究方向文字检测、识别等;文字检测算法 SPCNet 和 PSENet 作者;2019 年参加文字领域权威比赛ICDAR2019 挑战赛 Arbitrary-Shaped Text Detection 获得冠军。

参考文献

[1]Tian, Z.; Huang, W.; He, T.; He, P.; and Qiao, Y. 2016. Detecting text in natural image with connectionist text proposal network. In ECCV.

[2]Zhou, X.; Yao, C.; Wen, H.; Wang, Y.; Zhou, S.; He, W.; and Liang, J. 2017. East: an efficient and accurate scene text detector. In CVPR.

[3]Liao, M.; Shi, B.; Bai, X.; Wang, X.; and Liu, W. 2017. Textboxes: A fast text detector with a single deep neural network. In AAAI.

[4]Liao, M.; Shi, B.; and Bai, X. 2018. Textboxes++: A single- shot oriented scene text detector. IEEE Transactions on Im- age Processing.

[5]Shi, B.; Bai, X.; and Belongie, S. 2017. Detecting oriented text in natural images by linking segments. CVPR.

[6]Ma, J.; Shao, W.; Ye, H.; Wang, L.; Wang, H.; Zheng, Y.; and Xue, X. 2018. Arbitrary-oriented scene text detection via rotation proposals. IEEE Transactions on Multimedia.

[7]E.Xie,Y.Zang,S.Shao,G.Yu,C.Yao,andG.Li.Scenetext detection with supervised pyramid context network. arXiv preprint arXiv:1811.08605, 2018.

[8]Wang W, Xie E, Li X, et al. Shape Robust Text Detection with Progressive Scale Expansion Network[J]. arXiv preprint arXiv:1903.12473, 2019.

[9]C. K. Ch’ng and C. S. Chan. Total-text: A comprehensive dataset for scene text detection and recognition. In ICDAR, 2017.

[10]Y. Liu, L. Jin, S. Zhang, and S. Zhang. Detecting curve text 930 in the wild: New dataset and new solution. 2017.

[11]Jingchao Liu, Xuebo Liu, Jie Sheng, Ding Liang, Xin Li, Qingjie Liu. Pyramid Mask Text Detector[J] arXiv preprint arxiv:1903.11800

[12]Long S, Ruan J, Zhang W, et al. Textsnake: A flexible representation for detecting text of arbitrary shapes[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 20-36.

CVer
CVer

一个专注于计算机视觉方向的平台。涉及目标检测,图像分割,目标跟踪,人脸检测&识别,姿态估计,GAN和医疗影像等。

理论文字检测
3
相关数据
深度学习技术

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

SSD技术

一种计算机视觉模型。论文发表于 2015 年(Wei Liu et al.)

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

计算机视觉技术

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

神经网络技术

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

网络流技术

在图论中,网络流(英语:Network flow)是指在一个每条边都有容量(capacity)的有向图分配流,使一条边的流量不会超过它的容量。通常在运筹学中,有向图称为网络。顶点称为节点(node)而边称为弧(arc)。一道流必须匹配一个结点的进出的流量相同的限制,除非这是一个源点(source)──有较多向外的流,或是一个汇点(sink)──有较多向内的流。一个网络可以用来模拟道路系统的交通量、管中的液体、电路中的电流或类似一些东西在一个结点的网络中游动的任何事物。

准确率技术

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

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

旷视科技机构

旷视成立于2011年,是全球领先的人工智能产品和解决方案公司。深度学习是旷视的核心竞争力,我们打造出自研的AI生产力平台Brain++并开源其核心——深度学习框架“天元”,实现了算法的高效开发与部署。在持续引领技术进步的同时,我们推动AI产业的商业化落地,聚焦个人物联网、城市物联网、供应链物联网三大赛道,为个人用户带来更出色的美学体验与安全保障、让城市空间更有序、并帮助企业实现工业、仓储数字化升级。我们提供包括算法、软件和硬件产品在内的全栈式、一体化解决方案。

https://www.megvii.com
目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

推荐文章
暂无评论
暂无评论~