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如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像