[Алгоритмы, Обработка изображений, Машинное обучение] Эксперимент в распознавании рукописных текстов на кириллице. Часть 2

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
24-Дек-2020 17:32

Всем привет! В этой части хочу рассказать как мы использовали модель NomeroffNet предназначенного для распознавания автомобильных номеров, распознать рукописные записи. В предедущей статье я поделился опытом в использовании моделей SimpleHTR и LineHTR для распознавания рукописных текстов. Распознавание рукописного текста (англ. Handwritten Text Recognition, HTR) - это автоматический способ расшифровки записей с помощью компьютера. Оцифрованный текст рукописных записей позволило бы автоматизировать бизнес процессы множества компаний, упростив работу человека. В данной статье рассматривается модель распознавания рукописного текста на кириллице на основе искусственной нейронной сети. Архитектура данной нейронной сети состоит из слоев сверточной нейронной сети (англ. Convolutional neural network, CNN) и рекуррентной нейронной сети (англ. Recurrent neural network, RNN), а также имеет алгоритм декодирования на основе коннекционной временной классификации (англ. Connectionist Temporal Classification, CTC), который приводит текст к окончательному варианту. Данная модель была обучена на собранном нами датасете рукописных текстов и дала результат 80% точности.В данной статье мы рассматриваем модель распознавания рукописного текста, основанная на современной высокоуровневой архитектуре нейронных сетей. Обобщенная архитектура модели распознавания текста проиллюстрирована на рисунке 1.
Рисунок 1- Обобщенная архитектура модели распознавания текстаВ начале подается изображение с текстом на сверточный слой нейронной сети (CNN)  для извлечения особенностей изображения. Следующим шагом является применение к  результатам свертки рекуррентной нейронной сети с архитектурой Долгая краткосрочная  память (англ. Long short-term memory; LSTM) с последующим применением специального  алгоритма декодирования. Этот алгоритм декодирования берет выходные данные LSTM и  производит окончательную маркировку (Рисунок 2). В результате получается строка из  символов - одна наиболее вероятная буква на каждом временном шаге. Затем все  последовательные повторяющиеся символы объединяются в один символ. На примере слова  “apple” (Рисунок 2) две буквы «е» объединены в один. Специальный пробел позволяет  разделить символы, которые повторяются в оригинальной маркировке. В алфавите также  содержится пустой символ, чтобы научить нейронную сеть предсказывать пустой символ  между такими символами. Затем все пустые символы удаляются и получается  окончательный вариант слова.
Рисунок 2- Принцип работы алгоритма декодирования В нашей работе мы использовали модель распознавания текста, реализованную в  проекте Nomeroff Net для распознавания номеров автомобилей. Для нашей цели мы  убрали из модели распознавания номеров лишние модули (препроцессинг, детекция номера,  аффинное преобразование) и оставили лишь модель распознавания текста.В данной реализации используется немного сложная архитектура нейронной сети  (Рисунок 3), чем то, что мы рассматривали в начале, но основные принципы все те же. В  начале подается изображение с текстом на сверточные слои нейронной сети для извлечения  особенностей изображения. Изображение проходит через два слоя свертки с объединением  (C, P - Convolution + Pooling). Результат свертки преобразуется в другую форму и размер  (Reshape), затем подается в полносвязную нейронную сеть (FC - Fully Connected).  Следующим шагом является применение рекуррентной нейронной сети с архитектурой Управляемых рекуррентных блоков (англ. Gated Recurrent Units, GRU). Данные проходят  через два слоя GRU и производится поэлементное сложение (Element-wise addition).  Результаты сложения снова проходят через два слоя GRU, но здесь уже к выходным  результатам применяется операция склеивания (конкатенация, англ. concatenation).  Объединенные данные вывода рекуррентных слоев подаются к полносвязному слою (FC) с  последующей функцией активации softmax, которая возвращает наиболее вероятные  символы. В конце к полученному набору символов применяется специальный алгоритм  декодирования CTC и он выдает окончательный результат распознавания.
Рисунок 3 - Архитектура нейронной сети для распознавания рукописного текста Задача машинного обучения с учителем требует входных размеченных данных, на  которых можно было бы обучить модель. Для обучения данной модели был собран набор  данных с рукописным текстом на кириллице. Набор данных содержит 18 563 изображения с  аннотациями, состоящие из 43 классов (названия стран и городов). Для сбора данных были  специально подготовлены формы на бумаге формата А4 с пустыми ячейками для  заполнения, и розданы среди студентов для охвата большого диапазона почерков для  каждого класса. На собранном датасете мы обучили вышеупомянутую модель распознавания текста.  Данная модель имеет 4 863 469 тренировочных параметров нейронной сети. Обучение  нейронной сети проходило 3 эпохи на 11 197 изображениях для обучения, 3 637 для валидации и 3 729 для теста. На рисунке 4 приведены некоторые примеры из набора данных  для теста с результатами их распознавания.
Рисунок 4 –Результаты распознавания текста На данный момент обученная модель дает 80% точности. Есть еще  нерешенные задачи над которыми мы сейчас работаем: увеличение объема датасета,  препроцессинг изображений, подбор гиперпараметров нейронной сети, применение словаря.  От объема и вариации почерков очень сильно зависит качество обучения, поэтому на данный  момент наша работа акцентирована на увеличение количество изображений с рукописным  текстом. Обученную модель распознавания рукописного текста можно будет применять для  различных задач, связанных с компьютерным зрением и обработкой текста.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_algoritmy (Алгоритмы), #_obrabotka_izobrazhenij (Обработка изображений), #_mashinnoe_obuchenie (Машинное обучение), #_htr, #_cnn, #_rnn, #_lstm, #_ctc, #_algoritmy (
Алгоритмы
)
, #_obrabotka_izobrazhenij (
Обработка изображений
)
, #_mashinnoe_obuchenie (
Машинное обучение
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 16-Май 00:25
Часовой пояс: UTC + 5