groundTruthMultisignal

Основные истины для нескольких сигналов

Описание

The groundTruthMultisignal объект содержит информацию об источнике достоверных данных, определениях меток и помеченных аннотациях меток для нескольких сигналов. Источником сигналов может быть видео, изображение последовательность, облако точек лидара или любой другой пользовательский формат, содержащий несколько сигналов. Можно экспортировать или импортировать groundTruthMultisignal объект из приложения Ground Truth Labeler.

Чтобы создать обучающие данные для применений глубокого обучения из массивов groundTruthMultisignal объекты, использовать gatherLabelData функция.

Создание

Экспорт groundTruthMultisignal объект из приложения Ground Truth Labeler, на панели инструментов приложения, выберите Export Labels > To Workspace. Приложение экспортирует объект в MATLAB® рабочей области. Как создать groundTruthMultisignal программно используйте объект groundTruthMultisignal функция (описанная здесь).

Описание

пример

gTruth = groundTruthMultisignal(dataSources,labelDefs,roiData,sceneData) возвращает объект, содержащий метки основной истины, которые можно импортировать в приложение Ground Truth Labeler.

  • dataSources задает источники достоверных данных и устанавливает DataSource свойство.

  • labelDefs задает метки, подметки и определения атрибутов достоверных данных и устанавливает LabelDefinitions свойство.

  • roiData определяет идентификационную информацию, положение и временные метки для меток маркированной видимой области (ROI) и устанавливает ROILabelData свойство.

  • sceneData определяет идентификационную информацию и временные метки для отмеченных меток сцены и устанавливает SceneLabelData свойство.

Свойства

расширить все

Источники достоверных данных, заданные как вектор MultiSignalSource объекты. Эти объекты содержат информацию, которая описывает источники, из которых были маркированы достоверные данные. Эта таблица описывает тип MultiSignalSource объекты, которые можно задать в этом векторе.

MultiSignalSource Тип объектаИсточник данныхСсылка на класс
VideoSourceВидео- файлvision.labeler.loading.VideoSource
ImageSequenceSourceПапка последовательности изображенийvision.labeler.loading.ImageSequenceSource
VelodyneLidarSourceVelodyne® Файл захвата пакетов (PCAP)vision.labeler.loading.VelodyneLidarSource
RosbagSourceФайл Росбагаvision.labeler.loading.RosbagSource
PointCloudSequenceSourceПапка последовательности облаков точекvision.labeler.loading.PointCloudSequenceSource
CustomImageSourceПользовательский формат изображенияvision.labeler.loading.CustomImageSource

Чтобы задать дополнительные источники данных, создайте новый тип MultiSignalSource объект при помощи vision.labeler.loading.MultiSignalSource класс.

Определения меток, заданные как таблица. Чтобы создать эту таблицу, используйте один из следующих опций.

  • В приложении Ground Truth Labeler создайте определения меток и затем экспортируйте их как часть groundTruthMultisignal объект.

  • Использование labelDefinitionCreatorMultisignal Объект для генерации таблицы определений меток. Если вы сохраняете эту таблицу в MAT-файле, можно затем загрузить определения меток в Ground Truth Labeler сеанс приложения, выбрав Open > Label Definitions на панели инструментов приложения.

  • Составьте таблицу определений меток в командной строке MATLAB.

В этой таблице описываются необходимые и необязательные столбцы таблицы, указанные в LabelDefinitions свойство.

СтолбецОписаниеТребуемый или опционный
NameСтроки или векторы символов, задающие имя каждого определения метки.

Необходимый

SignalType

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

Если определение метки поддерживает несколько типов сигналов, то определение метки имеет отдельную строку для каждого типа сигнала. Например, рассмотрите определение метки с именем car. В приложении Ground Truth Labeler вы рисуете эту метку как прямоугольник в сигналах изображения и кубоид в сигналах облака точек лидара. В LabelDefinitions таблица, car появляется дважды и имеет эти Name, SignalType, и LabelType значения.

NameSignalTypeLabelType
'car'ImageRectangle
'car'PointCloudCuboid

Необходимый

LabelType

labelType перечисления, которые задают тип каждого определения метки.

Для определений меток информация только для чтения с SignalType от Image, действительный LabelType перечисления:

  • labelType.Rectangle

  • labelType.Line

  • labelType.PixelLabel

  • labelType.Polygon

  • labelType.ProjectedCuboid

Для определений меток информация только для чтения с SignalType от PointCloud, единственное допустимое LabelType перечисление labelType.Cuboid.

Для определений меток сцены - единственное допустимое LabelType перечисление labelType.Scene.

Можно также добавить достоверных данных, который не является информацией только для чтения или меткой сцены к groundTruthMultisignal объект. В таблице определений меток задайте определение метки, labelType является Custom.

Необходимый

GroupСтроки или векторы символов, задающие группу, к которой принадлежит каждое определение метки.

Дополнительный

Если вы создаете определения меток в командной строке MATLAB, вы не должны включать Group столбец.

Если вы экспортируете определения меток из приложения Ground Truth Labeler или создаете их с помощью labelDefinitionCreatorMultisignal объект, таблица определений меток включает этот столбец, даже если вы не задали группы. Приложение присваивает каждому определению метки Group значение 'None'.

DescriptionСтроки или векторы символов, которые описывают каждое определение метки.

Дополнительный

Если вы создаете определения меток в командной строке MATLAB, вы не должны включать Description столбец.

Если вы экспортируете определения меток из приложения Ground Truth Labeler или создаете их с помощью labelDefinitionCreatorMultisignal объект, таблица определений меток включает этот столбец, даже если вы не задали описание. The Description для этих определений меток является пустым символьным вектором.

LabelColor1 на 3 векторы-строки триплетов RGB, которые определяют цвета определений меток. Значения находятся в области значений [0, 1]. Желтый цвет (триплет RGB [1 1 0]) зарезервирован для цвета выбранных меток в приложении Ground Truth Labeler.

Дополнительный

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

Когда вы создаете определения меток с помощью labelDefinitionCreatorMultisignal объект без указания цветов, возвращенная таблица определения меток включает этот столбец, но все значения столбцов являются пустыми.

PixelLabelIDСкаляры, векторы-столбцы M матрицы -на 3 целочисленных идентификаторов меток. PixelLabelID задает значения меток пикселей, используемые для представления определения меток. Значения идентификатора метки пикселя должны быть от 0 до 255.

Дополнительный

Когда вы задаете пиксельные метки в приложении Ground Truth Labeler или labelDefinitionCreatorMultisignal объект, сгенерированная таблица определений меток включает этот столбец.

При создании таблицы определений меток в командной строке MATLAB, если вы задаете LabelType на labelType.PixelLabel для любой метки, тогда этот столбец необходим.

HierarchyСтруктуры, содержащие подметки и данные атрибутов для каждого определения метки. Для примера Hierarchy формат, см. Экспорт и исследование Основная Истина Labels для нескольких сигналов.

Дополнительный

Когда вы задаете подметки или атрибуты в приложении Ground Truth Labeler или labelDefinitionCreatorMultisignal объект, сгенерированная таблица определений меток включает этот столбец.

Информации только для чтения по всем сигналам, заданные как ROILabelData объект.

Для Rectangle, Cuboid, ProjectedCuboid, Polygon, и Line типы меток, достоверные данные, не являющиеся массивом с плавающей точкой, имеют тип данных single.

Данные меток сцены по всем сигналам, заданные как SceneLabelData объект.

Функции объекта

selectLabelsByLabelNameВыберите многосигнальную истину заземления по имени метки
selectLabelsByLabelTypeВыберите многосигнальное заземление по типу метки
selectLabelsByGroupNameВыберите многосигнальную истину заземления по имени группы меток
selectLabelsBySignalNameВыберите многосигнальную наземную истину по имени сигнала
selectLabelsBySignalTypeВыберите многосигнальные метки истинности заземления по типу сигнала
gatherLabelDataСбор синхронизированных данных о метках из основная истина
writeFramesЗапись систем координат сигнала для достоверных данных на диск
changeFilePathsИзмените пути к файлам в мультисигнальных наземных данных истинности

Примеры

свернуть все

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

Создайте источник данных видео из файла MP4.

sourceName = '01_city_c2s_fcw_10s.mp4';
sourceParams = [];
vidSource = vision.labeler.loading.VideoSource;
vidSource.loadSource(sourceName,sourceParams);

Создайте источник последовательности облаков точек из папки файлов данных облака точек (PCD).

pcSeqFolder = fullfile(toolboxdir('driving'),'drivingdata','lidarSequence');
addpath(pcSeqFolder)
load timestamps.mat
rmpath(pcSeqFolder)

lidarSourceData = load(fullfile(pcSeqFolder,'timestamps.mat'));

sourceName = pcSeqFolder;
sourceParams = struct;
sourceParams.Timestamps = timestamps;

pcseqSource = vision.labeler.loading.PointCloudSequenceSource;
pcseqSource.loadSource(sourceName,sourceParams);

Объедините источники сигналов в массив.

dataSource = [vidSource pcseqSource]
dataSource = 

  1x2 heterogeneous MultiSignalSource (VideoSource, PointCloudSequenceSource) array with properties:

    SourceName
    SourceParams
    SignalName
    SignalType
    Timestamp
    NumSignals

Составьте таблицу определений меток для достоверных данных при помощи labelDefinitionCreatorMultisignal объект.

  • The Car определение метки появляется дважды. Хотя Car определяется как прямоугольник, можно рисовать прямоугольники только для сигналов изображения, таких как видео. The labelDefinitionCreatorMultisignal создает дополнительную строку для лидарных сигналов облака точек. В этих типах сигналов можно рисовать Car метки только как кубоиды.

  • Определения меток не имеют описаний и не имеют назначенных цветов, поэтому Description и LabelColor столбцы пусты.

  • Определения меток не имеют назначенных групп, поэтому для всех определений меток соответствующая камера в Group для столбца задано значение 'None'.

  • Road является определением метки пикселя, поэтому таблица включает в себя PixelLabelID столбец.

  • Никакие определения меток не имеют подметок или атрибутов, поэтому таблица не включает Hierarchy столбец для хранения такой информации.

ldc = labelDefinitionCreatorMultisignal;
addLabel(ldc,'Car','Rectangle');
addLabel(ldc,'Truck','ProjectedCuboid');
addLabel(ldc,'Lane','Line');
addLabel(ldc,'Road','PixelLabel');
addLabel(ldc,'Sunny','Scene');
labelDefs = create(ldc)
labelDefs =

  6x7 table

      Name       SignalType       LabelType        Group      Description    LabelColor    PixelLabelID
    _________    __________    _______________    ________    ___________    __________    ____________

    {'Car'  }    Image         Rectangle          {'None'}       {' '}       {0x0 char}    {0x0 double}
    {'Car'  }    PointCloud    Cuboid             {'None'}       {' '}       {0x0 char}    {0x0 double}
    {'Truck'}    Image         ProjectedCuboid    {'None'}       {' '}       {0x0 char}    {0x0 double}
    {'Lane' }    Image         Line               {'None'}       {' '}       {0x0 char}    {0x0 double}
    {'Road' }    Image         PixelLabel         {'None'}       {' '}       {0x0 char}    {[       1]}
    {'Sunny'}    Time          Scene              {'None'}       {' '}       {0x0 char}    {0x0 double}

Создайте данные информации только для чтения для первой системы координат видео.

numVideoFrames = numel(vidSource.Timestamp{1});
carData = cell(numVideoFrames,1);
laneData = cell(numVideoFrames,1);
truckData = cell(numVideoFrames,1);
carData{1} = [304 212 37 33];
laneData{1} = [70 458; 311 261];
truckData{1} = [309,215,33,24,330,211,33,24];
videoData = timetable(vidSource.Timestamp{1},carData,laneData, ...
                      'VariableNames',{'Car','Lane'});

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

numPCFrames = numel(pcseqSource.Timestamp{1});
carData = cell(numPCFrames, 1);
carData{1} = [27.35 18.32 -0.11 4.25 4.75 3.45 0 0 0];
lidarData = timetable(pcseqSource.Timestamp{1},carData,'VariableNames',{'Car'});

Объедините данные метки информация только для чтения для обоих источников.

signalNames = [dataSource.SignalName];
roiData = vision.labeler.labeldata.ROILabelData(signalNames,{videoData,lidarData})
roiData = 

  ROILabelData with properties:

    video_01_city_c2s_fcw_10s: [204x2 timetable]
                lidarSequence: [34x1 timetable]

Создайте данные метки сцены для первых 10 секунд ведущей сцены.

sunnyData = seconds([0 10]);
labelNames = ["Sunny"];
sceneData = vision.labeler.labeldata.SceneLabelData(labelNames,{sunnyData})
sceneData = 

  SceneLabelData with properties:

    Sunny: [0 sec    10 sec]

Создайте объект основная истина из источников сигналов, определений меток и информаций только для чтения и меток сцены. Можно импортировать этот объект в приложение Ground Truth Labeler для ручной маркировки или запустить на нем алгоритм автоматизации маркировки. Можно также извлечь обучающие данные из этого объекта для моделей глубокого обучения с помощью gatherLabelData функция.

gTruth = groundTruthMultisignal(dataSource,labelDefs,roiData,sceneData)
gTruth = 

  groundTruthMultisignal with properties:

          DataSource: [1x2 vision.labeler.loading.MultiSignalSource]
    LabelDefinitions: [6x7 table]
        ROILabelData: [1x1 vision.labeler.labeldata.ROILabelData]
      SceneLabelData: [1x1 vision.labeler.labeldata.SceneLabelData]

Совет

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

  • Как создать groundTruthMultisignal объект, содержащий данные метки информация только для чтения, но без данных метки сцены, задайте SceneLabelData свойство как пустой массив. Чтобы создать этот массив, в командной строке MATLAB введите этот код.

    sceneData = vision.labeler.labeldata.SceneLabelData.empty

Введенный в R2020a