Tesseract OCR 训练字库

2023-10-29

Tesseract OCR是一款由HP实验室开发由Google维护的开源OCR引擎,在字符识别领域发挥着举足轻重的作用。除了使用软件自带的中英文识别库,我们可以使用Tesseract OCR训练属于自己的字库。下面,我简要介绍一下操作步骤:

一、软件环境搭建

使用Tesseract OCR训练自己的字库前,除了需要安装Tesseract OCR外,还需要一款jTessBoxEditor配套训练工具。由于jTessBoxEditor需要java运行环境,所以我们应该确保在运行jTessBoxEditor前先安装JRE(Java Runtime Environment,Java运行环境)。

Tesseract OCR:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.01.exe
jTessBoxEditor:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/
Java Runtime Environment:https://pc.qq.com/detail/1/detail_21141.html

有关Tesseract OCR运行安装、测试及在Visual Studio中使用方法,请参考我的博客:
Tesseract OCR 安装、测试:https://blog.csdn.net/qq_30534935/article/details/83652590
Tesseract API 在VS2013中的配置以及调用:https://blog.csdn.net/qq_30534935/article/details/83657192

二、获取样本文件

我们可以用画图工具绘制样本文件,数量越多越好,我自己画了5张图。

注意:
1、样本图像文件格式必须为tif\tiff格式,否则在Merge样本文件的过程中会出现 Couldn’t Seek 的错误。
2、请勿采用更改文件后缀名的方式更改图片格式,同样在Merge样本文件的过程中会出现Couldn’t Seek 的错误。

在这里插入图片描述

三、Merge样本文件

打开jTessBoxEditor,Tools->Merge TIFF,将样本文件全部选上,并将合并文件保存为num.font.exp0.tif

四、生成BOX文件

打开命令行并切换至num.font.exp0.tif所在目录,输入以下命令并生成名为num.font.exp0.box的文件。

tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox

【语法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
lang为语言名称,fontname为字体名称,num为序号;在tesseract中,一定要注意格式。

五、定义字符配置文件

在目标文件夹内生成一个名为font_properties.txt的文本文件,内容为

font 0 0 0 0 0  

【语法】:< fontname> < italic> < bold> < fixed> < serif> < fraktur>
fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用。

六、字符矫正

打开jTessBoxEditor,BOX Editor -> Open,打开num.font.exp0.tif;

注意:
矫正< Char>上的字符,< Page>有好多页!
修改后记得保存!
若存在字符分割错误,可通过merge、split修改。

在这里插入图片描述

七、执行批处理文件

在cmd中将以下命令复制粘贴后运行即可。

echo Run Tesseract for Training.. 
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train 
 
echo Compute the Character Set.. 
unicharset_extractor.exe num.font.exp0.box 
mftraining -F font_properties.txt -U unicharset -O num.unicharset num.font.exp0.tr 

echo Clustering.. 
cntraining.exe num.font.exp0.tr 

echo Rename Files.. 
rename normproto num.normproto 
rename inttemp num.inttemp 
rename pffmtable num.pffmtable 
rename shapetable num.shapetable  

echo Create Tessdata.. 
combine_tessdata.exe num. 

echo. & pause

文件夹中将生成以下文件:
在这里插入图片描述

八、测试阶段

将num.trainddata复制到Tesseract-OCR中tessdata文件夹。
在cmd中进入待识别图片文件夹,执行以下代码:

tesseract test.png output -l num

其中test.png是待识别图片名,识别结果存在在output.txt文件中。

待识别图像:
在这里插入图片描述

识别结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tesseract OCR 训练字库 的相关文章

随机推荐

  • GD32F103ZET6的ADC不稳定问题

    先说结论 关于GD32F103ZET6的ADC不稳定的问题 这是芯片bug GD后面推出的GD32F303ZET6解决了这个问题 如果你的项目没有用到ADC资源 可以用GD32F103ZET6 如果有用到ADC 强烈建议用GD32F303Z
  • js ---- 排序(1)

    目录 冒泡排序 选择排序 插入排序 冒泡排序 可以先看动图 如果动图就能够理解的话 就不需要看下面的步骤了 比较相邻的元素 如果第一个比第二个大 就交换他们两个 对每一对相邻元素做同样的工作 从开始第一对到结尾的最后一对 在这一点 最后的元
  • PID算法控制PWM占空比的代码详解

    PID算法控制PWM占空比 PID算法控制PWM占空比的代码 PID算法控制PWM占空比的代码 PID控制的算法代码C 其中输出控制函数可以依据各自的项目需要进行改写 include
  • Qt之超简单的UDP通信(自定义UDP通信类,含源码+注释)

    文章目录 一 UDP通信示例图 二 UDP使用前的准备 三 自定义UDP通信类的两种方法 四 源码 含注释 自定义UDP类 CUdpSocket h CUdpSocket cpp CMainWindow类 自定义TCP通信类的调用 CMai
  • opengl多重采样技术

    检查是否支持多重采样技术 if not glGetString GL EXTENSIONS find b GL ARB multisample gt 0 print Multi sampling not available else pri
  • 逻辑回归( LogisticRegression)和线性支持向量机(LinearSVC)

    最近在自学图灵教材 Python机器学习基础教程 在csdn以博客的形式做些笔记 线性分类模型 线性模型不仅用于回归问题 也广泛应用于分类问题 我们首先来看二分类 这时可以利用下面的公式进行 预测 y w 0 x 0 w 1 x 1 w p
  • scribe、chukwa、kafka、flume日志系统对比

    http www ttlsa com log system scribe chukwa kafka flume log system contrast scribe chukwa kafka flume日志系统对比 1 背景介绍许多公司的平
  • <Java 定时任务解决方案Quartz>学习笔记

    理论基础 小顶堆 参考文章 数据结构 算法 2 高级数据结构 中堆的部分 定时任务中每一个任务Job都对应堆中的一个节点 对应定时任务的到期时间 Delay 延迟时间 到期时间 每次取堆顶元素执行 注意 在添加 删除元素时候需要保证根节点
  • 绕过文件上传+disabled_function案例

    目录 案例 1 上传文件 2 绕过过滤 3 绕过disable function 原理 测试 案例 该案例涉及到 base64绕过过滤 伪协议php filter的使用 通过LD PRELOAD绕过disable function 1 上传
  • 计算机与科技课题题目,新颖的计算机科学技术专业论文选题 计算机科学技术专业论文题目选什么比较好...

    100道 关于新颖的计算机科学技术专业论文选题汇总 作为大学生的毕业生应该明白了计算机科学技术专业论文题目选什么比较好 选一个好的题目后续的计算机科学技术专业论文写作起来会更轻松 一 比较好写的计算机科学技术专业论文题目 1 地方高校计算机
  • 图片路径上传的配置问题

    需求 静态资源目录 data ruoyi uploadPath 配置静态资源服务 且指向静态资源目录 配置静态资源服务 static resources location static alias data ruoyi uploadPath
  • nginx 动静分离 正则匹对 alias root url rewrite重写

    Nginx 基础应用实战 04 动静分离 配置反向代理 location proxy pass http 127 0 0 1 8080 root html index index html index htm 增加每一个location l
  • 基于Arduino UNO的小车——基本操作

    材料 小车套件 Arduino UNO板子 面包板及连接线 L298N电机驱动模块 电池盒 电池 一 智能小车套件拼装 关于小车套件拼装建议大家在做小车之前先考虑好需要哪些功能模块 为了方便在制作小车的过程中可以方便将所需模块固定在已有的小
  • Unity 解决PackageManager消失问题

    更新20190416 Unity2018 3 12及之后版本稳定了不少 一些packageManager的报错也进行显示 可使用此版本进行开发 更新20201213 Unity2019 4 x版本及以上 Package Manager新增连
  • docker镜像的版本(bullseye、buster、slim、alphine)

    docker镜像的版本 bullseye buster slim xxx alphine 版本含义 版本含义 以 Python 的官方镜像为例不同版本含义如下 1 buster jessie stretch bullseye 这三个代表不同
  • r dataframe删除几列_R语言

    数据框 概念 在R语言中 数据框 dataframe 组织数据的结构与矩阵相似 但是其各列的数据类型可以不相同 一般情况 数据框的每列是一个变量 每行是一个观测样本 虽然 数据框内不同的列可以是不同的数据模式 但是数据框内每列的长度必须相同
  • 总结的iOS、mac开源项目及库,持续更新。。。。 github排名 https://github.com/trending,github搜索:https://github.com/search

    大家先看下目录 具体的内容请点击 https github com Tim9Liu9 TimLiu iOS 图表 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其
  • 功能丰富的 Markdown 笔记工具:FSNotes Mac中文版图文安装教程

    FSNotes Mac版是Mac平台上一款纯文本笔记本管理器 FSNotes for mac中文版支持Markdown RTF等格式 轻松查看和编辑数据 还可以将数据存储在文件系统中 同时具备iCloud同步功能 使用非常便捷 FSNote
  • 司守奎《数学建模算法与应用》 第二版

    内容介绍 本书涵盖了很多同类型书籍较少涉及的新算法和热点技术 主要内容包括时间序列 支持向量机 偏最小二乘面归分析 现代优化算法 数字图像处理 综合评价与决策方法 预测方法以及数学建模经典算法等内容 本书既可以作为数学建模课程教材和辅导书
  • Tesseract OCR 训练字库

    Tesseract OCR是一款由HP实验室开发由Google维护的开源OCR引擎 在字符识别领域发挥着举足轻重的作用 除了使用软件自带的中英文识别库 我们可以使用Tesseract OCR训练属于自己的字库 下面 我简要介绍一下操作步骤