技术探秘: 360数科夺得ICDAR OCR竞赛世界第一

ICDAR(国际文档分析与识别会议)是OCR识别领域最权威的会议之一。近期,360数科在ICDAR2019-SROIE(Results - ICDAR 2019 Robust Reading Challenge on Scanned Receipts OCR and Information Extraction - Robust Reading Competition) 榜单上斩获第一。

OCR(Optical Character Recognition,光学字符识别)技术作为计算机视觉领域一个重要分支。其主要包括三大方面,文本检测、文本识别和视觉信息抽取。文字检测是通过OCR算法定位图像中文字,一般是通过四边或者矩形框表示文字的位置。文字识别是通过识别算法或者模型,将给定的文字片段图像中的文字通过字符串的形式转写出来。而视觉信息抽取则是将图像中人们定义的关键信息抽取出来,比如姓名,性别,电话号码等。360数科希望通过分享在文本识别和语言纠错方面的探索和总结,能对业界带来一些帮助或启发。

  1. SROIE2019赛事介绍

在ICDAR2019 Robust Reading Competitions的6个赛道上[1~6],SROIE2019更关注商超小票文本行检测、识别和信息抽取,这也是OCR领域中目前的难点所在,ICDAR 竞赛因其极高技术难度和强大实用性,一直是各大科研院校、科技公司的竞逐焦点,吸引国内外众多队伍参赛。

1.1 赛事介绍

SROIE2019分为三个子任务:文本检测(要求在原图中给出文本区域的位置坐标)、文本识别      (在给定的文本区域裁剪图基础上,将其中的文字内容正确识别出来)、视觉信息抽取(抽取识别出的文本行中的关键信息,比如价格、日期等)。本次比赛我们专注于SROIE中的文本行识别任务,其评价指标采用F1 score评价模型性能。F1 score是召回率Recall和准确率Precision的调和平均值,这三者的计算方式如公式(1) (2) (3)所示。

其中,TP,FP,FN分别表示True Positive,False Positive以及False Negative。TP,FP,FN的界定是基于识别出来的文本行与给出来的GT逐个单词比较,完全正确判定识别正确。SROIR文本识别任务数据集包含33626张训练集和19385张测试集,其中训练集的标注格式是给出给定文本行图像及对应的文本,如图1所示[1]

图1 训练集数据样张

1.2 赛事难点

  1. 文本行字体模糊不清。官方给出的比赛数据集,均来自商超结算小票扫描图像,由于小票均为机打且存放时间过长,导致扫描出来的文本行存在较为严重的磨损和缺失,字体笔画不完整等情形,这给我们OCR识别算法带来很大挑战。
  1. 文本行图像出现弯曲。给出的文本行图像中出现较大比例的弯曲,现今主流文本行识别算法对水平文本识别较为鲁棒,弯曲文本行识别是OCR识别业内难点。
  1. 标注歧义。给出来的文本行在对应的文本图像中根本不存在、空格标注错误以及形近字标注错误,这给算法的泛化性带来了很大的冲击。
  1. 技术方案

算法,数据和算力是推动深度学习往前演进的三驾马车,本小节我们分别就上述三大块进行详细介绍,以及针对1.2提到的赛事难点提出我们的解决方案。针对SROIE中的文本行识别,首先我们采用CRNN[7]技术方案,并对CRNN中的Encoder和Decoder部分做了大量分析和比较实验,得到了一个非常不错的baseline模型。其次,针对本次文字模糊不清问题,我们生成了近5000W的数据集并在该数据集上训练得到一个预训练模型,基于该预训练模型进行finetune,模型大幅提升了5.4%。最后针对文本行弯曲问题我们提出了基于tps+unet自学习的预处理模块,模型进一步提升了2.6%。通过以上技术方案的优化我们最终提交的成绩中Recall,Precision和F1 Score分别达到了97.68%97.79%97.74%,这3个评价指标均排名第一。此外我们还在语言纠错模型、loss和训练策略的选择上进行了一些方案的探索,给最终模型效果带来了一定的提升。

2.1 CRNN模型简介

图2 CRNN架构图

对于文本识别模型,我们参照CRNN将模型的主体分为了两个部分。分别为对图像数据进行特征编码的Encoder(对应上中的CNN层)以及对文本序列进行解码的Decoder(对应上图中Recurrent Layers和Transcription Layers)。

对于Encoder,我们试验了当前OCR技术中主流的MobileNet[8],EfficientNet[9],ResNet[10]等。最终我们选择了在表现与参数量方面都出色的ResNet并对不同层的ResNet进行了实验。

对于Decoder,其可进一步分为对图像切片序列到文本序列进行转换的部分与对文本序列进行解码输出的部分。对于第一部分,我们实验了当前主流的序列模型,如Transformer[11],LSTM[12]等。最终,我们选择了在表现与稳定性方面都更为出色的BiLSTM[13]。不同于普通的LSTM,BiLSTM可以捕捉序列双向的文本信息,该特性与本次比赛数据所呈现出的富有语义的特点相吻合。

对于Decode的第二部分,我们实验了CTC[14]与受时下热门的Transformer等模型的启发所推出的Attention[15]这两种方式。通过实验结果,我们发现了CTC在长文本情况下的表现较为出色,而Attention对于短文本的处理表现得更为优异。针对本次比赛数据文本长度分布方差大的特点,我们分别尝试了CTC与Attention两种模型。

2.2 模型优化

2.2.1 数据预处理

本次比赛的数据为文本行图像,其中每条数据的尺寸都有所不同。为此,我们对所有图像的尺寸进行对齐以保证模型输入的一致性。通过对整体数据集的尺寸分布进行分析,我们实验了不同的图像宽高以及Resize和Padding两种不同的对齐操作。最终采用Padding对齐方式,模型的F1 score提升3.2%。

2.2.2 模型前置预处理模块

本次比赛的图像数据具有模糊,对比度低等特点。为此,我们通过对图像进行增强以保证网络输入图像的清晰性。我们选择使用U-Net[16]网络以自动地学习出适应于整体模型的图像增强方式。通过与传统的图像显著化以及超分辨率网络等方法的对比试验,采用的U-Net能自适应的学习出适合网络学习的图像增强方式。

图3 U-Net示意图

此外,本次比赛的部分图像在文本行处呈现出了倾斜的特质。相较于水平文本,倾斜文本的识别更具有挑战性。针对这一情况,我们采用了针对倾斜文本进行处理的TPS网络[17]。该网络可以预测出TPS矫正所需的K个基准点,并基于基准点进行TPS变换生成采样网格,最后对采样网格进行双线性插值,达到矫正文本的目的。

图4 TPS示意图

最终,输入图像数据在经过了U-Net自适应增强和TPS的矫正后,模型F1 score提升2.6%。

2.2.3 loss选择

针对文本识别任务形近字很难识别出来的问题,如"0"和"O"。我们采取了Center Loss[18],该损失函数可通过缩小各分类编码与其所属类别中心的距离以更好地对相似的类别作出区分。使用Center Loss后,模型F1 score提升0.6%

2.2.4 优化器选择

如上文所述,文本行识别模型由多个部分组成,同时每个部分的学习任务从数据领域(图像/文本)到数据格式(单条/序列)都有较大的差别。为此,我们选用了自适应的优化器Adadelta[19]来解决。在模型使用Adadelta训练到收敛后,在冻结了图像处理的Encoder参数的情况下,使用收敛较快的Adam[20]对Decoder部分的参数进行进一步的训练。使用上述策略后模型F1 score提升0.3%

2.3 超大规模数据集预训练模型训练

本次比赛中我们除了使用官方给出的33626张训练集外,还通过对各种字体,各个语料类别(数字/名称/语句)以及各个图片风格(磨损/倾斜/划线)的模拟,生成了数据集5000万张,使用20张V100显卡进行分布式训练,基于该预训练模型进行finetune,模型F1 score得到了大幅提升(5.4%),这也是本次比赛我们取得冠军的关键。

2.4 语言纠错模型

首先,我们融合训练attention模型和ctc模型。对于置信度较低的结果,我们认为识别错误的可能性较大,需要使用语言模型对其纠错。通过2.5的badcase分析我们可以看出,除了空格识别错误外,还有约56%的其它错误。因此我们额外训练了一个不含有空格的attention识别模型,并使用该模型的识别结果替换原有融合模型置信度较低的识别结果,尽可能避免空格对识别的干扰。然后,我们对soft-masked bert[21]进行了拓展,在Bi-GRU[22]错误检测网络中除了预测每个字符为错别字的概率外,还额外增加了该字符后需要添加字符的概率。若预测为错误,我们会根据概率将该字符的embedding与<mask>的embedding进行线性组合。若预测为添加,则会在该字符后直接添加<mask>的embedding。在bert纠错网络中,我们添加了<null>标签用于标识需要删除的字符。最后,我们基于badcase的分析生成了100万的训练数据,使用上述策略后,F1 score提升了0.7%

图5 soft-masked bert示意图

2.5 badcase分析

通过采用2.1~2.4的策略,我们的模型已经有了很大的提升。通过对验证集上的badcase分析,发现主要有如下几种:空格识别错误、等长样本识别错误和不等长样本识别错误。各错误占比情况如图6,其中空格识别错误占比达到了44%,其余两种错误分别是等长和不等长错误。以下对上述情形分别介绍并给出我们的解决方案。

图6 badcase分布图

第一,空格识别错误即模型没有将空格识别正确或者我们空格识别成其他字符,如下图。针对该情形我们人为地为语料赋予了很多空格。同时,为了解决空格距离的主观性,我们在往语料中插入空格时使用了不定长的空格以让模型学会对空格距离的把控。此外,我们统计了模型预测空格错误结果中空格前后的字符分布,并根据该分布控制空格在语料中插入的位置。

图7 空格识别示例

第二,等长错误即模型识别出来的结果与GT等长,但是存在部分字符识别错误情形,占比达总识别错误的33%,这类错误主要还是集中在形近字很难正确识别情形,如下图。GT为“1 Small Cone”,我们的模型识别为“1 Small C0ne”。为了解决这类成对的字符预测错误,我们统计了字符集合中常见的难区分字符对以及我们的模型所预测错误的字符对。通过成对的形式,我们将一条语料中的部分字符替换为其难分字符对中的字符,如"a0c"与"aOc",并将替换前与替换后的语料都加入我们的数据集中。通过成对的加入难区分字符语料,我们的模型预测结果大幅减少了字符分错的情况。此外,我们发现由于本次数据的文本行在裁剪时左右留白较少,这导致模型预测结果容易在开头与结尾处出错。为此,我们在选取替换字符时会加大开头与结尾位置的权重。

图8 等长识别错误

第三,不等长错误即模型识别出来的结果与GT不等长。这里面主要集中在标注错误、文本行过长和样本极不均衡导致。针对文本行过长问题,我们对部分语料选取少量字符进行人为的重复并输入到模型训练,以此让模型获得一定的去重能力。针对类别不均衡问题,我们在生成语料抽取字符时,对低频字符赋予了更大的权重,高低频字符的出现比率提升到了10:1,更符合实际环境下的语料情况。

  1. 总结与展望

计算机视觉在金融领域的应用主要包括人脸识别、活体检测、OCR、AI数字人和图像篡改等。通过本次挑战赛在某种程度上验证了我们OCR算法的有效性,以及对我们现有算法进行查漏补缺。目前OCR在360数科内部落地的业务场景主要包括学历认证、执业证书认证、票据识别、行驶证识别、驾驶证识别和营业执照等,另外我们还针对上述业务场景开发了配套的图像反欺诈识别算法。展望未来,计算机视觉团队将持续跟进业内最新动态以保持技术的先进性,来更好的服务公司业务团队。

  1. 引用

[1] Huang Z, Chen K, He J, et al. Icdar2019 competition on scanned receipt ocr and information extraction[C]//2019 International Conference on Document Analysis and Recognition (ICDAR). IEEE, 2019: 1516-1520.

[2] Y. Sun, J. Liu, W. Liu, J. Han, E. Ding, “Chinese Street View Text: Large-scale Chinese Text Reading with Partially Supervised Learning”, in Proc. of ICCV 2019.

[3] Ali Furkan Biten, Ruben Tito, Andres Mafla, Lluis Gomez, Marçal Rusiñol, Ernest Valveny, C.V. Jawahar, Dimosthenis Karatzas, "Scene Text Visual Question Answering", ICCV 2019.

[4] C. Chng, Y. Liu, Y. Sun, et al, “ICDAR 2019 Robust Reading Challenge on Arbitrary-Shaped Text-RRC-ArT”, in Proc. of ICDAR 2019.

[5] Zhang R, Zhou Y, Jiang Q, et al. Icdar 2019 robust reading challenge on reading chinese text on signboard[C]//2019 international conference on document analysis and recognition (ICDAR). IEEE, 2019: 1577-1581.

[6] Nayef N, Patel Y, Busta M, et al. ICDAR2019 robust reading challenge on multi-lingual scene text detection and recognition—RRC-MLT-2019[C]//2019 International conference on document analysis and recognition (ICDAR). IEEE, 2019: 1582-1587.

[7] Shi, Baoguang, Xiang Bai, and Cong Yao. "An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition." IEEE transactions on pattern analysis and machine intelligence 39.11 (2016): 2298-2304.

[8] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv:1704.04861, 2017.

[9] Tan M, Le Q. Efficientnet: Rethinking model scaling for convolutional neural networks[C]//International conference on machine learning. PMLR, 2019: 6105-6114.

[10] He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[11] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.

[12] Graves A. Long short-term memory[J]. Supervised sequence labelling with recurrent neural networks, 2012: 37-45.

[13] Zhang, Shu, et al. "Bidirectional long short-term memory networks for relation classification." Proceedings of the 29th Pacific Asia conference on language, information and computation. 2015.

[14] Graves A. Connectionist temporal classification[M]//Supervised sequence labelling with recurrent neural networks. Springer, Berlin, Heidelberg, 2012: 61-93.

[15] Sun, Chao, et al. "A convolutional recurrent neural network with attention framework for speech separation in monaural recordings." Scientific Reports 11.1 (2021): 1-14.

[16] Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. "U-net: Convolutional networks for biomedical image segmentation." International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015.

[17] Shi, Baoguang, et al. "Robust scene text recognition with automatic rectification." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[18] Wen, Yandong, et al. "A discriminative feature learning approach for deep face recognition." European conference on computer vision. Springer, Cham, 2016.

[19] Zeiler, Matthew D. "Adadelta: an adaptive learning rate method." arXiv preprint arXiv:1212.5701 (2012).

[20] Kingma D P, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv:1412.6980, 2014.

[21] Zhang S, Huang H, Liu J, et al. Spelling error correction with soft-masked BERT[J]. arXiv preprint arXiv:2005.07421, 2020.

[22] Wang Q, Xu C, Zhou Y, et al. An attention-based Bi-GRU-CapsNet model for hypernymy detection between compound entities[C]//2018 IEEE International Conference on Bioinformatics and Biomedicine (BIBM). IEEE, 2018: 1031-1035.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值