Что такое распознавание первичных документов?
Распознавание первичных документов — автоматическое извлечение из счетов, накладных, актов и УПД тех данных, которые бухгалтер иначе вбивает руками: номера и даты, контрагента, позиций номенклатуры, количества, сумм и ставок НДС. На выходе получается не текст, а структура, которую учётная система принимает как проводку или документ.
Разница принципиальна. Распознать текст на скане — задача OCR, решённая давно. Понять, что число 18 900 — это сумма с НДС из итоговой строки, а не количество в третьей позиции, — задача извлечения структуры, и именно на ней проекты спотыкаются.
Как устроено распознавание документов: этапы обработки
Документ проходит четыре стадии: подготовка изображения (выравнивание, удаление шума), распознавание текста с координатами, определение типа документа и извлечение полей по его макету, затем проверка на непротиворечивость — сходятся ли суммы строк с итогом, корректна ли ставка НДС. Документы, не прошедшие проверку, отправляются человеку.
- Предобработка. Скан выравнивается, убираются тени и перекос от фотографии.
- OCR с координатами. Важно не только что написано, но и где — по расположению определяются поля.
- Классификация типа. Счёт, накладная, акт, УПД — у каждого свой набор обязательных реквизитов.
- Извлечение полей и строк. Шапка документа и табличная часть разбираются отдельно.
- Валидация. Арифметические проверки ловят часть ошибок распознавания до попадания в учёт.
Почему точность на реальном потоке ниже обещанной?
Демонстрации проводят на ровных печатных сканах, а реальный поток состоит из фотографий с телефона, мятых листов, печатей поверх сумм и десятков макетов от разных поставщиков. Каждый из этих факторов бьёт по точности, а вместе они дают разрыв между заявленным показателем и тем, что видит бухгалтерия в первый месяц эксплуатации.
Самые частые источники ошибок на первичке:
- Разные макеты поставщиков. Один и тот же счёт у двух контрагентов выглядит по-разному.
- Табличная часть. Многострочные позиции, переносы на следующую страницу, объединённые ячейки.
- Печати и подписи. Оттиск поверх суммы делает цифры нечитаемыми для модели.
- Фотографии вместо сканов. Перекос, тень от руки, блик от лампы.
- Сокращения номенклатуры. «Кабель ВВГнг 3х1.5» в каталоге и в счёте поставщика записаны по-разному.
Как измерить качество распознавания документов?
Правильная метрика — доля документов, которые прошли без единой правки человеком, а не средняя точность по символам. Дополнительно считают точность по критичным полям отдельно: ошибка в сумме или ИНН дороже, чем опечатка в наименовании. Замер делают на отложенной выборке реальных документов, не участвовавшей в обучении.
Полезно разделять ошибки на две группы: пропущенные поля (модель не нашла) и неверно извлечённые (нашла не то). Первые обычно чинятся расширением обучающей выборки, вторые — уточнением правил разбора макета.
Какие данные нужны, чтобы модель работала на ваших документах?
Нужен набор ваших документов с размеченными полями: координаты и значения для номера, даты, контрагента, каждой строки табличной части, сумм и НДС. Объём зависит от разнообразия макетов, но правило простое — в выборке должны быть представлены все типы форм, с которыми модель встретится, включая неудобные фотографии и документы с печатями.
Это и есть наша часть работы: мы собираем и размечаем документы под обучение, включая трудные случаи, и формируем отложенную выборку для честной оценки. Готовые макеты документов для старта есть в датасете документов, а как устроена сама разметка полей — на странице разметки текста.
Как распознанные документы попадают в 1С?
Распознавание само по себе даёт только структуру полей — ценность появляется, когда эта структура становится документом в учётной системе. Для 1С это означает три вещи: загрузку через обработку или HTTP-сервис, сопоставление строк со справочником номенклатуры и очередь на подтверждение для полей, в которых модель не уверена.
Именно интеграция, а не само чтение текста, обычно занимает больше всего времени на проекте. Справочник номенклатуры у каждой компании свой, названия товаров у поставщиков не совпадают с внутренними, а типовая конфигурация чаще всего доработана. Как мы это делаем на практике — на странице распознавания первичных документов в 1С.
