squeezesegv2Layers

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

Описание

пример

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

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

Используйте 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 должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

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

свернуть все

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

Подробнее о

свернуть все

SqueezeSegV2 сети

  • Сеть SqueezeSegV2 состоит из модулей энкодера, CAM, промежуточных модулей фиксированного огня [1] для редукции данных и модулей декодера. Функция автоматически конфигурирует количество модулей декодера на основе заданного количества модулей энкодера.

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

  • Функция инициализирует все условия смещения до нуля.

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

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

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

Ссылки

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

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

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

.

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

.
Введенный в R2020b