PaddleOCR VL — это компактная модель из семейства PaddleOCR для разбора документов целиком: она находит на странице текст, таблицы, формулы, графики и печати, а результат отдаёт в виде размеченного текста. Для скана с одной колонкой текста хватает обычного PaddleOCR, а VL оправдывает себя там, где страница собрана из блоков, вложенных таблиц и диаграмм. Применять её в рабочем процессе можно, если каждый результат сохраняет ссылку на исходную страницу и проходит выборочную сверку человеком.
Когда нужна VL
PaddleOCR-VL построена как модель, которая понимает структуру страницы, а обычный PaddleOCR читает строки текста. Сложный документ с таблицами и блоками отдают этой модели, а простые сканы оставляют обычной версии.
По описанию в репозитории PaddleOCR, VL-модель рассчитана на разбор документов: она распознаёт текст, таблицы, формулы, графики и печати, поддерживает больше сотни языков, включая кириллицу, и экспортирует результат в Markdown, JSON и DOCX. В описании модель названа компактной, около 0,9 млрд параметров; актуальной в README значится версия 1.6. Это значит, что при подходящей видеокарте её запускают на своём оборудовании, и документы остаются в вашем контуре.
Обычный PaddleOCR, согласно тому же описанию, ориентирован на распознавание текста на изображениях и сканах. Для простых страниц обычно хватает его. Разница заметна на странице со сложной раскладкой: таблица с объединёнными ячейками, текст в две колонки с врезкой, схема с подписями. Строковый подход собирает такую страницу в кашу, а модель с пониманием раскладки сохраняет порядок блоков.
Общая картина распознавания счетов и актов разобрана в статьях про распознавание счетов и актов и про OCR для сканов. Здесь речь о другом: как понять, нужна ли вам именно VL-модель, и как это доказать на своих документах.
Условный пример: бухгалтерия получает от поставщиков спецификации, где в одной таблице идут позиции, единицы измерения и примечания в сносках. Обычное распознавание выдаёт строки в перепутанном порядке, и оператору приходится собирать таблицу руками. VL-модель возвращает таблицу как структуру, и сверка идёт легче. Это гипотеза для проверки на выборке, а вывод о выигрыше делают только после неё.
Эталонная выборка
Решение о выборе модели принимают по своим документам. Соберите выборку из тридцати-пятидесяти страниц, где есть и лёгкие, и самые трудные случаи: размытые сканы, повёрнутые страницы, таблицы на несколько листов, документы с печатью. Выборка должна отражать реальный поток вместе с неудобными образцами. Персональные данные в тестовых копиях закройте или замените.
- Для каждой страницы человек вручную составляет эталон: таблицы в виде строк и столбцов, ключевые поля, порядок блоков.
- Прогоните выборку через обычный PaddleOCR и через VL-модель с одинаковыми входными файлами и одним разрешением.
- Сравните результат с эталоном по таблицам, ключевым полям и порядку блоков отдельно, без одной общей оценки.
- Выпишите типичные ошибки каждой модели: потерянные ячейки, слипшиеся колонки, перепутанные цифры.
- Зафиксируйте версию модели, настройки и дату прогона рядом с результатами.
Единой цифры точности для всех документов нет, и любое обещание высокой точности без вашей выборки остаётся словами. Результаты на открытых наборах из репозитория показывают класс модели, но ваш поток сканов от поставщиков может вести себя иначе. Выборку обновляйте, когда меняется состав документов.
Запуск и вывод
Установку и параметры берите из документации репозитория для выбранной версии: набор зависимостей и требования к видеокарте меняются между релизами, и пересказ из статьи устареет раньше, чем вы начнёте. Последнее изменение в репозитории датировано серединой сентября 2026 года, лицензия указана как Apache-2.0. Для внутреннего использования серьёзных препятствий в лицензии ждать вряд ли стоит, но текст прочитайте сами.
Выход модели удобнее всего получать в JSON и Markdown одновременно. JSON подходит скрипту: он читает блоки и таблицы как структуру. Markdown читает человек, когда сверяет страницу с результатом. DOCX пригодится, если разобранный документ нужно передать юристу или бухгалтеру для правок. Сохраняйте все выходы под одним идентификатором страницы.
Дальше работает скрипт. Он решает, какие поля идут в учётную систему, проверяет суммы арифметикой и сверяет реквизиты со справочником. Модель только превращает картинку в текст и структуру; проверка суммы, налога и итога остаётся за кодом, потому что арифметика детерминированна и ошибку в одной цифре видит простая формула.
Отдельно решите, где хранятся исходные сканы и результаты. Файлы с реквизитами и подписями лежат в защищённом хранилище с журналом доступа, а скрипт получает временную ссылку. Результаты распознавания содержат те же данные, что и оригинал, поэтому на них действуют те же правила доступа, срока хранения и удаления.
Сложные таблицы
Таблицы — главная причина выбирать VL. Проверьте на выборке несколько типовых трудностей и записывайте результат построчно.
| Случай | Что проверять | Реакция процесса |
|---|---|---|
| Объединённые ячейки | Сохранилась ли принадлежность значения заголовку | Отправить на ручную сверку при расхождении |
| Таблица на нескольких страницах | Склеены ли части в одну таблицу | Собрать части скриптом по номеру страницы |
| Мелкий шрифт и сноски | Читаемость цифр и единиц измерения | Проверить итоги арифметикой |
| График или диаграмма | Что извлечено: подписи, значения или описание | Использовать как подсказку, а цифры брать из источника |
Подсчёт ошибок ведите по ячейкам: сколько ячеек распознано верно, сколько потеряно и сколько перепутано между строками. Такая статистика показывает, где модель слабее, и подсказывает, какие страницы стоит сразу направлять оператору. Для накладных с типовой раскладкой порог ручной проверки можно снижать, для нетиповых документов оставляйте высоким.
Распознанный график обычно даёт подписи и приблизительные значения, поэтому числа с диаграммы в отчёт без проверки переносить нельзя. Если в документе нужна точная величина, ищите её в таблице или в исходных данных.
Какие документы с таблицами вы сейчас разбираете вручную?
Привязка к источнику
Каждое извлечённое значение должно вести обратно к месту в документе. Обычно скрипт записывает рядом с результатом имя файла, номер страницы и фрагмент, откуда взято значение, а при наличии координат блока сохраняет и их. Какие именно данные о положении блока отдаёт выбранная версия, проверяйте в её документации и на тестовом прогоне, и при необходимости добавляйте собственную разметку.
Для оператора это означает, что сомнительное значение проверяется быстро: он открывает страницу на нужном месте и сравнивает глазами. Без такой ссылки сверка превращается в поиск иголки по всему файлу, и люди перестают ей заниматься. Сомнительные случаи собирайте в отдельную очередь, как описано в разборе Qwen VL для документов и фото.
Ведите журнал расхождений: страница, поле, что распознала модель, что оказалось верным и причина. Через несколько недель он покажет повторяющиеся шаблоны, например путаницу похожих цифр на мелком шрифте или потерю последней колонки при обрезанном скане. Каждый такой шаблон закрывают конкретной мерой: проверкой на входе, повышением разрешения или правилом отправки на ручную сверку. Так качество растёт без смены модели.
Договоритесь, когда результат считается принятым: итоговая сумма сошлась, реквизиты есть в справочнике, ключевые поля заполнены, а выборочная проверка человеком обнаружила ноль расхождений. Уверенность модели в своём ответе эти условия подменить нельзя. Раз в неделю берите случайные страницы из принятых и проверяйте их заново: так вы заметите дрейф качества до того, как ошибка дойдёт до платежа.
Соберите тридцать страниц самых неудобных документов и составьте для них эталон. Прогоните выборку через обе версии и посмотрите на таблицы. Если разница значима, подключайте VL; если мала, оставьте обычную версию. Проект с проверкой и очередью исключений начните с раздела про нейросети для документов.