导语:深度学习在OCR领域的成功应用需要大量数据,数平精准推荐团队利用图像增强,语义理解,生成对抗网络等技术生成高质足量的数据,为算法模型提供燃料,帮助OCR技术服务在多种业务场景中快速迭代,提升效果。
如果把深度学习看做引擎,大量带标注的数据则是燃料,燃料的体量和质量直接影响引擎的动力。随着计算能力大幅增强,深度学习模型已向着wide & deep的方向越走越远,更大更深的模型需要更多的数据训练。这一点从近年来学术界与工业界竞相公开的数据集规模上可见一斑。以经典的计算机视觉任务为例,如fig.1所示,公开数据集的量级几乎呈指数上升趋势。体量越来越大的数据集同时也包含着越来越丰富的标签信息,正是这些庞大而丰富的信息使得深度模型得以充分的训练,从而能完成各种机器视觉,语义理解,行为预测等任务。
fig. 1 近年来计算机视觉公开数据集 [1][2][3] [4] [5]
1.1 OCR数据
如图fig.2所示,OCR的作用是检测图像中的文字区域以及识别文字内容。我们的OCR算法当前主要应用于广告图片,不仅助力广告审核,更重要的是提取广告素材图片中的语义特征以求更精准的推荐[17]。除了广告领域,我们还服务于内容相关的网络图像,游戏图像,以及各类卡证图像的识别。相比物体检测识别,OCR由于包含倾斜文本框,低分辨率文字,以及文本版面多样化,因此OCR数据标注具有特殊性,标注成本更高。如此情况决定了我们难以通过用户反馈获得待标注样本来支撑OCR深度模型训练。因此,除了在具体业务场景中必不可少的人工数据标注,我们的训练样本需要通过机器生成来获取。
fig.2 OCR图像文字识别效果
对基于深度学习的技术而言,训练数据的数量很大程度上影响了技术效果。公司的业务图片中包含大量中文汉字文本行,中英文数字混合的情况,几乎没有这样大规模可用的文字检测识别数据集,由于获取大量带标注训练数据成本高,易扩展且速度快的数据机器生成便成为首选。在计算机视觉领域,数据机器生成主要可粗略的分为三种类型:底层的图像处理技术,中间层的图像理解加人为规则,以及高层的端到端图像数据生成,OCR技术的数据生成同样遵循这三类。
2.1 图像处理数据增强
基于图像处理进行数据增强这种训练数据生成的方式是门槛最低也应用最为广泛的方法。最常用的图像处理方式包含如fig.3所示,翻转,平移,旋转,加噪声,模糊,等几十种基础操作,每张样本可通过组合这些操作生成出众多新样本。在OCR领域,除了上述的基础图像处理技术,书写文字的属性及背景图片也可以极大的多样化。我们使用的背景图片来自于多种业务场景;在字体选取上使用几百种中英文字体;在语料库的选择上,在现有广告语料基础上,我们构建了近千万词条的新语料库。生成的样本最大化接近真实广告图片, 生成样本数千万,使得模型具备强大的识别能力和泛化性能。
fig.3 图像样本增强:噪声,旋转,调整对比度,模糊等
2.2 基于图像分割&景深
由于直接将文字写在背景图片上这种策略并不考虑背景变化,在很多背景复杂的情况下,生成的样本显得不真实,且部分样本人眼也无法判断文字内容。这些样本的存在有极大的可能给模型检测识别能力带来副作用,受到牛津大学VGG实验室16年发表的文章[6]启示,我们对背景图片进行分析理解,选取趋近一致的背景进行文字书写,并且根据图片景深信息,将文字书写平面与图片中物体表面进行拟合,让文字贴合物体表面,获得更加真实的视觉效果。
fig.4 OCR图像文字识别效果
(绿色文本框标识文本行位置,黑色文字代表文本框内文字内容,图像来源[6])
在fig.4中,第一行为背景图片处理流程,第二列为生成样本示例。图片经过景深检测,图像分割以及文字区域筛选。在书写文本行的过程中,文字书写的平面会依据物体表面,以模拟出更真实的图片样本。在fig.5中可以看到图片中生成的文字不仅每个文本行带有标注框,每个字的位置也有文本框明确的标注。
fig.5 基于图像分割和景深生成OCR标签图片
基于上述图像分割和图像景深的技术,我们在广告图片上生成了大量的带标注样本供文本检测模型训练。如fig.6所示,样本中的文字与图片大小比例,文本行倾斜角度,文字颜色与背景颜色的映射关系,文字间隔等细节特征也通过统计广告图片获得。在使生成样本更加趋近真实的样本的基础上,我们还从文字透明度,斜体方面增加了生成样本的多样性,从而获得更加鲁棒的文字检测及端到端检测识别的能力。
fig.6 广告图片生成样本
对于大部分网络图片(广告图片,信息流文章图片,游戏图片等),由于业务中的样本本身也由计算机生成,属于生成数字图片(Born-Digital Images)识别,因此我们生成的样本可以模拟到非常逼真,但是在部分业务场景里,待识别的图片来自于真实拍摄,属于自然场景文字识别 STR(Scene Text Recognition),STR在计算机视觉领域是经典且热门的技术,很多年来一直持续不断有研究工作[10][11][12][13]推进其发展。但是,STR在公开数据集的数量方面一直没有突破,一些研究尝试使用基于类似生成网络图片的方式生成自然场景样本,却始终没有取得显著的效果。
2.3 生成对抗网络(Generative Adversarial Network)
在自然场景中,文字通常不但不像网络图片具有显著性,还经常伴随着模糊,反光等情况,给文字检测识别带来极大的困难。以银行卡号识别场景为例,阴影,反光,角度,背景均给识别带来很大的困难,然而这些并不是最核心的问题,核心问题是银行卡图片属于个人隐私,获取大量真实银行卡图片样本几乎不可能。那么,如何满足模型训练却必须有样式丰富、数量庞大的样本集需求呢?我们需要更多从算法角度出发,寻找突破口。
fig.7生成对抗网络结构
自从2014年底Ian Goodfellow 提出生成对抗模型(GANs)[7]以来,业界涌现出大量GANs应用在各个任务上的工作,其中包含了一些数据生成的成果[8][9][14][15]。GANs思想如fig.7所示,生成网络负责生成图像,判别网络负责预测输入图片是否真实,随着生成网络G与判别网络D的交替式对抗学习,生成网络逐渐能够生成以假乱真的图像
(a)模型训练过程
(b) 生成器模型结构选择
fig.8 pix2pix[14]原理图解
在一系列生成对抗网络的成果中,我们发现基于对抗学习的图片风格转化[14][15]更符合我们的场景,如fig.8所示,pix2pix[14]中,判别器D学习区分真实样本和生成样本;生成器G学习生成更真实的样本以求让D无法识别,其中生成器网络结构可选择是否带有跳跃连接。在这个基础上,我们可以将人工生成出的白底黑字的号码转化为银行卡号的风格,用以增加训练样本。如fig.9所示,左边为真实的银行卡样本图片,右边为对应卡号的模版。我们期望利用训练好的生成对抗网络将随机的卡号转化为银行卡风格的样本,如此以来我们便可以获得大量带标注的银行卡样本用以训练文字识别模型。
fig. 9 银行卡样本素材(部分号码涂黑为保护卡号隐私)
fig.10为我们使用的生成对抗模型,不同于常规的图片生成任务,卡号图片为长条形(长是宽的10倍以上),为了保证生成的图片整体风格一致,我们调整网络结构,让网络感受野足够看到大部分图片,从而保障生成的图片整体风格保持一致。另外再通过drop out来控制随机性,使同一个号码模版可以生成出几百种不同的风格。
fig.10 银行卡样本生成对抗模型
Fig.11中的图片通过GANs生成, 可以看到尽管图片还有少量瑕疵(最下图),但绝大多数图片已经可以达到以假乱真的程度。我们依照银行卡号数字编码规范,可以很快生成几十万数字模版,再通过GANs将这些模版转换为银行卡号风格,伴随推理过程中的随机性,我们可以在一天内产出百万量级的生成样本提供给识别模型训练。
fig.11 用生成对抗网络生成银行卡号样本效果
2.4 小结
在各类任务上,我们累计生成样本千万级别,为OCR检测和识别提供了充足的训练数据。通过上述的数据生成技术,我们在网络图片,自然场景图片,以及特定业务场景(银行卡,×××...)的OCR检测与识别效果有明显提升。尤其是网络图片,由于生成样本逼真,数量多,足够多样化,能够通过算法bad case反馈迅速反应,生成针对性的样本,使得OCR能力快速提升。在生成对抗网络方面,优化生成模型的稳定性,利用少样本学习,半监督学习等将会是我们重点探索的方向。
本文分享了数平精准推荐团队在数据生成方面的工作,主要基于图像处理,图像理解,和生成对抗网络三种类型的技术快速产生大量带标注数据,在此之外,也在不断积累人工标注数据作为真实样本,这些真实样本不但客观反映了业务场景,也为生成数据规范提供了标杆,即依赖这些真实数据样式来在生成数据环节进行大量的模拟和泛化。在后续的工作中,我们会重点关注如何通过服务化和工具化实现不断的数据自动积累,模型自动训练更新。除OCR外,计算机视觉乃至整个机器学习领域,尽管数据驱动这个词被无数次提到,但真正能够释放数据驱动能力的产品或技术服务依然寥寥无几。如何让机器自身具备数据收集、整理、分析的能力,并自主对算法进行调整和优化,自主做出判断和决策将是我们探索的方向。
腾讯TEG数平精准推荐团队OCR方面已经有了多年积累下的各项技术积累,愿意与任何有OCR技术相关需求的业务同事们进行交流合作,以TEG的使命:专业、合作、伙伴为目标,唯愿以持续打造业界一流的数据、算法、系统,为业务团队提供优质的服务。
技术&业务合作请咨询:[email protected],亦长期招聘优秀算法工程师与实习生,欢迎联系。
参考文献:
[1] The 2005 PASCAL Visual Object Classes Challenge, M. Everingham, A. Zisserman, C. Williams, L. Van Gool, M. Allan, C. Bishop, O. Chapelle, N. Dalal, T. Deselaers, G. Dorko, S. Duffner, J. Eichhorn, J. Farquhar, M. Fritz, C. Garcia, T. Griffiths, F. Jurie, D. Keysers, M. Koskela, J. Laaksonen, D. Larlus, B. Leibe, H. Meng, H. Ney, B. Schiele, C.Schmid,E.Seemann,J.ShaweTaylor, A. Storkey, S. Szedmak, B. Triggs, I. Ulusoy, V. Viitaniemi,and J. Zhang. In Selected Proceedings of the First PASCAL Challenges Workshop, LNAI, Springer-Verlag, 2006 (in press).
[2] SUN Database: LargeScale Scene Recognition from Abbey to Zoo. J. Xiao, J. Hays, K. Ehinger, A. Oliva, and A. Torralba. IEEE Conference on Computer Vision and Pattern Recognition, 2010.
[3] The MIR Flickr Retrieval Evaluation. M. J. Huiskes, M. S. Lew, ACM International Conference on Multimedia Information Retrieval (MIR'08), Vancouver, Canada
[4] New Trends and Ideas in Visual Concept Detection. M. J. Huiskes, B. Thomee, M. S. Lew, ACM International Conference on Multimedia Information Retrieval (MIR'10), Philadelphia, USA.
[5] Abu-El-Haija, Sami, Nisarg Kothari, Joonseok Lee, Paul Natsev, George Toderici, Balakrishnan Varadarajan, and Sudheendra Vijayanarasimhan. "Youtube-8m: A large-scale video classification benchmark." arXiv preprint arXiv:1609.08675, 2016.
[6] Synthetic Data for Text Localisation in Natural Images, Ankush Gupta, Andrea Vedaldi, Andrew Zisserman. CVPR?2016.
[7] Generative Models, Andrej Karpathy, Pieter Abbeel, Greg Brockman, Peter Chen, Vicki Cheung, Rocky Duan, Ian Goodfellow, Durk Kingma, Jonathan Ho, Rein Houthooft, Tim Salimans, John Schulman, Ilya Sutskever, And Wojciech Zaremba, OpenAI, retrieved April 7, 2016.
[8] Ashish Shrivastava, Tomas Pfister, Oncel Tuzel, Josh Susskind, Wenda Wang, Russ Webb, Learning from Simulated and Unsupervised Images through Adversarial Training, CVPR 2017.
[9] Xinlong Wang, Mingyu You , Chunhua Shen, Adversarial Generation of Training Examples for Vehicle License Plate Recognition. arXiv 2017.
[10] Xinhao Liu?,?Takahito Kawanishi?,?Xiaomeng Wu, Kunio Kashino, Scene text recognition with high performance CNN classifier and efficient word inference. ICASSP 2016.
[11] Fei Yin, Yi-Chao Wu, Xu-Yao Zhang, Cheng-Lin Liu, Scene Text Recognition with Sliding Convolutional Character Models, Arxiv 2017.
[12] Suman K.Ghosh, Ernest Valveny, Andrew D. Bagdanov, Visual attention models for scene text recognition, CVPR 2017.
[13] Baoguang Shi, Xinggang Wang, Pengyuan Lyu, Cong Yao, Xiang Bai Robust Scene Text Recognition with Automatic Rectification, CVPR 2016.
[14] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros, Image-to-Image Translation with Conditional Adversarial Nets, CVPR 2017.
[15] Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros, Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Arxiv 2017.
[16] Mehdi Mirza, Simon Osindero, Conditional Generative Adversarial Nets. Arxiv 2014.
[17]薛伟, 广告中的大数据与机器学习, 腾讯大数据技术峰会, 2017.
原文地址:http://blog.51cto.com/13591395/2097012