Распознавание дорожной сцены

Беспилотные автомобили в числе самых ожидаемых технологий будущего. Вместе с ведущей российской компанией мы распознаем дорожную сцену.

Computer vision
Deep learning
Caffe
CUDA

2016

Коротко о главном

Задача

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

Решение

  • Создание и обучение нейронной сети для сегментации дорожной сцены
  • Создание и обучение нейронной сети для распознавания и классификации объектов на фото и видео
  • Разработка ПО для аугментации и работы с выборками
  • Подготовка кода и инструментов к использованию во встроенных устройствах

Будущее сегодня

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

Еще несколько лет назад концепция автомобиля без водителя, способного «видеть» вокруг и самостоятельно двигаться по дорогам общего пользования вместе с другими участниками движения, казалась фантастикой. Но уже сегодня автопилотируемые машины не удивляют жителей американского Маунтин-Вью, каждый крупный автоконцерн имеет собственные разработки в этой области, а любой человек может приобрести себе автомобиль Tesla с элементами искусственного интеллекта.

Рис 1. Беспилотные автомобили Google

Российские реалии

Тема беспилотных автомобилей не осталась без внимания и в России.

В конце марта 2016 года в Госдуме прошёл круглый стол, где обсудили нормативно-правовое регулирование использования беспилотных транспортных систем (БПТС) в Российской Федерации. Если поправки в законодательные акты будут приняты Государственной думой (что может случиться уже до конца года), Россия станет второй страной в мире после США, где беспилотному транспорту разрешат передвигаться по дорогам общего пользования.

Дано и определение беспилотному автомобилю:

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

Преполагается, что в ПДД включат понятия «беспилотное транспортное средство» (БПТС), «водитель БПТС», а в положении ПДД об общих обязанностях водителей добавят обязанности водителя БПТС находиться на водительском месте БПТС в течение всего времени его использования и быть готовым в любой момент перейти на ручной режим управления.

В рамках реализации проекта автономного автомобиля для дорог России для одной из ведущих российской компанией нами разработан программный комплекс для «понимания» машиной окружающего пространства.

Сегментация сцены

Чтобы автономное транспортное средство могло принимать решение о движении, бортовой компьютер должен знать, где и какие объекты находятся на дороге. Для этого первой задачей понимания сцены является сегментация — то есть, разделение картинки на отдельные сегменты.

К примеру, таким образом можно выделить непосредственно дорожное полотно из видео и уже проводить дальнейший анализ только с ним.

Рис 2. Пример сегментации дороги
Рис 3. Пример сегментации дороги

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

Рис 4. Схема нейронной сети для сегментации

Важными достойнствами такой сети являются:

  • Скорость работы: за один проход получаются результаты сразу для всех интересующих классов
  • Найденные объекты имеют точные границы, а не просто обрамляющий прямоугольник
  • Нейронная сеть смотрит на все изображение сразу, а не на отдельные участки

Аугментация выборки

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

В нашем случае мы имеем сравнительно большой датасет видео с камер, установленных на автомобилях. Однако, для ряда классов, большая часть кадров не содержит требуемых объектов. К примеру, почти всегда на кадре есть класс «дорога», тогда как объект «дорожный знак» встречается редко. Нейронная сеть просто не сможет хорошо распознавать знаки на кадрах, если не увидит их в достаточном количестве ситуаций. Что же делать?

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

Рис 5. Вырезанные знаки помещаются на другие кадры
Рис 6. Помимо знаков используются и другие объекты

Рис 7. ...иногда сложно остановиться

Использование этой техники сильно повышает качество работы алгоритма.

Результаты

Разработанные нейронные сети показали высокую эффективность в поставленных задачах.

Рис 8. Распознавание и сегментация объектов

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

Следующий проект

Поиск торговых паттернов