КакмыиспользовалимультимодальнуюLLMдляраспознаваниячековбезфиксированныхшаблонов

AI

NDA

B2B

Распознавание чеков с мультимодальной LLM

Распознавание чеков становится заметно сложнее, когда нельзя опереться на единый визуальный шаблон. В Израиле эта проблема особенно актуальна: чеки из разных компаний и систем могут сильно отличаться по структуре, расположению полей, шрифтам и форматам данных. Дата, итоговая сумма, способ оплаты или отдельные позиции могут находиться в разных местах от документа к документу.

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

Масштабирование изображения
10
Типов данных извлекает система
macbook

О клиенте

Клиент — израильская консалтинговая компания, которая помогает бизнесу внедрять и развивать информационные системы и решения для работы с данными. Один из сценариев, который компания хотела проверить на практике, автоматизация обработки финансовых документов, поступающих от поставщиков и из других систем.

Инструменты

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

Multimodal LLMOpenAI GPTImage Processing

Команда

Команду проекта составили AI-инженер / техлид и проектный менеджер. Они спроектировали логику решения, настроили предобработку изображений и работу мультимодальной LLM, а затем собрали и проверили прототип на документах разной структуры и качества.

Что сделали

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

Рассчитывать на одинаковые исходники было нельзя. Даже чеки одного типа могли заметно отличаться по структуре: менялись расположение полей, шрифты, плотность текста и формат вывода данных. На документах также встречались рукописные пометки, которые нужно было учитывать вместе с печатным текстом. Кроме того, на вход могли поступать изображения практически любого качества и под разным углом съёмки.

Почему шаблонный подход не подходил

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

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

Как решали

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

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

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

В отличие от подхода, где OCR дополняется жёсткими шаблонами и правилами извлечения полей, здесь не нужно заранее задавать расположение каждого значения. Это позволяет использовать один и тот же процесс для документов с разной структурой.

Не просто текст, а данные для бизнес-процесса

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

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

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

Результат

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

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