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,我也得到了相同的结果。看起来我的 bazaar
和 eng.user-words
配置对 OCR 输出没有任何影响。那么如何使用bazaar
和user-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傻瓜式训练工具使用教程