<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; распознавание букв</title>
	<atom:link href="http://web.snauka.ru/issues/tag/raspoznavanie-bukv/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Fri, 17 Apr 2026 07:29:22 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Технологии искусственного интеллекта для распознавания изображений согласных букв</title>
		<link>https://web.snauka.ru/issues/2024/06/102167</link>
		<comments>https://web.snauka.ru/issues/2024/06/102167#comments</comments>
		<pubDate>Tue, 11 Jun 2024 15:21:19 +0000</pubDate>
		<dc:creator>author20348</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[CNN]]></category>
		<category><![CDATA[Google Colab]]></category>
		<category><![CDATA[TensorFlow]]></category>
		<category><![CDATA[искусственный интеллект]]></category>
		<category><![CDATA[машинное обучение]]></category>
		<category><![CDATA[нейронные сети]]></category>
		<category><![CDATA[распознавание букв]]></category>
		<category><![CDATA[сверточные нейронные сети]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/issues/2024/06/102167</guid>
		<description><![CDATA[Научный руководитель: Вильданов Алмаз Нафкатович Уфимский университет науки и технологий, Нефтекамский филиал, к.ф.-м.н. Современные технологии искусственного интеллекта (ИИ) и машинного обучения (МО) приобретают все большую популярность и находят применение в различных сферах деятельности. Одним из наиболее перспективных направлений является использование нейронных сетей для решения задач распознавания и классификации. В данной статье рассматриваются возможности и методы применения нейронных [...]]]></description>
			<content:encoded><![CDATA[<p style="background: white; text-align: center;"><em>Научный руководитель: Вильданов Алмаз Нафкатович<br />
</em><em><em>Уфимский университет науки и технологий, Нефтекамский филиал, </em>к.ф.-м.н.</em></p>
<p style="text-align: justify;"><span>Современные технологии искусственного интеллекта (ИИ) и машинного обучения (МО) приобретают все большую популярность и находят применение в различных сферах деятельности. Одним из наиболее перспективных направлений является использование нейронных сетей для решения задач распознавания и классификации. В данной статье рассматриваются возможности и методы применения нейронных сетей для распознавания согласных букв.<br />
</span></p>
<p style="text-align: justify;"><span>История машинного обучения начинается с середины XX века. В 1952 году Артур Самуэль разработал первую самообучающуюся программу для игры в шашки, что стало отправной точкой в развитии МО. Позже, в 1959 году, он начал работу над методами МО для нейронных сетей. С тех пор технологии существенно эволюционировали и получили широкое распространение.<br />
</span></p>
<p style="text-align: justify;"><span>Нейронные сети являются ключевым элементом систем машинного обучения. Они состоят из множества взаимосвязанных нейронов, организованных в слои. Каждый нейрон получает входные данные, обрабатывает их с помощью весовых коэффициентов и передает результат на выход.<br />
</span></p>
<p style="text-align: justify;"><span>Для разработки и обучения нейронных сетей широко используется библиотека TensorFlow, предоставляемая Google. Она обеспечивает высокую производительность и гибкость при создании сложных моделей МО. TensorFlow поддерживает работу как на CPU, так и на GPU, что позволяет значительно ускорить процесс обучения нейронных сетей.<br />
</span></p>
<p style="text-align: justify;"><span>Google Colab предоставляет удобную среду для разработки и обучения моделей машинного обучения. Это облачный сервис, который позволяет использовать мощные вычислительные ресурсы Google без необходимости установки дополнительного программного обеспечения. Colab поддерживает работу с Jupyter Notebook и позволяет совместно работать над проектами в реальном времени​.<br />
</span></p>
<p style="text-align: justify;"><span>Первым шагом в создании системы распознавания является сбор и подготовка данных. Для обучения нейронной сети необходим большой объем данных, содержащий изображения согласных букв. Эти данные проходят этапы предобработки, включая нормализацию и аугментацию, что улучшает качество модели и её способность к обобщению.<br />
</span></p>
<p style="text-align: justify;"><span><span>Формат данных выборки для обучения </span><span>train.csv</span><span> выглядит следующим образом: каждая строка представляет собой описание одного изображения; первый столбец содержит метки классов, к которым принадлежит изображение; оставшиеся столбцы содержат пиксельные значения изображения, например, в виде плоского вектора, где каждое значение соответствует яркости соответствующего пикселя на изображении [1].<br />
</span></span></p>
<p style="text-align: justify;"><span>У нас будут следующие классы согласных букв:<br />
</span></p>
<p style="text-align: justify;"><span>classes = ["к","л","м","н","п","р","с","т"]<br />
</span></p>
<p style="text-align: justify;"><span>Загрузим и посмотрим на датасет (рисунок 1):<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2024/06/061124_1517_1.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Рисунок 1. Датасет согласных букв<br />
</span></p>
<p style="text-align: justify;"><span>После подготовки данных, создаются и обучаются модели нейронных сетей. Используются различные архитектуры, такие как сверточные нейронные сети (CNN), которые особенно эффективны в задачах распознавания образов. Обучение модели проводится на обучающем наборе данных с последующей проверкой на валидационном наборе для оценки её производительности.<br />
</span></p>
<p style="text-align: justify;"><span>Работа нейронной сети рассматривается в трех моделях.<br />
</span></p>
<p style="text-align: justify;"><span>1.    Двухслойная нейронная сеть.<br />
</span></p>
<p style="text-align: justify;"><span><span>На первом шаге рассматривается сеть из двух нейронных слоев [2]. Для создания модели используется класс </span><span>Sequential</span><span>. На входном слое находятся 700 нейронов. Функция активации (запуска) </span><span>relu</span><span>, размер входных данных равен 400 (у нас картинки 20 на 20). На последнем слое должно быть 8 нейронов, так как это количество должно совпадать с количеством классификаций изображений [3] (у нас согласные буквы &#8220;к&#8221;,&#8221;л&#8221;,&#8221;м&#8221;,&#8221;н&#8221;,&#8221;п&#8221;,&#8221;р&#8221;,&#8221;с&#8221;,&#8221;т&#8221;). Модель нейронной сети строится с помощью класса </span><span>Sequential</span><span> [4].<br />
</span></span></p>
<p style="text-align: justify;"><span>N = 8<br />
</span></p>
<p style="text-align: justify;"><span>model = Sequential()<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Dense(700, input_dim=400, activation=&#8221;relu&#8221;))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Dense( N, activation=&#8221;softmax&#8221;))<br />
</span></p>
<p>Приступаем к обучению модели с помощью метода <span>fit </span>модели (рисунок 2).</p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2024/06/061124_1517_2.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Рисунок 2. Ход обучения нейронной сети<br />
</span></p>
<p style="text-align: justify;"><span>Можно посмотреть, как нейронная сеть делает предсказание на тестовых данных. Для этого применяется метод predict:<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2024/06/061124_1517_3.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Рисунок 3. Валидация нейронной сети<br />
</span></p>
<p style="text-align: justify;"><span>2. Трехслойная нейронная сеть.<br />
</span></p>
<p style="text-align: justify;"><span><span>Усложним нейронную сеть, сделав 3 слоя. Рассматривается сеть из трех нейронных слоев:</span><span><br />
</span></span></p>
<p style="text-align: justify;"><span>model = Sequential()<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Dense(700, input_dim=400, activation=&#8221;relu&#8221;))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Dense(100, activation=&#8221;relu&#8221;))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Dense( N, activation=&#8221;softmax&#8221;))<br />
</span></p>
<p style="text-align: justify;"><span>Остальные шаги проделываются аналогично.<br />
</span></p>
<p style="text-align: justify;"><span>3. Сверточная нейронная сеть.<br />
</span></p>
<p style="text-align: justify;"><span>Полносвязная нейронная сеть недостаточно качественно выполняет работу с изображениями. Прогресс обучения двуслойной нейронной сети и трехслойной нейронной сети растет достаточно медленно, за счет увеличения количества слоев. Более качественный результат можно получить, построив сверточную нейронную сеть:<br />
</span></p>
<p style="text-align: justify;"><span>model = Sequential()<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Conv2D(32, (3, 3),<br />
</span></p>
<p style="text-align: justify; margin-left: 35pt;"><span>input_shape=(img_width, img_height, 1), activation=&#8217;relu&#8217;))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(MaxPooling2D(pool_size=(2,2)))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Conv2D(64, (3, 3), activation=&#8217;relu&#8217;))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(MaxPooling2D(pool_size=(2, 2)))<br />
</span></p>
<p style="text-align: justify;"><span>model.add(Flatten())<br />
</span></p>
<p style="text-align: justify;"><span>model.add( Dense( 700, activation = &#8216;relu&#8217;))<br />
</span></p>
<p style="text-align: justify;"><span>model.add( Dense( N, activation=&#8217;softmax&#8217;))<br />
</span></p>
<p style="text-align: justify;"><span>Обучение проводится аналогично. По итогам распознавания собственных изображений можно сделать следующий вывод (таблица 1):<br />
</span></p>
<p><span style="color: black;">Таблица 1 – Качество распознавания изображений нейронными сетями<br />
</span></p>
<div style="margin-left: 5pt;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 262px;" />
<col style="width: 329px;" /></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border: solid 1pt;">
<p style="text-align: center;"><span>Структура НС</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 1pt; border-left: none; border-bottom: solid 1pt; border-right: solid 1pt;" valign="middle">
<p style="text-align: center;"><span style="color: black;">Качество распознавания</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 1pt; border-bottom: solid 1pt; border-right: solid 1pt;">
<p style="text-align: justify;"><span style="times new roman; 10pt; background-color: white;">Полносвязная нейронная сеть из двух слоев </span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 1pt; border-right: solid 1pt;" valign="middle">
<p style="text-align: center;"><span style="times new roman; 10pt; background-color: white;">97.75 %</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 1pt; border-bottom: solid 1pt; border-right: solid 1pt;">
<p style="text-align: justify;"><span style="times new roman; 10pt; background-color: white;">Полносвязная нейронная сеть из трех слоев </span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 1pt; border-right: solid 1pt;" valign="middle">
<p style="text-align: center;"><span style="times new roman; 10pt; background-color: white;">98.25 %</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 1pt; border-bottom: solid 1pt; border-right: solid 1pt;">
<p style="text-align: justify;"><span style="times new roman; 10pt; background-color: white;">Сверточная нейронная сеть с двумя сверточными слоями</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 1pt; border-right: solid 1pt;" valign="middle">
<p style="text-align: center;"><span style="times new roman; 10pt; background-color: white;">99.65 %</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: justify;"><span>Подготовим также в Paint собственные изображения и загрузим их на гугл-диск (рисунок 4).<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2024/06/061124_1517_4.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span style="color: black;">Рисунок 4. Собственные изображения для проверки<br />
</span></p>
<p style="text-align: center;"><span style="color: black;">работы нейронной сети<br />
</span></p>
<p style="text-align: justify;"><span>Обученная нейронная сеть используется для распознавания согласных букв на новых данных. Модель анализирует входное изображение и выдает прогнозируемую букву с определенной вероятностью. Точность распознавания оценивается на тестовом наборе данных, который не использовался в процессе обучения, что позволяет объективно оценить её эффективность.<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2024/06/061124_1517_5.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Рисунок 5. Распознавание и предсказание нейронной сети<br />
</span></p>
<p style="text-align: justify;"><span>Сверточная нейронная сеть будет, как и ожидалось, давать наилучшее предсказание.<br />
</span></p>
<p style="text-align: justify;"><span>Заключение. Разработка и использование нейронных сетей для распознавания согласных букв демонстрирует высокую эффективность и перспективность данного подхода. Применение библиотек TensorFlow и сервисов, таких как Google Colab, значительно упрощает процесс создания и обучения моделей машинного обучения. Эти технологии открывают новые возможности для автоматизации процессов и повышения точности распознавания в различных приложениях.</span></p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2024/06/102167/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
