DEV Club 分享笔记(深度学习在OCR中的应用)

一.背景介绍

OCR技术从上世纪60年代就开始得到重视和研究,开源OCR框架Tesseract[14]始于1985年,至今仍在不断迭代和优化。从早期的通用扫描文档识别(谷歌数字图书馆,ABBYY,汉王,文通等),到银行卡/身份证/金融票据等证件识别(百度,微信,支付宝)以及车牌识别,OCR在业界也积累了非常多的宝贵经验。针对不同的应用场景,OCR所用到的方法也会有所不同。

我们这里将主要分享在通用图片下的文字检测与识别。

我们把通用图片分为两类,字迹清晰背景单一的简单图文和字迹模糊背景多变的复杂图文。

简单图文.jpeg
复杂图文.jpeg

上图分别对应简单图文和复杂图文

复杂图文的文字检测和识别压力很大,非常具有挑战性

OCR 框架流程图.jpeg

这是一般的OCR框架流程图,基于一般的ceiling analysis,文字检测和文字识别是最具挑战也是能够最大程度提升整体框架表现的两个主要模块。

传统方法大都需要依靠手动提取特征来训练检测模型和识别模型,由于底层特征与高层语义之间特有的语义鸿沟,当应对多类字体变化以及复杂背景干扰的时候,单一的特征选择或分类器的调优就显得相形见绌了。

卷积神经网络LeNet-5第一次在mnist手写数字识别上得到成功的应用,而近些年随着计算硬件成本的降低以及几项深度学习关键技术的突破,AlexNet、VGG、GoogleNet、ResNet等在imageNet、LFW上取得了令人傲娇的表现,开启了深度学习在大规模数据训练和学习的浪潮

针对OCR传统手法在应对复杂图文场景的不足,我们对文字检测和文字识别这两个关键步骤结合深度学习进行研究与开发。

二、文字检测

复杂人脸.行人.文字图.png

上图是2000张人脸、行人、文字的average image

从上图可以看到,不同于人脸和行人,文字的均值图更像是一种噪声,其组成部位即无固定位置,数量也不固定。这表明文字检测并不能简单的借用人脸/行人检测等常用目标检测框架,一步到位的由图像得到文字区域标定的端到端方法很有压力。

通常,一般的文字检测方法可以分为两类:

a. 基于滑动窗口全图扫描的自上而下的方式。对每个滑动窗口基于HOG、Gabor、LBP、Haar等纹理特征训练Adaboost,SVM,MLP等二类分类器得到文字区域的概率响应值,然后再利用camshift或连通域分析结合形态学等操作定位最终的文字框。该方法对分类器的要求很高,要求能应对各种字体和背景的形式,即便是基于CNN来训练检测模型,大量的扫描滑动窗口对性能耗损十分严重,不适合对性能要求较高的大数据应用场景。

b. 基于底层规则先分割得到小区域再组合成文字区域的自底而上的方式。通常这类方法利用文字颜色、亮度、边缘信息进行聚类的方式来快速分离文字区域与非文字区域,而以MSER和SWT为代表的连通域分析方法在自然场景文字检测中表现优异,在获得高鲁棒性的同时性能也比滑动窗口的形式提高不少。

我们首先基于MSER(最大稳定极值区域)的方法来设计我们的检测方案,如下图。

MSER 方法.jpeg

由于MSER基于分水岭迭代的方式来寻找候选框,能有效提取候选文字区域的同时也容易产生非常多的非文字区域。MSER产生的干扰区域往往跟文字享有类似的纹理特征(如窗户,草地,头发等),我们需要强有力的分类器来滤除干扰。SVM/adaboost等传统手法往往基于人工设计特征训练分类器,很难适应复杂多变场景。

由于过检测模型是候选框数量很大,为了降低性能损耗需要把网络设计得尽可能简单,我们借鉴MNIST的LeNet-5网络来构建一个精简的CNN二分类检测模型。

检测结果图.jpeg

这是我们的检测结果示例

三、文字识别

早先的传统文字识别手法基本都采用基于模板匹配的方式,对特征描述要求非常苛刻,很难满足复杂场景下的识别任务。深度学习抛弃了传统人工设计特征的方式,利用海量标定样本数据以及大规模GPU集群的优势让机器自动学习特征和模型参数,能一定程度上弥补底层特征与高层语义之间的不足。近些年深度学习在人脸识别、目标检测与分类中达到了前所未有的高度,也开启了深度学习在文字分类的新浪潮。

Google在photoOCR中设计了一套基于HOG特征作为输入的5层CNN网络作为OCR识别模型,该套系统在Google多项产品中得到成功的应用。Goodfellow等人第一次提出用Maxout作为非线性激活单元来构建CNN模型学习通用特征,并随后在文字分类上取得了state-of-the-art的结果。

我们参考Maxout网络模型基于caffe来构建我们的OCR识别模型

在识别网络训练环节,卷积神经网络要识别这类复杂多变的文字,首先面临的挑战就是如何获取足够多的符合多样性的训练样本。只有让训练样本满足字体、颜色、背景等的多样性才能保证训练出符合业务需求的ocr识别网络。

以下我们的OCR方法识别结果示例

OCR是识别实例1.jpeg
OCR是识别实例2.jpeg
OCR是识别实例3.jpeg
OCR是识别实例4.png

四,业界

而通用场景文字识别,OCR作为图像识别领域非常经典也非常有挑战的研究课题,百度、微软、Google都有强大的研究团队进行研发,也都取得了非常不错的进展。

五.互动答题

1.想问一下ocr有没有针对中文繁体字异体字方面的识别技术?在古籍整理方面应该会有比较大的应用
答:我们目前是支持繁体的,如果要支持其他异体字,只要准备相应的训练集即可。

2.就识别银行卡这个功能 要怎么去做?
答:这知识点是哪方面的银行卡和身份证这种属于特定也许场景下的识别,相对本文介绍的通用图片识别压力要小很多。

3.想问一下ocr有没有针对中文繁体字异体字方面的识别技术?在古籍整理方面应该会有比较大的应用
答:我们目前是支持繁体的,如果要支持其他异体字,只要准备相应的训练集即可。

4.识别网络的训练样本大概是多少量级?准确率如何?
答:训练样本在千万级别,业务场景的识别率在95以上

5.看上面的那个图,对有地图,或者有背景水印的图片. ocr 还是很吃力.主要是文字检测阶段是不是?微信里面的街景扫描原理是怎样的?谢谢!
答:对,场景文字识别最难的还是文字检测,背景干扰,文字对比度弱等情况下很容易漏检。前面提过,只要训练样本足够,识别基本不会有什么问题的。微信的街景扫描没有体验过。自然场景的文字识别一直是业内挑战最高的一个课题,目前基于深度学习在这方面的研究很多,到工业界还没有非常成熟的算法,百度和google是业界最好的

6.当面对不同背景和图像畸变时,你们一般会如何应对,更倾向于在预处理缓解规范化,还是在训练样本中加入多样化的样本?
答:后者。不过检测到整行文字倾斜是可以考虑先做方向矫正再送识别

7.能用来识别车牌吗,考虑对车牌拍摄时的光照,角度等因素
答:可以。不过车牌的检测算法很成熟了,可以先检测到车牌,做方向矫正后再送识别。车牌银行卡这种文字类别相对很少,不到100个,一般传统的模板匹配的方法也可以达到比较好的效果。而本文介绍的通用图片的文字识别需要应对6000多个汉字还有英文数字等,对网络的要求更高

  1. 7.17号锤子发布的 big bang,他的检测很精确,尤其对文字语句,段句这块.现场展示将一段化学元素和语句成功段开,对于这个的原理,能解释下吗?这个您读它怎么看?谢谢!
    答:锤子的big bang个人理解跟ocr不大相关。手机应该是可以直接从聊天记录获得文本,不需要从图像里去检测和识别文字,主要涉及到的是NIL方向的算法,比如分词。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 一 OCR文字识别简介 1.1 什么是OCR OCR (Optical Character Recognition...
    摩天轮的守候阅读 15,111评论 0 5
  • 作者|文竹 李彪 晓明 编辑|小智 转自微信公众号「美团点评技术团队」 近年来,深度学习在语音、图像、自然语言处理...
    Sting阅读 954评论 0 4
  • “习惯是个很可怕的东西,因为习惯,会觉得是理所当然,因为习惯,就不会去想失去是什么模样”,微信聊天也是如此。 你习...
    一个喜欢追风的女子阅读 707评论 0 3
  • 铺专家告诉你开理发店该如何选址 经营理发店选址技巧很重要!理发店选址三大技巧。相对于理发店的位置,也就是说,不可能...
    xianyoupu阅读 163评论 0 0
  • 知道白云麦田是前几周的事,当时是饱叔写的一篇文章,出于好奇就在简书搜了白云麦田。 和大家一样,看了一两篇文章我就觉...
    Riemann_Jin阅读 846评论 8 14