Автор: Дмитрий Раков

Редактура: Давид Свитов

Введение

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

Источники 3D-данных

Одна из основных задач 3D CV — получение и анализ трёхмерных данных. Для них существуют различные источники, каждый из которых имеет свои особенности и применение. Давайте рассмотрим некоторые из них.

  1. Лазерный сканер (Lidar)

Рисунок 1. Пример облака точек, полученного с помощью Lidar

Рисунок 1. Пример облака точек, полученного с помощью Lidar

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

  1. TOF-камеры

Рисунок 2. Данные в виде карты глубины и облака точек, полученные через TOF-камеры

Рисунок 2. Данные в виде карты глубины и облака точек, полученные через TOF-камеры

TOF-камеры были придуманы как альтернатива дорогостоящим сенсорам лазерного сканирования. В основе их работы лежит использование двух элементов — источника света (лазер) и считывающей матрицы. Свет, излучённый источником, отражается от поверхностей перед камерой и проецируется на её матрицу. За счёт анализа времени отражения внутренний процессор камеры позволяет рассчитать, как далеко расположен каждый пиксель финального изображения.

  1. Стереопары

Рисунок 3. Расчёт диспарантности для пары изображений, полученных с помощью стереопары

Рисунок 3. Расчёт диспарантности для пары изображений, полученных с помощью стереопары

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

<aside> 📌

База стереопары — различие в угловом положении между камерами. Зная это расстояние, а также пары точек объектов перед нами (с левой и правой камеры), мы можем вычислить расстояние до объектов, видимых с обеих камер.

</aside>

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

  1. Рендеринг и симуляция

Рисунок 4. Получение облака точек в симуляторе Carla

Рисунок 4. Получение облака точек в симуляторе Carla

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