Yandex.Vision на коммерческих проектах: попробовали сами, теперь расскажем вам

Разберём, для чего подходит и не подходит сервис, почему интеграция с ним может быть долгой и сложной, и что в его работе вызывает вопросы.

Yandex.Vision на коммерческих проектах: попробовали сами, теперь расскажем вам

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

Плюсы и странности Yandex Vision

Пользоваться сервисом действительно дёшево: распознавание тысячи документов будет стоить всего 100 рублей. Есть преднастроенные шаблоны. Например, система безошибочно считывает паспорта и водительские удостоверения. Шаблон для паспорта мы встроили в форму регистрации пользователей на одной из разработанных платформ.

Yandex.Vision на коммерческих проектах: попробовали сами, теперь расскажем вам

Работает сервис и с изображениями: распознает лица, умеет классифицировать контент (соответствие нужному качеству, наличие взрослого контента), может отследить вотермарку на изображении.

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

С другой стороны, пословное распознавание с указанием точности будет кстати, когда нужно из большого документа фиксировать только определённые значения. Так у нас было на «Цессионарии», но о нём позже. Можно задавать интервал корректности. Например, отображать в системе результат распознавания, только если его точность от 90 до 100 или не ниже определенного значения. Если результат хуже, проверять результат распознавания живым человеком. Такое бывает, например, если документ криво отсканирован.

На момент написания этого текста Yandex Vision работает с ограничениями. Среди прочего это касается распознавания языков.

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

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

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

Yandex.Vision на коммерческих проектах: попробовали сами, теперь расскажем вам

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

Для чего мы использовали сервис

Yandex Vision пригодился нам в двух продуктах. В одном с его помощью настроили распознавание паспортных данных для регистрации на платформе. Это тривиальная задача, с которой сервис на 100% справляется.

Сложную интеграцию с Yandex Vision мы реализовали для системы «Цессионарий». Она автоматизирует работу департамента судебного взыскания долгов. Распознавать предстояло сканы судебных приказов, чтобы минимизировать ручной труд и повысить степень автоматизации процессов в компании. Бизнесу дешевле оплачивать сервис, чем платить за ту же работу специалистам.

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

Для таких нетривиальных задач стоит оценить и возможности создания специализированного ML под процессы компании. Однако, Yandex Vision тоже можно адаптировать под запрос, дополнив его функциональность кастомной логикой.

Опыт сложной интеграции: задачи, объём работ и результаты

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

Сначала для теста мы взяли API Yandex Vision без подключения к основной системе. Специалисты загружали архив отсканированных документов, а в ответ получали Excel-таблицу. В ней отображались распознанные данные для каждого файла из архива: ФИО, дата, номер кредитного договора, сумма задолженности и т.д. Так, в течение пары месяцев проверяли работоспособность технологии, а затем внедрили Yandex Vision непосредственно в «Цессионарий».

Yandex.Vision на коммерческих проектах: попробовали сами, теперь расскажем вам

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

Чтобы Yandex Vision корректно считывал нужные данные, мы разработали дополнительную логику работы сервиса.

Методом пристального взгляда выцепляли в документах нужные слова, за которыми следовали искомые данные, изменяющиеся от документа к документу. Например, после слов «взыскать с» должно идти ФИО, которое нам нужно. Или «задолженность по договору займа №», и дальше идет номер, который будет зафиксирован. Такие паттерны встроили в логику распознавания на уровне кода, загрузили тестовую пачку документов и смотрели, что не распозналось. Повторяли вышеописанные действия, пока не вывели схемы для распознавания подавляющего большинства документов.

Встройка API в нашу систему заняла около получаса. А вот накрутка дополнительной логики с паттернами документов потребовала уже около трёх недель. К тому же, нужно было настроить процесс сборки результатов распознавания из кусочков с вероятностями в читаемую информацию. Это тоже заняло примерно пару недель. Итого около месяца на интеграцию.

На запуске мы добились корректного распознавания 80% всех документов. Остальные 20% – документы, составленные грубо говоря «своими словами», опять же из-за отсутствия шаблона.

Многие фичи Yandex Vision до сих пор находятся в стадии Preview, о чем свидетельствуют соответствующие пояснения в документации. Однако это не мешает эффективно использовать сервис для решения задач, даже если они нестандартные. Теперь мы знаем, как это работает и с радостью поможем сделать интеграцию для вашего бизнеса! 🙂

1919
2 комментария

Отличное решение. Также важно отметить что для паспортов (РФ и загранов) есть хорошая система от Smart Engines

1
Ответить

Привет!

Да, SmartEngines мощные ребята с крутым продуктом.
Правда, у нас пока не было возможностей попробовать их решения на боевых задачах. Но руки чешутся попробовать и внедрить :)

Ответить