深度学习在OCR中的应用

本文探讨了深度学习在光学字符识别(OCR)领域的革新应用,重点介绍了基于深度学习的OCR技术如何克服传统方法的局限,特别是在处理复杂场景和非受控环境下文字检测与识别的挑战。文章详细阐述了深度学习框架在文字检测、文字行识别及序列学习方面的具体实现,展示了在不同应用场景下显著提升的识别性能。

背景

计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测、识别、理解、跟踪、判别决策的功能。以美团业务为例,在商家上单、团单展示、消费评价等多个环节都会涉及计算机视觉的应用,包括文字识别、图片分类、目标检测和图像质量评价等方向。本文将通过以OCR(光学字符识别)的场景来介绍深度学习在计算机视觉中的应用。

基于深度学习的OCR

文字是不可或缺的视觉信息来源。相对于图像/视频中的其他内容,文字往往包含更强的语义信息,因此对图像中的文字提取和识别具有重大意义。OCR在美团业务中主要起着两方面作用。一方面是辅助录入,比如在移动支付环节通过对银行卡卡号的拍照识别以实现自动绑卡,辅助运营录入菜单中菜品信息,在配送环节通过对商家小票的识别以实现调度核单,如图1所示。另一方面是审核校验,比如在商家资质审核环节对商家上传的身份证、营业执照和餐饮许可证等证件照片进行信息提取和核验以确保该商家的合法性,机器过滤商家上单和用户评价环节产生的包含违禁词的图片。

图1 图像中的文字提取和识别流程

OCR技术发展历程

传统的OCR基于图像处理(二值化、连通域分析、投影分析等)和统计机器学习(Adaboost、SVM),过去20年间在印刷体和扫描文档上取得了不错的效果。传统的印刷体OCR解决方案整体流程如图2所示。

图2 传统的印刷体OCR解决方案

从输入图像到给出识别结果经历了图像预处理、文字行提取和文字行识别三个阶段。其中文字行提取的相关步骤(版面分析、行切分)会涉及大量的先验规则,而文字行识别主要基于传统的机器学习方法。随着移动设备的普及,对拍摄图像中的文字提取和识别成为主流需求,同时对场景中文字的识别需求越来越突出。因此,相比于印刷体场景,拍照文字的识别将面临以下三方面挑战:

  • 成像复杂。噪声、模糊、光线变化、形变。
  • 文字复杂。字体、字号、色彩、磨损、笔画宽度任意、方向任意。
  • 场景复杂。版面缺失、背景干扰。

对于上述挑战,传统的OCR解决方案存在着以下不足:

  • 通过版面分析(连通域分析)和行切分(投影分析)来生成文本行,要求版面结构有较强的规则性且前背景可分性强(例如黑白文档图像、车牌),无法处理前背景复杂的随意文字(例如场景文字、菜单、广告文字等)。另外,二值化操作本身对图像成像条件和背景要求比较苛刻。
  • 通过人工设计边缘方向特征(例如方向梯度直方图)来训练字符识别模型,在字体变化、模糊或背景干扰时,此类单一的特征的泛化能力迅速下降。
  • 过度依赖于字符切分的结果,在字符扭曲、粘连、噪声干扰的情况下,切分的错误传播尤其突出。
  • 尽管图像预处理模块可有效改善输入图像的质量,但多个独立的校正模块的串联必然带来误差传递。另外由于各模块优化目标独立,它们无法融合到统一的框架中进行。

为了解决上述问题,现有技术在以下三方面进行了改进。

1. 文字行提取

传统OCR(如图3所示)采取自上而下的切分式,但它只适用于版面规则背景简单的情况。该领域还有另外两类思路。

  • 自底向上的生成式方法。该类方法通过连通域分析或最大稳定极值区域(MSER)等方法提取候选区域,然后通过文字/非文字的分类器进行区域筛选,对筛选后的区域进行合并生成文字行,再进行文字行级别的过滤,如图3所示。该类方法的不足是,一方面流程冗长导致的超参数过多,另一方面无法利用全局信息。

图3 基于自底向上的文字检测

  • 基于滑动窗口的方法。该类方法利用通用目标检测的思路来提取文字行信息,利用训练得到的文字行/词语/字符级别的分类器来进行全图搜索。原始的基于滑动窗口方法通过训练文字/背景二分类检测器,直接对输入图像进行多尺度的窗口扫描。检测器可以是传统机器学习模型(Adaboost、Random Ferns),也可以是深度卷积神经网络。

为了提升效率,DeepText、TextBoxes等方法先提取候选区域再进行区域回归和分类,同时该类方法可进行端到端训练,但对多角度和极端宽高比的文字区域召回低。

2. 传统单字识别引擎→基于深度学习的单字识别引擎

由于单字识别引擎的训练是一个典型的图像分类问题,而卷积神经网络在描述图像的高层语义方面优势明显,所以主流方法是基于卷积神经网络的图像分类模型。实践中的关键点在于如何设计网络结构和合成训练数据。对于网络结构,我们可以借鉴手写识别领域相关网络结构,也可采用OCR领域取得出色效果的Maxout网络结构,如图4所示。对于数据合成,需考虑字体、形变、模糊、噪声、背景变化等因素。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值