Распознавание дорожных знаков android

Распознавание дорожных знаков android

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

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

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

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

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

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

Лучший бесплатный Антирадар для андроид — 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 стран мира. Видит парные, встроенные в светофор, статические, мобильные и иные камеры. Новые устройства добавляются в базу данных регулярно, но требуется обновление.

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

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

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

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

Наши награды

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Предложенная архитектура вдохновлена ​​творчеством Янн Ле Кунабумагапо классификации дорожных знаков. Мы добавили несколько настроек и создали модульную кодовую базу, которая позволяет нам опробовать фильтры различных размеров, глубины и количества слоев свертки, а также размеры полностью связанных слоев. В знак уважения к Ле Куну и с легким дерзким видом мы назвали такую ​​сеть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
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий

Adblock
detector