如何使用 Tesseract 5 在 C# 中进行自定义字体训练

C# Custom Font Training for Tesseract 5 (for Windows Users)

This article was translated from English: Does it need improvement?
Translated
View the article in English

在使用默认情况下可能不支持的特定字体或字体样式时,利用 Tesseract 5 的自定义字体训练来提高 OCR 引擎的准确性和识别能力。

翻译过程包括向 Tesseract 提供训练数据,如字体样本和相应的文本,以便 Tesseract 学习自定义字体的具体特征和模式。

作为标题:2(快速入门:在 C# 中使用您的 .traineddata 字体文件)</em

以下是如何在 IronOCR 中使用您自定义训练的 Tesseract 字体文件,只需几行字即可。 非常适合快速准确地对特殊字体或装饰字体进行 OCR 识别。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    var ocr = new IronOcr.IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text;
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer

步骤 1:下载 IronOCR 的最新版本通过 DLL 安装通过 NuGet 安装步骤 4:下载您要培训的字体步骤 5:安装工作空间的磁盘驱动器,进行自定义字体培训步骤 6:将字体文件复制到 Ubuntu 字体文件夹Ubuntu 文件夹目录。

故障排除:拒绝访问目标文件夹

步骤 9:创建用于存储输出的 "数据 "文件夹tesseract_tutorial/tesstrain 中创建一个 "data "文件夹。 ## 步骤 10:运行 `split_training_text.py`. 返回 `tesseract_tutorial` 文件夹并执行以下命令: ```shell python split_training_text.py ``` 运行 `split_training_text.py` 后,它将在 "data "文件夹中创建 `.box` 和 `.tif` 文件。

故障排除:字体配置警告

/usr/share/fonts /usr/local/share/fonts fonts ~/.fonts ``` 将其复制到 `/etc/fonts` 中: ```bash cp fonts.conf /etc/fonts ``` 此外,更新 `split_training_text.py` : ```python fontconf_dir = '/etc/fonts' ```

注意:培训(.box 和 .tif)文件的数量

设置训练文件的数量。 ## 步骤 11:下载 `eng.traineddata`. 从[资源库](https://github.com/tesseract-ocr/tessdata_best)下载 `eng.traineddata` 并将其放入 `tesseract_tutorial/tesseract/tessdata` 中。 ## 第 12 步:创建自定义字体 `.traineddata`. 导航至 `tesstrain` 文件夹,并在 WSL2 中使用以下命令: ```bash TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100 ``` - `MODEL_NAME` 是您自定义的字体名称。 - `START_MODEL` 是原始的 `.traineddata` 参考资料。 - `MAX_ITERATIONS` 定义了迭代次数(更多的迭代可以提高 `.traineddata` 的准确性)。

故障排除:Makefile 中的 "读取数据失败"

故障排除:"加载脚本 Unicharset 失败"Traineddata Accuracy 如需进一步阅读和参考,请参阅教程:[YouTube视频](https://www.youtube.com/watch?v=KE4xEzFGSU8)

常见问题解答

如何为 C# 中的 Tesseract 训练一个自定义字体?

要使用 C# 为 Tesseract 训练自定义字体,您必须先下载 IronOCR,准备字体文件,并通过 WSL2 和 Windows 上的 Ubuntu 设置 Linux 环境,因为 Tesseract 的自定义字体训练仅在 Linux 上支持。

在 Windows 系统上使用 WSL2 安装 Tesseract 5 的步骤是什么?

要在 Windows 上使用 WSL2 安装 Tesseract 5,您需要设置 Ubuntu,然后使用命令 sudo apt install tesseract-ocrsudo apt install libtesseract-dev 完成安装。

复制字体文件时,我应该怎么办如果遇到“目标文件夹访问被拒绝”的错误?

如果遇到“目标文件夹访问被拒绝”的错误,请使用根访问权限的命令行将字体文件复制到必要的目录中以绕过权限问题。

为什么在 Tesseract 中进行自定义字体训练需要一个 Linux 环境?

在 Tesseract 中进行自定义字体训练需要一个 Linux 环境,因为训练工具被设计成在类似 Unix 的系统上运行,WSL2 可以用来在 Windows 上模拟这种环境。

如何在训练自定义字体时修复“Fontconfig 警告”错误?

为了解决“Fontconfig 警告”错误,您应该将字体目录路径添加到 fonts.conf 文件中,并确保它被复制到 /etc/fonts 目录中。

在自定义字体训练中“tesstrain”存储库的目的是什么?

'tesstrain' 存储库用于创建 Tesseract 自定义字体训练所需的 .traineddata 文件,提供过程所需的脚本和 Makefile。

如何解决“无法加载脚本 Unicharset”错误?

要修复“无法加载脚本 Unicharset”错误,您需要将 Latin.unicharset 插入 tesstrain/data/langdata 文件夹中,以确保必要的字符集可用。

如何验证我在 Tesseract 中自定义训练数据的准确性?

您可以通过检查训练误差率(称为 BCER),并确保经过足够的迭代和训练文件调整后最小化误差率,以验证自定义训练数据的准确性。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。
审核者
Jeff Fritz
Jeffrey T. Fritz
首席项目经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。
准备开始了吗?
Nuget 下载 5,044,537 | 版本: 2025.11 刚刚发布