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

Абстрактный

В этой статье представлена ​​система экологического восприятия для автономных транспортных средств, приложения которой перечислены ниже:

  1. обнаружение дорожных знаков
  2. обнаружение светофоров
  3. обнаружение автомобилей
  4. обнаружение пешеходов
  5. обнаружение тротуаров
  6. обнаружение пешеходных переходов
  7. обнаружение полосы движения
  8. измерение расстояния

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

Все права защищены командой pandas, и вы также можете найти полный проект на нашем GitHub.

обнаружение дорожных знаков

Сеть YOLO5 использовалась для обнаружения дорожных знаков. Кроме того, в этой части используются наборы данных Vicos и Tsinghua, детали которых приведены ниже:

  1. Набор данных Vicos содержит 7000 изображений с высоким разрешением, которые включают 200 классов различных дорожных знаков. Эта база данных получена при движении по улицам Словении и также помечена словенской компанией под названием DFG, поэтому она также известна как набор данных DFG.

2. Набор данных Tsinghua содержит 100 000 изображений и более 30 000 дорожных знаков, включая 200 классов различных дорожных знаков.

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

Некоторые выходные изображения можно увидеть ниже:

обнаружение светофоров, автомобилей и пешеходов

Для этих частей, помимо использования сети YOLO5 для обнаружения, для точной настройки модели используется набор данных по умолчанию, используемый самим YOLO, которым является COCO.

обнаружение тротуаров

Чтобы обнаружить тротуар, нам нужно семантически разделенное изображение. В этой части используется сеть SGDepth.

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

обнаружение пешеходных переходов

Для обнаружения пешеходных переходов в этом проекте использовались контуры, предоставленные библиотекой Python OpenCV.

обнаружение полосы движения

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

Сеть обучается с использованием наборов данных CULane и TuSimple. Набор данных CULane содержит более 55 часов видео, собранных камерами, установленными на шести различных транспортных средствах, управляемых разными водителями в Пекине.

Набор данных TuSimple содержит 3626 видеоклипов длительностью 1 секунду.

измерение расстояния

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

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

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

Вывод

Чтобы запустить программу, сначала перейдите на страницу проекта на GitHub (https://github.com/Pandas-Team/Autonomous-Vehicle-Environment-Perception), а затем установите требования, используя приведенный ниже код:

$ pip install -r requirements.txt

Затем создайте папку с именем weights в главном каталоге и загрузите все веса в this общую папку на Google Диске.

Затем поместите свое видео в основную папку этого репо и выполните следующую команду.

$ python main.py --video yourvideoname.mp4 [--save] [--noshow] [--output-name myoutputvideo.mp4] [--fps]

- аргумент save сохранит выходное видео.

- noshow не покажет вам предварительный просмотр вывода.

- output-name будет определять имя, которое вы хотите для вашего выходного видео

- fps отобразит результаты fps на выходных кадрах

«Yourvideoname.mp4» - это имя вашего видеофайла, добавленного в основную папку. «Myoutputvideo.mp4» - это имя, которое вы хотите для выходного видео.

После этого программа запускается, и выходное видео будет сохранено в указанном каталоге. Чтобы просмотреть вывод во время работы, не используйте аргумент «- no-show».

Результаты

Ниже можно увидеть некоторые фотографии финальных результатов:

Соавторы

Аббасомиди: Github, Linkedin, Электронная почта

Амирхоссейн Казеруни: Github, Linkedin, Электронная почта

Милад Солтани: Github, Linkedin, Электронная почта

Аида Мохаммадшахи: Github, Linkedin, Электронная почта

Амирхосейн Гейдарян: Github, Linkedin, Электронная почта