Tesseract 3 语言数据的训练方法

简介: 需要用到的程序(1) Tesseract 3.00(2) Tesseract 3.00 Bugfix(3) CowBoxer 1.01(4) Universal Extractor 1.61 (非必需)使用 Universal Extractor 将 Tesseract 的安装包解开,再用 Bugfix 里的 tesseract.exe 覆盖原来的主程序,Tesseract 就可用了。
需要用到的程序

(1)  Tesseract 3.00
(2)  Tesseract 3.00 Bugfix
(3)  CowBoxer 1.01
(4)  Universal Extractor 1.61 (非必需)

使用 Universal Extractor 将 Tesseract 的安装包解开,再用 Bugfix 里的 tesseract.exe 覆盖原来的主程序,Tesseract 就可用了。CowBoxer 是用于修改 box 文件的程序。

生成第一个 box 文件

演示中将 Tesseract 解压到了 E:\tesseract-ocr 目录。然后在该目录中建立了一个 build 目录用于存放原始数据和训练过程中生成的文件。原始图片数据一共有 3 个 (test.001.tif - test.003.tif):





首先生成第一个图片 test.001.tif 的 box 文件,这里使用官方的 eng 语言数据进行文字识别:

E:\tesseract-ocr\build>..\tesseract test.001.tif test.001 -l eng batch.nochop makebox
Tesseract Open Source OCR Engine with Leptonica
Number of found pages: 1.

执行完这个命令之后,build 目录下就生成了一个 test.001.box。使用 CowBoxer 打开这个 box 文件,CowBoxer 会自动找到同名的 tif 文件显示出来。



CowBoxer 的使用方法可以看 Help -> About 中的说明。修改完成之后 File -> Save box file 保存文件。

生成初始的 traineddata

接下来使用这一个 box 文件先生成一个 traineddata,在接下来生成其他图片的 box 文件时,使用这个 traineddata 有利于提高识别的正确率,减少修改次数。

..\tesseract test.001.tif test.001 nobatch box.train
..\training\unicharset_extractor test.001.box
..\training\mftraining -U unicharset -O test.unicharset test.001.tr
..\training\cntraining test.001.tr
rename normproto test.normproto
rename Microfeat test.Microfeat
rename inttemp test.inttemp
rename pffmtable test.pffmtable
..\training\combine_tessdata test.

在 build 目录下执行完这一系列命令之后,就生成了可用的 test.traineddata。

生成其余 box 文件

将上一步生成的 test.traineddata 移动到 tesseract-ocr\tessdata 目录中,接下来生成其他 box 文件时就可以通过 -l test 参数使用它了。

..\tesseract test.002.tif test.002 -l test batch.nochop makebox
..\tesseract test.003.tif test.003 -l test batch.nochop makebox

这里仅仅是使用 3 个原始文件作为例子。实际制作训练文件时,什么时候生成一个 traineddata 根据情况而定。中途生成 traineddata 的目的只是为了提高文字识别的准确率,使后面生成的 box 文件能少做修改。

生成最终的 traineddata

在所有的 box 都制作完成后,就可以生成最终的 traineddata 了。

..\tesseract test.001.tif test.001 nobatch box.train
..\tesseract test.002.tif test.002 nobatch box.train
..\tesseract test.003.tif test.003 nobatch box.train
..\training\unicharset_extractor test.001.box test.002.box test.003.box
..\training\mftraining -U unicharset -O test.unicharset test.001.tr test.002.tr test.003.tr
..\training\cntraining test.001.tr test.002.tr test.003.tr
rename normproto test.normproto
rename Microfeat test.Microfeat
rename inttemp test.inttemp
rename pffmtable test.pffmtable
..\training\combine_tessdata test.

在文件较多时可以用程序生成这种脚本执行。
 
当前语言:  中文 (简体)
目录
相关文章
|
算法 测试技术 计算机视觉
Opencv(C++)系列学习---opencv_contrib安装
Opencv(C++)系列学习---opencv_contrib安装
1605 0
|
安全 Java API
Java根据URL获取文件内容的实现方法
此示例展示了如何安全、有效地根据URL获取文件内容。它不仅展现了处理网络资源的基本技巧,还体现了良好的异常处理实践。在实际开发中,根据项目需求,你可能还需要添加额外的功能,如设置连接超时、处理HTTP响应码等。
984 4
|
机器学习/深度学习 人工智能 文字识别
轻松识别文字,这款Python OCR库支持超过80种语言
轻松识别文字,这款Python OCR库支持超过80种语言
993 2
|
安全 机器人 API
AppFlow通义千问机器人支持上下文会话
在最新升级的AppFlow中,通义千问对话功能现已支持上下文保留,使对话体验更加流畅。用户可通过配置AppFlow连接流,结合钉钉机器人实现与通义千问的交互。只需几步简单设置,即可在群聊中@机器人进行连续对话。此外,提供了两种创建钉钉机器人的方法:使用Outgoing机制或钉钉开放平台,方便不同需求的用户进行集成。通过这些步骤,您可以轻松实现与通义千问的高效沟通。
479 0
|
存储 内存技术
【RAID磁盘阵列服务器数据恢复】华为OceanStor Dorado存储系统RAID-TP数据丢失数据恢复案例
客户报告其华为OceanStor Dorado存储系统的RAID-TP出现故障,导致数据丢失。RAID-TP是一种增强型RAID级别,包含数据磁盘、校验磁盘和转换磁盘,可在两个磁盘故障时仍保护数据。通过分析RAID结构与工作原理,我们制定了恢复方案:首先从校验磁盘读取信息并计算出丢失的数据块,接着将恢复的数据写入新磁盘。由于缺乏现成工具,需定制RAID重组程序以恢复数据。华为的动态RAID重构技术保证了重构过程中冗余级别的稳定。
322 1
讲真的,遇到接口自协商故障,可以试着这样处理!
讲真的,遇到接口自协商故障,可以试着这样处理!
649 1
|
文字识别 块存储 Python
Python 图片文字识别和 tesseract 问题解决
Python 图片文字识别和 tesseract 问题解决
1848 1
|
机器学习/深度学习 存储 人工智能
文本的检测、识别实战:使用 Tesseract 进行 OpenCV OCR 和文本识别
文本的检测、识别实战:使用 Tesseract 进行 OpenCV OCR 和文本识别
1056 0
文本的检测、识别实战:使用 Tesseract 进行 OpenCV OCR 和文本识别
|
文字识别 PyTorch 算法框架/工具
【Python】已解决:Python正确安装文字识别库EasyOCR
【Python】已解决:Python正确安装文字识别库EasyOCR
2802 0
|
存储 Java Maven
Java能这么轻松识别二维码
Java能这么轻松识别二维码
2208 1