Вопрос или проблема
Я использую Ubuntu. Большинство моих отсканированных документов на немецком, английском или французском языках.
Некоторые сканы необходимо поворачивать перед проведением OCR, иначе pdfsandwich возвращает бессмысленный OCR.
Существует ли какой-либо параметр предпроцессора, который позволяет pdfsandwich автоматически пробовать повернутые входные файлы, если результат OCR от tesseract с неповернутого входного файла низкого качества?
Существует ли какая-нибудь предварительная обработка, которая сначала определяет общее направление строк и поворачивает их для лучшей поддержки OCR?
Ответ или решение
Вопрос, который вы задали о возможности автоматической ротации страниц в программе pdfsandwich для улучшения качества OCR (оптического распознания символов), является актуальным для многих пользователей, работающих с отсканированными документами. Давайте подробно разберем, есть ли такая возможность и как ее использовать.
Теория
Pdfsandwich — это программа с открытым исходным кодом, используемая для создания PDF-файлов с возможностью поиска с помощью OCR. Она использует Tesseract в качестве движка для OCR, что делает ее гибкой благодаря многочисленным языковым моделям и способностью адаптироваться под разные языки ввода, такие как немецкий, английский и французский.
Одной из известных проблем в распознавании текстов является то, что текстовые блоки на изображениях (сканах) могут быть неправильно ориентированы. Это может произойти из-за человеческой ошибки в процессе сканирования или из-за неправильно сформированного исходного документа. Неправильная ориентация текста (например, на 90 или 180 градусов) значительно ухудшает качество OCR, так как распознавание символов зависит от правильного считывания строк текста.
Примеры
Допустим, у вас есть сканированная страница документа, которая изначально неправильно ориентирована (например, на 90° против часовой стрелки). Если передать такой документ на обработку pdfsandwich, то Tesseract OCR попытается распознать текст в его текущей ориентации. Результатом будет "бессмысленный" текст, так как символы не будут обнаруживаться в привычных строках.
Чтобы исправить это, первая мысль — повернуть изображение перед обработкой. Это можно сделать вручную, но в случае большого количества документов этот подход будет неэффективным. Вопрос в том, может ли pdfsandwich автоматически определять и корректировать ориентацию текста?
Применение
На момент написания этого ответа, pdfsandwich не предлагает встроенной функции для автоматической ротации страниц на основе качества OCR результата — то есть, программа не поддерживает алгоритмы, которые автоматически определяют углы поворота текста и применяют их для улучшения OCR. Однако, некоторый функционал может быть добавлен с помощью дополнительных инструментов и при более сложной настройке рабочего процесса.
Один из возможных подходов заключается в интеграции инструментов для определения ориентации текста в процесс предварительной обработки изображений. Существуют отдельные утилиты и библиотеки Python, такие как pytesseract
с дополнительными скриптами, которые могут анализировать изображение, определять его ориентацию и корректировать ее перед окончательной передаче данных Tesseract.
Вот пример процесса, который вы могли бы использовать:
-
Предварительная обработка изображения: Используйте скрипты или инструменты для определения ориентации изображения. Это может включать использование алгоритмов на основе машинного обучения, которые смотрят на структуру линий и текста на изображении.
-
Коррекция ориентации: После того, как ориентация текста определена, используйте инструменты для ротации изображений. Например,
ImageMagick
— это мощный инструмент командной строки для обработки изображений, который может быть использован для ротации страниц перед их OCR. -
OCR с использованием pdfsandwich: После корректировки ориентации страниц, проведите OCR с использованием pdfsandwich для получения PDF с поисковым текстом.
Заключение
Таким образом, хотя pdfsandwich не предоставляет встроенного функционала для автоматической ротации вращенных страниц на основе анализа OCR, эту задачу можно решить путем интеграции сторонних инструментов и скриптов для предварительной обработки. Такой подход требует некоторой технической подкованности, однако он существенно улучшит качество конечного файла PDF, сделав текст более читаемым и легким для поиска.
Если вам регулярно нужно обрабатывать большое количество неориентированных должным образом документов, может потребоваться создать автоматизированную схему, которая использует описанные методы и интегрируется с вашим текущим рабочим процессом обработки PDF.