Автор: Александр Солонский,
архитектор решений для обработки данных в MobiDev

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

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

Давайте рассмотрим подход к разработке программных решений с оптическим распознаванием символов (OCR) для обработки американских водительских прав и идентификаторов для распознавания текста.

OCR обычно является задачей машинного обучения и компьютерного зрения

Эта технология началась со сканирования книг, распознавания текста и рукописных цифр (набор данных NIST). Обнаружение печатного текста несколько отличается, так как идентифицировать тексты в дикой природе, такие как дорожные знаки, номерные знаки или наружные рекламные вывески, значительно сложнее.

OCR обычно используется для оптимизации и автоматизации. Вот некоторые примеры: проверка тестовых ответов, перевод в реальном времени, распознавание уличных знаков (Google Street View) и поиск по фотографиям (Dropbox). Для каждого случая используется совершенно другое решение OCR.

Выберите технологию OCR после уточнения бизнес-целей и вариантов использования

Применение алгоритмов машинного обучения к системе биометрической идентификации — одна из новых тенденций ИИ. В нашем случае у клиента есть автоматизированная система проверки личности. Он проводит всестороннее сопоставление, сравнивая официальный документ, такой как водительские права, с фотографией (селфи).

Данные, используемые для оптического распознавания символов:

  • Фотография лицевой стороны водительского удостоверения для распознавания лиц и проверки OCR
  • Обратная сторона удостоверения личности для получения данных штрих-кода: имя, дата рождения и т. д.
  • Фотография для сравнения с фотографией на удостоверение личности

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

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

Выбор оптимального подхода OCR к машинному обучению

Когда все варианты использования были определены, инженеры по науке о данных и машинному обучению приступили к изучению существующих API OCR и SDK. Существует множество готовых к использованию решений с открытым исходным кодом, а также коммерческих.

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

Безопасность и удобство использования механизма OCR

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

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

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

Так как теперь у нас были более-менее стандартизированные фотографии, мы смогли установить оптимальный баланс «безопасность/удобство» для OCR. Многие OCR на основе компьютерного зрения работают как «черные ящики», но нам нужны были и необработанные данные.

Водительское удостоверение – сложный документ

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

Помните о недостатках системы OCR

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

Определение потока НИОКР

Типичные вопросы, которые задают перед тем, как приступить к разработке ИИ-решения: какие данные мне нужны и как я могу использовать имеющиеся у меня данные?

Понимание данных и интеллектуальный анализ данных для OCR

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

Исходный набор данных содержал около 100 водительских прав и 150 удостоверений личности. Мы использовали как открытые наборы данных, так и собранные нами сами.

Исследование и оценка OCR с помощью машинного обучения

В качестве первого шага мы сравнили доступные коммерческие решения и решения OCR с открытым исходным кодом. После составления короткого списка мы использовали наш собственный набор данных идентификаторов для оценки производительности на реальных данных. В качестве метрики было выбрано количество прямых совпадений имени/фамилии/даты рождения.

В результате мы решили использовать Google Vision, который дает наиболее точный результат сопоставления (80% в обоих случаях). Сервис Google Vision оказался самым точным и надежным сервисом. Другие решения имеют другие недостатки:

  • Сложная эДНК
  • Неконтролируемая безопасность
  • Неизвестные единицы измерения
  • Негибкий сторонний сервис

После Google по производительности уступают сервисы Abbyy и Tesseract. Однако производительность сервиса Google почти в 2 раза выше.

Окончательная оценка и принятие решения должны быть сделаны на основе данных UberTesters.

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

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

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

Реализация механизма OCR

Разработка решения для защиты данных с компонентом OCR потребовала сочетания науки о данных, машинного обучения и разработки программного обеспечения. Одна из задач заключалась в том, чтобы проанализировать необработанные данные, возвращенные Google Vision, и сравнить их с информацией из штрих-кодов со 100-процентной точностью. Несмотря на то, что у Google лучшая система OCR, она все равно допускает ошибки. Эти ошибки допустимы во многих случаях, но не в целях безопасности. Чтобы решить эту проблему, мы создали дополнительный уровень для предотвращения попыток мошенничества, направленных на использование этих недостатков OCR.

Дополнительные меры безопасности с использованием алгоритмов машинного обучения OCR для MRZ

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

Но даже с Google Vision уровень точности распознавания далеко не 100%. Именно по этой причине мы разработали дополнительный компонент для перекрестной проверки. Мы проанализировали распространенные ошибки, которые OCR имеет тенденцию делать при обнаружении данных.

Например, символы «1/I/i/l», или «0/O/Q/D», выглядят очень похоже и могут быть неправильно интерпретированы системой. Сбор этой статистики ошибок позволил нам помочь и исправить OCR, если произошла ошибка.

Основные выводы

Подытожим наш опыт:

  • Определите бизнес-цели и варианты использования, которых вы хотели бы достичь с помощью решения ИИ. Это сильно влияет на подходы, архитектуру и инструменты, которые будут использоваться.
  • Разберитесь со своими данными. Данные должны соответствовать задачам вашего проекта и быть максимально реальными
  • Количество и источники данных. После того, как вы разберетесь с данными, вы сможете принять взвешенное решение о том, какие наборы данных — открытые или коммерческие — лучше всего удовлетворяют потребности вашего бизнеса.
  • Создание собственной модели Data Science и обучение нейронной сети. В этом случае лучше использовать меньше данных, но максимально релевантные. Использование огромных наборов данных, которые не точно отражают реальные данные вашего конкретного проекта, не даст успешных результатов.

Статья полностью опубликована на https://mobidev.biz