Автоматизация проверки подписей
Клиент
Компания работает в финансовом секторе. Потоки документов – ее повседневная реальность. Договоры, заявления и сопроводительные формы поступают сотнями, и часть операций требует обязательного подтверждения подписью клиента. Пока подпись не проверена, документ не может быть передан дальше по процессу.
Проверка подписей выполнялась вручную и требовала участия операционных сотрудников. Это занимало время, а цена ошибки была высокой: неверно принятая подпись могла привести к финансовым и правовым рискам.
Вызовы
Проблема заключалась не в отдельных документах или сотрудниках, а в самом процессе – этап с ручной проверкой подписей фактически стал узким местом во всем документообороте. Автоматизация выглядела логичным шагом, но как именно к ней подступиться – клиент не знал.
Готовые решения не подходили. Одни требовали выноса проверки в отдельный сервис, что ломало существующий процесс. У других нельзя было управлять логикой принятия решений, из-за чего терялся контроль над рисками. Кроме того, клиент не хотел зависеть от внешнего поставщика в юридически чувствительной части процесса.
В 2019 году он обратился к нам за разработкой кастомного решения.
С самого начала нам было понятно: решение имеет смысл только в том случае, если оно убирает ручную проверку из типового потока (а не просто ускоряет отдельные операции). Любой другой подход добавил бы лишний инструмент в процесс, но не закрыл бы основную проблему.
Именно поэтому мы сделали ставку на машинное обучение – не ради технологии, а как практичный способ автоматизировать типовые проверки и оставить сотрудникам только действительно спорные случаи.

Границы применения ML
В 2019 году использование ML в подобных задачах уже было возможным, но требовало аккуратной работы с данными, обучением и интерпретацией результатов. Ошибки в этой точке стоили бизнесу слишком дорого – и мы это прекрасно понимали.

Ускорение процессов без роста рисков
Проверка подписей – юридически значимый этап. Его нельзя отдавать системе целиком – в спорных случаях решение должен принимать человек. При этом сам процесс должен сохраниться без изменений логики. Также важна была воспроизводимость и логируемость – на случай внутренних проверок и возможных разборок.
Как мы реализовали Data Science-решение
1. Начали с процесса
Разобрали, как проверка подписей работает у клиента в реальности: где сотрудники тратят время, на каких шагах возникают задержки и какие случаи действительно требуют ручного вмешательства.
2. Типовые проверки и спорные случаи
На основе анализа процесса все случаи проверки мы разделили на два класса. Собственно, типовые – подписи, которые соответствуют эталону и не требуют дополнительного анализа. Спорные – пограничные ситуации, где результат нельзя уверенно интерпретировать без участия сотрудника.
Ключевой критерий – степень уверенности результата. Система оценивает сходство по набору визуальных признаков – форме, пропорциям, характеру линий и стабильности отдельных элементов. Признаки не задавались вручную: модель самостоятельно выделила устойчивые паттерны на обучающей выборке.
3. Ошибки и снижение рисков
Мы четко разделяли ML-ошибку и финтех-риск и закладывали это в архитектуру решения:
— В пограничных случаях автоматического финального решения нет – документ уходит на ручную проверку.
— Обучение модели выполнялось только на данных клиента, без использования сторонних баз.
— Все автоматические проверки воспроизводимы, логируемы и прозрачны для последующего разбора.
— Мы сознательно не стремились к стопроцентной автоматизации. Подпись – изменчивый биометрический признак, он зависит от контекста, времени и носителя. Поэтому порог автоматического прохождения был задан консервативно и откалиброван совместно с клиентом: лучше отправить документ на ручную проверку, чем пропустить сомнительный случай.
4. Внедрение и контроль
Машинное обучение использовалось строго для одной задачи – быстрой оценки сходства подписей. Модель не работает изолированно и не принимает решений самостоятельно. Ее роль – снять нагрузку с сотрудников на типовых проверках.
На этапе прототипа мы проверили гипотезы и метрики в Matlab, после чего перенесли решение в промышленную реализацию на C# и встроили его в бизнес-процессы клиента. Перед сравнением изображения подписей проходят предобработку с использованием OpenCV: выравнивание, очистку от шумов и нормализацию.
На старте система работала в режиме параллельной проверки. Отслеживались ключевые метрики: доля автоматических совпадений, количество спорных случаев и ошибки.
5. Как это работает для клиента
Мы спроектировали решение так, чтобы не добавлять новых этапов в устоявшийся процесс. Сотрудник открывает документ в привычном интерфейсе. Выбирает эталонную подпись из ранее подтвержденных и запускает проверку. Модель сравнивает подписи и возвращает результат: уверенное совпадение – документ проходит дальше без визуальной проверки; пограничный случай – документ отправляется на ручную проверку.
Технологии
Бэкенд
C#
Бэкенд
.Net
Библиотека
OpenCV / EmguCV
Математика и расчеты
Matlab
Результат
Клиент получил автоматизацию проверки подписей без перестройки бизнес-процессов. Ключевым здесь стал подход к использованию ML. Мы не пытались заменить человека или автоматизировать процесс целиком. Модель выступает фильтром для типовых случаев и снимает рутину, не заменяя человека в критических точках.
Процесс заметно ускорился. Около 70% проверок проходят автоматически, среднее время проверки одного документа сократилось примерно в три раза. Сотрудники подключаются только к тем самым спорным случаям, где действительно нужна ручная валидация.
Клиент получил обученную модель, рассчитанную на текущие объемы и сценарии работы. При изменении бизнес-контекста или росте нагрузки модель можно дообучить в рамках отдельной задачи. Мы проектировали архитектуру и документацию так, чтобы обеспечить дальнейшее развитие без привязки к конкретному подрядчику.
В целях соблюдения NDA некоторые элементы интерфейса и данные на скриншотах показаны в обобщенном виде.
проверок проходят автоматически.
меньше времени в среднем занимает одна проверка.
Что происходит дальше:
Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.
Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.
Договариваемся с вами о следующей встрече, чтобы согласовать предложение.
Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.