TESS系列实用工具培训

pytesstrain的Python项目详细描述


用于Tesseract OCR培训的Python工具

Tesseract OCR的培训工具。在

安装

使用pip安装:

pip install pytesstrain

这还将安装Python包pytesseract(用于运行Tesseract) 和editdistance(用于计算错误率)。在

入门

此软件包包含针对特定问题的工具:

text2image正在崩溃(issue #1781 @ Tesseract OCR

如果文本行太长,text2image工具将崩溃。如上述问题所述, 将文本行改写为较小的长度是解决此问题的官方解决方法。 例如,要将行长度最多减少到35个字符,请运行

^{pr2}$

从语料库文件创建词典数据

如果您没有培训语言的词典文件,您可能需要 从语料库文件创建一个。要为lang语言创建字典文件,请运行

create_dictdata -l lang -i corpus.txt -d ./langdata/lang

此工具创建以下文件:

  • 在lang.training_文本(语料库文件副本)
  • 在语言列表(字典)
  • 在lang.word.bigrams语言(单词bigrams)
  • 在lang.training_文本.bigram_frequencs(字符双字节频率)
  • 在lang.training_文本.unigram_freques(字符频率)

文件lang.wordlist.freq通常由培训工具创建,例如tesstrain.sh,同样, 所以不需要用create_dictdata创建它。在

语言指标

工具language_metrics对创建的随机单词序列的图像运行Tesseract OCR 并根据结果计算median度量(当前为CER和WER)。 它使您能够评估.traineddata文件的质量。在

使用wordlist文件lang和{em1}$Courier和{em1}$Courier计算lang语言的度量$语言列表, 跑

language_metrics -l lang -w lang.wordlist --fonts Arial,Courier

创建unicharambigs文件

这个包中有两个工具,可以自动创建unicharambigs文件。在

第一个工具collect_ambiguities,将识别的文本与参考文本进行比较,并 提取最小可能的差异作为错误和更正对,并按排序存储 JSON文件中出现的频率。你可以自己看看这些模棱两可的地方 使用第二个工具将它们转换为unicharambigs文件。在

第二个工具json2unicharambigs,接受中间的JSON文件,并将模糊性放入其中 放入unicharambigs文件中。生成的文件具有v2格式。你可以限制歧义, 它进入unicharambigs文件,并带有附加的命令行开关。在

使用wordlist文件^{em1}为语言lang创建文件lang.unicharambigs$语言列表, 跑

collect_ambiguities -l lang -w lang.wordlist --fonts Arial,Courier -o ambigs.json
json2unicharambigs --mode safe --mandatory_only ambigs.json lang.unicharambigs

创建基本真相文件

为了帮助训练Tesseract>;=4,工具create_ground_truth创建单线地面真相文件 从输入文件或来自包含.txt文件的目录(该工具递归地搜索后一个文件)。在

要从目录corpora中的目录corpora创建基本真相文件,请运行

create_ground_truth --fonts Arial,Courier corpora ground-truth

API参考

主要的工作是函数pytesstrain.train.run_test。还有一个平行版本, pytesstrain.train.run_tests,它使用线程池在多个处理器上运行前一个函数 同时(使用线程而不是进程进行并行化是可能的,因为run_test 函数启动进程本身,因此是I/O绑定的)。在

子包tesseract只导入包pytesseract。子包text2image模仿 前一个,但是用于text2image工具而不是tesseract。在

子包metrics包含评估指标的实现,如CER和WER。子包utils有 经常使用的杂项函数和子包ambigs包含歧义处理函数。在

最后,子包cli包含控制台脚本。在

许可证

Pytesstrain在Apache License 2.0下释放。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使图像以正确的速度在屏幕上移动,以适应所有显示   内存Java分配:从预先存在/分配的池中分配对象   java这种书写方式?   Java正则表达式查找字符串的开头   java是否可以创建一个类来处理安卓中的所有日志代码(例如log.d(TAG,message))   如何使用Selenium和java单击WebTable任意页面上的WebElement   java解析字符串中的文件名   java刷新JTree内容   java如何覆盖RequestMappingHandler   爪哇数石头、布、剪刀赢了多少   struts中的java无效令牌   swing JTree,优化算法,Java   java Tomcat和SSL:密钥库格式无效