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