`
soleman
  • 浏览: 12910 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tesseract 训练---别人的东东

 
阅读更多
关于tesseract-ocr3的训练和使用 众所周知,这是一个出色的字符识别软件。这个开源项目可以在http://code.google.com/p/tesseract-ocr/downloads/list下载。

在使用时,建议使用3而不要使用2,因为一些原因,2虽然可以直接用在工程,但是由于一些显而易见的BUG和其他原因,多导致程序无法运行甚至崩溃。所以建议使用命令行版本的3 。

除了下载tesseract安装程序以外,还可以在下载页面下载一些语言库,当然,也可以在安装过程中选择一些语言库来进行安装。



一、训练

在很多时候,默认的字库等完全可以高准确度的识别,但是有些时候我们需要训练自己的库来使用。训练步骤如下:

注:

A、均以DOS命令为例,即将每步下面的命令保存为.BAT运行,或运行CMD进入tesseract所在目录运行

B、注意保证文件名的一致性(此处均为DDT)

0、复制training目录下的全部文件到tesseract3所在目录

copy .\training\*.exe .\

1、标记边框

tesseract ddt.tif ddt -l eng digits batch.nochop makebox

解释一下

ddt.tif为要识别的文件,支持jpg,gif,tiff等格式,建议用tif

ddt 为要保存的文件名(自动添加扩展名.box)

-l eng 使用的库,这个参数可以让我们选择用哪个字库来标记边框

后面的都是配置文件了,也就是tesseract的其他参数被以文件形式加载,而不是直接输入参数

digits指定了只识别0-9的数字(当然你可以编辑它,使它包含更多的字符),当你不需要指定时,一定要去掉这个参数,但使用这种字符集限定,可以最大程度上减少被错误识别搞的你编辑ddt.box头昏脑胀的几率。

注:

这一步非常关键,但也经常出现问题,即使你在http://code.google.com/p/bbtesseract/downloads/list下载了bbtesseract也是如此,所以我感觉应该自己编一个边框识别,但没有时间做。完全可以将命令写入到软件里,实现图形化。所以,注意编辑你生成的ddt.box文件,保证字符都被识别且边框正确。

这里也有一个小技巧,例如我做过这样一个tif:1.2-34567089,在这一步的时候,只识别了2-9这一部分,于是我修改tif为:001.2-34567089,就全部识别了。也许可以给你一些启示。

2、形成语言库

tesseract ddt.tif ddt -l eng digits nobatch box.train
unicharset_extractor ddt.box
rename unicharset ddt.unicharset
mftraining -U unicharset -O ddt.unicharset ddt.tr
rename inttemp ddt.inttemp
rename pffmtable ddt.pffmtable
rename Microfeat ddt.Microfeat
cntraining ddt.tr
rename normproto ddt.normproto
combine_tessdata ddt.

这里面包含了若干步骤,但其他人扒的“教程”已经啰嗦很多了,不再啰嗦。

注:那几个rename是必要的,因为生成的文件只有扩展名。只要注意了这些,就没问题了。

3、测试语言库

copy ddt.traineddata .\tessdata\ddt.traineddata

tesseract ddt.tif ddt -l ddt
notepad ddt.txt

如果测试失败了,你应该检查:

A、是否tif宽度太小,如果是,我建议你在下面增加一行,就是说把1行改成2行,增加什么呢,随意增加一些你字库里面的字符,但最好和图像一样宽。

B、如果还没正确识别,回头仔细检查你的ddt.box





如果你失败了,记得清理前面生成的文件,可以使用一下命令:

copy ddt.tif tmp.tif
del ddt.* /f /s
copy tmp.tif ddt.tif
del tmp.tif

然后从第一步重新来过。



二、使用

使用时,只需要注意,对于单行并且字符数较少的图像,如果不识别,最好是在下面添加一行无用行,并保证该行基本达到图像宽。

注:

在使用时,可能会发生找不到字库的情况(尤其当你卸载后重装tesseract时),此时,应修改

HKEY_CURRENT_USER\Environment\TESSDATA_PREFIX的值为你的tesseract所在目

在代码的new函数中,我修改了注册表,以防止出错,更好的做法应该是在这之前记录原始值并在类销毁时恢复。之后,指出了屏幕复制时可能存在的一些问题,当然,如果你是取验证码啥的,那就不用关心这些了。然后对图像进行了简单的校正,需要注意的是,必须校正为白底黑字才行,否则不识别。而后,我在下面添加了一行无用的文字,并在返回值时进行了适当处理。再有一点需要注意的是,shell函数的最后一个参数,指出了等待调用进程结束,如果你要在vb6当中使用,这里就需要用api来实现等待——而不要用sleep等定时等待函数,那将会使得你的程序不够健壮。
分享到:
评论

相关推荐

    tesseract --list-langs 中文

    通过运行`tesseract --list-langs`命令,用户可以查看当前安装的Tesseract版本所包含的所有预训练模型,从而知道哪些语言可以用于识别。 在数据结构方面,Tesseract内部使用了一种称为“字库”的数据结构,它包含了...

    tesseract-5.0.1-1.5.7-API文档-中英对照版.zip

    赠送jar包:tesseract-5.0.1-1.5.7.jar; 赠送原API文档:tesseract-5.0.1-1.5.7-javadoc.jar; 赠送源代码:tesseract-5.0.1-1.5.7-sources.jar; 赠送Maven依赖信息文件:tesseract-5.0.1-1.5.7.pom; 包含翻译后...

    tesseract-ocr-setup-3.05.01dev-20170510.exe.zip

    3. **高可训练性**:用户可以训练Tesseract识别特定字体或手写文字,以提高识别特定场景下的准确率。 4. **命令行界面和API**:Tesseract提供命令行工具,可以直接通过命令行调用进行文本识别,同时也有API供开发者...

    tesseract-3.02.02-win32-lib-include-dirs(源文件).zip

    tesseract-3.02.02-win32-lib-include-dirs(SDK) tesseract-3.02.02-win32-lib-include-dirs(SDK) tesseract-3.02.02-win32-lib-include-dirs(SDK) tesseract-3.02.02-win32-lib-include-dirs(SDK)

    tesseract-ocr-w64-setup-v5.0.1.20220118.exe免费的哦

    **Tesseract OCR:开启文本识别的新篇章** Tesseract OCR(Optical Character Recognition,光学字符识别)是一种强大的开源软件,用于将图像中的文本转换为可编辑的格式。标题中的"tesseract-ocr-w64-setup-v5.0.1...

    tesseract-ocr-setup-3.01-1

    3. **自定义训练**: 用户可以利用Tesseract的训练工具创建自己的文字识别模型,适应特定的字体或领域。 4. **高性能**: 在适当配置下,Tesseract能够快速处理大量图像,适用于大规模的自动化文本识别任务。 5. **API...

    tesseract-ocr-w64-setup-v5.0.0-alpha.20210811.exe

    tesseract-ocr-w64-setup-v5.0.0-alpha.20210811.exe

    python图片中文识别引擎Tesseract-OCR

    安装完成之后设置pytesseract.py中的tesseract_cmd为'C:/Program Files (x86)/Tesseract-OCR/tesseract',tessdata_dir_config = '--tessdata-dir "C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'赋值给def ...

    Tesseract-OCR 训练工具

    **Tesseract OCR训练工具详解** Tesseract OCR(Optical Character Recognition,光学字符识别)是由Google维护的一款开源OCR引擎,能够自动识别图像中的文字并转换为可编辑文本。它广泛应用于文档扫描、图片文字...

    tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.zip

    帮你下载好啦,犒赏个最便宜的一积分嘿嘿嘿!或是透过下面地址去下载 原始下载页面:...原始下载地址:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.exe

    tesseract-ocr-setup-3.05.02-20180621

    tesseract-ocr-setup-3.05.02-20180621,tesseract稳定版本

    tesseract-ocr-w64-setup-v5.3.0.20221214.exe

    - **深度学习增强**:Tesseract 4.0及以后版本引入了基于深度学习的模型,可通过训练自己的数据集进一步提升识别性能。 - **批量处理**:对于大量图像,可以编写脚本批量执行OCR识别,大大提高处理速度。 总之,...

    tesseract-ocr-w64-setup-v5.0.0.20211201.zip

    4. **自定义训练**:用户可以根据需求训练Tesseract OCR识别特定字体或特定领域的文本,提高特定场景下的识别效果。 5. **免费和开源**:作为一款开源软件,Tesseract OCR是完全免费的,用户可以自由使用、修改和...

    tesseract-ocr-w64-setup-v5.0.0.exe

    tesseract-ocr-w64-setup-v5.0.0.exe,这是安装tesseract必须的辅助工具,拥有极好的图像处理能力

    tesseract-ocr-setup-3.01-1.exe

    java文字识别程序的关键是寻找一个可以调用的OCR引擎。tesseract-ocr就是一个这样的OCR引擎,在1985年到1995年由HP实验室开发,现在在Google。tesseract-ocr 3.0发布,支持中文。

    tesseract-ocr-w64-setup-v5.2.0.20220712.exe

    2. **多语言支持**:除了支持多种内置语言,Tesseract还允许用户创建自己的训练数据集,以识别特定字体或手写体。 3. **高精度识别**:随着版本的更新,Tesseract的识别准确率不断提升,尤其是在清晰的文本图像上,...

    linux tesseract-ocr-3.02.02(含中文、英文语言包)

    linux 安装图像识别系统 tesseract-ocr-3.02.02(含中文、英文语言包) 含所需包 leptonica-1.71.tar.gz tesseract-ocr-3.02.02.tar.gz chi_sim.traineddata eng.traineddata

    tesseract-5.0.1-1.5.7-API文档-中文版.zip

    赠送jar包:tesseract-5.0.1-1.5.7.jar; 赠送原API文档:tesseract-5.0.1-1.5.7-javadoc.jar; 赠送源代码:tesseract-5.0.1-1.5.7-sources.jar; 赠送Maven依赖信息文件:tesseract-5.0.1-1.5.7.pom; 包含翻译后...

    tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.exe

    tesseract ocr 下载 tesseract-ocr-w64-setup-v5.0.0-alpha.20200328

    tesseract tesseract-3.04.00

    4. **自定义训练**:如果需要识别特殊字体或提高特定领域的识别效果,可以使用Tesseract的训练工具创建自己的数据集和语言模型。 **与其他版本的区别** Tesseract 3.04.00相较于更早的版本,主要改进了识别性能,...

Global site tag (gtag.js) - Google Analytics