Обновить

Комментарии 13

А не проще забирать паспортные данные через ЕСИА? Там, конечно, подключение очень бюрократизировано, но зато сразу нормальные данные на входе. Или под ваши задачи принципиально нужен скан?

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

Я бы пробовал сначала задать модели контекст задачи жёстче. Ты распознаёшь паспорт гражданина РФ. Ошибка даже в одной букве или цифре недопустима. Ничего не додумывай и не исправляй по вероятности — если символ не читается, верни null. И я бы вообще убрал из промпта конкретные примеры серии/номера. Похожеу Вас модель начала подставлять пример вместо фактических цифр.

Это уже испробовано, различными способами. Этим её, не напугать)

И не будет работать с таким стеком. Проверено на более простой задаче. Сколько гемму не промпть, она неспособна прочесть текст с картинки без галлюцинаций. Tesseract - вообще несерьезно. Это устаревший задолго до LLM бума проект, который неспособен распознать ничего кроме скана черно-белого печатного текста. Кодинг агенты рекомендуют его, ведь в их обучающих выборках много упоминаний.

Возьмите OCR нового поколения, и будет вам счастье. Как пример, GLM-OCR, Paddle-paddle.

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

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

это к сожалению не пиксель в пиксель. Это кривые, косые фоточки сделанные телефоном на бегу

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

А почему кстати реально не правите перспективу кадра с помощью OpenCV?

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

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

п.с.

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

Там достаточно хитрый выбор искажений получается:

  • бабочка (когда края центрального разворота, как бы наверх смотрят)

  • Трапеция (самое простое)

Бабочку не смог победить, а она самая частая

бабочка (когда края центрального разворота, как бы наверх смотрят)

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

По поводу бликов, это вообще ужас. У самого паспорт в таком состоянии, что его уже нормально не сфоткать. Во-первых он выцвел сильно, стал бледным, а во вторых ламинат даёт ужасные блики, но ему уже больше 15 лет и была ситуация, когда после дождей он отслоится. Попались хорошие девчонки в МФЦ, смогли его прогреть и склеить, но блики просто жесть.

Все поправимо). В 45 лет получите новый). Правда блики от ламината никуда не денутся

Ну, к слову, дообучение - опасная штука. Завтра изменится шаблон документа, и будет крайне неприятная ситуация - кейсов под обучение под новый шаблон не существует в природе, а задачи на их распознавание заходят в прод уже сегодня

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации