干货 | OCR技术在携程业务中的应用

作者简介

袁秋龙,携程度假大数据AI研发团队实习生,专注于计算机视觉的研究和应用。在实习期间致力于度假图像智能化工作,OCR问题为实习期主要做的研究。

一、概述

计算机视觉是一门研究如何让计算机“看”的科学。更进一步的说,就是使用摄像机和计算机代替人眼,让计算机像人眼一样具备对目标事物进行识别,跟踪和分析的能力。

以携程业务为例,在供应商资质鉴定,商家产品上传,产品展示等多个环节都涉及到计算机视觉技术的应用,其中包括文字识别(Optical Character Recognition,OCR)/场景文字识别(SceneText Recognition,STR),图像质量评价,智能裁剪和目标检测等。

OCR在携程业务中主要起到两方面作用。一方面是审核校验,如供应商的资质审核,对营业执照和经营许可证的信息的校验,对包含敏感词汇的产品进行自动筛选过滤等;另一方面是辅助录入,如辅助运营录入营业执照,经营许可证等信息。

本文主要介绍文字识别在携程业务中相关应用及对应解决方案。

二、OCR

OCR技术由两方面组成,分别为文字的检测和文字内容的识别,如图1所示。

其中,文字检测主要有基于笔划特征的方法(Stroke Width Transform,SWT)[1]、基于稳定区域(Maximally Stable Extremal Region,MSER)[2]的方法和基于全卷积网络(FullyConvolutional Networks,FCN)和循环神经网络(RNN)相结合的方法[3],由于基于神经网络的方法对复杂背景具有较强的鲁棒性,目前已经成为文字检测的主流方法。

而文字识别则主要分为基于单个字符的方法和基于序列的识别方法,其中基于单个字符的方法有基于传统DPM[4]特征和基于卷积网络[5]提取的特征,基于序列的则有CTC(Connectionist Temporal Classification)[6,7]和Seq2Seq[8]两种模式。

图1 图像中的文字检测和识别过程

三、OCR在携程业务中的技术方案

我们的方案也是由两部分组成的,首先是对图片中的文字进行检测,然后对检测出的文字内容进行识别。

3.1 基于深度学习的文字检测

对于携程的OCR场景,根据版面是否含有先验知识以及所涉及到的文本自身的复杂性,我们将OCR任务划分为受控场景(如营业执照,经营许可证等)和非受控场景(如产品海报,产品介绍页等)。

图2 受控场景(左)和非受控场景(右)的图例

考虑到两种场景的不同,我们采用了不同的文本框检测方案。

由于受控场景的文字受诸多先验的约束条件约束,本身的文本复杂度较低(水平文本,文本偏转角度小等),我们选择选择通用的文本检测模型CTPN[7]进行文本框的检测。

对于非受控场景,由于存在大量的艺术字体,以及文本的形变和文字大小的多样化等原因,该任务并不适合采用上述方法进行处理,我们选择使用TextSnake[9]方法。

3.1.1 受控场景的文本检测

对于受控场景,我们直接使用文本检测模型CTPN对用户上传的证件进行文本框的检测。

图3 基于CTPN模型的文本框检测结构[7]

除对模型的输入进行前期处理之外,还在CTPN模型的训练过程上进行改进,考虑到人工去标定样本的成本是很高的,同时为了让模型在真实环境中表现出较好的性能,我们采用由糙到精的训练步骤。

首先使用人工合成的数据进行模型的前期训练,然后再在少量真实样本数据上进行模型的精调。将CTPN模型运用在对营业执照的文字检测上,目前F1分数值能够达到89%。

3.1.2 非受控场景的文本检测

产品海报,产品介绍页等非受控制场景,由于文本行自身的多角度(竖排),文本存在形变,字号的多样化和背景干扰等原因,在该场景下使用CTPN模型进行文本框定位存在着很大的难度。由于艺术字符之间的间隔松散,导致文本定位补全,这一现象对后期的文本内容识别是致命的。

为了实现高精度的文本框的定位,我们决定采用TextSnake作为在非受控场景下的文本框检测模型。同时,模型的训练步骤也是按照由糙到精的训练方式进行。

图4 基于TextSnake模型的文本检测结构[9]

下图5是产品海报文字检测结果,在自然场景下进行文字检测可以达到F1分数值为81%的水平。

图5 基于文字检测模型的海报文字检测结果图

TextSnake通过全连接网络(FCN)来估计文本的几何属性,使的模型能够以水平、多角度和弯曲的形式有效的来表示文本实例。目前,该部分服务还存在诸多不足,正在持续改进。

3.2 基于序列的文字识别模型

文本识别方法存在两种方式,分别为基于单个字符模式和基于序列模式。

其中,基于单个字符的模式需要对检测到的文本框中的字符串进行单字符分割,由于该识别模式依赖于单字符分割的结果,字符分割的结果的好坏会最终导致后期文字识别的性能。

为了能够较好的处理这一缺陷,基于序列模式的文本识别就应运而生,这一类方法并不进行单字符分割,而是将文本看成一个整体,直接对其进行识别出对应的文本内容。这样做的好处是能够很好利用文本序列本身所固有的文本上下文信息,从而避免了因为分割字符出错所带来的不可逆错误。

基于序列模式的文字识别主要有两种结构,分别是CNN+LSTM+CTC[7]结构和CNN+LSTM+Seq2Seq [8]结构(详见下图6)。这两种方法的主体结构是一致的,均是采用CNN学习图像局部像素之间的关系,使用双向长短期记忆神经网络(Bidirectional Long Short-Term Memory,BLSTM)学习较长跨度的文本上下文关系。只有在优化网络模型参数的目标函数上存在不同,分别采用的是CTC和Seq2Seq。

图6 基于CNN+LSTM+CTC结构(左)[7]和基于CNN+LSTM+Seq2Seq结构(右)[8]

基于序列模式的文本识别是目前自然场景下文本识别任务的主要解决方案,基于序列模式的文字识别结构有CNN+LSTM+CTC结构和CNN+LSTM+Seq2Seq结构。

其中使用CTC损失函数的优点是收敛速度快,模型便于训练,但是训练出来的模型精度相对于Seq2Seq而言一般低于后者。我们参考MERL在语音识别中采用的方式[10],将CTC和Seq2Seq结合起来,并引入Attention机制,设计出一个文本识别模型。同时将模型的主体卷积网络结构进行改进,用以满足不同大小的需求。

训练阶段,大致还是和前期文本框检测模型训练过程一样,也是先将模型在人工合成的数据上进行前期模型的训练。为求模型精度在真实样本上能够表现出较好的性能,我们同样的将模型在少量真实数据集上进行精调模型。

我们将该文本识别模型与CTPN模型整合,对营业执照重要字段文本内容进行识别,目前在印章,反光等多种因素干扰情况下,对统一社会信用编码等的全字段识别精度能达到85%。

四、总结

深度学习模型的训练依赖于大规模、多样化的数据。一方面人工标注成本太高,另一方面获得到的数据不能保证样本的均衡性。

合成数据在文本框检测阶段的模型训练和文本内容识别阶段都起到一个至关重要的作用,如何合成更加符合真实场景的数据用于OCR模型的训练是关键。此外,目前在自然场景下的服务还存在诸多不足,我们在持续改进中。

参考文献

[1] Epshtein, Boris, Eyal Ofek, and YonatanWexler. "Detecting text in natural scenes with stroke widthtransform." Computer Vision and Pattern Recognition (CVPR), 2010 IEEEConference on. IEEE, 2010.

[2] Neumann, Lukáš, and Jiří Matas."Real-time scene text localization and recognition." ComputerVision and Pattern Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012.

[3]Tian Z , Huang W , He T , et al.Detecting Text in Natural Image with Connectionist Text Proposal Network[J].2016.

[4]Shi, Cunzhao, et al. "Scene textrecognition using part-based tree-structured characterdetection." Proceedings of the IEEE Conference on Computer Vision andPattern Recognition. 2013.

[5]Jaderberg, Max, et al. "Readingtext in the wild with convolutional neural networks." InternationalJournal of Computer Vision 116.1 (2016): 1-20.

[6]He, Pan, et al. "Reading scene textin deep convolutional sequences." Thirtieth AAAI Conference onArtificial Intelligence. 2016.

[7]Shi, Baoguang, Xiang Bai, and Cong Yao."An end-to-end trainable neural network for image-based sequencerecognition and its application to scene text recognition." IEEETransactions on Pattern Analysis and Machine Intelligence (2016).

[8]Lee, Chen-Yu, and Simon Osindero."Recursive Recurrent Nets with Attention Modeling for OCR in theWild." Proceedings of the IEEE Conference on Computer Vision andPattern Recognition. 2016.

[9]Long S , Ruan J , Zhang W , et al.TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes[J].2018.

[10]Kim, Suyoun, Takaaki Hori, andShinji Watanabe. "Joint ctc-attention based end-to-end speech recognitionusing multi-task learning." arXiv preprint arXiv:1609.06773 (2016).

原文发布于微信公众号 - 携程技术中心(ctriptech)

原文发表时间:2019-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券