ТЕХНОЛОГИИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ СОГЛАСНЫХ БУКВ

Садретдинов Тимур Илдарович
Уфимский университет науки и технологий, Нефтекамский филиал
студент 2 курса, Факультет экономико-математический

Аннотация
В данной статье рассматриваются методы применения нейронных сетей для распознавания согласных букв. Использование технологий искусственного интеллекта и машинного обучения позволяет значительно повысить точность и эффективность распознавания. Для реализации данной задачи применялись библиотека TensorFlow и облачный сервис Google Colab, которые обеспечивают высокую производительность и удобство разработки. Обучение моделей проводилось на большом наборе данных, включающем изображения согласных букв, с последующей проверкой на валидационном наборе. Результаты показывают, что использование сверточных нейронных сетей (CNN) позволяет достичь высокой точности распознавания.

Ключевые слова: , , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Садретдинов Т.И. Технологии искусственного интеллекта для распознавания изображений согласных букв // Современные научные исследования и инновации. 2024. № 6 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2024/06/102167 (дата обращения: 18.07.2024).

Научный руководитель: Вильданов Алмаз Нафкатович
Уфимский университет науки и технологий, Нефтекамский филиал, к.ф.-м.н.

Современные технологии искусственного интеллекта (ИИ) и машинного обучения (МО) приобретают все большую популярность и находят применение в различных сферах деятельности. Одним из наиболее перспективных направлений является использование нейронных сетей для решения задач распознавания и классификации. В данной статье рассматриваются возможности и методы применения нейронных сетей для распознавания согласных букв.

История машинного обучения начинается с середины XX века. В 1952 году Артур Самуэль разработал первую самообучающуюся программу для игры в шашки, что стало отправной точкой в развитии МО. Позже, в 1959 году, он начал работу над методами МО для нейронных сетей. С тех пор технологии существенно эволюционировали и получили широкое распространение.

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

Для разработки и обучения нейронных сетей широко используется библиотека TensorFlow, предоставляемая Google. Она обеспечивает высокую производительность и гибкость при создании сложных моделей МО. TensorFlow поддерживает работу как на CPU, так и на GPU, что позволяет значительно ускорить процесс обучения нейронных сетей.

Google Colab предоставляет удобную среду для разработки и обучения моделей машинного обучения. Это облачный сервис, который позволяет использовать мощные вычислительные ресурсы Google без необходимости установки дополнительного программного обеспечения. Colab поддерживает работу с Jupyter Notebook и позволяет совместно работать над проектами в реальном времени​.

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

Формат данных выборки для обучения train.csv выглядит следующим образом: каждая строка представляет собой описание одного изображения; первый столбец содержит метки классов, к которым принадлежит изображение; оставшиеся столбцы содержат пиксельные значения изображения, например, в виде плоского вектора, где каждое значение соответствует яркости соответствующего пикселя на изображении [1].

У нас будут следующие классы согласных букв:

classes = ["к","л","м","н","п","р","с","т"]

Загрузим и посмотрим на датасет (рисунок 1):


Рисунок 1. Датасет согласных букв

После подготовки данных, создаются и обучаются модели нейронных сетей. Используются различные архитектуры, такие как сверточные нейронные сети (CNN), которые особенно эффективны в задачах распознавания образов. Обучение модели проводится на обучающем наборе данных с последующей проверкой на валидационном наборе для оценки её производительности.

Работа нейронной сети рассматривается в трех моделях.

1.    Двухслойная нейронная сеть.

На первом шаге рассматривается сеть из двух нейронных слоев [2]. Для создания модели используется класс Sequential. На входном слое находятся 700 нейронов. Функция активации (запуска) relu, размер входных данных равен 400 (у нас картинки 20 на 20). На последнем слое должно быть 8 нейронов, так как это количество должно совпадать с количеством классификаций изображений [3] (у нас согласные буквы “к”,”л”,”м”,”н”,”п”,”р”,”с”,”т”). Модель нейронной сети строится с помощью класса Sequential [4].

N = 8

model = Sequential()

model.add(Dense(700, input_dim=400, activation=”relu”))

model.add(Dense( N, activation=”softmax”))

Приступаем к обучению модели с помощью метода fit модели (рисунок 2).


Рисунок 2. Ход обучения нейронной сети

Можно посмотреть, как нейронная сеть делает предсказание на тестовых данных. Для этого применяется метод predict:


Рисунок 3. Валидация нейронной сети

2. Трехслойная нейронная сеть.

Усложним нейронную сеть, сделав 3 слоя. Рассматривается сеть из трех нейронных слоев:

model = Sequential()

model.add(Dense(700, input_dim=400, activation=”relu”))

model.add(Dense(100, activation=”relu”))

model.add(Dense( N, activation=”softmax”))

Остальные шаги проделываются аналогично.

3. Сверточная нейронная сеть.

Полносвязная нейронная сеть недостаточно качественно выполняет работу с изображениями. Прогресс обучения двуслойной нейронной сети и трехслойной нейронной сети растет достаточно медленно, за счет увеличения количества слоев. Более качественный результат можно получить, построив сверточную нейронную сеть:

model = Sequential()

model.add(Conv2D(32, (3, 3),

input_shape=(img_width, img_height, 1), activation=’relu’))

model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3, 3), activation=’relu’))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())

model.add( Dense( 700, activation = ‘relu’))

model.add( Dense( N, activation=’softmax’))

Обучение проводится аналогично. По итогам распознавания собственных изображений можно сделать следующий вывод (таблица 1):

Таблица 1 – Качество распознавания изображений нейронными сетями

Структура НС

Качество распознавания

Полносвязная нейронная сеть из двух слоев

97.75 %

Полносвязная нейронная сеть из трех слоев

98.25 %

Сверточная нейронная сеть с двумя сверточными слоями

99.65 %

Подготовим также в Paint собственные изображения и загрузим их на гугл-диск (рисунок 4).


Рисунок 4. Собственные изображения для проверки

работы нейронной сети

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


Рисунок 5. Распознавание и предсказание нейронной сети

Сверточная нейронная сеть будет, как и ожидалось, давать наилучшее предсказание.

Заключение. Разработка и использование нейронных сетей для распознавания согласных букв демонстрирует высокую эффективность и перспективность данного подхода. Применение библиотек TensorFlow и сервисов, таких как Google Colab, значительно упрощает процесс создания и обучения моделей машинного обучения. Эти технологии открывают новые возможности для автоматизации процессов и повышения точности распознавания в различных приложениях.


Библиографический список
  1. Вильданов, А. Н. Генерация датасетов для учебных задач компьютерного зрения / А. Н. Вильданов // Инженерный вестник Дона. – 2023. – № 4(100). – С. 92-101.
  2. Моделирование сверточной нейронной сети [Электронный ресурс] // И. К. Салимгариева, А. Н. Вильданов, 2021. – URL: https://infourok.ru/nauchnaya-statya-na-temu-modelirovanie-svertochnoj-nejronnoj-seti-5238446.html (дата обращения: 01.06.2024).
  3. Решение задачи классификации изображений с помощью Tensorflow [Электронный ресурс] // Д.Н. Мухитова, А.Н. Вильданов, 2021. – URL: https://infourok.ru/nauchnaya-statya-na-temu-reshenie-zadachi-klassifikacii-izobrazhenij-s-pomoshyu-tensorflow-5238536.html (дата обращения: 01.06.2024).
  4. Искусственные нейронные сети и приложения: учеб. пособие [Электронный ресурс] / Ф.М. Гафаров, А.Ф. Галимянов. – Казань: Изд-во Казан. ун-та, 2018. – 121с. URL: https://kpfu.ru/staff_files/F1493580427/NejronGafGal.pdf (дата обращения: 01.06.2024).


Все статьи автора «Садретдинов Тимур Илдарович»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация