squeezesegv2Layers

Создайте сеть сегментации SqueezeSegV2 для организованного облака точек лидара

Описание

пример

lgraph = squeezesegv2Layers(inputSize,numClasses) возвращает график слоев SqueezeSegV2 lgraph для организованных облаков точек размера inputSize и количество классов numClasses.

SqueezeSegV2 является сверточной нейронной сетью, которая предсказывает метки pointwise для организованного облака точек лидара.

Используйте squeezesegv2Layers функция, чтобы создать сетевую архитектуру для SqueezeSegV2. Эта функция требует Deep Learning Toolbox™.

пример

lgraph = squeezesegv2Layers(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. Например, 'NumEncoderModules',4 определяет номер энкодеров, используемых, чтобы создать сеть к четыре.

Примеры

свернуть все

Установите сетевые входные параметры.

inputSize = [64 512 5];
numClasses = 4;

Создайте график слоев SqueezeSegV2.

lgraph = squeezesegv2Layers(inputSize,numClasses)
lgraph = 
  LayerGraph with properties:

         Layers: [168x1 nnet.cnn.layer.Layer]
    Connections: [186x2 table]
     InputNames: {'input'}
    OutputNames: {'focalloss'}

Отобразите сеть.

analyzeNetwork(lgraph)

Установите сетевые входные параметры.

inputSize = [64 512 6];
numClasses = 2;

Создайте пользовательский график слоев SqueezeSegV2.

lgraph = squeezesegv2Layers(inputSize,numClasses, ...
'NumEncoderModules',4,'NumContextAggregationModules',2)
lgraph = 
  LayerGraph with properties:

         Layers: [232x1 nnet.cnn.layer.Layer]
    Connections: [257x2 table]
     InputNames: {'input'}
    OutputNames: {'focalloss'}

Отобразите сеть.

analyzeNetwork(lgraph)

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

свернуть все

Размер сетевого входа в виде одной из этих опций:

  • Двухэлементный вектор из формы [height width].

  • Трехэлементный вектор из формы [height width channels], где channels задает количество входных каналов. Установите channels на 3 для изображений RGB, к 1 для полутоновых изображений, или к количеству каналов для многоспектральных и гиперспектральных изображений.

Количество классов семантической сегментации в виде целого числа, больше, чем 1.

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

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

Пример: 'NumEncoderModules',4 определяет номер энкодеров, используемых, чтобы создать сеть к четыре.

Количество модулей энкодера раньше создавало сеть в виде разделенной запятой пары, состоящей из 'NumEncoderModules' и неотрицательное целое число. Каждый модуль энкодера состоит из двух модулей огня и одного макс. объединяющего слоя, соединенного последовательно. Если вы задаете 0, затем функция возвращает сеть с энкодером по умолчанию, который состоит из свертки и макс. объединяющих слоев без модулей огня. Используйте эту пару "имя-значение", чтобы настроить количество модулей огня в сети.

Количество модулей агрегации контекста (БЕГУНКИ) в виде разделенной запятой пары, состоящей из 'NumContextAggregationModules' и целое число в области значений [0,3]. Если вы задаете 0, затем функция создает сеть без CAM.

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

свернуть все

Слои, которые представляют архитектуру сети SqueezeSegV2, возвратились как layerGraph Объект (Deep Learning Toolbox).

Больше о

свернуть все

Сеть SqueezeSegV2

  • Сеть SqueezeSegV2 состоит из модулей энкодера, БЕГУНКОВ, промежуточного звена зафиксированные модули огня [1] для извлечения признаков и модулей декодера. Функция автоматически конфигурирует количество модулей декодера на основе конкретного количества модулей энкодера.

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

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

  • Функция добавляет дополнение для всей свертки и макс. объединяющих слоев, таким образом, что выход имеет тот же размер как вход (если шаг равняется 1).

  • Высота входного тензора значительно ниже, чем ширина в организованных данных об облаке точек лидара. Чтобы обратиться к этому, сеть прореживает размерность ширины входных данных в свертке и макс. объединяющих слоях. Ширина входных данных должна быть кратной 2(D + 2), то, где D является количеством модулей энкодера, раньше создавало сеть.

  • Эта функция не обеспечивает текущий слой условного случайного поля (CRF).

Ссылки

[1] Ву, Bichen, Сюаньюй Чжоу, Сычэн Чжао, Сянюй Юэ и Курт Койцер. “SqueezeSegV2: Улучшенная Структура модели и Безнадзорная Доменная Адаптация к Дорожно-объектной Сегментации от Облака точек LiDAR”. На 2 019 Международных конференциях по вопросам Робототехники и Автоматизации (ICRA), 4376–82. Монреаль, Qc, Канада: IEEE, 2019.https://doi.org/10.1109/ICRA.2019.8793495.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Введенный в R2020b