首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Tesseract-OCR 5.0LSTM训练

Tesseract-OCR 5.0LSTM训练

作者头像
云未归来
发布2025-07-21 11:11:08
发布2025-07-21 11:11:08
22100
代码可运行
举报
运行总次数:0
代码可运行

准备工作

1.安装tesseract5.0版本 2.配置tesserac环境变量 3.jTessBoxEditor(需要java环境) 很多博客已有详细教程,不再赘述,本文以训练为主

最终文件目录:

全网最全最细Tesseract-OCR 5.0LSTM训练_人工智能
全网最全最细Tesseract-OCR 5.0LSTM训练_人工智能

--tif 需要训练的tif文件 --lstmf 后文会讲到生成的方式 --txt 后文会讲到生成的方式 --box 后文会讲到生成的方式 --lstm 后文会讲到生成的方式 --traineddata 简体中文包后文会有下载方式 --output 文件夹存放训练内容

规范

命名:按照官方的命名规范,不然会出现不明问题 tif文件命名格式[lang].>[fontname].exp[num].tif tif命名规则:lang为语言名称,fontname为字体名称,num为图片序号,方便记录训练样本; 例本次需要训练自定义字库znzd、字体名normal,则命名为znzd.normal.exp0.tif 特别注意:5.0语法是和4.0有区别的 后文都以znzd.normal.exp0为文件名字,根据自己实际情况替换 代码中不能包含回车

1.生成.box文件

代码语言:javascript
代码运行次数:0
运行
复制
tesseract znzd.normal.exp0.tif znzd.normal.exp0 -l chi_sim --psm 6 lstmbox
  • 1.

语法: tesseract [tif文件名字] [生成文件名(一般情况与tif名字一样注意没有后缀)] -l [语言库] --psm [psm值] lstmbox

--chi_sim:中文语言库(可替换自己的语言库)

psm

0 = Orientation and script detection (OSD) only. 1 = Automatic page segmentation with OSD. 2 = Automatic page segmentation, but no OSD, or OCR. (not implemented) 3 = Fully automatic page segmentation, but no OSD. (Default) 4 = Assume a single column of text of variable sizes. 5 = Assume a single uniform block of vertically aligned text. 6 = Assume a single uniform block of text. 7 = Treat the image as a single text line. 8 = Treat the image as a single word. 9 = Treat the image as a single word in a circle. 10 = Treat the image as a single character. 11 = Sparse text. Find as much text as possible in no particular order. 12 = Sparse text with OSD. 13 = Raw line. Treat the image as a single text line

中文翻译

0 = 仅方向和脚本检测 (OSD)。 1 = 自动页面分割,带 OSD。 2 = 自动页面分割,但无 OSD 或 OCR。(未执行) 3 = 完全自动页面分割,但无 OSD。(默认值) 4 = 假设一列文字大小可变。 5 = 假定垂直对齐的单个统一文本块。 6 = 假定单个统一的文本块。 7 = 将图像视为单一文本行。 8 = 将图像视为单个单词。 9 = 将图像视为圆圈中的单个单词。 10 = 将图像视为单个字符。 11 = 文本稀疏。不按特定顺序查找尽可能多的文本。 12 = 带 OSD 的稀疏文本。 13 = 原始行。将图像视为单行文本、

2.jTessBoxEditor矫正

注意:box坐标框的范围5.0是从单个文字改成一整行,需要以一行作为矫正,不是4的时候拆成一个个框,不然会无限循环打印Compute CTC targets failed! 又浪费了训练时间

具体官方说明: github.com/tesseract-o…

3.生成LSTMF文件

代码语言:javascript
代码运行次数:0
运行
复制
tesseract znzd.normal.exp0.tif znzd.normal.exp0 -l chi_sim --psm 6 lstm.train
  • 1.

语法: tesseract [tif文件名] [生成文件名(一般情况与tif名字一样注意没有后缀)] -l [语言库] --psm [psm值] lstm.train --chi_sim:中文语言库(可替换自己的语言库)

4.提取LSTM文件

github.com/tesseract-o…下载所需语言的.traineddataw文件,放入同级文件夹,此为chi_sim语言(第一次用tesseract\tessdata目录下的chi_sim.traineddata报错了,找了很多博客 建议去 /tessdata_best下载)

代码语言:javascript
代码运行次数:0
运行
复制
combine_tessdata -e chi_sim.traineddata chi_sim.lstm
#此例是下载后文件方在根目录下执行 所以没带路径 也能是 -e E:\xx\chi_sim.traineddata
  • 1.
  • 2.

语法: combine_tessdata -e [语言.traineddata] [文件名称(也可以路径+文件名称)] 初次可以用chi_sim 后续可替换自己的自定义字体

5.创建txt文件

名称为:znzd.normal.exp0.list.text(可根据之前tif取名的名字命名) 内容: E:\xxx\znzd.normal.exp0.lstmf(第三步自己生成的LSTMF文件路径)

6.训练

代码语言:javascript
代码运行次数:0
运行
复制
lstmtraining   --model_output E:\xxx\output\  --continue_from E:\xxx\chi_sim.lstm  --traineddata   E:\xxx\chi_sim.traineddata --train_listfile  E:\xxx\znzd.normal.exp0.list.txt  --max_iterations 0     --target_error_rate 0.001
  • 1.

语法:

–model_output 模型训练输出的路径(模型训练文件,会自动生成output_checkpoint文件可以用于后期训练) –continue_from 训练从哪里开始(可以是第四步提取的lstm文件路径。也可以是上次训练的output_checkpoint文件路径) –train_listfile 第五步创建的TXT文件路径ch.simhei.exp0.list.txt文件路径 –traineddata .traineddata文件的路径(此例以chi_sim.traineddata) –debug_interval 当值为-1时,训练结束,会显示训练的一些结果参数,此参数可略去 –max_iterations 指明训练遍历次数 最大是9000,0 表示无限迭代(类型:整数默认值:0) –target_error_rate 0.01 训练至错误率低于0.01终止 如果一切配置成功,训练会持续一段时间请耐心等待

7.合并训练 生成.traineddata文件

训练完成后合并结果.traineddata

代码语言:javascript
代码运行次数:0
运行
复制
lstmtraining --stop_training --continue_from="E:\xxx\output\output_checkpoint" --traineddata="E:\xxx\chi_sim.traineddata" --model_output="E:\xxx\znzd.traineddata"
  • 1.

语法: stop_training 默认要有 –continue_from 第6步model_output输出路径的output_checkpoint文件路径 –traineddata 已有.traineddata文件的路径 –model_output 输出训练好的语言包的路径 路径+语言包名.traineddata

8.查看识别结果

把新语言traineddata文件放入\tesseract\tessdata文件夹下

代码语言:javascript
代码运行次数:0
运行
复制
tesseract znzd.normal.exp1.tif result -l znzd
#tesseract 图片名称 生成的结果文件的名称 -l 新语言名称
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 规范
  • 1.生成.box文件
  • 2.jTessBoxEditor矫正
  • 3.生成LSTMF文件
  • 4.提取LSTM文件
  • 5.创建txt文件
  • 6.训练
  • 7.合并训练 生成.traineddata文件
  • 8.查看识别结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档