Рубрики
Без рубрики

Классифицирующие дорожные знаки

Используя Tensorflow, я тренирую сверточную нейронную сеть, чтобы классифицировать дорожные знаки с точностью 95%.

Автор оригинала: David Clark.

Проект № 2 для удивительной мощности самостоятельной вождения нанодегрея

Проект № 2 для автомобильного нанодегрета автомобиля UDACIME (SDCND) – это использование нейронных сетей (в частности, глубокие сверточные сети) для классификации изображений знаков трафика. Это важная проблема для автомобилей самостоятельной вождения, для того, чтобы иметь возможность классифицировать изображение дорожного знака в соответствии с его типом, позволит самостоятельному автомобилю, чтобы принять важные решения.

Если вы пропустили мое первое обновление проекта SDCND, вы можете найти его здесь Отказ

Код и детали

Код для этого проекта можно найти на Github здесь Отказ Я бы порекомендовал Readme проекта аудитории, которые знакомы с глубоким обучением. Readme будет иметь все сочные детали.

Для тех меньших машин обучения …

Если вы заинтересованы в изучении глубокого обучения и того, как его можно применять к классификации изображений, я настоятельно рекомендую Машинное обучение весело! Часть 3 Отказ

Я постараюсь сохранить остаток этого высокого уровня для общей аудитории.

Обзор высокого уровня

Чтобы классифицировать изображения, используя технику, известную как «глубокое обучение», вам нужно много данных – тысячи изображений. Это связано с тем, что нейронная сеть, которая использует глубокое обучение, принимает в каждом изображении и узнает об этом. Чем больше примеров, тем больше учиться, а тем лучше производительность.

К счастью, есть Общественный набор данных немецких дорожных знаков, которые уже были маркированы правильно. Да, Немецкий дорожные знаки. Вы можете почувствовать изображения в наборе данных на рисунке ниже.

Пример изображения из набора данных из Сайт Отказ

Набор данных содержит 43 различных типов дорожных знаков, которые резко варьируются в качестве изображения. Все изображения в цвете, а набор данных, который у меня использовал, имел все изображения, масштабированные до 32×32 пикселей – довольно зернистый. Всего было около 47 000 изображений.

Подробности о том, как работают глубокие нейронные сети, довольно запутаны, но я выделим некоторые основные очки:

  1. «Глубоко» означает несколько слоев.
  2. Каждый слой «узнает» для идентификации функций о передаваемых изображениях.
  3. Струкнув эти слои вместе, сеть может определить «особенности функций». Например, первый слой может идентифицировать строки, а также вторые группы строк (как треугольники). Вскоре у вас есть что-то, что выглядит как знак урожайности.
  4. Нейронные сети Узнайте, какие особенности имеют отношение к классификации данных самостоятельно используя мощность математики.

По мере того, как можно пройти больше изображений, сеть улучшается и становится лучше на классификации знаков. В конце мою сеть была 95% точны Отказ Этот номер точности варьируется некоторыми в зависимости от типа знака, кстати. Поскольку он видел больше скоростных знаков, чем токарные знаки, это будет лучше, чтобы идентифицировать знаки скорости.

Чтобы проиллюстрировать это и проверить мою сеть, я загрузил пять разных немецких дорожных знаков из Интернета. Пять изображений, после размера до 32×32, показаны ниже.

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

Я пробежал эти пять изображений через мою сеть, рассказывая об этом, чтобы вернуть, какой знак он считает, что фотографии представляют собой и уверенность в ее предположении (вероятность Softmax). В следующей таблице приведены результаты.

Сеть смогла правильно идентифицировать все, кроме последнего знака – «идти прямо или левый» знак. Я нахожу его несколько утешительным, что сеть классифицирует знак как «Держать правильно», что, по крайней мере, похоже.

Мне очень понравилось этот проект. Это была моя первая настоящая наряда в нейронные сети и глубокое обучение. Я планирую продолжить публикацию о будущих проектах SDCND SDCND SDCND, поэтому, если вы хотите получить обновление, когда выходят, вы можете следовать за мной на среднем.