Метод оценки глубины сцены и текстуры невидимых частей изображения

17 августа 2018
плохая оценка глубины изображения в AR

Метод оценки глубины сцены и текстуры невидимых частей изображения

Как предсказать то, что скрыто? Исследователи из Калифорнийского университета, Беркли и Google предложили любопытный подход к рендерингу трехмерного пространства (оценки глубины сцены) по одному 2D изображению, основанный на многоуровневом обучении. Цель…

Как предсказать то, что скрыто? Исследователи из Калифорнийского университета, Беркли и Google предложили любопытный подход к рендерингу трехмерного пространства (оценки глубины сцены) по одному 2D изображению, основанный на многоуровневом обучении. Цель — получить информацию о текстурах окклюдированных (невидимых) частях изображения и о расстоянии до них.

Чтобы решить главную проблему — недостаток тренировочных данных исследователи опирались на multi-view подход, который позволил изучить многоуровневое представление 3D сцены. Они использовали представление, известное как многослойное изображение глубины (англ. layered depth image — LDI), и предложенный метод позволяет построить такое представление трехмерного пространства из одного данного изображения

предсказание слоев не видимых с камеры
На основе 2D изображения сеть предсказала текстуры на заднем плане, которые не видны за деревом (a и b). Внизу — оценка глубины изображений (c и d)

Читайте также: Оценка глубины при помощи encoder-decoder сетей

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

Схематичное объяснение представления LDI. Каждый слой соответствует определенному расстоянию до видимой поверхности

Метод

3D-рендеринг изображения предскаывает ту часть пространства, которая не видна с имеющейся точки наблюдения (т. е. закрыта объектами), для этого определяют его окклюзивную часть. Карты глубины отвечает на вопрос: «насколько далеко от камеры находится точка на этом пикселе?». Представление LDI отвечает также на вопрос: «что скрывается за видимым содержимым пикселя?», что еще больше увеличивает ценность метода, позволяя выходить за пределы прогноза в 2.5D.

псевдотрехмерность 25D
Пример псевдотрехмерного (2.5D) пространства

Датасет

Представление LDI специфично и представляет собой трехмерную структуру в виде слоев глубины и цветных слоев. Cлои 3D-пространства определяются поверхностью, т. е. видимой частью с точки зрения камеры. Изображение LDI содержит L кортежей цветных (texture) и глубинных (depth) слоев (см. рисунок ниже).

Датасет для оценки глубины и пространства
6 случайно сгенерированных изображений для обучения

Для обучения сети исследователи использовали датасет, который состоит из N пар изображений, каждое из которых представлено исходным и целевым изображениями (Is, It), внутренними характеристиками камеры (Ks, Kt), а также хакарактеристиками камеры — углом поворота и вносимыми преобразования (R , t).

Синтез представлений как сигнал контроля

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

ПРедлагаемый метод

Рендеринг изображения выполняется с использованием геометрически определенной функции рендеринга и преобразованием камеры (метод предполагает, что оно заранее известно). Для рендеринга изображение LDI рассматривается как текстурированное облако точек. Затем каждая точка источника проецируется на целевой кадр. После этого окклюзия обрабатывается «мягким z-буфером» для отображения целевого образа на средневзвешенное значение цветов проецируемых точек.

Архитектура сети

Архитектура сети, используемая для оценки LDI, представляет собой сверточную сеть DispNet, которая по цветному изображению вычисляет пространственные функции при различных разрешениях и производит декодировку к исходному разрешению. Пропущенные соединения также добавляется в сеть. Чтобы использовать тот факт, что не все слои получают одинаковый обучающий сигнал, авторы добавляют отдельные блоки предсказания (последняя часть сети) для каждого слоя. Цель обучения —  получить схожесть исходного и целевого изображений с заданной точки наблюдения.

Предлагаемая сетевая архитектура (DispNet). Последняя часть определяется отдельно для каждого слоя

Оценки и выводы

Погрешность синтеза представлений на искусственных данных
Погрешность синтеза представлений на KITTI
Погрешность прогнозирования геометрии на искусственных данных

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

Погрешность LDI на KITTI

Хотя мы все еще далеки от полного восстановления трехмерного пространства, рассмотренный способ доказал, что методы глубокого обучения могут быть успешно применены для 3D-рендеринга (даже по одному изображению). Метод выходит за рамки 2.5D-рендеринга, расширяя наши представления об обработке изображений.

Код на Гитхаб — https://shubhtuls.github.io/lsi/

Сферические CNN-ядра для трёхмерных облаков точек

30 мая 2018
3d point clouds

Сферические CNN-ядра для трёхмерных облаков точек

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

В задачах структурирования данных облака точек представляются как неупорядоченные множества векторов. Эти облака — специфичный тип данных, сильно отличающийся от других, таких как фото или видео. Тем не менее, датчики, например, Kinect и LIDAR (применяющийся в беспилотных автомобилях), используют облака точек в качестве данных на выходе. Облака точек требуют соответствующей техники обработки, способной извлекать как можно больше информации для обработки.

Проблема

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

Говоря о пространственной информации, СНН достигает большего успеха в работе с двумерными данными, нежели с трехмерными. “Почему же СNN хуже справляются с 3D данными?”

Разработаны два типа CNN для обучения на 3D данных: CNN, основанные на объемном представлении, и CNN, основанные на многоуровневом представлении изучаемого объекта (multi-view representation). Экспериментальные результаты показали разницу между этими двумя методами: CNN архитектура не способна в полной мере использовать весь потенциал трехмерных представлений, что связано с вычислительными затратами и затратами на хранение в сети, которые растут в геометрической прогрессии вместе с входным разрешением. В этом плане, обработка облаков точек, которые представляют из себя 3D данные, требует больших вычислительных ресурсов, поэтому 3D-CNN архитектуры применялись только на облаках точек с низким входным разрешением от 30x30x30 до 256x256x256. 3D-CNN ядра обычно применяются в объемном представлении 3D данных, что делает задачу обучения на облаках точек еще более сложной и неосуществимой.

Метод сферических сверток

В своём новом подходе исследователи из Университета Западной Австралии предлагают инновационный способ обработки облаков точек в CNN с использованием сферических сверток (spherical convolutions):

spherical-kernel

По мнению авторов, сферические области хорошо подходят для выявления геометрически значимых объектов из неструктурированного объема данных. Они предлагают подход, который берет каждую точку в пространстве (с координатами x, y, z) и определяет вокруг нее сферическую область. Затем делят объем сферы на n*p*q сегментов, равномерно разбивая пространство вдоль азимута и высоты. Для каждого из полученных сегментов сферы они определяют весовую матрицу изучаемых параметров (веса). Вместе эти матрицы образуют одно сферическое сверточное ядро. Чтобы вычислить передаточную функцию (activation function) одной точки в облаке, они принимают соответствующие весовые матрицы всех соседних точек (которые определяются как соседние, если они существуют в сфере). Далее положение каждой из соседних точек определяется в сферических координатах относительно интересующей нас точки.

Древовидная структура вместо воксельных сеток

Облака — нестандартный формат данных, большинство исследователей преобразуют их в воксельные координатные сетки или к набору изображений (например, виды), прежде чем пускать в deep net. Вместо этого авторы используют другой подход, представляя облако точек в виде древовидной структуры. Как уже было сказано, в отличие от воксельных сеток, такое представление менее затратно в плане вычислений и хранения, и способно обрабатывать нерегулярные 3D облака (примечание: большинство облаков, получаемых с датчиков/сенсоров, являются нерегулярными,с сильно варьирующейся плотностью точек). Они используют модель октодерева с глубиной L, где каждый уровень глубины представляет собой разбиение 3D пространства — от крупного до более мелкого (сверху вниз). Обучение сети проходит таким образом, что ядерные методы применяются в окрестности каждой точки. Матрицы каждого сегмента изучаются во время обучения и представляют веса.

The-octree-partitioning

Результаты

Метод сферической свертки демонстрирует многообещающие результаты в классификации объектов в (нерегулярных) трехмерных точечных облаках. Оценка проводилась на стандартных наборах данных из бенчмарков в сравнении с современными методами. Описанная архитектура превосходит ECC и OctNet, но уступает PointNet, являющейся современнейшей сетевой структурой, протестированной на ModelNet10 и ModelNet40. Кроме того, представленные эксперименты по обучению показывают, что увеличение данных значительно улучшает результаты.

ModelNet10

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

point cloud evolution

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

Перевод — Карим Боршигов, оригинал — Dane Mitriev