跳至内容。

tesstrain.sh 是一个脚本,它会自动调用相应的程序来创建新的语言训练集。它使用各种训练程序,因此您需要使用“make training”构建它们才能使用它。

此页面详细介绍了用于 3.0x 分支训练的版本。并非所有文件都适用于 LSTM 训练。

有关 4.0 LSTM 训练的使用,请参见 TrainingTesseract-4.00

示例用法

$ ./tesstrain.sh --lang kan --langdata_dir /path/to/mylangdata --tessdata_dir /path/to/mytessdata

这是 tesstrain.sh 最常见的用法。有关其接受的所有参数的说明,请参见 tesstrain.sh 开头的注释。

与 Ubuntu 一起提供的 tesstrain.sh 副本稍作修改,以便自动填充一些默认参数,因为许多目录位置都是标准化的。文档位于标准位置。

/usr/share/doc/tesseract/README.debian

修改节省了一些输入。这是一个针对日语训练的示例。

git clone https://github.com/tesseract-ocr/langdata.git
apt-get install fonts-noto-cjk fonts-japanese-mincho.ttf fonts-takao-gothic fonts-vlgothic
tesstrain.sh --lang jpn --langdata_dir langdata

Langdata

tesstrain.sh 需要在训练过程中使用某些文件。这些文件通常存储在“langdata”目录中。Tesseract 正式支持的语言的 langdata 都存储在 langdata 存储库中,但您当然可以将 langdata 存储在您想要的任何位置。

必需文件

至少需要在您的 langdata 目录中提供以下文件(请注意,[lang] 是语言代码,例如“kan”或“eng”)

可选文件

这些文件可以选择存储在您的 langdata 目录中,并将被 tesstrain.sh 用于提高训练质量

通用文件

这些是会影响多种语言的通用文件,但可能需要根据需要进行编辑(请注意,[Script] 是脚本名称,例如“Greek”或“Hebrew”或“Devanagari”。一个脚本可以用于多种语言,例如 Devanagari 脚本用于 Hindi、Sanskrit、Marathi、Nepali 等)

Nick White 的 xheight 工具可用于查找不同字体的 xheight。要克隆它并构建 xheights 工具,请执行以下操作

$ git clone http://ancientgreekocr.org/grctraining.git
$ cd grctraining
$ make tools/xheight

要查看它在希腊语训练中的使用方式,请执行以下操作

$ make langdata/Greek.xheights

Langdata 文件

training_text

训练文本是一个文本文件,将用于训练 Tesseract 的语言。它应该包含每个字符的多个样本,并尽可能接近真实的文本样本。

wordlist

wordlist 是一个文本文件,包含单词列表,每行一个单词,按降序排列(因此最常见的单词排在最前面)。

training_text.bigram_freqs

这是一个文本文件,包含二元语法(这里指两个字符)的列表,以及它们在 training_text 中彼此相邻出现的频率,每行一个二元语法。

training_text.unigram_freqs

这是一个文本文件,包含一元语法(字符)的列表,以及它们在 training_text 中彼此相邻出现的频率,每行一个一元语法。

word.bigrams

这是一个文本文件,包含二元语法(这里指两个单词)的列表,用空格隔开,每行一个,按它们彼此相邻出现的频率排序(最常见的排在最前面)。

numbers、punc、config、unicharambigs

这些文件都直接组合到最终的训练集中。有关其功能和使用方法的详细信息,请参见 TrainingTesseract 页面。

language-specific.sh 中的选项

可以选择设置一些训练选项,以及为您的语言设置默认训练选项(例如要使用的字体),方法是编辑 training/language-specific.sh 脚本。

要为您的语言设置选项,请查看 language-specific.sh 的结尾,其中根据语言代码设置了变量(set_lang_specific_parameters() 函数)。

字体

您可以将要使用的字体设置为 tesstrain.sh 的参数(如 --fontlist 'Font 1' 'Font 2'),也可以在 language-specific.sh 中指定字体。

其他选项

对于可以设置的其他变量,最好直接阅读 set_lang_specific_parameters() 函数,以了解它们的用途,以及 tesstrain_utils.sh,以了解它们的使用方式。

tesstrain_utils.sh

请注意,tesstrain.sh 所做的绝大多数工作实际上都是从 training/tesstrain_utils.sh 文件导入的,因此如果您想知道它究竟在做什么,或者想要更改它的行为,请查看该文件。