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