Бухгалтерии, отделы закупок и сервисы учёта расходов получают от сотрудников фотографии чеков: их надо перепечатать в таблицу, найти повторно присланные, вычесть возвраты и посчитать итоги. Вручную это долго, а распознавание текста нейросетью стоит денег и иногда путает цифры на мятом чеке.
За основу взял открытый проект распознавания чеков нейросетью bhimrazy/receipt-ocr (730 звёзд на GitHub). Он не знает про российские чеки, у которых есть надёжный источник данных — QR-код по 54-ФЗ.
Добавил модуль для российских чеков. Программа находит на фото QR-код кассового чека и берёт из него дату и время, сумму, номер фискального накопителя, номер документа, фискальный признак и тип операции — точно, бесплатно и без интернета. Для мелких и размытых снимков код ищется повторно после увеличения, повышения резкости и порога яркости.
Сделал обработку целой папки одной командой: таблица Excel с листом всех чеков и листом итогов по месяцам (покупки, возвраты, итого). Повторно сфотографированный чек находится по номерам ФН, ФД и ФП и не попадает в итоги, возвраты вычитаются, нечитаемые и битые файлы помечаются и не останавливают обработку.
Связал с нейросетью оригинала: если QR не прочитан, сумму распознаёт нейросеть с пометкой «проверьте», а там, где есть оба источника, суммы сверяются — расхождение подсвечивается. Заодно исправил ошибку оригинала: правильный ответ нейросети терялся, если она оформляла JSON чуть иначе. 37 новых тестов на синтетических фото чеков с наклоном, тенью и размытием плюс 26 тестов оригинала.
Инструмент, который превращает папку фото чеков в готовую таблицу Excel с итогами по месяцам: без ручного ввода, без дублей и с вычтенными возвратами. Основная работа идёт бесплатно и офлайн, нейросеть подключается только там, где без неё не обойтись.
Проект — открытый форк с сохранением лицензии MIT и указанием автора оригинала; на картинках синтетические чеки — настоящие в открытый доступ не выкладываются.