Мануал от Локи: How to digitise a book in 2025. lockywolf guide.
Ещё от него рекомендация: Mathpix: Document conversion done right.
Ниже приведены мои заметки:
OCRMyPDF + EasyPDF
Сам OCRMyPDF работает с Tesseract-ом.
sudo apt install tesseract-ocr tesseract-ocr-rus
Есть версия с плагином EasyOCR: GitHub: OCRmyPDF EasyOCR plugin. Ставится так:
Сначала устанавливается pytorch (лучше установить отдельно по инструкции с их сайта), чтобы смэтчить с версией CUDA.
Потом нужно установить свежий ghostscript. Мне на лабораторном сервере lascala пришлось компилировать версию 10.05.1 из исходников, причём в Makefile нужно было внести исправление: в переменную STDLIBS
я добавил библиотеку -lstdc++fs
. Я так понял, что это было необходимо из-за старой версии gcc (8.4 вместо 9+).
Не уверен, насколько это необходимо, но кажется я компилировал при помощи:
make USE_TESSERACT=1 CXXFLAGS="-std=c++17" LDFLAGS="-lstdc++fs"
Моё обсуждение с чатгпт на тему проблемы с установкой ghostscript: ChatGPT - Ошибка линковки Ghostscript.
И наконец:
pip install git+https://github.com/ocrmypdf/OCRmyPDF-EasyOCR.git
Использование:
ocrmypdf --redo-ocr -l rus --plugin easyocr --pdf-renderer=sandwich book.pdf book-ocred.pdf
Если нужно извлечь текст из djvu, вот статья про это: Convert djvu to pdf.
Пытался пообщаться про это с чатгпт, вот что получил: ChatGPT - OCR для задачников.
Мой репозиторий OCR-OCD
- gpt-4-vision-preview (OpenAI)
Хорошее качество.
Секунд по 20-40 на страницу
Несмотря на промпт, не может нормально обработать двухколоночные страницы или двухстраничные листы, требует делить её на две части.
Стоимость выходит ~1.5 руб/страница - gemini-2.0-flash-exp
Качество вроде хорошее, но систематически не проверено
Порядка 1–3 секунд на страницу
Есть бесплатный тарифный план, но он имеет небольшой лимит (если я правильно понимаю, 50 запросов в день). Платный тариф не пробовал
Идеи
- Можно делать OCR классическим методом через Tesseract/EasyOCR, а затем кормить табличку OCR-слоя в LLM, не беря pdf. Это должно быть и быстрее (если классическое распознавание делать на видеокарточке), и дешевле, т.к. токенов в таблице наверняка поменьше, чем в картинке. Надо тестить (идея от 2025-08-03)
VLM — visual language model
Статьи:
- Мультимодальные RAG и VLM против OCR + LLM Как откровенно поговорить с вашими PDF
- Модели языкового восприятия. Преодоление ограничений OCR
- Оптическое распознавание символов (OCR) на базе LLM
- VLM в Нейро как мы создавали мультимодальную нейросеть для поиска по картинкам
- Visual Understanding. Object Detection vs OCR vs VLM by Edgar Trujillo