Создание сквозного OCR-конвейера с помощью Unlimited-OCR от Baidu для изображений и PDF-файлов
Ключевые выводы
- •MarkTechPost опубликовал руководство по запуску визуально-языковой модели Unlimited-OCR от Baidu на 3 млрд параметров для изображений документов и многостраничных PDF-файлов в Google Colab.
- •Unlimited-OCR выполняет сквозное понимание документов, снижая зависимость от отдельных этапов обнаружения текста, распознавания и анализа макета, необходимых в традиционных OCR-движках.
- •В руководстве сравниваются режим Gundam, использующий тайловую нарезку изображений для плотных макетов, и режим Base, использующий одно изображение 1024 пикселя для более быстрой обработки чистых страниц.
- •Конвейер расширяется до разбора многостраничных PDF-файлов путём растеризации страниц с помощью PyMuPDF и их передачи в функцию вывода с длинным горизонтом и расширенным контролем повторений для стабильного декодирования.
- •Результаты можно экспортировать в нескольких структурированных форматах, включая Markdown, JSON и MMD, поддерживая рабочие процессы документации, программного использования и рендеринга диаграмм.

Руководство, опубликованное MarkTechPost, описывает, как построить полноценный рабочий процесс для запуска модели Unlimited-OCR от Baidu на изображениях документов и многостраничных PDF-файлах. Конвейер разработан для Google Colab и охватывает настройку среды, установку зависимостей, загрузку модели, генерацию образцов документов, одностраничный OCR и разбор многостраничных PDF-файлов. Unlimited-OCR является частью более широкого перехода к визуально-языковым моделям, которые обеспечивают понимание документов в единой сквозной системе, снижая потребность в многоэтапных конвейерах — обнаружении текста, распознавании и анализе макета, — используемых в традиционных OCR-движках.
Рабочий процесс начинается с настройки среды выполнения с поддержкой GPU и установки библиотек, необходимых для вывода Unlimited-OCR. Выполняется проверка доступности GPU с поддержкой CUDA, после чего автоматически выбирается bfloat16 или float16 в зависимости от аппаратной поддержки. Руководство загружает токенизатор и визуально-языковую модель на 3 млрд параметров с Hugging Face, переводит модель в режим оценки и перемещает её на GPU для вывода. Размещение модели на Hugging Face позволяет разработчикам загружать предобученные веса напрямую, избавляя от необходимости обучать или дообучать модель распознавания документов с нуля.
Для создания воспроизводимых тестовых входных данных руководство настраивает необходимые входные и выходные директории и генерирует три реалистичные страницы документа-образца с помощью PIL. Эти страницы содержат заголовки, абзацы, таблицы и сноски, что позволяет протестировать распознавание на структурированном контенте со сложным макетом, а не только на простых текстовых блоках. Первая сгенерированная страница предварительно просматривается с помощью Matplotlib перед передачей в OCR-конвейер.
Для одностраничного OCR в руководстве сначала используется режим Gundam, который объединяет глобальный обзор документа с тайловой нарезкой изображений. В этой конфигурации включается crop_mode и используется меньший размер тайла для сохранения мелкого текста и повышения качества распознавания на плотных макетах. Рабочий процесс также применяет настройки генерации длинных последовательностей и контроля повторений, чтобы модель могла выдавать стабильный структурированный результат при обработке сложных документов.
Затем тот же документ обрабатывается в режиме Base, который использует одно изображение размером 1024 пикселя. В этом режиме нарезка изображений отключается для снижения сложности вывода и повышения скорости обработки на чистых, чётко напечатанных страницах. В руководстве сохраняются те же настройки длины вывода и контроля повторений, чтобы режим Base можно было напрямую сравнить с режимом Gundam при согласованных параметрах генерации.
Далее конвейер расширяется от OCR изображений к разбору многостраничных PDF-файлов. Руководство создаёт трёхстраничный PDF из сгенерированных изображений документа и использует PyMuPDF для растеризации каждой страницы в PNG высокого разрешения. Полученная последовательность изображений страниц передаётся в функцию infer_multi(), что позволяет модели разобрать весь документ за один запуск вывода с длинным горизонтом. Окно контроля n-граммовых повторений расширяется для поддержки стабильного декодирования на нескольких страницах.
После выполнения как одностраничного, так и многостраничного вывода руководство проверяет выходные директории, созданные рабочим процессом. Перечисляется каждый сгенерированный файл и отображаются предпросмотры поддерживаемых артефактов в форматах text, Markdown, MMD и JSON. Также включается краткий справочник по выбору режимов вывода с рекомендациями различных конфигураций для плотных изображений, чистых страниц и многостраничных PDF-файлов. Возможность экспорта результатов в нескольких структурированных форматах — Markdown для документации, JSON для программного использования и MMD для рендеринга диаграмм — делает конвейер адаптируемым к различным задачам обработки документов.
Завершённый рабочий процесс демонстрирует, как Unlimited-OCR можно использовать в Google Colab для детализированных одностраничных документов и более объёмных многостраничных PDF-файлов. В нём сравниваются режимы вывода Gundam и Base, PDF-файлы преобразуются в готовые для модели изображения страниц, выполняется разбор документов с длинным горизонтом, а также проверяются сгенерированные текстовые, Markdown и вспомогательные артефакты из выходных папок. Настройка также адаптируется к различным возможностям GPU, сохраняя параметры генерации, необходимые для стабильного декодирования длинных документов.
MarkTechPost отметил, что рабочий процесс создаёт переиспользуемую основу для применения Unlimited-OCR к отчётам, отсканированным формам, техническим документам, таблицам и другому контенту со сложным макетом без необходимости в отдельном стеке традиционного OCR и анализа макета. Полный код руководства доступен на GitHub.