﻿# OCR смешанного PDF: не дублировать существующий текстовый слой

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

Автор: Команда Retrivium
Обновлено: 2026-11-03
Канонический URL: https://retrivium.ai/ru/journal/pdf-ocr-overlay-duplicate-text/
Language: ru

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

## Проверить текст и изображения отдельно

Официальные [примеры извлечения текста](https://pymupdf.readthedocs.io/en/latest/recipes-text.html) помогают установить, что уже доступно в PDF. Скан со скрытым OCR-слоем отличается от страницы без текста вообще. Цифровая страница тоже может содержать изображение с важными подписями. Поэтому исследуют представительные страницы, а не классифицируют весь файл по непустой строке первой страницы. Наличие нескольких цифровых слов не означает, что все остальные сведения документа уже доступны для последующего текстового поиска.

## Осознанно выбрать полное или частичное распознавание

[Справочник Page](https://pymupdf.readthedocs.io/en/latest/page.html) описывает get_textpage_ocr и параметры полного либо частичного OCR. Полученное [представление TextPage](https://pymupdf.readthedocs.io/en/latest/textpage.html) нужно корректно использовать при последующем извлечении. Исходный экспорт и результат распознавания сохраняют раздельно. Нельзя считать, что вызов OCR навсегда заменил текст самого PDF или что любое последующее извлечение автоматически обращается к новому текстовому представлению. Это важный контракт API, который нужно явно отразить в коде обработки и контрольных артефактах.

## Подготовить смешанный пример

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

| Состояние страницы | Основной риск |
| --- | --- |
| Только цифровой текст | Ненужное повторное распознавание |
| Текст изображения без транскрипции | Пропущенные значимые подписи |
| Скрытый OCR уже есть | Конкурирующие или повторные транскрипции |
| Текст вместе с изображениями | Нарушенный порядок областей подтверждения |

## Согласовать текст без потери подтверждений

Нельзя удалять каждую повторную фразу документа: предупреждения и заголовки таблиц могут повторяться законно. Совпадающее содержание сравнивают с учётом координат и происхождения. При расхождении цифрового текста и OCR оба результата сохраняют для разбора, не выбирая автоматически более длинную строку. OCR способен ошибиться в идентификаторе при правильном исходном слое; скрытый слой, наоборот, может быть устаревшим, тогда как изображение остаётся авторитетным отображением актуальной страницы для проверяющего человека.

## Проверить последующее поведение

Рассматривают, возвращает ли поиск дубли фрагментов, неверную транскрипцию или отрывок с испорченным порядком. Вместе с тестом сохраняют исходную страницу, конфигурацию OCR и выбранное текстовое представление. Критерий приёмки — пригодные подтверждения с прослеживаемым происхождением, а не прирост числа символов. Успешное распознавание само по себе не устанавливает, что нормализация, chunking и координаты цитат теперь относятся к единой согласованной версии исходной страницы и корректно работают друг с другом.

Связанные материалы: [GPU-конвейер OCR для PDF: как оценить сервер на 1000 страниц](/ru/journal/pdf-ocr-gpu-pipeline/); [PaddleOCR с GPU: проверка установки и качества на своих документах](/ru/journal/paddleocr-gpu-pilot/).
