Распознавание документов и фото в боте - накладные и заявки без ручного ввода

Ссылка на работу
image image
Задача Логистическая компания принимала заявки фотографиями накладных прямо в телеграм. Клиент фоткал бумагу на телефон и кидал в чат, оператор открывал снимок и перебивал в таблицу номер, дату, вес, объём, адреса погрузки и выгрузки. На одну заявку уходило минут пять, в пик их прилетало под сотню за день. Ошибки были в цифрах - переставленный вес менял цену перевозки, и выяснялось это уже после выезда машины. Что сделал Бот на Python и aiogram принимает фото, скан или pdf, можно закинуть пачкой. Снимок сначала выпрямляется и чистится - поворот по краям листа, контраст, обрезка полей, без этого распознавание фото с бликом сыпется. Текст снимается OCR, разбор полей делает модель - номер и дата, отправитель и получатель, вес, объём, адреса. Оператор жмёт на поле и правит его прямо в боте, таблицу для этого открывать не надо. Слабое место таких ботов - модель дописывает поле, которого на бумаге нет, и делает это очень уверенно. Поэтому каждое поле идёт со своей оценкой, пустое значение считается лучше выдуманного, а без подтверждения оператором заявка в таблицу не попадает. Результат Оператор теперь проверяет и подтверждает, на одну накладную уходит около сорока секунд вместо пяти минут. Пачку на двадцать документов один человек разбирает спокойно, завала в пик больше нет. Заказчику отдал исходники, доступ к серверу, лист с тарифами, который он правит сам, и инструкцию, как добавить новое направление.