У меня есть несколько вопросов о Тессеракте
Контекст
В настоящее время я работаю над старым криптографическим алгоритмом из Восточной Германии (ГДР), который был разработан в 80-х годах. Я реализовал алгоритм на C#. Теперь у меня около 30 страниц тестовых случаев, которые я хочу проверить. Поскольку я не хочу вручную вводить каждую двоичную/шестнадцатеричную строку, я хотел бы распознать ее с помощью Tesseract (или любого другого бесплатного программного обеспечения, которое работает).
Проблема
У меня проблемы с получением удовлетворительных результатов. Подробнее об этом ниже.
Текущее состояние
(извините, я не могу напрямую публиковать изображения) Документ выглядит так: часть страницы/письма в деталях
Наивный подход
С настройками по умолчанию (я использую немецкий язык, но это не имеет значения для соответствующих частей) я получаю ужасные результаты.
tesseract -l deu input.tiff output pdf
Результат выглядит такэтот
Особенно нули вызывают проблемы. Слова, буквы и единицы распознаются немного лучше.
Что я пробовал (предварительная обработка)
- Повернуть страницу
- Увеличить контраст
- Бинаризировать изображение
- Размывайте/расширяйте изображение, чтобы заполнить небольшие промежутки между буквами.
Окончательный результат выглядит такэтотНасколько я знаю об OCR, это должно немного улучшить ситуацию.
Что я пробовал (настройки Tesseract)
Мой файл конфигурации выглядит следующим образом:
load_system_dawg F
load_freq_dawg F
language_model_penalty_non_dict_word 0
language_model_penalty_non_freq_dict_word 0
tessedit_create_pdf T
tessedit_char_whitelist 0123456789ABCDEF
По сути, я говорю Tesseract не пытаться составлять полезные слова из букв и разрешать использовать только символы, необходимые для шестнадцатеричных строк.
Как вы видетездесьэто приводит к немного лучшим результатам, но не во всех случаях. Некоторые нули в последней строке обнаруживаются значительно лучше. Между F ничего полезного не происходит.
Игра с настройками Neural Network vs Classical OCR (--oem 0/1) немного отличается. Классический алгоритм определяет много 0 как 9 (никогда как 0), но гораздо более последовательно (но не хорошо)
Вопрос
Что я могу сделать еще, чтобы улучшить результаты? Я знаю, что я мог бы дополнительно обучить нейронную сеть, но, судя по тому, что я прочитал, это требует некоторых усилий, от которых я хотел бы уклониться (создание Tesseract для себя, работа с машинным обучением, создание маркированных тестовых данных и т. д.).
Что-нибудь еще?
Спасибо за вашу помощь.