【问题标题】:OCR: Choose the best string based on last N results (an adaptive filter for OCR)OCR:根据最后 N 个结果选择最佳字符串(OCR 的自适应过滤器)
【发布时间】:2012-04-13 09:20:00
【问题描述】:

我看到了一些关于根据不同引擎的输出确定最佳 OCR 结果的问题,答案通常是“选择最佳引擎”。 但是,我想捕获几帧文本图像,可能会有临时遮挡或临时故障。 我正在使用 tesseract-ocr 和 python-tesseract。

考虑到最后 N 帧的 OCR 输出,我想确定什么是最好的结果(为简单起见,逐行)。

例如,对于 N=3,我们可以使用中值过滤:

ABXD
XBCX
AXCD

当3个字符中有2个相等时,多数人获胜,因此结果为ABCD。 但是,对于不同的字符串大小,这并不容易。如果我期望给定大小 M(如果扫描价格表,行通常是 XX.XX),我总是可以对大于 M 的字符串进行惩罚。

如果我们在谈论数字,中值滤波会很好用(计算机视觉中的简单背景减法),或者一些最小均方自适应滤波。 还有字符相似的问题:l1 可能非常相似,具体取决于字体。

我也在考虑使用每个字符串之间的字符串距离。例如,选择与其他字符串的距离之和最小的字符串。

以前有人解决过这种问题吗?有没有我应该知道的这类问题的已知算法?

【问题讨论】:

  • 为了处理不同长度的字符串,您可以尝试查找最长的公共子字符串,例如对于blendedblencled,LCS 是blen*ed,所以比赛在dcl 之间进行。无论如何,有趣的问题,太糟糕了,我没有更具体的东西:)
  • @RafałDowgird LCS 不是blen吗?
  • 不,LCS 可以跳过索引(在两个字符串中)。

标签: algorithm ocr string-matching fuzzy-comparison


【解决方案1】:

这个问题叫做多序列比对,你可以阅读它here

【讨论】:

  • 谢谢!我会研究那个问题。我希望我能为小字符串想出一个简单的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 2017-07-12
  • 2014-05-23
  • 1970-01-01
  • 2014-04-03
相关资源
最近更新 更多