Машинное обучение для классификации изображений игральных карт по масти и номеру
В этой статье я обучаю модель с помощью TensorFlow определять масть и количество игральных карт по их изображению. Я создаю набор данных, фотографируя каждую карту, затем выполняю предварительную обработку и увеличение данных с помощью функций поворота, масштабирования, увеличения яркости и сдвига. Окончательный набор данных состоит из 39000 изображений в оттенках серого размером 180x180. Затем я обучаю сверточную нейронную сеть для классификации изображений карточек.
Набор данных
Чтобы создать предварительный набор данных, я просто делаю по одному снимку каждой карты в колоде из 52 карт, например:
Позже я выполняю увеличение данных с помощью различных функций преобразования.
Код
Приступим к просмотру кода (полный код проекта см. В моем github: https://github.com/awrd2019/Playing-Cards-Computer-Vision).
Сначала я импортирую все соответствующие библиотеки.
Ниже я смотрю на один образец изображения из набора данных.
В следующей ячейке я экспериментирую с различными функциями увеличения данных, встроенными в TensorFlow. Не стесняйтесь изменять значения и / или добавлять дополнительные функции увеличения. Дополнительные сведения см. На странице API TensorFlow.Keras ImageDataGenerator (https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator).
Теперь, когда я достаточно поэкспериментировал с ImageDataGenerator и решил использовать комбинацию функций преобразования для увеличения набора данных, я создаю новый набор данных из 39000 изображений. Для каждой из 52 карточек я создаю 750 преобразованных изображений этой карточки, чтобы добавить их в новый набор данных. Наконец, я перетасовываю новый набор данных перед его сохранением.
Затем я загружаю набор данных и разбиваю его на набор для поезда и тестирования.
Сейчас я строю и обучаю сверточную модель. Под ячейкой находится сводка модели.
Во время обучения точность обучения и проверки достигла 99,9%. Давайте подробнее рассмотрим потери и точность во время тренировочного процесса с помощью следующих графиков.
Наконец, я запускаю обученную модель на образце изображений тестового набора. На приведенном ниже графике показан образец изображения и прогноз модели.
Заключение
В этой статье я построил модель для классификации изображений игральных карт по масти и номеру.
Большое спасибо за чтение! Надеюсь, вам понравилась статья, и буду приветствовать любые комментарии и предложения.