Начало работы
Установка
Минимальные системные требования
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:
Remove the CPU version of ONNX Runtime and install the GPU version:
pip uninstall onnxruntime
pip install onnxruntime-gpu
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-детектор текста для моделей семейства YOLOEAST— детектор текстаSimpleSorting— модель упорядочивания layoutTRBA— распознаватель текстаCharLM— посимвольный корректор текстаPage— структура данных страницыBlock— структура данных блокаLine— структура данных строкиTextSpan— минимальный текстовый регион OCR
Зоопарк моделей
Список встроенных пресетов и релизных артефактов, задокументированных для этой версии документации, см. в Зоопарк моделей.