Автор: Дмитрий Раков
Редактура: Давид Свитов
В статье мы рассмотрим классические задачи CV в домене работы с 3D-данными — классификацию, детекцию, сегментацию. Обсудим отличие этих подходов от методов решения под 2D, а также познакомимся с ключевыми алгоритмами — бейзлайнами для каждой из задач. Давайте начинать 🙂
Одна из основных задач 3D CV — получение и анализ трёхмерных данных. Для них существуют различные источники, каждый из которых имеет свои особенности и применение. Давайте рассмотрим некоторые из них.
Рисунок 1. Пример облака точек, полученного с помощью Lidar
Lidar использует лазерные лучи для создания облака точек, описывающего реальную сцену в пространстве. Это устройство позволяет получать высокоточные данные — иногда точность может быть миллиметровой. Поэтому такое устройство применяется в качестве не только источника данных, но и надёжного измерительного прибора.
Рисунок 2. Данные в виде карты глубины и облака точек, полученные через TOF-камеры
TOF-камеры были придуманы как альтернатива дорогостоящим сенсорам лазерного сканирования. В основе их работы лежит использование двух элементов — источника света (лазер) и считывающей матрицы. Свет, излучённый источником, отражается от поверхностей перед камерой и проецируется на её матрицу. За счёт анализа времени отражения внутренний процессор камеры позволяет рассчитать, как далеко расположен каждый пиксель финального изображения.
Рисунок 3. Расчёт диспарантности для пары изображений, полученных с помощью стереопары
Стереопара камер основана на стереозрении — бинокулярном восприятии глубины человеком. Этот подход использует две камеры, установленные рядом друг с другом для имитации работы наших глаз. Каждая камера снимает свою версию сцены, но с разных ракурсов.
<aside> 📌
База стереопары — различие в угловом положении между камерами. Зная это расстояние, а также пары точек объектов перед нами (с левой и правой камеры), мы можем вычислить расстояние до объектов, видимых с обеих камер.
</aside>
При помощи алгоритма вычисления карты диспарантности мы можем получить глубину для каждого пикселя и трансформировать её в облако точек.
Рисунок 4. Получение облака точек в симуляторе Carla
C помощью разных методов работы с компьютерной графикой возможно получить сцены, представленные в виде облаков точек. Кроме того, из них мы можем получить также данные в формате 3D-меша посредством триангуляции. Их используют в качестве источника данных в задачах 3D CV.