Вжух — и распозналось: как на самом деле работают алгоритмы распознавания документов

Результат есть, а как оно там распознаётся, никто и не представляет. Решили на пальцах, паспорте и алгоритмах Dbrain рассказать, как происходит волшебство. Хотя «Вжух» нам тоже нравится.

Вжух — и распозналось: как на самом деле работают алгоритмы распознавания документов

В месяц мы распознаем более 500 тыс. паспортов для разных клиентов и их нужд. Банки хотят знать кому дают кредит или оформляют счёт. Крупным компаниям нужно быстро нанимать новых сотрудников.

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

Ключ к успеху: ИИ + люди

Мы уже писали, что искусственный интеллект хорошо и быстро учится, если у него есть обратная связь от людей. Алгоритмы Dbrain верно распознают до 92% всех документов. Часто этой точности хватает. Но когда нужен максимум, алгоритмам помогают верификаторы, тогда точность приближается к 100%, а у сетей появляется возможность обучаться на своих ошибках.

Мы используем технологию human-in-the-loop для исправления ошибок ИИ. Это достаточно сложный механизм, где алгоритму необходимо определить, что он мог ошибиться, передать ответ на людей, а после взять эти данные и использовать в дообучении. Мы часто используем для этой задачи людей из публичной платформы Яндекс.Толока, а значит, нам важно не передать туда никаких персональных данных. В целом, интересная задача.

Алексей Хахунов

Этапы и алгоритмы

1. Классификация документа

На входе: документ с любым количеством страниц

Внутри происходит несколько процессов:

  • Сначала изображение считывается.
  • Дальше детектор ищет и выделяет на входящем изображении области, похожие на документы и вырезает их. Каждой области присваивает тип: главный разворот паспорта России, водительское удостоверение образца 2011 года, СНИЛС и так далее. И если на фото одновременно сняты паспорт, водительское удостоверение и СНИЛС, система вырежет три отдельных картинки и распознает каждую.
  • Отдельная «голова» алгоритма отвечает за определение угла поворота отзеркаливания, чтобы на выходе отдать ровный, правильно ориентированный документ.

На выходе: массив изображений разделенных по типам документов с восстановленной ориентацией

Вжух — и распозналось: как на самом деле работают алгоритмы распознавания документов

2. Поиск структуры: полей, таблиц, печатей и подписей

На входе: кроп документа и его тип

Fieldnet — сервис, объединяющий в себе набор однотипных нейросетей, способных определять структуру документа: поля, специальные отметки, таблицы и тд. Он предсказывает пиксельные маски на полях документа, ориентируясь на окружающий контекст в документе. Здесь одно из важных отличий от подхода с использованием шаблонов — даже если поле перемещается в разных версиях документа, алгоритм его найдет.

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

На выходе: вырезанные поля

Вжух — и распозналось: как на самом деле работают алгоритмы распознавания документов

3. Все виды OCR

На входе: кропы полей

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

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

На выходе: машиночитаемый текст

Вжух — и распозналось: как на самом деле работают алгоритмы распознавания документов

4. Сервисы антифрода

На входе: все данные от предыдущих алгоритмов и само изображение

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

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

  • Текст набран поверх «пустой» картинки паспорта и шрифт не совпадает с оригиналом.
  • Шумы части изображения не совпадают с шумами самого изображения. Например, на фото, сделанное на один тип камеры наложили кусок с фото, сделанного на другую камеру.
  • Не совпадает степень jpeg сжатия части изображения. Аналогично, когда вставляют части из другого изображения, количество и степень jpeg-сжатий может отличаться от того изображения, куда вставляют.
  • На изображении виден сплайсинг — это когда, например, цифру из серии поменяли на цифру из номера паспорта.

На выходе: вероятность подделки документа

5. Верификаторы

На входе: кропы полей + названия документов и полей

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

На выходе: содержимое полей документов + ответ консенсуса

Вжух — и распозналось: как на самом деле работают алгоритмы распознавания документов

Вот так на самом деле выглядит распознавание документов в Dbrain, которое вы получаете за несколько секунд. А теперь ещё два важных пункта: скорость — за сколько алгоритмы справляются с паспортом и безопасность — где хранятся данные, которые вытащили нейросети.

Скорость распознавания

Никто не любит ждать. Клиенты компаний, когда загружают документы. Компании, когда поток клиентов огромный, а обработка документов занимает по 10 минут.

Хуже медленного распознавания может быть только медленное и неточное распознавание. Легко представить себе ситуацию, когда клиент ждет 15 минут подтверждения кредита на технику в магазине, а потом получает отказ из-за того, что система не распознала фамилию из-за блика на фото или не справилась с почерком в поле с адресом регистрации.

Наши сервисы справлялись с документами за 3 секунды, но в 2023 все поменялось, и время уменьшилось до 300 мс, про это мы расскажем позже.

Безопасность

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

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

Кроме того, мы не сохраняем изображения документов на устройстве, оно сразу отправляется на сервер банка. Благодаря этому, банки могут спокойно доставлять карты: курьер никому не передаст фотографии клиентских паспортов — у него их просто нет.

А что по кейсам

Решили, что текста и так много получилось, поэтому кейсы клиентов опишем в следующей статье. Спасибо за ваше время и внимание :)

8.8K8.8K показов
2.1K2.1K открытий
28 комментариев

Да никак не работает. Сколько юзал, где помогал знакомым выкладывать авто на площадки Яндекса, там сканер не распознавал СТС и права - совсем никак.

А всё дело в том, что в Гибдд выдают такую бумажку, которая свернута вровень вполовину высоты букв вин номера или иного текста. Либо у них отступы отрицательные, и буквы наезжают на следующую строку.

Вот бы делали помошника распознавания - с возможностью править, это уже другое дело.

Ответить

lдумаю дело в том, что они используют свое распознавание, а не наше :)

Ответить

А как решается вопрос безопасности персональных данных при использование Яндекс Толоки?
Ваше решение интегрировано в контур, но если ИИ не уверен, он передает данные третьей стороне.

Ответить

о, это очень хороший вопрос.

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

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

Ответить

если все это еще работает также быстро и четко, как здесь описано, то как говорится, респект и уважуха такому алгоритму

Ответить

согласен, на Пежо совсем не весело.

Ответить

А потом сотруднику банку вручную это все занести в программу, в чем смысл?

Ответить