1 OCR简介
财务人员可以使用OCR系统即时获得发票上的信息,无需人工录入即可直接导入数据库;
我们可以通过手机摄像头实时获取客户信息,免去打字的烦恼;
通过行车记录仪获取路边标识牌的信息,以辅助自动驾驶;
图书馆...
2 OCR的分类
根据不同的阶段,OCR的发展可以分为传统OCR技术方法和基于深度学习的OCR方法。
2.1 传统OCR技术方法
基于传统的OCR处理方法,使用了大量的图像处理方法和知识,而且基本上都是复合人类视觉逻辑的设计:首先,是数据的预处理;然后,是数据的特征提取、特征降维等操作;最后,是送入一些诸如SVM、SoftMax等经典的机器学习分类器中进行分类和识别。
具体的流程如下:
- 1、图像的输入:对于不同的图像,由于格式和压缩方式不同,所以需要不同的方法进行解码;
- 2、图像的预处理:主要包括二值化、去噪声、倾斜校正等;
- 3、版面分析:对于文档图片分段落、分行处理的过程;
- 4、字符切割:因为需要对每个字做识别,所以需要将版面文字切割成一个个单字,以用于后续识别器的识别;
- 5、字符识别:该研究主要是在较早时期有模板匹配,后来以特征提取为主。文字的位置,笔画粗细、断笔、粘连、旋转等因素大大地增加了特征提取的难度;
- 6、版面恢复:人们希望识别后的文字仍然可以和之前一样排列,因此需要将识别的输出到word或者pdf文档;
- 7、后处理:根据语言模型,对识别的结果进行语义处理。
2.2 基于深度学习的OCR方法
相对于传统的OCR方法来说,它更多的是限定于文档类的识别,但是发展至今OCR的概念也被拓宽了很多可以表述为文字图像识别,主要是自然场景的文字识别。
自然场景中的图像信息相对于文本类文档信息更加的丰富也更加的复杂,因此识别的难度要远远大于文本类的文档识别;比如在每一种语言下,可能还包含多种字母。每种字母又可以有不同的大小、颜色、字体、亮度、对比度等。同时文字的排列和对齐方式也不尽相同,横向、竖向、弯曲的情况都会出现;图像的非文字区域可能有与文字区域相似的纹理,比如窗户、树叶、栅栏、砖墙等。因为拍摄角度的问题,图像文字还存在形变问题(透视变换、仿射变换等)。此外,光照、低对比度、模糊断裂、残缺文字等也提升了文本检测和识别的难度。
基于深度学习的OCR方法可以分为两个主要的步骤:
- 1、文本检测(主要用于定位图像中文字的位置)
- 2、文本识别(主要用于识别图像中文本的具体内容)
2.2.1 文字检测
文本检测的方法主要包括:
- 1、基于候选框的文本检测:首先预生成若干候选框,然后回归坐标和分类,最后经过NMS得到最终的检测结果;
- 2、基于语义分割的文本检测:
首先通过FPN直接进行像素级别的语义分割,然后进行后处理得到相关坐标即可; - 3、基于上述2种方法的混合方法:混合实现;
- 4、End-to-End方法:主要包括:FOTS、TextSpotter等,因为识别网络可以帮助检测网络去除一些非文字区域。
文字检测脑图一些文字检测的例子
2.2.2 文字识别
文字识别的目标是对定位好的文字区域进行识别,主要解决的是将一串文字图片转录为对应的文字的问题;常用的文字识别框架主要有2个:CNN+RNN+CTC和CNN+Seq2Seq+Attention:
- CRNN是白翔教授提出的End-to-End的方法,是目前主流的图文识别模型,可以识别比较长的而文本序列,包含CNN特征提取层和BiLSTM序列特征提取层,能够进行端到端的联合训练。同时,CRNN利用BiLSTM和CTC-Loss学习文字的上下文关系,从而提升了文字的识别率,使得模型更具鲁棒性。
- CNN+Seq2Seq+Attention相较于CRNN的区别是使用了Seq2Seq+Attention,可以用于解决多对多的映射问题,同时利用最新的Attention技术,提升了文字的识别率。Attention在英文识别上效果非常好,但是中文识别效果不仅不稳定而且算力开销大,所以工业界还是使用CTC更多一些。
其实两者结构差不多,前面的编码器CNN主要是用于特征提取,后续的解码器RNN+CTC以及Seq2Seq+Attention有所区别。
CRNN和CNN+Seq2Seq+Attention方法
文字识别脑图
3 产业应用现状
OCR技术作为机器视觉领域的一个非常重要的垂直领域,涉及的应用领域非常的丰富。各个领域也出现了非常多的产品或者解决方案,具体列举如下:
- 卡片证件识别类:身份证识别、银行卡识别、驾驶证识别、行驶证识别、港澳通行证识别、护照识别、户口簿识别、营业执照识别;
- 票据类识别:增值税发票识别、支票识别、承兑汇票识别、银行票据识别、营业执照识别、物流快递识别;
- 文字信息结构化视频类识别:主要有字幕识别和文字跟踪;
- 其他识别:二维码识别、一维码识别、车牌识别、数学公式识别、物理化学符号识别、音乐符号识别、工程图识别、流程图识别、古迹文献识别、手写输入识别;
- 除了以上列举的之外,还有自然场景下的文字识别、菜单识别、横幅检测识别、图章检测识别、广告类图文识别等围绕审核相关的业务应用。