31

Сегодня я получил PDF от нашего поставщика, и он содержал несколько напечатанных и отсканированных страниц с подписями и т.д. Я открыл его в Acrobat Reader DC. Но, к моему удивлению, текст из явно отсканированных изображений можно было выбрать и скопировать как текст. Смотрите скриншот:

PDF отсканирован с возможностью выбора текста

Очевидно, за этим стоит некоторое OCR, так как скопированный текст содержит ошибки. Но как это возможно? Я никогда не видел этого раньше, как это можно создать?

4 ответа4

53

Это (вопреки некоторым другим ответам здесь), скорее всего, никак не связано с Acrobat.

Большинство (все ?!) Профессиональные сканеры документов и большинство полупрофессиональных сканеров будут автоматически выполнять распознавание, когда вы выберете "Сохранить как PDF" и отметите галочкой "поиск" в настройках. Более дешевые модели "потребительского уровня" будут выполнять распознавание текста на подключенном ПК, типичные сетевые сканеры делают это внутренне.

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

Таким образом, вы можете искать, а также выбирать, копировать и вставлять "растровое изображение", как по волшебству. Однако это не волшебство. На самом деле, вы просто копируете невидимый текст.

Сканер также может выполнять некоторые дополнительные операции, такие как создание большого изображения из множества маленьких плиток, которые также используются повторно. Это приводит к гораздо меньшему размеру документа, чем это было бы возможно на самом деле, но может также привести к забавным сюрпризам (не так забавно, если они случаются с вами!) например, Xerox изменяет историю ваших счетов, по иронии судьбы, даже когда не выполняется OCR, в зависимости от прошивки.

9

Но как это возможно?

По сути, программа выполняет OCR для входного файла, а затем помещает невидимый слой текста поверх изображения. Кроме того, он может также поместить видимый слой текста под картинкой, давая тот же эффект.

Когда вы выбираете что-то, картинка не имеет значения, потому что выделен текстовый слой.

как это можно создать?

Есть несколько способов. Учитывая, что Acrobat уже был предложен, я добавлю несколько бесплатных опций (и, к счастью, вы не обязаны использовать их в Windows).

PDF-XChange Viewer

Это родная программа для Windows от Tracker Software. Бесплатная версия прекрасно работает под Wine, если вы используете 32-битную версию с 32-битным префиксом, поэтому вы можете использовать ее в Windows, macOS и Linux. В последних двух случаях вам понадобятся PlayOnMac или PlayOnLinux соответственно.

Вот фотография из этого ответа, которую я оставил в Ask Ubuntu:

Снимок экрана PDF-XChange Viewer под Wine

OCRmyPDF

Это многоплатформенная программа, написанная на Python, основанная на Ghostscript, Tesseract и Unpaper. Из документов:

Что делает OCRmyPDF

OCRmyPDF анализирует каждую страницу PDF-файла, чтобы определить цветовое пространство и разрешение (DPI), необходимые для захвата всей информации на этой странице без потери содержимого. Он использует Ghostscript для растеризации страницы, а затем выполняет OCR на растровом изображении, чтобы создать «слой» OCR. Слой затем возвращается обратно в исходный PDF.

Его можно легко установить на производные Debian и Ubuntu:

apt-get install ocrmypdf

Или на macOS:

brew tap jbarlow83/ocrmypdf
brew install ocrmypdf

В Windows вам нужно использовать образ Docker. Смотрите официальные документы для деталей.

Использование очень простое, и я предлагаю вам использовать дополнительные параметры -d (deskew) и -c (clean) для лучших результатов. Он выправит каждую страницу и очистит маленькие точки / недостатки перед запуском процесса распознавания.

Вы можете (и должны) предоставить язык с -l .

Вот пример, взятый из этого искаженного документа, написанного на итальянском языке:

Пример для OCRmyPDF

Команда, которую я использовал, была:

ocrmypdf -l ita -d -c input.pdf output.pdf

Онлайн инструменты

Есть несколько онлайн-инструментов, которые делают то же самое. Примечательно, что PDF24 содержит бесплатную веб-версию OCRmyPDF, которую можно использовать без ограничений.

Смотрите также:

4

Возможно, это связано с функцией распознавания текста в Acrobat:

Acrobat может распознавать текст в любом PDF-файле или графическом файле на десятках языков. Все, что вам нужно сделать, это открыть отсканированный документ или изображение, которое вы хотите, чтобы OCR, а затем нажмите синюю кнопку Инструменты в правом верхнем углу панели инструментов. На этой боковой панели выберите вкладку «Распознать текст», затем нажмите кнопку «В этом файле».

...

Распознав текст, вы можете теперь разметить PDF, используя все обычные инструменты разметки - вы можете выделять, вычеркивать текст и многое другое. Вы даже можете скопировать текст с обнаруженным форматированием, хотя это часто менее точно, чем само распознавание текста.

3

С сайта Adobe

Распознать текст в отсканированном PDF-файле

Когда вы сканируете бумажные документы в PDF, вы действительно просто фотографируете эти документы. Это отлично подходит для фотографий и других печатных изображений, но что, если у вас есть документ на 200 страниц, в котором вам нужно найти определенное слово или фразу? Используйте Acrobat для распознавания текста в этом отсканированном файле, что делает текстовое содержимое доступным для поиска и использования.

  1. Открыв сканированный документ в Acrobat, откройте панель «Инструменты» и раскройте панель «Распознавание текста». Если вы не видите «Распознавание текста» на панели «Инструменты», вы можете добавить его, выбрав меню в верхнем правом углу (изображение ниже - видите, куда указывает эта маленькая красная стрелка? Нажмите там).
  2. Нажмите «В этом файле», чтобы отсканировать открытый документ. Вы можете просто принять настройки по умолчанию и нажать «ОК», когда появится окно «Распознать текст». Acrobat преобразует изображение в полезный текст; чтобы проверить это, просто попробуйте отредактировать слово или предложение с помощью панели редактирования контента. Разве это не круто !?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .