Обзор

В последнее время глубокие сверточные нейронные сети (CNN) становятся одним из наиболее привлекательных подходов и являются решающим фактором множества недавних успехов и сложных приложений машинного обучения, таких как обнаружение объектов и распознавание лиц. Таким образом, CNN считается нашей основной моделью для решения сложных задач классификации изображений. В частности, он используется для одной из важных исследовательских и деловых операций. Приложение для распознавания рукописных цифр используется в различных задачах нашего реального времени. В частности, он используется в обнаружении автомобильных номеров, в банках для чтения чеков, в почтовых отделениях для сортировки писем и во многих других связанных задачах.

Описание

Это приложение RealTime-DigitRecognition, которое может предсказывать вывод, соответствующий рукописным изображениям. Я использовал SVC (классификатор векторов поддержки) и последовательную модель Keras для создания этой прогнозной модели. Я обучил SVC для набора данных 8X8 MNIST, но точность этой модели невысока, когда я запускаю эту модель на своих рукописных изображениях (600X600). Это связано с изменением размера изображений с 600X600 до 8X8. Важно получить хорошие результаты, поэтому я создал последовательную модель в Keras и попробовал ее на наборе данных 28X28 MNIST. Теперь он дает очень хороший результат на рукописных цифрах.

Интерфейс создается с помощью Pygame. Предварительная обработка изображений является наиболее важной в этом проекте, который я сделал с помощью Scipy и OpenCV.

Набор данных

MNIST - это широко используемый набор данных для задачи классификации рукописных цифр. Он состоит из 70 000 помеченных полутоновых изображений размером 28x28 пикселей рукописных цифр. Набор данных разделен на 60 000 обучающих изображений и 10 000 тестовых изображений. Всего существует 10 классов (по одному на каждую из 10 цифр). Задача состоит в том, чтобы обучить модель, используя 60 000 обучающих изображений, а затем проверить точность ее классификации на 10 000 тестовых изображениях.

Образцы изображений

Это несколько примеров изображений рукописного персонажа из набора данных mnist.

Зависимости

Это список зависимостей для запуска этого приложения.

Skleran
Keras
tensorflow/theano
Opencv
Pygame
Pandas
Numpy
Scipy
Matplotlib

Скачать исходный код с моего GitHub



Как пользоваться

  • Загрузите или клонируйте этот репозиторий.
  • Извлечь в какое-то место
  • Сначала запустите app.py из папки RealTime-DigitRecognition.
    Теперь откроется окно Pygame. Это будет выглядеть так.

  • Нарисуйте цифры в левой стороне окна, и результат появится в правой стороне окна.
  • Управление мышью:
    правая кнопка предназначена для сброса настроек экрана.
    левая кнопка предназначена для рисования.

Выбор модели

Отредактируйте в app.py
SVC склеарна: комментарий KERARS и раскомментируйте SVC
Последовательная модель: комментарий SVC и раскомментируйте KERARS

Демо

Будущая работа

Я разрабатываю эффективную модель для обнаружения нескольких цифр в одном кадре, таких как номерной знак, номер телефона, контрольный номер и т. Д.
Вот некоторые результаты

Пожалуйста, зафиксируйте любые изменения или ошибки ☺