场景文字识别技术,过滤黄赌毒
作者介绍: 数据平台部OCR+团队负责人。2008年毕业于中国科学院研究生院,主攻模式识别、计算机视觉、图像处理、以及深度学习等方向。读研期间曾在模式识别顶级期刊PAMI(IEEE Transactions on Pattern Analysis and Machine Intelligence)发表指纹识别相关论文。此前在腾讯优图团队从事图像处理(人脸识别)相关工作,现在属于腾讯技术工程事业群\数据平台部\OCR+团队,主要从事文字识别、图像语义理解等相关工作。
引言
OCR技术,通俗来讲就是从图像中检测并识别字符的一种方法,它是模式识别乃至人工智能领域最经典的研究方向之一。在上个世纪50年代到90年代,关于OCR的研究有很多重要成果,直到今天,针对格式化文档图像的OCR,尤其是扫描文档,在理论与应用方面,都已经日趋成熟。
从严格意义上讲,学术界定义的OCR特指针对扫描文档的光学字符识别,在OCR领域,学术界的研究内容聚焦于特定语言文字识别和手写识别领域(或两者相结合)。在工业界,OCR技术更多关注于特定场景下的规范化文档识别,例如身份证识别,银行卡识别,病例识别,名片识别等。
不同于传统OCR技术,针对自然场景图像中的文字识别技术则简称为 STR(Scene Text Recognition),其技术难度远高于传统OCR。 在STR领域,目前的相关研究正面临巨大的挑战,也是目前计算机视觉和模式识别领域最火热的研究课题之一。由于受到自然场景中图像退化的多样性以及多变的字体及风格等因素的影响,STR的识别率一直较低。目前STR技术存在的主要挑战如下:
1) 多样化的图像与文字:不同于文档中的文字有着干净的背景和整齐划一的格式与字体,场景图像中的文字的颜色、大小、字体变化多样,这对文字位置的检测与识别造成了非常大的困难。
2) 同时文字也会处于复杂的背景图像中,可能是各种物体等等,这些物体不属于文字,却可能因为复杂的图像特征信息,导致被误检为文字。
3) 此外,场景图像中的文字来源各不相同,有网页上的广告图片,有社交网络上用户上传的风景图片,也有各种手机应用拍摄出的图像。这些不同来源的图像,有着不同的图像特性,例如光照,噪声,分辨率等等,给文字的检测与识别带来较大误差,也导致难以研发出一个通用的场景图像文字检测与识别算法。
数据平台部\OCR+团队在文字识别领域有着多年丰富的研究经验与实际应用。截止目前为止,团队如下领域都有一定的建树:
1) OCR领域: 已经成功研发了文档识别、身份证识别、银行卡识别、病例识别、名片识别等相关技术,如图1.1-图1.4所示。
2) STR领域: 成功研发了场景文字识别技术,并且在广告图片文字识别,新闻图片过滤,视频字幕识别等领域都已投入使用,如图1.5-图1.7所示。
3) 图像与视频自动内容理解: 正在开发图像与视频中物体检测与识别,以及场景识别与分割(像素级别分割)等技术。
4) 其他图像领域: 已经开发了二维码定位于识别模块,相似图片过滤等相关技术。
本文将重点介绍OCR+团队在场景文字识别技术领域的最新研究成果与相关技术应用,后续我们也将推出系列文章,全方面介绍团队在多个图像领域的技术进展,敬请关注。
STR技术难点1, 需要大量高质量的标注样本
深度学习算法需要大量的样本,从而通过大量的计算学习其中的统计规律,训练数据的数量与标注质量直接影响到模型最终的分类能力。同时由于中文字符的特殊性(大字符集、多字体、多字形、复杂背景),对于标注样本的数量与质量较通常的物体识别要求更为严格。整个团队投入了较大的人力在样本标注方面,同时也开发了部分自动化标注工具,边训练边积累,以高效的方式整理了大量的训练样,为后续的开发奠定了坚实的基础。
2, 需要高精度的字符区域定位算法
场景文字识别算法的一大关键是“检测”,即分割出图像中的文字与背景,近些年来主流的方法都是先检测再识别的框架来解决这个问题。关于文字检测,目前主流的方法是采用最大极值稳定区域(MSER)和笔迹宽度变换(SWT)这两种方法。MSER通过提取在一定范围内对图像像素值变化的稳定区域来检测文字,这个方法基于一个字符所在的图像像素有着相似的颜色的假设,是被认为当前性能最好的具有放射不变性的区域提取方法。而SWT通过计算有着相似方向梯度的边缘之间的宽度的方法来提取文字,这是基于对文字字符笔划的宽度变化较小的假设来设计的方法。无论通过哪种图像处理方法得到备选文字框之后,一个有监督的分类器来识别备选框是否属于文字都是必须的。通常的分类器包括AdaBoost和SVM都是被广泛应用于备选框的分类工作。目前OCR+的字符检测算法主要是基于CNN架构来实现的。字符检测算法模块需要考虑召回率与准确率之间的平衡,目前OCR+ STR的区域定位召回率与准确率基本保持在95%,75%左右。
3, 需要高精度的字符识别引擎
整个STR的最终目标是准确识别图片中的文字,因此,在得到文字候选框之后,需要进行另外一个关键步骤,即“识别”。该模块与传统的OCR有一定的相似性,都是通过得到的文本行,进行切分,然后通过预先训练好的文字图像特征模型来跟备选的图像特征进行匹配,得到最终的识别结果。由于场景文字的复杂性,我们抛弃了传统的基于字符梯度统计信息的识别模块,而是采用了CNN架构的识别引擎,使得整个算法的鲁棒性与准确率都有了较为明显的提升(70%-->85%)。
4, 需要高效的识别性能每天需要经过审核的图片高达数亿,对于整个文字识别系统性能有十分严格的要求。当前STR算法对于每张图片的识别时间约为500ms,基本上能保证中小规模的业务支撑,对于后续全量接入仍然有较大压力。团队目前正在进一步从算法层面,后台架构,以及移动端植入等方面不断优化,全面提升识别性能与识别精度,提升业务服务质量。
STR技术研发
STR技术的关键点有两个方面,即“检测”与“识别”。 前者的目标是从图片中尽可能准确的找出文字所在区域,后者的目标则是在前者的基础上,将区域中的单个字符识别出来。当然也有一些研究者把这两个问题用一套统一的框架来解决,即通常我们所说的端到端(End-to-End)系统。在团队长时间的深入研究过程中,我们发现中文与英文字符存在如下显著的差异性:
1) 英文字符是单连通域(除了i, j), 而中文字符则通常有多个连通子元素组成。
2) 英文的“单词”与中文的“词”概念并不完全一样,我们更倾向于认为英文的“单词”更类似于中文的“字”,而英文的“字母”则更多的类似于中文的“笔画”。
3) 英文是小字符集(加上数字共62个),而中文字符集则大了许多,按照GB2312-80,中文一级字库有汉字3755个,而一二级汉字字库总和就已经达到6763个,另外还得加上部分常见的繁体字,英文,数字,符号等。
团队自研了中文字符的场景文字识别,完整的技术框架如下图所示:
关键步骤之多通道拆分:为了更有效的提升字符召回率,我们将输入图片解析成多个通道,在不同的通道上独立去执行字符检测算法。由于自然场景图片中,字符与背景在颜色,亮度上变化极其多样,多通道拆分极大程度的保证了原始信息的完整性。
关键步骤之多通道字符候选区检测与合并:在每一个独立通道上,使用相应的region proposal算法检测字符的候选位置,然后将不同通道的结果进行去重与合并处理。
关键步骤之深度字符检测器:由于前面步骤会产生大量的候选字符区域,在这些候选区域中,绝大部分都是非文本区域。深度字符检测器,基于深度学习算法,将给定的候选区域进行分类,给出是与否的结论。 对于判别为文本区域的候选块,则进入后续的步骤。由于场景字符极大的复杂性,深度字符检测器模块在整个STR的识别过程中占据了及其重要的地位。检测器的准确率,直接影响了最终的识别效果。同时,由于训练该分类器需要大量的标注样本,因此该模块的开发也是整个STR算法开发过程中最为艰难的一环。
关键步骤之文本行分析算法:在经过前面步骤的得出的候选字符区域基础上,根据字符的特点(尺寸、方向、密度、位置等),构造相应的能量约束函数,组合成独立的文本行。
关键步骤之深度字符识别引擎:在传统字符识别引擎的基础上,OCR+团队针对场景文字的复杂性,开发了基于深度学习架构的字符识别引擎。该模块对于输入的文本行,自动进行切分与组合,对于每一个基元矩形块,都会得到相应的识别结果(字符+置信度),通过一定的算法组合得到最优的行文本识别结果。由于中文字符为大字符集合,同时考虑到丰富的字体,多变的字型,复杂的背景等各种因素,在模型训练中,我们整理了高达1亿的训练样本,经过复杂的模型训练得到最终可靠的字符识别引擎。
关键步骤之语言模型:在行识别的基础上,开发了相应的中文语言模型模块,进一步提升整体识别准确率。
STR技术应用
经过对性能与精度的多轮优化,目前整个STR识别系统已经达到一个相对稳定可靠的阶段, 经过大量测试,目前平均整体识别时间约为500ms, 平均召回率82%+, 准确率85%,基本满足绝大多数的业务场景。 目前STR系统已经上线并支撑了大量的在线识别请求,目前的业务主要涵盖了如下几个方面:
广告图片字符识别:
精准识别广告图片中的关键字符,丰富广告图片的特征表达,有助于提升广告类目分析以及投放精准度,如图4.1-图4.3所示。
新闻图片过滤:
实时高效的定位与识别新闻图片中的字符,滤除敏感、色情、传销等图片,管控热点事件,提高审核效率,净化互联网新闻产品。
视频字幕识别:
精准定位视频中的文字位置,并进行准确识别,识别结果对于视频内容的理解有重要的作用,可应用于视频广告投放、视频审核等场景。
OCR+图像开放平台
目前我们已经搭建一整套OCR+图像开放平台(ocr.oa.com),对外提供OCR,STR,以及图像自动理解(待开放)等服务,用户可以方便的接入平台调用相关接口。用户在该平台上可以查阅相关技术文档,以及接入流程。 同时也可以自己上传图片,进行测试如图5.1所示:
结束语
本文介绍了团队自研的OCR+图像开放平台和团队的STR技术。概括而言,我们搭建的一整套OCR+图像开放平台,具备显著优势:
1)一站式:OCR+开放平台一站式支持各类OCR/STR业务,包括:自然场景图片、文档图片、身份证、银行卡、病例、名片、二维码,等等;2)立体式:提供了后台API、门户网站、微信小程序等立体交互方式,供用户从多个维度调用本平台;3) 算法鲁棒,识别速度快、准确率高;4)可识别生僻字和繁体字,支持面向港澳台的繁体字业务;
5)可识别各类中英文符号,支持中小学生作业、题库照片的识别 。
移动互联网的发展,极大的推动了图像各个领域的技术进步,信息的传递显得尤为重要。文字识别技术,尤其是场景文字识别技术,对于获取周围环境的信息具有非常重要的作用,也在近年来受到越来越多的重视。文字识别技术使我们始终坚持的研究重点之一,我们将持续提升识别准确率,优化识别性能,保证各项接入业务的服务质量,提升业界影响力。同时我们也将文字识别技术扩展到更多领域,例如自动翻译,推荐引擎等,为行业发展做出贡献。
最后,我们想说,也许当下我们正站在人类发展的转折点,这个转折点可能就源于人工智能。在人工智能领域,我们将在图像方向,不断坚守自我,深耕细作,踏实前行。 以下是OCR+团队信息,欢迎咨询体验:
内网门户: ocr.oa.com
业务联系人:heziliu, alyssatang
技术咨询: hongfawang, longshazhou
- 引言
- 结束语