• OCR技术初识


    一、什么是OCR

    OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受、人又可以理解的格式。这一概念最早于 1929 年由德国科学家 Tausheck 提出。信息资源数字化工作的目标对象,是大量甚至海量的纸质载体或固体载体形态的文献资源,OCR 凭借自身的智能识别及批量操作性能得以在信息资源数字化工作中广泛应用。

    二、OCR的一般流程

    图像分析->预处理->行列切割->字符识别->后处理识别矫正
    

     OCR 文本识别,是信息资源数字化 OCR 识别生命周期中的最后阶段,是决定识别准确度的关键阶段。

    识别效果的好坏直接影响了后期的处理。

    三、OCR的一般识别方法

    1.谷歌开源OCR引擎Tesseract

    Tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/tesseract

    其最新版本3.0已经支持中文OCR,并提供了一个命令行工具,但其识别效率仍然存在诸多问题。

    2.OCR开放平台

    例如百度的平台,自己写个python脚本,调用开放平台的服务,返回的就是识别结果。但问题是代价高昂,最重要的问题是开发者无法后期控制,因为要借用别人的东西,就无法在识别上做改进,只能完善预处理和后期矫正部分。

    3.字符模板匹配

    对于一些场景简单的识别,比如文字种类少,规整,清晰度较高的图像,首先定义出文字模板,例如数字(0~9),字母(A~Z,a~z),然后用该模板滑动匹配图像上的字符,这种策略虽然简单但是相当有效。但是应用范围太窄,遇到模板库大的情况就不适用了。

    4.OCR的一般识别方法

    特征设计、特征提取、分类得出结果
    

     第一步是特征设计和提取,特征设计就是要为字符设计它独有的的特征,来为后面的特征分类做好准备。字符有啥特征呢?有结构特征,即字符的端点、交叉点、圈的个数、横线竖线条数等等,都是可以利用的字符特征。比如“品”字,它的特征就是它有3个圈,6条横线,6条竖线。除了结构特征,还有大量人工专门设计的字符特征,据说都能得到不错的效果。最后再将这些特征送入分类器(SVM)做分类,得出识别结果。这种方式最大的缺点就是,人们需要花费大量时间做特征的设计,这是一件相当费工夫的事情。通过人工设计的特征(例如HOG)来训练字符识别模型,此类单一的特征在字体变化,模糊或背景干扰时泛化能力迅速下降。而且过度依赖字符切分的结果,在字符扭曲、粘连、噪声干扰的情况下,切分的错误传播尤其突出。

    5.基于深度学习下的CNN字符识别

    在OCR系统中,人工神经网络主要充当特征提取器和分类器的功能,输入是字符图像,输出是识别结果。

    但是神经网络同样包含缺点,其需要大量的训练数据,并且耗时巨大。

     四、OCR 文本识别阶段识别准确度影响因素分析

    文本识别阶段 OCR  软件的性能优劣主要体现在对形近字符的辨识、对图像噪声的免疫力、对标点符号的辨识、数字图像预处理能力、能够辨识的内容范围、交互界面便捷性、软件自学习功能等 7 个方面。

    1.对形近字的辨识

    形近字符(如“籍”和“藉”、“璧”和“壁”)之间在笔画边缘部分存在较大相似度,辨识过程中容易造成 OCR 软件的误判。

    2.对数字图像噪声的免疫力

    数字图像的预处理操作,一般都对数字图像中的噪声进行了降噪处理。但是,受数字图像预处理程度、文本型数字图像自身质量等因素影响,在对文本型数字图像进行 OCR 识别时数字图像中往往仍然存在着不同程度的噪声。

    3.数字图像的预处理能力

    在对文本型数字图像(尤其是原始印刷、排版质量欠佳的数字图像)进行正式识别之前,需要借助 OCR 软件的图像预处理功能对数字图像进行微调,微调效果对识别准确度有直接影响。OCR 软件的图像预处理功能主要包括图像旋转、倾斜矫正、剪切以及亮度、对比度、饱和度、清晰度调整等。

     如何提高图像预处理能力

      (1)图像倾斜矫正

    文本型数字图像中的字符一旦偏离水平或垂直方向,影响 OCR 软件对其进行文本定位和字符分割,进而影响后续的识别准确度。因此,OCR 识别之前应进行数字图像倾斜校正,OCR 软件应具备自动校正和人工校正两种校正功能。

    (2)图像反白
    数字图像经二值化处理之后,数字图像中的字符图案呈黑色,其余背景部分呈白色。经反白处理之后,数字图像中的字符图案呈白色,其余背景部分呈黑色。借助图像反白处理,可以在黑色背景下把存在于数字图像中的噪点凸显出来,便于后续的降噪处理。

    (3)图像旋转
    因原始文献资料印刷排版质量或者数字扫描成像阶段操作不慎,容易造成文本型数字图像在水平或垂直方向上产生一定角度的倾斜。为确保对文本型数字图像的精确识别,OCR 软件应具备图像旋转功能,一般应支持在顺时针(或逆时针)方向上连续旋转 90 度,并支持在顺时针(或逆时针)方向上连续旋转任意角度以供选择。
    (4)图像剪裁
    因原始文献资料印刷排版质量欠佳,或流通使用过程中产生污损,或在数字扫描成像阶段操作不慎,容易在文本型数字图像边沿或文字区域形成明显的噪点。借助数字图像剪裁功能,OCR软件可以轻松去除这部分噪点。

  • 相关阅读:
    python实现模拟登录
    python进阶八_警告和异常
    我的软考之路(六)——数据结构与算法(4)之八大排序
    Modern source-to-source transformation with Clang and libTooling
    heibernate增删改查总结一下自己的不足
    hibernate之增删改查demo
    前台之boostrap
    <input value="hidden">的作用
    Active Desktop--桌面字体背景被修改
    中文乱码问题解决方法总结
  • 原文地址:https://www.cnblogs.com/bep-feijin/p/8689979.html
Copyright © 2020-2023  润新知