Введение
Рост искусственного интеллекта в последние годы был обусловлен феноменом цифровизации, который вездесущ во всех профессиональных средах. Эта цифровая трансформация была инициирована большинством компаний, больших и малых, и одной из главных осей трансформации является оцифровка данных. Именно для этой цели была разработана услуга компьютерного зрения: оптическое распознавание символов (OCR), широко известное как OCR.
История OCR берет свое начало в 1950-х годах, когда Дэвид Шепард основал компанию Intelligent Machines Research Corporation (IMRC), первого в мире поставщика систем OCR, используемых частными компаниями для преобразования печатных сообщений в машинный язык для компьютерной обработки.
Сегодня уже нет необходимости в системе, разработанной для конкретного шрифта. Услуги OCR являются интеллектуальными, а OCR даже является одной из важнейших отраслей компьютерного зрения и, в более широком смысле, искусственного интеллекта. Благодаря OCR можно получить текстовый файл из многих цифровых носителей:
- PDF-файл
- PNG, JPG изображение, содержащее надписи
- Рукописные документы
Использование OCR для рукописных документов, изображений или PDF-документов может касаться компаний в любых областях и сферах деятельности. Некоторые компании могут испытывать более острую потребность в OCR для распознавания символов на рукописном тексте в сочетании с обработкой естественного языка (NLP) : анализом текста. Например, банковская сфера использует OCR для утверждения чеков (реквизиты, подпись, имя, сумма и т.д.) или для проверки кредитных карт (номер карты, имя, дата истечения срока действия и т.д.). Многие другие сферы бизнеса активно используют OCR, например, здравоохранение (сканирование карт пациентов), полиция (распознавание номерных знаков) или таможня (извлечение паспортной информации) и т.д.
Как работает OCR:
Технология OCR состоит из 3 этапов:
-
Этап предварительной обработки изображения, который заключается в обработке изображения таким образом, чтобы его можно было использовать и оптимизировать для распознавания символов. К манипуляциям по предварительной обработке относятся: выравнивание, устранение помех, бинаризация, удаление линий, зонирование, определение слов, распознавание шрифтов, сегментация, нормализация и т.д.
-
Извлечение статистических свойств изображения. Это ключевой этап для обнаружения и идентификации символов на изображении, а также их структур.
-
Этап постобработки, который заключается в реформировании изображения в том виде, в котором оно было до анализа, путем выделения “ограничительных рамок” (прямоугольников, ограничивающих текст на изображении) идентифицированных последовательностей символов:
В этой статье кратко рассматривается, как использовать OCR с помощью JavaScript. В этой статье мы увидим, что существует много способов сделать это, включая движки с открытым исходным кодом и облачные API.
Движки с открытым исходным кодом доступны бесплатно, часто такие решения можно найти на github. Вам просто нужно скачать библиотеку и использовать эти движки прямо со своей машины. Напротив, облачные движки OCR предоставляются поставщиками ИИ, они продают вам запросы, которые вы можете обрабатывать через их API. Они могут продавать запросы по лицензионной модели (вы оплачиваете ежемесячную подписку, соответствующую определенному количеству запросов) или по модели оплаты за использование (вы платите только за отправленные запросы).
Как выбрать между движками с открытым исходным кодом и облачными движками?
Когда вы ищете OCR-движок, первый вопрос, который вы должны задать себе: какой тип движка мне выбрать?
Конечно, главное преимущество OCR-движков с открытым исходным кодом заключается в том, что они имеют открытый исходный код. Это означает, что они бесплатны для использования, и вы можете использовать код так, как вам хочется. Это позволяет вам потенциально изменять исходный код, гиперпараметризировать модель. Более того, у вас не будет проблем с конфиденциальностью данных, потому что вам придется разместить движок на собственном сервере, что также означает, что вам нужно будет настроить этот сервер, поддерживать его и гарантировать, что у вас будет достаточно вычислительной мощности для обработки всех запросов.
С другой стороны, облачные OCR-движки являются платными, но поставщик ИИ будет обслуживать сервер за вас, поддерживать и улучшать модель. В этом случае вам придется смириться с тем, что ваши данные будут передаваться в облако провайдера. В обмен на это поставщик обрабатывает миллионы данных, чтобы предоставить очень производительный движок. Провайдер OCR также имеет серверы, которые могут поддерживать миллионы запросов в секунду без потери производительности и быстродействия.
Теперь, когда вы знаете плюсы и минусы движков с открытым исходным кодом и облачных движков, пожалуйста, подумайте о том, что есть и третий вариант: создать свой собственный движок OCR. В этом случае вы можете создать движок на основе собственных данных, что гарантирует вам хорошую производительность. Вы также сможете сохранить свои данные в безопасности и конфиденциальности. Однако у вас будет то же самое ограничение, связанное с размещением вашего движка. Конечно, этот вариант можно рассматривать только в том случае, если в вашей компании есть специалисты по анализу данных. Вот краткое описание того, когда следует выбирать между использованием существующих движков (облачных или с открытым исходным кодом) и созданием собственного:
OCR-движки с открытым исходным кодом:
Существует множество OCR-движков с открытым исходным кодом, большинство из них можно найти на github. Вот самые известные из них:
Tesseract:
Tesseract – это инструмент оптического распознавания символов (OCR) для JavaScript. То есть, он распознает и “читает” текст, встроенный в изображения.
Существует обертка, которая заставляет Tesseract работать с JavaScript. Tesseract поддерживает юникод (UTF-8) и может распознавать более 100 языков “из коробки”.
Tesseract поддерживает различные форматы вывода: обычный текст, hOCR (HTML), PDF, PDF с невидимым текстом, TSV и ALTO.
docTR
docTR – это сквозной OCR, предоставляемый Mindee. Он использует двухэтапный подход: обнаружение текста (локализация слов), затем распознавание текста (определение всех символов в слове). Таким образом, вы можете выбрать архитектуру, используемую для обнаружения текста, и архитектуру для распознавания текста из списка доступных реализаций.
Облачные OCR-движки:
На рынке представлено множество облачных OCR-движков, и у вас возникнут проблемы с выбором подходящего. Вот лучшие поставщики на рынке:
- Base64
- Cloudmersive
- OCR Space
- Google Cloud Vision Text Recognition
- Amazon Textract
- Microsoft Azure Computer Vision OCR
Все эти провайдеры OCR могут обеспечить хорошую производительность для вашего проекта. В зависимости от языка, качества, формата и размера ваших документов, лучший движок может варьироваться между всеми этими провайдерами. Единственный способ узнать, какого провайдера выбрать, – это сравнить производительность с вашими собственными данными.
Eden AI OCR API:
Именно здесь Eden AI вступает в ваш процесс. Eden AI OCR API позволяет вам использовать движки всех этих провайдеров с помощью уникального API, уникального токена и простой документации JavaScript.
Используя Eden AI, вы сможете сравнивать всех провайдеров с вашими данными, менять провайдера, когда захотите, и обращаться к нескольким провайдерам одновременно. Вы будете платить ту же цену за запрос, как если бы вы подписались непосредственно на API провайдеров, и не потеряете в производительности задержки.
Вот как использовать OCR-движки в JavaScript с помощью Eden AI SDK:
Если вы хотите вызвать другого провайдера, вам просто нужно изменить значение параметра “providers”. Вы можете посмотреть все доступные провайдеры в документации Eden AI. Конечно, вы можете вызвать несколько провайдеров в одном запросе, чтобы сравнить или объединить их.
Заключение
Как вы могли убедиться из этой статьи, существует множество вариантов использования OCR с помощью JavaScript. Для разработчиков, которые не обладают навыками работы с данными или хотят быстро и просто использовать OCR-движки, существует множество движков с открытым исходным кодом и облачных движков. У каждого варианта есть плюсы и минусы, и вы знаете, как выбрать лучший вариант для вас.
Если вы выберете облачный OCR-движок, вам понадобится помощь, чтобы найти лучший вариант в соответствии с вашими данными. Более того, поставщики OCR часто обновляют и обучают свои модели. Это означает, что в будущем вам, возможно, придется изменить выбор поставщика, чтобы сохранить наилучшую производительность для вашего проекта. С Eden AI вся эта работа упрощается, и вы можете настроить OCR-движок на JavaScript менее чем за 5 минут и в любой момент переключиться на лучшего поставщика.
Вы можете создать свой аккаунт Eden AI здесь и получить API-токен, чтобы начать внедрение OCR-движка на JavaScript!