当前位置: 首页 > 知识库问答 >
问题:

如何用Tesseract OCR获得最准确的结果

易琛
2023-03-14

我正在构建/训练Tesseract从捕获的照片中识别护照MRZ代码。在将照片/图像发送到Tesseract引擎之前,我将应用以下图像预处理技术:

  • 二值化
  • 正常化
  • 取样
  • 去噪
  • 细化(可选)

此外,我已经用正确的字体(OCR-B)训练了Tesseract引擎,方法是创建大量的框文件(来自大约35个示例,其中包含从OCR-B字体的文本示例中获取的照片),修复框文件中的任何错误,创建训练文件,最后用我的所有示例训练Tesseract引擎,并生成一个traineddata文件。

然而,即使在使用C#中的Tesseract3.04(引擎模式=Default,pagesegmode=Auto)和我自定义的traineddata之后,仍然会犯一些简单的错误,比如:

  • 混淆字母字符和数字字符(反之亦然),例如S和5、B和8。

对于我的问题,我可以做什么来使Tesseract产生更准确的结果?我的30个训练样本由以下照片组成:

    null

共有1个答案

包兴思
2023-03-14

使用imagemagick转换程序可扩展到480%。还介绍了锐化和美白。带来了巨大的进步。我看到比许多购买的OCR程序这样做更好的结果。

 类似资料:
  • 问题内容: 我已经多次重温了这个问题,但我从未真正找到合适的答案。 是否可以执行MySQL搜索,以按相关性返回ACTUAL准确排序的结果? 我试图创建一个ajax搜索表单,当用户在输入字段中键入内容时提出建议,并且仅使用纯MySQL查询还没有找到合适的解决方案。我知道有可用的搜索服务器,例如ElasticSearch,我想知道如何仅使用原始MySQL查询来实现。 我有一张学校科目表。少于1200行

  • 我必须编写一个SUM()方法,它可以获得Number对象数组(Java)。所以它可能是几个短对象,然后是几个浮点,然后是一个bigdecimal。 如果所有内容都是byte/short/integer/long,那么返回的值应该是long。 目前,我收集了long(全部byte/short/integer/long)、double(全部float/double)和bigdecimal的运行总数。然

  • 问题内容: 我有一个员工表,如下所示: 我需要获取id等于4的问题的最小值和最大值。在这种情况下,我需要返回5和25。我使用以下查询实现了这一点: 但是,这不会返回的是问题ID。如何调整查询以显示q2是最小值,q4是最大值?我知道我可以写一个大写的语句,但是我也觉得可以使用联接来完成,但是我不知道。 注意:这是针对postgresql数据库的,但是我也标记了MySQL,因为我知道它也支持和函数。如

  • 我正在使用一个挂起的意图来启动一个闹钟(使用AlarmManager)。我需要不同的结果代码启动的活动,基于两个按钮中的哪一个放在它的用户点击(Snooze或取消)。我怎么得到这个结果?不幸的是,在关闭活动上启动finish()方法之后,没有在父活动中启动onActivityResult()方法。在Android文档中,它指出

  • 如何使用SeleniumWebDriver获得加载所有链接的准确时间? 这段代码适用于主页(example.com),但假设我想在example下找到可用页面的加载时间。通用域名格式。这可能吗。我是新的代码,所以任何形式的帮助将不胜感激。

  • 问题内容: 我一直在尝试发送HttpPost请求并获取响应,但是即使我能够建立连接,我仍然无法获得如何获取由请求-响应返回的字符串消息。 对不起,我听起来很幼稚,因为我是Java新手。请帮我。 问题答案: 尝试在您的响应中使用: