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

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

Если вы решите начать изучать как найти линии на дороге, то первым ответом будет OpenCV. Это просто как с точки зрения разработки, так и дешево по вычислениям. Но это не то, что будет работать.

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

Нейросеть для поиска разметки

Второй вариант подразумевает использовать нейросеть, предназначенную для детекции объектов, чтобы искать разметку. По этому пути пошли, например, китайская компания Baidu и некоторые российские разработчики беспилотных систем. Задачей нейросети является поиск белых прямоугольников. Если ничего выдумывать не хотите, можно вообще использовать YOLO. Дороже по вычислениям, нежели чистый OpenCV, и примерно тот же минус, не работает там, где белого прямоугольника собственно не видно, не работает там, где прямоугольник чем-то перекрыт. Но в отличие от чистого OpenCV, не работает с кривыми линиями.

В целом сами Baidu/Apollo пишут об этом прямо: Apollo 5.0 does not support a high curvature road, roads without lane lines including local roads and intersections. The perception module is based on visual detection using a deep network with limited data.

Третий вариант категоричнее и строится на базисе, что все линии нанесены на высокоточную 3D карту (HD-map), и искать их в процессе движения не нужно. У этого варианта нет минусов с точки зрения линий/полос, но есть большие вопросы к работе 3D карт. Можно повесить на машину 3 лидара, можно 7, это дорого, не универсально (сбой локализации приводит к крашу), и требует подготовки (создание 3D карты), что еще раз дорого. Этот метод использует большинство крупных компаний, которые занимаются беспилотниками и не имеют ощутимых границ в финансировании.

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

Сложные нейросети

Четвертый вариант строится на том, чтобы использовать максимум нейросетей, сложных и простых, для разных подзадач внутри одной задачи, и мы (не одни мы, к слову) движемся именно по этому пути. Это отразится на стоимости вычислений, но это все еще дешевле лидаров и 3D-карт.

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

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

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

Есть кейс, в котором никто не думал что оно заработает, тем не менее, оно работает:

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

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

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


Написать