• 基于Tesseract的OCR图像识别


    何为Tesseract?
    Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生。在2005年,Tesseract由美国内华达州信息技术研究所获得,并委托Google对其进行改进、优化工作。
    Tesseract目前已作为开源项目发布在Google Project,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,我们还可以不断训练自己的库,使图像转换文本的能力不断增强。如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。


    Tesseract基本工作原理:

    Tesseract安装教程:
    1. tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/
    2.下载完成后双击安装包,选择路径,选择语言后继续下一步直到安装成功

    3.配置Tesseract的环境变量

    4.查看安装结果
    在cmd中输入tesseract –v 有结果如下图,则说明安装成功:

    Tesseract使用教程:

    bat调用Tesseract 在cmd中进入图片所在目录,输入  tesseract 图片名称  结果文档名称 如: tesseract 0.png result.txt   ,识别0.png的结果保存为result.txt文档。

    python调用Tesseract
    1.pip安装pytesseract cmd输入指令 pip install pytesseract  
    调用方法:
    text = pytesseract.image_to_string(image)

     

    7.cmd运行指令生成字符特征集(tr)
     tesseract num.font.exp0.tif num.font.exp0 nobatch box.train

    8.cmd运行指令生成字符集(unicharset)
    unicharset_extractor num.font.exp0.box

    9. cmd运行指令生成字符特征(shapetable、inttemp、pffmtable、 normproto)
    shapeclustering -F font_properties.txt -U unicharset num.font.exp0.tr      
    mftraining -F font_properties.txt -U unicharset -O num.unicharset  num.font.exp0.tr
    cntraining num.font.exp0.tr
    10.重命名,结果合并
    把目录下的字符集 unicharset、图形原型文件inttemp、字符特征数文件pffmtable、
    字符形状表shapetable、字符形状正常化特征文件normproto
    这五个文件的文件名前面都加上“num.”执行combine_tessdata num,生成num.traineddata
    11.结果导入
    把num.traineddata放到tesseract目录下的tessdata目录下



     1.下载工具jTessBoxEditor 并解压
    网址: https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/ 

    2.获取训练数据:

    3.合并样本图像。
    运行jTessBoxEditor     
    点击Tools--->Merge TIFF。   
    选择样本图像合并成num.font.exp0.tif文件。   

    4.打开命令行执行命令生成box文件: tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox   生成的BOX文件为num.font.exp0.box,BOX文件为Tessercat识别出的文字和其坐标。
    Make Box File的命令格式为:
    tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox 
    其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。
    5.文字校正。
    运行jTessBoxEditor    
    打开num.font.exp0.tif(必须将上一步生成的.box和.tif样本文件放在同一目录)    手动对每张图片中识别错误的字符进行校正。校正完成后保存。

    6.定义字体特征文件。
    Tesseract-OCR3.01以上的版本在训练之前需要在样本图片(tif)所在目录下创建一个名称为font_properties的字体特征文件。
    font_properties不含有BOM头,文件内容格式如下:
     <fontname> <italic> <bold> <fixed> <serif> <fraktur> 
    fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。
    这里用记事本打开font_properties ,输入以下下内容:
     num 0 0 0 0 0 





  • 相关阅读:
    mac 提示app已经损坏打开的方法
    查看mac ip地址
    前端页面输入框合法性校验
    mybatis报错:Cause: java.sql.SQLSyntaxErrorException: Unknown column 'end_date' in 'field list'
    mybatis项目报错:Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
    项目中遇到的错误:Caused by: java.net.BindException: Address already in use: bind
    hashMap&hashtable&ConcurrentMap的区别
    3.java面试题(三)
    Mybatis项目启动时报错:The server time zone value '�й���׼ʱ��' is unrecognize
    1.java面试题(一)
  • 原文地址:https://www.cnblogs.com/jie-2019/p/11936330.html
Copyright © 2020-2023  润新知