Как мы научили ИИ искать полосу движения при отсутствии дорожной разметки

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

В закладки
Аудио

Немного о нашей компании и концепте мы рассказывали в этой статье ранее:

Ralient-шаттл (R-shuttle) — это грузовой электрофургон, предназначенный для городской доставки (последней мили), а также для доставки в пригороде (город-область).

​Прототип R-shuttle

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

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

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

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

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

С такими результатами выезжать на настоящие дороги России небезопасно, поэтому мы решили использовать новый подход с аугментацией. Аугментация данных (data augmentation) — это методика создания дополнительных обучающих данных из имеющихся данных. Мы удаляли разметку с дороги там, где она должна была быть, и обучали нейросеть тем же образом. Нам пришлось научиться понимать, где есть точно дорога, а где другие участники движения.

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

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

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

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

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

Подписывайтесь на наш Twitter, на мой Twitter, следите за нашим процессом работы.

Спасибо!

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

Написать
{ "author_name": "Артем Кривич", "author_type": "self", "tags": [], "comments": 35, "likes": 60, "favorites": 47, "is_advertisement": false, "subsite_label": "transport", "id": 89535, "is_wide": false, "is_ugc": true, "date": "Thu, 24 Oct 2019 16:32:02 +0300", "is_special": false }
0
{ "id": 89535, "author_id": 379545, "diff_limit": 1000, "urls": {"diff":"\/comments\/89535\/get","add":"\/comments\/89535\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/89535"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199115, "last_count_and_date": null }
35 комментариев
Популярные
По порядку
Написать комментарий...
12

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

Ответить
4

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

Ответить
0

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

Ответить
0

монотонность среды и знания стандарта обустройства дорожного полотна

Ответить
0

Это предстоит еще протестировать и получить результаты. Не все кейсы мы пока испытали. 

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

Ответить
2

Если вам интересно посмотреть это в динамике, посмотрите наше видео https://www.youtube.com/watch?v=SVmbrUHEJeU

Ответить
0

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

Ответить
2

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

Ответить
0

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

Ответить
0

Какая структура сети?

Ответить
1

что вот здесь помешало?

Ответить
1

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

Ответить
1

Я не до конца понял, ваш датасет состоит из фотографий? Тогда у яндекса в народных картах есть уйма фоток с регика за разные даты

Ответить
1

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

Что легко может привести к выезду на встречку.

Ответить
0

Как раз этот кейс и является сложным в роботах водителях. Ждём испытания роботов в условии пурги и переметенной дороги!

Ответить
0

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

Ответить
0

Тьма вопросов: например, ремонт дороги / теплотрассы - без нормальной организации работы и временного движения - со знаками и временной разметкой

Ответить
0

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

Ответить
0

Чей банкет - не в курсе. Если найдёте их юрлицо - гляну в контур фокусе.

А насчёт наивных попыток - дык, не боги горшки обжигают! И в гугле такие же команды сидят и пилят автопилот. Наши условия довольно специфичные, не исключено соо и у нас выйдет неплохо.

Как Алиса распознаёт русский язык лучше и быстрее всех!)

Ответить
0

ООО ИИ30 Автономные Транспортые системы

Я к тому, что многие компании начали еще десяток лет назад и до сих пор только Тесла катает более-менее прилично, но и то далеко не везде. А Тесла не только с камер распознает объекты, а еще и комплекс лидаров имеет, как без них Ralient собирается катать тележку - мне упорно не понятно.

Ответить
0

Лидар - штука стандартная. Если распознал объекты округ камерой - измерить расстояние до него лидаром не так сложно.

А вот распознать объект на лидаре - сложнее чем на камере: это массив точек и разряженный.

Поэтому технологии на основе камер - вполне себе реальные. Мы же просто глазами смотрим.

Ответить
0

Ещё один участник имеет отношение к Муромскому заводу трубопроводной арматуры. Контора с выручкой в 1.6млрд и некоторой прибылью. Видимо, они и финансируют

Ответить
0

Спасибо. Однако даже с такой выручкой прибыли вряд ли хватит, чтобы сделать и тележку и автономный софт.  Тут даже в российских условиях от сотни млн $ потребуется. А также годы разработок и сотни сотрудников. А у Ralient - всего год истории и десяток сотрудников.

Ответить
0

обработка локальная или через облако?

Ответить
1

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

Ответить
0

Спасибо за интересную статью! Есть несколько вопросов.

1. Сетка читает дорожные знаки? Если нет, то как без разметки машина будет поворачивать на дороге как на картинке? Нет полосы, а потом появляется. Если не читает знаки то оффлайн карты все же используете, ограничения скорости, где поворот, разворот разрешен и т.д.? 
2. Если знаки читает, то насколько быстро нейронка работает. Это ведь только по знакам уже дофига данных - знаки сверху, справа. А может не знак, а реклама вообще висит. На картинке внизу такую видно. она далеко, но издалека как раз таки по размерам как дорожный знак. 

3. У вас только компьютерное зрение или еще лидары и датчики? Если только камеры, то как видит остальных участников дорожного движения, перестраивается, поворачивает - широкоугольные камеры на все четыре стороны?  Если датчики + компьютерное зрение, то опять таки вопрос скорости распознавания где минимум 250 градусов нужно анализировать и какая видеокарта нужна на работу такой модели?

4. На фото без разметки чистое стекло. А  когда разметку не видно это еще как правило ливень, снегопад и грязь летящая на лобовое стекло с впереди едущих, особенно с таких же - последней мили. Работает ли аугментация при таком раскладе?

Ответить
0

Надеюсь на большую часть ваших вопросов ответит видео: https://www.youtube.com/watch?v=SVmbrUHEJeU

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

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

Ответить
0

Артем, а как бы с вами связаться приватно?  Со мной, если что, tsuren(собачко)xmlshop(точко)com  У меня для вас есть испытательный полигон.

Ответить
0

Добрый день, видели ваше письмо на почте, ответим в ближайшее время. Спасибо!

Ответить
0

Я так понял - распознавание делается камерами. А планируете объединять данные с лидаров? С радаров? Инфракрасные камеры?

Кмк в части computer vision самые большие перспективы у систем, умеющих делать адекватное дополнение данных с разных типов датчиков! И миксовать с известными данными: кусками точных карт, фактическими треками других роботов и тп.

Ответить
0

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

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

Ответить
0

Да, посмотрю. Любопытно)

Про совмещение: конечно - это сложная часть! Практических работающих технологий пока нет.

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

Интересный сценарий на трассе: при 5g можно будет делать «слепые» обгоны если трасса контролируется автомобилями впереди - которые ее видят.

Ответить
0

Подумал может ребята наткнулись на решение проблемы "обочина-край дороги"...
А тут (( - бордюр - ширина полосы по ГОСТу и проверка гипотезы по машинам...

Ответить
0

Мы не закладываем ширину полос)

Ответить
0

ну и зря... 

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }