Подтвердить что ты не робот

Алгоритмы исправления ошибок OCR

Я работаю над оцифровкой большой коллекции отсканированных документов, работая с Tesseract 3 в качестве моего механизма OCR. Качество его вывода посредственное, так как оно часто выдает как символы мусора до, так и после фактического текста, и опечатки в тексте.

Для первой проблемы кажется, что должны быть стратегии для определения того, какой текст на самом деле является текстом, а какой текст нет (большая часть этого текста - это имена людей, поэтому я ищу решения, отличные от поиска слова в словаре).

Для проблемы с типовыми вариантами большинство ошибок связаны с несколькими ошибочными буквами (например, подставляя l, 1 и I), и, похоже, должны быть методы для угадывая, какие слова написаны с ошибками (так как не слишком много слов на английском языке имеют "1" в середине их) и угадывают, что такое соответствующая коррекция.

Каковы лучшие практики в этом пространстве? Существуют ли свободные/с открытым исходным кодом реализации алгоритмов, которые делают такие вещи? Google дал много бумаг, но не много конкретных. Если нет доступных реализаций, какая из многих статей будет хорошим отправным местом?

4b9b3361

Ответ 1

Для определения того, какой текст на самом деле является текстом, а какой текст нет, вы можете посмотреть rmgarbage из того же отдела, который разработал Tesseract (ISRI). Я написал Perl-реализацию, а также реализацию Ruby. Для проблемы 1 против l я экспериментирую с ocrspell (опять же из того же отдела), для которого их исходный источник доступен.

Я могу опубликовать только две ссылки, поэтому недостающие:

  • ocrspell: введите "10.1007/PL00013558" на dx.doi.org]
  • rmgarbage: поиск "Автоматическое удаление мусорных строк в тексте OCR: реализация"
  • реализация ruby ​​: поиск "docsplit textcleaner"

Ответ 2

Что-то, что может быть полезно для вас, - это попробовать это бесплатное онлайн-обломок OCR и сравнить его результаты с вашими, чтобы узнать, играет ли игра с изображением (например, масштабирование вверх/вниз), вы можете улучшить результаты.

Я использовал его как "верхнюю границу" результатов, которые я должен получить, когда сам использую tesseract (после использования OpenCV для изменения изображений).