groundTruthMultisignal

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

Описание

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Файл Rosbagvision.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 перечисления, которые задают тип каждого определения метки.

Для определений метки ROI с SignalType из Image, допустимый LabelType перечисления:

  • labelType.Rectangle

  • labelType.Line

  • labelType.PixelLabel

  • labelType.Polygon

  • labelType.ProjectedCuboid

Для определений метки ROI с SignalType из PointCloud, единственный допустимый LabelType перечислением является labelType.Cuboid.

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

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

Необходимый

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Данные о метке ROI через все сигналы в виде ROILabelData объект.

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

Данные о метке Scene через все сигналы в виде SceneLabelData объект.

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

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

Примеры

свернуть все

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

Создайте источник видеоданных из файла 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 объект.

  • Car определение метки появляется дважды. Даже при том, что Car задан как прямоугольник, можно чертить прямоугольники только для сигналов изображений, таких как видео. 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}

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

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'});

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

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'});

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

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]

Создайте объект основной истины из источников сигнала, пометьте определения, и ROI и данные о метке сцены. Можно импортировать этот объект в приложение 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 объекты с основанными на видео источниками данных используют возможности чтения видео вашей операционной системы. groundTruthMultisignal объект, созданный с помощью источников видеоданных, остается сопоставимым только для той же платформы, которая использовалась, чтобы создать его. Создать платформенно независимый groundTruthMultisignal объект, преобразуйте видео в последовательности изображений и включайте связанные метки времени с последовательностями изображений.

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

    sceneData = vision.labeler.labeldata.SceneLabelData.empty

Введенный в R2020a