当前位置: 首页 > news >正文

Tesseract 4.0训练字库并且识别训练后的图片


各个工具下载链接在文章底部!

重要!!自己先创建一个空文件夹(名字随意),用来保存训练后的模型 ,还需要在里面创建一个 名称为tessdata 的文件夹 ,必须叫这个名

可以先使用下载后的进行测试训练(只需要把java文件里面的文件路径更换为你自己下载包的存储路径),图片必须使用下载包里面的图片,因为是训练的是下载包里面的图片\color{#2111f1}可以先使用下载后的进行测试训练(只需要把java文件里面的文件路径更换为你自己下载包的存储路径),图片必须使用下载包里面的图片,因为是训练的是下载包里面的图片可以先使用下载后的进行测试训练(只需要把java文件里面的文件路径更换为你自己下载包的存储路径),图片必须使用下载包里面的图片,因为是训练的是下载包里面的图片




1、运行tesseract−ocr−w64−setup−v4.0.0.20181030.exe文件,安装完之后,配置系统环境变量(最基本就不叙述了)\color{#21a2f1}1、 运行tesseract-ocr-w64-setup-v4.0.0.20181030.exe 文件,安装完之后,配置系统环境变量(最基本就不叙述了)1、运行tesseractocrw64setupv4.0.0.20181030.exe文件,安装完之后,配置系统环境变量(最基本就不叙述了)

D:\Program Files (x86)\Tesseract-OCR  只是我配置的路径,就是安装的根路径
在后面用来生成.box文件


2、使用jTessBoxEditor生成训练样本的的合并tif图片(图片是已经准备好的,亦可以自己准备)\color{#21a2f1}2、使用jTessBoxEditor生成训练样本的的合并tif图片 (图片是已经准备好的,亦可以自己准备)2、使用jTessBoxEditor生成训练样本的的合并tif图片(图片是已经准备好的,亦可以自己准备)

  1. 打开jTessBoxEditor,选择Tools->Merge TIFF,进入训练样本所在文件夹,选中要参与训练的样本图片:

  2. 点击 “打开” 后弹出保存对话框,选择保存在当前路径下,文件命名为 “zwp.test.exp0.tif” ,格式只有一种 “TIFF” 可选。

  3. 注意:tif文面命名格式[lang].[fontname].exp[num].tif
    lang是语言,fontname是字体,num为自定义数字。
    比如我们要训练自定义字库 zwp,字体名test,那么我们把图片文件命名为 zwp.test.exp0.tif



3、使用tesseract生成.box文件\color{#21a2f1}3、使用tesseract生成.box文件3、使用tesseract生成.box文件

在上一步骤生成的“zwp.test.exp0.tif”文件所在目录下打开命令行程序,执行下面命令,执行完之后会生成zwp.test.exp0.box文件。

执行如下命令  tesseract zwp.test.exp0.tif zwp.test.exp0  batch.nochop makebox

4、使用jTessBoxEditor矫正.box文件的错误\color{#21a2f1}4、使用jTessBoxEditor矫正.box文件的错误4、使用jTessBoxEditor矫正.box文件的错误

.box文件记录了每个字符在图片上的位置和识别出的内容,因为识别出的内容和位置有可能把两个字合到一起或者把一个字拆分了,所以训练前需要使用jTessBoxEditor调整字符的位置和内容。

使用步骤:

打开jTessBoxEditor点击Box Editor ->Open,打开步骤2中生成的“zwp.test.exp0.tif”,会自动关联到“zwp.test.exp0.box”文件,这两文件要求在同一目录下。调整完点击“save”保存修改。

5、生成fontproperties文件:\color{#21a2f1}5、生成font_properties文件:5、生成fontproperties文件:

  1. 执行如下命令: echo test 0 0 0 0 0 >font_properties

  2. 也可以手工新建一个名为font_properties的文本文件,输入内容 “test 0 0 0 0 0” 表示字体test的粗体、倾斜等共计5个属性。这里的“test”必须与“zwp.test.exp0.box”中的“test”名称一致。

6、使用tesseract生成.tr训练文件\color{#21a2f1}6、使用tesseract生成.tr训练文件6、使用tesseract生成.tr训练文件

执行下面命令,执行完之后,会在当前目录生成zwp.test.exp0.tr文件。

执行如下命令  tesseract zwp.test.exp0.tif zwp.test.exp0 nobatch box.train 

7、生成字符集文件\color{#21a2f1}7、生成字符集文件7、生成字符集文件

执行下面命令:执行完之后会在当前目录生成一个名为“unicharset”的文件。

执行命令 unicharset_extractor zwp.test.exp0.box

8、生成shape文件\color{#21a2f1}8、生成shape文件8、生成shape文件

执行下面命令,执行完之后,会生成 shapetable 和 zwp.unicharset 两个文件。

执行命令  shapeclustering -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

9、生成聚字符特征文件\color{#21a2f1}9、生成聚字符特征文件9、生成聚字符特征文件

执行下面命令,会生成 inttemp、pffmtable、shapetable和zwp.unicharset四个文件。

执行命令   mftraining -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

10、生成字符正常化特征文件\color{#21a2f1}10、生成字符正常化特征文件10、生成字符正常化特征文件

执行下面命令,会生成 normproto 文件。

执行命令: cntraining zwp.test.exp0.tr

11、文件重命名\color{#21a2f1}11、文件重命名11、文件重命名

重新命名inttemp、pffmtable、shapetable和normproto这四个文件的名字为[lang].xxx。

这里修改为zwp.inttemp、zwp.pffmtable、zwp.shapetable和zwp.normproto

依次执行下面命令rename normproto zwp.normprotorename inttemp zwp.inttemprename pffmtable zwp.pffmtablerename shapetable zwp.shapetable

11、合并训练文件\color{#21a2f1}11、合并训练文件11、合并训练文件

执行下面命令,会生成zwp.traineddata文件。

执行命令 combine_tessdata zwp.

将生成的“zwp.traineddata”语言包文件复制到 新建文件夹 目录下的tessdata文件夹中,就可以使用训练生成的语言包进行图像文字识别了。

12、代码测试\color{#21a2f1}12、代码测试12、代码测试

  1. 在pom中引入依赖
     <!--   pom  tess4j相关依赖   --><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>3.4.0</version><exclusions><exclusion><groupId>com.sun.jna</groupId><artifactId>jna</artifactId></exclusion></exclusions></dependency>
  1. 代码

public class Main {public static void main(String[] args) {System.out.println("Hello world!");//你的图片 1.png 为我自定义图片名字 其实使用的就是 上面的测试图片File imageFile = new File("D:\\OCR\\1.png");//你训练库的路径tessdataITesseract instance = new Tesseract();//     模型文件夹必须叫做 tessdatainstance.setDatapath("D:\\OCR\\Test2\\tessdata");
//        zwp 是刚刚训练过的 包instance.setLanguage("zwp");
//        chi_sim 是自带的中文包
//        instance.setLanguage("chi_sim");String result = null;try {result = instance.doOCR(imageFile);} catch (TesseractException e) {throw new RuntimeException(e);}System.out.println(result);}
}

如果网络不行可以下载源码文件进行操作
demo源码


用于配置环境变量,生成.box文件
tesseract-ocr官网


用于调整图片上文字的内容和位置
jTessBoxEditor工具官网


用于设置语言包 (instance.setLanguage)
其他语言包地址

相关文章:

Tesseract 4.0训练字库并且识别训练后的图片

各个工具下载链接在文章底部&#xff01; 重要&#xff01;&#xff01;自己先创建一个空文件夹(名字随意)&#xff0c;用来保存训练后的模型 ,还需要在里面创建一个 名称为tessdata 的文件夹 &#xff0c;必须叫这个名 可以先使用下载后的进行测试训练&#xff08;只需要把ja…...

ChatGPT热潮背后,金融行业大模型应用路在何方?——金融行业大模型应用探索

ChatGPT近两个月以来不断引爆热点&#xff0c;对人工智能应用发展的热潮前所未有地高涨&#xff0c;ChatGPT所代表的大模型在语义理解、多轮交互、内容生成中所展现的突出能力令人惊喜。而人工智能技术在金融行业的落地应用仍然面临挑战&#xff0c;虽然已经让大量宝贵的人力从…...

【怎么预防sql注入,以及还有预防其他的什么网络攻击】

SQL注入是一种常见的Web攻击&#xff0c;通过在Web应用程序中注入恶意SQL语句来获取或修改数据库中的数据。为了防止SQL注入&#xff0c;开发者可以采取以下措施&#xff1a; 1、使用参数化查询&#xff08;Prepared Statement&#xff09;或存储过程&#xff08;Stored Proce…...

2023年全国最新机动车签字授权人精选真题及答案4

百分百题库提供机动车签字授权人考试试题、机动车签字授权人考试预测题、机动车签字授权人考试真题、机动车签字授权人证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 11.使用转化炉原理测量氮氧化物的排气分析仪进行排气污…...

【Java】用记事本实现“HelloWorld”输出

【在进行以下操作前需要下载好JDK并配置好对应的环境变量】 一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.j…...

我希望早点知道的关于成长的建议

人上了年纪&#xff0c;往往在诸如更加闭塞&#xff0c;更加固执这些缺点之外&#xff0c;再多出来一个缺点&#xff1a;那就是动不动就爱给别人建议。我当然也未能免俗。有时候会听到同样悲观且固执的过来人告诉我&#xff0c;这些建议说了和没说效果都一样&#xff0c;人们在…...

【哈希表】使用方法总结

1. uthash简介开源的第三方头文件&#xff0c;这只是一个头文件&#xff1a;uthash.h。uthash还包括三个额外的头文件&#xff0c;主要提供链表&#xff0c;动态数组和字符串。utlist.h为C结构提供了链接列表宏。utarray.h使用宏实现动态数组。utstring.h实现基本的动态字符串。…...

【笑小枫-面试篇】Java基础面试题整理,努力做全网最全

写在前面 或许你只是想白嫖内容&#xff0c;或许你也会忽略这段文字&#xff0c;但我还是想弱弱的说 题目整理耗费了大量精力&#xff0c;希望可以给博主点赞收藏&#xff0c;谢谢大家啦 我呢&#xff0c;笑小枫&#xff0c;一个努力的普通人&#xff0c;也希望可以花1秒钟记住…...

亚马逊短期疲软,但长期前景乐观

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 由于投资者对亚马逊(AMZN)前景的担忧&#xff0c;导致该公司的股价在过去一年中下跌了39%。然而猛兽财经认为亚马逊近期面临的不利因素只是暂时的&#xff0c;该公司还是有充分的条件可以在医疗保健和物流领域获得重大增长机…...

webgis高德地图

webgis高德地图 首先准备工作,注册一个高德地图账号,然后在创建一个新应用生一个key跟appId 高德开放平台 接着创建一个html页面 高德配置手册 <style>* {margin: 0;padding: 0;}#...

django项目实战十(django+bootstrap实现增删改查)进阶数据统计

目录 一、echarts 1、下载 2、配置 二、实现统计分析页面--架构和柱图 1、url 2、chart.py 3、chart_list.html 4、修改url 5、新增chart_bar方法 6、修改chart_list.html 四、饼图 1、url 2、视图chart.py新增 3、修改chart_list.html 五、折线图 1、url 2、char…...

【布隆过滤器(Bloom Filter)基本概念与原理、Bloom Filter优点与缺点、以及应用场景】

布隆过滤器&#xff08;Bloom Filter&#xff09;基本概念与原理、Bloom Filter优点与缺点、以及应用场景 Bloom Filter 基本概念 布隆过滤器是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在…...

unity的Rendertexture上面显示粒子特效最便捷的解决方案

一、为什么不显示 1.为什么粒子特效也不显示? 不显示是正常的,因为当前为背景的点设置为A为0时已经被剔除,当前位置粒子特效的颜色也会被剔除。 因为clip发生在融合blend之前,blend发生在所有颜色输出之后的帧缓存。 2.为什么NGUI的Unlit/Premultiplied Colored的shade…...

Docker 查询、停止、删除和重启容器

docker 列出所有容器IDdocker ps -aq[rootlocalhost conf]# docker ps -aq f81aa5f48427 06a66409d7ce 1c3d38b948ba 62233dfad35b 4b0032878886 0f6f368c4c1d 7d98a59a8012 1906ba6bfbe1 [rootlocalhost conf]#docker 查看所有运行容器docker ps -a[rootlocalhost conf]# dock…...

面试历程(3)

1、HashMap为什么要使用红黑树,不能使用平衡二叉树(AVL树) 二叉查找树具有的特性: 左子树上所有结点的值均小于或等于它的根结点的值。右子树上所有结点的值均大于或等于它的根结点的值。左、右子树也分别为二叉排序树。AVL树是严格平衡二叉树(左右两个子树的高度差的绝对…...

【storybook】你需要一款能在独立环境下开发组件并生成可视化控件文档的框架吗?(二)

storybook回顾继续说说用法配置文件介绍回顾 上篇博客地址&#xff1a; https://blog.csdn.net/tuzi007a/article/details/129192502说了部分用法。 继续说说用法 配置文件介绍 开发环境的配置都在.storybook目录中&#xff0c;里面包含了2个文件 main.js preview.js先看m…...

(免费分享)基于ssm的BBS社区论坛系统带论文

项目描述前台部分:1.用户注册登录模块用户登录后,可以进行发帖回帖功能,在线签到功能,完善个人信息,添加好友,收藏贴子,评论帖子,点赞功能,记录功能(比如记录今天发生的事情)等等…2.排行榜模块1.帖子讨论热度排行,分两种排行方式:(1) 根据用户今日发出的帖子被回复数量进行排名…...

RebbitMQ 消息队列(简单使用)

消息队列介绍 MQ的优势 1.业务解耦&#xff1a;不同系统消费信息互不关联&#xff0c;灵活增减系统数量&#xff0c;修改某个系统其他系统也不影响 2.异步提速&#xff1a;不同系统之间可同时响应&#xff0c;提升并发量 3.削峰填谷&#xff1a;处理消息高峰期&#xff0c;均摊…...

OpenCV-Python学习(21)—— OpenCV 图像几何变换之图像翻转(cv.flip、np.flip)

1. 学习目标 学习 OpenCV 图像的翻转函数 cv.flip&#xff1b;学习 NumPy 矩阵的反转函数 np.flip&#xff1b;自己实现矩阵反转的函数。 2. OpenCV 翻转 翻转也称镜像&#xff0c;是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转&#xff0c;垂直…...

CRM系统能帮外贸行业解决哪些问题

国内的外贸行业经历了四个发展阶段&#xff0c;从发展期到繁荣期&#xff0c;CRM客户管理系统逐步走到幕前&#xff0c;成为外贸企业必不可少的主打工具。那么外贸行业整面临哪些问题&#xff1f;该如何解决&#xff1f;下面我们就来说说适合外贸行业的CRM解决方案。 外贸行业…...

网站 SEO 优化包年一般多少钱_网站 SEO 优化包年后如何提高网站流量

网站 SEO 优化包年一般多少钱 在当今数字化时代&#xff0c;网站 SEO 优化已经成为了每一个企业提升在线存在感和吸引客户的关键手段。网站 SEO 优化包年一般多少钱呢&#xff1f;这个问题对于很多初创企业和中小企业来说&#xff0c;是一个重要的考虑因素。本文将详细探讨这一…...

Qwen3-TTS语音合成5分钟快速部署:10种语言+方言一键搞定

Qwen3-TTS语音合成5分钟快速部署&#xff1a;10种语言方言一键搞定 1. 快速部署指南 1.1 系统环境准备 在开始前&#xff0c;请确保您的系统满足以下基本要求&#xff1a; 操作系统&#xff1a;支持Linux/Windows/macOSPython版本&#xff1a;3.8-3.10内存&#xff1a;至少…...

如何快速掌握GBFR Logs:终极《碧蓝幻想:Relink》战斗数据监控指南

如何快速掌握GBFR Logs&#xff1a;终极《碧蓝幻想&#xff1a;Relink》战斗数据监控指南 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors/…...

3分钟解锁硬件直通黑科技:DiscreteDeviceAssigner让Hyper-V性能飞升

3分钟解锁硬件直通黑科技&#xff1a;DiscreteDeviceAssigner让Hyper-V性能飞升 【免费下载链接】DDA 实现Hyper-V离散设备分配功能的图形界面工具。A GUI Tool For Hyper-Vs Discrete Device Assignment(DDA). 项目地址: https://gitcode.com/gh_mirrors/dd/DDA 在虚拟…...

Umi-OCR技术解析:离线文字识别的创新实践与全场景应用

Umi-OCR技术解析&#xff1a;离线文字识别的创新实践与全场景应用 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言…...

5分钟搞定!OpenCode+Qwen3-4B本地AI编程助手一键部署教程

5分钟搞定&#xff01;OpenCodeQwen3-4B本地AI编程助手一键部署教程 1. 引言&#xff1a;为什么你需要一个本地AI编程助手&#xff1f; 想象一下这个场景&#xff1a;你正在开发一个核心功能模块&#xff0c;需要快速生成一段复杂的业务逻辑代码。你打开浏览器&#xff0c;准…...

长尾关键词SEO优化费用如何计算_企业自营SEO关键词优化成本是多少

长尾关键词SEO优化费用如何计算_企业自营SEO关键词优化成本是多少 在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为企业提升网站流量、增加品牌曝光度的重要手段。其中&#xff0c;长尾关键词SEO优化因其较低的竞争度和高转化率&#xff0c;备受…...

JwChat避坑指南:Vue聊天组件这些隐藏配置能让体验提升200%

JwChat深度优化实战&#xff1a;解锁Vue聊天组件200%体验升级的隐藏技巧 当你已经用JwChat实现了基础聊天功能&#xff0c;却发现消息列表卡顿、表情包显示错位、历史加载闪烁——这些细节问题正在蚕食用户体验。作为基于Vue的轻量级聊天组件&#xff0c;JwChat的官方文档并未揭…...

万象视界灵坛实操手册:使用Prometheus+Grafana监控CLIP推理延迟、GPU利用率、QPS指标

万象视界灵坛实操手册&#xff1a;使用PrometheusGrafana监控CLIP推理延迟、GPU利用率、QPS指标 1. 监控系统概述 在现代AI应用部署中&#xff0c;实时监控系统性能指标是确保服务稳定运行的关键。对于万象视界灵坛这样的多模态智能感知平台&#xff0c;我们需要重点关注三个…...

京东 SPU/SKU 数据接口全解读:商品详情 API 文档(2026 最新版)

京东商品详情 API 体系以SPU&#xff08;标准产品单元&#xff09;聚合、SKU&#xff08;库存单元&#xff09;明细为核心设计&#xff0c;覆盖商家开放平台&#xff08;JOS&#xff09;、京东联盟两大核心场景&#xff0c;支持单品 / 批量查询、全字段 / 指定字段返回&#xf…...