Tesseract 的自定义字典

Posted

技术标签:

【中文标题】Tesseract 的自定义字典【英文标题】:Custom Dictionary for Tesseract 【发布时间】:2012-03-23 00:20:49 【问题描述】:

我目前正在开发一个使用 Tesseract OCR 的 android 项目。我希望通过添加字典来微调给用户的结果。根据tesseract OCR wiki,最好的办法是

用你自己的单词列表替换 tessdata/eng.user-words,在同一个 格式 - UTF8 文本,每行一个字。

但是 tessdata 文件夹中没有 eng.user-words 文件,我假设如果我只是用我的字典制作一个文本文件,它将永远不会被使用...

有没有人有类似经历并且知道该怎么做?

【问题讨论】:

【参考方案1】:

如果您使用的是tesseract 3(我假设您是)。 您必须重建您的 eng.trainddata 文件。

我打算完全替换 word-dawg 文件以尝试获得更好的结果(即 - 我检测到的单词总是相同的)。

编译 tesseract 时,您需要在训练目录中包含 combine_tessdatawordlist2dawg 可执行文件。

    解压所有内容(我这样做只是为了备份我的 eng.word-dawg,稍后您还需要 unicharset)

    ./combine_tessdata -u eng.traineddata

    为你的单词表创建一个文本文件(wordlistfile)

    创建一个 eng.word-dawg

    ./wordlist2dawg wordlistfile eng.word-dawg traineddat_backup/.unicharset

    替换word-dawg文件

    ./combine_tessdata -o eng.traineddata eng.word-dawg

应该是这样的。

【讨论】:

我正在尝试执行此步骤 3,但出现此错误 Loading unicharset from 'traineddat_backup/.unicharset' Failed to load unicharset from 'traineddat_backup/.unicharset' 请帮助我,我正在尝试在 Ubuntu 12.04 和 tesseract 3.02 上执行此操作。 @MuhammadMuaz: traineddat_backup/.unicharset 是第一个 cmd 输出的文件夹路径。如果第一个 cmd 是 ./combine_tessdata -u ita.traineddata /path/to/folder/tmp/ita.,则第三个是 ./wordlist2dawg wordlist ita.word-dawg /path/to/folder/tmp/ita.unicharset。希望对您有所帮助,我为此浪费了 30 分钟。

以上是关于Tesseract 的自定义字典的主要内容,如果未能解决你的问题,请参考以下文章

mvc(QSortFilterProxyModel)中的自定义排序仅适用一次

适用于 Android 应用的自定义词典(非键盘)

自定义类的字典数组

pdf签名上的自定义词典项目

TableView 的自定义复选框给出 NSManagedObject 错误

为啥我的自定义 JSONEncoder.default() 忽略布尔值?