在过去的数年中,腾讯数平精准推荐(Tencent-DPPR)团队一直致力于实时精准推荐、海量大数据分析及挖掘等领域的技术研发与落地。特别是在广告推荐领域,团队自研的基于深度在线点击率预估算法及全流程实时推荐系统,持续多年在该领域取得显著成绩。而在用户意图和广告理解上,借助于广告图片中的文本识别以及物体识别等技术手段,可以更加有效的加深对广告创意、用户偏好等方面的理解,从而更好的服务于广告推荐业务。
OCR(Optical Character Recognition, 光学字符识别)是指对输入图像进行分析识别处理,获取图像中文字信息的过程,具有广泛的应用场景,例如场景图像文字识别、文档图像识别、卡证识别(如身份证、银行卡、社保卡)、票据识别等。而场景文字识别(Scene Text Recognition,STR) 不需要针对特殊场景进行定制,可以识别任意场景图片中的文字(如图1所示)。相较于传统OCR,场景图片中的文本检测与识别面临着复杂背景干扰、文字的模糊与退化、不可预测的光照、字体的多样性、垂直文本、倾斜文本等众多挑战。
图1 场景图片示例
场景文字识别这一问题在15~20年前就出现了相关的研究工作[1-3],它与传统OCR的重要区别是需要将照片或视频中的文字识别出来,其主要分为两个步骤:
- 对照片中存在文字的区域进行定位(Text Detection),即找到单词或文本行(Word/Line-level)的边界框(Bounding Box);
- 对定位后的文字进行识别(Text Recognition)。
将这两个步骤合在一起就能得到文字的端到端识别(End-to-end Recognition)结果。通常来说,实现场景文字的检测是首要的也是最重要的任务。
数平精准推荐团队在OCR领域深耕细作多年,自研的基于深度学习方法的文本检测与识别技术多次在ICDAR竞赛数据集上刷新世界纪录,特别是在2017年举办的第14届ICDAR官方竞赛中,斩获了“COCO-TEXT”、“医学文献图像”等挑战任务中的4项冠军,获得了业内广泛好评,同时也再次证明了团队在OCR领域的技术研发能力。本文将主要介绍数平精准推荐团队的文本检测技术。
数平精准推荐团队场景文本检测技术
1、文本检测技术
文本检测是场景文本识别的前提条件,要解决的问题是如何在杂乱无序、千奇百怪的复杂场景中准确地定位出文字的位置。由于背景的复杂性、光照的多变性以及字体的不可预测性等原因,场景文本检测面临着极大的挑战。场景文本检测的发展历程与绝大多数的计算机视觉任务相似,传统的检测方法包括基于连通域的方法[4][5],以及基于滑动窗口的方法[6-8],自2014年起,基于深度学习的方法[9-17]逐渐成为主流方法。
(1)基于连通域的方法
该类方法认为场景图像中的文字一般都是作为连通域出现,这类方法一般可以分为连通域提取和文字连通域判别两个环节。其中,连通域提取环节会将图像中的所有连通域提取出来作为备选,文字连通域判别环节则会根据分类器或者启发式规则判断提取的连通域到底是文字连通域还是背景连通域。
图2 基于连通域的文本检测方法流程图
(2)基于滑动窗口的方法
将场景文字作为一类特殊的目标,使用类似于目标检测的方法对场景文字进行定位。首先从每一个滑动窗口中提取若干特征,然后将提取的特征送入事先训练好的分类器判断当前滑动窗口中是否包含文字,最后需要通过二值化来精确定位场景文本的位置。
图3 基于滑动窗口的文本检测方法流程图
(3)基于深度学习的方法
近年来,深度学习因其强大的学习能力以及广泛的适用性,已经成为人工智能领域最热门的方向之一。虽然基于连通域和滑动窗口的方法在传统OCR任务能够获得不错的效果,但在更为复杂的场景图像文本检测任务中却完全落后于深度学习方法。基于深度学习的文本检测方法使用效果更加鲁棒的高层语义特征,利用更多的数据去拟合更复杂、泛化能力更强的模型,在场景图片文本检测中取得了突破性进展。在基于深度学习的文本检测方法中,使用最广泛的是基于Region Proposal的方法[9-12],其次是基于图像分割的方法[13-16],以及其他方法[17]等。
2、数平精准推荐文本检测技术
(1)基于Rotation-RPN的文本检测方法
在文本检测领域,基于深度卷积神经网络的算法已成为主流方法,如基于回归的YOLO[18]、SSD[19]和基于RegionProposal两阶段的Faster RCNN[20]、R-FCN[21]等。在基于深度卷积网络的物体检测框架中,每一层卷积相当于一层滤波器,多层滤波器的串联可以使最有效的特征被传递到最后,再根据文字目标与物体目标的差异,针对性地改进检测任务的实现机制,能够获得良好的文本检测效果[9-12]。
目前,基于回归的算法在物体检测任务中并没有取得明显优于Faster-RCNN的检测效果,主要原因在于两阶段的算法存在class-balancing。经典的Faster RCNN框架是针对通用物体检测而设计的,但在文本检测这一比较特殊的应用中,则有较多不太一样的地方。例如,Faster RCNN中Anchor的设置并不适合文本检测任务,而是针对物体检测任务来设计的,需要调节;另外,Anchor为正矩形,而文字存在倾斜畸变等,如果用正矩形检测,得到的文本检测结果无法满足后续对文字进行识别的要求。
结合场景图片中文字排列具有不规则、多方向(水平、倾斜、垂直等)、尺寸大小不一等特性,数平精准推荐团队受到RRPN[11] Rotation Proposals的启发,基于Faster-RCNN物体检测模型,研发了一种用于任意方向文本的端到端文本检测方法,技术架构图如图4所示。
图4 基于Rotation-RPN的场景文本检测模型架构图
我们从整体上自动处理文本行/文本边界框,自研的基于Rotation-RPN的文本检测方法主要包括三部分:基础卷积网络、Rotation-RPN网络、Rotation-ROI-Pooling,其中几个关键点如下:
- 场景图像中并非所有文字都是水平的,存在着大量其他排列分布的场景文本,如倾斜文本、垂直文本。我们在物体检测技术架构的基础上,将角度信息融入到检测框架中,目的在于回归任意方向的文本框。实验证明,Rotation-RPN具备检测自然场景下任意方向文本的能力,尤其能够检测出具有语义信息的倾斜文本和垂直文本;
- 尺度问题一直都是深度物体检测方法的核心问题之一,针对检测模型对文字大小较敏感的问题,我们设定了不同尺寸的Proposal,融合不同尺度卷积特征并进行多尺度的池化过程,用于检测不同尺度的文本;
- 为了实现对任意方向的文本进行自动处理,我们设计了旋转感兴趣区域(RRoI)池化层,RRoI池化层能够将任意方向、任意宽高比或尺寸的候选旋框投影到固定大小的特征图,解决了传统RoI池化层只能处理轴对齐候选框的问题;
- 传统的非极大值抑制(NMS,Non Maximum Suppression)算法只能处理轴对齐的候选框,为了解决任意旋转方向重叠文本候选框的NMS问题,我们设计了面向旋转候选框的非极大值抑制(Inclined-NMS,Inclined Non Maximum Suppression)算法,Inclined-NMS算法考虑了倾斜候选框的特性进行择优选取。
基于Rotation-RPN的场景文本检测方法是一种用于任意方向文本的端到端文本检测方法,能够有效解决文字尺度不一、形态各异,和检测器对尺度过于敏感等问题,大幅提高了检测环节的精度。
(2)基于联结文本建议网络的文本检测方法
一般物体检测中只有一个独立的目标(如人、猫、狗等),与一般物体检测不同的是,文本是一个Sequence(字符、字符的一部分、多字符组成的一个Sequence)。基于CTPN方法[10]的基本思想,通过在卷积网络的特征图上提取Anchors,并计算每个Anchor的得分,并在计算得分的过程中,综合利用上下文信息、每行的文本序列特性,采用RNN进行建模以判断文字的得分。
图5 基于联结文本建议网络的文本检测模型架构图
传统Bottom-up的检测方法没有考虑上下文,鲁棒性较差,复杂繁琐,使得文本检测性能难以突破瓶颈。我们通过Top-down的方式,即先检测文本区域,再找出文本行(...不都这样吗),获得了相比传统检测方法更好的结果。
实验证明,通过CNN提取深度特征,并结合RNN进行序列学习,能够大幅提高检测精度,尤其对于长文本(水平及具有一定倾斜角度的长文本)的检测。
(3)基于全卷积网络的文本检测方法
图6 基于FCN的文本检测流程图
基于全卷积网络(Fully Convolutional Network,FCN)的方法[15]同时使用分割(Segmentation)和边界框回归(Bounding Box Regression)的方式对场景文字进行检测,直接产生单词或文本行级别的预测(旋转矩形或任意四边形),通过非极大值抑制产生最终结果。
图7 基于FCN的文本检测网络结构图
我们设计了基于FCN的文本检测方法,文本检测网络(如图7所示)产生两种输出:Score Map和文本边界框的回归结果(回归目标为矩形时是5自由度的坐标和角度、回归任意四边形时是8自由度的坐标)。其中,分数图的像素值在[0,1],代表了在同样的位置预测的几何尺寸的置信度,分数超过预定义阈值的几何形状被认为是有效的结果预测,最后通过非极大值抵制产生最终文本检测结果。
3、部分场景图片文本检测效果图
腾讯数平精准推荐团队自研的OCR技术目前已经广泛服务于公司内部的多个业务。在各类场景中,例如广告素材、游戏图片、敏感广告等,都有良好的效果,部分文本检测效果如图8所示。
(1)广告图片
(2)自然场景图片
(3)游戏图片
(4)银行卡图片(部分内白为保护隐私)
图8 场景图片&垂直应用图片文字检测示例
目前数平精准推荐团队研发的OCR相关技术在公司内部众多产品中得到使用,例如:腾讯慧眼、手Q看点、话题圈、天御、社交广告等业务,尤其在广告推荐的场景中,通过OCR技术对广告的素材创意进一步的识别和理解,大幅提升了用户点击率预估的效果。
腾讯数平精准推荐团队一直致力于实时精准推荐、海量大数据分析及挖掘等领域的技术研发与落地。在OCR方面,我们已经有了多年积累下的各项技术积累,愿意与任何有OCR技术相关需求的业务同行进行交流合作,持续打造业界一流的数据、算法和系统。
OCR识别模块属于多分类问题,对识别效果影响大的因素包括:复杂背景、艺术字体、低分辨率、非均匀光照、图像退化、字符形变、多语言混合、文本行复杂版式、检测框字符残缺,等等。对比英文识别,中文OCR具备更强挑战。例如英文数字可建模为62分类问题,若要识别中文10000个汉字,则需建模为10000分类问题。此外,中文的笔画复杂度、形近字数量、简繁体数量、版式排列、词语组合数量,都比纯英文识别挑战更大。
社交广告图片的部分挑战场景如图1所示:
(图1)
社交广告图片中有挑战的文本行如图2所示:
(图2)
在2013年之前,传统算法在OCR领域占主导地位,其标准流程包含文本检测、单字符分割、单字符识别、后处理等步骤,如图3所示。
(图3)
此处介绍传统方法中具有代表性的PhotoOCR[1]算法。PhotoOCR是谷歌公司提出的一套完整OCR识别系统,包含文字区域检测、文本行归并、过分割、基于Beam Search的分割区域的组合、基于HOG特征和全连接神经网络的单字符分类、基于ngram方法的识别结果校正。PhotoOCR系统覆盖传统OCR流程每一环节,通过流程细化与每一环节的多类技术集成化,在2013年取得了优异结果,同样也暴露传统方法诸多不足,例如:需要将OCR系统割裂成过多环节、需要在每个环节上引入过多人工干预、需要根据场景设定方法集成、难以做到端到端训练,等等。
自2012年AlexNet[2]在ImageNet竞赛夺冠以来,深度学习方法开始在图像视频领域大幅超越传统算法,并开始扩展到OCR领域,包括基于卷积神经网络(Convolutional Neural Network, CNN)和基于长短期记忆(Long Short-Term Memory, LSTM)的方法等。基于CNN的识别算法,代表性论文是[3]。该方法由两部分构成,检测模块采用基于 region proposal 和滑动窗的方法切出词条,识别部分采用 7层CNN对整词分类,如图4所示。
(图4)
此论文另一大贡献是提供了大规模合成数据的方法。标注文字的成本远高于标注人脸、物体等数据,高标注成本限制了OCR数据集规模。因此,合成样本方法的出现,有效缓解了深度网络对于OCR真实标注数据的依赖,极大推动了OCR识别领域的深度算法的发展。
CNN方法的出现,最大功能是在特征工程及单字符分类领域替代传统方法,但仍然未能避免传统思路中难度最大的二值化和字符分割问题。在复杂的自然场景、广告场景中,CNN分类方法仍难以满足需要。
4 腾讯DPPR团队场景文字识别技术
本章重点介绍腾讯数平精准推荐团队(Tencent-DPPR)的深度OCR算法。考虑到传统分类以及CNN单字符分类的诸多不足,本团队基于长短期记忆(Long Short-Term Memory, LSTM)网络的技术路线,进行序列化(词汇、短语、语句等)识别。
4.1. 基于联结时序分类
与语音识别问题类似,OCR可建模为时序依赖的词汇或者短语识别问题。基于联结时序分类(Connectionist Temporal Classification, CTC)训练RNN的算法,在语音识别领域[4]显著超过传统语音识别算法。一些学者尝试把CTC损失函数借鉴到OCR识别中,CRNN [5]就是其中代表性算法。CRNN算法输入100*32归一化高度的词条图像,基于7层CNN提取特征图,把特征图按列切分(Map-to-Sequence),每一列的512维特征,输入到两层各256单元的双向LSTM进行分类。在训练过程中,通过CTC损失函数的指导,实现字符位置与类标的近似软对齐。
CRNN借鉴了语音识别中的LSTM+CTC的建模方法,不同点是输入进LSTM的特征,从语音领域的声学特征(MFCC等),替换为CNN网络提取的图像特征向量。CRNN算法最大的贡献,是把CNN做图像特征工程的潜力与LSTM做序列化识别的潜力,进行结合。它既提取了鲁棒特征,又通过序列识别避免了传统算法中难度极高的单字符切分与单字符识别,同时序列化识别也嵌入时序依赖(隐含利用语料)。本团队也多处改进LSTM+CTC的算法,并应用到自然场景图像、银行卡识别、身份证识别等多个任务中。
在CNN一侧,我们在卷积层采取类似VGG网络的结构,减少CNN卷积核数量的同时增加卷积层深度,既保证精度,又降低时耗。
在RNN一侧,我们针对LSTM有对语料和图像背景过拟合的倾向,在双向LSTM单元层实现了Dropout策略。
在训练技巧一侧,我们针对CTC loss对初始化敏感和收敛速度慢的问题,采用样本由易到难、分阶段训练的策略。
在测试阶段,针对字符拉伸导致识别率降低的问题,我们保持输入图像尺寸比例,根据卷积特征图的尺寸动态决定LSTM时序长度。
我们使用的算法的网络结构如图5所示,由于以上所述的多处改进,我们的算法速度快且精度高,在身份证、银行卡等业务上取得98%以上识别准确率。
(图5)
4.2. 基于注意力机制
近两年来,注意力机制在图像描述[6]、语音识别[7]、自然语言处理[8][9]等领域大放异彩,本团队也开始尝试把此机制引入到OCR识别模块。注意力机制能够聚焦词条图像特征向量的ROI,在当前时刻实现特征向量与原图字符区域的近似对齐,提升深度网络中的Encoder-Decoder模型的聚焦度与准确率。
注意力机制实现方式多样,在基于注意力模型识别法语街景路标的论文[10]中,作者首先把同个路标的4个不同视角图像分别输入到相同Inception-v3 CNN网络提取特征图,对拼接后的特征图,进行二维空间注意力加权,加权后的结果输入到单向LSTM层解码分类。相比于LSTM+CTC模型,注意力模型更显式的把当前时刻待分类字符与原图位置对齐,同时也更显式的利用前一时刻语料依赖。根据文献[10]的实验,对比于LSTM+CTC模型,注意力模型配合自回归连接,在法语街景路牌数据集上,除了精度提升6%,收敛速度也快了2倍。
我们在注意力机制上,与文献[10]的设计不同,我们采用的网络结构如图6所示。
特征编码阶段:我们采取类似于VGG的10层卷积网络。
特征解码阶段:我们结合了注意力机制与LSTM层。在注意力机制上,我们采用基于内容和基于历史相结合的混合方法。
- 基于内容的注意力方法:使用上一步预测的字符向量,以及预测该向量的加权特征向量作为联合特征,联合特征向量作为LSTM的 输入,产生注意力机制的查询向量;
- 基于历史的注意力方法:会使用上一步的注意力,我们采用CNN从上一步的注意力提取特征作为注意力机制中的索引向量的一部分。
除了混合注意力模型的改进,我们也在训练数据与技巧等方面多处改进。我们也引入图像随机填补、随机破坏注意力模块所输入的语序依赖、随机拉伸、依据每个batch内样本动态填补图像长度,等等。通过持续优化,当前我们的注意力模型在广告图像、自然场景图像等极具挑战的场景取得了86%以上端到端准确率。
(图6)
5 当前效果
当前腾讯数平精准推荐团队(Tencent-DPPR)的OCR识别算法,能够应对艺术字、模糊、低分辨率、字体变形、字符残缺等多类有挑战场景,在广告场景已经取得良好效果。
5.1. 多样化版式(横竖版式共存):
(图7)
5.2. 艺术字与字体变形:
(图8)
5.3.低分辨率与模糊字符:
(图9)
5.4. 检测框有残缺:
(图10)
5.5. 检测框过大:
(图11)
5.6. 复杂或非均匀背景:
(图12)
5.7. 多语言混合:
(图13)
6 未来工作展望
本文介绍了腾讯数平精准推荐团队(Tencent-DPPR)的OCR识别算法,包括识别算法的演进之路以及4个代表性方法。虽然我们当前已采用基于联结时序分类和空间注意力机制的深度RNN网络,效果有明显提升,但识别模块仍存在多个挑战有待解决,包括:过低分辨率图像、高噪声图像、强变形艺术字、复杂排版文字、超长文本行、残缺过多的检测框等。此外,如何显式利用语料信息弥补图像质量降低时识别能力明显退化的问题,也需进一步研究。OCR技术在广告图像以及其他形式图像的研究与落地,仍存在巨大潜力尚待挖掘,本团队也会继续精耕细作。
转自:https://cloud.tencent.com/developer/article/1150987
原文发布于微信公众号 - IT技术精选文摘(ITHK01)
原文发表时间:2018-06-05
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
发表于 2018-06-22