Меня зовут Вадим Петросян, я директор по развитию бизнеса в ITFB Group. Почти десять лет я занимаюсь тем, что сегодня называют Intelligent Document Processing (IDP). Всё началось с досадной ситуации в договоре, которая грозила крупными расходами, но вместо этого породила одного из лидеров российского рынка OCR/IDP. Сегодня EasyDoc — платформа №1 по версии CNews, которую используют крупнейшие банки, пенсионные фонды и госорганы. А в 2016 году мы просто отказались платить 50% прибыли вендору за его движок — и решили создать свой.
Точка отсчёта: как мы ввязались в драку
В 2018 году мы работали над проектом для крупного федерального банка — системой распознавания счётов на оплату. Планировали использовать движок одного из лидеров рынка. Договор с заказчиком уже был подписан, но перед заключением соглашения с вендором наши юристы обнаружили подвох: вместо лимитированной лицензии в документе прописали безлимитную.
Мы попросили исправить. В ответ получили ультиматум: либо принимаем их условия и поставляем заказчику безлимитную лицензию, либо отчисляем 50% прибыли от проекта. Такое положение было неприемлемо. Я всегда выступаю за win-win, но здесь его не было и в помине.
Мы отказались. И приняли решение: делаем свой продукт. Так появилась нулевая версия EasyDoc. Мы погрузились в новую для себя тему, изучали литературу и исследования по распознаванию. Первый стек собрали на open-source компонентах: Tesseract для OCR, OpenCV и Leptonica для предобработки, прикладную часть — на Java. Проект сдали в срок. Но главное открытие было впереди: на чистом open-source промышленный продукт не построить. У нас был большой прикладной опыт, но собственный продукт команда создавала впервые. И столкнулись с трудностями.
Сложность №1: кривые сканы и компьютерное зрение
Первые промышленные запуски показали: основной поток — не сканы, а фотографии. Люди делают их в условиях плохого освещения, с руки, что вносит искажения и резко снижает качество распознавания. Tesseract справлялся слабо — точность была всего 30–40%.
Пришлось писать собственный слой предобработки. Мы внедрили автоматическое выравнивание, подавление шума, бинаризацию, обрезку полей. Использовали OpenCV, Leptonica и свои алгоритмы. Точность выросла до 85–90%. В этот момент мы поняли: качественное распознавание начинается с подготовки изображения.
Первая версия технологии включала:
- Предобработку
- Снятие текстового слоя
- Извлечение данных через регулярные выражения и нечёткий поиск
Результаты оказались хорошими — во многом благодаря качественной предобработке.
От счётов ко всему подряд
Первый EasyDoc распознавал счёта на оплату: ЖКХ, штрафы, налоги. Тогда ещё не было универсальных QR-кодов — всё приходилось извлекать из текста и макета. Потом добавили паспорта, СНИЛС, ИНН, 2-НДФЛ.
Мы реализовали несколько прикладных решений для разных направлений. Это можно считать второй версией продукта — проект для крупного банка в 2019–2020 годах, где обрабатывали разные типы документов на реальных объёмах.
Вскоре стало ясно: рынку нужна универсальная платформа, которую можно настроить под любой процесс и любой документ. В 2018–2019 годах родилась концепция EasyDoc как энтерпрайз-платформы для потоковой обработки любых документов. Мы переписали архитектуру, внедрили микросервисы, добавили поддержку российских ОС и СУБД — импортозамещение тогда только набирало обороты, но мы смотрели вперёд.
Одним из факторов, повлиявших на развитие продукта, стал выход на рынок инвестиций и получение гранта. Для этого пришлось систематизировать бэклог, изучить конкурентов, пересмотреть архитектуру.
К третьей версии мы добавили не только обработку и извлечение данных, но и собственную студию разработки — Capture Studio. Она позволяет создавать модели распознавания и классификации, управлять сценариями обработки, пользователями и доступом.
В 2021 году EasyDoc внесли в реестр отечественного ПО.
Как это устроено сегодня: архитектура и pipeline
Сейчас EasyDoc 4.0 — это набор микросервисов, оркестрируемых в Kubernetes. Основная бизнес-логика на Java (Spring Boot), ML-сервисы — на Python, лёгкие API — на Node.js. Базы данных — любые, по умолчанию используются российские (PostgreSQL-like), объектное хранилище — S3-совместимое (MinIO). Платформа работает on-premise: клиенты устанавливают её в своём контуре из соображений безопасности.
Весь процесс обработки настраивается в low-code конструкторе (Workflow Designer): пользователь перетаскивает блоки и соединяет их:
[Импорт] → [Предобработка] → [Классификация] → [Извлечение] → [Постобработка] → [Верификация] → [Экспорт]
Гибкие проверки без кода
В системе реализованы механизмы no-code проверок, которые можно настраивать без изменений в коде.
Проверка комплектации пакетов документов
Например, клиент банка подаёт документы на кредит: обязательные (паспорт, СНИЛС) и дополнительные (справка 2-НДФЛ, водительское удостоверение).
Если отсутствуют обязательные документы — процесс приостанавливается. При отсутствии дополнительных — система лишь уведомляет, но не блокирует.
Междокументарные проверки
Клиент предоставляет паспорт, 2-НДФЛ и анкету — все содержат пересекающиеся данные: ФИО, дата рождения, доход, место работы.
Система сопоставляет данные между документами. При критичных расхождениях (разные ФИО) — процесс останавливается. При некритичных (небольшие различия в написании) — уведомляет и фиксирует замечания.
Правила, уровни критичности и логика обработки настраиваются через low-code / no-code интерфейсы.
Этапы обработки: инженерные детали
1. Импорт
Документы поступают из сканеров, папок, e-mail, CRM, ERP, ECM. Есть готовые коннекторы и OpenAPI. Пакетные файлы (PDF, TIFF) автоматически разделяются на отдельные документы — с помощью детектора концов страниц по визуальным признакам.
2. Предобработка
Самый недооценённый этап. В реальности сканы часто бывают низкого качества. Наши алгоритмы (OpenCV + свёрточные сети) выполняют:
- Поворот и выравнивание (по текстовым блокам)
- Удаление шума (медианная фильтрация, морфологические операции)
- Бинаризацию (адаптивный порог)
- Обрезку полей (детекция границ документа)
- Улучшение контраста на плохо читаемых участках
Этот этап повышает точность OCR на 10–20 процентных пунктов. Без него любые нейросети работают плохо.
3. Классификация
Прежде чем извлекать данные, нужно определить тип документа: счёт-фактура, паспорт, договор. Мы используем гибридный подход:
- Свёрточная сеть (CNN) — для визуальных признаков (макет, расположение полей)
- Random Forest — для принятия решений на основе объединённых признаков
- LLM или нечёткий поиск — в сложных случаях (например, отличить старый паспорт от нового)
Пользователь может дообучить классификатор в интерфейсе Capture Studio: загружает 10–20 образцов каждого типа, нажимает «Обучить» — и через пару минут модель готова.
4. Извлечение данных
Мы применяем три подхода, иногда комбинируя их:
- Шаблонный (OCR + регулярки) — для жёстко структурированных документов. Находим «якоря» (например, слово «ИНН») и извлекаем значение по координатам или контексту.
- NLP-извлечение (NER) — для слабоструктурированных. Используем модель LayoutLMv3 — мультимодальный трансформер, который видит и разметку страницы, и текст. Находит сущности даже при плавающих полях или опечатках.
- LLM — для свободной формы. Например, в письме: «прошу перечислять пенсию на карту Сбера». LLM извлекает ФИО, номер карты, сумму. Мы используем компактные модели (до 13B), чтобы обработка занимала 1–2 секунды на страницу на GPU среднего класса.
5. Постобработка и валидация
Сырые данные могут содержать ошибки. Применяем:
- Кросс-проверки: ФИО в паспорте должно совпадать с ФИО в заявлении.
- Вычислительные проверки: сумма в таблице должна равняться итогу.
- Форматные проверки: ИНН — по контрольной сумме, дата — по валидности.
- Сверка с внешними источниками: вызовы 1С, CRM и других систем.
- Верификация человеком: если уверенность модели ниже 95%, документ отправляется оператору.
Кросс-проверки и проверки комплектности — наша сильная сторона. Всё делается через интерфейс, без кода. Даже неподготовленный пользователь может создавать такие правила самостоятельно.
6. Верификация
У нас удобный интерфейс для операторов. На скане подсвечиваются все извлечённые поля. Если поле не найдено — можно выделить область мышкой, и система дораспознает. Можно перетаскивать страницы, менять состав документа. Это снимает нагрузку с операторов и ускоряет проверку в разы.
7. Экспорт
Результаты уходят в целевую систему в формате JSON или XML. Вместе с данными можно передать координаты полей, изображения, метаданные. Интеграция — через API, коннекторы или прямую запись в БД.
Кейс, которым мы гордимся: НПФ «Будущее»
Это был один из самых сложных проектов. Фонд получает поток обращений от граждан и госорганов — заявления, письма, запросы. Документы часто рукописные, полностью неструктурированные. Раньше операторы вручную вводили данные, тратя 10–15 минут на каждый документ.
Для обработки мы создали модели на основе LLM, обученные на 140 тысячах исторических документов. Модель классифицировала тип обращения (смена реквизитов, жалоба, запрос выписки), а другие модели извлекали ключевые сущности: ФИО, СНИЛС, номер счёта, сумму.
Результаты:
- 62% операций регистрации автоматизировано полностью
- Скорость обработки выросла на 20%
- Операционные затраты снизились на 30%
- Ошибки сократились на 80%
Мы не использовали шаблонное решение — пришлось экспериментировать с размером модели, балансом скорости и качества. Но результат того стоил.
Что дальше?
Сейчас мы активно экспериментируем с мультимодальными моделями, которые видят текст и изображения одновременно. Пока OCR остаётся лучшим решением для распознавания, но оптимальна комбинация: OCR снимает текстовый слой, а LLM анализирует его. В такой синергии качество растёт на 20–30%.
Мы считаем, что через 5 лет визуально-языковые модели (VLM) станут основой распознавания — особенно для документов с подписями, печатями, рукописными пометками.
Также прорабатываем идею программно-аппаратного комплекса EasyDoc — сервера в стойке с предустановленным ПО и оптимизацией под конкретное железо. Для тех, кому важны производительность и простота развёртывания.
EasyDoc родился из ошибки в договоре, упрямства и желания сделать качественный продукт своими руками. За годы мы прошли путь от самописного скрипта до платформы, обрабатывающей миллионы страниц в крупнейших компаниях страны. Мы не боимся сложных задач: кривые сканы, рукописный текст, редкие языки — для нас это вызов, который интересно решать.