Реализация

Классификация дорожных знаков с использованием остаточных сетей (ResNet)

Глубокое остаточное обучение классификации дорожных знаков

Глубокие сверточные нейронные сети (CNN) широко используются для решения различных задач компьютерного зрения в области искусственного интеллекта. Эта статья посвящена разработке модели глубокого обучения для распознавания дорожных знаков.

Оглавление

  • Анализ данных
  • Создайте модель ResNet
  • Обучение модели
  • Оценка модели
  • Прогнозы
  • Ссылки

Прежде всего, нам нужен набор данных для обучения модели глубокого обучения распознаванию дорожных знаков. Kaggle Datasets - лучшая платформа для поиска наборов данных для различных задач. Такие как машинное обучение (ML), глубокое обучение (DL) и Data Science.

Вот один из наборов данных, содержащий почти 73 139 различных изображений дорожных знаков класса 43.



Анализ данных

В этом разделе мы собираемся использовать простой способ анализа набора данных.

Вот простой график подсчета для анализа разброса данных по классам. Приведенный ниже код используется для построения графика:

Давайте визуализируем некоторые образцы из набора данных. Это поможет нам понять данные. Приведенный ниже код служит цели, создавая 100 изображений из набора данных.

Создать модель ResNet

В этом разделе мы собираемся создать модель глубокого обучения для распознавания дорожных знаков.

Остаточная сеть (ResNet)

Microsoft представила структуру глубокого остаточного обучения, чтобы преодолеть проблему «деградации», которая является сложной задачей оптимизации. Быстрые соединения, то есть пропуск одного или нескольких слоев.

Эти быстрые соединения выполняют сопоставление идентификаторов, и выходные данные добавляются к выходам составных слоев. Это решило многие проблемы, такие как:

  • Легко оптимизировать
  • Он получает точность за счет значительного увеличения глубины, обеспечивая лучшие результаты по сравнению с предыдущими сетевыми архитектурами.

Для лучшего понимания глубокого остаточного обучения. Используйте исследовательскую работу под названием «Deep Residual Learning for Image Recognition», которая находится в свободном доступе на arxiv.



Мы собираемся использовать модуль приложений TensorFlow, который предоставляет различные популярные модели глубокого обучения с предварительно обученными весами.



Мы собираемся использовать архитектуру ResNet50 без предварительно обученных весов. Мы добавляем плотный слой с активацией softmax в конце, чтобы предсказать классы. Ниже используется для создания модели.

Вы можете увидеть визуализацию модели, созданной с помощью метода plot_model.

Модельное обучение

Это параметры, которые используются в тренировочном процессе. Размер пакета - 32, эпохи 50, скорость обучения - 0,001, показатель потерь «Категориальная перекрестная энтропия», оптимизатор - «Адам». Обратные вызовы ModelCheckpoint, EarlyStopping, ReduceLROnPlateau и CSVLogger используются при обучении модели ResNet50. Вы можете использовать приведенную ниже ссылку, чтобы понять основные моменты обратных вызовов.



Приведенный ниже код используется для компиляции и подгонки модели.

Графики между точностью по эпохам на данных обучения и проверки.

График между потерями по эпохам на данных обучения и проверки.

Вы можете видеть, что потеря и точность сходятся после 20 эпох.

Оценка модели

Отчет о классификации

Давайте посмотрим на отчет о классификации, который помогает оценить модель.

Результатом является точность формы, отзыв, оценка F1 по каждому классу.

Матрица путаницы

Матрица неточностей используется для описания эффективности модели классификации. Приведенный ниже код используется для создания матрицы путаницы:

Полученная матрица неточностей показана ниже:

Классовая точность

Классовая точность может быть получена с помощью приведенного ниже кода:

Прогнозы

Несколько выборок из невидимых данных используются для прогнозирования меток классов с использованием обученной модели ResNet50. Для этого используется следующий код:

Прогноз невидимых данных показан ниже:

Код, который я написал для этой задачи, доступен как Kaggle Notebook. Не стесняйтесь использовать это. Вот ссылка:



Ссылки