共计 6439 个字符,预计需要花费 17 分钟才能阅读完成。
简介: 丰盛精确的地图数据大大晋升了咱们在应用高德地图出行的体验。相比于传统的地图数据采集和制作,高德地图大量采纳了图像识别技术来进行数据的自动化生产,而其中场景文字辨认技术占据了重要地位。商家招牌上的艺术字、LOGO 形形色色,文字背景简单或被遮挡,拍摄的图像品质差,如此简单的场景下,如何解决文字辨认技术全、准、快的问题?本文分享文字辨认技术在高德地图数据生产中的演进与实际,介绍了文字辨认自研算法的次要倒退历程和框架,以及将来的倒退和挑战。
一 背景
作为一个 DAU 过亿的国民级软件,高德地图每天为用户提供海量的查问、定位和导航服务。地图数据的丰富性和准确性决定了用户体验。传统的地图数据的采集和制作过程,是在数据采集设施实地采集的根底上,再对采集材料进行人工编辑和上线。这样的模式下,数据更新慢、加工成本高。为解决这一问题,高德地图采纳图像识别技术从采集材料中间接辨认地图数据的各项因素,实现用机器代替人工进行数据的自动化生产。通过对事实世界高频的数据采集,使用图像算法能力,在海量的采集图片库中自动检测辨认出各项地图因素的内容和地位,构建出实时更新的根底地图数据。而根底地图数据中最为重要的是 POI(Point of Interest)和路线数据,这两种数据能够构建出高德地图的底图,从而承载用户的行为与商家的动态数据。
图像识别能力决定了数据自动化生产的效率,其中场景文字辨认技术占据了重要地位。不同采集设施的图像信息都须要通过场景文字辨认(Scene Text Recognition,STR)取得文字信息。这要求咱们致力于解决场景文字辨认技术全、准、快的问题。在 POI 业务场景中,辨认算法不仅须要尽可能多的辨认街边新开商铺的文字信息,还须要从中找出领有 99% 以上准确率的辨认后果,从而为 POI 名称的自动化生成铺平道路;在路线自动化场景中,辨认算法须要发现路线标志牌上轻微的变动,日解决海量回传数据,从而及时更新路线的限速、方向等信息。与此同时,因为采集起源和采集环境的复杂性,高德场景文字辨认算法面对的图像情况往往简单的多。次要体现为:
- 文字语言、字体、排版丰盛:商家招牌上的艺术字体,LOGO 形形色色,排版模式各式各样。
- 文字背景简单:文字呈现的背景简单,可能有较大的遮挡,简单的光照与烦扰。
- 图像起源多样:图像采集自低成本的众包设施,成像设施参数不一,拍摄品质差。图像往往存在歪斜、失焦、抖动等问题。
因为算法的辨认难度和辨认需要的复杂性,已有的文本辨认技术不能满足高德高速倒退的业务须要,因而高德自研了场景文字辨认算法,并迭代多年,为多个产品提供辨认能力。
二 文字辨认技术演进与实际
STR 算法倒退次要历程
场景文字辨认(STR)的倒退大抵能够分为两个阶段,以 2012 年为分水岭,别离是传统图像算法阶段和深度学习算法阶段。
传统图像算法
2012 年之前,文字辨认的支流算法都依赖于传统图像处理技术和统计机器学习办法实现,传统的文字识别方法能够分为图像预处理、文字辨认、后处理三个阶段:
- 图像预处理:实现文字区域定位,文字改正,字符切割等解决,核心技术包含连通域剖析,MSER,仿射变换,图像二值化,投影剖析等;
- 文字辨认:对切割出的文字进行辨认,个别采纳提取人工设计特色(如 HOG 特色等)或者 CNN 提取特色,再通过机器学习分类器(如 SVM 等)进行辨认;
- 后处理:利用规定,语言模型等对辨认后果进行改正。
传统的文字识别方法,在简略的场景下能达到不错的成果,然而不同场景下都须要独立设计各个模块的参数,工作繁琐,遇到简单的场景,难以设计出泛化性能好的模型。
深度学习算法
2012 年之后,随着深度学习在计算机视觉畛域利用的不断扩大,文字辨认逐步摈弃了原有办法,过渡到深度学习算法计划。在深度学习时代,文字辨认框架也逐步简化,目前支流的计划次要有两种,一种是文本行检测与文字辨认的两阶段计划,另一种是端到端的文字辨认计划。
1)两阶段文字辨认计划
次要思路是先定位文本行地位,而后再对曾经定位的文本行内容进行辨认。文本行检测从办法角度次要分为基于文本框回归的办法 [1],基于宰割或实例宰割的办法[2],以及基于回归、宰割混合的办法[3],从检测能力上也由开始的多向矩形框倒退到多边形文本[2],当初的热点在于解决任意形态的文本行检测问题。文本辨认从单字检测辨认倒退到文本序列辨认,目前序列辨认次要又分为基于 CTC 的办法[4] 和基于 Attention 的办法[5]。
2)端到端文字辨认计划[6]
通过一个模型同时实现文本行检测和文本辨认的工作,既能够进步文本辨认的实时性,同时因为两个工作在同一个模型中联结训练,两局部工作能够互相促进成果。
文字辨认框架
高德文字辨认技术通过多年的倒退,曾经有过几次大的降级。从最开始的基于 FCN 宰割、单字检测辨认的计划,逐步演进到现有基于实例宰割的检测,再进行序列、单字检测辨认联合的计划。与学术界不同,咱们没有采纳 End-to-End 的辨认框架,是因为业务的事实需要所决定的。End-to-End 框架往往须要足够多高质量的文本行及其辨认后果的标注数据,然而这一标注的老本是极为昂扬的,而合成的虚构数据并不足以代替实在数据。因而将文本的检测与辨认拆分开来,有利于别离优化两个不同的模型。
如下图所示,目前高德采纳的算法框架由文本行检测、单字检测辨认、序列辨认三大模块形成。文本行检测模块负责检测出文字区域,并预测出文字的掩模用于解决文本的竖直、畸变、蜿蜒等失真问题,序列辨认模块则负责在检测出的文字区域中,辨认出相应的文字,对于艺术文本、非凡排列等序列辨认模型成果较差的场景,应用单字检测辨认模型进行补充。
文本行检测
天然场景中的文字区域通常是多变且不规则的,文本的尺度大小各异,成像的角度和成像的品质往往不受管制。同时不同采集起源的图像中文本的尺度变动较大,含糊遮挡的状况也各不相同。咱们依据试验,决定在两阶段的实例宰割模型的根底上,针对实际问题进行了优化。
文本行检测可同时预测文字区域分割后果及文字行地位信息,通过集成 DCN 来获取不同方向的文本的特色信息,增大 mask 分支的 feature 大小并集成 ASPP 模块,晋升文字区域分割的精度。并通过文本的宰割后果生成最小外接凸包用于后续的辨认计算。在训练过程中,应用 online 的数据增广办法,在训练过程中对数据进行旋转、翻转、mixup 等,无效的进步了模型的泛化能力。具体检测成果如下所示:
目前场景文本检测能力曾经广泛应用于高德 POI、路线等多个产品中,为了验证模型能力,别离在 ICDAR2013(2018 年 3 月)、ICDAR2017-MLT(2018 年 10 月)、ICDAR2019-ReCTS 公开数据集中进行验证,并获得了优异的问题。
文字辨认
依据背景的形容,POI 和路线数据自动化生产对于文字辨认的后果有两方面的需要,一方面是心愿文本行内容尽可能残缺辨认,另外一方面对于算法给出的后果能辨别出极高准确率的局部(准确率大于 99%)。不同于个别文字辨认评测以单字为维度,咱们在业务应用中,更关注于整个文本行的辨认后果,因而咱们定义了合乎业务应用需要的文字辨认评估规范:
- 文本行辨认全对率:示意文字辨认正确且读序正确的文本行在所有文本行的占比。
- 文本行辨认高相信占比:示意辨认后果中的高置信度局部(准确率大于 99%)在所有文本行的占比。
文本行辨认全对率次要评估文字辨认在 POI 名称,路线名称的整体辨认能力,文本行辨认高相信占比次要评估算法对于拆分出辨认高准确率局部的能力,这两种能力与咱们的业务需要严密相干。为了满足业务场景对文字辨认的需要,咱们针对目前支流的文字辨认算法进行了调研和选型。
文字辨认倒退到当初次要有两种办法,别离是单字检测辨认和序列辨认。单字检测辨认的训练样本组织和模型训练绝对容易,不被文字排版的程序影响。毛病在某些 ” 高低构造 ”,” 左右构造 ” 的汉字容易检测辨认谬误。相比之下序列辨认蕴含更多的上下文信息,而且不须要定位单字准确的地位,减小因为汉字结构导致的辨认损失。然而事实场景文本的排版简单,” 从上到下 ”,” 从左到右 ” 排版会导致序列辨认成果不稳固。联合单字检测辨认和序列辨认各自的优缺点,采纳互补的形式进步文字辨认的准确率。
1)单字检测辨认
单字检测采纳 Faster R-CNN 的办法,检测成果满足业务场景需要。单字辨认采纳 SENet 构造,字符类别反对超过 7000 个中英文字符和数字。在单字辨认模型中参考 identity mapping 的设计和 MobileNetV2 的构造,对 Skip Connections 和激活函数进行了优化,并在训练过程中也退出随机样本变换,大幅晋升文字辨认的能力。在 2019 年 4 月,为了验证在文字辨认的算法能力,咱们在 ICDAR2019-ReCTS 文字辨认比赛中取得第二名的问题(准确率与第一名相差 0.09%)。
2)文本序列辨认
近年来,支流的文本序列辨认算法如 Aster、DTRT 等,能够合成为文字区域纠正,文字区域特征提取、序列化编码图像特色和文字特色解码四个子工作。文字区域纠正和文字区域特征提取将变形的文本行纠正为程度文本行并提取特色,升高了后续辨认算法的辨认难度。序列化编码图像特色和文字特色解码(Encoder-Decoder 的构造)能在利用图像的纹理特色进行文字辨认的同时,引入较强的语义信息,并利用这种上下文的语义信息来补全辨认后果。
在理论利用中,因为被辨认的指标次要以天然场景的短中文本为主,场景文本的几何畸变、扭曲、含糊水平极为重大。同时心愿在一个模型中辨认多个方向的文本,因而咱们采纳的是的 TPS-Inception-BiLSTM-Attention 构造来进行序列辨认。次要构造如下所示:
对于被检测到的文本行,基于角点进行透视变换,再应用 TPS 变换取得程度、竖直方向的文本,按比例缩放长边到指定大小,并以灰色为背景 padding 为方形图像。这一预处理形式既放弃了输出图像语义的残缺,同时在训练和测试阶段,图像能够在方形范畴内自在的旋转平移,可能无效的进步蜿蜒、畸变文本的辨认性能。将预处理实现的图像输出 CNN 中提取图像特色。再应用 BiLSTM 编码成序列特色,并应用 Attention 顺次解码取得预测后果。如下图所示,这一模型通过注意力机制在不同解码阶段赋予图像特色不同的权重,从而隐式表白预测字符与特色的对齐关系,实现在一个模型中同时预测多个方向文本。文本序列辨认模型目前已笼罩英文、中文一级字库和罕用的繁体字字库,对于艺术文本、含糊文本具备较好的辨认性能。
3)样本开掘 & 合成
在地图数据生产业务中常常会在路线标志牌中发现一些生僻的地点名称或者在 POI 牌匾中发现一些不常见的字甚至是繁体字,因而在文字辨认成果优化中,除了对于模型的优化外,正当补充缺字、少字的样本也是十分重要的环节。为了补充缺字、少字的样本,咱们从实在样本开掘和人工样本合成两个方向动手,一方面联合咱们业务的特点,通过数据库中曾经实现制作的蕴含生僻字的名称,反向挖掘出可能呈现生僻字的图像进行人工标注,另一方面,咱们利用图像渲染技术人工合成文字样本。理论应用中,将实在样本和人工合成样本混合应用,大幅晋升文字辨认能力。
文字辨认技术小结
高德文字辨认算法通过对算法构造的打磨,和多辨认后果的交融,满足不同应用场景的事实须要。同时以文字辨认为代表的计算机视觉技术,已广泛应用于高德数据自动化生产的各个角落,在局部采集场景中,机器已齐全代替人工进行数据的自动化生产。POI 数据中超过 70% 的数据都是由机器自动化生成上线,超过 90% 的路线信息数据通过自动化更新。数据工艺人员的技能极大简化,大幅节约了培训老本和收入开销。
三 将来倒退和挑战
目前高德次要依赖深度学习的形式解决场景文字的辨认问题,绝对国外地图数据,国内汉字的基数大,文字结构复杂导致对数据多样性的要求更高,数据有余成为次要痛点。另外,图像的含糊问题往往会影响自动化辨认的性能和数据的制作效率,如何辨认含糊和对含糊的解决也是高德的研究课题之一。咱们别离从数据,模型设计层面论述如何解决数据有余和含糊辨认的问题,以及如何进一步提高文字辨认能力。
数据层面
数据问题很重要,在没有足够的人力物力标注的状况下,如何主动裁减数据是图像的一个通用研究课题。其中一个思路是通过数据增广的形式裁减数据样本。Google DeepMind 在 CVPR 2019 提出 AutoAugment 的办法, 次要通过用强化学习的办法寻找最佳的数据增广策略。另一种数据裁减的解决办法是数据合成,例如阿里巴巴达摩院的 SwapText 利用格调迁徙的形式实现数据生成。
模型层面
含糊文本的辨认
含糊通常造成场景辨认文本未检测和无奈辨认的问题。在学术界超分辨率是解决含糊问题的次要形式之一,TextSR 通过 SRGAN 对文本超分的形式,还原高清文本图像,解决含糊辨认的问题。比照 TextSR,首尔大学和马萨诸塞大学在 Better to Follow 文中提出通过 GAN 对特色的超分辨率形式,没有间接生成新的图像而是将超分辨率网络集成在检测网络中,在成果靠近的同时,因为其采纳 End-to-End 的模式,计算效率大幅提高。
文字语义了解
通常人在了解简单文字时会参考肯定的语义先验信息,近年来随着 NLP(Natural Language Processing)技术的倒退,使得计算机也领有取得语义信息的能力。参考人了解简单文字的形式,如何利用语义的先验信息和图像的关系进步文字辨认能力是一个值得钻研的课题。例如 SEED 在 CVPR 2020 提出将语言模型增加到辨认模型中,通过图像特色和语义特色综合判断进步文字辨认能力。
其余倒退
除此之外,从云到端也是模型倒退的一个趋势,端上化的劣势在于节约资源,次要体现在节约上传至云端的流量开销和云端服务器的计算压力。在端上化设计上,针对 OCR 算法的钻研和优化,摸索高精度、轻量级的检测和辨认框架,压缩后模型的大小和速度满足端上部署的须要,也是咱们今后须要钻研的一个课题。
参考文献
- Liao M et al. Textboxes++: A single-shot oriented scene text detector[J]. IEEE transactions on image processing, 2018.
- Lyu P , Liao M , Yao C , et al. Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes[J]. 2018.
- Zhou X , Yao C , Wen H , et al. EAST: An Efficient and Accurate Scene Text Detector[J]. 2017.
- Shi B , Bai X , Yao C . An End-to-End Trainable Neural Network for Image-Based Sequence Recognition and Its Application to Scene Text Recognition[J]. ieee transactions on pattern analysis & machine intelligence, 2017, 39(11):2298-2304.
- Wojna Z , Gorban A N , Lee D S , et al. Attention-Based Extraction of Structured Information from Street View Imagery[C]// 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR). IEEE, 2018.
- Li H , Wang P , Shen C . Towards End-to-end Text Spotting with Convolutional Recurrent Neural Networks[J]. 2017.