我已经看到一些关于根据不同引擎的输出确定最佳 OCR 结果的问题,答案通常是“选择最佳引擎”。但是,我想捕获几帧文本图像,可能会有临时遮挡或临时故障。我将 tesseract-ocr 与 python-tesseract 一起使用。
考虑到最后 N 帧的 OCR 输出,我想确定什么是最好的结果(为简单起见,逐行)。
例如,对于 N=3,我们可以使用中值过滤:
ABXD
XBCX
AXCD
当 3 个字符中有 2 个相等时,多数人获胜,因此结果为 ABCD。但是,对于不同的字符串大小,这并不容易。如果我期望给定大小 M(如果扫描价格表,行通常是 XX.XX),我总是可以对大于 M 的字符串进行惩罚。
如果我们谈论数字,中值滤波会很好用(计算机视觉中的简单背景减法),或者一些最小均方自适应滤波。还有相似字符的问题:l
并且1
可能非常相似,具体取决于字体。
我也在考虑在每个字符串之间使用字符串距离。例如,选择与其他字符串的距离总和最小的字符串。
以前有没有人解决过这种问题?我应该知道这种问题的任何已知算法吗?