groundTruth

Объект для хранения заземляющих меток истины

Описание

Объект groundTruth содержит информацию об источнике данных, списке определений метки и всех отмеченных метках для набора заземляющих меток истины. Можно экспортировать или импортировать объект groundTruth из Image Labeler, Video Labeler и приложений Ground Truth Labeler. Использование Ground Truth Labeler требует Automated Driving Toolbox™.

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

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

Создание

Синтаксис

gTruth = groundTruth(dataSource,labelDefs,labelData)

Описание

gTruth = groundTruth(dataSource,labelDefs,labelData) возвращает объект, содержащий заземляющие метки истины, которые могут быть импортированы в Image Labeler, Video Labeler и приложения Ground Truth Labeler. dataSource, labelDefinitions и входные параметры labelData устанавливают свойства. Маркируйте определения, описывают метки, подметки и атрибуты. Маркируйте данные, содержит информацию об идентификации, положение, и устанавливает метку времени для меток.

Свойства

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

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

К изображениям доступа от первоначального источника данных используйте VideoReader или imageDatastore. Можно также использовать пользовательскую функцию читателя. Смотрите Использование Пользовательский Читатель Источника данных для Разметки достоверных данных.

Это свойство доступно только для чтения.

Маркируйте определения, заданные как таблица максимум с пятью столбцами. Возможными столбцами является Name, Type, PixelLabelID, Description и Hierarchy.

Таблица включает столбец PixelLabelID, когда вы используете пиксельные метки, и включает столбец Hierarchy, когда вы создаете подметки и/или атрибуты. Таблица всегда содержит Name, Type и столбцы Description. Описания для меток являются дополнительными, так, чтобы столбец мог быть пустым.

Маркируйте DefinitionОписание
NameВектор символов, задающий имя категории метки.
TypeПеречисление labelType, которое задает тип категории метки.
PixelLabelIDСкаляр, вектор-столбец или M-by-3 матрица метки IDs с целочисленным знаком. PixelLabelID указывает, что пиксельные значения метки раньше представляли категорию метки. Это значение требуется, когда вы устанавливаете Type на labelType.PixelLabel. Значения идентификаторов метки Pixel должны быть между 0 и 255.
DescriptionВектор символов, который описывает категорию метки. Определение метки описания является дополнительным.
HierarchyСтруктура, содержащая подметку и данные об атрибуте. Приложение заполняет столбец иерархии, когда вы создаете подметку или атрибут. Это определение метки применяется только к приложениям Ground Truth Labeler и Video Labeler. См. Запуск с Video Labeler и Запуск с Ground Truth Labeler (Automated Driving Toolbox).

Например, эта таблица определения содержит шесть категорий метки: cars, sky, vegetation, road, Signs и laneMarkers.

Примечание

Атрибуты и подметки только доступны в Video Labeler и Ground Truth Labeler. В примере выше, две из меток содержат атрибуты. Поэтому столбец Hierarchy был создан для всех меток.

Следующий код ниже представляет таблицу с двумя категориями метки:

defs = table({'Cars';'Lanes'}, ...
	[labelType.Rectangle;labelType.Line], ...
	'VariableNames',{'Name','Type'})

Это свойство доступно только для чтения.

Маркируйте данные для каждого ROI и метки сцены, заданной как table для наборов изображений или timetable для видео или последовательности изображений. Каждый столбец таблицы или расписания содержит метки для одной категории метки. LabelData описывает элементы таблицы. Категории метки заданы как перечисления labelType.

Маркируйте CategoryМаркируйте Values
labelType.RectangleМетки в каждой строке хранятся как M-by-4 матрицы [x, y, width, height] местоположения ограничительной рамки. Если метки содержат подметки, атрибуты или обоих, то метки хранятся как структуры. Эти структуры содержат местоположения ограничительной рамки и подметку и информацию атрибута.
labelType.LineМетки в каждой строке хранятся как M-by-1 массивы ячеек. Каждый элемент массива ячеек содержит [x, y], местоположения для точек раньше отмечали ломаную линию. Если метки содержат подметки, атрибуты или обоих, то метки хранятся как структуры. Эти структуры содержат местоположения строки и подметку и информацию атрибута.
labelType.PixelLabelДанные о метке для всех категорий метки представлены одной матрицей метки. Матрица должна храниться на диске как изображение uint8. Имя файла образа должно быть задано как вектор символов в таблице LabelData. Матрица метки должна содержать 1 или 3 канала. Для матрицы с 3 каналами пиксельные значения RGB представляют метку IDs.
labelType.SceneМетки в каждой строке хранятся как логические значения, представляющие присутствие или отсутствие метки сцены для изображения.
labelType.CustomМетки в каждой строке хранятся в способе, которым им предоставляют в таблице. Эти метки не импортируются в приложение маркировки.

Поддерживаемые объекты GroundTruth

 Video Labeler или приложение Ground Truth LabelerПриложение Image Labeler
Источник данныхВидеофайл, папка последовательности изображений, пользовательский читательФайлы изображений
Маркируйте определенияRectangle, Line, PixelLabel или типы метки SceneRectangle, типы метки PixelLabel или Scene
Маркируйте данныеРасписание Rectangle, Line, PixelLabel или типов метки SceneТаблица (никакое расписание) для Rectangle, PixelLabel или типов метки Scene

Чтобы добавить наземные данные об истине, которые не являются ROI (Rectangle, Line, PixelLabel) или категория метки Scene к объекту groundTruth, предоставляют определению метки labelType, который является Custom. Пользовательские данные не видимы, когда вы загружаете их в приложение маркировки.

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

selectLabelsByGroupВыберите наземные данные об истине для набора меток группой
selectLabelsByTypeВыберите наземные данные об истине для набора меток типом
selectLabelsByNameВыберите наземные данные об истине по наименованию
changeFilePathsИзмените пути к файлам в источнике данных и пиксельных данных о метке наземного объекта истины

Примеры

свернуть все

Создайте источник данных из набора изображений.

data = load('stopSignsAndCars.mat');
imageFilenames = data.stopSignsAndCars.imageFilename(1:2)
imageFilenames = 2x1 cell array
    {'stopSignImages/image001.jpg'}
    {'stopSignImages/image002.jpg'}

imageFilenames = fullfile(toolboxdir('vision'),'visiondata',imageFilenames);
dataSource = groundTruthDataSource(imageFilenames);

Задайте метки, используемые, чтобы задать наземную истину. Используйте labelDefinitionCreator, чтобы составить таблицу определений метки.

ldc = labelDefinitionCreator();
addLabel(ldc,'stopSign',labelType.Rectangle);
addLabel(ldc,'carRear',labelType.Rectangle);
labelDefs = create(ldc)
labelDefs=2×4 table
       Name         Type       Group     Description
    __________    _________    ______    ___________

    'stopSign'    Rectangle    'None'        ' '    
    'carRear'     Rectangle    'None'        ' '    

Инициализируйте данные о метке для прямоугольных КОРОЛЕЙ.

stopSignTruth = {[856   318    39    41];[445   523    52    54]};
carRearTruth = {[398   378   315   210];[332   633   691   287]};

Создайте таблицу данных о метке.

labelNames = {'stopSign';'carRear'};
labelData = table(stopSignTruth,carRearTruth,'VariableNames',labelNames)
labelData=2×2 table
      stopSign        carRear   
    ____________    ____________

    [1x4 double]    [1x4 double]
    [1x4 double]    [1x4 double]

Создайте наземный объект истины.

gTruth = groundTruth(dataSource,labelDefs,labelData)
gTruth = 
  groundTruth with properties:

          DataSource: [1x1 groundTruthDataSource]
    LabelDefinitions: [2x4 table]
           LabelData: [2x2 table]

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

Создайте источник данных из изображения.

dataSource = groundTruthDataSource({'stopSignTest.jpg'});

Задайте метки, используемые, чтобы задать наземную истину. Используйте labelDefinitionCreator, чтобы составить таблицу определений метки.

ldc = labelDefinitionCreator();
addLabel(ldc,'Lane',labelType.Line);
labelDefs = create(ldc);

Присвойте два маркера маршрута в изображении.

laneMarkerTruth = {[257 254;311 180] [327 183;338 205;374 250]};

Создайте таблицу данных о метке.

labelNames = {'Lane'};
labelData = table(laneMarkerTruth,'VariableNames',labelNames)
labelData=1×1 table
                Lane            
    ____________________________

    [2x2 double]    [3x2 double]

Создайте объект groundTruth.

gTruth = groundTruth(dataSource,labelDefs,labelData)
gTruth = 
  groundTruth with properties:

          DataSource: [1x1 groundTruthDataSource]
    LabelDefinitions: [1x4 table]
           LabelData: [1x1 table]

Создайте объект groundTruth сохранить части представления данных сцены.

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

dataSource = groundTruthDataSource({'visionteam.jpg'});

Используйте labelDefinitionCreator, чтобы составить таблицу определений метки. Задайте метки, 'Person' и 'Background'. Присвойте их соответствующий тип метки как PixelLabel.

ldc =labelDefinitionCreator();
addLabel(ldc,'Person',labelType.PixelLabel);
addLabel(ldc,'Background',labelType.PixelLabel);
labelDefs = create(ldc)             
labelDefs=2×5 table
        Name           Type       PixelLabelID    Group     Description
    ____________    __________    ____________    ______    ___________

    'Person'        PixelLabel        [1]         'None'        ' '    
    'Background'    PixelLabel        [2]         'None'        ' '    

Задайте местоположение пиксельных данных о метке для изображения.

dataFile = {'pixelLabeledVisionTeam.jpg'}    
dataFile = 1x1 cell array
    {'pixelLabeledVisionTeam.jpg'}

Создайте таблицу данных о метке для пиксельных данных о метке.

labelData = table(dataFile,'VariableNames',{'PixelLabelData'})
labelData=1×1 table
           PixelLabelData       
    ____________________________

    'pixelLabeledVisionTeam.jpg'

Создайте объект groundTruth.

gTruth = groundTruth(dataSource,labelDefs,labelData)
gTruth = 
  groundTruth with properties:

          DataSource: [1x1 groundTruthDataSource]
    LabelDefinitions: [2x5 table]
           LabelData: [1x1 table]

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

videoName = 'caltech_cordova1.avi';
dataSource = groundTruthDataSource(videoName);

Задайте метки, используемые, чтобы задать наземную истину. Используйте labelDefinitionCreator, чтобы составить таблицу определений метки.

ldc = labelDefinitionCreator();
addLabel(ldc,'Cars',labelType.Rectangle);
addLabel(ldc,'LaneMarkers',labelType.Line);
labelDefs = create(ldc)
labelDefs=2×4 table
        Name           Type       Group     Description
    _____________    _________    ______    ___________

    'Cars'           Rectangle    'None'        ' '    
    'LaneMarkers'    Line         'None'        ' '    

Создайте данные о метке для маркеров маршрута и автомобилей.

numRows = numel(dataSource.TimeStamps);
carsTruth = cell(numRows,1);
laneMarkerTruth = cell(numRows,1);

Добавьте две автомобильных метки и два маркера маршрута к первому кадру.

carsTruth{1} = [182 186 31 22;404 191 53 34];
laneMarkerTruth{1} = {[257 254;311 180] [327 183;338 205;374 250]};

Составьте таблицу данных о метке.

labelNames = {'Cars','LaneMarkers'};
labelData = table(carsTruth,laneMarkerTruth,'VariableNames',labelNames);

Создайте объект groundTruth. Чтобы импортировать этот объект в приложение Ground Truth Labeler, нажмите Import Labels.

gTruth = groundTruth(dataSource,labelDefs,labelData)
gTruth = 
  groundTruth with properties:

          DataSource: [1x1 groundTruthDataSource]
    LabelDefinitions: [2x4 table]
           LabelData: [250x2 timetable]

Советы

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

Введенный в R2017a