OpenOCRv2
OCR для сцен и документов на чистом torch
OpenOCRv2 — набор из трёх моделей для детекции и распознавания текста на изображениях сцен и документов. Работает через обычные torch и transformers, веса лежат в одном репозитории по подпапкам det, rec_ctc и rec_ar. Размеры небольшие: детектор 9,36 млн параметров, распознаватели — 21,97 и 36,66 млн.
🔥 Ключевые особенности
- 📍 Три модели в одном репозитории: детекция, быстрый CTC-распознаватель и более точный AR-распознаватель.
- 📌 CTC-вариант быстрее, AR декодирует по токенам и ориентирован на точность.
- 🖼 Полностраничный OCR:
det.ocr()выдаёт текст в порядке чтения, оценки и четырёхугольники регионов. - ✔ Можно использовать только детекцию (
det.detect()) или только распознавание (rec.recognize()). - 💻 Запуск на CPU и CUDA;
torchvisionне требуется,opencv-python-headlessнужен только для кропа. - 📚 Алфавит на 19 685/19 687 символов уже входит в распознаватели.
💻 Пример
from transformers import AutoModel
from PIL import Image
import numpy as np
REPO = "Yesianrohn/openocrv2"
image = np.asarray(Image.open("page.jpg").convert("RGB"))
det = AutoModel.from_pretrained(REPO, subfolder="det", trust_remote_code=True).eval()
rec = AutoModel.from_pretrained(REPO, subfolder="rec_ctc", trust_remote_code=True).eval()
print(" ".join(det.ocr(image, rec)["text"]))
Подробнее
Бенчмарков в карточке нет; указаны только размеры весов: 36, 85 и 141 МБ.Запуск возможен на CPU и CUDA; для Windows CPU указан Python 3.11 и фиксированные версии пакетов.
Точность может немного меняться от
batch_size: в карточке отмечено, что оценки получены при batch_size=32.При ручном кропе строку выше 1,5× ширины нужно поворачивать на 90°, иначе вертикальный текст распознаётся неверно.








Комментарии