К нам обратился стартап, который хотел автоматизировать бизнес-процессы, связанные с разбором бумажной документации. Особенно это касалось ручного разбора оплаченных счетов и инвойсов.
Скан-копии документов поступали на специальную почту, откуда данные (номер счёта, дата оплаты и другие реквизиты) вручную переносились в ERP-систему. Этот процесс отнимал слишком много времени и ресурсов, особенно при большом потоке входящих документов.
Перед нами стояла задача: разработать систему, которая сможет с высокой точностью извлекать информацию с бумажных счетов автоматически.
Решение
Мы выстроили пайплайн обработки данных на основе технологий компьютерного зрения и машинного обучения. В основе всей архитектуры лежит Datapipe – наш инструмент для построения ETL-процессов с отслеживанием изменений и автоматическим перерасчетом только нужных этапов, облегчая процесс дообучения моделей на новых данных.

Система устроена следующим образом:
1. Сбор данных
Когда на почту поступает скан счета, он автоматически попадает в Label Studio, интерфейс для работы модератора. Здесь на экране отображается исходное изображение счета, которое затем передается на обработку моделями нашей системы.
Когда на почту поступает скан счета, он автоматически попадает в Label Studio, интерфейс для работы модератора. Здесь на экране отображается исходное изображение счета, которое затем передается на обработку моделями нашей системы.

2. Детекция документа
Сначала модель YOLOv5 определяет сам счёт на изображении, исключая лишние объекты вроде рук, стола и постороннего фона. Мы обучили модель учитывать повороты изображений (0°, 90°, 180°, 270°) и точно определять границы документа.
Сначала модель YOLOv5 определяет сам счёт на изображении, исключая лишние объекты вроде рук, стола и постороннего фона. Мы обучили модель учитывать повороты изображений (0°, 90°, 180°, 270°) и точно определять границы документа.

3. Детекция ключевых полей
После выделения счёта изображение разбивается на кропы – мелкие участки, с которыми проще работать. На каждом кропе YOLOv5 ищет ключевые поля: даты, суммы, названия товаров и другие. Затем система объединяет результаты, чтобы сформировать полную картину распознанных полей на всем счете.
После выделения счёта изображение разбивается на кропы – мелкие участки, с которыми проще работать. На каждом кропе YOLOv5 ищет ключевые поля: даты, суммы, названия товаров и другие. Затем система объединяет результаты, чтобы сформировать полную картину распознанных полей на всем счете.

4. Распознавание текста и чисел
Каждая выделенная область, найденная на предыдущих шагах, передается в Google Cloud Vision OCR. Этот сервис анализирует изображение и извлекает текстовые данные: суммы, названия товаров, номера инвойсов и другие важные детали. Google Cloud Vision OCR хорошо справляется с распознаванием текста даже на сложных фонах и в различных шрифтах, гарантируя высокую точность и полноту извлечения информации. После чего система связывает полученные текстовые и числовые значения с соответствующими полями на счете.
Каждая выделенная область, найденная на предыдущих шагах, передается в Google Cloud Vision OCR. Этот сервис анализирует изображение и извлекает текстовые данные: суммы, названия товаров, номера инвойсов и другие важные детали. Google Cloud Vision OCR хорошо справляется с распознаванием текста даже на сложных фонах и в различных шрифтах, гарантируя высокую точность и полноту извлечения информации. После чего система связывает полученные текстовые и числовые значения с соответствующими полями на счете.

Дообучение модели
Система распознавания информации со счетов сталкивается с постоянными изменениями: появляются новые форматы, меняются шрифты, добавляются поля, регулярно обновляется дизайн. Чтобы модель сохраняла высокую точность и эффективно адаптировалась к этим изменениям, её необходимо регулярно дообучать.
Мы передали заказчику не просто обученную модель, а полноценный пайплайн – автоматизированную систему дообучения на основе новых размеченных данных. Модель непрерывно адаптируетсяся к меняющимся условиям и повышает качество распознавания.
По мере накопления новой разметки Datapipe добавляет эти данные в пайплайн, фиксирует обновлённый датасет и запускает переобучение только там, где это действительно необходимо.
Мы передали заказчику не просто обученную модель, а полноценный пайплайн – автоматизированную систему дообучения на основе новых размеченных данных. Модель непрерывно адаптируетсяся к меняющимся условиям и повышает качество распознавания.
По мере накопления новой разметки Datapipe добавляет эти данные в пайплайн, фиксирует обновлённый датасет и запускает переобучение только там, где это действительно необходимо.
Мониторинг и оценка метрик качества
Мы отслеживаем точность распознавания на каждом цикле обучения, используя метрики качества:
Для мониторинга и визуализации метрик мы предпочитаем платформу Metabase. Она идеально подходит для отслеживания динамики изменений показателей качества модели в режиме реального времени. На диаграммах можно наблюдать точность предсказаний модели:
- Precision/Recall - чтобы понимать точность и полноту;
- F1-score (macro, weighted) - для оценки стабильности работы по всем классам.
Для мониторинга и визуализации метрик мы предпочитаем платформу Metabase. Она идеально подходит для отслеживания динамики изменений показателей качества модели в режиме реального времени. На диаграммах можно наблюдать точность предсказаний модели:


Заключение
Таким образом, наша команда успешно разработала ИИ-систему для автоматического распознавания информации с бумажных счетов. Мы прошли путь от разметки данных и настройки пайплайна до последовательного обучения и дообучения моделей.
Подробнее об этом решении вы можете почитать в статье из нашего блога.
Подробнее об этом решении вы можете почитать в статье из нашего блога.
Огромное спасибо команде, работавшей над проектом:
- Александр Козлов, Lead ML Engineer;
- Андрей Татаринов, CEO/CTO Epoch8.co / AGIMA.AI.