Почему ИИ сложно распознать текст на фото и как ему в этом помочь — пошаговая инструкция

Нейросетям по-прежнему тяжело находить текст на фото. Они справляются с отсканированными документами, но теряются в работе с фотографиями. Почему это происходит и как помочь ИИ в работе — рассказываем ниже.

Технологией распознавания документов сегодня уже никого не удивить. Мы за две минуты регистрируемся в каршеринге — для этого достаточно отправить фотографию паспорта и селфи, а также берём кредиты, не выходя из дома. И нет нужды перепечатывать многострочное «кем выдано» в нужную формочку, уж тем более идти в офис для подтверждения личности.

Несмотря на прогресс, мы по-прежнему вводим данные руками

Дело в том, что распознать текст на фотографии сложно. Низкое качество съедает отдельные слова, а из-за того, что мы фотографируем документ под углом, появляются перспективные искажения, с которыми алгоритму не справиться.

Также на результат влияет нестандартный фон (например, вместо белой стены — бабушкин ковер), в таком случае алгоритм не может определить границы документа.

Для сравнения возьмём сканер: он выдаёт текст на чистом белом фоне, где видны все поля и нет искажений. Отсканированные документы похожи друг на друга, поэтому достаточно сотни примеров, чтобы обучить нейросеть.

Скан VS Фото 
Скан VS Фото 

Один алгоритм хорошо, а четыре — лучше

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

Шаг 1: выравниваем изображение

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

Вжух — и перспектива исправлена 

Шаг 2: обрезаем поля

С углами разобрались, теперь эстафету перенимает второй алгоритм, чья задача найти поля на фото. Тут есть проблема: у каждого документа (паспорт, страховка, водительское удостоверение) своё расположение полей.

К тому же они могут быть смещены — это вводит алгоритм в заблуждение. Чтобы нейронная сеть не обрезала слово на середине, мы даём ей тысячи вариантов изображений, предварительно размеченных руками, — так она учится находить их на фотографиях самостоятельно.

Готовим документ к распознаванию — находим все поля 

Шаг 3: распознаём текст

Теперь, когда поля найдены, переходим к тексту. Тут подключается стандартный OCR-алгоритм — он берёт данные, которые для него подготовили на предыдущем этапе, и переводит текст из изображения в цифровую версию. Этот этап мы подробно описывали в другой статье.

Волнительный момент — нейросеть переводит текст в цифру 

Шаг 4: исправляем ошибки

Ура — мы получили текст. Теперь проверяем результат на грамотность. Для этого нужна следующая нейросеть, которая проходится по тексту с красной ручкой, — она обучена исправлять ошибки и опечатки. Наподобие той, что исправляет поисковые запросы в Google.

Что теперь

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

Больше историй про ИИ — в нашем Telegram-канале.

1717
10 комментариев

Если бы такие алгоритмы были встроены в стандартные приложения смартфонов(без скачивания левых приложений и тд).

1

А по существу, после "Даже в самом запущенном случае алгоритм исправит перспективу на фотографии, под каким бы углом её ни сняли, и найдёт края документа, если их нет в кадре." уже можно не читать)))

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

2

Смотрим 17 марта 2015 года - http://www.cnews.ru/news/line/smart_engines_vypustila_reshenie_dlya Уже больше 4 лет паспорта РФ и другие документы можно распознавать на фото и в видеопотоке. При этом весь процесс обработки изображений и OCR могут выполняться автономно даже на обычном телефоне...

Дмитрий, спасибо за ваш комментарий. Боюсь вы имеете сильный байес к написанному тексту будучи директором по продажам в компании Smart Engines :)

Алексей, вопрос к тексту очевидный: вы действительно считаете, что ваш алгоритм исправит перспективу на фотографии снятой под любым углом?

Алексей, жду вашего ответа по существу статьи...