Технологии

Точность OCR при распознавании счетов: почему 95% — это мало

Поставщики сервисов распознавания охотно пишут «точность 95%» или «до 99%». На практике бухгалтерия всё равно правит каждый третий счёт. Разбираемся, что на самом деле стоит за этими цифрами, какую точность считать рабочей и как проверить сервис на своих документах до покупки.

Лупа на стопке бумажных листов, над которыми поднимаются светящиеся точки данных

Коротко: 95% точности OCR — это обычно доля верно распознанных символов или полей, а не счетов. В счёте десятки полей, и ошибки накапливаются: при 95% по полю счёт из десяти ключевых полей проходит без единой правки лишь в 60% случаев. Для бухгалтерии важна доля счетов, которые дошли до 1С без ручного вмешательства и без ошибок. Её поднимают не столько «умной» моделью, сколько проверками после распознавания: контрольные числа ИНН и БИК, арифметика сумм и НДС, сверка со справочником контрагентов и порог уверенности, ниже которого поле уходит человеку.

Типичная история внедрения выглядит так. На демо сервис уверенно читает аккуратный PDF от крупного поставщика, менеджер называет цифру 97%, договор подписан. Через месяц бухгалтер замечает, что всё равно открывает почти каждый счёт: то ИНН с переставленной цифрой, то сумма без копеек, то дата из штампа вместо даты документа. Формально сервис работает как обещано, просто 97% считали не там, где это важно бухгалтерии.

Если вы выбираете готовый сервис, ниже есть методика, как проверить его на своих документах. Если же счета приходят из нескольких источников, а проверки нужно завязать на вашу 1С, банк и внутренние справочники, готовый продукт часто упирается в свои ограничения. Тогда собственный контур приёма и проверки счетов — это уже заказная разработка веб-приложений под ваш процесс. Как устроено распознавание в целом, мы разбирали в статье о том, как работает распознавание данных из счёта. Здесь — только про точность.

Что на самом деле означает «точность OCR»

Одна и та же система может честно показать и 99%, и 60% — в зависимости от того, что считать. В отрасли используют как минимум четыре уровня метрик.

  • Точность по символам (CER — character error rate). Доля неверно распознанных букв и цифр. Это классическая метрика движков OCR, и на чистом печатном тексте она давно ниже 1%.
  • Точность по словам (WER). Слово засчитывается, только если все буквы в нём верны. Цифра всегда хуже, чем по символам.
  • Точность по полям. Поле — ИНН, номер счёта, дата, сумма — засчитывается только целиком. Именно эта метрика ближе всего к работе бухгалтера.
  • Доля документов без правок (straight-through processing, STP). Счёт засчитывается, если все нужные поля извлечены верно и человеку не пришлось ничего трогать.

Когда в рекламе пишут «точность 95%» без уточнения, почти всегда речь о символах или в лучшем случае о полях. А вашу экономию определяет последний уровень — сколько счетов прошли насквозь.

Почему 95% превращаются в 60%: простая арифметика

Ошибки в полях независимы друг от друга и перемножаются. Если каждое поле распознаётся верно с вероятностью 95%, то вероятность, что все десять ключевых полей верны одновременно, — 0,95 в десятой степени, то есть около 60%.

Вот как точность по одному полю превращается в долю счетов без единой ошибки — для счёта из 10 ключевых полей и для счёта из 30 полей, если разбирать ещё и позиции:

  • 90% по полю — 35% счетов из 10 полей без ошибок, 4% счетов из 30 полей.
  • 95% по полю — 60% и 21%.
  • 98% по полю — 82% и 55%.
  • 99% по полю — 90% и 74%.
  • 99,5% по полю — 95% и 86%.

То же самое внутри поля. ИНН организации — десять цифр. При точности 99% по символу шанс прочитать весь ИНН без ошибки — около 90%. Поэтому «99% по символам» и «каждый десятый ИНН с ошибкой» вполне уживаются в одной системе.

Отсюда главный вывод: разница между 95% и 99% по полю — это не четыре процентных пункта, а разница между «правим почти половину счетов» и «правим каждый десятый». Если вы разбираете позиции счёта построчно, требования к точности ещё выше.

Почему одна ошибка в счёте дороже, чем кажется

В обычном тексте опечатка — мелочь. В счёте ошибка в одном поле ломает всю дальнейшую цепочку:

  • ИНН или КПП. Счёт привязывается не к тому контрагенту или создаётся дубль карточки в 1С.
  • Расчётный счёт или БИК. Платёж уходит не туда или банк его отклоняет. Это самая дорогая ошибка из возможных.
  • Сумма или НДС. Переплата, недоплата или проблема с вычетом, которую найдут только при сверке.
  • Номер и дата. Не срабатывает защита от повторной оплаты, документ попадает в другой период.

Поэтому норма для финансовых документов жёстче, чем для архивной оцифровки. Если при оцифровке архива ошибка в 1–2% символов терпима, то в платёжных реквизитах любая необнаруженная ошибка — это деньги. Требования к самому счёту-фактуре и его обязательным реквизитам перечислены в статье 169 Налогового кодекса, и именно эти поля нужно читать безошибочно.

От чего зависит точность распознавания счетов

Движок OCR — лишь одно звено. На итоговую цифру сильнее влияют вещи вокруг него.

Качество исходника

Электронный PDF, выгруженный из учётной системы поставщика, содержит текстовый слой: его не нужно распознавать, только правильно разобрать. Скан на 300 dpi распознаётся хорошо. Фото с телефона под углом, с тенью и бликом от лампы — заметно хуже. Отдельная беда — печати и подписи поверх суммы и рукописные пометки «оплачено».

Разнообразие макетов

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

Извлечение, а не чтение

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

Проверки после распознавания

Это то, что отличает систему для бухгалтерии от универсального OCR. О них — в следующем разделе.

Как поднять точность: проверки, которые ловят ошибки OCR

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

  1. Контрольные числа. В ИНН организации последняя цифра — контрольная, у ИНН предпринимателя таких цифр две. Номер расчётного счёта содержит контрольный ключ, который проверяется вместе с БИК. Переставленная или неверно прочитанная цифра почти всегда ломает контрольную сумму, и система это видит.
  2. Арифметика. Количество умножить на цену — сумма строки. Сумма строк — итог. Итог и НДС должны соответствовать ставке. Сумма цифрами должна совпадать с суммой прописью. Если что-то не сходится, хотя бы одно число прочитано неверно.
  3. Справочники. Найденный ИНН сверяется с карточкой контрагента в 1С, БИК — со справочником банков, реквизиты — с теми, на которые вы уже платили этому поставщику. Новый расчётный счёт у старого поставщика — повод для ручной проверки, даже если распознан он идеально.
  4. Логика документа. Дата счёта не может быть в будущем, срок оплаты — раньше даты счёта, а номер счёта от одного поставщика не должен повторяться.
  5. Порог уверенности. Модель возвращает не только значение, но и уверенность в нём. Поля с низкой уверенностью подсвечиваются для проверки человеком, остальные идут дальше без вмешательства.

Подробнее о том, какие ошибки так отсеиваются ещё до оплаты, — в статье какие ошибки в счетах ловятся автоматически.

Как выбрать порог уверенности

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

Какую точность считать рабочей

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

  • Ключевые поля (ИНН, реквизиты, суммы, номер, дата) — 99% и выше после проверок. Ошибки в платёжных реквизитах, которые прошли в учёт незамеченными, — ноль: всё сомнительное должно уходить человеку.
  • Доля счетов без ручного вмешательства — от 70–80% на старте и выше по мере того, как система привыкает к вашим поставщикам.
  • Время ручной проверки одного счёта, ушедшего человеку — меньше минуты: система показывает, какое поле сомнительное, и не заставляет перечитывать весь документ.

Даже 70% счетов насквозь — это кратная экономия по сравнению с ручным вводом, у которого, к слову, тоже есть процент ошибок. Как сравнить затраты, мы считали в материале о ручной и автоматической обработке счетов.

Как проверить точность сервиса на своих счетах

Демо на подготовленных документах ничего не говорит о вашем потоке. Тест на собственной выборке занимает пару дней и экономит месяцы разочарования.

  1. Соберите выборку. 100–200 реальных счетов за последние месяцы от разных поставщиков. Включите не только аккуратные PDF, но и сканы, фото с телефона, многостраничные счета — в той пропорции, в какой они к вам приходят.
  2. Подготовьте эталон. Вручную заполните таблицу правильных значений по ключевым полям: ИНН и КПП поставщика, расчётный счёт, БИК, номер, дата, сумма, НДС.
  3. Прогоните выборку через сервис и выгрузите результат в ту же таблицу.
  4. Посчитайте три цифры отдельно: точность по каждому полю, долю счетов без единой ошибки и долю счетов, которые система сама отправила на ручную проверку.
  5. Найдите «тихие» ошибки. Самое опасное — поле, которое распознано неверно, но система была в нём уверена и не попросила проверки. Таких случаев в реквизитах платежа должно быть ноль.

Задайте поставщику сервиса прямые вопросы: как считается заявленная точность, на каких документах её мерили, какие проверки идут после распознавания и можно ли настроить пороги по полям. Если ответ — только «у нас нейросеть», это повод насторожиться.

Частые ошибки при оценке OCR

  • Сравнивать проценты разных уровней. 99% по символам у одного сервиса и 95% по полям у другого — несопоставимые цифры, причём второй может оказаться точнее.
  • Тестировать только на хороших PDF. В реальном потоке доля сканов и фото обычно выше, чем кажется, и именно на них точность падает.
  • Смотреть на точность без проверок. Движок с 97% и строгими проверками в учёте даёт меньше ошибок, чем движок с 99% без них.
  • Не учитывать время на исправление. Если на сомнительный счёт бухгалтер тратит столько же времени, сколько на ручной ввод, экономии нет.
  • Не возвращаться к цифрам после запуска. Новые поставщики приносят новые макеты. Точность стоит пересчитывать раз в квартал, а исправления бухгалтеров — использовать для дообучения и настройки правил.

Частые вопросы

Какая точность OCR считается хорошей для счетов? Смотреть нужно не на процент по символам, а на долю счетов, которые прошли без единой правки. Для рабочего процесса ориентир — 99% и выше по ключевым полям и не меньше 70–80% счетов без ручного вмешательства на ваших реальных документах.

Чем точность по символам отличается от точности по полям? Точность по символам считает отдельные буквы и цифры. Поле засчитывается только целиком: одна неверная цифра в ИНН из десяти делает всё поле ошибочным, хотя по символам точность остаётся 90%.

Можно ли довести распознавание счетов до 100%? Нет, плохие сканы, рукописные пометки и нестандартные макеты всегда дают ошибки. Задача — не идеальное чтение, а надёжная проверка: контрольные суммы, сверка со справочниками и порог уверенности, ниже которого поле уходит человеку.

Что важнее — модель распознавания или проверки после неё? Для бухгалтерии важнее проверки. Разница между хорошими движками OCR — доли процента, а проверки по контрольным числам ИНН, БИК и арифметике сумм ловят большую часть оставшихся ошибок до выгрузки в 1С.

Как проверить точность сервиса до покупки? Соберите 100–200 своих счетов от разных поставщиков, включая плохие сканы и фото, вручную заполните эталон по ключевым полям и сравните с результатом сервиса. Считайте долю полей и долю счетов без ошибок отдельно.

Попробуйте GotBilled на своих счетах

Первые 30 счетов — бесплатно. Подключение за вечер, карта не нужна.

Начать бесплатно