RapidOCR: возможности, установка, форматы, модели и ограничения OCR-инструмента
RapidOCR — открытая OCR-библиотека RapidAI для встраивания распознавания текста в Python-сценарии и приложения, а не обычная программа с кнопкой «Открыть PDF». Актуальная ветка использует модели семейства PP-OCR и рассчитана на локальную обработку изображений. Сильная сторона проекта — управляемое офлайн-развёртывание; главный порог входа — ориентация на разработчиков и технических пользователей.
| Параметр | Актуальное состояние |
|---|---|
| Продукт | RapidOCR, основной пакет rapidocr |
| Разработчик | RapidAI, основной сопровождающий SWHL и участники проекта |
| Актуальная версия | 3.9.2 на 12 сентября 2026 года |
| Тип | OCR-библиотека и CLI, а не полноценный PDF-редактор |
| Лицензия | Apache License 2.0 |
| Python | 3.8 и новее, но ниже Python 4 |
| Базовый движок | ONNX Runtime; с версии 2.0.6 его нужно устанавливать отдельно |
| Другие движки | OpenVINO, PaddlePaddle, PyTorch, MNN, TensorRT; доступность зависит от модели и среды |
| Вход | Изображения через путь, URL, bytes, Path или NumPy-массив; форматы чтения зависят от Pillow |
| Не является нативным входным форматом ядра RapidOCR | |
| Облако и аккаунт | Для локального OCR не обязательны; сеть может понадобиться для загрузки моделей, шрифта визуализации или удалённого изображения |
Скачать RapidOCR
Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.
Безопасный путь получения RapidOCR — пакет rapidocr из Python Package Index либо исходный код официального репозитория RapidAI. На 12 сентября 2026 года актуальна версия 3.9.2 от 21 июля 2026 года. PyPI публикует универсальный wheel Python 3 размером 27,3 МБ и указывает Python от 3.8 до версии ниже 4.0.
Для типового запуска разработчики рекомендуют устанавливать два пакета: pip install rapidocr onnxruntime. Это важное уточнение: начиная с RapidOCR 2.0.6 ONNX Runtime больше не подтягивается как обязательная зависимость, хотя остаётся стандартным движком инференса. Поэтому установка только rapidocr может завершиться успешно, но без выбранного движка распознавание не заработает.
Старые пакеты rapidocr_onnxruntime, rapidocr_openvino и rapidocr_paddle официальная документация помечает как постепенно выводимые из сопровождения. Для нового проекта следует брать объединённый пакет rapidocr, а не строить установку на прежних раздельных пакетах. Это один из самых частых источников путаницы в старых инструкциях.
Что такое RapidOCR
RapidOCR — открытый OCR-инструментарий RapidAI, появившийся как инженерно облегчённый способ развёртывать модели PaddleOCR на разных устройствах и через разные runtime. Основная идея проекта — отделить этапы OCR от тяжёлой привязки к одному фреймворку: модель детекции ищет текстовые области, классификатор определяет ориентацию строки, модель распознавания превращает изображение строки в текст, а backend выполняет инференс.
Основным в текущем репозитории является Python-компонент. Компоненты для других языков программирования и платформ вынесены в отдельные репозитории, поэтому RapidOCR нельзя считать одним универсальным бинарником для Python, C++, Java и C# одновременно.
Проект активно развивается: в 2026 году вышла серия релизов 3.5–3.9, а версия 3.9.2 получила новые параметры предобработки и исправления. Это актуальная ветка, а не архив старого rapidocr_onnxruntime.
По назначению RapidOCR ближе к библиотечному движку, чем к ABBYY FineReader или Adobe Acrobat. Он не организует библиотеку документов, не предоставляет визуальный PDF-редактор, не создаёт поисковый слой PDF одной кнопкой и не управляет сканером. Его задача уже: принять изображение, выполнить выбранные этапы OCR и вернуть программно доступный результат — текст, координаты, confidence и время выполнения.
Основные функции RapidOCR
Детекция, ориентация и распознавание
Типовой конвейер RapidOCR состоит из трёх независимых частей: text detection, text line orientation classification и text recognition. По умолчанию они включены вместе, но при вызове можно отключить детектор, классификатор или распознавание. Это позволяет использовать библиотеку не только как «чёрный ящик OCR», но и как компонент отдельного этапа, например получить только координаты текстовых блоков или распознать заранее вырезанную строку.
Результат полного конвейера представлен объектом RapidOCROutput. В нём доступны исходное изображение, массив четырёхточечных рамок для строк, распознанные строки, confidence для каждой строки, данные пословной разметки при включённом соответствующем режиме, а также длительность отдельных стадий и общее время OCR. Такое представление удобнее обычного TXT, если текст затем нужно связать с положением на странице.
Модели PP-OCRv4, PP-OCRv5 и PP-OCRv6
RapidOCR не ограничен одной моделью. Документация содержит конфигурации для PP-OCRv4, PP-OCRv5 и PP-OCRv6. Начиная с версии 3.9.0 стандартная связка использует PP-OCRv6 small для детекции, классификатор PP-OCRv4 mobile и PP-OCRv6 small для распознавания. До 3.9.0 стандартная конфигурация была ориентирована на PP-OCRv4 mobile, поэтому сравнивать поведение старых инструкций и современной версии без учёта поколения модели некорректно.
В PP-OCRv6 предусмотрены варианты tiny, small и medium; у PP-OCRv4/v5 часто встречаются mobile и server. Размер модели влияет на требования и скорость, поэтому профиль выбирают под железо и качество исходника.
Многоязычное распознавание
По умолчанию проект ориентирован на китайский и английский, а другие языки подключаются подходящими моделями. Списки различаются между PP-OCRv4, v5 и v6 и не все комбинации поддерживаются каждым runtime. Для кириллицы есть варианты PP-OCRv5, поэтому язык и модель нужно задавать осознанно.
Для русского практическая оговорка особенно важна. В PP-OCRv5 предусмотрены модели семейства Cyrillic/ESLAV, тогда как стандартный профиль PP-OCRv6 small не следует автоматически считать русскоязычным. Если документ на кириллице, язык распознавания и модель нужно задать явно и проверить на контрольной странице.
Несколько движков инференса
RapidOCR 3.x умеет работать через ONNX Runtime, OpenVINO, PaddlePaddle, PyTorch, MNN и TensorRT. Поддержка конкретного backend зависит от версии и выбранной модели. ONNX Runtime остаётся рекомендуемой отправной точкой для CPU. OpenVINO выбирают для соответствующей экосистемы Intel, PyTorch — когда он уже является частью стека, MNN появился в RapidOCR 3.6.0, TensorRT — в 3.7.0.
Аппаратное ускорение зависит от платформы: DirectML в документации ограничен Windows 10 build 18362+, CoreML на Apple Silicon отмечен как экспериментальный в RapidOCR 3.7.0+, а TensorRT требует совместимый NVIDIA-стек. Эти режимы нужно проверять на конкретной версии runtime.
Настраиваемый порог и геометрия результата
Конфигурация позволяет менять пороги детекции и текста, лимиты размеров изображения, unclip_ratio и другие параметры. В 3.9.2 добавлены настройки предварительного изменения изображения и вертикального padding, что полезно для нестандартных пропорций.
Режим return_word_box возвращает координаты на уровне слов, а новейшая документация также описывает возвращение координат отдельных символов. Это делает RapidOCR пригодным для задач, где после распознавания нужно подсветить слова, построить разметку или сопоставить текст с координатами исходного изображения.
Визуализация и Markdown
RapidOCR умеет сохранять изображение с рамками и распознанным текстом. Это средство контроля, а не редактор. Quick start предупреждает: визуализация может автоматически скачать шрифт, поэтому в закрытом контуре задают локальный font_path или отключают этот шаг.
С версии 3.2.0 библиотека имеет метод преобразования результата в Markdown. Сама документация называет эту возможность приблизительной и обещает дальнейшее улучшение компоновки. Поэтому to_markdown подходит как черновой текстовый экспорт, но не заменяет полноценный layout-анализ документа с таблицами, колонками и стилями.
Интерфейс и удобство использования
У базового RapidOCR нет отдельного настольного интерфейса. Рабочих способов два: Python API и CLI. В командной строке можно передать путь или URL изображения, выбрать язык, порог текста, включить визуализацию и сохранение результата. Для быстрой проверки этого достаточно, но массовую обработку, маршрутизацию файлов и сложную постобработку удобнее писать на Python.
В Python основной объект создаётся как RapidOCR() и вызывается на изображении. Начать можно с настроек по умолчанию; продвинутая конфигурация разделена по Det, Cls, Rec и EngineConfig, поэтому для стабильного проекта лучше хранить параметры в YAML.
Для воспроизводимой конфигурации есть YAML. Команда rapidocr config создаёт файл с текущими параметрами, который затем можно хранить рядом с приложением, версионировать и передавать в конструктор. Это заметно удобнее, чем «магические» параметры в десятках мест, особенно когда на разных машинах используются разные inference engine.
Графическая оболочка не входит в базовый пакет. Отдельный RapidOCRWeb добавляет drag-and-drop, копирование текста и локальную браузерную страницу, но устанавливается и запускается отдельно. CLI базового RapidOCR остаётся англоязычным, а официальная документация доступна на китайском и английском.
Поддерживаемые форматы и совместимость
Что можно передать на вход
Основной Python-вызов принимает строку, объект Path, bytes или NumPy-массив. Строка может использоваться как путь к изображению либо как URL, если ресурс доступен по сети. Загрузка изображения построена на Pillow и сопутствующей обработке OpenCV, поэтому набор читаемых графических форматов в практической установке соответствует возможностям Pillow, а не жёсткому списку «только JPG и PNG» внутри RapidOCR.
PDF и документы
PDF не является нативным входом основной функции RapidOCR. Сканированный PDF сначала растеризуют или передают отдельному компоненту. У RapidAI есть отдельный RapidOCRPDF, который извлекает обычный текст через PyMuPDF и при необходимости подключает RapidOCR для изображённых страниц; это не функция ядра.
Если задача — просто открыть исходный PDF и читать его, PDF-XChange Editor или Sumatra PDF решают другой класс задач. RapidOCR нужен, когда внутри страницы текст существует только как пиксели и его требуется извлечь программно.
Что получается на выходе
Базовый результат — объект с текстом, координатами и confidence. Приложение может сохранить его в JSON, CSV или БД, но это уже прикладной код. Встроенными выходами остаются программный результат, визуализация и приблизительный Markdown.
Такой подход хорошо переносится между системами: текст, координаты и confidence не привязаны к проприетарному проектному файлу. Обратная сторона — нет готовой кнопки «Экспорт в DOCX/XLSX с сохранением верстки», как в специализированных офисных OCR-пакетах. Если приоритетом является именно редактируемый офисный документ, стоит сравнить RapidOCR с ABBYY FineReader.
Производительность и стабильность
RapidOCR предоставляет собственные поля времени выполнения для детекции, классификации, распознавания и полного вызова. Это полезно для измерений на конкретном железе, но проект не даёт универсальной цифры «страниц в минуту», которую можно честно перенести на любой процессор, размер изображения и модель. Скорость зависит от backend, модели, разрешения, числа текстовых строк и аппаратного ускорителя.
Для крупных изображений параметры предобработки ограничивают размер стороны перед детекцией. Это экономит ресурсы, но слишком сильное уменьшение может ухудшить распознавание мелкого текста, поэтому лимиты следует подбирать на контрольных сканах.
История релизов показывает важность фиксации версии: RapidOCR 3.8.2 был отозван с PyPI из-за отсутствующего arch_config.yaml и сбоя PyTorch engine. В production стоит закреплять зависимости и прогонять контрольный набор перед обновлением.
В issue tracker летом 2026 года оставался открытым отчёт о том, что ONNX-сессия классификатора может инициализироваться даже при use_cls=False. Для чувствительных к памяти сервисов это поведение следует проверять на закреплённой версии.
Лицензирование и версии
RapidOCR распространяется бесплатно с открытым исходным кодом по Apache License 2.0. Подписки, обязательной регистрации, ограничения по числу страниц и пробного срока у самого пакета нет. Лицензия допускает коммерческое использование, модификацию и распространение при соблюдении условий Apache 2.0, включая сохранение необходимых уведомлений.
Репозиторий отдельно разъясняет лицензирование моделей: исходные PaddleOCR-веса принадлежат Baidu и соответствующим правообладателям, а конвертированные артефакты RapidOCR распространяются под Apache 2.0. В коммерческом продукте нужно сохранять требуемые лицензионные уведомления.
Официальные материалы не выделяют отдельную платную функциональную редакцию RapidOCR Pro. Коммерческая поддержка упоминается как самостоятельная услуга, но основной код и стандартные функции библиотеки остаются открытыми и не требуют платного ключа. Основной код и стандартные модели доступны без платного ключа.
Системные требования
Python и пакетная среда
PyPI для RapidOCR 3.9.2 требует Python не ниже 3.8 и ниже 4.0 и перечисляет классификаторы для Python 3.8, 3.9, 3.10, 3.11, 3.12 и 3.13. Сам wheel помечен как py3-none-any, то есть пакет не привязан к одной ОС на уровне собственного wheel. Реальная совместимость определяется также бинарными зависимостями и выбранным runtime.
Среди зависимостей — pyclipper, OpenCV Python, NumPy, Shapely, PyYAML, Pillow, tqdm, OmegaConf, requests и colorlog. Для Python 3.12 документация исключает Shapely 2.0.4. При сбое установки отдельную проблемную зависимость рекомендуют поставить вручную и повторить pip.
Windows
На Windows стандартный CPU-путь — Python плюс onnxruntime. Для ускорения через DirectML документация требует Windows 10 build 18362 или новее и пакет onnxruntime-directml. Это не означает, что DirectML нужен всем пользователям: для первого запуска разработчики рекомендуют обычный ONNX Runtime CPU.
macOS
На macOS доступен CPU-бэкенд ONNX Runtime. Для Apple Silicon документация RapidOCR 3.7.0+ описывает экспериментальный CoreML Execution Provider в ONNX Runtime 1.16+, а PyTorch имеет экспериментальную MPS-конфигурацию.
Linux и серверные среды
На Linux можно использовать доступные для среды ONNX Runtime, OpenVINO, PyTorch и TensorRT. Единых минимальных требований по RAM, CPU или GPU документация RapidOCR не задаёт: они зависят от модели, runtime и параллелизма.
Карта критических зависимостей
| Зависимость | Нужна всегда | Что произойдёт без неё |
|---|---|---|
| Python 3.8–3.13 | Для официального Python-пакета — да | Пакет 3.9.2 не соответствует заявленному диапазону интерпретатора |
| Inference engine | Да | Модели нечему выполнять; стандартный выбор — ONNX Runtime |
| Интернет | Нет для заранее подготовленного офлайн-набора | Не загрузятся удалённые изображения, дополнительные модели или автоматически запрашиваемый шрифт |
| Аккаунт | Нет | Локальное распознавание не требует регистрации |
| Облачный OCR | Нет | Основной конвейер выполняется локально |
| GPU | Нет | Можно работать на CPU; GPU нужен только выбранным ускоренным конфигурациям |
| Pillow/OpenCV и другие Python-зависимости | Да, через пакетную установку | Не будут работать загрузка и обработка изображений |
| Модель нужного языка | Да для выбранного языка | Даже исправный engine не гарантирует распознавание неподдерживаемой письменности |
После фиксации wheel, runtime, моделей и шрифта можно собрать полностью локальный процесс. Но URL-вход, автоматическая загрузка дополнительной модели и визуализация без локального шрифта снова создают сетевую зависимость.
Преимущества и недостатки RapidOCR
Плюсы и минусы
Плюсы ✔️
- Открытая лицензия Apache 2.0. Нет подписки, лимита страниц и обязательного аккаунта.
- Локальный OCR. Изображения можно обрабатывать без отправки в облачный сервис, если модели и вспомогательные файлы уже находятся локально.
- Несколько runtime. Один API можно адаптировать под ONNX Runtime, OpenVINO, PaddlePaddle, PyTorch, MNN или TensorRT.
- Программный результат. Координаты строк, текст, confidence и timing доступны напрямую для последующей автоматизации.
- Активное развитие. В 2026 году регулярно выходили обновления, включая поддержку PP-OCRv6 и новых inference engine.
- Настройка модели и этапов. Детекцию, классификацию и распознавание можно включать отдельно и конфигурировать по-разному.
Минусы ❌
- Нет полноценного GUI в основном пакете. Для простого пользователя CLI и Python заметно сложнее обычного OCR-редактора.
- PDF не является нативным входом ядра. Нужна растеризация или отдельный проект, если источник — многостраничный PDF.
- Нет готового офисного экспорта. DOCX/XLSX/PDF с восстановленной версткой не входят в базовую функцию RapidOCR.
- Поддержка языка зависит от модели. Выбор «не той» комбинации PP-OCR, языка и runtime может дать неправильный результат или не поддерживаться.
- Некоторые ускорители экспериментальны. CoreML/MPS и отдельные backend-сценарии требуют дополнительной проверки.
- Конфигурация 3.x стала сложнее. Гибкая иерархия Det/Cls/Rec/EngineConfig удобна разработчику, но повышает порог настройки.
Сравнение с аналогами
| Решение | Формат продукта | Сильная сторона | Ограничение относительно RapidOCR | Кому подходит |
|---|---|---|---|---|
| RapidOCR | Python-библиотека и CLI | Локальный OCR, несколько runtime, координаты и confidence | Нет нативного PDF-редактора и GUI | Разработчикам, автоматизации, локальным сервисам |
| PaddleOCR | OCR/Document AI toolkit | Более широкий набор OCR и document parsing, обучение и структурированные конвейеры | Стек крупнее и сложнее; RapidOCR проще как лёгкий inference-слой | Проектам, которым нужен не только OCR, но и анализ структуры документов |
| Tesseract | Классический OCR-движок и CLI/API | Зрелый открытый движок, много языковых данных, простая серверная интеграция | Нет той же модели переключения современных inference backend и PP-OCR | Задачам с традиционным OCR и устоявшимся Tesseract-стеком |
| EasyOCR | Python-библиотека на PyTorch | Простой API и заявленная поддержка более 80 языков | Последний стабильный релиз 1.7.2 датирован 2024 годом; стек сильнее привязан к PyTorch | Python-проектам, где важна простота многоязычного старта |
| ABBYY FineReader PDF | Коммерческое настольное OCR/PDF-приложение | Готовый GUI, PDF, сканы, конвертация в редактируемые форматы | Платная лицензия и другой класс продукта; меньше свободы встраивания | Офисным пользователям без разработки |
PaddleOCR уместнее, если нужны обучение, document parsing и более широкий Document AI pipeline. RapidOCR удобнее как компактный inference-слой с выбором runtime. Tesseract подходит устоявшимся классическим OCR-сценариям, EasyOCR — простому Python-старту с широким списком языков.
С OCR CuneiForm RapidOCR роднит сама задача распознавания, но технологические поколения отличаются: RapidOCR использует современные нейросетевые PP-OCR-модели и актуальные runtime, тогда как CuneiForm рассматривают скорее как классический OCR-проект.
Sumatra PDF прямым конкурентом RapidOCR не является. Sumatra — просмотрщик документов и электронных книг, а RapidOCR — механизм извлечения текста из изображений. В практической связке Sumatra PDF может открывать PDF для просмотра, а RapidOCR — обрабатывать растеризованную страницу или скриншот, если в документе нет текстового слоя. Если же нужна правка самого PDF, ближе по задаче будут Adobe Acrobat Pro или другие PDF-редакторы.
Реестр проверяемых утверждений
| Факт | Тип подтверждения | Проверено | Практический вывод |
|---|---|---|---|
| Актуальная версия — 3.9.2 | Метаданные PyPI и changelog | 12.09.2026 | Старые руководства для 1.x/2.x нельзя применять буквально |
| Python: от 3.8 до ниже 4 | Метаданные PyPI | 12.09.2026 | Поддерживаются современные CPython 3.8–3.13 |
| Лицензия Apache-2.0 | PyPI и LICENSE репозитория | 12.09.2026 | Нет платного ключа или лимита страниц |
| ONNX Runtime не является зависимостью с 2.0.6 | Официальное руководство установки | 12.09.2026 | Runtime ставится отдельно |
| Стандарт 3.9.0+ использует PP-OCRv6 small для Det/Rec | Официальный usage и список моделей | 12.09.2026 | Поведение отличается от старой PP-OCRv4-конфигурации |
| Вход — изображение, а не PDF | Python API и исходный сигнатурный код | 12.09.2026 | PDF требуется растеризовать или обрабатывать отдельным инструментом |
| to_markdown описан как приблизительный экспорт | Официальная документация | 12.09.2026 | Не использовать как замену профессиональному layout-конвертеру без контроля |
| Старые rapidocr_onnxruntime/openvino/paddle выводятся из сопровождения | Официальное руководство установки | 12.09.2026 | Новые проекты следует строить на unified package rapidocr |
Инструкция по установке
Базовая установка через ONNX Runtime
- Установите поддерживаемый Python 3.8–3.13 и убедитесь, что команда Python/pip относится к нужному интерпретатору.
- Создайте отдельное виртуальное окружение, если RapidOCR будет частью проекта с другими ML-зависимостями. Это не обязательное требование RapidOCR, но снижает риск конфликтов NumPy, OpenCV, Shapely и runtime.
- Установите пакет и стандартный CPU-runtime командой pip install rapidocr onnxruntime.
- Запустите rapidocr check. Успешная проверка должна завершиться сообщением, что RapidOCR установлен корректно, и вывести используемые модели.
- Для первого распознавания передайте локальное тестовое изображение через CLI: rapidocr -img «путь_к_изображению» —vis_res. Если текст выводится в терминал и визуализация сохранена, основной конвейер работает.
Если установка останавливается на конкретной зависимости, официальная документация рекомендует сначала установить проблемный пакет отдельно, затем повторить установку RapidOCR. Это особенно актуально для бинарных зависимостей, которые зависят от версии Python и ОС.
Переключение на другой inference engine
Для OpenVINO, PyTorch, MNN или TensorRT сначала устанавливают соответствующий runtime, затем задают engine_type для Det, Cls и Rec. В production конфигурацию лучше сохранить в YAML и закрепить версии пакетов.
Для production лучше сохранить конфигурацию в YAML через rapidocr config, зафиксировать версии rapidocr и runtime в файле зависимостей и проверять тот же YAML на staging. Это защищает от незаметного перехода на другой backend или поколение модели при обновлении.
Первый запуск в офлайн-среде
Стандартные небольшие модели входят в wheel. Для другого языка или размера нужные модели следует скачать до изоляции среды и указать локальные пути. Визуализацию в офлайн-среде снабжают локальным font_path либо отключают.
Официальная документация не описывает отдельную процедуру удаления для каждой ОС. В управляемом развёртывании безопаснее хранить RapidOCR в отдельном виртуальном окружении и удалять окружение после сохранения собственных конфигураций и результатов.
Паспорт переноса данных
| Что переносится | Сохраняется полностью | Что можно потерять | Как контролировать |
|---|---|---|---|
| Исходные изображения | Да, если RapidOCR работает с копиями/путями и вы не удаляете исходник | Ничего из-за самого OCR | Хранить исходник отдельно от визуализации |
| Распознанный текст | Да | Ошибки OCR и отфильтрованные низкие confidence-строки | Сохранять score и контрольный образец |
| Координаты | Да в программном результате | Можно потерять при экспорте только в TXT/Markdown | Сохранять boxes/word_results в собственном структурированном формате |
| Confidence | Да | Теряется при простом копировании текста | Экспортировать вместе с каждой строкой |
| Конфигурация модели | Да, если хранить YAML и версии пакетов | Воспроизводимость ухудшится без версии runtime и модели | Фиксировать lock/requirements и локальные model_path |
| Markdown-компоновка | Частично | Сложная верстка может быть упрощена | Сравнивать с исходным изображением и не удалять координаты |
Главный принцип переносимости RapidOCR — не сводить результат слишком рано к «голому тексту». Если приложение сохраняет boxes, scores, модельную конфигурацию и идентификатор исходного изображения, результат можно переобработать или визуально проверить позже. Если оставить только TXT, восстановить исходную геометрию и confidence уже нельзя.
Практические кейсы
Локальное OCR одного скана через CLI
Цель: получить текст из PNG/JPEG без Python-кода. Подготовка: установить rapidocr и onnxruntime, выполнить rapidocr check. Шаги: передать локальный путь через -img и при необходимости включить —vis_res. Проверка: сравнить текст с исходником и визуализацией. Ограничение: CLI не создаёт DOCX и не обрабатывает PDF как многостраничный документ.
Получение текста и координат для поиска по сканам
Цель: индексировать сканы и подсвечивать найденные строки. Подготовка: Python API и связь результата с исходным файлом. Шаги: сохранить txts, boxes и scores в собственной БД/JSON. Проверка: по найденной строке наложить соответствующий box на исходник. Ограничение: формат индекса проектирует приложение.
Русскоязычные и кириллические документы
Цель: распознавать кириллицу. Подготовка: выбрать поддерживаемую PP-OCRv5 модель Cyrillic/ESLAV и совместимый runtime. Шаги: задать lang_type и Rec-модель, прогнать контрольную страницу. Проверка: отдельно проверить имена, номера и низкие scores. Ограничение: стандартный профиль нельзя считать автоматическим определителем русского.
Полностью офлайн-развёртывание
Цель: полностью локальный OCR. Подготовка: заранее установить wheel, runtime, модели и шрифт. Шаги: использовать локальные пути и model_path, исключить URL и сетевые загрузки. Проверка: запустить тест без интернета. Ограничение: отсутствующие локальные модели автоматически не появятся.
OCR страницы из PDF
Цель: распознать сканированную страницу PDF. Подготовка: внешним инструментом растеризовать страницу. Шаги: передать PNG/JPEG в RapidOCR и связать результат с номером страницы. Проверка: сопоставить boxes с растром. Ограничение: текстовый слой и сохранение нового PDF выполняет другой компонент.
Черновой Markdown из изображения
Цель: получить черновой Markdown. Подготовка: выполнить OCR с координатами. Шаги: вызвать to_markdown у RapidOCROutput. Проверка: сравнить порядок строк и колонок с исходником. Ограничение: экспорт официально описан как приблизительный и не гарантирует сложную верстку.
Навигатор по сбоям
- Симптом: rapidocr импортируется, но OCR не запускается. Проверьте, установлен ли inference engine. Для стандартной конфигурации нужен onnxruntime.
- Симптом: после обновления PyTorch backend падает. Проверьте точную версию RapidOCR и избегайте отозванной 3.8.2; обновитесь на актуальную 3.9.2 и повторите контрольный набор.
- Симптом: язык распознаётся плохо. Сверьте lang_type, поколение PP-OCR и поддерживаемость языка именно выбранной моделью, а не только общим списком RapidOCR.
- Симптом: мелкий текст пропадает. Проверьте масштабирование max_side_len и качество исходного растра; слишком сильное уменьшение может уничтожить детали.
- Симптом: офлайн-сервер пытается выйти в сеть. Исключите URL-входы, заранее скачайте дополнительные модели и задайте локальный шрифт либо отключите визуализацию.
- Симптом: PDF не открывается в RapidOCR. Это ожидаемо для ядра: сначала растеризуйте страницу или используйте отдельный PDF-обработчик.
Часто задаваемые вопросы
RapidOCR — это программа для Windows?
Не в смысле обычного EXE-приложения. Основной RapidOCR — Python-пакет и CLI, который можно использовать на поддерживаемых Python-платформах при наличии совместимого runtime. Отдельный RapidOCRWeb имеет Windows-сборку, но это другой проект.
Можно ли использовать RapidOCR бесплатно в коммерческом проекте?
Да, код распространяется по Apache License 2.0. При распространении продукта нужно соблюдать условия лицензии и учитывать уведомления по модельным артефактам. Платного ключа и лимита страниц у библиотеки нет.
Нужна ли регистрация?
Нет. Установка из PyPI и локальный OCR не требуют аккаунта RapidAI. Аккаунт может понадобиться только внешнему сервису, если вы сами добавите его в свой workflow; это уже не требование RapidOCR.
Отправляет ли RapidOCR документы в облако?
Основной inference выполняется локально. Сеть появляется, если вы передаёте URL вместо локального файла, выбираете модель, которую нужно автоматически скачать, или вызываете визуализацию без локального шрифта. Для закрытого контура эти зависимости можно подготовить заранее.
Можно ли распознавать PDF напрямую?
Не ядром RapidOCR. Оно принимает изображение или его программное представление. PDF нужно растеризовать или обрабатывать отдельным инструментом. Для полноценного OCR/PDF workflow существуют отдельные решения, включая RapidOCRPDF и настольные пакеты.
Есть ли русский язык?
Да, в наборах моделей есть кириллические варианты, в частности в PP-OCRv5. Однако русский не следует считать автоматически включённым в стандартную конфигурацию PP-OCRv6: модель языка надо выбрать и проверить на своих документах.
Можно ли использовать GPU?
Да, в зависимости от backend: PyTorch, TensorRT, DirectML, OpenVINO и другие конфигурации могут задействовать ускорители. Универсальной команды для всех GPU нет; нужны совместимые runtime, драйверы, модель и параметры.
Что лучше для обычного пользователя: RapidOCR или FineReader?
Если нужен готовый интерфейс, открытие PDF, OCR сканов и экспорт в Word/Excel без разработки, специализированный настольный пакет удобнее. RapidOCR сильнее там, где OCR нужно встроить в собственный сервис, сохранить координаты и контролировать backend.
Можно ли сделать из результата поисковый PDF?
Сам RapidOCR возвращает OCR-данные, но не заявляет встроенное создание поискового PDF с текстовым слоем. Для этого нужен отдельный PDF-компонент, который разместит распознанный текст в координатах страницы и сохранит новый документ.
Подходит ли RapidOCR как замена Sumatra PDF?
Нет. Sumatra PDF — просмотрщик, RapidOCR — OCR-движок. Они решают разные задачи и могут дополнять друг друга: один открывает документ, другой извлекает текст из растрового содержимого.
Вывод
RapidOCR 3.9.2 — сильный выбор для разработчиков, которым нужен локальный OCR без обязательного облака, с открытой лицензией, современными PP-OCR-моделями и возможностью менять inference engine. Особенно хорошо он вписывается в микросервисы, индексирование сканов, распознавание изображений в приложении и закрытые контуры, где важны координаты, confidence и воспроизводимая конфигурация.
Пользователю, который ждёт полноценный PDF-редактор с привычным GUI, готовым экспортом в DOCX/XLSX и обработкой многостраничных документов, RapidOCR в базовом виде подходит хуже. Здесь разумнее смотреть на коммерческий OCR/PDF-пакет или отдельную оболочку. Для задач исключительно просмотра документов RapidOCR вообще не заменяет Sumatra PDF.
RapidOCR стоит выбирать, когда OCR является компонентом собственной системы: локального сервиса, индексации сканов или приложения. Сильная сторона проекта — контроль моделей, runtime, координат и данных; слабая — необходимость самостоятельно организовать PDF-обвязку, экспорт и пользовательский интерфейс.