Распознать текст с фото: классический OCR или нейросеть
Оба способа ошибаются, но по-разному: OCR чаще выдаёт заметный мусор, нейросеть — гладкий текст с подменённой цифрой. Для реквизитов нужна сверка, для рукописи и сложной вёрстки лучше модель.
Короткий ответ: чёткий печатный текст прочитают оба способа, разница в том, как они ошибаются. Классическое распознавание (OCR) чаще ошибается заметно: лишние символы, ноль вместо «О», обрывки слов. Мультимодальная нейросеть ошибается гладко: текст читается без запинок, но дата или сумма в нём не та, что на снимке. Для счетов и реквизитов нужна сверка, для рукописи и сложной вёрстки лучше модель.
Причина в устройстве. Модель не переписывает символы, а продолжает текст с опорой на картинку, и там, где пиксели неразборчивы, ставит вероятное: привычную дату, знакомое окончание. Это обычная галлюцинация, только поводом для неё служит нечёткий снимок. Авторы сравнения открытых моделей с классическими движками на изданиях древнегреческих текстов описывают то же: ошибки моделей остаются беглыми и правдоподобными, у движков это локальный шум. Мусор видно глазом, подмену — только сверкой.
Документы с числами и реквизитами. Счета, накладные, выписки. Здесь я беру классическое распознавание с проверкой или прогоняю оба способа и сравниваю поля. Tesseract, например, отдаёт оценку уверенности по каждому слову, и слова с низкой оценкой можно сразу отправить на проверку. Если два способа разошлись в поле, оно уходит человеку. Совпадение не гарантия, но хороший фильтр. Поверх стоят проверки кодом, как для первички в бухгалтерии: строки складываются в итог, контрольные цифры ИНН сходятся.
Рукопись и сложная вёрстка. В документации Tesseract прямо сказано, что он рассчитан на печатный текст и с рукописью справляется плохо. Таблицы без линеек, колонки и штампы поверх текста классический движок у меня часто режет на куски и собирает в неверном порядке. Модель здесь выигрывает, потому что опирается на смысл читаемого, — это то, что модель со зрением делает хорошо. Цифры из рукописи я всё равно сверяю с оригиналом: там её догадки опаснее всего.
Правило перестаёт работать на плохом снимке: смазанном, в тени, под углом. Классический движок выдаёт мусор, модель — уверенный текст, и соблазн взять второй велик. Просьба помечать неразборчивое помогает отчасти: модель не всегда замечает, что не разобрала фрагмент. Для документа с деньгами правильный ход здесь — переснять, а не выбирать движок.