Стремясь к спорному и правдоподобному росту машин, компьютеры превращаются из Спока в нечто большее, чем у Кирка, от чистой логики к интуиции. Концепция искусственного интеллекта существует в нашем мире уже несколько лет. Невозможно игнорировать потенциал машинного обучения в нужных местах. При правильном использовании ИИ может преобразовать мир, облегчая обработку огромных объемов данных и принятие важных решений. Вопрос в том, как далеко должны зайти эти решения? Можно ли доверять ИИ выбор между жизнью и смертью? Вы можете спросить: «А где у ИИ вообще есть возможность принять такое важное решение?» Давайте начнем с сектора автономных автомобилей.

Люди пытались найти различные и более точные способы определения расстояния до объектов, будь то указание пути, уклонение от препятствий или навигация. Интересная статья на тему Wired, в которой водитель безопасности Chevrolet Cruise случайно и вручную задвинул автомобиль Chevrolet Cruise задним ходом в автономном режиме. Роботы не причиняют вреда роботам, люди причиняют вред роботам. К счастью, это столкновение не было особенно серьезным, в отличие от нескольких других инцидентов, о которых рассказывали в новостях. Но устранение этого предупреждения о столкновении является важным критерием для любого беспилотного автомобиля и даже для любых обычных автомобилей / транспортных средств.

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

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

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

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

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

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

Модель, которая использовалась для получения карты диспаратности / глубины из монокулярных изображений, - это Неконтролируемая оценка глубины в монокуляре с согласованностью влево-вправо Клемента Годара, Ойсина Мак Аода и Габриэля Дж. Бростоу. Большинство существующих подходов рассматривают прогнозирование глубины как проблему контролируемой регрессии, и в результате для обучения им требуются огромные количества соответствующих наземных данных истинной глубины. Здесь вместо использования данных глубины использовались более простые для получения бинокулярные стереозаписи.

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

Другой способ преодолеть это - научить модель предсказывать обе карты глубины одновременно (слева направо) и (справа налево) только по одному входному изображению. Проверка согласованности влево-вправо используется, чтобы убедиться, что обе карты согласованы друг с другом. Он использует архитектуры RESNET -50 и VGG, включая некоторую пост-обработку для удаления окклюзий и сглаживания результирующей карты глубины. Сгенерированная карта глубины имеет цветовую кодировку, здесь в Плазме объекты с более желтым оттенком находятся ближе, а пурпурные области - дальше всего от камеры. Это просто для визуализации вывода, но модель генерирует нормализованный массив NumPy размеров [n x 512 x 256], где n - количество кадров.

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

Метод предупреждения о столкновении-1

Первый метод полностью зависел от результатов модели Mondepth. Первым шагом к вычислению предупреждения о столкновении был выбор интересующей области (ROI) из выходных данных о несоответствии. Желтая область, обозначающая наименьшее расстояние от транспортного средства, была взята в качестве области интереса. Для цветового кодирования этой области использовались методы обработки изображений. Мы рассчитали и сохранили динамическое среднее количество не-черных пикселей в каждом кадре за последние 2 секунды, и каждое резкое увеличение этого значения указывает на возможность коллизии. При возникновении этого условия отображается предупреждающее сообщение о столкновении. Полученный результат был частично точным. Точность и эффективность этого метода сильно зависят от параметров входной камеры. Чтобы преодолеть этот недостаток, нам пришлось разработать лучшую систему.

Полученный результат выглядит следующим образом:

Метод предупреждения о столкновении-2

Использование модели обнаружения объектов YOLO, разработанной Джозефом Редмоном, Сантошем Диввалой, Россом Гиршиком, Али Фархади в даркнете (нейронные сети с открытым исходным кодом на языке C). Мы обучили yolov3 на нашем наборе данных для более чем 30000 итераций с 9 классами, чтобы найти обнаружение объектов для 9 классов и использовать ограничивающую рамку для определения приблизительного расстояния.

Единая нейронная сеть предсказывает ограничивающие прямоугольники и вероятности классов непосредственно из полных изображений за одну оценку. По сравнению с другими методами обнаружения, сетями классификации предложений регионов (быстрый RCNN), которые в конечном итоге выполняют прогнозирование несколько раз для различных областей изображения, архитектура Yolo похожа на FCNN (полностью сверточная нейронная сеть. ). Изображение передается по сети только один раз, и на выходе создается прогноз. Входное изображение разделено на сетки. Если центр объекта попадает в сетку, то эта сетка отвечает за обнаружение этого объекта. Каждая сетка предсказывает ограничивающие рамки и значения вероятности для этого конкретного класса.

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

Мы сопоставили эти координаты с выводом Monodepth, чтобы наконец вычислить расстояние до этого объекта. Все объекты, попадающие в определенный заранее заданный диапазон (мы выбрали диапазон 4 м), выдают предупреждающее сообщение о столкновении. Этот метод дал нам лучшие результаты, чем метод, основанный на интенсивности.

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

Улучшение в будущем:

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

Заключение:

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

Вышеупомянутая работа была выполнена Таниш Баншал и Гаутам Ганди.