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

    3d point clouds

    В задачах структурирования данных облака точек представляются как неупорядоченные множества векторов. Эти облака — специфичный тип данных, сильно отличающийся от других, таких как фото или видео. Тем не менее, датчики, например, 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