exponenta event banner

groundTruthMultisignal

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

Описание

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

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

Создание

Экспорт groundTruthMultisignal в приложении Ground Truth Labeler на панели инструментов приложения выберите Экспорт меток > В рабочую область. Приложение экспортирует объект в рабочую область MATLAB ®. Создание groundTruthMultisignal программно использовать groundTruthMultisignal функция (описана здесь).

Описание

пример

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

  • dataSources определяет источники данных истинности земли и устанавливает DataSource собственность.

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

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

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

Свойства

развернуть все

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

MultiSignalSource Тип объектаИсточник данныхСсылка на класс
VideoSourceВидеофайлvision.labeler.loading.VideoSource
ImageSequenceSourceПапка последовательности изображенийvision.labeler.loading.ImageSequenceSource
VelodyneLidarSourceФайл захвата пакетов Velodine ® (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, выбрав команду Открыть > Определения меток на панели инструментов приложения.

  • Создайте таблицу определений меток в командной строке 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.

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

Необходимый

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

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

При создании определений меток в командной строке MATLAB нет необходимости включать Group столбец.

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

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

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

При создании определений меток в командной строке MATLAB нет необходимости включать Description столбец.

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

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

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

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

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

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

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

При определении меток пикселей в приложении Ground Truth Labeler или labelDefinitionCreatorMultisignal , сформированная таблица определений меток содержит этот столбец.

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

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

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

При определении суббнаков или атрибутов в приложении Ground Truth Labeler или labelDefinitionCreatorMultisignal , сформированная таблица определений меток содержит этот столбец.

Данные метки ROI для всех сигналов, указанные как ROILabelData объект.

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

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

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

selectLabelsByLabelNameВыбор многосигнальной истинности грунта по имени метки
selectLabelsByLabelTypeВыбор многосигнальной истинности земли по типу метки
selectLabelsByGroupNameВыбор многосигнальной истинности земли по имени группы меток
selectLabelsBySignalNameВыбор многосигнальной истинности земли по имени сигнала
selectLabelsBySignalTypeВыбор многосигнальных меток истинности земли по типу сигнала
gatherLabelDataСбор синхронизированных данных меток из данных о земле
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 объект создает дополнительную строку для сигналов облака точек lidar. В этих типах сигналов можно рисовать 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'});

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

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

    sceneData = vision.labeler.labeldata.SceneLabelData.empty

Представлен в R2020a