Миссия выполнима: как Smart Engines обучила нейросеть распознавать все страницы паспорта РФ и находить подделки

c1725428a59d602a9d3ab89185296840.png

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

Выбор ниши

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

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

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

1) Достаточно быстро. На весь процесс уходило от 2 до 26 секунд в зависимости от производительности сканера;

2) Весьма аккуратно. Число ошибок было существенно меньше по сравнению с ручным вводом.

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

В 2015 году мы предположили, что привязку системы распознавания документов к офису можно и нужно преодолеть. Для этого, подумали мы, требуется совершенно новая технология, не только для ПК, но и для смартфонов. Так у нас родилась идея написать программу распознавания ID-документов для мобильного телефона. И первым таким документом, разумеется, стал паспорт гражданин РФ.

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

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

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

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

Первые шаги

Олдскульный айфон и олдскульная система распознавания

Олдскульный айфон и олдскульная система распознавания

В том же 2015-ом году мы выкатили собственное ИТ-решение для распознавания паспорта Smart PassportReader, которое за 1–3 секунды извлекало все необходимые данные из третьей страницы паспорта — поля «серия», «номер», «ФИО», «пол», «дата рождения» и «место рождения».

Smart PassportReader распознавал третью страницу паспорта на сканах, ксерокопиях и фотографиях, а также в видеопотоке камеры мобильного устройства или вебкамеры в режиме реального времени. Распознавание документа в видеопотоке стало нашим уникальным преимуществом. Решение работало на iPhone 4S, Samsung Galaxy S3 и других моделях. 

Качество распознавания серии и номера паспорта для отсканированных изображений уже в первой версии Smart PassportReader составляло более 99%, ФИО — 95%.

Так мы создали систему распознавания паспорта Smart PassportReader, которая превосходила существующие на рынке программы по скорости и качеству распознавания документа.Но это было только начало создания еще более сложной и востребованной ИТ-системы.

Этапы большого пути: развитие системы распознавания паспорта Smart Engines

842de99eacce092788731d396c002f51.png

Мы остановимся на нескольких этапах развития нашей системы распознавания паспорта. Каждый из них был своеобразным восхождением на Эльбрус.

Распознавание рукописного паспорта РФ

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

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

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

Такие паспорта заполняются аккуратным каллиграфическим — хотя бы по мнению паспортиста — почерком. С одной стороны, это облегчает задачу: нам не придется распознавать «врачебные каракули» (оставим эту проблему Google) и прочие слабо читаемые тексты. Но, с другой стороны, нам предстояло столкнуться со всей вариативностью каллиграфических начертаний кириллических букв. Уже на тот момент мы сделали вывод, что это скорее серьезный вызов, чем непреодолимая проблема.

Задачу распознавания рукописного текста в паспорте мы разбили на четыре этапа:

  1. Подготовка датасетов;

  1. Детекция наличия рукописи в паспорте;

  1. Сегментация рукописной строки на символы;

  1. Распознавание символов и постобработка;  

На решение этих подзадач ушел год. Для того, чтобы создать датасет рукописи, мы раздали всем нашим программистам тетрадки «в линеечку» и попросили их переписать заранее приготовленные тексты. Тут мы столкнулись с первым разочарованием.

Как бы это грустно ни звучало, но оказалось, что наши программисты совсем разучились писать. И нельзя сказать, что они не старались. Нет, они просто забыли как пишутся буквы от руки. Вот пример того, что получалось:

Наши программисты пишут (ДО)

Наши программисты пишут (ДО)

Буквы пляшут, размеры не соблюдены… Пришлось искать в интернете прописи и, как в первом классе, сажать всех за прописи в прямом смысле этого слова! За пару дней мы, набив руку, были готовы повторить попытку сбора «сырых» данных для датасета рукописного текста. Буквы стали ровнее, слова — читабельнее. А некоторые умудрялись даже привносить какие-то элементы каллиграфии. Вот, посмотрите сами на новые образцы:

Наши программисты пишут (ПОСЛЕ)

Наши программисты пишут (ПОСЛЕ)

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

И вот что получили:

09c7e560bc8c5a5eed7a21ae2c69240a.png

Проверка паспорта на подлинность

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

В 2019 году мы — первыми в России — совместно с нашим партнером, отечественным производителем продукции в сфере биометрии, RFID и паспортных систем «Интек», создали программно-аппаратное решение для автоматического считывания данных из документов и проверки их подлинности.

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

bdd7498340cc470a8a8d0813c688d3e5.png

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

Этот ПАК сегодня установлен в нескольких банках и успешно помогает им бороться с мошенничествами.

В 2022 году социальная значимость программного продукта Smart ID Engine была признана государством. Smart Engines получила грант Российского фонда развития информационных технологий (РФРИТ). На эти средства наша команда разработала модуль выявления признаков фальсификации документов и атак на предъявление документов в оптическом диапазоне.
 
Разработчики реализовали в Smart ID Engine несколько десятков новых функций. Вот лишь несколько из них:

— верификация параметров шрифта, которыми выполнены документы;

— выявление физических и цифровых аномалий фотографии лица, нанесенной на документ;

— выявление разногласий в данных (например, отличаются данные в полях и в машиночитаемой зоне);

— поиск, локализация и идентификация элементов защиты типа голограмм;

— детекция оптически-переменной краски.

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

Таким образом, наши новые фичи полезны в контексте борьбы с мошенничеством. Если аферист придет в банк с фальсифицированным паспортом и захочет взять кредит — Smart ID Engine тут же обнаружит подделку.

Распознавание паспорта в виде книжки

Последней фундаментальной проблемой при распознавании паспорта РФ, которую оставалось решить, стал режим распознавания «книжки» паспорта. В чем сложность этой задачи?

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

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

Вот как описывает суть этой задачи и способ ее решения технический директор Smart Engines кандидат физико-математических наук Дмитрий Николаев:

«Человеческий мозг способен распознавать объекты с почти произвольных ракурсов, не тратя на это значительных ресурсов. Когда мы берем в руки паспорт, то мы не разворачиваем его полностью перед тем, как прочитать. Мы просто приоткрываем паспорт до тех пор, пока не начнем отчетливо видеть буквы. При этом угол между плоскостями страниц может быть все еще острым, а образ текста на сетчатке существенно искажен перспективой. В восприятии же человека эти искажения отсутствуют. Реализовать такой же принцип работы распознающей программы на базе ИИ было для нас вызовом с того времени, как в 2015 году мы показали первую версию системы распознавания паспорта в видеопотоке и на фотографиях. Решить проблему распознавания «книжки» мы смогли благодаря созданию модели ИИ, способной точно и быстро локализовать и нормализовать плоские фрагменты сложных трехмерных объектов на изображениях с учетом законов перспективы физического мира»

Вывод: задача распознавания паспорта РФ полностью решена

Сегодня Smart ID Engine — мощнейшее решение, которое распознает не только паспорт РФ, но и огромный  перечень других ID-документов.

Smart ID Engine распознает разворот паспорта РФ за 0,15 секунды. Полный цикл распознавания паспорта в видеопотоке, начиная от показа камере и заканчивая получением результата, составляет 0,75–1 секунду.

Для нас важно, что Smart ID Engine базируется на фирменной технологии распознавания GreenOCR®, которая создает минимальный углеродный след. Количество энергии, которая выделяется на каждое распознавание, эквивалентно 0,0001 гр. CO2. Но мы с лихвой компенсировали все распознавания, высадив в лесу 7,5 тысяч сеянцев дуба черешчатого.

ba42e98257292635ce73a7ee5db41ed0.png

Сейчас Smart ID Engine используется 9-ю из 13-ти системообразующих банков РФ. Программный продукт применяют Газпромбанк, Совкомбанк, Альфа-Банк, МКБ, «Открытие», Росбанк, Тинькофф Банк, Райффайзенбанк, Кредит Европа Банк, МТС-Банк, Банк Синара, Банк Хоум Кредит, банк «Санкт-Петербург», «Металлинвестбанк» и другие.

Благодаря решению Smart ID Engine банк «Кубань Кредит» ускорил обслуживание плательщиков в 2 раза, «Банк Мир Привилегий» — в 10 раз.

Smart ID Engine также позволила усовершенствовать внутренние процедуры у наших клиентов. Поскольку Smart ID Engine обеспечивает автоматическое распознавание паспорта с меньшей долей ошибок, чем у человека, некоторые наши клиенты отказались от ручного ввода персональных данных паспорта. Теперь эта задача выполняется исключительно Smart ID Enginе. Человек не может вмешаться в ее работу. При этом сотрудник получает другие задачи, сохраняя рабочее место. В то же время использование технологии искусственного интеллекта Smart Engines при распознавании паспорта РФ вместо ручного труда операторов  минимизирует риск утечки персональных данных через сотрудников.

© Habrahabr.ru