Содержание
  1. Карта выбора под явные ограничения
  2. Ручной эталон и фактический выход модели
  3. Положительная и отрицательная пробы
  4. Продуктовый путь, API и условия доступа
  5. Чего не обещать при выборе
  6. Согласование scope, примера и критериев приёмки
  7. Частые вопросы
Подборки и сравнения

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

7 ноября 2026 · 10 минут чтения

Нейросети для распознавания формул: как выбрать под свой вход — облачный Mathpix image OCR, локальный Pix2Text или актуальный путь Surya. Ниже карта выбора, учебный вход с ручными эталонами, положительная и отрицательная пробы, условия доступа и критерии приёмки.

Карта выбора под явные ограничения

Выбор начинается с типа входа и способа доступа. Документация Mathpix описывает облачный API v3/text: изображение с математикой, текстом, таблицами или химическими схемами уходит на сервер и возвращается структурированным содержимым в Mathpix Markdown, LaTeX, HTML или других форматах. Для этого нужны app_id и app_key. README Pix2Text описывает свободный открытый Python-инструмент, который заявляет себя как альтернатива Mathpix и распознаёт разметку, таблицы, изображения, текст и формулы, собирая всё в Markdown; целый PDF тоже конвертируется в Markdown. README Surya описывает модель на 689M параметров, которая выполняет разметку страницы, OCR и распознавание таблиц одним VLM.

Матрица выбора выглядит так:

Вход и условие Подходящий путь Что проверить до старта
Изображение с математикой, доступ к облаку и ключу Mathpix image OCR Наличие app_id и app_key, формат ответа
Страница со смешанным текстом, формулами и таблицами, локальный конвейер Pix2Text Нужные модели MFD и MFR, установку пакета
Локальный актуальный путь наследника Texify Surya 2.5 full-page OCR Наличие inference-бэкенда, чтение blocks[].html
Историческое сравнение Texify Статус deprecated в его README

Условия пересекаются, поэтому универсального победителя назначать не стоит. README Texify прямо сообщает, что проект deprecated, а функциональность перенесена в Surya и улучшена новой моделью. Старую команду standalone Texify к Surya переносить не нужно: в маршруте Surya 2.5 отдельного прохода LaTeX OCR нет, формулы приходят внутри общего HTML-вывода.

Для Pix2Text README называет версии моделей: обновление V1.1.4 от 2025.07.25 перевело модели Mathematical Formula Detection и Mathematical Formula Recognition на версию 1.5, и теперь mfd-1.5 и mfr-1.5 используются в конфигурациях по умолчанию. Установка базового пакета выполняется командой pip install pix2text, а для языков за пределами английского и упрощённого китайского README предлагает pip install pix2text[multilingual]. Текстовый движок Pix2Text поддерживает более 80 языков, включая русский; для английского и упрощённого китайского используется CnOCR, для остальных — EasyOCR.

Ручной эталон и фактический выход модели

Разделение двух вещей экономит время на приёмке. Ручной эталон — это то, что вы написали сами и считаете правильным. Фактический выход — то, что вернула модель на вашем изображении. Смешивать их нельзя: эталон задаёт критерий, выход ему соответствует или нет.

Учебный визуальный вход для этой статьи: выражение x²+2x+1=(x+1)² и отдельная дробь, у которой числитель a+b, а знаменатель c. Ручные LaTeX-эталоны для него:

LATEX2 строки
x^2 + 2x + 1 = (x+1)^2
\frac{a+b}{c}

Это собственный учебный макет. OCR на нём редакцией не выполнялся. Никаких измерений точности, скорости или BLEU/WER здесь нет. Такой вход нужен, чтобы заранее договориться, что считать правильным ответом, и уже потом сравнивать с ним ответ модели.

Отдельно стоит различать отображение LaTeX и математическую эквивалентность. Эквивалентные пробелы и замена \frac на \dfrac смысл сохраняют: запись \dfrac{a+b}{c} не отклоняется только за другое командное слово, если рендер и смысл сохранены. Потеря группировки дроби — уже ошибка. Если модель вернула a+\frac{b}{c} вместо \frac{a+b}{c}, это неверный ответ, даже когда обе записи выглядят похоже.

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

Положительная и отрицательная пробы

Приёмка строится на двух пробах. Положительная подтверждает, что верный ответ принимается. Отрицательная подтверждает, что неверный ответ отклоняется. Без второй пробы проверка пропускает ошибки.

Заполненный oracle приёмки для положительного случая: в обеих формулах сохранены все переменные, числа, коэффициенты и операции с точностью до математически эквивалентной записи; степени и скобки сохранены; знак равенства не потерян; числитель a+b целиком стоит над c. Ответ принимается после сверки обеих формул целиком. Дополнительная отрицательная проба: x^2 + 3x + 1 = (x+1)^2 отклоняется за замену коэффициента 2x на 3x, даже при сохранённых степенях, скобках и равенстве.

Отрицательная проба использует контрпример a+\frac{b}{c}. При a=2, b=4, c=2 эта запись даёт 4, тогда как \frac{a+b}{c} даёт 3. Разница в единицу показывает, что группировка дроби потеряна и ответ нужно отклонить. Такой контрпример удобен тем, что подстановка чисел проверяется в уме и не требует запуска модели.

Порядок проверки для каждого изображения:

  1. Зафиксировать исходный PNG и ручной эталон в LaTeX.
  2. Получить сырой ответ модели и сохранить его без правок.
  3. Отрендерить ответ и сравнить с эталоном по четырём условиям oracle.
  4. Прогнать отрицательный контрпример и убедиться, что он отклоняется.
  5. Записать расхождение, если оно есть, вместе с исходным изображением.

Частая ошибка — принимать ответ по внешнему виду рендера. Формула может отрисоваться похоже и при этом содержать потерянную группировку, которая проявится только на числах. Подстановка значений из контрпримера выявляет это быстрее, чем визуальное сличение.

Продуктовый путь, API и условия доступа

У каждого варианта свой способ доступа, и склеивать их нельзя. Документация Mathpix описывает отправку изображения по URL или файлом на v3/text; при отправке файла все опции передаются строкой JSON в параметре options_json. Аутентификация выполняется заголовками app_id и app_key. Ответ содержит поля text, html и массив data с представлениями asciimath и latex, если они запрошены через formats и data_options. Для полноразмерной страницы документация предлагает включить enable_document_layout.

Pix2Text работает как Python-пакет. README указывает, что для тех, кто не знаком с Python, есть бесплатный веб-сервис, куда можно загрузить изображение и получить результат разбора; веб-версия использует последние модели. Там же назван суточный лимит веб-сервиса — 10 000 символов на аккаунт, и просьба не делать массовых вызовов API. Из-за ограничений железа онлайн-сервис поддерживает упрощённый китайский и английский языки, а другие языки доступны в демо.

Surya требует запущенного inference-бэкенда. README описывает установку pip install surya-ocr и два варианта бэкенда: vllm для NVIDIA GPU и llama.cpp для CPU и Apple Silicon. Менеджер inference запускает сервер автоматически при первом использовании, а через SURYA_INFERENCE_URL можно подключиться к уже работающему серверу. Результат OCR читается из blocks[].html, формулы находятся в тегах <math>…</math> с KaTeX-совместимым LaTeX.

Лицензии различаются. README Surya сообщает, что код лицензирован под Apache 2.0, а веса модели используют модифицированную лицензию AI Pubs Open Rail-M: свободно для исследований, личного использования и стартапов с финансированием или выручкой до 5 млн долларов. Для более широкого коммерческого лицензирования весов README направляет на страницу цен. Это ограничение стоит проверить под свою задачу до внедрения.

Чего не обещать при выборе

Точность, скорость, приватность и юридическая достаточность зависят от входа, конфигурации и вашей задачи. README Surya приводит собственные замеры: 85.9 на OmniParseBench и 83.7% на olmOCR-bench, а также пропускную способность 4.5 страницы в секунду на одной H100 при 192 DPI. Это цифры из документации проекта, и они не заменяют проверку на ваших документах.

README Texify перечисляет ограничения, которые полезно держать в голове при оценке любого OCR: качество зависит от кадрирования, модель обучена в основном на изображениях 96 DPI и максимум 420×420, очень широкие или высокие изображения работают хуже, а вывод представляет собой Markdown со встроенным LaTeX. Для Surya README отдельно указывает, что модель специализирована под документы, и качество на фотографиях и естественных сценах не является её целью.

Приватность зависит от маршрута. Облачный API отправляет изображение на сервер провайдера. Локальный конвейер обрабатывает данные на вашем железе. При выборе учитываются требования к данным и качество распознавания. Юридическую достаточность лицензии и обработки данных стоит согласовать с теми, кто отвечает за это в вашем проекте.

Согласование scope, примера и критериев приёмки

Перед запуском стоит письменно зафиксировать четыре вещи: scope, пример, схему данных и критерии приёмки. Scope описывает, какие входы вы обрабатываете — изображения с формулами, страницы со смешанным содержимым или целые PDF. Пример — это ваш учебный вход с ручным эталоном. Схема данных описывает, какие поля вы читаете из ответа: text, html, data или blocks[].html. Критерии приёмки — это условия oracle и отрицательная проба.

Промпт ниже помогает согласовать эти пункты с коллегами и зафиксировать договорённости в одном тексте. Его можно скопировать и заполнить под свой проект.

ТЕКСТ26 строк
Помоги согласовать приёмку распознавания формул для проекта [название проекта].

Контекст:
- Тип входа: [изображение с формулой / страница со смешанным текстом / PDF]
- Выбранный путь: [Mathpix image OCR / Pix2Text / Surya 2.5]
- Способ доступа: [облачный API с ключом / локальный конвейер]

Учебный вход:
- Формула 1: x^2 + 2x + 1 = (x+1)^2
- Формула 2: \frac{a+b}{c}

Критерии приёмки:
1. В обеих формулах сохранены все переменные, числа, коэффициенты и операции с точностью до математически эквивалентной записи.
2. Скобки x+1 присутствуют обе.
3. Знак равенства не потерян.
4. Числитель a+b целиком стоит над c.

Отрицательная проба:
- Запись a+\frac{b}{c} при a=2, b=4, c=2 даёт 4, а \frac{a+b}{c} даёт 3.
- Такой ответ отклоняется.

Схема данных:
- Читаем поля: [перечислить поля ответа]
- Сохраняем: исходный PNG, сырой ответ, отрендеренную формулу.

Собери из этого чек-лист приёмки и список вопросов, которые нужно закрыть до запуска.

В квадратных скобках подставьте свои значения: название проекта, тип входа, выбранный путь и поля ответа. Если вы работаете с Surya, в схеме данных укажите blocks[].html. Если с Mathpix, перечислите text, html и data. Для Pix2Text укажите формат Markdown, который возвращает пакет.

Вариации той же задачи:

  • Чек-лист приёмки для одного типа входа без сравнения вариантов.
  • Список вопросов по лицензиям и обработке данных для юридической проверки.
  • Схема хранения трёх артефактов прогона для последующей перепроверки.
  • План пилотного прогона на небольшой выборке ваших документов.
  • Шаблон отчёта о расхождении между эталоном и ответом модели.

Частые вопросы

Чем Mathpix отличается от Pix2Text и Surya?

Mathpix — облачный API: изображение уходит на сервер провайдера, ответ приходит в структурированном виде. Pix2Text — открытый Python-пакет, который работает локально и собирает текст, формулы и таблицы в Markdown. Surya — модель на 689M параметров, выполняющая разметку, OCR и таблицы одним VLM через локальный inference-бэкенд.

Что делать со старым Texify?

README Texify сообщает, что проект deprecated, а функциональность перенесена в Surya и улучшена новой моделью. Старую команду standalone Texify к Surya переносить не нужно. Texify остаётся в сравнении как исторический путь с честным статусом.

Как проверить, что формула распознана правильно?

Зафиксируйте ручной эталон в LaTeX, получите сырой ответ модели и отрендерите его. Сверьте обе формулы целиком: переменные, числа, коэффициенты, операции, степени, скобки, равенство и группировку дроби. Допускайте математически эквивалентную запись. Отрицательные пробы должны отклонять потерю группировки дроби и замену коэффициента 2x на 3x.

Где формулы в выводе Surya 2.5?

README Surya указывает, что результат читается из blocks[].html, а формулы находятся в тегах <math>…</math> с KaTeX-совместимым LaTeX. Отдельного прохода LaTeX OCR в этом маршруте нет: формулы приходят внутри общего HTML-вывода страницы.

Можно ли использовать Surya в коммерческом проекте?

Код Surya лицензирован под Apache 2.0. Веса модели используют модифицированную лицензию AI Pubs Open Rail-M: свободно для исследований, личного использования и стартапов с финансированием или выручкой до 5 млн долларов. Для более широкого коммерческого использования README направляет на страницу цен.

Читайте также

3 материала