pointnetplusLayers

Создайте PointNet ++ сеть сегментации

Описание

PointNet ++ является нейронной сетью, которая предсказывает мудрые точкой метки для неорганизованного облака точек лидара. Сетевые разделы точки ввода в набор кластеров и затем извлекают функции с помощью сети многоуровневого perceptron (MLP). Чтобы использовать эту сеть для семантической сегментации, обучите его с помощью trainNetwork (Deep Learning Toolbox) функция.

пример

lgraph = pointnetplusLayers(numPoints,pointsDim,numClasses) создает PointNet ++ сеть сегментации и возвращает его как lgraph, layerGraph Объект (Deep Learning Toolbox).

lgraph = pointnetplusLayers(___,Name=Value) задает опции с помощью одних или нескольких аргументов name-value в дополнение к входным параметрам в предыдущем синтаксисе. Например, pointnetplusLayers(numPoints,pointsDim,numClasses,ClusterSize=32) создает сеть PointNet ++ с 32 точками в каждом кластере.

Примеры

свернуть все

Задайте входные параметры для пользовательской сети PointNet ++.

numPoints = 10000;
pointsDim = 3;
numClasses = 8;

Создайте пользовательскую сеть PointNet ++.

lgraph = pointnetplusLayers(numPoints,pointsDim,numClasses, ...
    NormalizationLayer="instance", ...
    NumSetAbstractionModules=3, ...
    NumClusters=2048, ...
    ClusterRadius=0.1, ...
    ClusterSize=32, ...
    PointNetLayerSize=32);

Анализируйте сеть с помощью analyzeNetwork (Deep Learning Toolbox) функция.

analyzeNetwork(lgraph)

Можно обучить эту сеть с помощью trainNetwork (Deep Learning Toolbox) функция и использование это для различных приложений. Чтобы узнать больше об обучении сети PointNet ++, смотрите, что Воздушная Семантическая Сегментация Лидара Использует PointNet ++ пример Глубокого обучения.

Входные параметры

свернуть все

Число точек в облаке точки ввода в виде положительного целого числа.

Размерности матрицы данных облака точки ввода в виде положительного целого числа, больше, чем или равный 3. Матрица должна содержать координаты xyz и любые дополнительные данные, такие как область значений, маска и интенсивность.

Количество классов сеть должно быть сконфигурировано, чтобы классифицировать в виде положительного целого числа, больше, чем 1.

Аргументы name-value

Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.

Пример: lgraph = pointnetplusLayers(numPoints,pointsDim,numClasses,NumSetAbstractionModules=3);

Тип нормализации используется в сети в виде "batch" или "instance".

Типы данных: string | char

Количество модулей абстракции набора для энкодера разделяет на подсети в виде положительного целого числа. Подсеть декодера содержит то же количество модулей распространения функции.

Количество кластеров, чтобы сгруппировать точки ввода в в виде положительного целого числа. Значение NumClusters должно быть степенью двойки в области значений [4N, numPoints], где N является количеством модулей абстракции набора.

Это значение задает количество кластеров в первом модуле абстракции набора. Для последующих модулей абстракции набора функция автоматически вычисляет количество кластеров как K/4, где K является количеством кластеров от предыдущего модуля абстракции набора.

Кластерный радиус точек ввода в виде положительной скалярной величины в области значений (0, 1].

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

Число точек в каждом кластере в виде положительного целого числа. Для данного кластерного радиуса в каждом модуле абстракции набора это значение должно быть степенью двойки меньше, чем K/4(N — 2). K является количеством кластеров в сети, и N является количеством модулей абстракции набора.

Это значение является постоянным через все модули абстракции набора.

Размер первого слоя в сети MLP модуля абстракции набора в виде положительного целого числа. Каждый модуль абстракции набора содержит мини-PointNet с разделяемой сетью MLP, реализованной с помощью 1- 1 свертка. Размерами первых, вторых, и третьих слоев в разделяемой сети MLP является S, S, 2*S, которые соответствуют количеству, просачивается первые, вторые и третьи слои свертки, соответственно.

Это значение задает размер первого слоя в сети MLP первого модуля абстракции набора. Для каждой последующей абстракции набора модули значение S является дважды значением S от предыдущего модуля абстракции набора.

Выходные аргументы

свернуть все

Выведите сеть PointNet ++, возвращенную как layerGraph Объект (Deep Learning Toolbox).

Больше о

свернуть все

PointNet ++ сеть

Сеть PointNet ++ имеет подсеть энкодера с модулями абстракции набора, сопровождаемыми соответствующей подсетью декодера с модулями распространения функции.

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

  • Функция создает сеть с архитектурой одной группировки шкалы (SSG).

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

  • Функция инициализирует все термины смещения, чтобы обнулить.

Введенный в R2021b