Проектирование архитектуры нейросетевого приложения по распознаванию рукописного текста
Арцыбашев И.А., Ефименко К.Н.
Донецкий национальный технический университет
Введение
В современном мире печатный текст является одним из основных источников информации и знаний. Однако не всегда возможно или удобно работать с печатными документами в их исходном виде. Для того, чтобы преобразовать печатный текст в цифровой формат, необходимо использовать специальные технологии детекции и распознавания рукописного текста (Optical Character Recognition, OCR). Эти технологии позволяют автоматически определять границы и содержание текстовых блоков на изображении, а также преобразовывать изображение текста в машинночитаемый вид. Таким образом, OCR технологии облегчают хранение, поиск, редактирование и анализ рукописного текста [1-2].
Однако существующие OCR технологии имеют ряд ограничений и недостатков. Во-первых, они часто не способны корректно обрабатывать изображения низкого качества, содержащие шумы, искажения или неравномерное освещение. Во-вторых, они не всегда адаптированы к различным языкам, шрифтам и стилям рукописного текста. В-третьих, они не учитывают контекст и семантику текста, что может приводить к ошибкам или неоднозначностям в распознавании [2].
Целью данной работы является обзор проектируемой архитектуры нейросетевого приложения по распознаванию рукописного текста. Проектирование включает в себя модель нейронной сети, диаграмму вариантов использования, диаграмму компонентов, диаграмму классов. Распознавание рукописного текста является не инвазивной системой идентификации, которая быстрее производит распознавание, чем другие системы, поскольку несколько участков текста могут быть проанализированы одновременно.
Модель архитектуры нейронной сети
На рисунке 1 первым элементом является изображение рукописного текста, загружаемое в сеть, которое имеет ширину и высоту по 300 пикселей, а значит общее количество пикселей, загружаемого медицинского снимка равна 90000 шт. Вторым элементом является свёрточный слой, откуда и пошло название данной нейронной сети. Первый свёрточный слой состоит из набора карт 32 шт. размером 300 x 300, как и размер изображения. У каждой карты свёрточного слоя есть синаптическое ядро размером 3 x 3.
Следом за свёрточным слоем идет 3 элемент модели – субдескритизирующий слой в количестве 64 карт, но размером в 2 раза меньше 150 x 150.
Свёрточный слой и субдискретизирующий слой сменяют друг друга по очереди. Так второй уровень свёрточного слоя имеет 64 карты размером 150 x 150 и с размером ядра 4 x 3. После идет второй уровень субдискретизирующего слоя со 128 картами и размером 75 x 75. Так же в данной модели есть 3 уровень слоёв: сверточный слой имеет 128 карт размером 75 x 75 и размер ядра 3 x 3, а субдискретизирующий слой имеет 256 карт и размер 37 x 37.
После последнего субдискретизирующего слоя следует полносвязный слой, который состоит из первого уровня нейронов в количестве 512 шт. и соединяющийся с выходным слоем, который имеет 74 нейрона – печатных символов.
Рисунок 1 – Модель нейронной сети
Диаграмма вариантов использования
На следующем этапе проектирования функционал разрабатываемого приложения. Доступный функционал изображен с помощью UML диаграммы вариантов использования, которая представлена на рисунке 2 [3].
Из данной диаграммы видно, что пользователю для обучения необходимо сначала собрать данные для обучения, затем их нормализовать и на основе этих данных – обучить нейронную сеть. После обучения пользователь может просмотреть прогресс обучения, просмотреть производительность обучения и сохранить веса нейронной сети.
Из данной диаграммы видно, что пользователю для тестирования необходимо сначала собрать данные для тестировки, после их нормализовать и загрузить веса обученной нейронной сети и на основе этих данных – тестировать нейронную сеть. После тестирования пользователь может просмотреть прогресс обучения, просмотреть производительность.
Так же пользователь может вызвать запуск нейросетевой программы, где загрузит изображение и по нему распознает печатный текст или вызовет функции модуля НС, а именно обучение или тестирование.
Диаграмма компонентов
С помощью диаграммы компонентов (рис. 3) можно наблюдать визуализацию структуры исходного кода программной системы, спецификации исполняемого варианта программной системы, а также обеспечения многократного использования фрагментов кода [4].
Из данной диаграммы видно, что структура программного кода взаимосвязана, т.к. для начала разработчику необходимо обучить нейронную сеть на заранее подготовленной выборке, затем протестировать её и вывести результаты, выпустить программу и предоставить её клиенту. Пользователь в свою очередь загрузит изображение, начнет процесс распознавания и получит результат работы нейронной сети.
Диаграмма классов
Диаграмма классов – структурная диаграмма языка моделирования UML, демонстрирующая общую структуру иерархии классов системы, их коопераций, атрибутов (полей), методов, интерфейсов и взаимосвязей (отношений) между ними. На рисунке 4 можно наблюдать диаграмму классов для разрабатываемого продукта [5].
Рисунок 2 – UML диаграмма вариантов использования
Рисунок 3 – UML диаграмма компонентов
Пользователь должен иметь базу данных изображений для обучения, а также базу данных для тестирования. Пользователю доступны следующие операции: обучение, загрузка изображения и распознавание. Так же пользователь может обращаться к классам изображение и веса.
Класс изображение имеет такие параметры как: размер и расширение. Класс веса имеет такие параметры как: веса свертки, веса пулинга и веса полносвязного слоя.
Обучение имеет следующие атрибуты: изображения, класс принадлежности и веса. Так же данный класс имеет операции свертки, вычисления матриц ошибок, обновление весов, загрузка изображений и выгрузка весов.
Данный класс может обращаться к классам, загрузка изображений, изображение и веса.
Распознавание имеет следующий атрибут: изображение и веса. Так же данный класс имеет операции свертки, распознавание и загрузки весов.
Данный класс может обращаться к классам, загрузка изображений, изображение и веса.
Загрузка изображений имеет следующий атрибут: изображение и имя изображения. Так же данный класс имеет операцию загрузки изображения. Данный класс может обращаться к классу изображение.
Рисунок 4 – UML диаграмма классов
Выводы
В данной работе были рассмотрены аспекты проектирования архитектуры нейросетевого приложения по распознаванию рукописного текста. Проектирование происходило путем представления архитектуры через следующие модели:
- модель нейронной сети;
- диаграмму вариантов использования;
- диаграмму компонентов;
- диаграмму классов.
Исходя из проделанной работы, следует, что цель (обзор проектируемой архитектуры нейросетевого приложения по распознаванию рукописного текста), поставленная в данной статье выполнена.
Полученные результаты планируется перенести из проектируемой плоскости в плоскость практической реализации для получения нейросетевого приложения по распознаванию рукописного текста.
Литература
- Гренандер, У. Лекции по теории образов (Том 2. Анализ образов) / У. Гренандер. – Москва: [не указано], 2016. – 342 c.
- Гренандер, У. Лекции по теории образов (Том 3. Регулярные структуры) / У. Гренандер. – Москва: [не указано], 2012. – 432 c.
- Дударев, В. А. Методы распознавания образов в компьютерном конструировании неорганических соединений / В.А. Дударев. – Москва: Синергия, 2014. – 325 c.
- Елисеева, И. И. Группировка, корреляция, распознавание образов (статистические методы классификации и измерения связей) / И.И. Елисеева, В.О. Рукавишников. – Москва: РГГУ, 2014. – 144 c.
- Емельянов, С.В. Информационные технологии и вычислительные системы. Вычислительные системы. Компьютерная графика. Распознавание образов / Математическое моделирование / С.В. Емельянов. – Москва: Мир, 2015. – 662 c.