Как использовать OCR из командной строки в Linux?

У меня есть несколько тысяч страниц отсканированных страниц. Каждая страница сохраняется отдельно как JPG. Запись четкая, но шрифты меняются, и на страницах есть картинки и иллюстрации.

Мне нужно создать список всех слов, появляющихся в каждом файле JPG. Есть ли инструмент командной строки для сканирования изображения с указанием слов, которые появляются? Для этого не требуется идеальное сканирование, просто оценка.

Установите imagemagick , pdftotext (найденный в пакете с именем poppler-utils в некоторых менеджерах пакетов) и ocrmypdf . Последний является быстрым (ocr берет много процессора, и он настроен на использование всех ваших ядер), с открытым исходным кодом и часто обновляемым фрагментом программного обеспечения OCR. Этот подход, возможно, излишний, поскольку он на самом деле пытается назначить строку для каждого слова вместо того, чтобы просто наклеить слово, но у меня было много проблем с поиском хорошего и простого в использовании программного обеспечения OCR с открытым исходным кодом в целом. Затем в каталоге, в котором вы сохранили все ваши JPG:

 $ convert *.jpg pictures.pdf $ ocrmypdf pictures.pdf scanned.pdf $ pdftotext scanned.pdf scanned.txt $ wc -w scanned.txt 

tesseract , вероятно, является наиболее часто используемым решением здесь. Он доступен в большинстве репозиториев пакетов, например,

 apt install tesseract-ocr 

и может использоваться с

 tesseract input.png out.txt