gpt4 book ai didi

ocr - 通过训练tesseract达到更好的识别效果

转载 作者:行者123 更新时间:2023-12-01 05:03:30 30 4
gpt4 key购买 nike

我有一个关于使用 tesseract 获得更好的识别结果的问题。我正在使用 tesseract 来识别序列号。序列号仅由一种字体类型、字符 A-Z、0-9 组成,并以不同的大小和长度出现。

目前我能够正确识别大约 40% 的序列号图像。图像是通过手机相机拍摄的。因此图像质量不是最好的。

特殊问题字符是 8/B、5/6。因为我只识别序列号,所以我没有使用任何字典改进,每个字符都是独立识别的。

我的问题是:是否有人已经体验过通过训练 tesseract 获得更好的识别结果?需要多少张图片才能得到好的结果。

对于训练 tesseract,我应该使用打印后拍照的序列号,还是应该使用原始数字序列号,而不打印和拍照?

也许有人已经在这方面有经验了。

关于训练 tesseract:我已经用一些图像训练了 tesseract。因此,我打印了不同尺寸的所有字符,并正确地拍照和标记。角色5的示例训练照片

enter image description here

这是一个好/坏的训练示例吗?由于我只想识别单个字符而没有任何依赖性,因此我不必使用单词进行训练。

实际上,对于字符 B 8 6 5,我只用这些图像中的 3 个进行了训练,与原始英语 (eng) tesseract 数据库相比,这并没有产生更好的识别效果。

最好的问候,克里斯托夫

最佳答案

我目前正在开发一个 Sikuli 应用程序,它使用 Tesseract 从屏幕截图中读取文本(字符串和数字)。我发现实现准确性的最佳方法是在对屏幕截图执行 OCR 之前对其进行处理。但是,我正在阅读的大部分文本都是黑色背景上的绿色文本,因此这是我的首选解决方案。我用了Scalr's BufferedImage 中增加图像大小的方法:

BufferedImage bufImg = Scalr.resize(...)

它立即产生了更准确的结果,灰色背景上的黑色文本。然后我在创建新的 BufferedImage 时使用 BufferedImage 的选项 BufferedImage.TYPE_BYTE_GRAYBufferedImage.TYPE_BYTE_BINARY 分别将图像处理为灰度和黑白。

按照这些步骤,Tesseract 在处理黑底绿字时的准确率从 30% 提高到 85% 左右,在处理白底黑字时的准确率几乎接近 100%。 (有时单词中的字母会被数字弄错,例如 hel10)
希望对您有所帮助!

关于ocr - 通过训练tesseract达到更好的识别效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145200/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com