searchable pdf что это

Как превратить PDF в PDF с возможностью поиска по тексту?

У меня есть несколько отсканированных документов в формате PDF, и я хочу иметь возможность искать их. Как я могу это сделать?

По сути, я должен OCR PDF, а затем смешать извлеченный текст обратно в новый PDF. Я безуспешно пробовал несколько различных решений (в том числе найденных в разделе Добавление информации OCR в PDF ).

Есть ли программный пакет, о котором я не знаю? Или скрипт, который делает это?

Ubuntu> = 16.04

Начиная с Ubuntu 16.04 OCRmyPDF стал доступен через apt. Просто беги

Наконец, вы можете распознать ваш PDF с помощью команды:

Затем вы должны установить Тессеракт вам язык.

Чтобы увидеть, какие языки уже есть в вашей системе, введите:

В случае, если вы пропустите один, установите его. Например,

Теперь вы можете создать PDF-файл с возможностью поиска (качество которого зависит от отсканированного документа) с помощью следующей команды

Вы можете, конечно, проверить его справочную страницу для некоторых дополнительных опций.

pdfsandwich выполняет именно эту работу. Я не знал, что в центре программного обеспечения есть пакет, но я предоставляю для него Deb-пакеты Ubuntu на веб-сайте проекта ( подробности см. Http://www.tobias-elze.de/pdfsandwich/ ), включая самую последнюю версию (0.1.2), которая вряд ли будет в каком-либо программном центре.

который генерирует файл scanned_file_ocr.pdf с распознанным текстом, добавленным к отсканированным страницам.

По сравнению с большинством существующих решений он автоматически определяет установленную версию tesseract и соответствующим образом адаптирует свое поведение. Кроме того, он выполняет предварительную обработку отсканированных изображений перед процессом оптического распознавания текста, например удаление перекоса или удаление темных краев и т. Д., Что может значительно улучшить оптическое распознавание символов.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я разработчик pdfsandwich и, следовательно, сильно предвзятый.

Источник

Searchable pdf что это

Недавно на работе столкнулись с задачей разпознавания сканированных документов и поиска по ним.

Мною был рассмотрен движок распознавания текста с открытым исходным кодом Tesseract.

В данной статье будут рассмотрены основные моменты возможной реализации.

Предположим, что у нас есть многостраничный отсканированные документ в формате PDF, но нераспознанный.

У tesseract есть языковые пакеты для русского и казахских языков, что очень круто.

Также можно не устанавливать локально у себя tesseract, а запустить через docker.

Официального образа на hub.docker.com я не нашел, поэтому сделал свой.

Запустить контейнер с tesseract из образа naik85/tesseract можно так (пример для linux/unix):

Первый этап

На первом этапе нужно извлечь изображения из PDF. Здесь есть два варианта либо преобразовать PDF в один файл TIFF, либо преобразовать в набор изображений.

Для конвертации в TIFF использовалась следующая команда:

Для конвертации в PNG использовалась следующая команда:

Параметры конвертации приведены для примера, их можно настроить под ваши требования.

После выполнения конвертации в PNG для каждой страницы будет создан отдельный файл изображения.

Второй этап

К сожалению, у меня не получилось преобразовать документ TIFF в Searchable PDF через tesseract.

Была использована следующая команда:

Выходила следующая ошибка:

Кто знает как решить проблему, пишите в комментариях.

Для нашей задачи постраничное деление на отдельные файлы (изображения) было даже предпочтительней (об этом ниже).

Конвертируем каждую страницу (файл png) в Searchable PDF:

На выходе получаем файлы:

Очень крутая фишка, что можно разпозначать несколько языков, перечислив их через символ ‘+’: rus+kaz+eng.

Команда распознавания и извлечения текста

В результате будут созданы текстовые файлы:

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

Склеив тексты страниц и положив их в поисковый движок, получим подокументый поиск.

Если нужен целый Searchable PDF, то можно его склеивать из отдельных страниц.

Источник

О формате PDF

Portable Document Format (PDF) — межплатформенный формат электронных документов, разработанный в 1993 году компанией Adobe Systems с использованием ряда возможностей языка PostScript. В первую очередь предназначен для представления полиграфической продукции в электронном виде. Для просмотра файлов данного формата существует официальная программа Adobe Reader, а так же множество программ сторонних разработчиков.

После того, как Adobe выпустила бесплатную версию Acrobat Reader (позднее переименованную в Adobe Reader) для чтения PDF-документов, популярность этого формата стала возрастать. Формат PDF-файлов несколько раз изменялся и продолжает эволюционировать. Существует несколько спецификаций формата, последовательно расширяющих друг друга.

Формат PDF с 1 июля 2008 года является открытым стандартом ISO 32000.

Различные спецификации формата

PDF/X−1a — это стандартный формат файлов, специально предназначенный для обмена готовыми к печати документами (для передачи в типографию) в виде электронных данных, при котором отправителю и получателю не требуется дополнительной договоренности для обработки информации и получения требуемых результатов в тираже. Применение PDF/X−1a устраняет наиболее распространенные ошибки при подготовке файлов для печати.

PDF/A — стандарт ISO 19005-1:2005 (опубликован 1 октября 2005 г.) для долгосрочного архивного хранения электронных документов и базируется на описании стандарта PDF версии 1.4 от Adobe Systems (использовался в Adobe Acrobat 5). В действительности, PDF/A является подмножеством формата PDF, из которого исключены некоторые особенности, не подходящие для долгосрочного архивного хранения.

Почему для архивации удобнее выбирать именно PDF-формат

Одной из проблем, с которой сталкиваются крупные промышленные предприятия, государственные учреждения, страховые компании, издательства и архивы, является надежная архивация больших объемов данных.

Традиционные способы, например, хранение информации на бумаге или микрофильмах, безнадежно устарели, так как они не обеспечивают компактности данных, а также возможностей эффективного поиска и передачи информации. Поэтому в последние годы для архивации используются цифровые форматы представления данных. Одним из таких популярных графических форматов стал TIFF.

TIFF (англ. Tagged Image File Format) — формат хранения растровых графических изображений. TIFF стал популярным форматом для хранения изображений с большой глубиной цвета. Он используется при сканировании, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями.

Понятия Searchable PDF и OCR

Создание файлов в формате PDF

Традиционным способом создания PDF-документов является виртуальный принтер, то есть документ как таковой готовится в своей специализированной программе — графической программе или текстовом редакторе, САПР и т. д., а затем экспортируется в формат PDF для распространения в электронном виде, передачи в типографию и т. п.

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

В качестве примера таких программ можно привести ABBYY FineReader, IRIS Readiris.

Современная версия платного пакета Adobe Acrobat XI так же имеет встроенную функцию оптического распознавания текста и включения в файл текстового слоя. Поддерживается более 40 языков, включая Русский.

Получение Searchable-PDF-файлов с использованием поточного сканера

Сегодня сканирование документов в производственном масштабе с использованием поточных сканеров осуществляется с помощью специально разработанных программных систем для скоростного сканирования и обработки документов. Данное ПО позволяет выполнять такие операции как разделение сканируемого потока на отдельные документы (по различным признакам), классификацию (определение типа) документа и последующую его обработку, сохранение либо перенаправление, в зависимости от установленных действий для каждого типа. Данное ПО, как правило, весьма дорогостоящее и требует специализированных навыков (а зачастую и сертифицированных специалистов) для его настройки и работы. Несомненно, применение подобного рода решений целесообразно и оправданно только при весьма значительных масштабах системы документооборота и больших объемах обрабатываемых документов.

Читайте также:  Тянет вена на ноге чем лечить

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

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

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

Входящий в комплект поставки стандартный новый менеджер профилей Kodak SmartTouch позволяет настроить профиль сканирования в формат PDF с включениям функции оптического распознавания текста (возможен выбор более 40 языков включая Русский). ПО так же способно распознавать штрих-кодов, встречающихся на страницах документов, разделять поток страниц на отдельные документы и именовать файлы в соответствии с данными, извлеченными из штрих-кода. Могут быть обнаружены следующие штрих-коды: Interleaved 2 из 5; Код 3 из 9; Код 128; Codabar; UPC-A; UPC-E; EAN-13; EAN-8; PDF417. Программа распознает только первый штрих-код, встретившийся на листе. Причем расположение штрих-кода (под наклоном, вертикально либо перевернутый по отношению к ориентации текста) на качество обнаружения не влияет, штрих-код распознается стабильно.

SmartTouch поддерживает сохранение в формате PDF спецификации PDF/A.

Таким образом, установив пачку листов в приемный лоток автоподатчика сканера Kodak ScanMate i1150, выбрав на панели сканера предварительно настроенный профиль и нажав кнопку запуска сканирования мы получаем на компьютере в указанном месте (диске или папке) надлежащим образом поименованный набор PDF-файлов, содержащих отсканированные документы, с возможностью поиска по содержимому документа. Никаких дополнительных действий не требуется.

Согласитесь, решение задачи получения searchable PDF никогда не было на столько простым. В этом свете задача создания электронного архива (хранилища) документов в формате PDF с возможностью поиска так же не выглядит сложной.

По вопросам приобретения новинки от Kodak Alaris, а так же других документных сканеров ведущих производителей вы всегда можете обратиться в компанию ПИРИТ, являющейся официальным дистрибутором сканеров Canon, Kodak, Fujitsu, Avision на территории России. Сайт отдела сканеров: http://www.docscan.ru.

Итак, теперь мы с вами знаем как создать систему файлов и папок, содержащих наш архив файлов PDF. Теперь выясним, каким несложным образом можно осуществлять поиск необходимой нам информации по содержимому файлов (по словам), находящихся в этом архиве.

Поиск по содержимому средствами ОС Windows

На сегодняшний день, несмотря на относительно недавний (2012 г.) выход системы Windows 8, наиболее распространенной в среднестатистических офисах является ОС Windows 7 (редакцию упоминать здесь не будем, т.к. для наших целей это не принципиально). Кое где, конечно, еще остается в работе проверенная годами старушка XP, но все таки с началом эпохи беспроводных сетей в конце 2000-х данная ОС постепенно (и повсеместно) уходит в прошлое.

Поэтому рассмотрим как обстоит дело с поисковой подсистемой в ОС Windows 7.

Чтобы Операционная система Windows 7 смогла найти файл по его содержимому, сперва необходимо включить данную опцию в настройках ОС.

1. Включение поиска в Windows 7 Search по содержимому

Теперь при поиске система будет просматривать не только имена файлов, но и их содержимое, если для данного типа файлов указана возможность поиска по содержимому (об этом узнаем в следующем разделе статьи).

2. Индексирование

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

Для того чтобы ваш ПК проиндексировал папки вашего архива, необходимо в параметрах индексирования добавить в список мест индексирования папку(папки) где будут храниться PDF-файлы, либо указать букву диска, если точное местонахождение архива не определено.

Кроме того, по умолчанию, для поиска по содержимому, в индексе включены только популярные форматы файлов, все остальные файлы надо активировать вручную.

В нашей редакции Windows 7 формат файлов PDF уже оказался включен для поиска по содержимому. В вашей версии возможен другой вариант, по этому вот подробная инструкция по решению этой проблемы (Русская версия Windows 7).

Настоятельно НЕ рекомендуется выбирать много типов файлов для индексации по содержимому, а только те, что точно необходимо для будущего поиска.

При этом все изменения в настройках индексации файлов делайте перед периодом простоя компьютера, например на ночь (конечно, в том случае если ваш ПК на ночь не отключается), иначе в процессе работы вы почувствуете заторможенность вашего компьютера: процесс индексации весьма ресурсоемкий, не смотря на то, что система и будет пытаться давать вам приоритет в вашей активности.

3. Необходимо стороннее ПО, понимающее PDF-формат

Наличие ПО, работающего с форматом PDF позволит ОС Windows 7 «распознавать» и открывать файлы PDF-формата. По-умолчанию Windows данный формат не понимает.

Если вы являетесь обладателем 64-битной редакции Windows 7, необходимо дополнительно загрузить и уcтановить пакет PDF iFilter 64 (PDFFilter64Setup.msi)с сайта Adobe. Потребуется перезагрузить ПК.

Без данного пакета поиск по содержимому PDF-файлов в 64-битной системе работать не будет.

4. Особенности работы Windows 7 Search

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

Читайте также:  sela что за бренд

Текстовые файлы с разными расширениями

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

Заключение

Теперь, прочитав данную статью, вы без труда сможете организовать PDF-архив и простой поиск по тексту. Естественно, это самый простой вариант поиска «по словам» (в качестве расширенного доступен только фильтр по: Виду файла, Дате изменения, Типу, Размеру и Имени).

Для организации расширенного поиска с применением различных фильтров, с учетом морфологии и т.п. необходимо использовать отдельное ПО. Например программа Архивариус 3000.

Программа Архивариус 3000 – это поиск документов и почтовых сообщений в Вашем компьютере, в локальной сети и в съёмных дисках (CD, DVD и др.). Поиск производится по содержимому документов, с учётом морфологии (смысловой поиск с морфологией на 18 языках).

Подробно о программе Архивариус и аналогичных можно прочитать на просторах интернета, а в данной статье мы ограничимся рассмотрением простого поискового решения стандартными средствами Windows, не требующего дополнительных вложений.

Источник

Извлечение текста — одна из популярных задач обработки PDF документов. Вам потребуется извлечь текст из PDF, чтобы:

Извлечь текст вручную можно так: откройте документ в любом PDF просмотрщике, выделите и скопируйте текст. В большинстве документов это сработает. Такие документы называются «доступные для поиска PDF» или «searchable PDF». Текст в них выводится с помощью специальных PDF операторов, а связанные объекты шрифтов содержат правильную информация о соответствии глифов значениям Unicode.

Многие PDF библиотеки умеют извлекать текст из доступных для поиска PDF.

Однако, часто встречаются и недоступные для поиска PDF («non-searchable PDF») документы. В них текст обычно выводится как растровое изображение. Типичный пример — сканированный PDF документ. Также текст в недоступных для поиска PDF может выводиться векторными путями без использования шрифтов и специальных PDF операторов.

Для извлечения текста из недоступных для поиска PDF выполняйте оптическое распознавание текста (OCR). Оптическое распознавание не гарантирует правильного извлечения текста в 100% случаев. Результат зависит от качества документа и алгоритма распознавания. Также OCR существенно медленней, чем извлечение текста из доступных для поиска PDF.

Подготовка

Создайте новый проект Console App (.NET Core) на C# и установите NuGet пакеты для Docotic.Pdf и Tesseract:
https://www.nuget.org/packages/BitMiracle.Docotic.Pdf/
https://www.nuget.org/packages/Tesseract/4.1.0-beta1 (данная prerelease версия использует нативный Tesseract 4.1.0)

Для Tesseract потребуется дополнительная настройка:

В Linux установите или скомпилируйте самостоятельно проекты «libleptonica-dev» и «libtesseract-dev». Скомпилированные библиотеки добавьте в ваш проект. Например, под Ubuntu 20.04:

В macOS установите Tesseract с помощью brew:

Вместе с Tesseract будут установлены Leptonica и прочие зависимости. Больше информации тут.

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

liblibdl.so должна оказаться уровнем выше относительно libleptonica-1.78.0.so и libtesseract41.so. В проекте для каждого из *.so файлов нужно установить свойство «Copy to output directory» в «Always copy».

Обратите внимание, что с Tesseract может быть установлена иная версия зависимостей. Например, в моем случае была установлена Leptonica 1.79.0 вместо требуемой 1.78.0. Это нормально, если установленные версии совместимы с Leptonica 1.78 и Tesseract 4.1.

Реализация

Проверьте, требуется ли OCR

Прежде всего, проверьте, нужно ли вообще выполнять OCR. Если документ доступен для поиска, то достаточно просто извлечь текст.

Этот код извлекает текст из PDF. Если текст найден, то обычно этого достаточно, и OCR не требуется.

Сохраните страницу PDF как изображение

Дополните код следующим фрагментом:

Добавленный фрагмент преобразует содержимое PDF страницы в PNG изображение с белым фоном. У изображения будет разрешение 300×300 dpi.

Изображение сохраняется в файл, который после распознавания можно удалить. Другой способ — сохранить изображение в поток в памяти:

Распознайте текст

Пришло время использовать Tesseract для распознавания текста на созданном изображении. При распознавании Tesseract использует обученные модели для каждого языка. Важно, чтобы версия обученной модели соответствовала версии нативного Tesseract. Для Tesseract 4.1.0 возьмите языковые данные отсюда. Для английского языка достаточно файла eng.traineddata.

Создайте в проекте папку «tessdata». Поместите файл модели для английского языка (eng.traineddata) в папку tessdata. Установите для файла модели свойство «Copy to output directory» в «Сopy always» или «Copy if newer». Для английского языка можете использовать NuGet пакет Tesseract.Data.English, он проделает указанные действия автоматически.

После этого добавьте код для распознавания:

Класс TesseractEngine при инициализации принимает путь к папке с данными моделей, а также язык документа и режим распознавания. Обычно достаточно одного объекта TesseractEngine для всех страниц. Но, при необходимости, вы можете использовать несколько объектов TesseractEngine (см. пример в разделе Текст на разных языках)

Строка using (Page recognizedPage = engine.Process(img)) выполняет распознавание текста в изображении. Оценить качество распознавания можно с помощью значения «confidence». Это вещественное число от 0 до 1, означающее степень уверенности нейронной сети Tesseract в точности результата. Метод Page.GetMeanConfidence() возвращает среднее арифметическое для confidence всех слов в распознанном тексте.

Confidence — это исключительно близость распознанных шаблонов к данным в обученной модели (tessdata). В общем случае значения mean confidence, близкие к 1, не гарантируют 100% правильного результата с точки зрения человека. И наоборот — низкие значения mean confidence не означают автоматически неправильный результат. Тем не менее, это полезная метрика, далее вы увидите практические примеры её использования.

Наконец, метод Page.GetText() возвращает распознанный текст. Tesseract также предоставляет возможность получить детальную информацию о каждом распознанном элементе с помощью метода Page.GetIterator(). Этот метод можно использовать, чтобы записать распознанный текст в исходный PDF документ и получить таким образом доступный для поиска PDF. Пример для этого сценария

Запустите текущий пример для документа Partner.pdf. Вы получите

Обратите внимание, что текст в правой части документа распознался не совсем точно:

Как повысить качество распознавания

Есть множество способов попытаться улучшить качество распознавания. Описанные ниже способы могут как улучшить, так и ухудшить качество результата. Универсального метода нет. Ищите оптимальное решение, пробуя разные варианты. Используйте реальные документы во время проб. То, что оптимально для одних документов, может давать плохие результаты для других документов.

Настроить Tesseract

Улучшить результат могут различные конфигурационные параметры Tesseract.

Прежде всего, попробуйте режим EngineMode.LstmOnly. В этом режиме Tesseract использует наиболее актуальную реализацию распознавания на основе LSTM-сетей:

В режиме LstmOnly наш пример распознает

Было Стало Качество улучшилось?
Символы списка распознаются как «0» и «o» Сейчас распознаются как «e» И да, и нет — текст теперь одинаковый во всех случаях, но «o» было бы правильней
https://partner.microsoft.com https://partner. microsoft.com Нет
up—to—date (тире) up-to-date (дефисы) Да
Microsoft“ Pa rtner Microsoft | Partner Да

Распознавание URL’a ухудшилось, а остальные изменения в лучшую сторону. В большинстве случаев режим LstmOnly дает лучшие результаты.

Обратите внимание — при этом confidence изменилась с 0.91 до 0.93. Т.е. по мнению Tesseract точность распознавания выросла на 2%. На мой взгляд, в данном случае разница в результатах распознавания не столь однозначна и существенна.

Еще один пример на тему относительности значений mean confidence. Рассмотрим простой документ Hello.pdf. В режимах Default, TesseractAndLstm и LstmOnly текст распознается одинаково и 100% правильно:

Однако, значение mean confidence равно 0.9 для режимов Default/TesseractAndLstm и 0.95 для LstmOnly.

Если известно расположение контента на странице, то можно попробовать опцию Page Segmentation Mode. Например:

Tesseract предоставляет множество параметров для управления процессом распознавания. Основные указаны тут: https://tesseract-ocr.github.io/tessdoc/ControlParams.html. Больше опций ищите в исходном коде. Например:

Передайте параметр «configFiles» в конструктор TesseractEngine, чтобы изменить «Init only» параметры. Значения остальных параметров изменяйте с помощью метода TesseractEngine.SetVariable так:

Изменить разрешение изображения

При конвертации страницы PDF документа в изображение использовалось разрешение 300dpi. Попробуйте более высокое разрешение. Например, 600dpi.

Для документа Partner.pdf в режиме LstmOnly при разрешении 600dpi получается

Результат распознавания ухудшился — появились избыточные пустые строки, символы списка стали распознаваться как «eo» и «oe», вместо «https:» ошибочно распозналось «https.».

Более того, результат ухудшится еще больше, если использовать разрешение 900dpi.

Microsoft | Partner
Program

Partner Program Guide

for all Microsoft Partners

This guide describes the Microsoft Partner Program, including: the basic structure of the program,
who should join, an overview of program requirements and benefits, as well as enrollment policies
and processes. For more detailed information on membership, refer to the following three additional
resources:

eo The Getting Started in the Microsoft Partner Program guides are three separate manuals that
provide instructions on how to:

— Enroll, re-enroll, or upgrade your membership.

— Examine profile questions that you answer as part of your program enrollment.

— Achieve a Microsoft Competency.

eo The Partner Program website provides detailed content on Microsoft Partner Program benefits
and Microsoft Competencies.

eo The Partner Membership Center online help provides instructions on how to administer and
manage the partner account associated with your program membership. You can access this
online help once you log in to the Partner Membership Center. P 0g I’d 8

TIP: How to Use This Guide

Use the Table of Contents, displayed to the left of this page, to quickly find the topic you
desire. Above the Table of Contents, click Options, and then Wrap Long Bookmarks, to
view the Table of Contents in its entirety.

Ty
N = i
§ L rr re
% Hl Wa
1 r wa i La Fs x
d Ro Ee TUE )
. E er Te,
i i; + rl
f LS ‘
Fl — J
. o a.

As the Microsoft Partner Program evolves, this Program Guide will be updated with new and
important information. Visit the Partner Program website at https://partner.microsoft.com often to
stay up-to-date:

2006 Microsoft Corporation. All rights reserved. 1

Изображение с разрешением 900dpi содержит больше точек, и Tesseract начинает ошибочно распознавать изображение справа внизу как текст.

Так что большее разрешение не гарантирует лучший результат.

Однако, можно попробовать уменьшить разрешение. Вот тут есть мини-исследование на эту тему: https://groups.google.com/forum/#!msg/tesseract-ocr/Wdh_JJwnw94/24JHDYQbBQAJ

При использовании разрешения 200dpi для тестового документа получается

Модифицировать содержимое PDF

До сих пор не удалось заставить Tesseract правильно распознать слово «Guide» в правой части. Неудачный эксперимент с разрешением 900dpi наталкивает на мысль, что, вероятно, мешает изображение справа снизу. Попробуем перед распознаванием заменить это изображение на 1-пиксельное прозрачное изображение:

И после этого изменения, наконец, фраза «Program Guide» в правой части корректно распознается.

Естественно, данный метод неприменим в общем случае и для произвольного документа. Например, для сканированных документов с одним изображением на странице. Даже в тестовом документе Partner.pdf нельзя просто удалить все изображения — градиент справа-вверху также является изображением. После его удаления получится белый текст «Microsoft | Partner Program» на белом фоне, который Tesseract не увидит.

В зависимости от содержимого страницы можно использовать и другие подготовительные действия. Например, изменить ориентацию неправильно повернутой страницы (пример документа):

Или отсечь часть ненужного содержимого перед созданием изображения:

Подготовить изображение

Вы можете модифицировать изображение, чтобы упростить распознавание OCR движку. Подробнее описано тут: https://tesseract-ocr.github.io/tessdoc/ImproveQuality#image-processing

Использовать другую модель

В примере используется дефолтная модель tessdata. Tesseract 4 предоставляет еще две модели.

Используйте модель tessdata_fast, чтобы ускорить распознавание, пожертвовав качеством результата. Или используйте модель tessdata_best, чтобы улучшить качество при более долгом процессе распознавания.

Попробуйте использовать модель tessdata_best. Для этого используйте в проекте файл eng.traineddata из tessdata_best. Для тестового документа Partner.pdf использование tessdata_best не влияет на результат и особого смысла не имеет.

Существующие модели Tesseract могут не дать нужных результатов, если в документе используется какой-то причудливый шрифт или незнакомый язык. В этом случае можете натренировать модель самостоятельно. Информация на эту тему: https://github.com/tesseract-ocr/tessdoc/blob/master/Training-Tesseract.md

Обновить версию Tesseract

На момент публикации статьи ведется разработка Tesseract 5, а также доступен релиз 4.1.1. Обновление до последней версии может улучшить результат. Следите за релизами тут: https://github.com/tesseract-ocr/tesseract/releases

Задать вопрос сообществу

Обсуждение Tesseract ведется в https://groups.google.com/forum/#!forum/tesseract-ocr. Там могут посоветовать хорошие идеи, как улучшить результаты распознавания. Там же есть предыдущие обсуждения способов улучшения OCR в различных ситуациях.

Особые случаи

Описанный подход хорошо работает для большинства документов. Рассмотрим ситуации, когда требуются дополнительные действия.

Текст на разных языках

Документ может содержать страницы на разных языках. И в общем случае неизвестно, какие языки используется на конкретной странице.

Tesseract позволяет использовать несколько языков при распознавании. Для этого:

Естественно, желательно примерно представлять, какие языки могут встречаться в документе. Чем больше языков используется — тем дольше работает распознавание.

Иногда Tesseract некорректно обрабатывает случаи, когда текст на разных языках встречается рядом в одной строке. В таких случаях попробуйте ранее перечисленные способы по улучшению качества распознавания. Если не поможет, то попробуйте обходной путь — распознавайте отдельные слова на разных языках и в каждом случае выбирайте результат с большим значением confidence. Пример кода:

Страница содержит неправильный текст

Встречаются доступные для поиска PDF документы, из которых текст извлекается, но неправильно. Это происходит, когда документ не содержит информацию о соответствии глифов значениям Unicode. Или содержит неправильную информацию. Например, для глифа ‘A’ указано соответствие U+0007, а для глифа ‘B’ указано U+00B6 и т.д.

Первая задача — определить, что текст извлекается неверно. Можете сделать это, проверив извлеченный текст на соответствие языку документа:

Определили, что текст или большая его часть не соответствует языку — делайте OCR. Убедитесь, что распознанный текст лучше исходного. Для этого проверьте распознанный текст на соответствие нужному языку и сравните результаты с первой проверкой.

Источник

Читайте также:  Трофическая язва крови что делать
Обучающий онлайн портал