2023 год оказался для нашей компании, Smart Engines, крайне успешным со всех точек зрения – бизнес-результатов, научных достижений и, разумеется, технологий. И нашими успехами мы традиционно хотим поделиться с вами.
Подведение итогов мы решили начать с обзора наших самых заметных разработок. Некоторыми из них, кстати, вы, сами того не подозревая, можете пользоваться каждый день. Это и технология для упрощения платежей UniversalPay, и распознавание рукописной прописки, и считывание неограниченного числа QR-кодов, и много-много чего еще.
Мы собрали для себя и для вас топ-18 разработок Smart Engines за минувший год – приглашаем под кат, чтобы с ними познакомиться.
1. Распознавание в браузере – еще быстрее
Браузерное распознавание мы представили еще в июне 2021 года, однако большим спросом оно пользуется в последние два года. Причина очевидна: мобильные приложения банков исчезли из магазинов App Store и Google Play, а привычный функционал необходимо было безболезненно для клиента перенести в браузер. О том, как это работает, коротко можно прочитать тут. О том, как мы внедряли решение в Альфа-банк, здесь.
В этом году мы потратили немало сил на то, чтобы ускорить работу всех наших систем в браузере. И нам это удалось:.
В распознавании паспорта РФ мы ускорились за год примерно на 20%.
Сейчас на десктопе паспорт РФ у нас распознается в WASM уже за 0.7с за один кадр, в браузере на iPhone (15 Pro) – за 1.4с за кадр. На андроиде паспорт пока распознается долго - около 6.5с (Realme C55), но мы над этим продолжаем работать.
В распознавании кодифицированных объектов – а это в контексте WASM для нас первоочередная задача – мы тоже преуспели. Даже рукописный номер телефона в браузере мы распознаем уже за 0.17c на кадр на десктопном браузере, 0.14с на iPhone (15 Pro) и 1.7с на кадр на андроиде (Realme C55).
За этот год мы даже распознавание полнотекстовых документов смогли адаптировать для браузера: одна страница считывается меньше чем за 3 секунды на iPhone 15 Pro.
2. Мультиспектральная проверка подлинности (работает как для РФ, так и СНГ)
Больше года мы – при поддержке Фонда содействия инновациям – работали над созданием системы мультиспектральной проверки подлинности. Она одновременно решает две ключевые задачи:
Мгновенно извлекает данные из паспортов граждан РФ и других стран СНГ;
Проверяет документ на подлинность и действительность в трех диапазонах – оптическом, ультрафиолетовом и инфракрасном.
На весь процесс ввода и проверки у системы компании Smart Engines уходит не более трех секунд.
Программный продукт позволяет выявлять подделки, муляжи документов и документы с переклеенной фотографией, проверяя десятки различных признаков подлинности – например, аутентичность бланка, наличие защитных волокон, соответствие используемых шрифтов, корректность машиночитаемой зоны MRZ, признаки фальсификации штампов и печатей и многие другие. Для документов, имеющих встроенный носитель информации, реализовано автоматическое чтение и проверка данных.
Кроме того, в комплекс включена фирменная технология небиометрической сверки лиц, позволяющая проводить кросс-валидацию лица предъявителя и фотографии в документе/чипе.
3. Технология для упрощения платежей UniversalPay
UniversalPay – разработка, которой мы особенно гордимся. Благодаря UniversalPay клиенту не нужно думать о том, как и чем именно он хочет заплатить — встроенная в программу фирменная нейросеть обучена самостоятельно определять, что показывает ей человек.
Это может быть:
Любой QR-код;
Банковские карты — эмбоссированные, напечатанные и гравированные — 21 платежной системы, включая «Мир»;
Рукописный или напечатанный номер телефона, а также несколько номеров телефона одновременно или номера, записанные с переносами на нескольких строках;
Рукописный или напечатанный номер банковской карты, в том числе записанный с переносами на нескольких строках;
Банковские реквизиты — ИНН, КПП, БИК и номер банковского счета, в том числе если все находятся на одном изображении.
Распознавание данных выполняется как на фото, так и в видеопотоке, после чего запускается нужный сценарий платежа. Если человек наводит камеру на табличку, где присутствует и номер телефона, и номер банковской карты, то ему предлагаются несколько вариантов для оплаты.
Этот функционал уже доступен клиентам ВТБ, а вскоре появится и в ряде других отечественных банков.
4. Рукописная прописка
Мы давно обучили ИИ распознавать рукописное заполнение в паспорте – на эту тему у нас есть довольно забавная статья на Хабре. Однако штамп о регистрации, заполненный от руки, оставался для нас последним значимым, еще не преодоленным рубежом.
В 2023 году мы, наконец, научились распознавать рукописные данные из прописки. Для этого на датасете, содержащем 1,3 млн синтетически сгенерированных изображений рукописных строк, мы обучили рекуррентные сверточные нейросети. Они способны на лету распознавать символы с учетом контекста. Разработанная система за 0,4 секунды обнаруживает штамп с пропиской на изображении, отделяет рукописный текст от печатного и распознает его.
Если на страницах в паспорте РФ есть несколько штампов о регистрации и о снятии с регистрационного учета, то система распознает их все. При этом пользователю при распознавании паспорта не нужно беспокоиться о том, как заполнены эти штампы – рукописно или машинописно. Данные адреса извлекаются автоматически и предоставляются в удобном структурированном виде.
5. Распознавание платежных реквизитов
Эту технологию мы разработали для решения одной принципиальной задачи – быстрой и удобной оплаты тех платежек, на которых нет QR-кода.
При совершении банковского платежа человеку нужно вручную внести от 29 до 50 цифр. ИНН частного лица состоит из двенадцати цифр, юридического – из десяти. КПП и БИК – каждый по девять цифр. Номер расчетного банковского счета – это 20 цифр и в нем может подряд идти 5 и более нулей. При этом все реквизиты обычно напечатаны мелким шрифтом, поэтому ввести их быстро без ошибки и проверить (особенно нули) сложно не только на телефоне, но и на компьютере. А в случае ошибок платеж может не пройти или деньги могут уйти не туда, а сами реквизиты нужно будет вводить заново.
Теперь мы обучили ИИ мгновенно находить и распознавать платежные реквизиты на изображении. Происходит проверка правильности заполнения реквизитов, и все, можно платить.
6. Цифровая форензика
В рамках проекта с Российским фондом развития инновационных технологий (РФРИТ) мы сделали и представили технологию для проверки подлинности документов в цифровых каналах.
Наше ПО получило функции, которые позволяют выявить разногласия в данных, аномалии и расхождения, характерные для попыток мошеннических действий.
Система работает на двух уровнях:
На первом уровне анализируются изображения и выявляются попытки вмешательства, цифровые изменения.
Вторая часть цифровой проверки — это проверка самого документа. У документа достаточно признаков подлинности, которые можно проверить в оптическом диапазоне. Для российского паспорта это, например, голограммы. Также реализованы проверка бланка паспорта, проверка способа заполнения паспорта и защита от атаки «пересъемка с экрана».
Теперь система обнаруживает подделку даже в том случае, если мошенник пытается вместо оригинального документа предъявить ксерокопию или показать документ на мониторе своего устройства.
7. Сканирование поврежденных QR
Мы нашли способ, как считывать обрезанные или поврежденные платежные QR-коды. С его помощью можно успешно отсканировать QR, даже если у него по краям отсутствуют от 10% до 30% площади.
Разработка позволяет решить крайне важную проблему – считывать обрезанные QR-коды, которые размещаются на платежках, счетах, квитанциях. На таких документах есть четко ограниченная область для нанесения баркода. Даже небольшой сдвиг при печати кода приводит к его обрезке. Такие коды содержат ключевую информацию, такую как имя получателя, номер счета, ИНН, БИК и т.д. Таким образом, корректное декодирование QR-кода позволяет отказаться от ручного ввода при совершении платежа.
Типовая система для успешного определения и дальнейшего считывания QR требует, чтобы в поле видимости находились 4 объекта: три шаблона поиска и один шаблон наведения. Когда у QR отсутствует один или два шаблона поиска – код не считается.
Мы же ориентируемся не только на шаблоны поиска, но и структуру самого кода. Наш алгоритм на основе искусственного интеллекта восстанавливает утраченную информацию. Например, если отсутствует один или два из шаблонов поиска, то на основе внутренней структуры кода предсказываются их координаты даже в случае проективного искажения кода.
8. Распознавание рукописного номера банковской карточки
Это еще одна наша разработка, ориентированная прежде всего на банки – детектор для считывания рукописных и напечатанных номеров банковских карт.
Банковские карты мы распознавали давно, но иногда номер карточки написан не на карточке, а на другом носителе, и чтобы по этой карте заплатить, его приходилось вводить вручную.
Система находит номер банковской карты, даже если вокруг него напечатан или написан другой текст, на фотографии, скане или в видеопотоке, а затем считывает его. Нейросеть распознает как 16-значные номера платежных карт, которые сегодня наиболее распространены, так и карты с 13, 15, 18 и даже 19 цифрами.
9. Поток баркодов или “баркодная сессия”
Наша система Smart Code Engine давно умела сканировать не один баркод, а несколько (до 48 баркодов за сессию). Причем она справлялась с этой задачей одинаково успешно – и в том случае, если баркоды показывались ей последовательно, и если несколько баркодов показывались одновременно.
Однако мы решили, что эта технология ограничений иметь не должна. Теперь софт может распознавать неограниченное количество QR и других баркодов – 10, 20, 30, 50, 100, 1000 и так далее. Одним словом, ровно столько, сколько вам нужно.
Смартфон с установленной программой Smart Code Engine может рассматриваться ретейлерами в качестве альтернативы традиционному портативному сканеру штрихкодов. Технология применима на складах, на конвейерах, в работе курьерских почтовых компаний.
Вот как это работает:
10. Распознавание номеров телефонов и карт, записанных в несколько строк
Иногда происходит так, что, записывая номер телефона, мы не можем уместить его в одну строку. То же самое – с номером карты. Места не хватило, так бывает.
Для того, чтобы при совершении перевода не пришлось перепечатывать его вручную, мы дополнили наш программный продукт Smart Code Engine уникальной фичей. Теперь номер телефона или карты можно распознать, даже если он записан в две-три-четыре строки. Да даже в том случае, если цифры записаны в столбик одна под другой.
11. Паспорт РФ по скорости и качеству распознавания сопоставим с QR-кодом
Мы полностью переработали нейросетевой стек, сократив время обработки одного кадра. Теперь ИИ может считать любую страницу документа – в том числе штамп с пропиской – так же легко и быстро, как это происходит при сканировании QR-кода во время оплаты покупок. Причем распознается документ в любых условиях:
12. Распознавание согнутых и мятых страниц
Эта фича, на первый взгляд, кажется незначительной. Тем не менее, она позволяет выйти на совершенно новый уровень удобства с точки зрения пользователя.
Теперь, если перед вами мятый или согнутый листок, не нужно его разглаживать руками или утюгом. Сети обучены таким образом, что сами смогут выпрямить лист и распознать содержимую на нем информацию.
13. MRZ – в 2 раза быстрее
Мы в корне переработали алгоритмы и методы распознавания машиночитаемой зоны (MRZ) в паспортно-визовых документах и достигли значительного улучшения качества работы детектора. Число ошибок удалось сократить на 15% для всех паспортов и на 25% для паспортов РФ, при повышении скорости в два раза.
Благодаря новым детектирующим сетям мы можем распознать MRZ при любом освещении и под любым углом.
MRZ – это область, располагающаяся в нижней части документа и необходимая при пересечении границ, регистрации на рейс, заезде в отель, удаленной идентификации и т.д.
14. Арабский, корейский, японский
Наша OCR распознает 103 языка. Благодаря новому поколению нейросетевых архитектур для OCR нам удалось добиться существенного улучшения – на 10-15% – сразу нескольких языков, таких как арабский, корейский и японский.
Более того, в этом году мы обучили сети распознавать не только строки, которые пишутся справа налево или слева направо, но и те, которые располагаются по диагонали. Это касается в первую очередь слоговых языков – например, бенгальского (официальный язык Бангладеша) и различных языков, на которых говорят в Индии.
15. Томографическое восстановление интересующей области
Наш программный продукт для томографической реконструкции Smart Tomo Engine мы тоже существенно доработали. Теперь с его помощью можно воссоздавать изображение не всего исследуемого объекта, помещенного в томограф, а только интересующей области.
Это важно, так как зачастую рабочая область детектора превосходит сам объект и образуется много неинформативного пространства, которое нет необходимости восстанавливать. Кроме того, часто стоит задача исследовать только часть объекта – например, отремонтированный фрагмент изделия, будь то сварной шов или часть микросхемы. В зависимости от размера объекта время реконструкции можно сократить до 50-70%.
16. Anytime – в томографе
Технология томографии “под контролем реконструкции” (monitored reconstruction) – уникальная и является нашей авторской разработкой. Она позволяет снизить дозовую нагрузку (что важно для медицинских применений) и время проведения измерении. Последнее актуально для измерений в нанометровом диапазоне.
При обычной схеме сканирования сначала регистрируются все данные, а потом уже происходит реконструкция. В схеме «any‑time» результаты томографической реконструкции анализируются сразу после получения каждой новой серии проекций и, если точность реконструкции уже достигнута или, напротив, ясно, что она не может быть достигнута из-за тех или иных проблем, то принимается решение о досрочной остановке процесса сканирования.
В этом году мы наконец соединили теорию томографии “под контролем реконструкции”с томографом и получили первые практические результаты. Она реализована в нашем программном продукте для томографической реконструкции Smart Tomo Engine – больше о ней мы рассказывали здесь.
17. Технология учета рассеяния рентгеновского излучения
Природа рентгеновского излучения такова, что оно частично рассеивается объектом, причем разные химические элементы, из которых состоит просвечиваемый объект, рассеивают излучение по-разному. Рассеянные рентгеновские лучи, отклоняясь от предполагаемого прямолинейного распространения, регистрируются в самых разных областях детектора или вообще не попадают на поверхность детектора.
Наш программный продукт для томографической реконструкции Smart Tomo Engine теперь учитывает этот фактор рассеяния, что крайне важно для исследования металлических объектов сложной формы – например, лопастей турбин и иных деталей машин. А важно это потому, что на реконструкции рассеяние проявляется в виде полос или теней вблизи и между областями с высокой поглощающей способностью и в виде размытия на границах объекта. Новая технология учета рассеяния, внедренная в этом году, позволяет получить четкие изображения, по которым можно определить и однородность объекта, и восстановить изгибы составляющих частей.
18. Алгоритм расчета дискретного преобразования Радона с максимально возможной точностью дискретизации
Самая важная часть томографии – алгоритм реконструкции. Любой алгоритм реконструкции содержит операцию обратного проецирования, а некоторые – и прямого. Эти операции очень трудоемки, а в Smart Engines всегда велись разработки по ускорению алгоритмов реконструкции. Так, для обратного проецирования мы стали использовать алгоритм Брейди быстрого вычисления дискретного преобразования Радона.
В этом году мы разработали алгоритм быстрого и одновременно точного вычисления дискретного преобразования Радона. Он позволяет не только сократить время реконструкции в разы, но и сохранить непревзойденную точность алгоритма реконструкции.
Вместо заключения
Мы славно потрудились в 2023 году, но ни в коем случае не собираемся на этом останавливаться. Планы на 2024 год у нас ничуть не менее грандиозные!
Скоро мы собираемся поделиться с вами нашими научными итогами и бизнес-результатами. Ну а пока предлагаем ознакомиться с нашими наиболее яркими публикациями за минувший год: