zoukankan      html  css  js  c++  java
  • Atitit  ocr识别原理 与概论 attilax总结

    Atitit  ocr识别原理 与概论 attilax总结

     

    1.1. Ocr的过程与流程1

    1.2. OCR不同技术细分略有不同,但大概原理是一样的。 即主要技术过程是:二值化(又叫归一化)--------行定位----------字符切分----------字库模型比对(取置信度较高字)---------输出2

    1.3. Tesseract 图片布局分析 字符分割和识别2

     

    1.1. Ocr的过程与流程

    预处理:对包含文字的图像进行处理以便后续进行特征提取、学习。这个过程的主要目的是减少图像中的无用信息,以便方便后面的处理。在这个步骤通常有:灰度化(如果是彩色图像)、降噪、二值化、字符切分以及归一化这些子步骤。经过二值化后,图像只剩下两种颜色,即黑和白,其中一个是图像背景,另一个颜色就是要识别的文字了。降噪在这个阶段非常重要,降噪算法的好坏对特征提取的影响很大。字符切分则是将图像中的文字分割成单个文字——识别的时候是一个字一个字识别的。如果文字行有倾斜的话往往还要进行倾斜校正。归一化则是将单个的文字图像规整到同样的尺寸,在同一个规格下,才能应用统一的算法。

    特征提取和降维:特征是用来识别文字的关键信息,每个不同的文字都能通过特征来和其他文字进行区分。对于数字和英文字母来说,这个特征提取是比较容易的,因为数字只有10个,英文字母只有52个,都是小字符集。对于汉字来说,特征提取比较困难,因为首先汉字是大字符集,国标中光是最常用的第一级汉字就有3755个;第二个汉字结构复杂,形近字多。在确定了使用何种特征后,视情况而定,还有可能要进行特征降维,这种情况就是如果特征的维数太高(特征一般用一个向量表示,维数即该向量的分量数),分类器的效率会受到很大的影响,为了提高识别速率,往往就要进行降维,这个过程也很重要,既要降低维数吧,又得使得减少维数后的特征向量还保留了足够的信息量(以区分不同的文字)。

    分类器设计、训练和实际识别:分类器是用来进行识别的,就是对于第二步,你对一个文字图像,提取出特征给,丢给分类器,分类器就对其进行分类,告诉你这个特征该识别成哪个文字。在进行实际识别前,往往还要对分类器进行训练,这是一个监督学习的案例。成熟的分类器也很多,什么svm,kn,神经网络et

    后处理:后处理是用来对分类结果进行优化的,第一个,分类器的分类有时候不一定是完全正确的(实际上也做不到完全正确),比如对汉字的识别,由于汉字中形近字的存在,很容易将一个字识别成其形近字。后处理中可以去解决这个问题,比如通过语言模型来进行校正——如果分类器将“在哪里”识别成“存哪里”,通过语言模型会发现“存哪里”是错误的,然后进行校正。第二个,OCR的识别图像往往是有大量文字的,而且这些文字存在排版、字体大小等复杂情况,后处理中可以尝试去对识别结果进行格式化,比如按照图像中的排版排列什么的,举个栗子,一张图像,其左半部分的文字和右半部分的文字毫无关系,而在字符切分过程中,往往是按行切分的,那么识别结果中左半部分的第一行后面会跟着右半部分的第一行诸如此类。

     

    1.2. OCR不同技术细分略有不同,但大概原理是一样的。 即主要技术过程是:二值化(又叫归一化)--------行定位----------字符切分----------字库模型比对(取置信度较高字)---------输出

     

    1.3. 刚好现在在公司做OCRSTR, 现在主流的方法是CNN(基于featuremap的文字检测)+lstm(任意序列的文字行识别)

    ICDAR2015文字竞赛上top的成绩基本都是这种方法了,另外题主如果想实现end to end的训练和预测可以直接考虑简单暴力的fasterrcnn,出来的结果用cnn过滤下可以达到ICDAR几个challenge的top3.

     

    1.4. Tesseract 图片布局分析 字符分割和识别

    · 

    引擎功能强大,概括地可以分为两部分

    图片布局分析,是字符识别的准备工作。工作内容:通过一种混合的基于制表位检测的页面布局分析方法,将图像的表格、文本、图片等内容进行区分。

    字符分割和识别是整个Tesseract的设计目标,工作内容最为复杂。首先是字符切割,Tesseract采用两步走战略:

     

    · 利用字符间的间隔进行粗略的切分,得到大部分的字符,同时也有粘连字符或者错误切分的字符。这里会进行第一次字符识别,通过字符区域类型判定,根据判定结果对比字符库识别字符。

    · 根据识别出来的字符,进行粘连字符的分割,同时把错误分割的字符合并,完成字符的精细切分

    当然,还有另一种说法—-细致地可以分为四个部分

    · 分析连通区域

    · 找到块区域

    · 找文本行和单词

    · 得出(识别)文本

    1.5. 印刷汉字识别的过程主要包括:


      (1)扫描输入文本图像;

      (2)图像的预处理;

      (3)图像版面的分析和理解;

      (4)图像的行切分和字切分;

      (5)基于单字图像的特征选择和提取;

      (6)基于单字图像特征的模式分类;

      (7)将被分类的模式赋予识别结果;

      (8)识别结果的编辑修改后处理。

      预处理包括对去掉原始图像中的显见噪声(干扰)、扫描文字行的倾斜校正等。版面分析是对文本图像的总体分析,区分出文本段落及排版顺序,以及图像、表格的区域。对于文本区域将进行识别处理,对于表格区域进行专用的表格分析及识别处理,对于图像区域进行压缩或简单存储。行字切分是将大幅的图像先切割为行,再从图像行中分离出单个字符的过程。特征提取是整个环节中最重要的一环,它是从单个字符图像上提取统计特征或结构特征的过程,包括为此而做的细化、归一化等步骤。提取特征的稳定性及有效性,直接决定了识别的性能。文字识别即从已有的特征库中找到与待识字符相似度最高的字符类的过程。后处理则是利用词义、词频、语法规则或语料库等语言先验知识对识别结果进行校正的过程。

      在这整个过程中,第4、5和6步是印刷汉字识别中最为核心的技术。汉字的模式表达形式和相应的字典形成方法有多种,每种形式又可以选择不同的特征,每种特征又有不同的抽取方法,这就使得判别方法和准则以及所用的数学工具不同,形成了种类繁多、形式各异的汉字识别方法。总的来说,不同的特征抽取和分类器的设计方法决定了识别系统采用不同的处理方法,通常可以分为结构模式识别方法、统计模式识别方法、统计与结构相结合的识别方法以及人工神经网络方法等。

     

    1.6. 字符识别: 这一研究,已经是很早的事情了,比较早有模板匹配,后来以特征提取为主

    ,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度

     

    字符切割:

    由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要文字识别软件有字符切割功能。

     

    OCR----Tesseract 3.x架构及原理解析 - 博客频道 - CSDN.NET.html

    (1 条消息) OCR文字识别用的是什么算法? - 知乎.html

    汉字OCR基本原理_品味轩_新浪博客.html

    简述OCR文字识别的工作原理。_百度知道.html

     

     

    作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

    汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    Atiend

     

     

  • 相关阅读:
    《构建之法》第四章 第十七章阅读笔记
    2016012037+小学四则运算练习软件项目报告
    阅读《构建之法》所得与初步思考
    随机产生300个四则运算题
    我与软件工程的相识,相知
    转 如何快速看懂一个大型程序 http://blog.csdn.net/jysg9/article/details/24193181
    SQL Server 存储过程(转)
    sql 视图的作用(转http://www.cup.edu.cn/nic/Programing/database/34943.htm)
    linux性能问题(CPU,内存,磁盘I/O,网络)( 转载)
    qtp测试计划
  • 原文地址:https://www.cnblogs.com/attilax/p/15198346.html
Copyright © 2011-2022 走看看