c# - Tesseract OCR Library - 学习字体

标签 c# image-processing ocr tesseract

好吧,我正在使用此 OCR 的编译 .NET 版本,可以在@http://www.pixel-technology.com/freeware/tessnet2/ 找到它。

我有它的工作,但是它的目的是翻译车牌,遗憾的是引擎确实没有准确翻译一些字母,例如这是我扫描的图像以确定字符问题

enter image description here

结果:

12345B7B9U ABCDEFGHIJKLMNUPIJRSTUVHXYZ

因此以下字符翻译不正确:

1、O、Q、W

这看起来还不错,但是在我的车牌上,结果不是很好:

enter image description here = H4 ODM

enter image description here = LDH IFW

假测试

enter image description here = NR4 y2k

正如您可能会说的那样,我已经尝试了降噪、增加对比度和移除非绝对黑色的像素,但没有真正的改进。

显然你可以“学习”引擎的新字体,但我想我需要为 .NET 重新编译库,而且这似乎是在我没有的 Linux 操作系统上执行的。

http://www.scribd.com/doc/16747664/Tesseract-Trainingfor-Khmer-LanguageFor-Posting

所以我不知道接下来要尝试什么,我已经编写了一个快速控制台应用程序,纯粹用于测试目的,如果有人想尝试的话。如果有人有任何想法/图形处理/图书馆想法,我将不胜感激。

最佳答案

我最近通过 Tessnet2 使用了 Tesseract(如果我没记错的话,Tessnet2 是 Rémy Thomas 制作的围绕 Tesseract 2.0 的 VS2008 C++ 包装器)。让我试着用我对这个工具的一点了解来帮助你:

  • 1,正如我上面所说,这个包装器仅适用于 Tesseract 2.0,并且 newest Tesseract version on Google Code是 3.00(代码不再托管在 Source Forge 上)。有固定的贡献者:我看到计划发布 3.01 左右的版本。因此,您不会从最后的增强功能中受益,包括页面布局分析,这在您的牌照不是 100% 水平时可能会有所帮助。

  • 我向 Rémy 询问了第 3 版的 Tessnet2 .NET 包装器,他目前没有任何计划。所以像我一样,你必须自己做!

  • 所以如果你想获得最新版本的源代码,你可以从Subversion下载它们。存储库(所有内容都在 dedicated site page 中描述),如果您有 Visual Studio 2008,您将能够编译它们,因为它们的源代码在 vs2008 子文件夹中包含一个 VS2008 解决方案。此解决方案由 VS2008 C++ 项目组成,因此要在 C# 中获得结果,您必须将 .NET P/Invoke 与项目构建的 tessDll 结合使用。同样,如果您需要这个,我有您可能感兴趣的代码示例,但您可能希望继续使用 C++ 并创建您自己的新 WinForm 项目,例如!

  • 当你完成编译时(应该不会有什么大问题,但如果你遇到了一些,请告诉我,我可能也遇到过他们:-)),你将在输出几个二进制文件会让你做特定的训练!同样,有 a page specially dedicated to Tesseract 3 training .得益于此培训,您可以:

    • 限制您的字符集,这将自动删除标点符号(例如,'/-\' 而不是 'A')

    • 指出您检测到的歧义(如您所见,用“D”代替“O”,用“B”代替“8”等),您在使用训练时会考虑这些歧义。

  • 我还看到,如果将图像限制在字母所在的区域(即没有人脸,周围没有风景),Tesseract 结果会更好:在我的例子中,我只需要识别特定的区域从网络摄像头拍摄的卡片照片,所以我使用图像处理来限制区域。当然,那很长,但我的图像来自许多不同的来源,所以我别无选择。如果你能得到限制到最低限度的图像,那就太好了!

希望对您有所帮助,请随时给我您的意见和问题!

关于c# - Tesseract OCR Library - 学习字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908919/

相关文章:

c# - DataGridView WinForms 自动重新加载/更新/刷新

c# - Winform 数据源更新

python - 如何使用 opencv python 检测并增加文本图像中两行之间的间距?

java - Aspose OCR - 无法正确读取文本

python pytesseract.image_to_string 无法读取图像中的文本

image-processing - tesseract 的最佳图像输入类型是什么?

c# - 从表达式中获取负数

c# - 为什么我不能将 List<Customer> 作为参数传递给接受 List<object> 的方法?

javascript - 将来自外部 API 的图像响应转换为要在页面上显示的正确格式

c++ - 如何用C/C++高效的合成Bayer Raw10数据?