OCR综述

文章目录

  • OCR综述
    • 简介
    • 图像预处理
      • 灰度化
      • 二值化
      • 倾斜矫正
      • 规范化
      • 图像平滑
    • 文本检测
      • 难点
      • 技术
    • 文本识别
      • 技术
    • 仪表识别
      • 难点

OCR综述

简介

  • 技术简介

光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。

  • 发展状况
    参考资料

  • 应用场景

根据识别场景,可大致将OCR分为识别特定场景的专用OCR和识别多种场景的通用OCR。比如现今方兴未艾的证件识别和车牌识别就是专用OCR的典型实例。通用OCR可以用于更复杂的场景,也具有更大的应用潜力。但由于通用图片的场景不固定,文字布局多样,因此难度更高。根据所识别图片的内容,可将场景分为清晰且具有固定模式的简单场景和更为复杂的自然场景。自然场景文本识别的难度极高,原因包括:图片背景极为丰富,经常面临低亮度、低对比度、光照不均、透视变形和残缺遮挡等问题,而且文本的布局可能存在扭曲、褶皱、换向等问题,其中的文字也可能字体多样、字号字重颜色不一的问题。因此自然场景中的文字识别技术,也经常被单列为场景文字识别技术(Scene Text Recognition, STR)

  • 技术路线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yNHI6Ph5-1603687865535)(en-resource://database/842:1)]

在传统OCR技术中,图像预处理通常是针对图像的成像问题进行修正。常见的预处理过程包括:几何变换(透视、扭曲、旋转等)、畸变校正、去除模糊、图像增强和光线校正等
文字检测即检测文本的所在位置和范围及其布局。通常也包括版面分析和文字行检测等。

文字检测主要解决的问题是哪里有文字,文字的范围有多大。文本识别是在文本检测的基础上,对文本内容进行识别,将图像中的文本信息转化为文本信息。

文字识别主要解决的问题是每个文字是什么。识别出的文本通常需要再次核对以保证其正确性。文本校正也被认为属于这一环节。而其中当识别的内容是由词库中的词汇组成时,我们称作有词典识别(Lexicon-based),反之称作无词典识别(Lexicon-free)
参考资料

图像预处理

输入文本经过扫描仪进入计算机后,由于纸张的厚薄、光洁度和印刷质量都会造成文字畸变,产生断笔、粘连和污点等干扰,所以在进行文字识别之前,要对带有噪声的文字图像进行处理。由于这种处理工作是在文字识别之前,所以被称为预处理。预处理一般包括灰度化、二值化,倾斜检测与校正,行、字切分,平滑,规范化等等

灰度化

通过外设采集的图像通常为彩色图像,彩色图像会夹杂一些干扰信息,灰度化处理的主要目的就是滤除这些信息,灰度化的实质其实就是将原本由三维描述的像素点,映射为一维描述的像素点

二值化

经过灰度处理的彩色图像还需经过二值化处理将文字与背景进一步分离开,所谓二值化,就是将灰度值(或者彩色值)图像信号转化成只有黑(l)和白(0)的二值图像信号。二值化效果的好坏,会直接影响灰度文本图像的识别率。二值化方法大致可以分为局部阈值二值化和整体阈值二值化。目前使用较多的日本学者大津提出的“大津法”

倾斜矫正

在文本页面扫描过程中,不论是手工扫描还是机器扫描,都不可避免地会出现图像倾斜现象。而倾斜的文档图像对后期的字符分割、识别和图像压缩等工作将产生很大影响。为了保证后续处理的正确性,对文本图像进行倾斜检测和校正是十分必要的。
文本图像的倾斜检测方法主要可以划分为以下五类:

  • 基于投影图的方法

基于投影图的方法是将文本图像沿不同方向进行投影。当投影方向和文字行方向一致时,文字行在投影图上的峰值最大,并且投影图存在明显的峰谷,此时的投影方向就是倾斜角度。

  • 基于Houhg变换的方法

Huogh变换也是一种最常用的倾斜检测方法,它是利用Hough变换的特性,将图像中的前景像素映射到极坐标空间,通过统计极坐标空间各点的累加值得到文档图像的倾斜角度。

  • 基于交叉相关性的方法
  • 基于Fourier变换的方法

Fourier变换的方法是利用页面倾角对应于使Fourier空间密度最大的方向角的特性,将文档图像的所有像素点进行Fourier变换。这种方法的计算量非常大,目前很少采用。

  • 基于最近邻聚类方法

基于最近邻聚类方法,取文本图像的某个子区域中字符连通域的中心点作为特征点,利用基线上的点的连续性,计算出对应的文本行的方向角,从而得到整个页面的倾斜角。

规范化

规范化操作就是将输入的任意尺寸的文字都处理成统一尺寸的标准文字,以便与己经预先存储在字典中的参考模板相匹配。规范化操作包括1211:位置规范化、大小规范化以及笔划粗细规范化。

  • 位置规范化

为了消除文字点阵位置上的偏差,需要把整个文字点阵图移动到规定的位置上,这个过程被称为位置规范化。常用的位置规范化操作有两种:

    • 基于质心
    • 基于文字外边框
  • 大小规范化

对不同大小的文字做变换,使之成为同一尺寸大小,这个过程被称为大小规范化。大小规范化分两种:

    • 将文字的外边框按比例线性放大或缩小成规定尺寸的文字
    • 根据水平和垂直两个方向上文字黑像素的分布情况进行大小规范化

图像平滑

文本图像经过平滑处理之后,能够去掉笔划上的孤立白点和笔划外部的孤立黑点,以及笔划边缘的凹凸点,使得笔划边缘变得平滑

参考资料

文本检测

难点

文本检测不是一件简单的任务,尤其是复杂场景下的文本检测,非常具有挑战性。自然场景下的文本检测有如下几个难点:

  • 文本存在多种分布,文本排布形式多样
  • 文本存在多个方向
  • 多种语言混合

技术

1、Faster RCNN:目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)终于被统一到一个深度网络框架之内。剔除了大部分的计算冗余,大部分训练过程在GPU中完成,进一步提高了运行速度。
参考资料:
https://blog.csdn.net/Gavinmiaoc/article/details/80704583
2、CTPN(基于Faster RCNN):目前比较成熟的文本检测框架,精确度较好。但是检测时间较长,有很大的优化空间。

预测文本的竖直方向上的位置,水平方向的位置不预测
对于非水平的文字不能检测
参考资料:
https://blog.csdn.net/Gavinmiaoc/article/details/83274155
3、TextBoxes、TextBoxes++(基于SSD):调整Anchor长宽比,适用于文字细长的特点,但针对小文本会有漏检。

4、SegLink(CTPN+SSD):通常用于自然场景下,检测多角度文本。

5、DMPNet:采用非矩形四边形选定Anchor进行检测,通过Monte-Carlo方法计算标注区域于矩形候选框和旋转候选框的重合度后重新计算顶点坐标,得到非矩形四边形的顶点坐标。适用于自然场景下文本检测。

6、YOLO:文本检测时间短,精确度较好。但针对小目标效果一般,容易造成大范围漏检。

7、EAST:采取FCN思路,做特征提取和特征融合,局部感知NMS阶段完成检测。网络的简洁使得检测准确率和速度都有进一步提升。(针对自然场景下使用较多)

8、Pixel-Anchor:针对Anchor数量多引起文本出现的丢失问题、Pixel感受野不足引起长文本丢失情况,结合两者各自的优点,对于长行的中文检测场景有较好的适应性。网络结构可以分为两部分,其中pixel-based的方法为对EAST的改进,anchor-based的方法为对SSD的改进。前者主要为了检测中等的文本,后者主要为了检测长行和较小的文本。

9、IncepText:针对大尺度、长宽比及方向变化问题,借鉴GoogLeNet中的inception模块来解决这些问题。在inception结构中通过不同尺寸的卷积核设计达到检测不同大小和宽高比的文字,同时引入deformable卷积层操作和deformable PSROI pooling层提升任意方向文字的检测效果。

  • 技术综述及文献
    https://blog.csdn.net/u013063099/article/details/91950755
    https://www.cnblogs.com/skyfsm/p/9776611.html

文本识别

技术

1、CNN+RNN+CTC(如CRNN):使用目前最为广泛的一种文本识别框架。需要自己构建字词库(包含常用字、各类字符等)。

2、CNN(如Densenet)+CTC:资料不多,效果一般,泛化能力较差。没有加入了RNN的效果好。

3、Tesserocr(Tesseract):使用比较广泛的一种开源识别框架,支持多语言多平台。Tesseract在识别清晰的标准中文字体效果还行,稍微复杂的情况就很糟糕(多字体等),而且花费的时间也很多。

4、RARE:主要用于识别变形的文本图像效果好,用于自然场景下文本识别。

5、FOTS(EAST+CRNN):端到端OCR模型,检测和识别任务共享卷积特征层,既节省了计算时间,也比两阶段训练方式学习到更多图像特征。引入了旋转感兴趣区域(RoIRotate), 可以从卷积特征图中产生出定向的文本区域,从而支持倾斜文本的识别。

6、ASTER:模型主要分为两个部分,一个是矫正模型,一个是识别模型。文本矫正模
型,不需要任何矫正标注信息,对弯曲文本、透视文本有着很好的矫正效果。识别模型中的CNN使用了ResNet的结构,最后的解码部分使用的是Sequence2Sequence机制来进行解码,不同于CRNN的CTCLoss。

  • 技术综述及文献
    https://blog.csdn.net/u013063099/article/details/91950755

仪表识别

难点

https://zhuanlan.zhihu.com/p/95395252

你可能感兴趣的:(ocr,深度学习,机器学习)