Я видел несколько вопросов о выборе наилучшего результата OCR с учетом вывода из разных движков, и ответ, как правило, «выберите лучший движок». Однако я хочу захватить несколько кадров текстовых изображений с возможными временными окклюзиями или временными сбоями. Я использую tesseract-ocr с python-tesseract.
Учитывая выходные данные OCR последних N кадров, я хочу решить, что является лучшим результатом (построчно, для простоты).
Например, для N=3 мы могли бы использовать медианную фильтрацию:
ABXD
XBCX
AXCD
Когда есть 2 из 3 одинаковых символов, победит большинство, поэтому результатом будет ABCD. Однако это не так просто с разными размерами строк. Если я ожидаю заданный размер M (при сканировании таблицы цен строки обычно XX.XX), я всегда могу оштрафовать строки больше M.
Если бы мы говорили о числах, довольно хорошо работала бы медианная фильтрация (простое вычитание фона в компьютерном зрении) или какая-нибудь адаптивная фильтрация по методу наименьших квадратов. Также существует проблема похожих символов: l
и 1
могут быть очень похожими, в зависимости от шрифта.
Я также думал об использовании строковых расстояний между каждой строкой. Например, выберите строку с наименьшей суммой расстояний с остальными.
Кто-нибудь уже обращался с такой проблемой? Есть ли какой-нибудь известный алгоритм для такого рода проблем, который я должен знать?
blended
иblencled
LCS равенblen*ed
, поэтому соревнование проводится междуd
иcl
. В любом случае интересная проблема, жаль, что у меня нет ничего более конкретного :) - person Rafał Dowgird   schedule 29.03.2012blen
? - person jpimentel   schedule 30.03.2012