Приложение распознавания дорожных знаков

Содержание

Как работает система распознавания дорожных знаков

Наиболее распространенной причиной дорожно-транспортных происшествий является превышение скоростного режима. Это приводит не только к повреждению автомобилей, но и к серьезным последствиям для здоровья водителей и пассажиров. Одной из систем, разработанных для профилактики ДТП, является система распознавания дорожных знаков, которая помогает следить за допустимой скоростью и регулировать движение транспортного средства.

Системы распознавания дорожных знаков — повышение безопасности и комфорта

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

Что такое система распознавания дорожных знаков

Распознавание дорожных знаков с точностью 98% с помощью глубокого обучения

Дорожные знаки являются неотъемлемой частью нашей дорожной инфраструктуры. Они предоставляют критически важную информацию, иногда убедительные рекомендации, для участников дорожного движения, что, в свою очередь, требует от них корректировки поведения при вождении, с тем чтобы они следовали тем правилам дорожного движения, которые в настоящее время применяются. Без таких полезных признаков мы, скорее всего, столкнемся с большим количеством несчастных случаев, так как водителям не дали бы критическихОбратная связьо том, как быстро они могут безопасно идти, или проинформированы о дорожных работах, крутом повороте или школьных переходах впереди. В наше современное время вокруг1,3 млн. Человекумирать на дорогах каждый год. Это число было бы намного выше без наших дорожных знаков.
Естественно, автономные транспортные средства также должны соблюдать дорожное законодательство и, следовательно,признатьа такжеПонимаюЗнаки дорожного движения.

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

Основное назначение

Стоит понимать, что большинство ДТП происходит по вине водителя, который не соблюдает скоростной режим. А делается это зря, так как ограничения вводятся не просто так: скорость автомобиля должна быть такой, чтобы водитель мог успеть выполнить все принимаемые им решения, будь то маневр или экстренное торможение. Поэтому и начались разработки специальных систем, которые могут помочь водителю принимать решение или контролировать свои действия. Сейчас система распознавания дорожных знаков встречается на разных автомобилях, в том числе и таких дорогих, как BMW, Mercedes-Benz, Audi, Ford, Opel, Volkswagen и еще многие другие. Эта технология является одной из основных в системе безопасности автомобиля, которой сейчас комплектуется большинство автомобилей. Примером можно назвать Opel Eye от, соответственно, Опель. Эта система признана одной из лучших на протяжении нескольких последних лет. Mercedes-Benz же назвали свою систему Speed Limit Assist, а специализируется она на предупреждении водителя о превышении им скоростного лимита на данном участке дороге в конкретное время.

Как функционирует TSR

На сегодняшний день ведущие производители автомобилей (такие, как Ford, BMW, Audi, Volkswagen, Opel, Mercedes-Benz) устанавливают ее на свою продукцию. Основным предназначением этой новинки является предупреждение тех, кто в данный момент за рулем, о необходимости соблюдения максимальной скорости движения. В тот момент, когда машина минует очередной знак, установка фиксирует текущую скорость движения и то, насколько водитель ее придерживается. Если же нет, то оборудование напоминает водителю о недопустимости превышения. Интересно, что у разных производителей такие установки могут называться по-разному, хотя выполняют схожие функции. Так, у Mercedes Benz она именуется Speed Limit Assist (буквально, система по контролю за ограничением скорости), у Opel — Opel Eye (признана лучшей инновацией в сфере автобезопасности за 2010-й год). Производитель Вольво назвал свое детище Road Sign Information, что в переводе звучит, как комплекс информирования о дорожных знаках.

Настройка проекта

Набор данных встраивается в наборы обучения, тестирования и проверки со следующими характеристиками:

  • Размер изображения 32 (ширина) x 32 (высота) x 3 (цветовые каналы RGB)
  • Учебный набор состоит из 34799 изображений
  • Валидационный набор состоит из 4410 изображений
  • Тестовый набор состоит из 12630 изображений
  • Есть 43 класса (например, ограничение скорости 20 км / ч, нет доступа, ухабистая дорога и т. Д.)

Более того, мы будем использовать Python 3.5 с Tensorflow для написания нашего кода.

Лучший бесплатный Антирадар для андроид — 10 популярных приложений

Команда АвтоТопик подобрала 18 лучших приложений антирадар для Андроида и Айфона, как бесплатных, так и платных, получивших много положительных отзывов и на «отлично» справляющихся с поставленными задачами.

10. ДПС Радар (Детектор Скоростных камер)

Замещает традиционный радар-детектор, доступен полностью бесплатно и не требует регистрации. Показывает стационарные / переносные камеры, работает в качестве GPS-спидометра, показывает ограничения скорости возле стационарных камер контроля скорости.

  1. Разработчик — M.I.R.
  2. Работает без Интернета — нет, подключение необходимо для обновления и загрузки карты.
  3. Язык — русский.
  4. Для каких стран — весь мир.
  5. Размер — 3,3 Мб.
  6. Требуемая версия Android — от 4,2 и выше.
  7. Количество установок — более 500 тыс.
  8. Оценка пользователей — 4,3.
  9. Цена — бесплатно, есть платный контент (без рекламы).

  1. Удобный и понятный интерфейс.
  2. Большая база радаров.
  3. Четко срабатывает при стабильном сигнале GPS.
  4. Легкость настройки.
  5. Небольшой вес.

  1. Не работает без Интернета.
  2. Некоторые камеры не видит.
  3. Реклама закрывает во время работы часть контента.

ДПС Радар — неплохой вариант с позиции удобства работы и базы камер. Приложение стабильно работает, регулярно обновляется, но требует подключения к Интернету. Занимает десятую строчку нашего рейтинга.

9. Антирадар MapcamDroid, Радар детектор

Предупреждает о засадах работников ГИБДД, камерах фиксации скорости, о радарах и потенциально опасных местах на дороге. Своевременно напоминает о необходимости снижения скорости.

Работает вместе с навигатором, имеет базы 80 стран мира. Видит парные, встроенные в светофор, статические, мобильные и иные камеры. Новые устройства добавляются в базу данных регулярно, но требуется обновление.

Конструкция системы

Как правило, все эти конструкции от любого производителя имеют типичный набор инструментов и устройств в своем распоряжении.

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

  • Специальная чувствительная видеокамера.
  • Экран или некое другое приспособление, на котором система отчитывается перед водителем.
  • Блок управления, который и выполняет основную работу.

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

С чего состоит система предупреждения

Камера на зеркале заднего вида

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

    видеокамера на ветровом стекле;

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

Первое поколение способно распознать знаки:

Второе поколение способно распознать кроме выше перечисленных знаков еще:

    движение без остановки запрещено;

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

Наши награды

The Intel Global Challenge at UC Berkeley is where the best engineers and scientists present how

Web Ready – крупнейший в Восточной Европе независимый конкурс технологических компаний

Дополнительное описание: что за конкурс или примия, за что получина награда и прочее

Ключевые компоненты и принцип действия

Итак, каждая из подобных систем для распознавания (идентификации) дорожных знаков имеет примерно идентичную техническую конструкцию. Главными составляющими ее выступают: блок управления, стандартная видеокамера, а еще средство для передачи и вывода результатов. Что касается самой камеры, то ее крепят за зеркалом заднего вида на лобовом стекле. Ее задача — отслеживать пространство впереди и по бокам транспортного средства, там, где могут устанавливаться знаки в районе дорожного полотна. Снятое изображение транслируется на блок управления. Видеокамеры в настоящее время активно применяется при разработке различных современных систем безопасности. Теперь стоит рассмотреть, как работает и для чего предназначен электронный блок управления. Основные его задачи таковы:

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

Что такое TSR

Назначения и главные функции

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

  1. Определение и подтверждение информации о дорожных знаках.
  2. Поиск информации в базе данных и уведомление водителя.
  3. Предупреждение с помощью светового или звукового сигнала, если скорость движения не изменяется.

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

Системы находятся на начальном этапе развития, что сказывается на точности обнаружения знаков и их расшифровке. Также существует понятие слепых зон, когда датчики не могут считать информацию.

Изучение набора данных

В начале импортируем все необходимые библиотеки.

Для тренировки нейронной сети будем использовать изображения из папки «train», которая содержит 43 папки отдельных классов. Инициализируем два списка: data и labels. Эти списки будут нести ответственность за хранение наших изображений, которые мы загружаем, вместе с соответствующими метками классов.

Далее, с помощью модуля os мы перебираем все классы и добавляем изображения и их соответствующие метки в список data и labels. Для открытия содержимого изображения используется библиотека PIL.

Этот цикл просто загружает и изменяет размер каждого изображения до фиксированных 30×30 пикселей и сохраняет все изображения и их метки в списках data и labels.

Затем нужно преобразовать список в массивы numpy для подачи в модель.

Форма данных – (39209, 30, 30, 3), означает, что имеется 39 209 изображений размером 30×30 пикселей, а последние 3 означают, что данные содержат цветные изображения (значение RGB).

Из пакета sklearn мы используем метод train_test_split() для разделения данных обучения и тестирования, используя 80% изображений для обучения и 20% для тестирования. Это типичное разделение для такого объема данных.

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

Диаграмма распределения

Диаграмма распределения

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

После увеличения наш обучающий набор данных имеет следующую форму.

Давайте еще раз проверим распределение данных.

Диаграмма распределения после аугментации

Диаграмма распределения после аугментации

На графика видно, что наш набор стал более сбалансирован. Далее из пакета keras.utils мы используем метод to_categorical для преобразования меток, присутствующих в y_train и t_test , в one-hot encoding.

Изображения и распространение

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

Также существует значительный дисбаланс между классами в тренировочном наборе, как показано на гистограмме ниже. Некоторые классы имеют менее 200 изображений, в то время как другие имеют более 2000. Это означает, что наша модель может бытьпристрастныйк перепредставленным классам, особенно когда он не уверен в своих предсказаниях. Позже мы увидим, как мы можем уменьшить это несоответствие, используя увеличение данных.

Алгоритм распознавания

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

  1. Опознавание формы дорожного знака (а они у нас бывают очень разные).
  2. Определение надписи на знаке.
  3. Распознавание цвета знака.
  4. Проверка наличия таблички информации.

Разберем принцип работы этого алгоритма на примере знака ограничения скорости движения, распознавание которого и ориентировано большинство автомобилей. Сначала технология опознает знак круглой формы, затем его цветовое сочетание: красное с белым. Следующим становится распознавание надписи, которая есть на знаке, то есть цифра максимально допустимой скорости. Теперь блок анализирует скорость автомобиля, с которой он едет в данный момент и, если есть различие, информирует водителя о превышении максимально допустимой скорости на данном участке дороги. Если же превышения нет, то знак просто высвечивается на приборной панели автомобиля, как бы информирую водителя о том, что знак был распознан.

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

Если навигатор достаточно продвинут, то распознавание знаков будет ориентироваться по навигатору, там ведь тоже есть перечень всех знаков, что будут на маршруте. Так что даже, если камера не успеет засечь знак по какой-то причине — он все равно будет выведен на приборную панель, а водитель будет проинформирован о своем превышении. Как видим, система распознавания знаков является серьезным подспорьем любому водителю — как опытному, так и новичку. В разных ситуациях эта система может помочь сориентироваться в обстановке и принять правильное решение.

Как функционируют более современные системы идентификации

Такой индикатор выводится на дисплей приборной панели или информ-системы и сигнализирует до тех пор, пока водитель не убавит скорость или не закончится действие знака, ограничивающего скорость передвижения. На некоторых из современных авто система распознавания работает в тандеме с комплексом навигации, который черпает сведения из навигационных карт. Для того, чтобы система могла работать эффективно и ночью, и в плохую погоду, она может оснащаться инфракрасным прожектором. Существуют ситуации, когда видеокамера по каким-либо причинам не может идентифицировать табличку с ограничением скорости. В таких случаях информация будет взята с навигационных карт, а сигнализатор отреагирует на нее, как ему и положено. Самые прогрессивные системы, к примеру, такие, как устанавливает на свои машины Опель, распознают не только знаки по ограничению скоростного режима, но и те, которые запрещают обгон на конкретном участке дороги. Однако с развитием технологий были разработаны более хитроумные конструкции. Они могут идентифицировать следующие типы дорожных знаков:

  • главная дорога или окончание ее действия;
  • запрещен въезд;
  • запрещен обгон;
  • начало или конец населенного пункта;
  • преимущество в движении или требование уступить движение;
  • начало или окончание автомагистрали;
  • территория «жилая зона»;
  • конец действия всех ограничений.

Функционирование системы распознавания

Конструктивные элементы системы

Система работает на основе сложного аппаратно-программного комплекса. Стандартные элементы конструкции:

  • Видеокамера — расположена, как правило, на ветровом стекле и предназначена для обнаружения дорожных знаков.
  • Блок управления — принимает информацию с камеры, обрабатывает образы и ищет совпадения с базой данных. Если обнаружено ограничение, информация передается на дисплей.
  • Дисплей для вывода информации — предназначен для отображения конечной информации касательно скоростного ограничения, особенностей движения на участке пути. Если водитель не реагирует на уведомления системы, появляются звуковые или световые сигналы.

Особые требования предъявляются к качеству съемки камеры. Автомобиль движется на высокой скорости, поэтому для распознавания объектов требуется хорошая оптика с высоким разрешением картинки.

Построение нейронной сети

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

Архитектура нашей модели:

2 Conv2D слоя (filter=32, kernel_size=(5,5), activation=”relu”)

MaxPool2D слой ( pool_size=(2,2))

Dropout слой (rate=0.25)

2 Conv2D слоя (filter=64, kernel_size=(3,3), activation=”relu”)

MaxPool2D слой ( pool_size=(2,2))

Dropout слой (rate=0.25)

Flatten слой, чтобы сжать слои в 1 измерение

Dense слой (500, activation=”relu”)

Dropout слой (rate=0.5)

Dense слой (43, activation=”softmax”)

Этапы предварительной обработки

Первоначально мы применяем два этапа предварительной обработки к нашим изображениям:

Оттенки серого
Мы преобразуем наше 3-канальное изображение в одно изображение в градациях серого (мы делаем то же самое в проекте 1 – Обнаружение линии переулка – вы можете прочитать об этом в моем блогеВОТ).

Нормализация изображения
Мы центрируем распределение набора данных изображения путем вычитания каждого изображения из среднего значения набора данных и деления на его стандартное отклонение. Это помогает нашей модели обрабатывать изображения равномерно. Полученные изображения выглядят следующим образом:

Понятный алгоритм работы — повышение уровня безопасности

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

  • видеокамера находится в постоянном наблюдении и считывает данные о наличии дорожных знаков;
  • как только обнаруживается объект по форме напоминающий знак, сведения о нем передаются на ЭБУ;
  • начинается процесс распознавания цвета и дополнительной информации;
  • в базе данных проводится поиск соответствия;
  • на основании проведенного анализа система информирует водителя, при необходимости.

Установка будет уведомлять водителя в том случае, если он превысил допустимый порог скорости. В остальных ситуациях на табло будет просто выводиться информация о текущей скорости транспортного средства. Системы для идентификации знаков на дороге обладают рядом достоинств, однако высокие требования предъявляются к качеству записи видеокамеры — все-таки автомобили передвигаются с высокой скоростью.

Логика и принцип работы

Пошаговое описание логики обнаружения объектов:

  1. Камера анализирует окружающую среду и считывает данные о дорожных знаках.
  2. Система обнаруживает форму, похожую на знак.
  3. Распознавание цвета и наличия дополнительных символов.
  4. Поиск соответствий в базе данных.
  5. Информирование водителя через дисплей.

Последовательность распознавания типа знака:

  1. Определение формы: круг, прямоугольник, квадрат.
  2. Анализ цветовой гаммы.
  3. Считывание символов или надписей на знаке.
  4. Сравнение фактической скорости с допустимой.

Если скорость движения превышает ограничение на участке дороги, система уведомляет водителя. В остальных случаях на дисплее просто появляется информация о скоростном режиме.

Обучение и проверка модели

Мы строим нашу модель вместе с оптимизатором Adam , а функция потерь — это categorical_crossentropy , потому что у нас есть несколько классов для категоризации. Затем обучаем модель с помощью функции model.fit() .

Как вы можете видеть, наша модель обучалась в течении 25 эпох и достигла 93% точности на тренировочном наборе данных. С помощью matplotlib мы строим график для точности и потерь.

Training Loss and Accuracy

Training Loss and Accuracy

Модельная архитектура

Предложенная архитектура вдохновлена ​​творчеством Янн Ле Кунабумагапо классификации дорожных знаков. Мы добавили несколько настроек и создали модульную кодовую базу, которая позволяет нам опробовать фильтры различных размеров, глубины и количества слоев свертки, а также размеры полностью связанных слоев. В знак уважения к Ле Куну и с легким дерзким видом мы назвали такую ​​сетьEdLeNet:).

В основном мы пробовали фильтры размером 5×5 и 3×3 (он же ядро) и начали с глубины 32 для нашего первого сверточного слоя.EdLeNetАрхитектура 3х3 показана ниже:

Сеть состоит из 3 сверточных слоев – размер ядра составляет 3х3, а на следующем уровне глубина удваивается.РЕЛУв качестве функции активации, каждая из которых сопровождается максимальной операцией объединения 2×2. Последние 3 слоя полностью связаны, а последний слой дает 43 результата (общее количество возможных меток), рассчитанных с использованиемSoftMaxфункция активации. Сеть обучается с использованием мини-пакетного стохастического градиентного спуска сАдамоптимизатор. Мы создаем высокомодульную инфраструктуру кодирования, которая позволяет намдинамичноСоздайте наши модели, как в следующих фрагментах:

ModelConfig содержит информацию о модели, такую ​​как:

  • Функция модели (например, EdLeNet )
  • название модели
  • формат ввода (например, [32, 32, 1] для оттенков серого),
  • конфигурация сверточных слоев [размер фильтра, начальная глубина, количество слоев],
  • размеры полностью связанных слоев (например, [120, 84])
  • количество классов
  • отсева сохранить процентные значения [p-conv, p-fc]

ModelExecutor несет ответственность заподготовка,оценки,прогнозированиеи производя визуализации нашегоактивациякарты.

Чтобы лучше изолировать наши модели и убедиться, что они не существуют в одном графе Tensorflow, мы используем следующую полезную конструкцию:

Таким образом, мы создаем отдельные графики длякаждыймодели, следя за тем, чтобы не смешивать наши переменные, заполнители и т. д. Это избавило меня от многих головных болей.

Мы фактически начали с сверточной глубины 16, но получили лучшие результаты с 32, поэтому остановились на этом значении. Мы также сравнили цвет с оттенками серого, стандартные и нормализованные изображения и увидели, что оттенки серого имеют тенденцию превосходить цвет. К сожалению, мы едва поцарапали 93% точности тестового набора на моделях 3×3 или 5×5, не достигнув этого рубежа. Более того, мы наблюдали некоторое ошибочное поведение потерь в проверочном наборе после заданного числа эпох, что фактически означало, что наша модель была перегружена на тренировочном наборе, а не обобщала. Ниже вы можете увидеть некоторые из наших метрических графиков для различных конфигураций модели.

Преимущества систем распознавания и рекомендации по их использованию

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

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

Однако, если знаки размещены в «слепых» зонах, погнуты или не восстанавливались, то они могут не быть распознаны оборудованием. Поэтому этот момент стоит учитывать обязательно, не забывая самостоятельно контролировать дорожную обстановку.

Несмотря на то, что главной задачей любого такого оборудования является подстраховка водителя от усталости или недостаточного опыта, все-таки электроника не может тягаться по своей эффективности с человеческим глазом. Все потому, что для неё необходимы практически идеальные условия работы. Правильнее будет относиться к ней не столько, как к незаменимому помощнику, сколько как к вспомогательному оборудованию, которое может подстраховать в сложной ситуации.

Похожие разработки у разных автопроизводителей

Разработкой систем распознавания знаков занимается большинство современных компаний. Названия решений от разных производителей:

  • Speed Limit Assist от Mercedes-Benz.
  • Road Sign Information от Volvo.
  • Traffic Sign Recognition (TSR) встречается в таких авто, как Audi, Ford, BMW, Volkswagen.
  • Opel Eye от одноименного производителя.

Отличие систем заключается в качестве используемого оборудования и логики работы алгоритмов распознавания объектов на дороге.

Выбывать

Чтобы повысить надежность модели, мы обратились к отсеву, который является формой регуляризации, где веса сохраняются с вероятностьюп: неиспользованные веса, таким образом, «сбрасываются». Это предотвращает переоснащение модели. Dropout был представлен Джеффри Хинтоном, пионером в области глубокого обучения. Его группыбумагана эту тему необходимо прочитать, чтобы лучше понять мотивы авторов. Существует также увлекательная параллель с биологией и эволюцией.
В статье авторы применяют различные степени отсева в зависимости от типа слоя. Поэтому я решил принять аналогичный подход, определив два уровня выпадения, один для сверточных слоев, другой для полностью связанных слоев:

Более того, авторы постепенно приняли более агрессивные (то есть более низкие) значения отсева, поскольку они углубляются в сети. Поэтому я и решил:

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

Мы пробовали разные паратемеры, но в итоге остановились нап-ко = 0,75а такжеп-к = 0,5, что позволило нам достичь точности набора тестов 97,55% на нормализованных изображениях в градациях серого с моделью 3×3. Интересно, что мы достигли точности более 98,3% в проверочном наборе:

Графики выше показывают, что модельгладкий; плавныйВ отличие от некоторых графиков выше. Мы уже достигли цели – получить более 93% точности на тестовом наборе, но можем ли мы добиться большего успеха? Помните, что некоторые изображения были размытыми, и распределение изображений по классам было очень неравномерным. Ниже мы рассмотрим дополнительные методы, которые мы использовали для решения каждой точки.

Преимущества и недостатки

Использование систем распознавания знаков характеризуется рядом преимуществ:

  • Слежение за допустимой скоростью движения.
  • Увеличение безопасности автомобиля, снижение вероятности аварий.
  • Повышение комфорта использования транспортного средства.

Из ключевых недостатков необходимо выделить проблемы распознавания знаков в слепых зонах, особенно когда они установлены с нарушениями. С развитием программных решений водитель будет получать рекомендации не только касательно скорости, но и правил безопасного движения.

Выравнивание гистограммы

Выравнивание гистограммыэто техника компьютерного зрения, используемая для увеличенияконтраств изображениях. Поскольку некоторые из наших изображений страдают от низкой контрастности (размытое, темное), мы улучшим видимость, применяя OpenCVВыравнивание адаптивной гистограммы с ограничением контраста(он же CLAHE).

Мы снова пробуем различные конфигурации и находим лучшие результаты,точность теста 97,75%на модели 3х3, используя следующие выпадающие значения:п-ко = 0,6,п-к = 0,5,

Ниже мы показываем графики предыдущих прогонов, где мы также тестировали модель 5×5, более 220 эпох. Здесь мы можем видеть гораздо более плавную кривую, что подтверждает нашу интуицию о том, что наша модель более стабильна.

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

Некоторые изображения очень размытые, несмотря на выравнивание гистограммы, в то время как другие выглядят искаженными. Вероятно, у нас недостаточно примеров таких изображений в нашем тестовом наборе для улучшения прогнозов нашей модели. Кроме того, хотя точность теста на 97,75% очень хорошая, мы по-прежнему имеем еще один туз в нашем рукаве: увеличение данных

Увеличение данных

Ранее мы наблюдали, что данные представляют явный дисбаланс по 43 классам. Тем не менее, это не кажется серьезной проблемой, поскольку мы можем достичь очень высокой точности, несмотря на дисбаланс классов. Мы также заметили, что некоторые изображения в тестовом наборе искажены. Поэтому мы собираемся использовать методы увеличения данных в попытке:

  1. Расширьте набор данных и предоставьте дополнительные изображения в различных настройках освещения и ориентации
  2. Улучшить способность модели стать более общей
  3. Повышение точности тестирования и проверки, особенно на искаженных изображениях

Мы используем изящную библиотеку под названиемimgaugсоздать наши дополнения. Мы в основном применяемаффинные преобразованияувеличить изображения. Наш код выглядит следующим образом:

Несмотря на то, что дисбаланс классов, вероятно, вызывает некоторую предвзятость в модели, мы решили не обращать на это внимание на данном этапе, так как это приведет к значительному увеличению набора данных и увеличению продолжительности обучения (у нас не так много времени на обучение). на этом этапе). Вместо этого мы решили увеличить каждый класс на 10%. Наш новый набор данных выглядит следующим образом.

Конечно, распределение изображений существенно не меняется, но мы применяем к нашим изображениям этапы предварительной обработки в оттенках серого, выравнивания гистограммы и нормализации. Тренируемся на 2000 эпох с отсевом (п-ко = 0,6,п-к = 0,5) и достичьТочность 97,86% на испытательном комплекте:

Это наше лучшее выступление .

Но… Если вы посмотрите на показатель потерь в тренировочном наборе, то увидите, что в 0,0521 у нас, скорее всего, еще есть место для маневра. Мы планируем готовиться к большему количеству эпох и сообщим о наших новых результатах в будущем.

Тестирование на новых изображениях

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

Основная правда для изображений заключается в следующем:

Изображения были выбраны из-за следующего:

  • Они представляют различные дорожные знаки, которые мы в настоящее время классифицируем
  • Они различаются по форме и цвету
  • Они находятся в разных условиях освещения (4-й имеет отражение солнечного света)
  • Они находятся в разных ориентациях (третий наклонный)
  • У них разный фон
  • Последнее изображение на самом деле дизайн, а не реальная картинка, и мы хотели проверить модель на его соответствие
  • Некоторые из них находятся в недопредставленных классах

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

Мы достигаем идеальной точности 100% на новых изображениях. На оригинальном тестовом наборе мы достигли точности 97,86%. Мы могли бы изучить размытие / искажение наших новых изображений или изменение контраста, чтобы увидеть, как модель справится с этими изменениями в будущем.

Мы также показываем 5 верхних вероятностей SoftMax, рассчитанных для каждого изображения, с зеленой полосой, показывающей основную правду. Мы ясно видим, что наша модель достаточно уверена в своих прогнозах. В худшем случае (последнее изображение), 2-й наиболее вероятный прогноз имеет вероятность около 0,1%. На самом деле наша модель больше всего борется с последним изображением, которое, я считаю, на самом деле является дизайном, а не реальной картиной. В целом, мы разработали сильную модель!

Визуализация наших карт активации

Ниже мы показываем результаты, полученные каждым сверточным слоем (до максимального объединения), что приводит к 3карты активации,

Вывод

Мы рассказали о том, как глубокое обучение может использоваться для классификации дорожных знаков с высокой точностью, с использованием различных методов предварительной обработки и регуляризации (например, отсева) и пробуя различные архитектуры моделей. Мы создали настраиваемый код и разработали гибкий способ оценки нескольких архитектур. Наша модель достигла почти 98% точности в тестовом наборе, достигнув 99% в тестовом наборе.

Лично мне очень понравился этот проект и я приобрел практический опыт использования Tensorflow, matplotlib и исследования архитектуры искусственных нейронных сетей. Более того, я углубился в некоторые основополагающие документы в этой области, которые укрепили мое понимание и, что более важно, усовершенствовали мою интуицию о глубоком обучении.

Я считаю, что в будущем можно добиться более высокой точности, применяя дополнительные методы регуляризации, такие какнормализация партииа также путем принятия более современных архитектур, таких какНачальный модуль GoogLeNet,RESNET, илиXception,

Надеюсь, вам понравилось читать этот пост. Не стесняйтесь оставлять комментарии и хлопки :). Вы также можете подписаться на менящебетилисреднийбольше статей о моем «AI Journey». Продолжайте учиться и строить!

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Максим Коновалов
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий