Программа с графическим интерфейсом для распознавания рукописных цифр. Для использования достаточно распаковать архив model.zip
в общую папку и запустить GUI.py
Реализация графического интерфейса для работы с обученной моделью через tkinter:
- Кнопки
B+
иB-
изменяют размер кисти для рисования - Кнопка
Clear
очищает поле для рисования - Кнопка
Predict
выводит результат работы модели в правый нижний угол - Если нарисовать что-либо в окне, то спустя 2 секунды бездействия предсказание числа произойдет автоматически.
Интерфейс приложения |
Функция обработки изображения из окна для рисования. Для работы с изображением используются Pillow, pandas и NumPy. Функция сжимает изображение, удаляет лишние данные, приводит полученное изображение к размеру 20x20, после чего добавляет рамку шириной 4 пикселя по краям. В итоге получается изображение 28x28, которое успешно обрабатывает модель.
Изображение до и после обработки |
Обучение модели распознавания цифр через KNeighborsClassifier на данных из data.zip
и последующая её консервация в model.pkl
. Приведенная модель показывает следующие результаты на тестовых данных:
model classification report |
В архиве данные MNIST в формате csv для самостоятельного обучения модели. Описание данных на вики.
Пример данных |