我已经看到了一些关于如何根据不同引擎的输出决定最佳OCR结果的问题,答案通常是“选择最好的引擎”。然而,我希望捕获几帧文本图像,其中可能存在临时遮挡或临时故障。我正在使用带有python-tesseract的tesseract-ocr。
考虑到最后N帧的OCR输出,我想决定什么是最好的结果(为了简单起见,逐行)。
例如,对于N=3,我们可以使用中值滤波:
ABXD
XBCX
AXCD当3个相等的字符中有2个相等时,多数将获胜,因此结果将是ABCD。然而,对于不同的字符串大小,这并不容易。如果我期望给定的大小M (如果扫描价格表,行通常是XX.XX),我总是可以对大于M的字符串进行惩罚。
如果我们讨论的是数字,中值滤波会工作得很好(计算机视觉中的简单背景减法),或者一些最小均方自适应滤波。还有相似字符的问题:根据字体的不同,l和1可能非常相似。
我还在考虑使用每个字符串之间的字符串距离。例如,选择与其他字符串的距离总和最小的字符串。
以前有没有人解决过这种问题?对于这类问题,有没有我应该知道的已知算法?
发布于 2012-03-30 03:31:32
这个问题被称为多序列比对,您可以在here上阅读相关内容
https://stackoverflow.com/questions/9930273
复制相似问题