Дубликат бесценного груза: История распознавания паспорта РФ от нулевых до наших дней
Программы распознавания данных удостоверений личности появились не так уж и давно - всего пару десятилетий назад, так что их можно правомерно считать практически ровесниками самого паспорта РФ. Но за это время система OCR прошла большой путь, а наряду с качеством и результативностью повысилась и ее доступность. Из громоздких и редких специальных сканеров технология перекочевала буквально в карман каждого из нас, и теперь обработать любой документ можно с обыкновенного смартфона или веб-камеры. Мы в Smart Engines занимаемся этим не первый год и рассказываем, как в нашей стране развивались системы распознавания паспорта РФ.
Часть I: Начало начал
Пейзажная зарисовка
Вернемся в недалекое прошлое. На дворе 2005 год - бум электронной экономики в России, доткомы, «пузатые» мониторы, (доллар по 27), Crazy Frog и рингтоны на мобильниках… Распространение сканеров и появление высокопроизводительных компьютеров подталкивает активное развитие технологий распознавания документов. Борьбу за рынок OCR ведут две крупные компании - Cognitive Technologies, созданная пионером в сфере ИИ, выдающимся отечественным ученым Владимиром Арлазаровым, и ABBYY, детище выпускника МФТИ Давида Яна.
К этому моменту обе компании уже имеют собственные ноу-хау. К примеру, Cognitive Technologies давно выпустила программы OCR Tiger и CuneiForm, сотрудничает с INTEL, IBM, Epson, Samsung, Xerox, Canon, «Газпромбанком», «Норникелем» и другими крупнейшими компаниями по всему миру. Ее алгоритмы распознавания уже более десяти лет интегрированы в графический редактор Corel Draw, программу Lotus Organizer, системы оцифровки визиток, банковских карточек и так далее.
В послужном списке разработчиков - даже успешное обучение чтению по-русски первых в стране "законных" сканеров HP. Обо всем этом мы подробно рассказывали здесь и здесь.
Короче говоря, за плечами у Cognitive Technologies более десяти лет успешных разработок и внедрений, а впереди - еще большие перспективы.
Но одно дело книги, журналы и отдельные виды документации и совсем другое - удостоверение личности, по сути главный документ гражданина любого государства. Тут и специальные шрифты, и сложный защитный узор из волнистых линий на фоне (называется он, кстати, гильош), и контрастные по цвету надписи, и разные другие “помехи”.
Распознавание паспорта необходимо было не просто полностью автоматизировать (похожие программы на тот момент уже существовали), но и вывести на промышленный уровень. А для этого требовалось соответствующее качество и возможность простой интеграции технологии. Задача разработать универсальное и надежное решение оказалась не из простых. Одной амбициозности тут было мало.
Первая промышленная система от Cognitive Technologies
Летом 2005 года в компании Cognitive Technologies два молодых кандидата наук – Владимир Викторович Арлазаров (внук Владимира Львовича, ныне генеральный директор Smart Engines), и Дмитрий Петрович Николаев (ныне технический директор Smart Engines) – взялись за дело.
И результат не заставил себя долго ждать: пару месяцев спустя они представили первую версию программного продукта под названием Cognitive Passport. Тогда же компания вышла с официальным релизом (интернет все помнит - или почти все).
В качестве основы для Cognitive Passport использовалась собственная разработка компании - интеллектуальная технология Scanify, позволяющая автоматизировать обработку документов на бланках гособразца и ввод текстовых и графических данных из них. Система могла похвастаться знаковыми конкурентоспособными параметрами: умела работать с документами, имеющими линию сгиба или корешок (которые могли неплотно прижиматься к стеклу сканера); могла распознавать текст, пересекающийся с линиями графики (штрихами подписи, штампами и печатями) или имеющий ту же контрастность, что и цветной фон гербовой бумаги. Технология «понимала» не только паспорт РФ или загранник, но и водительское удостоверение, военный билет, свидетельство о регистрации ТС, свидетельство обязательного пенсионного страхования.
Не обойти вниманием и программный интерфейс Scanify API, выпущенный вместе с Cognitive Passport. С его помощью разработчики могли интегрировать функционал распознавания удостоверяющих документов в сторонние программно-аппаратные комплексы: от СКУДов до пропускных систем. То есть, во-первых, продукт был универсальным, а во-вторых максимально понятным и простым.
Как сказали бы сейчас - интуитивным: загружаешь или сканируешь исходный документ и тут же получаешь всю информацию по полочкам. Чистая магия!
Кроме того, система Cognitive Passport стала первым в России программным продуктом, умеющим обрабатывать документы, выполненные на гербовой бумаге. Это было большим достижением, учитывая, что сложный голографический фон (например, те же водяные знаки) затруднял всем прошлым алгоритмам искусственного интеллекта сканирование отдельных зон документа. В общем, получилась конфетка!
Что еще могло решение начала 2000-х?
распознавание паспортов с линией MRZ (машиночитаемой строкой идентификационных документов, в том числе всех паспортов РФ);
захват и автоматическое занесение личных данных (ФИО, адрес проживания, номер и серия документа, кем выдан) и фотографии в базы данных СКУД;
работа с любыми сканерами документов;
быстрое распознавание.
К слову о быстроте. Новая система Cognitive Passport API 2.0 с CUDA-ускорением от Nvidia, выпущенная в 2010 году, обрабатывала документы вдвое, а изображения - в 30 раз быстрее. Такой впечатляющий - и первый в стране - результат был достигнут благодаря использованию возможностей графического процессора компьютера (GPU), помимо центрального (CPU). Это открыло путь к решению многих задач, ранее недоступных из-за отсутствия необходимых аппаратных мощностей.
Спрос на технологию для распознавания паспорта РФ оказался колоссальным, что привело к десяткам внедрений за следующие годы - автоматизация ввода данных из паспортов оказалась нужной и полезной туристическим фирмам и гостиничным сервисам, авиакомпаниям и вузам, программистам и так далее.
Вот лишь некоторые из примеров:
ТГУ им. Державина набирает студентов с помощью Cognitive Passport
Cognitive Passport интегрирован с системой безопасности «Бастион»
Cognitive Passport интегрирован в ПО для автоматизации нотариальной деятельности
Cognitive Passport интегрирован в ПАК «Посетитель» для регистрации посетителей
Cognitive Passport интегрирован в АС регистрации пассажиров «Эльбрус-Авиа»
Барнаул - родина Ковбоев
Вслед за учеными из «Когнитивных технологий» созданием собственной системы распознавания идентификационных документов занялись в возглавляемой Давидом Яном компании ABBYY.
На базе программного продукта ABBYY FlexiCapture был создан инструментарий для разработчиков ABBYY FlexiCapture Engine, а тот в свою очередь стал фундаментом для нового продукта, выпущенного в 2013 году, - ABBYY PassportReader SDK. Это было специализированное решение для ввода данных из паспорта РФ, заграничного паспорта, свидетельства о рождении, удостоверения личности, водительских прав, а также ID-документов Казахстана, Азербайджана, Белоруссии и других стран СНГ. Как признавались разработчики, их программа фактически была «оберткой» на .Net вокруг сильно урезанной FlexiCapture Engine.
Вслед за Cognitive Passport технология от ABBYY научилась обрабатывать и извлекать данные из документов со сканера и из сохраненных файлов. Более того, как уверяли в компании, на основе их инструментария разработчики могут создавать приложения любой архитектуры: от простых ПК-программ до масштабируемых серверных решений, используемых для распределенной обработки ID-документов.
Казалось бы, уже и этих программных возможностей было достаточно. Однако пространства для совершенствования оставалось по-прежнему много: распознавать документы можно было только при помощи сканера, а ведь уже вовсю шла эра серьезных мобильников с приличными камерами.
Мобильной предстояло сделать и саму технологию.
Часть II: Встречайте на смартфонах!
Smart PassportReader: Не только селфи
Время шло, систем обработки документов возникло бессчетное множество. Качество и скорость распознавания только росли, программы дорабатывались и улучшались, но похвастаться мобильностью не мог, увы, никто. А между тем на дворе уже во всю гремели десятые, смартфонов с приличной камерой производилось все больше и больше. Использовались они уже не только для селфи.
Вместе с современными устройствами в повседневную жизнь пришла необходимость как можно более полно использовать их функционал. В том числе работать с документами: сохранять, считывать, распознавать. А главное - иметь такую возможность под рукой 24/7. Громоздкие олдскульные сканеры и компьютеры давно начали морально устаревать, и потому одним из главных конкурентных преимуществ вышедшей на рынок компании Smart Engines (ее возглавил Владимир Викторович Арлазаров) стала доступность ее систем распознавания на смартфонах.
В ходе разработки пришлось столкнуться с рядом сложностей. Во-первых, необходимо было создать продукт, который именно распознает документы на мобильном устройстве, а не отправляет их изображения в облачные сервисы и получает результаты назад. Такое условие не удивительно - учитывая закон «О персональных данных» (152-ФЗ), чем быстрее любая распознающая программа “забудет” содержимое документов, тем лучше и для разработчиков, и для клиентов.
Вторым валким моментом стали ограниченные возможности самой телефонной камеры: появление бликов, неравномерное освещение, искажение пропорций и смазывание из-за «тряски» объектива и тому подобное. Плюс защитные детали - гильоширный фон, голографические элементы, глянцевая поверхность - и «человеческие» факторы в виде механических повреждений или неаккуратного заполнения… А ведь нужен был продукт, ничуть не отстающий по эффективности от сканеров.
Работу начали с паспорта гражданина РФ, причем сосредоточились не на всей книжке, а только на третьей странице. Именно на ней содержится наиболее часто востребованная информация - не только в прикладных задачах, но и просто в культуре (вспомните русский загранник персонажа Мэтта Деймона из фильма «Идентификация Борна»).
В большинстве прикладных задач клиенту требуются, как правило, серия и номер паспорта, фотография, фамилия, имя, отчество, пол и дата рождения. Из распознания этих “основных” полей и было решено исходить.
Уже в марте 2015 года, было выпущено ИТ-решение Smart PassportReader. Оно распознавало третью страницу паспорта на сканах, ксерокопиях и фотографиях, а также в видеопотоке камеры мобильного устройства или веб-камеры в режиме реального времени. Отдельно о распознавании в видеопотоке заметим, что оно стало уникальным преимуществом этого продукта. Сложность заключалась в том, что при распознавании с камеры, в отличии от отсканированного образа, ИИ надо быть уверенным, что на каждом из кадров видеопоследовательности присутствует целевой документ.
Решение работало на iPhone 4S, Samsung Galaxy S3 и других флагманских моделях того времени. Качество распознавания серии и номера паспорта для отсканированных изображений уже в первой версии Smart PassportReader составляло более 99%, ФИО – 95%.
И главное - никаких облачных сервисов.
Если вдруг вам интересно углубиться в тему или просто окунуться в прошлое, приглашаем к прочтению наших более старых публикаций - они об этом.
Smart IDReader или кому важно знать законы перспективы
На третьей странице разработчики не остановились - вскоре к ней добавилась и вторая, а еще немного времени спустя программа научилась читать разворот целиком. Затем к паспорту РФ добавились загранпаспорт, водительские права и вообще любые документы с машиночитаемой зоной MRZ и без нее. Вместо громоздкого Smart PassportReader название сменили на более универсальное - Smart IDReader.
Программа плавно адаптировалась под новые операционные системы и идентификационные документы и в конечном счете стала полностью платформонезависимой. Ее оптимизировали для архитектур «Эльбрус», ARM и x86, совместили с мобильными операционными системами iOS и Android, операционными системами семейств «Эльбрус», Linux (включая Astra Linux), Windows, macOS и Solaris.
В обновленной версии Smart IDReader 2.0, выпущенной 21 июня 2018 года, для чтения стали доступны буквально сотни самых разных документов. Вторая версия могла похвастаться применением глубоких разреженных дискретных нейронных сетей, что позволило существенно расширить ее эффективность даже при самых неудачных вводных. К примеру, новая программа была способна исправлять проективные искажения на фотографиях и в видеопотоке, а также поддерживала произвольные ракурсы съемки, то есть «понимала» даже “кривые”, сделанные наспех фотографии. Или не фотографии - документ достаточно было просто показать на камеру, и с помощью ИИ все искаженные геометрические параметры книжки учитывались, определялись и восстанавливались.
Для подтверждения того, насколько далеким от идеала мог быть исходный документ, приведем иллюстрацию:
Помимо распознавания паспорта РФ, СНИЛС, водительских удостоверений, СТС и документов с машиночитаемой зоной, доступного уже в первой версии, Smart IDReader 2.0 умела распознавать 15 новых видов документов РФ, 20 документов стран бывшего СССР и более 200 документов стран мира на более чем 35 языках.
Отдельно заметим, что использование в версии вычислительно-эффективных алгоритмов машинного зрения и 8-битной модели вычислений научило Smart IDReader 2.0 “потреблять в пищу” не только документы размера A5 и B5 (то есть размером с паспорт), но и произвольные формы размера А4 - анкеты, договоры, заявления и прочее.
Программист vs. чистописание
Вторым принципиальным нововведением Smart IDReader 2.0 стало чтение рукописного текста - далеко не всегда такого каллиграфически аккуратного, как хотелось бы. Начать освоение технологии решили с детекции рукописного заполнения основного разворота паспорта РФ.
С одной стороны, обычно такие документы, как паспорт, заполняют чуть более аккуратно, чем медицинские рецепты, и потому не нужно было адаптировать системы под распознавание откровенных каракулей. С другой же - предстояло столкнуться со всей вариативностью каллиграфических начертаний кириллических букв: кто-то пишет их шире или уже, выше или короче, с «изысками» или без. Чтобы добиться поставленной цели, необходимо было сформировать датасет рукописи.
Казалось бы, уж с этой задачкой программисты смогли бы справиться без больших усилий, но вдруг выяснилось, что в первую очередь научить писать нужно самих программистов. Некоторые настолько серьезно погрузились в мир формул и цифр, что сами напрочь позабыли, как пишутся некоторые буквы.
Чтобы убедиться в этом, попробуйте разобрать содержание следующей картинки:
В общем, пришлось на несколько дней переориентировать программистов компании на другую задачу - заполнение тетрадей с прописями, дабы написанные ими буквы были более читаемыми.
Эту забавную историю мы, кстати, уже рассказывали пользователям Хабра. Там еще много примеров каллиграфии от наших программистов).
По итогу, собрав около тысячи заготовок с различными текстами и почерками в единый датасет, мы смогли выдохнуть. И вернуться к алгоритмам.
Дальше дело пошло быстре! Итог - за год программа научилась распознавать рукописные паспорта, в нее была интегрирована функция детекции рукописного заполнения и возможность распознавания, помимо номера документа, пола, дат и номера подразделения.
Таким образом эта фундаментальная проблема, которая казалась на тот момент практически нерешаемой, осталась позади. С точки зрения технологичности выстоять перед Smart IDReader 2.0 не смог бы ни один, даже самый неаккуратный, небрежно заполненный или нелюбимый хозяином паспорт.
К слову, обогатилась и клиентская база Smart IDReader: пользователями системы стали Альфа-Банк, Почта Банк, Тинькофф Банк, АльфаСтрахование, Ингосстрах, Ренессанс Страхование, СКБ Контур, QIWI и др.
Часть III: Паспорт от и до
Smart ID Engine. Сканируй меня полностью
Приближаемся к современности. Последним непокоренным бастионом на нашем маршруте остался режим чтения всей “книжки” паспорта. В начале 2022 года пал и он: Smart Engines представила городу и миру систему для полностью автоматического распознавания всех страниц паспорта РФ. Она была внедрена в Smart ID Engine начиная с версии 1.9.0.
Искусственный интеллект самостоятельно находил на изображениях номер конкретной страницы паспорта, автоматически распознавал информацию главного разворота печатного или рукописного заполнения, читал все штампы о ранее выданных паспортах или месте регистрации.
Как несложно догадаться, программа поддерживала весь спектр ввода документа - на фотографии, скане или видеопотоке, в приложении и онлайн. Причем скорость распознавания, благодаря применению легких нейронных сетей - собственной технологии OCR от Smart Engines, на смартфоне составляла 0,15 секунды.
Точность, надежность и быстрота не снижались, даже когда клиент показывал паспорт на камеру страница за страницей. В общем, распознать все страницы паспорта РФ практически в любых условиях стало возможным. Воспользоваться технологией можно было даже в тех ситуациях, когда требовалась расширенная или полная информация о документе. И что еще важнее - надежность и конфиденциальность (это и открытие счета в банке, и взятие ипотеки, и проведение разного рода сделок с недвижимостью, и даже трудоустройство).
Помимо паспорта РФ ранние версии Smart ID Engine уже поддерживали 1887 типов документов с 2839 уникальными шаблонами. С последующими обновлениями и доработками эти цифры продолжали расти, а функционал - расширяться.
Например, осенью 2022 года в программу был внедрен алгоритм зрительной памяти, позволивший практически мгновенно определять тип документа. Smart ID Engine поддерживала функционал докеризации и могла без особых усилий интегрироваться в инфраструктуру заказчика. Впоследствии в программу был добавлен модуль выявления признаков фальсификации документов на основе ИИ и задал программистам новый вектор для развития программы.
Smart ID Engine 2.0. А ты точно настоящий?
Не переводите деньги мошенникам! Сейчас подобные фразы звучат из каждого утюга и всем изрядно приелись, а ведь еще не так давно о распространении подобной противоправной деятельности говорили нечасто.
Что уж там, даже сегодня благодаря поддельным удостоверениям, договоренностям и другим "внушительным" документам злоумышленники порой оказываются настолько убедительны, что без особого труда заставляют очередную жертву переписать на них квартиру или перевести накопленную за годы пенсию. Поэтому, решая задачи распознавания, мы параллельно задумались над тем, чтобы сделать наши системы способными выявлять подложные документы.
Здесь заметим, что в сфере проверки подлинности документов Smart Engines помог производитель продукции в сфере биометрии, RFID и паспортных систем "Интек", ставший впоследствии многолетним партнером компании.
Уже в 2018-2019 годах мы – между прочим, первыми в России – создали программно-аппаратный комплекс для автоматического считывания данных из документов и проверки их подлинности. Он включал специальный мультиспектральный сканер от ГК Интек и наше ПО.
Устройство обрабатывало полученные в разных диапазонах изображения паспорта и искало на них признаки компрометации документа. Например, в ультрафиолете контролировалось наличие или отсутствие защитных волокон светло-зеленого и желтого свечения; в инфракрасном диапазоне проверялась видимость специальных элементов документа (на первой и последней страницах в ИК-диапазоне наблюдается только часть изображения, видимого при обычном освещении), а в оптическом – характерные особенности оформления документа и проводился анализ результатов распознавания.
Система продолжала постоянно дорабатываться и к весне 2023 года, когда было выпущенное масштабное обновление - Smart ID Engine 2.0, программа запросто выявляла 36 признаков подделки паспорта РФ. Большая часть инструментария мошенников оказалась бессильной против новой версии: программа умела проверять “живость” (liveness), находила отфотошопленные документы, выявляла копипаст и поддельные голограммы, верифицировала шрифты и зоны MRZ. Помимо этого, система обнаруживала на фотографиях следы использования нейросетей, проверяла метаданные файлов, определяла зоны с затертыми данными и многое другое.
И, конечно, била тревогу, если документ был подделан или просрочен. Всего проверка подлинности охватывала 66 самых разных параметров. Последняя “серьезная” задача распознавания была фактически решена.
Функционал и надежность нашего софта заслужили внимание со стороны самых разных клиентов. В особенности тех, кто предъявляет высочайшие требования к безопасности технологических решений. Иллюстративный пример - технология распознавания Smart Engines используется в системе автоматических пропускных пунктов аэропорта “Шереметьево-2”, а уж тут требования к надежности максимально как нигде строги.
А недавно мы смогли реализовать функционал распознавания паспорта РФ еще и в браузере, что тоже потребовало от нас немало усилий.
Разумеется, в наш бюрократизированный век остаются сотни и тысячи самых разных документов, чье распознавание еще предстоит настроить или улучшить. Да и самим системам обработки документов всегда есть куда расти, так что у компаний-разработчиков всегда будет, чем заняться.
И это, конечно, радует.
Распознавание паспорта РФ сегодня
Технологические достижения в сфере OCR настолько тесно вошли в нашу жизнь, что уже сложно представить, что кто-то в современном мире возьмется заполнять поля паспортных данных вручную или того хуже - доверит это посторонним людям на краудсорсинговых платформах.
Выбирая современные программные продукты на базе OCR, компании могут полностью автоматизировать процесс обслуживания клиентов, минимизировать возможность ошибок из-за человеческих факторов, а главное - без уменьшения надежности и не подвергая себя репутационным рискам экономить время клиентов и увеличивать собственную прибыль.
Поэтому с уверенностью утверждаем: смело ожидайте расширения области применения технологий распознавания. Новые решения могут найти применение в медицине, образовании, юридической сфере и других отраслях, где требуется обработка, аутентификация и верификация больших объемов текстовых данных. Работа над освоением новых горизонтов сегодня ведется как никогда активно, но пока без спойлеров.
Здесь вновь скромно отметим, что наши программные продукты оказались крайне востребованы в самых разных областях - Smart ID Engine внедрили девять из тринадцати крупных российских банков (Т-Банк, ВТБ, Альфа-банк, Совкомбанк, Газпромбанк, МКБ, Росбанк, банк “Открытие”, Райффайзенбанк. Программу также применяют Кредит Европа Банк, МТС Банк, банк Синара, Хоум Кредит), другие банки, страховые компании, ритейлеры, авиаперевозчики, операторы сотовой связи и много кто еще. К чему это все? Да к тому, что с большой долей вероятности наши решения окружают и Вас, дорогой читатель. Если у вас есть паспорт (а в этом мы не сомневаемся), вы можете убедиться во всем описанном выше самостоятельно.
Доставайте его из широких штанин - и вперед!
P.S. Если вам нравится изучать ретроспективы или рефлексировать на тему прошлого, приглашаем к прочтению других наших статей:
«Чтобы достичь индустриального уровня западных стран, нужно поставить конкретную задачу. Ее никто никому не ставит» - интервью с отцом систем распознавания
https://habr.com/ru/companies/smartengines/articles/802759/
Миссия выполнима: как Smart Engines обучила нейросеть распознавать все страницы паспорта РФ и находить подделки