Быстрый и грязный способ извлечения текста из отсканированных изображений и PDF-файлов.

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

Решение?

Есть инструменты для привлечения текста, которые могут помочь в этом. Все три основных поставщика облачных услуг, AWS, Google Cloud и Azure, имеют ту или иную форму службы компьютерного зрения, которая может собирать информацию из изображений. Они имеют множество функций и могут даже идентифицировать объекты с изображений и маркировать их, но сегодня мы просто хотим, чтобы наш компьютер читал тексты с картинки!

Почему Google Cloud?

Я выбрал Google Cloud в основном из-за его богатой языковой поддержки. У меня есть несколько старых книг на бенгальском (мой родной язык), которые я хочу отсканировать и преобразовать в доступный для поиска текст, поэтому знакомство с API Google Cloud Vision принесло мне немного больше пользы. В отличие от AWS, который поддерживает только пять языков, это впечатляет.

Сравнение цен

С точки зрения цены, между AWS и Google нет большой разницы, первые 1000 страниц/изображений бесплатны, а затем вы платите 1,50 доллара за каждую тысячу единиц. В AWS после первого миллиона единиц цена становится 0,60 доллара за тысячу единиц, а в Google Cloud цена становится 0,60 доллара после первых пяти миллионов единиц. У Azure нет никаких бесплатных услуг, но общая цена немного ниже: 1 доллар за тысячу единиц за первый миллион единиц и 0,65 доллара за тысячу единиц после этого.

Давайте извлечем несколько текстов!

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

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

export GOOGLE_APPLICATION_CREDENTIALS=”KEY_PATH”

Клонируйте репозиторий scan2text.

git clone https://github.com/shouvSarker/scan2text.git

Загрузите версию узла и установите пакеты.

nvm use
npm install

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

node scan2textImage.js /path/to/image path/to/output/text

Чтобы извлечь текст из PDF-файла, выполните следующую команду. Он сохранит извлеченный текст в файле json (с дополнительной информацией о стилях и позиционировании, как показано в pdf, наряду с предполагаемой точностью) в папке в вашей корзине хранилища Google Cloud.

node scan2textPdf.js bucketname filename outputfolder

TEXT_DETECTION и DOCUMENT_TEXT_DETECTION

Извлечение документа (доступно для приложения/pdf и изображения/tiff) работает только для файла, расположенного в облачном хранилище Google, и является гораздо более точным, чем извлечение текста. Однако интерпретация выходного json-файла требует некоторой тяжелой работы и, следовательно, не подходит для бесшовного извлечения текста. Извлечение текста из изображения (TEXT_EXTRACTION) вполне функционально, даже для документов, отсканированных и преобразованных в изображение, результаты достаточно точны и на выходе выдаются фрагменты текста. Для общего использования извлечение текста изображения может быть более подходящим для большинства случаев использования.

Завершение!

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