Почему ИИ сложно распознать текст на фото и как ему в этом помочь — пошаговая инструкция
Нейросетям по-прежнему тяжело находить текст на фото. Они справляются с отсканированными документами, но теряются в работе с фотографиями. Почему это происходит и как помочь ИИ в работе — рассказываем ниже.
Технологией распознавания документов сегодня уже никого не удивить. Мы за две минуты регистрируемся в каршеринге — для этого достаточно отправить фотографию паспорта и селфи, а также берём кредиты, не выходя из дома. И нет нужды перепечатывать многострочное «кем выдано» в нужную формочку, уж тем более идти в офис для подтверждения личности.
Несмотря на прогресс, мы по-прежнему вводим данные руками
Дело в том, что распознать текст на фотографии сложно. Низкое качество съедает отдельные слова, а из-за того, что мы фотографируем документ под углом, появляются перспективные искажения, с которыми алгоритму не справиться.
Также на результат влияет нестандартный фон (например, вместо белой стены — бабушкин ковер), в таком случае алгоритм не может определить границы документа.
Для сравнения возьмём сканер: он выдаёт текст на чистом белом фоне, где видны все поля и нет искажений. Отсканированные документы похожи друг на друга, поэтому достаточно сотни примеров, чтобы обучить нейросеть.
Один алгоритм хорошо, а четыре — лучше
Как повысить точность распознавания на фото? Решение, которое сработало у нас, — подготовка изображения с помощью нескольких алгоритмов сразу. Другими словами — делаем из фотографии подобие отсканированного документа, прежде чем нейросеть распознает текст.
Шаг 1: выравниваем изображение
Первый алгоритм, который вступает в игру, — выравниватель. Он находит границы документа и устраняет искажение на картинке. Даже в самом запущенном случае алгоритм исправит перспективу на фотографии, под каким бы углом её ни сняли, и найдёт края документа, если их нет в кадре.
Шаг 2: обрезаем поля
С углами разобрались, теперь эстафету перенимает второй алгоритм, чья задача найти поля на фото. Тут есть проблема: у каждого документа (паспорт, страховка, водительское удостоверение) своё расположение полей.
К тому же они могут быть смещены — это вводит алгоритм в заблуждение. Чтобы нейронная сеть не обрезала слово на середине, мы даём ей тысячи вариантов изображений, предварительно размеченных руками, — так она учится находить их на фотографиях самостоятельно.
Шаг 3: распознаём текст
Теперь, когда поля найдены, переходим к тексту. Тут подключается стандартный OCR-алгоритм — он берёт данные, которые для него подготовили на предыдущем этапе, и переводит текст из изображения в цифровую версию. Этот этап мы подробно описывали в другой статье.
Шаг 4: исправляем ошибки
Ура — мы получили текст. Теперь проверяем результат на грамотность. Для этого нужна следующая нейросеть, которая проходится по тексту с красной ручкой, — она обучена исправлять ошибки и опечатки. Наподобие той, что исправляет поисковые запросы в Google.
Что теперь
Это лишь вопрос времени, когда технология распознавания документов будет работать с фотографиями так же успешно, как со сканами. Однако добиться высокой точности можно уже сейчас — при использовании нескольких алгоритмов в одной цепочке процессов.
Больше историй про ИИ — в нашем Telegram-канале.