Manuscript OCR
Manuscript OCR – открытый Python-фреймворк полного OCR/HTR-пайплайна для распознавания дореформенных рукописей на русском языке XVIII–XIX веков и современных текстов. Проект направлен на цифровизацию и анализ исторического текстового наследия с использованием разработанных методов, учитывающих устаревшую орфографию, сложную структуру страниц и вариативность почерков, и обеспечивающих высокую вычислительную эффективность на ограниченных ресурсах.
Онлайн-демо - попробовать Manuscript OCR в браузере
Полная документация - English & Русский
Установка
pip install "manuscript-ocr[cpu]"
Обычная установка pip install manuscript-ocr содержит общие компоненты без ONNX Runtime.
Для выполнения моделей выберите [cpu], [gpu] или браузерный [web].
Для TrOCR дополнительно нужен токенизатор: pip install "manuscript-ocr[cpu,trocr]".
В браузере Python работает через Pyodide, а ONNX Runtime Web подключает страница. Порядок подключения описан в инструкции для веба.
Минимальный пример
from manuscript import Pipeline
# Инициализация с моделями и автоматическим выбором устройства
pipeline = Pipeline()
# Обработка изображения
result = pipeline.predict("document.jpg")
# Извлечение текста
text = pipeline.get_text(result["page"])
print(text)
Дополнительные варианты установки
Для ускорения на GPU (NVIDIA CUDA)
# Удалите CPU-версию ONNX Runtime
pip uninstall onnxruntime
# Установите GPU-версию
pip install "manuscript-ocr[gpu]"
# Если библиотеки CUDA/cuDNN ещё не установлены:
pip install "onnxruntime-gpu[cuda,cudnn]"
Для Apple Silicon с CoreML
Стандартный пакет onnxruntime для macOS включает CoreML. Дополнительная
установка не требуется; передайте device="coreml" компонентам пайплайна.
Dev-установка с обучением моделей
pip install "manuscript-ocr[cpu,dev]"
Dev-установка для обучения на GPU (NVIDIA CUDA)
# Установите библиотеку с GPU Runtime и инструментами обучения
pip install "manuscript-ocr[gpu,dev]"
# Затем обновите PyTorch на GPU версию
pip install --upgrade torch torchvision --index-url https://download.pytorch.org/whl/cu118
Версию PyTorch выбирайте под свою CUDA. При переходе с CPU на GPU сначала удалите onnxruntime.
Использование GPU/CoreML
from manuscript import Pipeline
from manuscript.detectors import EAST
from manuscript.recognizers import TRBA
# NVIDIA CUDA
detector = EAST(device="cuda")
recognizer = TRBA(device="cuda")
pipeline = Pipeline(detector=detector, recognizer=recognizer)
# Apple Silicon (M1/M2/M3)
detector = EAST(device="coreml")
recognizer = TRBA(device="coreml")
pipeline = Pipeline(detector=detector, recognizer=recognizer)
Связанные работы
- Sherstnev, P.A.; Kozhin, K.D.; Pyataeva, A.V. Analyzing the Influence of Hyperparameters on the Efficiency of an OCR Model for Pre-Reform Handwritten Texts. Program Comput Soft 51, 173–180 (2025). https://doi.org/10.1134/S0361768825700069
- Шерстнев, П. А.; Кожин, К. Д.; Пятаева, А. В. Анализ влияния гиперпараметров на эффективность OCR-модели для дореформенных рукописных текстов // Программирование. – 2025. – № 3. – С. 70-79. – DOI 10.31857/S0132347425030071. – EDN GRLAPG.
- Шерстнев, П. А.; Кожин, К. Д.; Пятаева, А. В. Распознавание рукописных текстов отчетов губернаторов Енисейской губернии 19 века // GraphiCon 2024 : Материалы 34-й Международной конференции по компьютерной графике и машинному зрению, Омск, 17–19 сентября 2024 года. – Омск: Омский государственный технический университет, 2024. – С. 519-524. – DOI 10.25206/978-5-8149-3873-2-2024-519-524. – EDN GBEKEZ.
Практическое применение
Полученные результаты могут использоваться для:
- оцифровки и распознавания дореформенных рукописных архивных материалов;
- интеграции в системы библиотек, архивов и музеев;
- образовательных и исследовательских проектов по историческим источникам;
- интеллектуальной обработки текста, включая интеграцию с LLM-системами для анализа и структурирования исторических документов.
Проект реализован при поддержке гранта
Фонд содействия инновациям, конкурс «Код-ИИ», VII очередь
Metadata
Release files for manuscript-ocr 0.1.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| manuscript_ocr-0.1.13.tar.gz | 222.2 kB | Without provenance | Details for manuscript_ocr-0.1.13.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| manuscript_ocr-0.1.13-py3-none-any.whl | Python 3 | none | any | Details for manuscript_ocr-0.1.13-py3-none-any.whl |
Total release size: 474.9 kB
Release files / manuscript_ocr-0.1.13.tar.gz
| Download URL | manuscript_ocr-0.1.13.tar.gz |
|---|---|
| Size | 222.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eee1bf77b07a6d958bd4d82c70b344da0f523ec07ac617ce331250f95f965ba5
|
|
BLAKE2b-256 checksum How to use checksums |
362fc53c9b527e41aed2e9cbcb76ae657dcb960cac03d50b6a544cb2ee388f40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / manuscript_ocr-0.1.13-py3-none-any.whl
| Download URL | manuscript_ocr-0.1.13-py3-none-any.whl |
|---|---|
| Size | 252.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bc123be15fa44c3c6993b665a080c3a6612dc1d7922963d749825560599797f8
|
|
BLAKE2b-256 checksum How to use checksums |
5e0fc25e9e85d61ca862581fd7a738a9b78958052c25794702ffe39e930ae022
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Security for manuscript-ocr 0.1.13
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.