Вам приходилось распознавать отсканированные документы под linux? Мне нет, но вот пришлось, слышал есть свободные аналоги, и вроде все хорошо. Вроде…
Как оказалось, есть 2 основных свободных консольных движка, cuneiform и tesseract, с них я и начал.
Сперва поставил cuneiform, но как его не крутил, он мне выдавал buffer overflow, и сыпал дампами в консоль, в общем вел себя крайне не прилично. Снес его нафиг. Ставил из репозитория, версия 1.1.0+dfsg-4.
Следующим на очереди был tesseract-ocr, версия в репе была 3.03.02-3, ее и поставил. В Debian\Ubuntu для этого нужно установить 2 пакета:
tesseract-ocr,
tesseract-ocr-rus
Остальные встанут автоматом. Документ распознался с первого раза без танцев с бубном. Опции подсмотрел тут: https://habrahabr.ru/post/153617/, в результате команды:
tesseract input.png output.txt -l rus -psm 6
получил нормальный текст, разбитый по блокам как и в оригинале, без единой ошибки (правда качество скана было хорошее). -psm 6 означает:
6 = Assume a single uniform block of text.
В общем задачу он свою выполнил, но мне интересно стало, неужели нет ни одного нормального gui приложения? Я конечно не надеялся на уровень abby finereader, но все же.
Оказалось – есть. Причем есть кроссплатформенные решения на java, а есть gui к вышеупомянутым движкам. По понытным причинам гуй для cuneiform я искать не стал, потому поставил YAGF и OCRFeeder. Читать →