# Распознавание образов на Python с использованием CNN Курсовая работа по дисциплине **«[указать название дисциплины]»** --- ## 📌 Описание проекта Данный проект представляет собой программную реализацию системы **распознавания образов** (рукописных цифр) с использованием **сверточной нейронной сети (CNN)** на языке программирования **Python**. В рамках работы реализовано: - обучение нейронной сети на датасете **MNIST**, - сохранение и повторное использование обученной модели, - графический пользовательский интерфейс (GUI) на базе **Tkinter**, - визуализация результатов обучения (графики, метрики), - демонстрация процесса распознавания пользовательского ввода. Проект разработан в рамках выполнения курсовой работы и предназначен для учебных и демонстрационных целей. --- ## 🎯 Цель и задачи работы ### Цель работы Разработка программного приложения для распознавания образов с применением методов машинного обучения и нейронных сетей на языке Python. ### Задачи работы - изучить теоретические основы распознавания образов; - рассмотреть архитектуру сверточных нейронных сетей; - реализовать CNN-модель для распознавания рукописных цифр; - обучить модель на наборе данных MNIST; - разработать графический интерфейс пользователя; - провести тестирование и анализ результатов распознавания. --- ## 🧠 Используемые технологии - **Язык программирования:** Python 3 - **Машинное обучение:** PyTorch - **Нейронные сети:** сверточная нейронная сеть (CNN) - **Графический интерфейс:** Tkinter - **Обработка изображений:** Pillow - **Визуализация:** Matplotlib --- ## 🗂 Структура проекта ```text raspoznavanie-obrazov-python-cnn/ │ ├── app.py # Графический интерфейс (Tkinter) ├── model.py # Архитектура CNN ├── train.py # Обучение модели и сохранение артефактов ├── preprocess.py # Предобработка изображений ├── utils.py # Вспомогательные функции (логирование, графики) ├── requirements.txt # Зависимости проекта │ ├── artifacts/ # Результаты обучения │ ├── mnist_cnn.pt # Обученная модель │ ├── metrics.json # Метрики обучения │ ├── training_plot.png # График loss и accuracy │ └── train.log # Лог обучения │ └── data/ # Данные MNIST (загружаются автоматически)