tesseract 5.0 bazaar + user-words 配置不起作用

Posted

技术标签:

【中文标题】tesseract 5.0 bazaar + user-words 配置不起作用【英文标题】:tesseract 5.0 bazaar + user-words config doesn't work 【发布时间】:2020-04-05 23:59:13 【问题描述】:

我试图强制 tesseract 在执行 OCR 时仅使用我的单词列表。 首先,我将集市文件复制到/usr/share/tesseract-ocr/5/tessdata/configs/。这是我的集市文件:

load_system_dawg F
load_freq_dawg F
user_words_suffix user-words

然后,我在/usr/share/tesseract-ocr/5/tessdata 中创建了eng.user-words。这是我的用户词文件:

Items
VAT
included
CASH

然后我通过命令对该图像执行 ocr:tesseract -l eng --oem 2 test_small.jpg stdout bazaar

这是我的结果:

2 Item(s) (VAT includsd) 36,000
casH 40,000
CHANGE 4. 000

如您所见,includsd 不在我的用户词文件中,它应该被“包含”。此外,即使没有在命令中使用bazaaz config,我也得到了相同的结果。看起来我的 bazaareng.user-words 配置对 OCR 输出没有任何影响。那么如何使用bazaaruser-words 配置,以获得想要的结果呢?

【问题讨论】:

【参考方案1】:

您需要做的就是对图像进行上采样。

如果你上采样两次

现在阅读:

2 Item(s) (VAT included) 36,000
CASH 40,000
CHANGE 4,000

代码:

import cv2
import pytesseract

# Load the image
img = cv2.imread("4nGXo.jpg")

# Convert to the gray-scale
gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Up-sample
gry = cv2.resize(gry, (0, 0), fx=2, fy=2)

# OCR
print(pytesseract.image_to_string(gry))

# Display
cv2.imshow("", gry)
cv2.waitKey(0)

【讨论】:

您的方法是调整图像大小以获得更好的结果。但我想配置 tesseract 以便仅使用字典中的单词,而不是获得更好的结果【参考方案2】:

user_words_suffix 似乎不适用于--oem 2。 一种解决方法是使用user_words_file,其中包含您的用户字文件的路径。

【讨论】:

你能给我发一个示例命令吗?我在 tesseract 手册中找不到您的选项:github.com/tesseract-ocr/tesseract/blob/master/doc/… 我将此选项添加到我的集市文件中,但它不起作用:user_words_file /usr/share/tesseract-ocr/5/tessdata/eng.user-words @voxter “它不起作用”是什么意思,您是否收到任何错误消息?用户词文件不是词白名单,tesseract 不仅使用用户词文件中的词。 “它不起作用”意味着我在使用此选项之前得到了相同的结果 我们还有什么别的想法吗?

以上是关于tesseract 5.0 bazaar + user-words 配置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Tesseract-OCR5.0 Lstm傻瓜式训练工具使用教程

Windows上使用Tesseract-ocr识别藏文天城体梵文

GNU Emacs完全抛弃Bazaar,正在切换到Git

Bazaar:如何将来自不同位置的文件放在一个存储库中?

如何通过 HTTP 代理使用 Bazaar?

bazaar 使用协议 https+webdav 可以记住密码吗?