Начало работы

Установка

Минимальные системные требования

  • Linux (Ubuntu 20.04+), Windows 10+ или macOS 11+

  • не менее 2 ядер CPU

  • не менее 8 ГБ оперативной памяти

  • для обучения моделей рекомендуется 16 ГБ оперативной памяти или больше

  • для ускорения вычислений рекомендуется NVIDIA GPU с поддержкой CUDA

  • для запуска на GPU рекомендуется не менее 4 ГБ видеопамяти

Поддерживается запуск только на CPU, однако в этом режиме производительность может быть значительно ниже, чем на GPU. В текущей реализации обучение ориентировано на NVIDIA GPU с поддержкой CUDA и переходит на CPU при недоступности CUDA.

Базовая установка (только инференс):

pip install manuscript-ocr

Установка с поддержкой обучения (включает PyTorch):

pip install manuscript-ocr[dev]

Будут установлены дополнительные зависимости для обучения моделей:

  • PyTorch и TorchVision

  • Инструменты экспорта ONNX

  • Утилиты для обучения (albumentations, TensorBoard и др.)

  • Инструменты разработки (pytest, black, flake8 и др.)

Аппаратное ускорение GPU (NVIDIA CUDA):

Если вы переводите уже существующую установку с CPU на GPU:

  1. Remove the CPU version of ONNX Runtime and install the GPU version:

pip uninstall onnxruntime
pip install onnxruntime-gpu
  1. If you are working in Jupyter Notebook, JupyterLab, VS Code notebooks, or Google Colab, restart the kernel or runtime after installation.

Переустанавливать manuscript-ocr не требуется.

Модели и компоненты pipeline можно явно переключать через параметр device, например device="cuda" для NVIDIA GPU или device="cpu" для CPU:

from manuscript.detectors import EAST
from manuscript.recognizers import TRBA
from manuscript.correctors import CharLM

detector = EAST(device="cuda")
recognizer = TRBA(device="cuda")
corrector = CharLM(device="cuda")

Диагностика

Если pipeline по-прежнему не переключается на GPU, сначала выполните:

import onnxruntime as ort

print(ort.get_available_providers())

Случай 1. "CUDAExecutionProvider" отсутствует

Установите дополнительные runtime-пакеты CUDA/cuDNN:

pip install nvidia-cudnn-cu12 nvidia-cublas-cu12 nvidia-cuda-runtime-cu12 nvidia-cufft-cu12

После этого перезапустите kernel или runtime и заново создайте Pipeline.

Если ONNX Runtime кажется установленным, но в notebook-среде все еще работает некорректно, выполните чистую переустановку GPU-версии:

pip uninstall -y onnxruntime
pip install --no-cache-dir --force-reinstall onnxruntime-gpu==1.24.4
pip install --no-cache-dir nvidia-cudnn-cu12 nvidia-cublas-cu12 nvidia-cuda-runtime-cu12 nvidia-cufft-cu12

После этого снова перезапустите kernel или runtime и повторно импортируйте manuscript.

Случай 2. "CUDAExecutionProvider" присутствует, но модели все равно переходят на CPU

В некоторых notebook-средах ONNX Runtime может требовать явной предварительной загрузки runtime-библиотек перед импортом manuscript:

import onnxruntime as ort
ort.preload_dlls(directory="")

После этого импортируйте manuscript и заново создайте Pipeline.

Ускорение на Apple Silicon (CoreML):

pip install manuscript-ocr
pip install onnxruntime-silicon

Затем используйте device="coreml" для соответствующих моделей или компонентов pipeline.

Быстрый старт

Пример базового использования:

from manuscript import Pipeline

# Create pipeline
pipeline = Pipeline()

# Process image
result = pipeline.predict("document.jpg")

# Get recognized text
text = pipeline.get_text(result["page"])
print(text)

Примеры ноутбуков

Актуальные примеры ноутбуков доступны в папке notebooks репозитория:

Основные компоненты

  • Pipeline — высокоуровневый OCR-конвейер

  • YOLO — ONNX-детектор текста для моделей семейства YOLO

  • EAST — детектор текста

  • SimpleSorting — модель упорядочивания layout

  • TRBA — распознаватель текста

  • CharLM — посимвольный корректор текста

  • Page — структура данных страницы

  • Block — структура данных блока

  • Line — структура данных строки

  • TextSpan — минимальный текстовый регион OCR

Зоопарк моделей

Список встроенных пресетов и релизных артефактов, задокументированных для этой версии документации, см. в Зоопарк моделей.