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) возвращает объект, содержащий метки основной истины, которые могут быть импортированы в Image Labeler, Video Labeler и приложения Ground Truth Labeler. dataSourceОпределения меток, и labelData входные параметры устанавливают свойства. Пометьте определения, описывают метки, подметки и атрибуты. Пометьте данные, содержит информацию об идентификации, положение, и устанавливает метку времени для меток.

Свойства

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

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

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

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

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

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

Маркируйте DefinitionОписание
NameВектор символов, задающий имя категории метки.
TypelabelType перечисление, которое задает тип категории метки.
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строка, PixelLabel, или Scene пометьте типыRectangle, PixelLabel или Scene пометьте типы
Данные МеткиРасписание Rectangleстрока, PixelLabel, или Scene пометьте типыТаблица (никакое расписание) для Rectangle, PixelLabel, или Scene пометьте типы

Добавить достоверные данные, который не является ROI (Rectangleстрока, 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'}       {' '}   

Инициализируйте данные о метке для прямоугольных ROI.

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 = {'visionteamPixelLabels.png'}    
dataFile = 1x1 cell array
    {'visionteamPixelLabels.png'}

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

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

    {'visionteamPixelLabels.png'}

Создайте 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