




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Tesseract OCR(光学字符识别)引擎概述一:Tesseract OCR 简介Tesseract是惠普布里斯托实验室在1985到1995年间开发的一个开源的OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。但1996年后基本停止了开发。2005年,惠普将其对外开源,2006由Google对Tesseract进行改进、消除Bug、优化工作。项目地址为:/p/tesseract-ocr二: Tsseract OCR 架构Tesseract的识别步骤大致如下:1. 连通区域分析,检测出字符区域区域(轮廓外形),以及子轮廓。在此阶段轮廓线集成为块区域。2. 由字符轮廓和块区域得出文本行,以及通过空格识别出单词。固定字宽文本通过字符单元分割出单个字符,而对百分号的文本(Proportional text)通过一定的间隔和模糊间隔就(fuzzy spaces)来分割;3. 依次对每个单词进行分析,采用自适应分类器,分类器有学习能力,先分析的且满足条件的单词也作为训练样本,所以后面的字符(比如页尾)识别更准确;此时,页首的字符识别比较不准确,所以tesseract会再次对识别不太好的字符识别是其精度得到提高。4.最后,识别含糊不清的空格,及用其他方法,如由笔画高度(x-height),识别小写字母(small-cap)的文本。三:文本行和单词的查找(Line and Word Finding)a. 假设页面布局分析(page layout analysis)大致确定了文本区域和文本尺寸,一个简单百分位高度过滤器(percentile height filter)可以将跨行大写字母及纵向粘连一起的字符过滤掉,利用字符的高度信息,选取所有字符的中值高度,通过高度的比例调节去掉一些无关的块,比如标点符号,变音符和噪声等;b. 对块区域的x坐标排序,利用坐标拟合直线(baseline),拟合方法:中位数最小方差拟合(least median of squares fit)c. 进一步,拟合文本行的形状,利用四次多项式,将文本行看成螺线形,采用最小二乘法拟合d. 检测出等距文本(fixed pitch text),对粘连的文本进行分割(chopping)e. 对非等距字体如百分号,斜体等问题,利用中线、基准线之间的空白大小,来分割字符有关函数:1 PageIterator * tesseract:TessBaseAPI:AnalyseLayout()页面结构分析2. Boxa * tesseract:TessBaseAPI:GetRegions(Pixa *pixa) 获取页面结构分析结果3. Boxa * tesseract:TessBaseAPI:GetConnectedComponents(Pixa *pixa)连通域分析4.void tesseract:TessBaseAPI:GetBlockTextOrientations(int *block_orientation,bool *vertical_writing)获取每一块(block由页面结构分析获得)中的文字方向。5.Boxa * tesseract:TessBaseAPI:GetStrips(Pixa *pixa,int *blockids)获得strip区域6.Boxa * tesseract:TessBaseAPI:GetTextlines(Pixa *pixa,int *blockids)获得文本行7. Boxa * tesseract:TessBaseAPI:GetWords(Pixa *pixa) 以Boxa格式获取文字。8. Boxa *tesseract:TessBaseAPI:GetComponentImages (PageIteratorLevellevel,booltext_only,Pixa *pixa,int *blockids)获得指定级别的元素(block,textline, word)9.void tesseract:TessBaseAPI:DeleteBlockList(BLOCK_LIST *block_list)删除Block四:单词的识别(word recognition)a. 分割粘连的字符,将凹进去的轮廓点作为备选分割点,分割后,进行识别,如果都失败,就认为字符破损不全,修补字符b. 对破碎的字符,利用A*算法搜索最优的字符组合,直到达到满意的识别结果。(识别成功的基本是字符分类器可以很好的识别破碎的字符)1. int tesseract:TessBaseAPI:Recognize(ETEXT_DESC*monitor) 识别来自SetAndThresholdImage的图像, 产生Tesseract 内部结构数据。2. int tesseract:TessBaseAPI:RecognizeForChopTest(ETEXT_DESC*monitor) 识别来自SetAndThresholdImage,Recognize()orTesseractRect().的图像,测试chopper.3.bool tesseract:TessBaseAPI:ProcessPages(const char *filename,const char *retry_config,inttimeout_millisec,STRING*text_out)识别指定文件的所有页面4.bool tesseract:TessBaseAPI:ProcessPage(Pix *pix,intpage_index,const char *filename,const char *retry_config,inttimeout_millisec,STRING*text_out)识别指定文件的单张页面5.int tesseract:TessBaseAPI:IsValidWord(const char *word)检查字符是否无效五:静态字符识别(Static Character Classifier)特征a. 拓扑特征:与字体及大小无关,但问题是(引用文章看不到)?b.将字符近似为多边形作为特征:对破碎不连通的字符无效c. 突破性方案:训练阶段的特征与识别的特征可以不尽相同。在训练阶段,将近似多边形作为特征,而在识别阶段,抽取字符的轮廓特征并归一化,然后将训练集中的原型特征再与之,进行多对一的方式匹配(tesseract OCR采用c方案进行特征提取)The features extracted from the unknown:待识别字符的特征,3维数据(x, y坐标,角度),每个字符一般有50-100个特征the prototype features:原型特征(训练集中的字符特征),4维数据(x, y坐标,角度,长度)一般有10-20个特征分类,分为两个步骤:a. 粗分,多个特征,将每个特征相近的字符列举出来b. 细分,对相近的字符,用特征距离进行细分训练数据94个字符,8种大小,4种字体(正常,粗体,斜体,斜粗体),每种20个样本,共60160个样本。1.void tesseract:TessBaseAPI:GetFeaturesForBlob(TBLOB*blob,constDENORM&denorm,INT_FEATURE_ARRAYint_features,int *num_features,int *FeatureOutlineIndex)从Blob中获取特征六:语法分析训练集中有最常用的高频词,字典中的常用词,常用数字,常用大写、小写。将分割出的、待识别的词与这些词进行比较计算,算法采用加权最小距离。问题:不同的分割,会识别出不同的结果。两种结果都有可能,原因在于分割的不确定。用两个指标进行量化,一个是confidence,将未知字符到原型的归一化距离的负值为指标(confidence越大识别效果越好);第二是(rating)将未知字符的轮廓长度与未知字符到原型的归一化的距离相乘作为指标。1.int * tesseract:TessBaseAPI:AllWordConfidences() 以数组形式返回所有文字的置信值(confidence)2.int tesseract:TessBaseAPI:MeanTextConf()返回所有文字的平均置信值(confidence)七:自适应分类器(Adaptive Classifier)由于静态分类器涉及到多种字体,其区分相近字符、字符与非字符的能力被削弱。此时,由于每页文档内的字符的个数有限,利用静态分类器的结果可以训练出对字体更敏感的自适应分类器,可以提高分类能力。tesseract不用模板分类器,但使用相同的特征和分类作为静态分类器。静态与自适应分类器的区别,除了训练集外,还有自适应分类器会将一行字符的基线(baseline)/x-高度(小写字母x的高度) 归一化。 归一化后,很容易区分字母大小写及噪声;而静态分类器仅利用字符归一化的一阶矩确定位置,二阶矩确定字符大小。将字符的距 归一化最大的好处是 去除 高宽比(aspect ratio)和字体笔画宽度(stroke width)的影响,且使上标、下标的区分简单。但需要额外的分类特征来区分字母大小写。 (两种归一化:基线/x行高的归一化,单个字符距的归一化)1.bool tesseract:TessBaseAPI:AdaptToWordStr(PageSegModemode,const char *wordstr)将给定的字应用到自适应分类器中。2.void tesseract:TessBaseAPI:RunAdaptiveClassifier(TBLOB*blob,constDENORM&denorm,intnum_max_matches,int *unichar_ids,float *ratings,int *num_matches_returned)在Blob上运行自适应分类器tesseract还有学习能力,一般来说,整页的文章的识别率要比单个字符的识别率要高,而且速度要比单个字符识别(累加时间)要好。-在tesseract源码里,tesseract默认选取的特征是 bmp,分类器是Convolutional Neural Net classifier,即可演化的神经网络分类器(每一个结果都作为神
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 审计过程中的人力资源管理考核试卷
- 种子批发商企业社会责任报告与实施考核试卷
- 安全门禁售后运维
- 七年级下册教学设计与指导
- 畜牧兽医疫苗研究与开发考核试卷
- 初中剪纸艺术课程教案设计
- 一流的管理者:3不管、4不说、5不帮的管理智慧
- 2024-2030全球水飞蓟素原料药行业调研及趋势分析报告
- 2025年公用设备工程师之专业案例(暖通空调专业)强化训练试卷B卷附答案
- 幼儿教育个人简历
- 安装防雷设施合同协议
- 广东省2024-2025学年佛山市普通高中教学质量检测生物试卷(二)高三试卷(佛山二模)
- 商业银行资产配置与风险管理
- 《第六单元 音乐知识 下滑音》(教学设计)-2023-2024学年人教版(2012)音乐三年级下册
- 外研版(三起)(2024)三年级下册英语Unit 3 单元测试卷(含答案)
- 项目评估保密协议书(2篇)
- 清洗清洁功能无人机
- 农产品批发市场运营方案
- 富士数码相机finepix-S205EXR使用说明书简体中文版
- 电子健康记录优化-深度研究
- 会计法律法规答题答案
评论
0/150
提交评论