在过去的数年中,腾讯数平精准推荐(Tencent-DPPR)团队一直致力于实时精准推荐、海量大数据分析及挖掘等领域的技术研发与落地。特别是在广告推荐领域,团队自研的基于深度在线点击率预估算法及全流程实时推荐系统,持续多年在该领域取得显著成绩。而在用户意图和广告理解上,借助于广告图片中的文本识别以及物体识别等技术手段,可以更加有效的加深对广告创意、用户偏好等方面的理解,从而更好的服务于广告推荐业务。
OCR(Optical Character Recognition, 光学字符识别)是指对输入图像进行分析识别处理,获取图像中文字信息的过程,具有广泛的应用场景,例如场景图像文字识别、文档图像识别、卡证识别(如身份证、银行卡、社保卡)、票据识别等。而场景文字识别(Scene Text Recognition,STR) 不需要针对特殊场景进行定制,可以识别任意场景图片中的文字(如图1所示)。相较于传统OCR,场景图片中的文本检测与识别面临着复杂背景干扰、文字的模糊与退化、不可预测的光照、字体的多样性、垂直文本、倾斜文本等众多挑战。
图1 场景图片示例
场景文字识别这一问题在15~20年前就出现了相关的研究工作[1-3],它与传统OCR的重要区别是需要将照片或视频中的文字识别出来,其主要分为两个步骤:
将这两个步骤合在一起就能得到文字的端到端识别(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的场景文本检测方法是一种用于任意方向文本的端到端文本检测方法,能够有效解决文字尺度不一、形态各异,和检测器对尺度过于敏感等问题,大幅提高了检测环节的精度。
(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技术相关需求的业务同行进行交流合作,持续打造业界一流的数据、算法和系统。
技术&业务合作请咨询: hongfawang@tencent.com,亦长期招聘优秀算法工程师与实习生,欢迎联系。
声明:由于篇幅所限,[数字]标注部分的参考文献暂未列出。