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”)
- [lang]/[lang].training_text(或者,也可以在命令行中使用
--training_text /path/to/textfile
指定它)
可选文件
这些文件可以选择存储在您的 langdata 目录中,并将被 tesstrain.sh 用于提高训练质量
- [lang]/[lang].wordlist(或者,也可以在命令行中使用
--wordlist /path/to/wordlist
指定它) - [lang]/[lang].word.bigrams
- [lang]/[lang].numbers
- [lang]/[lang].punc
- [lang]/[lang].config
- [lang]/[lang].unicharambigs
- [lang]/[lang].training_text.bigram_freqs
- [lang]/[lang].training_text.unigram_freqs
通用文件
这些是会影响多种语言的通用文件,但可能需要根据需要进行编辑(请注意,[Script] 是脚本名称,例如“Greek”或“Hebrew”或“Devanagari”。一个脚本可以用于多种语言,例如 Devanagari 脚本用于 Hindi、Sanskrit、Marathi、Nepali 等)
- [Script].xheights
- [Script].unicharset
- font_properties
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 文件导入的,因此如果您想知道它究竟在做什么,或者想要更改它的行为,请查看该文件。