Глубина важна для 3D Vision

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

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

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

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

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

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

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

В следующих постах будут подробно описаны различные алгоритмы оценки глубины, чтобы не утопить вас в деталях!

Как мы смотрим на мир

Начнем с того, как мы, люди, воспринимаем глубину в целом. Это даст нам некоторые ценные сведения об оценке глубины, поскольку многие из этих методов были заимствованы из нашей системы человеческого зрения. И машинное, и человеческое зрение имеют общие черты в способах формирования изображения (рис. 2). Теоретически, когда световые лучи от источника попадают на поверхность, они отражаются и направляются к задней части нашей сетчатки, проецируя их, и наш глаз обрабатывает их как 2D [1], точно так же, как изображение формируется на плоскости изображения.

Так как же нам на самом деле измерить расстояние и понять нашу среду в 3D, когда проецируемая сцена находится в 2D? Например, предположим, что кто-то собирается нанести вам удар, вы инстинктивно знаете, когда вас собираются ударить, и уклоняйтесь от него, когда его кулак приближается слишком близко! Или, когда вы ведете машину, вы каким-то образом можете определить, когда нажать на педаль акселератора или нажать на тормоз, чтобы сохранять безопасное расстояние вокруг многих других водителей и пешеходов.

Здесь работает механизм: наш мозг начинает рассуждать о поступающих визуальных сигналах, распознавая такие закономерности, как размер, текстура и движение сцены, известные как сигналы глубины. Информация о расстоянии об изображении отсутствует, но каким-то образом мы можем легко интерпретировать и восстанавливать информацию о глубине. Мы понимаем, какой аспект сцены находится ближе и дальше от нас. Кроме того, эти подсказки позволяют нам рассматривать объекты и поверхности, которые предположительно находятся на плоских изображениях, как трехмерные [1].

Как разрушить глубину (не человеческое / компьютерное зрение)

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

Рассмотрим рисунок 3, наблюдатель может определить, какая часть дома ближе к нему / ней, как показано на левом изображении. Однако отличить относительные расстояния от правого изображения совершенно невозможно. Даже фон может лежать в одной плоскости с домом.

Оценка глубины с помощью реплик

В основном есть 4 категории сигналов глубины: статический монокуляр, глубина от движения, бинокулярные и физиологические сигналы [2]. Мы подсознательно пользуемся этими сигналами, чтобы замечательно воспринимать глубину.

Графические подсказки глубины

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

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

Признаки глубины от движения (параллакс движения)

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

Признаки глубины от стереозрения (бинокулярный параллакс)

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

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

Это явление известно как стереопсис; способность воспринимать глубину из-за 2-х разных точек зрения на мир. Сравнивая изображения сетчатки двух глаз, мозг вычисляет расстояние. Чем больше разница, тем ближе к вам объекты.

Оценка глубины в компьютерном зрении

Цель оценки глубины - получить представление о пространственной структуре сцены, восстанавливая трехмерную форму и внешний вид объектов на изображениях. Это также известно как обратная задача [3], в которой мы стремимся восстановить некоторые неизвестные, учитывая недостаточную информацию для полного определения решения. Это означает, что сопоставление между 2D-видом и 3D-изображением не является уникальным (рис. 12). В этом разделе я расскажу о классических методах стерео и методах глубокого обучения.

Так как же машины на самом деле воспринимают глубину? Можем ли мы как-то перенести некоторые из обсуждаемых выше идей? Самый ранний алгоритм с впечатляющим результатом начинается с оценки глубины с помощью стереозрения еще в 90-х годах. Большой прогресс был достигнут в алгоритмах плотного стереосоответствия [4] [5] [6]. Исследователи смогли использовать геометрию, чтобы ограничить и воспроизвести идею стереопсиса математически и в то же время в режиме реального времени. Все эти идеи были обобщены в данной статье [7].

Что касается оценки глубины с помощью монокуляра, то недавно она стала набирать популярность благодаря использованию нейронных сетей для изучения представления, которое напрямую определяет глубину [8]. В котором подсказки глубины неявно изучаются с помощью методов на основе градиента. Помимо этого, был достигнут большой прогресс в самостоятельной оценке глубины [9] [10] [11]. что особенно интересно и новаторски! В этом методе модель обучается предсказывать глубину посредством оптимизации прокси-сигнала. В тренировочном процессе не требуется никаких ярлыков для проверки достоверности информации. В большинстве исследований для изучения глубины используются либо геометрические подсказки, такие как многовидовая геометрия или эпиполярная геометрия. Мы коснемся этого позже.

Оценка глубины по стереовидению

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

По аналогии с бинокулярным параллаксом, как только мы сможем сопоставить пиксельные соответствия между двумя видами, следующая задача - получить представление, которое кодирует различия. Это представление известно как несоответствие, d. Чтобы получить глубину из несоответствия, формулу можно составить из похожих треугольников (рис. 8).

Шаги следующие

  • Определите похожие точки из дескрипторов функций.
  • Соответствие функций сопоставления с использованием функции сопоставления стоимости.
  • Используя эпиполярную геометрию, найдите и сопоставьте соответствие одного кадра другому. Функция стоимости согласования [6] используется для измерения несходства пикселей.
  • Вычислите несоответствие из известного соответствия d = x1 — x2, как показано на рисунке 8.
  • Вычислить глубину из известного несоответствия z = (f*b)/d

Эпоха глубокого обучения

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

Обучение с учителем: основополагающая работа по оценке глубины непосредственно по монокулярному изображению началась с Саксены [8]. Они научились регрессировать глубину непосредственно из монокулярных сигналов на 2D-изображениях через контролируемое обучение, минимизируя потери регрессии. С тех пор было предложено много разновидностей подходов для улучшения обучения представлению, предлагая новые архитектуры или функции потерь.

Самоконтроль оценки глубины с использованием структуры SFM: этот метод описывает проблему как обучение созданию нового вида из видеопоследовательности. Задача нейронной сети состоит в том, чтобы сгенерировать целевой вид I_t из исходного вида, сделав изображение на другом временном шаге I_t-1, I_t+1 и применив изученное преобразование из сети поз для выполнения деформации изображения. Обучение стало возможным благодаря тому, что синтез деформированного вида стал возможным дифференцированным образом с использованием пространственной трансформаторной сети [14]. Во время вывода CNN глубины предсказывает глубину на основе одного изображения RGB (рис. 10). Я бы порекомендовал вам прочитать эту статью, чтобы узнать больше. Обратите внимание, что этот метод имеет некоторые недостатки, такие как невозможность определения масштаба и моделирования движущихся объектов, описанных в следующем разделе.

Самоконтролируемая оценка глубины монокуляра с использованием стерео: еще один интересный подход. Здесь (рис. 11) вместо того, чтобы использовать последовательность изображений в качестве входных данных, модель будет прогнозировать различия d_l, d_r только для левого RGB, I_l. Подобно описанному выше методу, сеть пространственного преобразователя искажает пару I_l, I_r изображений RGB, используя диспаратность. Напомним, что x2 = x1 — d. Таким образом, парное представление может быть синтезировано, а потеря реконструкции между восстановленными представлениями I_pred_l, I_pred_r и целевыми представлениями I_l, I_r используется для наблюдения за обучением.

Чтобы этот метод работал, предполагается, что базовая линия должна быть горизонтальной и известной. Пара изображений должна быть исправлена, чтобы преобразование через несоответствие было точным. Таким образом, расчет d = x1 — x2 выполняется как на рис. 8.

Подсказки CNN и предвзятое изучение

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

В новаторской работе Tom et al, ICCV 2019 они проводят несколько простых тестов, чтобы экспериментально найти связь между предполагаемой глубиной и структурой сцены. Обратите внимание, что это сделано для набора данных Kitti, который представляет собой уличную дорожную сцену с фиксированным положением камеры и имеет несколько видимую точку схода и линию горизонта.

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

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

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

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

Почему так сложно измерить глубину?

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

Оценка глубины некорректна

Часто, проводя исследования по оценке глубины в монокуляре, многие авторы упоминают, что проблема оценки глубины по одному изображению RGB является некорректной обратной задачей. Это означает, что многие наблюдаемые в мире 3D-сцены действительно могут соответствовать одной и той же 2D-плоскости (рис. 11 и 12).

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

Напомним, что регулировка фокусного расстояния пропорционально масштабирует точки на плоскости изображения. Теперь предположим, что мы масштабируем всю сцену X в некотором k раз и, в то же время, масштабируем матрицы камеры P в 1/k раз, проекции точек сцены на изображении остаются точно такими же.

x = PX = (1/k)P * (kX) = x

Другими словами, мы никогда не сможем восстановить точный масштаб реальной сцены только по изображению!

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

Плохая поза: неоднозначность проекции

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

Свойства, ухудшающие соответствие

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

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

Движущиеся объекты нарушают статическое предположение для метода SFM

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

Что дальше

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

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







использованная литература

[1] Введение в науку зрения, Дэвид Л. Андерсон.

[2] Визуальный комфорт бинокля и трехмерных дисплеев, Фрэнк Л. Куи, Александр Тоет, в Proceedings of SPIE - Международное общество оптической инженерии 25 (2): 99–108 · Август 2004 г.

[3] Компьютерное зрение: алгоритмы и приложения, Ричард Селиски.

[4] Окутоми, М. и Канаде, Т. (1993). Стерео с несколькими базовыми линиями. Транзакции IEEE по анализу шаблонов и машинному анализу, 15 (4): 353–363.

[5] Бойков Ю., Векслер О., Забих Р. (1998). Подход с переменным окном к раннему зрению. Транзакции IEEE по анализу шаблонов и машинному анализу, 20 (12): 1283–1294.

[6] Берчфилд С. и Томази К. (1999). Разрывы глубины при попиксельном стерео. Международный журнал компьютерного зрения, 35 (3): 269–293.

[7] Шарштейн, Д., Шелиски, Р. (2002). Таксономия и оценка алгоритмов плотного двухкадрового стерео соответствия. Международный журнал компьютерного зрения, 47 (1): 7–42.

[8] Д. Эйген, К. Пурш и Р. Фергус. Прогнозирование карты глубины по одному изображению с использованием многомасштабной глубокой сети. НИПС, 2014.

[9] Р. Гарг, Дж. Карнейро и И. Рид. Неконтролируемый cnn для оценки глубины одного ракурса: геометрия на помощь. ECCV, 2016.

[10] Т. Чжоу, М. Браун, Н. Снавели и Д. Лоу. Неконтролируемое изучение глубины и движения эго из видео. CVPR, 2017.

[11] К. Годар, О. М. Аодха и Г. Дж. Бростоу. Неконтролируемая оценка глубины монокуляра с последовательностью слева направо. CVPR, 2017.

[12] З. Ян, П. Ван, Ю. Ван, В. Сюй, Р. Неватия. Важен каждый пиксель: изучение геометрии без учителя с целостным пониманием трехмерного движения. arxiv.org/pdf/1806.10556, 2018.

[13] Р. Махджурян, М. Вик, А. Ангелова. Неконтролируемое обучение глубине и движению эго из монокулярного видео с использованием трехмерных геометрических ограничений. В материалах конференции IEEE по компьютерному зрению и распознаванию образов, страницы 5667–5675, 2018.

[14] М. Ядерберг, К. Симонян, А. Зиссерман, К. Кавукчуоглу. Пространственные трансформаторные сети. В НИПС, 2015.