Mac Tesseract 4.1.1 样本训练超详细教程

2023-05-16

安装

Mac直接安装tesseract的话无法附带安装training tools

如果已经安装了没有training tools的tesseract,请先卸载

brew uninstall tesseract

先安装一些依赖的包

# Packages which are always needed.
brew install automake autoconf libtool
brew install pkgconfig
brew install icu4c
brew install leptonica
# Packages required for training tools.
brew install pango
# Optional packages for extra features.
brew install libarchive
# Optional package for builds using g++.
brew install gcc

从下列链接下载tesseract-4.1.1.tar.gz并解压

https://github.com/tesseract-ocr/tesseract/releases

编译并安装

cd tesseract-4.1.1
./autogen.sh
mkdir build
cd build
# Optionally add CXX=g++-8 to the configure command if you really want to use a different compiler.
../configure PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/libarchive/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig
make -j
# Optionally install Tesseract.
sudo make install
# Optionally build and install training tools.
make training
sudo make training-install

下载完不会附带着一起下载数据集,通过下列链接自行下载需要的语言

https://github.com/tesseract-ocr/tessdata

训练

首先,收集数据样本(若干张需要训练的图片)

图片格式需要转换为tif

下载并打开jTessBoxEditor (注意,该软件需要java8环境,请自行配置):

https://pilotfiber.dl.sourceforge.net/project/vietocr/jTessBoxEditor/jTessBoxEditor-2.3.1.zip

在jTessBoxEditor中Tools->Merge TIFF将所有tif文件合并

图片

将合并后的tif文件重命名为eng.num.exp0.tif

生成box文件,用来纠正识别错误

tesseract eng.num.exp0.tif eng.num.exp0 -l eng batch.nochop makebox

此时,应该有eng.num.exp0.tif和eng.num.exp0.box两个文件

使用jTessBoxEditor打开eng.num.exp0.tif

(Box Editor->Open->eng.num.exp0.tif)

纠正识别错误

图片

新建一个文件,取名font_properties,并填入下列内容

font 0 0 0 0 0

执行如下命令训练数据

tesseract  eng.num.exp0.tif eng.num.exp0  nobatch box.train
unicharset_extractor eng.num.exp0.box
shapeclustering -F font_properties -U unicharset eng.num.exp0.tr
mftraining -F font_properties -U unicharset -O unicharset eng.num.exp0.tr
cntraining eng.num.exp0.tr
mv inttemp num.inttemp
mv normproto num.normproto
mv pffmtable num.pffmtable
mv shapetable num.shapetable
mv unicharset num.unicharset
combine_tessdata num.

执行后,会有如下文件

图片

将num.traineddata移到相应路径便可使用

我的路径是/usr/local/share/tessdata/

应用

如果是在python里使用tesseract:

需要另外下载pytesseract

pip install pytesseract

或者可以选择清华大学镜像源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package pytesseract

识别前建议使用opencv将要识别的图片做灰度处理

open-cv安装

pip install opencv-python

同样,可以选择清华大学镜像源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package opencv-python

还需自行安装PIL和numpy来搭配opencv使用

完整Python代码

import pytesseract
from PIL import Image
import cv2
import numpy as np
#读取图片并做灰度处理
img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((2, 1), np.uint8)
gray = cv2.dilate(gray, kernel, iterations=1)
gray = cv2.erode(gray, kernel, iterations=2)
gray = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv2.imwrite('gray.png', gray)
#读取处理过后的图片并识别,语言设置为刚刚训练的num
img = Image.open('gray.png')
result = pytesseract.image_to_string(img, lang="num")
#打印识别出的内容
print(result)

如果有任何问题的话欢迎留言评论,也可以直接联系我

邮箱:whenry6688@gmail.com

参考资料:

https://www.jianshu.com/p/6633a7a85add

https://www.programmersought.com/article/64636255596/

https://towardsdatascience.com/simple-ocr-with-tesseract-a4341e4564b6

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

Mac Tesseract 4.1.1 样本训练超详细教程 的相关文章

  • OSError: [WinError 740] 请求的操作需要提升

    我有一个简单的代码 其中有一个名为 try png 的图像 我想使用 pytesseract 将其从图像转换为文本 但我的代码遇到了一些问题 import cv2 import pytesseract pytesseract pytesse
  • 配置:错误:leptonica 库丢失(在 MinGW 上构建 tesseract-ocr-3.01 时)

    运行配置时失败 checking for leptonica yes checking for pixCreate in llept no configure error leptonica library missing 但我已经构建了l
  • netbeans 中的 libtesseract303.dll 问题

    我正在实施 OCR 系统 当我将 dll 文件放在 java 类路径上时 出现以下错误 Exception in thread main java lang UnsatisfiedLinkError G software apache to
  • 将扫描的 PDF 转换为可搜索的 PDF(在 R 中)

    我正在尝试使用以下命令将一系列扫描的 PDF 转换为可搜索的 PDFtesseract and pdftools包 我已经完成了两个步骤 现在我需要写回一个可搜索的pdf 阅读扫描版 PDF Run OCR 写回可搜索的 PDF eg lt
  • tess-two 找不到 libpng.so

    我已遵循 tess two 的构建说明Github https github com rmtheis tess two build 我使用 NDK 成功构建了 tess two 并导入了库 我正在尝试运行同一存储库上提供的测试应用程序 但每
  • 如何从收据中提取相关信息

    我正在尝试结合使用 Opencv Tesseract 和 Keras 从一系列不同的收据中提取信息 该项目的最终结果是 我应该能够使用手机拍摄收据照片 并从该照片中获取商店名称 支付类型 卡或现金 支付金额和找零 到目前为止 我已经使用 O
  • OCR:图像转文本?

    在标记为复制或重复问题之前 请先阅读整个问题 我目前能做的如下 获取图像并裁剪 OCR 所需的部分 使用处理图像tesseract and leptonica 当应用的文档被裁剪成块 即每个图像 1 个字符 时 它提供 96 的准确度 如果
  • 文本二值化

    I d like to binarize this image to use it with tesseract ocr Currently I managed to get this But I need clear image with
  • tesseract 无法识别该图像中的这个单词,这正常吗?

    我需要从这样的小图像中提取单词 我在命令行中使用带有西班牙语选项的 tesseract 如下所示 tesseract category png l spa psm 7 category txt 我认为该文本一定很容易被 OCR 解析 但该单
  • Tesseract 对阿拉伯语单词/字母不返回任何内容

    我已经安装了 Pytesseract 它可以完美地处理法语 英语文本以及数字 但是当我尝试阅读任何阿拉伯文本 字母时 它不会返回任何内容 这是我使用过的代码 try from PIL import Image except ImportEr
  • Tesseract .NET 处理内存对象中的图像

    据我了解 我可能是错的 Pix LoadFromFile是获取 Pix 进行处理的唯一方法 还有其他方法吗 例如位图 我不是 tesseract 专业人士 但您可以使用以下内容 Bitmap bmp Bitmap Bitmap FromFi
  • 如何使用 tesseract 4.0 或使用 pytesseract 检测图像中的表格? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想检测图像中的表格 识别表格块以及其中可能的文本 在 tesseract 的早 期版本中 可以使用参数 textord dump t
  • 超正方错误 - 图像太大

    对于大小为 5 MB 的图像 我从 tesseract 收到以下错误 Tesseract 开源 OCR 引擎 v3 01 与 Leptonica 第0页 图片太大 39667 56133 处理过程中出错 文件大小是否有限制 或者是否有参数可
  • pytesseract找不到指定的文件

    我的代码很简单 如下所示 import pytesseract from PIL import Image img Image open C temp foo jpg img load i pytesseract image to stri
  • 让 tesseract 只识别数字

    我正在尝试改进我制作的 OCR 程序来读取我正在使用的某个图像的布局 现在 我希望我的 OCR 程序只能识别数字 0 9 我尝试遵循问题的解决方案 限制 tesseract 正在寻找的字符 https stackoverflow com q
  • tesseract (v3.03) 输出为 PDF [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么会返回这个错误呢 root amd 3700 2gb ocr test tesseract l dan pdf png out pd
  • Tesseract OCR 将削减的 0 混淆为 8

    我已经在终点字体上训练了 tesseract 但无论如何 我都无法让它识别 0 我正在使用 jTessEditor 创建训练 tif 和框 即使在验证时 它也会将所有 0 读取为 8 我有什么遗漏的吗 下面是 0 的示例 它将其读作 8 我
  • 如何将 Tesseract 导入 Angular2 (TypeScript)

    我正在尝试将 Tesseract 导入 Angular2 TypeScript 我可以看到它保存到 node modules 文件夹中 但是在使用时 import Tesseract from types tesseract js it s
  • Tesseract OCR - 手写字体

    我正在尝试使用Tesseract OCR http code google com p tesseract ocr 检测其中包含纯文本的图像文本 但这些文本具有名为的手写字体Journal Example 结果不是最好的 千里马 尺寸 宽
  • 使用 Tesseract 进行手写识别

    我只是想知道 如果将大写字母全部放在表格中自己的小框中 那么超正方体的手写识别准确度有多高 我知道你可以训练它来识别你自己的笔迹 但我的问题是我需要在多个笔迹中使用它 有人能指出我正确的方向吗 多谢 简而言之 您必须训练 Tesseract

随机推荐

  • 系列一、NotePad++离线安装NppFTP插件

    一 下载离线插件 链接 xff1a https pan baidu com s 16EEGYOTKkMP bB8LcnwpsQ pwd 61 yyds 提取码 xff1a yyds 二 解压自己NotePad 43 43 对应版本 xff0
  • Ubuntu18 AMD和ARM版本的源的区别

    Ubuntu18 AMD和ARM版本的源的区别 文章目录 Ubuntu18 AMD和ARM版本的源的区别AMD版本ARM版本主要区别 之前因为懒没有仔细研究ubuntu AMD和ARM版本系统apt源的区别 xff0c 导致今天换源时候走了
  • 【C51】基于C51单片机的定时闹钟(含代码,电路,拿走即可用)

    基于C51单片机的定时闹钟 上电后设置定时时间 xff0c 按键1选择设置的是小时分钟还是秒钟 按键2对其进行具体的数字设置 一次选择完成之后就默认进入计时模式 达到计时时间后响铃 按键3可以关闭响铃 代码 span class token
  • 解决Centos7.9图形界面root用户登录报“sorry, that didn‘t work please try again”问题

    一 问题描述 xff1a 新装的Centos7 9 在图形界面以root身份进行登录时报 sorry that didn t work please try again xff0c 如下图所示 xff1a 经确认 xff0c root密码是
  • ubuntu 安装QT 5.0出现错误:Failed to load platform plugin "xcb".

    当你安装QT 5 0 时 xff0c 启动的时候会出现如下错误 xff1a Failed to load platform plugin 34 xcb 34 Available platforms are linuxfb minimal x
  • 获取Android设备的序列号(SN号)

    方法 xff08 一 xff09 通过反射获取sn号 public static String getDeviceSN String serial 61 null try Class lt gt c 61 Class forName 34
  • Python smtplib.SMTP()和smtplib.SMTP_SSL() 登录邮箱并发送邮件比较

    一 邮件发送流程 邮件的发送是主动行为 xff1a 主要通过 MUA 邮件客户端软件 xff0c 将邮件内容发送给对应的服务器 暂存到投递服务区 xff0c 然后由当前运营商根据邮件特征信息将邮件转发给目标服务器的投递服 务区 xff0c
  • mysql limit 使用规范

    在我们使用查询语句的时候 xff0c 经常要返回前几条或者中间某几行数据 xff0c 这个时候怎么办呢 xff1f 不用担心 xff0c mysql 已经为我们提供了上面这样一个功能 xff08 0 xff09 mysql不支持select
  • 【Proteus仿真】【STM32单片机】智能电饭煲系统设计

    文章目录 一 功能简介二 软件设计三 实验现象联系作者 一 功能简介 本项目使用Proteus8仿真STM32单片机控制器 xff0c 使用继电器加热 保温模块 数码管模块 按键模块 LED指示灯 蜂鸣器模块等 主要功能 xff1a 系统运
  • Kurento-6.7.1 媒体服务器搭建详细教程(Kurento-Media-Server)

    Kurento 6 7 1 媒体服务器搭建详细教程 关于 Kurento 媒体服务器 Kurento 架构的核心是媒体服务器 xff0c 它被命名为Kurento媒体服务器 xff0c 即 KMS Kurento 媒体服务器所有的媒体处理模
  • 什么是jsp?

    什么是JSP JSP全称Java Server Pages xff0c 是一种动态网页开发技术 它使用JSP标签在HTML网页中插入Java代码 标签通常以 lt 开头以 gt 结束 JSP是一种Java servlet xff0c 主要用
  • Echarts实现自定义图标——风向图

    上图用了两种模式表示风向图 xff0c 第一种是自定义系列 xff0c 第二种使用了折线图 xff0c 给折线图添加自定义图标 两者的区别在于给options series设置不同的type值 xff0c 如下图 xff1a 那么我们来一步
  • 最大公约数的四种方法

    最大公约数的四种方法 前言1 暴力穷举法2 辗转相除法步骤原理证明 xff1a 3 更相减损法步骤原理证明 xff1a 比较 4 stein算法比较原理步骤 前言 求两数的最大公约数 xff0c 一共有四种方法 xff1a 暴力穷举法 更相
  • Codeblocks配合gfortran作为fortran开发环境的配置方法

    xff08 以前在bmy bbs发过一次 xff09 这个方法试过在64位win7和32位winxp上可用 1 xff0c 首先安装codeblockes xff0c 必须选完全安装 xff08 Full All plugins xff09
  • Mysql jdbc URL连接参数useSSL、serverTimezone 相关问题

    MySQL 8 0 以下版本 JDBC 驱动名及数据库 URL span class token keyword static span span class token keyword final span span class toke
  • Week8 CSP-M2

    T1 HRZ的序列 题目 相较于咕咕东 xff0c 瑞神是个起早贪黑的好孩子 xff0c 今天早上瑞神起得很早 xff0c 刷B站时看到了一个序列aa xff0c 他对这个序列产生了浓厚的兴趣 他好奇是否存在一个数KK xff0c 使得一些
  • 如何在linux环境下启动时打开numlock

    如何在linux环境下启动时打开numlock 技巧管理员 2000 12 24 10 23 返回 转发 想在系统启动时自动打开NumLock xff0c 可以在 etc rc d rc local中加入以下内容 xff1a for t i
  • 【洛谷】每日一题-P1786 帮贡排序

    原题链接 P1786 帮贡排序 解析 实现方法 一看题 xff1a 这不就是道排序吗 xff1f 但是 用啥办法呢 xff1f 这自带的排序方法 xff0c 肯定是不能用了 那么我们就来写一个cmp排序函数吧 xff01 但是 输出排序呢
  • CCF 201609-3炉石传说 (100分)

    xff08 1 xff09 题目描述 xff08 2 xff09 算法思想 题目看起来很长 xff0c 但是只要玩过游戏阅读起来很容易理解 xff0c 充分理解后按照要求模拟即可没有什么难度 需要注意的一点就是从者的位置 xff0c 可以选
  • Mac Tesseract 4.1.1 样本训练超详细教程

    安装 Mac直接安装tesseract的话无法附带安装training tools 如果已经安装了没有training tools的tesseract xff0c 请先卸载 brew uninstall tesseract 先安装一些依赖的