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 样本训练超详细教程 的相关文章

  • 如何使用 Tesseract-android-Tools

    我有 tesseract android tools 1 00 请帮助我使用 TessBaseAPI 接口 我只想将一个 jpg 图像传递给一个 Android 应用程序 该应用程序将一些文本作为图像的一部分 然后通过这个超立方体引擎我想将
  • 在 Tesseract 中识别数字时遇到问题 - android

    我希望有人能告诉我为什么我的 Tesseract 无法识别一些带有数字的图像 以及我是否可以对此做些什么 一切都根据测试工作 并且由于它只是我需要的数字 我认为我可以使用英文模式进行管理 直到我也必须从 7 段显示开始 虽然我在附加图像方面
  • Tesseract 和 tiff 格式 - spp 不在集合 {1,3} 中

    尝试运行此命令时 tesseract bond111 tif bond111 batch nochop makebox 我收到下一个错误 Error in pixReadFromTiffStream spp not in set 1 3 E
  • Pytesseract - 使用用户模式

    我正在尝试将 tesseract 的用户模式与 pytesseract 一起使用 但似乎无法使该命令正常工作 这看起来应该相当简单 但文档很少 我使用的是 tesseract 3 05 01 这样做是行不通的 pytesseract ima
  • 向 Tesseract eng.traineddata“添加”新字体

    据我所知 Tesseract 3 x 附带了 6 种英文字体 如果我错了 请纠正我 我需要训练 Tesseract 来支持 5 种以上的字体 我只需要大写字母和数字 没有特殊字符或符号 我遵循了各种流程 例如 向 Tesseract 3 O
  • Tesseract 虚假空间识别

    我正在使用 tesseract 来识别序列号 这是可以接受的 存在常见问题 例如错误识别零和 O 6 和 5 或 M 和 H 除此之外 这个超正方体还向识别的单词添加了空格 而图像中没有空格 下图被识别为 HI 3H 这张图片的结果是 FB
  • 用于 Tesseract 和 OpenCV 的 CMake

    我是 Linux 编程新手 我正在尝试创建一个 OCR 应用程序Ubuntu 12 10 using 超立方体 http code google com p tesseract ocr E2 80 8E and OpenCV http ww
  • Tesseract OCR 无法检测数字

    我正在尝试用 python 中的 tesseract 检测一些数字 下面您将看到我的起始图像以及我可以将其简化为的内容 这是我用来获取它的代码 import pytesseract import cv2 import numpy as np
  • 超正方体的替代方案

    Python 或 OpenCV 中是否有替代软件或任何库可以替代 Tesseract 进行字符识别 有什么建议的可以用Python实现的字符识别方法吗 Thanks This site https github com kba awesom
  • 超立方体错误:警告。分辨率 0 dpi 无效。使用 70 代替

    Error was reported when running tesseract on a image image attached tesseract rsa out jpg stdout Warning Invalid resolut
  • android ndk-构建错误

    我正在尝试为 Android 构建 tesseract 我已将 tesseract 放入示例文件夹中 C Android NDK android ndk r8 samples tesseract之内tesseract我有的文件夹tesser
  • 提高识别率的图像预处理步骤

    我正在为我的项目使用 TessBaseAPI 制作一个简单的 OCR Android 应用程序 我已经完成了一些图像预处理步骤 例如二值化和图像增强 但他们的结果是50 到60 怎样才能提高识别率呢 我包括两个示例图像 http image
  • c# OCR无法识别数字(tesseract 2)

    I m trying to extract digits from the following 它失败了 我得到了 作为回报 我正在使用 google 的 tesseract 2 使用 C 开源 c 包装器 现在我想知道 这个图像是否太糟糕
  • 超正方错误 - 图像太大

    对于大小为 5 MB 的图像 我从 tesseract 收到以下错误 Tesseract 开源 OCR 引擎 v3 01 与 Leptonica 第0页 图片太大 39667 56133 处理过程中出错 文件大小是否有限制 或者是否有参数可
  • 有没有办法在 venv/web 服务器中安装 Tesseract OCR?

    我制作了一个执行 OCR 功能的 Python 脚本 然后回收了该脚本并使用 Flask 制作了一个 Web 应用程序 Web 应用程序及其库位于 virtualenv 中 但该应用程序使用操作系统 Windows 中安装的 Tessera
  • 从图像中识别数字

    我正在尝试编写一个应用程序来查找图像内的数字并将它们相加 如何识别图像中的书写数字 图像中有很多框 我需要获取左侧的数字并将它们相加得出总数 我怎样才能实现这个目标 编辑 我对图像进行了 java tesseract ocr 但没有得到任何
  • 如何将 Tesseract 导入 Angular2 (TypeScript)

    我正在尝试将 Tesseract 导入 Angular2 TypeScript 我可以看到它保存到 node modules 文件夹中 但是在使用时 import Tesseract from types tesseract js it s
  • 在tesseract中添加任何traineddata文件并在IOS中使用

    我能够编译英语版本 该版本已经在 tesseract 的示例中 但无法添加其他语言 例如 ara traineddata 我正在做这样的事 Tesseract tesseract Tesseract alloc initWithDataPa
  • 如何在Eclipse中配置Tesseract进行Android开发?

    我已经从事 Android 工作 6 个月了 至此我对Android开发有了基本的了解 现在我想使用 Tesseract 开发一个 OCR Android 应用程序 为此 我从 Tesseract 下载了 android ndk r6b t
  • Tesseract 是否会忽略扫描文档中的任何非文本区域?

    我正在使用 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 先安装一些依赖的