Facebook OCR识别工作:Rosetta

本篇介绍的是FaceBook在KDD 2018上公开的一篇关于工业级应用OCR系统,名字叫Rosetta. FaceBook用这个系统用来处理 Facebook 社交网络上的数亿张图像,提取文字信息,为下游任务提供大量数字化资源。

这篇工作的主要亮点是: 给出了工业级OCR应用如何在性能和效果作tradeoff,对完成高性能的OCR识别任务有实用的参考价值。

1.OCR简介

OCR即光学字符识别,主要目标是识别和提取图片中的文字信息,一般流程分为以下三个步骤。

例如下面的图片中,文字框检测先提取出红色的单词框,文字识别再识别出具体的单词。

中文没有空格,所以文字框检测可以去检测单独的字,或者直接检测文字行。如果检测目标是单独的一个字,文字识别任务就是一个多分类,每一类代表一个中文字符;如果检测目标是文字行,文字识别就是识别一行字。这篇工作检测的文字框是一个单词,其解法可以类比到中文的文字行OCR识别。

对于任何的机器学习问题,大量的高质量标注数据都是非常关键的,OCR问题的一个优势是可以自动构造生成无穷无尽的训练数据。围绕OCR数据生成也有很多相关工作,可以将各种字体、大小、角度等变化的文字加入到各种背景图中,产生OCR任务的训练数据。

2.模型架构

模型架构分成完全分离的两个步骤,文字框检测采用Faster-RCNN,文字识别采用CTC损失的全卷积网络。两个步骤独立训练,在预测的时候也是分离的,这样解耦的好处是可以独立部署,分别做并行化。可以支持共用一套文字框检测,有不同的文字识别模型。

3.文字框检测:

在步骤一的文字框检测中,基于OCR任务,对Faster-RCNN主要做的改进包括:

1)CNN特征提取,对比了ResNet50和ResNet18以及ShuffleNet,发现SuffleNet效果非常高,而且性能更高,所以选择了SuffleNet。

2)文字检测的训练方法,对比了几种预训练手段,最佳的方式是:先用人工合成的假数据,再用开源数据COCO-text,最后用人工标注的真实场景数据。

3)对比不同的NMS选择方案, linear softNMS最佳。

4)Anchor的长宽比

 5)RPN候选数量与性能的trade off

6)输入图片像素大小在效果和性能上的tradeoff,发现大于800像素会对性能有比较大的影响。最后选择的输入是600*800.


4.文字识别:

文字识别选择的模型是全卷积网络+CTC loss,全卷积网络可以支持不固定尺寸的输入,预测不定长的文字。未加入RNN block(如lstm或gru)主要是为了优化性能,并且对精确度损失不大。CNN层对比各种网络结构后选择了Res-net 18.

全卷积的最后一层对应了图中字符(即字母或空格等)的识别,输出是真实的单词。这两层之间可以选择字符级的联合概率最大,或者CTC loss。CTC loss的参数更少,效果更佳。

CTC loss在语音识别和OCR任务中都非常常见,原理看上去有些晦涩,它把整个问题的联合概率转化成了一个有向的概率图模型,用前向后向算法降低了计算复杂度。

关于CTC Loss的详细介绍不再展开,可以参考:CTC loss: https://distill.pub/2017/ctc/。

文字识别模型的其它优化点:

1)文字识别模型的输入是上一步产生的文字框,在此之前的很多工作采用了固定尺寸的输入,如32*100,这种做法产生的文字拉伸比较严重。本工作中,只有超过32*128像素的才会resize,没达到这个像素的在右侧加padding,使大部分input数据尽可能保留原始的长宽比。预测时,宽resize到32,保留长宽比,这样尽可能保证输入不会变形。

2)CTC loss在训练时不易收敛,解法有两种,一种是采用由易到难的训练方法,先训练简单任务,如只包含少于3个字符的,再逐步增加字符长度。另一种是先训练字符模型,复用字符模型的CNN层权重作为ctc loss模型的初始权重。

3)数据的最佳训练方式是先在构造数据集上训练,然后在人工标注的真实数据集上继续训练。

4)训练时发现如果文字框检测出现一些偏差,有时并不影响文字识别模型的正确召回。所以在做文字识别任务时,还对上一阶段产生的框进行了数据增强,加噪声后的文字识别模型更加地鲁棒。这个操作可以提升整体1.54%的准确率。


5. 相关资源:

文字框检测部分依赖于已经开源的faster-rcnn:

Detectron: FAIR’s research platform for objectdetection research, imple- menting popular algorithms like Mask R-CNN and RetinaNet. (2018).

https: //github.com/facebookresearch/Detectron/

文字识别模型未开源。

论文链接:http://www.kdd.org/kdd2018/accepted-papers/view/rosetta-large-scale-system-for-text-detection-and-recognition-in-images

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容