Surya OCR: возможности, установка, лицензия и работа с PDF

Surya OCR — не очередной настольный PDF-редактор, а набор моделей и Python-инструментов для распознавания документов. Актуальное поколение Surya 2 объединяет полноэкранное OCR, анализ структуры страницы, порядок чтения и распознавание таблиц в модели примерно на 650 млн параметров; отдельно поставляется компактная модель поиска текстовых строк. Такой профиль делает Surya интересной прежде всего разработчикам, исследователям и тем, кто строит локальный конвейер обработки PDF и сканов. При этом продукт не стоит путать ни с программой для чтения PDF, ни с облачной платформой Datalab: локальный пакет можно запускать самостоятельно, а hosted-платформа Datalab является отдельным сервисом.

ПараметрАктуальное состояние
ПродуктSurya OCR 2 / Python-пакет surya-ocr
РазработчикDatalab; автор и основной публичный представитель проекта — Vikas Paruchuri
Текущая версия пакета0.22.1, опубликована 20 июля 2026 года
Основные задачиOCR, анализ макета, порядок чтения, таблицы, поиск текстовых строк
ВходPDF, изображения, папки с PDF и изображениями
Основной выходJSON с текстом, HTML-фрагментами, геометрией блоков, метками структуры и оценками уверенности
Локальный интерфейсCLI и Python API; необязательное Streamlit-приложение
Лицензиякод Apache 2.0; веса модели — модифицированная AI Pubs OpenRAIL-M

Скачать Surya OCR

Бесплатно
В реестре российского ПО
Чистая установка

Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.

⬇ Скачать PDF Commander бесплатно

⬇ Скачать Surya OCR

Безопасный путь получения Surya — официальный пакет surya-ocr из PyPI либо исходный код из репозитория Datalab. На 12 сентября 2026 года PyPI показывает версию 0.22.1; тот же номер указан в актуальном pyproject.toml проекта. Пакет требует Python не ниже 3.10 и ниже 4.0. Это важное отличие от старых инструкций для Surya v1, где встречались Python 3.9 и иные ограничения зависимостей: для текущей ветки следует ориентироваться на документацию Surya 2, а не на форки и старые README.

У Surya нет официального «установщика для Windows» или автономного EXE, подобного обычным PDF-программам. Установка выполняется через Python: pip install surya-ocr. При первом реальном запуске потребуются модельные веса и рабочий inference-backend. Для NVIDIA разработчик документирует vLLM через Docker и NVIDIA Container Toolkit; для CPU и Apple Silicon — llama.cpp с исполняемым файлом llama-server. На macOS в README прямо приведён вариант установки llama.cpp через Homebrew.

Нужно различать четыре сущности. Первая — Python-пакет surya-ocr, который содержит CLI, Python API и управляющую логику. Вторая — модель Surya OCR 2 с весами, опубликованными Datalab, в том числе на Hugging Face. Третья — необязательная локальная веб-оболочка Streamlit, запускаемая командой surya_gui после установки дополнительных зависимостей. Четвёртая — коммерческая облачная платформа Datalab, где доступны собственные hosted-процессоры. Облачный сервис не требуется для локального использования Surya.

Что такое Surya OCR

Surya — проект Datalab для извлечения текста и структуры из страниц документов. В цитировании самого проекта фигурируют Vikas Paruchuri и команда Datalab. В мае 2026 года Datalab представила Surya OCR 2 как новое поколение: единая vision-language модель примерно на 650 млн параметров обслуживает OCR, анализ макета, порядок чтения и распознавание таблиц. Это не просто «движок букв»: модель должна вернуть структурированное представление страницы, где текст соотнесён с типами блоков и координатами.

Текущий статус проекта — активно поддерживаемый. Репозиторий продолжает получать изменения, а PyPI в июле 2026 года получил несколько последовательных выпусков 0.21.x, 0.22.0 и 0.22.1. Поэтому описывать Surya как эксперимент, остановленный на ранней версии, уже неверно. Одновременно важно не переносить на Surya 2 старые поля результата и параметры Surya v1: разработчик отдельно предупреждает, что схема вывода изменилась, например прежние text_lines уступили место blocks, а архитектура запуска теперь строится вокруг SuryaInferenceManager.

Позиционирование ближе к библиотеке и инфраструктурному компоненту, чем к пользовательской программе. Если задача — открыть PDF, листать страницы и читать уже существующий текст, удобнее использовать обычный просмотрщик. Если же нужно превратить скан в машиночитаемые данные, определить на странице таблицы, заголовки, подписи, формулы и последовательность чтения, Surya решает другую часть документного конвейера.

Хронология развития и поддержки

Первое поколение. Ранний Surya развивался как набор отдельных OCR-, detection-, layout- и table-моделей, а в публичных материалах долго фигурировало «90+ языков». Старые форки до сих пор содержат инструкции с Python 3.9, Transformers 4.36.2, отдельным LaTeX OCR и другими деталями, которые нельзя автоматически переносить на текущую версию.

Май 2026 года. Datalab объявила Surya OCR 2. Основные изменения — модель около 650 млн параметров, объединение полноэкранного OCR, layout, reading order и table recognition, отдельные backends vLLM и llama.cpp, возможность работы на CPU, GPU и Apple Silicon. В публичном сообщении разработчик привёл результат 83,3% на olmOCR-bench и внутренний многоязычный показатель 87,2% для набора из 91 языка.

Июль 2026 года. Линия пакетов дошла до 0.22.1. Актуальная документация уже описывает новый JSON-формат, серверный жизненный цикл, режим keep_server и единый inference manager. Для миграции с v1 разработчик прямо предлагает заменить FoundationPredictor на SuryaInferenceManager и учитывать изменения схем вывода.

Практический вывод из хронологии простой: найденный в поиске пример Surya нужно сверять с датой. Если пример использует старые классы, обязательный параметр langs, отдельную texify-модель или прежние поля text_lines, это может быть код для v1. Для новых интеграций безопаснее начинать с README текущего репозитория и метаданных актуального PyPI-пакета.

Основные функции Surya OCR

Полноэкранное OCR

Команда surya_ocr принимает изображение, PDF или папку с такими файлами. По умолчанию Surya 2 выполняет полноэкранное OCR и записывает results.json. Для каждого блока возвращаются тип, порядок чтения, HTML-содержимое, polygon, bbox, confidence и признаки ошибок. Таблицы могут представляться HTML-разметкой, а формулы — фрагментами <math> с KaTeX-совместимым LaTeX. Это структурированный промежуточный результат, а не готовый DOCX или отредактированный PDF.

Анализ макета и порядок чтения

surya_layout определяет структуру страницы и последовательность блоков. В текущей схеме встречаются Caption, Footnote, Equation, ListGroup, PageHeader, PageFooter, Picture, SectionHeader, Table, Text, Figure, Code, Form, TableOfContents, ChemicalBlock, Diagram, Bibliography и BlankPage. Для блока сохраняются координаты, позиция и confidence. Это особенно полезно на многоколоночных страницах, где сортировка строк только сверху вниз даёт неверный порядок.

Поиск текстовых строк

surya_detect — отдельная Torch-модель, не требующая VLM-backend. Она возвращает bounding boxes и polygons строк, confidence, вертикальные линии и границы страницы. Режим подходит, когда нужно локализовать текст без полного распознавания.

Распознавание таблиц

surya_table определяет строки и столбцы таблицы. В простом режиме ячейки выводятся как геометрические пересечения; полный режим может вернуть HTML и лучше учитывать объединённые ячейки и заголовки. Для заранее вырезанного изображения можно пропустить повторный поиск таблицы.

Математика

В Surya 2 формулы входят в общий OCR-поток и возвращаются в HTML внутри <math> с KaTeX-совместимым LaTeX. Это отличие от старых материалов по v1, где встречался отдельный LaTeX OCR-проход.

Python API и inference server

Python-код может использовать SuryaInferenceManager совместно с RecognitionPredictor, LayoutPredictor и TableRecPredictor. Один manager разделяется между предикторами, а клиент можно направить на уже запущенный OpenAI-совместимый endpoint через SURYA_INFERENCE_URL. Такой режим удобен, когда модель вынесена в отдельный процесс или контейнер.

Интерфейс и удобство использования

Основной «интерфейс» Surya — командная строка и API. Пользователь задаёт входной путь, при необходимости диапазон страниц и каталог результата, после чего получает JSON и, с параметром —images, визуализации распознанных блоков или строк. Для разработчика это прямолинейно; для человека, ожидающего привычные панели «Открыть», «Распознать», «Сохранить в Word», порог входа заметно выше.

Необязательный surya_gui запускает локальное Streamlit-приложение для интерактивной работы с изображениями и PDF. Оно ставится не в базовом наборе: документация предлагает дополнительно установить streamlit и pdftext. Это полезный способ посмотреть результат без написания кода, но его не следует описывать как полноценный настольный редактор. Streamlit-оболочка остаётся интерфейсом к тем же моделям и не превращает Surya в комплекс уровня FineReader или Acrobat.

Навигационная логика CLI разделена по задаче: surya_ocr для текста и структуры, surya_layout для макета, surya_detect для строк, surya_table для таблиц. Такая декомпозиция удобна в автоматизации, потому что не нужно запускать максимальный набор моделей ради одной простой операции. С другой стороны, новичку приходится понимать разницу между геометрическим detection, layout-анализом и собственно OCR.

Язык пользовательской оболочки как самостоятельная локализуемая характеристика почти не применим: команды, поля JSON, параметры окружения и документация ориентированы на английские имена. Для русскоязычного пользователя это не мешает распознаванию кириллицы как содержимого документа, но рабочая терминология и конфигурация остаются англоязычными.

Поддерживаемые форматы и совместимость

Официальная документация гарантирует три типа входа: изображение, PDF или папка с изображениями/PDF. Она не публикует исчерпывающий перечень расширений изображений в пользовательском README, поэтому при строгом обзоре не стоит обещать поддержку каждого формата, который теоретически умеет открыть Pillow. На практике файл должен быть декодируем текущими зависимостями проекта; для обмена лучше придерживаться распространённых PNG и JPEG, а для многостраничных документов — PDF.

PDF в Surya выступает источником страниц для распознавания, а не редактируемым контейнером. Пакет не заявляет функцию «сохранить обратно тот же PDF с поисковым текстовым слоем». Если именно это является целью, специализированный OCRmyPDF концептуально ближе: он ориентирован на создание OCR-слоя в PDF. Surya же отдаёт структурированные результаты, которые можно затем поместить в базу данных, индекс, HTML, собственный PDF-конвейер или систему извлечения полей.

Основной машинный формат результата — JSON. Для OCR-блоков внутри JSON содержится HTML; полный режим распознавания таблиц тоже способен вернуть HTML таблицы. Опционально Surya сохраняет размеченные изображения, что полезно для контроля координат. Экспорт в DOCX, XLSX, ODT или готовый searchable PDF не входит в задокументированный базовый функционал.

Совместимость на уровне интеграции хорошая: Python API подходит для собственного кода, а inference manager умеет подключаться к уже запущенному OpenAI-совместимому endpoint. Это не означает совместимость с OpenAI как облачным сервисом по умолчанию; речь идёт о протоколе backend-сервера, который может быть локальным.

В рамках экосистемы sumatra-pdf.com полезно отделять OCR от дальнейшей работы с документом. Для ручного редактирования и конвертации распознанного PDF логичнее смотреть на ABBYY FineReader или Adobe Acrobat Pro. Для бесплатных классических OCR-подходов можно сопоставить Surya с CuneiForm, учитывая возраст и иной технологический уровень последнего.

Производительность и стабильность

Datalab публикует собственные ориентиры, но их нельзя превращать в обещание для любого компьютера. Для Surya OCR 2 разработчик указывает около 5 страниц в секунду на RTX 5090; в анонсе приведён более конкретный тест 5,35 страницы/с при 128 параллельных запросах. Этот результат получен в определённой конфигурации и отражает throughput работающего inference-сервера, а не время «от запуска команды до готового файла» на обычном ПК.

На скорость влияют backend, параллелизм и DPI. Документация прямо советует для vLLM подбирать max-num-seqs и max-num-batched-tokens, а для llama.cpp согласовывать клиентский SURYA_INFERENCE_PARALLEL с параметром —parallel сервера. Понижение DPI с 192 до 96 приводится как способ увеличить throughput ценой потенциального влияния на точность. Поэтому «быстрее» не всегда означает «лучше»: мелкий шрифт и сложная геометрия могут потребовать более высокого разрешения.

Есть заметная стоимость старта. По умолчанию каждая CLI-команда поднимает VLM-сервер и завершает его после работы, поэтому серия surya_ocr → surya_layout → surya_table повторно тратит время на запуск и, на GPU, загрузку модели. Параметр —keep_server оставляет backend активным; следующие команды присоединяются к нему. Для пакетной обработки это один из самых полезных параметров, потому что исключает лишние перезапуски.

Официально зафиксированное ограничение: Surya специализируется на OCR документов, а фотографии и естественные сцены не являются целевой областью. Для проблемных сканов разработчик рекомендует увеличивать изображение, если текст слишком мелкий, либо снижать чрезмерное разрешение примерно до ширины не более 2048 пикселей, а для старых и размытых страниц применять бинаризацию, выравнивание и другую предварительную обработку.

Стабильность следует оценивать как стабильность инженерного инструмента, а не закрытого desktop-приложения. У проекта есть быстрый цикл выпусков, модельный сервер, Docker/llama.cpp, Torch и другие зависимости. Обновление одного компонента способно изменить поведение всего конвейера, поэтому для производственной системы разумно фиксировать версии окружения и проверять результат на собственном наборе документов.

Карта критических зависимостей

ЗависимостьЗачем нужнаЧто происходит при отсутствии
Python 3.10–3.xУстановка пакета и CLIsurya-ocr текущей ветки не устанавливается в поддерживаемой конфигурации
Модельные весаOCR, layout и table recognitionпервый запуск VLM-задач не сможет начать инференс
vLLM + Docker + NVIDIA Container ToolkitДокументированный backend для NVIDIAнужно выбрать другой backend или подготовить GPU-окружение
llama-server из llama.cppCPU и Apple SiliconVLM-задачи не запустятся на этом пути
Torchв том числе отдельная модель text detectionsurya_detect и части runtime недоступны
Интернет при первом развертыванииполучение пакетов и весов, если они не размещены локально заранеенужен предварительно заполненный кэш или офлайн-поставка зависимостей

Для конфиденциальности важен именно последний выбор архитектуры. Сам Surya можно эксплуатировать локально: документ обрабатывается вашим inference-сервером, без необходимости отправлять страницы в Datalab. Но если SURYA_INFERENCE_URL направлен на удалённый сервер, изображения фактически будут передаваться туда. Поэтому утверждение «Surya всегда офлайн» некорректно; корректнее говорить, что локальная обработка поддерживается и может быть полностью контролируемой после подготовки зависимостей.

Лицензирование и версии

У Surya разделены лицензии кода и весов. Код текущего репозитория лицензирован по Apache License 2.0. Веса Surya OCR 2 распространяются по модифицированной AI Pubs OpenRAIL-M. README прямо формулирует базовое правило: веса бесплатны для исследований, личного использования и стартапов в пределах установленного порога финансирования/выручки, а более широкий коммерческий сценарий требует отдельной коммерческой лицензии.

Текст MODEL_LICENSE уточняет ограничения. Коммерческое использование запрещено, если связанная организация получила более 5 млн долларов валовой выручки за предыдущий год или привлекла более 5 млн долларов совокупного финансирования, за исключением личного или исследовательского использования. Отдельно запрещается использование в продукте или сервисе, конкурирующем с продуктами лицензиара. Поэтому называть модель «Apache 2.0 целиком» нельзя: Apache относится к программному коду, но не снимает условий лицензии весов.

Локальный пакет не имеет пробного периода, счётчика страниц или обязательной регистрации. Однако юридическое право использовать веса зависит от сценария и статуса организации. Для компании, приближающейся к порогам лицензии, безопасно не полагаться на краткое описание в README, а изучить полный файл MODEL_LICENSE и договориться с Datalab о коммерческих условиях.

Отдельно существует hosted-платформа Datalab. Её Free, Team и Enterprise планы, лимиты и тарифы относятся к облачному API и другим процессорам Datalab, а не являются «ценой Surya OCR 0.22.1». Для обзора локального продукта важно не смешивать эти модели распространения. Бесплатное локальное использование в разрешённых лицензией случаях и облачный pay-as-you-go — разные варианты.

Системные требования

Общие требования

Метаданные пакета 0.22.1 требуют Python версии не ниже 3.10 и ниже 4. Среди прямых зависимостей указаны Transformers не ниже 5.12.1, PyTorch не ниже 2.7 и ниже 3, torchvision не ниже 0.20 и ниже 1, Pillow ветки 10.x, pypdfium2 не ниже 5.10.1 и ниже 6, а также ряд служебных библиотек. Ручная подмена этих диапазонов увеличивает риск несовместимости.

Surya OCR 2 использует модель около 650 млн параметров. Репозиторий весов в формате Safetensors показывает файл порядка 1,37 ГБ; GGUF-вариант включает примерно 1,27 ГБ модели и отдельный multimodal-projector около 205 МБ. Это только веса, без Python-окружения, Docker-образов и кэшей, поэтому свободного места нужно больше указанного размера модели.

NVIDIA GPU

Официальный путь для NVIDIA строится на vLLM. README требует Docker и NVIDIA Container Toolkit. Конкретный минимальный объём VRAM для Surya 2 разработчик в основной инструкции не фиксирует, поэтому придумывать порог в 6, 8 или 12 ГБ нельзя. Производительный ориентир на RTX 5090 показывает возможности верхнего класса, а не минимальные требования.

CPU и Apple Silicon

Для CPU и Apple Silicon используется llama.cpp/llama-server. На macOS разработчик приводит установку через brew install llama.cpp; на других системах предлагает взять релиз llama.cpp. Datalab отдельно заявляет, что Surya OCR 2 способен работать на CPU, GPU и MPS/Apple Silicon. Формальный минимум оперативной памяти в актуальном README не опубликован.

Windows

У Python-пакета нет отдельной Windows-редакции с подтверждённым графическим установщиком. Основная документация описывает backends в терминах Docker для NVIDIA и llama.cpp для CPU/Apple Silicon, но не публикует пошаговую нативную Windows-инструкцию. Поэтому обзор не обещает «официальную поддержку Windows одним кликом». Для корпоративного развёртывания на Windows разумно сначала проверить выбранный backend и контейнерную среду на целевой инфраструктуре.

Преимущества и недостатки Surya OCR

Плюсы и минусы

Структурированное OCR. Surya возвращает не только текст, но и типы блоков, порядок чтения, координаты и confidence.

Одна модель для нескольких задач. В Surya 2 полноэкранное OCR, layout и table recognition объединены в общий VLM.

Работа с многоязычными документами. Публичная оценка разработчика охватывает 91 язык; модель ориентирована на широкий набор письменностей.

Локальное развёртывание. Можно держать inference у себя через vLLM или llama.cpp и не отправлять документы в облачный сервис Datalab.

Автоматизация. CLI, Python API, JSON и подключение к отдельному inference endpoint удобны для пакетных систем.

Таблицы и математика. В выводе есть структурные таблицы, а математические выражения интегрированы в общий HTML-результат.

Отдельный быстрый детектор строк. Когда полный VLM не нужен, можно использовать только text detection.

Минусы

Не настольная PDF-программа. Нет привычного редактора страниц, панели экспорта в Word и готового searchable-PDF workflow.

Сложнее установка. Помимо pip-пакета нужен подходящий inference backend, а для NVIDIA — Docker и NVIDIA Container Toolkit.

Лицензия весов не Apache 2.0. Коммерческие ограничения требуют проверки MODEL_LICENSE и могут исключать часть компаний или конкурирующих сервисов.

Зависимость от модельного сервера. OCR/layout/table_rec не работают без vLLM или llama.cpp; только detection является автономной Torch-моделью.

Нет официального фиксированного минимума RAM/VRAM. Планирование слабого оборудования требует собственного пилота.

Фотографии не являются целевым сценарием. Проект специально оптимизирован под документы.

Быстро меняющаяся API-схема. Переход v1 → v2 уже потребовал изменений классов и структуры JSON.

Сравнение с аналогами

ИнструментГлавная задачаИнтерфейсЛокальноСильная сторона
Surya OCR 2OCR + layout + таблицыCLI, Python, StreamlitДаструктурированный вывод сложных страниц
Tesseract 5OCR изображенийCLI/APIДаApache 2.0, более 100 языков
PaddleOCROCR и document AICLI/APIДаPP-OCRv5 и модели для 106 языков
OCRmyPDFOCR-слой в PDFCLIДаготовый searchable PDF
ABBYY FineReader PDFOCR + PDFнастольный GUIДаготовый пользовательский workflow

Tesseract подходит для классического OCR, когда важны зрелость, простая лицензия движка и большое число языков. Актуальная ветка 5 поддерживает UTF-8, более 100 языков и вывод TXT, hOCR, PDF, TSV, ALTO и PAGE. Сам движок работает с изображениями, а PDF обычно требует внешней подготовки.

PaddleOCR ближе к Surya по классу document-AI-инструментов. PP-OCRv5 публикует поддержку 106 языков через набор языковых моделей. На практике выбор зависит от стека, требований к layout и качества на собственных документах.

OCRmyPDF прямее решает задачу «сделать сканированный PDF доступным для поиска»: он строит PDF-процесс вокруг Tesseract и сохраняет результат в PDF. Surya вместо этого отдаёт JSON/HTML и геометрию, что лучше для последующего анализа данных.

ABBYY FineReader PDF ориентирован на пользователя, которому нужны OCR, редактирование и конвертация в одном GUI. На официальной странице в сентябре 2026 года Standard для Windows указан по 99 долларов в год, Corporate — 165 долларов, версия для Mac — 69 долларов. Это иной класс продукта: меньше инженерной свободы, но меньше ручной сборки конвейера. На сайте также есть обзор ABBYY PDF Transformer.

Место относительно Sumatra PDF. Прямого соперничества нет. Sumatra PDF прежде всего читает документы на Windows. В документации предрелизной ветки 3.7 появились дополнительные инструменты конвертации и извлечения, но OCR-форматы команды draw отмечены как disabled. Surya разумно использовать как внешний этап распознавания, а Sumatra — для просмотра исходного или подготовленного PDF. Для ручной правки результата подойдут, например, PDF-XChange Editor или PDF24 Creator.

Инструкция по установке

Базовая установка пакета

Шаг 1. Установите Python 3.10 или новее в пределах ветки 3.x.

Шаг 2. Создайте отдельное виртуальное окружение, чтобы изолировать Torch, Transformers и другие зависимости.

Шаг 3. Выполните pip install surya-ocr.

Шаг 4. Подготовьте backend: vLLM для NVIDIA либо llama.cpp для CPU/Apple Silicon. Для NVIDIA нужны Docker и NVIDIA Container Toolkit; на macOS документация предлагает brew install llama.cpp.

Шаг 5. Запустите surya_ocr путь_к_файлу.pdf. При первом запуске убедитесь, что модельные веса доступны для загрузки или уже находятся в локальном кэше.

Шаг 6. Проверьте results.json. Для визуального контроля добавьте —images.

Для локальной интерактивной оболочки отдельно устанавливаются streamlit и pdftext, после чего запускается surya_gui. Это необязательный режим; CLI и Python API остаются основными интерфейсами.

Первый запуск на многостраничном PDF

Параметр —page_range позволяет обработать отдельную страницу, список или диапазоны вроде 0,5-10,20. До полного архива полезно проверить несколько характерных страниц: обычный текст, таблицу, формулу и многоколоночный макет.

Обновление с запасным выходом

Шаг 1. Зафиксируйте текущую версию окружения и контрольный results.json.

Шаг 2. Установите новую версию в отдельное окружение.

Шаг 3. Прогоните тот же набор и сравните поля, координаты, типы блоков и HTML.

Шаг 4. Переключайте рабочий pipeline только после проверки; при несовместимости вернитесь к прежнему окружению.

Такой порядок важен после v1 → v2, где изменились классы и схема JSON. Отдельной официальной процедуры удаления README не публикует. Если Surya изолирована в виртуальном окружении, перед его удалением сохраните результаты, остановите backend и убедитесь, что общий кэш весов не нужен другим проектам.

Практические кейсы

Архив сканированных договоров

Цель. Получить текст и координаты. Подготовка. Выберите несколько PDF разного качества. Шаги. Запустите surya_ocr на тестовых страницах, сохраните results.json и при необходимости размеченные изображения. Индексируйте HTML блока вместе с bbox и номером страницы. Проверка. Сопоставьте несколько найденных фраз с правильными блоками. Ограничение. Surya не добавляет текстовый слой обратно в PDF.

Многоколоночная статья

Цель. Восстановить порядок чтения. Подготовка. Возьмите страницу с двумя колонками, подписью и рисунком. Шаги. Выполните surya_layout с —images, затем OCR. Проверка. Сверьте position/reading_order и убедитесь, что заголовки и подписи не смешались с основным текстом. Ограничение. Layout вероятностный, поэтому критические макеты требуют выборочной проверки.

Таблица из отчёта

Цель. Извлечь структуру таблицы. Подготовка. Выберите страницу с объединёнными заголовками. Шаги. Запустите surya_table; для сложной структуры оцените полный режим с HTML. Проверка. Сверьте число строк, столбцов и объединения. Ограничение. Простые геометрические пересечения не заменяют семантическую проверку сложных colspan/rowspan.

Научный PDF с формулами

Цель. Сохранить текст и формулы в одном потоке. Шаги. Выполните полноэкранное OCR и извлеките HTML блоков. Проверка. Убедитесь, что формулы находятся внутри <math> и стоят в правильном месте абзаца. Ограничение. Критические выражения нужно сверять с оригиналом.

Локальный контур для конфиденциальных документов

Цель. Не отправлять страницы во внешний OCR-сервис. Подготовка. Заранее установите backend и веса. Шаги. Запускайте vLLM/llama.cpp в своей инфраструктуре и не задавайте удалённый SURYA_INFERENCE_URL. Проверка. Контролируйте адрес endpoint и сетевой трафик. Ограничение. Первичное получение пакетов и весов требует внешнего доступа, если их не доставить заранее.

Навигатор по сбоям

OCR не запускается, а detection работает. Проверьте vLLM/llama-server: detection не требует VLM, остальные основные задачи требуют.

Команды долго стартуют. Используйте —keep_server, чтобы не загружать модель заново.

Мелкий текст пропадает. Увеличьте разрешение; для чрезмерно большого входа попробуйте уменьшение примерно до рекомендуемой в troubleshooting ширины.

Старый код падает. Проверьте FoundationPredictor, text_lines и другие элементы API v1.

Detection расходует слишком много VRAM. Уменьшите DETECTOR_BATCH_SIZE.

Строки объединяются неверно. Проверьте DETECTOR_BLANK_THRESHOLD и DETECTOR_TEXT_THRESHOLD; второй должен быть выше первого.

Контроль перед сохранением и передачей

Сверить обработанный диапазон и число страниц.

Выборочно проверить блоки с низкой confidence.

Отдельно проверить таблицы, формулы, сноски и многоязычные участки.

Не терять соответствие bbox исходному масштабу страницы.

Фильтровать HTML согласно правилам принимающей системы.

Не выдавать JSON за готовый PDF или Word-файл.

Для последующей ручной правки текст можно перенести в офисный редактор; например, на сайте есть обзор LibreOffice Writer. Этот этап лучше отделять от OCR, чтобы не смешивать ошибки распознавания и финальной вёрстки.

Часто задаваемые вопросы

Surya OCR бесплатна?

Код — Apache 2.0, но веса имеют отдельную модифицированную OpenRAIL-M-лицензию. Личное и исследовательское использование разрешено на условиях лицензии; коммерческим организациям нужно проверить финансовые пороги и запрет конкурирующих сервисов.

Нужна ли учётная запись Datalab?

Для локального PyPI-пакета регистрация Datalab не заявлена как требование. Аккаунт нужен для отдельной hosted-платформы.

Работает ли Surya без интернета?

После доставки зависимостей, backend и весов inference можно держать локально. При первой установке сеть обычно нужна, если кэш не подготовлен заранее. Удалённый SURYA_INFERENCE_URL, наоборот, означает передачу страниц на заданный сервер.

Можно ли получить готовый searchable PDF?

Базовый Surya такого экспорта не заявляет: результатом служат JSON, HTML и координаты. Для OCR-слоя внутри PDF проще использовать OCRmyPDF или собственный этап сборки.

Есть ли русский язык?

Да. В опубликованной разработчиком 91-язычной оценке русский присутствует отдельно и имеет результат 88,8%. Это показатель внутреннего теста Datalab, а не гарантия точности на любом русском скане.

Нужно ли указывать язык?

В актуальной команде Surya 2 обязательного параметра langs нет. Старые команды с таким параметром относятся к предыдущему поколению и требуют перепроверки.

Поддерживается ли рукописный текст?

Datalab включает handwriting в заявленные улучшения Surya 2 и публикует пример рукописных заметок. Реальное качество зависит от почерка, контраста и разрешения.

Что выбрать: CPU или GPU?

NVIDIA с vLLM ориентирована на высокий throughput; CPU/Apple Silicon через llama.cpp дают локальную работу без NVIDIA. Формального минимума RAM/VRAM в README нет.

Можно ли использовать Surya как PDF-ридер?

Нет. Для чтения, навигации и печати удобнее viewer; Surya предназначена для распознавания и анализа страниц.

Чем surya_gui отличается от Datalab?

surya_gui — локальная Streamlit-оболочка. Datalab hosted platform — отдельный облачный сервис с аккаунтами, тарифами и API.

Вывод

Surya OCR 2 подходит тем, кому нужен современный локально разворачиваемый OCR-компонент с анализом структуры, порядком чтения, таблицами и координатами. Особенно логично использовать его в Python-конвейерах, поисковых индексах, RAG-подготовке, архивах сканов и системах, где результат должен быть структурированным JSON/HTML, а не только строкой текста.

Продукт хуже подходит пользователю, который хочет установить обычную Windows-программу, перетащить PDF, исправить распознавание мышью и сохранить Word или searchable PDF. Для такого сценария проще FineReader, Acrobat или другой настольный OCR/PDF-комплекс. Если нужен исключительно поисковый слой в PDF, OCRmyPDF решает задачу прямее; если важны простота лицензии и классическое OCR изображений, Tesseract остаётся сильной базой.

Главные условия успешного внедрения Surya — не путать актуальное поколение с v1, заранее выбрать backend, зафиксировать окружение и внимательно проверить лицензию весов. В таком контексте Surya выглядит не заменой Sumatra PDF, а дополняющим инструментом: Surya извлекает содержание и структуру из скана, а viewer, редактор или собственное приложение уже используют полученные данные дальше.


Ваш адрес email не будет опубликован. Обязательные поля помечены *