05.05.2021 г.

Что такое OCR? Зачем нужно оптическое распознавание символов в современном мире мобильных технологий?

Говоря простым языком, OCR (optical character recognition, оптическое распознавание символов) — это процесс перевода текста на изображениях в текстовый формат. Основное применение технологии OCR находят в различных задачах, связанных с оцифровкой данных. Для отдельных подзадач OCR иногда используют названия наподобие «умное распознавание символов» (intelligent character recognition, ICR) или «распознавание визитных карточек» (business card recognition, BCR).

chto-znachit-raspoznavanie-ocr

Первые системы оптического распознавания символов появились практически одновременно с первыми компьютерами. В 50-х годах прошлого столетия с помощью коммерческих OCR системы начали обрабатывать отчеты о продажах, набранные на печатной машинке, и переводили их в перфокарты. С тех пор OCR пережил много изменений, главным из которых стала замена применяемых в алгоритмах распознавания разнообразных классификаторов символов искусственными нейронными сетями (ИНС, ANN).

Сейчас технологиям распознавания брошен серьезный вызов, когда все чаще речь идет о распознавании изображений с камер мобильных устройств или обычных веб-камер. Это могут фотографии или кадры из видеопотока. Чтобы лучше понять сложность поставленной задачи, давайте начнем с примера. Изображение документа для распознавания можно получить разными способами, и мы выбрали три из них:

1) взяли Canon CanoScan LiDE 300, отсканировали документ с разрешением 300dpi и бинаризовали результат;

2) сфотографировали документ на iPhone 11 при комнатном освещении;

3) сняли видео веб-камерой и взяли из него один кадр.

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

Binarized scan
Photo with iPhone 11
Web camera video frame

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

chto-znachit-raspoznavanie-ocr

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

В случае мобильного OCR (на Android, iOS или иных системах), или же распознавания на мобильном устройстве, возникают две трудности: ограничения на вычислительные мощности и неконтролируемые условия съемки. При работе с персональными документами, банковскими бумагами или, например, результатами теста на COVID-19 важно обеспечить максимум конфиденциальности и минимизировать риск утечки данных, так что распознавание «в облаке» сразу отпадает. Распознавание непосредственно на устройстве накладывает ограничения на вычислительную сложность алгоритмов, ведь система должна работать быстро и энергоэффективно. С другой стороны, меньшие ограничения на условия съемки значительно расширяют диапазон возможных искажений. Появляются проективные искажения, смазывание, перепады яркости, блики и многое другое. Все это существенно влияет на этап предобработки.

chto-znachit-raspoznavanie-ocr

В результате при мобильном распознавании, с одной стороны, возникает множество ошибок у стандартных подходов к сегментации, а с другой — из-за ограничения на вычислительные ресурсы многие современные нейросетевые модели, например, рекуррентные сети (RNN) или LSTM-сети становятся неэффективными или же излишне ресурсозатратными. Таким образом, для успешного распознавания изображений, снятых на камеры мобильных устройств (работающих на Android или iOS), необходимо придумывать абсолютно новые алгоритмы и переосмысливать уже известные подходы.

Примером переосмысления старых подходов можно считать замену алгоритмов сегментации, основанных на обработке изображений, на сегментирующие нейронные сети, как это уже когда-то произошло с классификаторами. Наиболее многообещающей моделью для такие подходов представляется полносверточная сеть (fully convolutional network, FCN).

chto-znachit-raspoznavanie-ocr

Замена отдельного изображения на видеопоток приводит к появлению концепции 4D OCR и новым возможностям распознавания, прежде всего, к алгоритмам межкадровой интеграции результатов распознавания. Более того, при обработке видео можно рассматривать процесс распознавания как anytime алгоритм, готовый в любой момент дать ответ. Выбор оптимального числа кадров можно осуществлять, решая задачу останова.

Вот так может выглядеть рабочий процесс системы оптического распознавания (OCR)?

Давайте приведем несколько примеров. Все ниже перечисленные процессы можно улучшить и ускорить с помощью OCR системы.

Платежи и переводы могут стать гораздо быстрее с добавлением распознавания банковской карты . Замена ручного ввода данных на сканирование QR, AZTEC, PDF417 или другого типа штрихкода вместе с распознаванием карты поможет избежать раздражающих ошибок во введенных данных и улучшить впечатление конечного пользователя от банковского приложения, онлайн-магазина или даже оффлайн магазина.

При продаже билетов и регистрации на рейс пассажирам требуется вводить свои личные данные. Автоматическое сканирование МЧЗ (машиночитаемой зоны) или паспорта позволит сделать эти процессы более удобными для пользователей и минимизировать число ошибок в данных.

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

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

А что об общедоступных OCR решениях?

В наше время существует много общедоступных open-source распознавателей текста. Такие решения могут быть очень полезны в образовательных целях или для учебного демонстрационного приложения. Однако они могут быть не просто бесполезны, а опасны для настоящих «боевых» коммерческих систем. При этом, их существенным недостатком окажется не только точность и скорость распознавания, но и уязвимость для внешних атак.

Атаки на нейронные сети — это популярная тема для научных исследований. Главные типы атак — отравление данных и атака уклонением с помощью состязательных примеров. При отравлении данных ошибки вводятся в сеть на этапе обучения. А при применении сети распознаватель может совершить специфические серьезные ошибки. Единственный способ избежать такой атаки — быть уверенными в своих данных. А как можно быть уверенным в данных, которых вы никогда не видели? При атаке уклонением злоумышленник пытается заставить сеть дать неверный ответ. Иногда он даже может предопределить этот ответ. Для открытых систем оптического распознавания текста такие примеры можно посчитать, так как эти системы общедоступны. Можно просто скачать модель и подобрать нужные примеры.

А теперь чуть больше об OCR сервисах Smart Engines

В Smart Engines мы разрабатываем OCR решения, которые могут работать с фотографиями, сканами или видеопотоком в реальном времени. Условия съемки могут быть самыми разными — не нужно специально фокусировать камеру или же искать хорошо освещенное место. Наше ПО работает автономно на конечном устройстве, никуда не передает данные клиента, не хранит их и не требует интернет-соединения. При разработке нашего OCR модуля мы активно пользуемся генерацией искусственных данных и не используем предобученные модели. Таким образом, наше решение оказывается гораздо более устойчивым для внешних атак.

Программные продукты Smart Engines, в которых мы применяем собственные технологии OCR: 

Smart ID Engine — SDK для сканирования более чем 1600 типов удостоверяющих личность документов со всего мира, напечатанных с использованием латиницы, кириллицы, арабицы и других письменностей;

Smart Code Engine — решение для распознавания банковских карт, одномерных и двумерных штрихкодов, МЧЗ и других кодированных объектов;

Smart Document Engine — система автоматического анализа и распознавания деловых документов, форм и анкет.

Как работают наши OCR технологии в мобильных приложениях Android и iOS

Чтобы попробовать наши продукты в действии, вы можете скачать демо приложение из App Store или Google Play.

    

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

Запросить триал-версию SDK

Наши клиенты

Мегафон

В сети МегаФон оформляют сим-карты с помощью технологии распознавания Smart ID Engine

Газпромбанк

Газпромбанк планирует обрабатывать заявки на кредит с помощью ИИ от Smart Engines

Билайн

Билайн использует технологии Smart Engines для распознавания и проверки документов

МТС

В терминалах выдачи сим-карт МТС используются технологии Smart Engines

Заказать продукт

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