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

Илон Маск продолжает настаивать на том, что технология автономного вождения возможна без вспомогательной инфраструктуры и дополнительных датчиков, таких как LIDAR. Точно так же, как водители-люди во время вождения в первую очередь доверяют системе пассивного оптического зондирования (мы называем их глазами), так и автомобили могут полагаться на компьютерное зрение для понимания дорожной обстановки, чтобы управлять автомобилем самостоятельно.

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

/ Илон Маск, генеральный директор Tesla Inc./

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

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

Я доволен прогрессом, достигнутым в нейронной сети. Это похоже на переход от «не кажется, что слишком много прогресса» к вау.

/ Илон Маск, генеральный директор Tesla Inc. /

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

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

Как беспилотные автомобили видят мир с помощью компьютерного зрения?

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

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

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

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

Семантическая сегментация для присвоения характеристик объектам

Вы, вероятно, видели тонну изображений, напоминающих изображение, увиденное через прибор ночного видения, просматривая которые вы могли бы восхитительно сказать: «Вау! Я вижу мир как машину ». Вот еще один.

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

Семантическая сегментация - это способность маркировать пиксели определенными классами объектов, а затем назначать им определенные функции, такие как способность двигаться, потенциальная траектория или предсказуемые поведенческие модели.

1990-е: 300 МГц / 80 мс / 1% плотность

2000-е: 1 ГГц / 80 мс / 20% плотность

2010-е: 3 ГГц / 2 мс / ›90% плотность

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

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

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

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

Первоначально алгоритмы SLAM использовались для управления роботами, затем были расширены для онлайн-3D-моделирования на основе компьютерного зрения, приложений на основе дополненной реальности и, наконец, для беспилотных автомобилей. Алгоритмы SLAM могут обрабатывать данные от различных типов датчиков, таких как:

  • датчики лазерного диапазона
  • поворотные энкодеры
  • инерционные датчики
  • GPS
  • Датчики RGB-D
  • Лидары
  • ультразвуковые датчики
  • стереокамеры

В настоящее время алгоритмы SLAM - лучший способ отслеживать компьютерное зрение и машинное обучение, позволяя роботам, автомобилям и дронам точно перемещаться и планировать свой маршрут на основе данных с датчиков. Автономные транспортные средства в основном используют алгоритмы визуального SLAM (vSLAM) из-за зависимости от визуальных образов.

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

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

Основные этапы создания 3D-карты SLAM:

  • Инициализация - определение определенной системы координат, в которой среда в реальном времени будет реконструирована на основе собранных изображений.
  • Отслеживание - набор изображений с определенными функциями в зависимости от положения камеры.
  • Картография - создание регулярно обновляемой 3D-карты на основе постоянно собираемых изображений в определенной системе координат.

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

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

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

/ Игорь Таниенков, эксперт по машинному обучению и компьютерному зрению /

Для автономных транспортных средств мы можем применить следующие алгоритмы SLAM

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

Преимущества: Распознавание уличных сцен в реальном времени и прямая обработка в автомобиле. Распознавание полу-плотных изображений.

Недостатки: не учитывается геометрическая согласованность всей карты. Реконструированные участки ограничиваются участками с сильным градиентом.

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

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

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

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

Преимущества. Это алгоритм с открытым исходным кодом, который можно использовать в различных локальных средах. Высокая стабильность закрытия петли. Он может обрабатывать поток HD со скоростью 30 кадров в секунду в реальном времени с функциями 2K - 4K одновременно на уличной сцене.

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

SVO - отслеживание выполняется путем сопоставления характерных точек, отображение выполняется прямым методом. Трекер Lucas-Kanade используется как дескриптор функции для поиска соответствий.

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

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

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

Преимущества: Инициализация карты выполняется по стереоизмерениям. Информация о глубине оценивается для каждого пикселя с использованием мультибазового стерео, а затем оптимизируется с учетом непрерывности пространства.

Недостатки: исходные данные, необходимые для построения исходной карты для дальнейшей проверки соответствия.

Обнаружение объектов, чтобы автомобиль мог понять, что он видит

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

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

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

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

Глубокое обучение: невидимая магия за действиями беспилотного автомобиля

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

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

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

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

Как работает нейронная сеть?

  • Каждое изображение с датчиков маркируется на основе сходства близко расположенных пикселей.
  • Помеченным пикселям присваиваются характеристики (форма, расстояние, расположение, движение).
  • На основе этих характеристик ИИ автомобиля обнаруживает объекты.
  • Эти объекты (с известными характеристиками) становятся входными данными для нейронной сети.
  • Тысячи объектов и миллионы функций используются для обучения сети тому, как действовать.

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

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

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

  • Получите изображение с обнаруженными объектами
  • Анализировать особенности объекта
  • Действуйте так, как вы должны, исходя из этих характеристик

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

Почему Тесла попала в пожарную машину?

Возвращаясь к инциденту с автопилотом и пожарной машиной Tesla, вполне возможно, что автомобиль ехал в режиме круиз-контроля, который опирается на подсистемы ADAS, которые отличаются от автономного вождения в его обычном понимании. Возможно, Тесла использовал первый вариант категоризации объектов. Это могло объяснить, почему машина не распознала пожарную машину. Грузовик не является обычным транспортным средством и был остановлен в момент аварии, поэтому отсутствовали два основных фактора обнаружения автомобиля. Оказывается, у автомобиля Tesla не было достаточно функций, чтобы классифицировать пожарную машину и реагировать на нее. По этой причине Tesla просто ехала прямо.

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

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

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

___________________________________________________________________

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

___________________________________________________________________

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

Первоначально опубликовано на www.intellias.com 13 февраля 2018 г.