OCR на VPS: распознавание текста с изображений
OCR превращает сканы, фото документов и картинки в редактируемый текст. На своем VPS ты обрабатываешь архивы документов пачками, распознаешь русский и не платишь за каждую страницу облачным сервисам.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Где нужен свой OCR
OCR (оптическое распознавание символов) полезен везде, где текст заперт в картинке: сканы договоров и книг, фото чеков и счетов, скриншоты, старые PDF без текстового слоя. Локальный OCR на VPS обрабатывает такие архивы пачками, не сливает документы в чужое облако и не берет плату за страницу.
Отдельный сценарий — автоматизация: почтовый бот получает вложение-скан, извлекает из него текст и данные, и кладет в базу без участия человека. Для этого движок распознавания должен жить на сервере и работать по API.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для OCRДва подхода: Tesseract и EasyOCR
Tesseract — классический движок OCR, быстрый и нетребовательный, отлично работает со сканами и чистыми документами. EasyOCR — нейросетевой, лучше справляется с фото, кривыми углами и рукописью, но тяжелее.
- Tesseract: сканы, PDF, счета, книги — быстро на CPU
- EasyOCR: фото с телефона, вывески, сложные фоны
Для потоковой обработки документов начинай с Tesseract — он экономит ресурсы VPS и легко ставится из репозитория.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Установка Tesseract
Ставим движок и русский языковой пакет:
apt update && apt install -y tesseract-ocr tesseract-ocr-rus tesseract-ocr-eng poppler-utils
poppler-utils нужен для конвертации PDF в картинки. Проверяем распознавание изображения:
tesseract document.png output -l rus
cat output.txt
Флаг -l rus подключает русскую модель, -l rus+eng — смешанный текст.
OCR для PDF
PDF сначала разбиваем на страницы-картинки, потом распознаем каждую:
pdftoppm -png -r 300 scan.pdf page
for f in page-*.png; do
tesseract "$f" "${f%.png}" -l rus
done
cat page-*.txt > result.txt
Разрешение 300 dpi (-r 300) — оптимум: ниже теряется точность, выше растет время без выигрыша. Быстрый NVMe у MAATRIX ускоряет пакетную обработку — при сотнях страниц узкое место часто именно диск, а не CPU.
EasyOCR для фото
Для сложных изображений ставим нейросетевой EasyOCR:
python3 -m venv ~/ocr-venv
source ~/ocr-venv/bin/activate
pip install easyocr torch torchvision --index-url https://download.pytorch.org/whl/cpu
pip install easyocr
import easyocr
reader = easyocr.Reader(['ru', 'en'])
result = reader.readtext('photo.jpg', detail=0)
print("\n".join(result))
При первом запуске EasyOCR скачает модели детекции и распознавания — они кешируются на диске и переиспользуются.
API-обертка
Оборачиваем OCR в HTTP-сервис для приема картинок по сети:
from fastapi import FastAPI, UploadFile
import pytesseract, io
from PIL import Image
app = FastAPI()
@app.post("/ocr")
async def ocr(file: UploadFile):
img = Image.open(io.BytesIO(await file.read()))
text = pytesseract.image_to_string(img, lang="rus")
return {"text": text}
pip install fastapi uvicorn pytesseract pillow python-multipart
uvicorn app:app --host 127.0.0.1 --port 8003
Библиотека pytesseract — это тонкая Python-обертка над тем же бинарником Tesseract, поэтому язык и параметры передаются через аргумент lang и config. Например, --psm 6 говорит движку, что перед ним единый блок текста, а не разрозненные строки — это заметно повышает точность на таблицах и колонках.
Качество и частые ошибки
Точность OCR сильно зависит от подготовки изображения. Перед распознаванием картинку полезно выпрямить, повысить контраст и убрать шум через ImageMagick:
apt install -y imagemagick
convert scan.png -deskew 40% -threshold 60% clean.png
tesseract clean.png out -l rus
- Кракозябры вместо русского — забыл пакет tesseract-ocr-rus или флаг -l rus.
- Пустой результат — слишком низкое разрешение, сканируй от 300 dpi.
- Кривой текст с фото — переходи на EasyOCR или выпрямляй через -deskew.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для OCRОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Tesseract или EasyOCR?
Tesseract быстрее и легче для сканов и PDF. EasyOCR точнее на фото, вывесках и сложных фонах, но требует больше ресурсов.
Распознает ли русский?
Да. Tesseract с пакетом tesseract-ocr-rus и EasyOCR с языком 'ru' хорошо читают русский текст.
Можно ли обрабатывать PDF?
Да, через pdftoppm PDF конвертируется в картинки постранично, а затем каждая страница распознается Tesseract и склеивается в один текст.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.