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

После маркировки сигналов следующим Маркировать процедура Ground Truth for Multiple Signals экспортируйте метки и исследуйте, как они хранятся.

Настройка

Откройте сеанс приложения Ground Truth Labeler, содержащий помеченные сигналы. Можно открыть сеанс из командной строки MATLAB®. Например, если вы сохраненный сеанс к MAT-файлу под названием groundTruthLabelingSession, введите эту команду.

groundTruthLabeler groundTruthLabelingSession.mat

На панели инструментов приложения выберите Export Labels> To Workspace. В экспорте в окно рабочей области используйте имя переменной экспорта по умолчанию, gTruth, и нажмите ОК. Приложение экспортирует groundTruthMultisignal объект, gTruth, к рабочей области MATLAB®. Этот объект содержит метки основной истины, полученные от сеанса приложения.

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

if (~exist('gTruth','var'))
    gTruth = helperLoadGTruthGetStarted;
end

Отобразите свойства groundTruthMultisignal объект, gTruth. Объект содержит информацию об источниках данных сигнала, определениях метки, и метках сцены и ROI. Эта информация хранится в раздельном имуществе объекта.

gTruth
gTruth = 

  groundTruthMultisignal with properties:

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

В этом примере вы исследуете содержимое каждого свойства изучить, как основная истина объектно-ориентированной памяти помечает.

Источники данных

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

gTruth.DataSource
ans = 

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

    SourceName
    SourceParams
    SignalName
    SignalType
    Timestamp
    NumSignals

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

gTruth.DataSource.SignalName
ans = 

    "video_01_city_c2s_fcw_10s"


ans = 

    "lidarSequence"

Определения меток

LabelDefinitions свойство содержит таблицу информации об определениях метки. Отобразите таблицу определений метки. Каждая строка содержит информацию о ROI или определении метки сцены. car определение метки имеет две строки: один для того, когда метка чертится как прямоугольник на Image сигналы и один для того, когда метка чертится как кубоид на PointCloud сигналы.

gTruth.LabelDefinitions
ans =

  3x7 table

       Name        SignalType    LabelType       Group        Description     LabelColor      Hierarchy  
    ___________    __________    _________    ____________    ___________    ____________    ____________

    {'car'    }    Image         Rectangle    {'Vehicles'}    {0x0 char}     {1x3 double}    {1x1 struct}
    {'car'    }    PointCloud    Cuboid       {'Vehicles'}    {0x0 char}     {1x3 double}    {1x1 struct}
    {'daytime'}    Time          Scene        {'None'    }    {0x0 char}     {1x3 double}    {0x0 double}

Hierarchy столбец хранит информацию о подметке и определениях атрибута родительской метки ROI. Отобразите подметку и информационные признаки для car пометьте, когда это будет чертиться как прямоугольник. Эта метка содержит одну подметку, brakeLight, и никакие атрибуты.

gTruth.LabelDefinitions.Hierarchy{1}
ans = 

  struct with fields:

     brakeLight: [1x1 struct]
           Type: Rectangle
    Description: ''

Отобразите информацию о brakeLight подпометьте для родительского car метка. Подметка содержит один атрибут, isOn. Подметки не могут иметь своих собственных подметок.

gTruth.LabelDefinitions.Hierarchy{1}.brakeLight
ans = 

  struct with fields:

           Type: Rectangle
    Description: ''
     LabelColor: [0.5862 0.8276 0.3103]
           isOn: [1x1 struct]

Отобразите информацию о isOn припишите для brakeLight подметка. Этот атрибут не имеет никакого значения по умолчанию, таким образом, DefaultValue поле пусто.

gTruth.LabelDefinitions.Hierarchy{1}.brakeLight.isOn
ans = 

  struct with fields:

    DefaultValue: []
     Description: ''

ROI маркирует Data

ROILlabelData свойство содержит ROILabelData объект со свойствами, которые содержат данные о метке ROI для каждого сигнала. Имена свойств совпадают с именами сигналов. Отобразите имена свойства объекта.

gTruth.ROILabelData
ans = 

  ROILabelData with properties:

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

Каждое свойство содержит расписание меток ROI, чертивших в каждой метке времени сигнала с одним столбцом на метку. Просмотрите фрагмент видео и расписания последовательности облака точек лидара. Установите временной интервал от 8 до 8,5 секунд. Этот временной интервал соответствует запуску временного интервала, помеченного в Маркировать процедуре Ground Truth for Multiple Signals. Видео расписание содержит больше строк, чем расписание последовательности облака точек, потому что видео содержит больше меток кадров.

timeInterval = timerange(seconds(8),seconds(8.5));
videoLabels = gTruth.ROILabelData.video_01_city_c2s_fcw_10s(timeInterval,:)
lidarLabels = gTruth.ROILabelData.lidarSequence(timeInterval,:)
videoLabels =

  10x1 timetable

      Time          car     
    ________    ____________

    8 sec       {1x1 struct}
    8.05 sec    {1x1 struct}
    8.1 sec     {1x1 struct}
    8.15 sec    {1x1 struct}
    8.2 sec     {1x1 struct}
    8.25 sec    {1x1 struct}
    8.3 sec     {1x1 struct}
    8.35 sec    {1x1 struct}
    8.4 sec     {1x1 struct}
    8.45 sec    {1x1 struct}


lidarLabels =

  2x1 timetable

       Time           car     
    __________    ____________

    8.0495 sec    {1x1 struct}
    8.3497 sec    {1x1 struct}

Просмотрите прямоугольник car метки для первого видеокадра во временном интервале. Данные о метке хранятся в структуре.

videoLabels.car{1}
ans = 

  struct with fields:

      Position: [296 203 203 144]
    brakeLight: [1x2 struct]

Position поле хранит положения car метки. Эта система координат содержит только один car пометьте, так в этом случае, Position содержит только одну прямоугольную ограничительную рамку. Положение ограничительной рамки имеет форму [x y w h], где:

  • x и y задайте верхний левый угол прямоугольника.

  • w задает ширину прямоугольника, который является длиной прямоугольника вдоль оси X.

  • h задает высоту прямоугольника, который является длиной прямоугольника вдоль оси Y.

car метка также содержит два brakeLight подметки в этой системе координат. Просмотрите brakeLight подметки. Подметки хранятся в массиве структур с одной структурой на подметку, продвинутую система координат.

videoLabels.car{1}.brakeLight
ans = 

  1x2 struct array with fields:

    Position
    isOn

Просмотрите положения ограничительной рамки для подметок.

videoLabels.car{1}.brakeLight.Position
ans =

   304   245    50    46


ans =

   435   243    54    51

Просмотрите значения для isOn припишите в каждой подметке. Для обеих подметок этот атрибут установлен в логический 1 TRUE).

videoLabels.car{1}.brakeLight.isOn
ans =

  logical

   1


ans =

  logical

   1

Представление Now кубоид car метки для первой последовательности облака точек структурируют во временном интервале. Последовательности облака точек не поддерживают подметки или атрибуты. Вместо того, чтобы хранить метки кубоида в Position поле структуры, положения ограничительной рамки кубоида хранятся в M- 9 матриц, где M количество меток кубоида. Поскольку эта система координат содержит только одну метку кубоида в этом случае M 1.

lidarLabels.car{1}
ans = 

  struct with fields:

      Position: [-1.1559 -0.7944 1.2012 12.6196 5.9278 3.0010 0 0 0]
    brakeLight: []

1 9 положение ограничительной рамки имеет форму [xctr, yctr, zctr, xlen, ylen, zlen, xrot, yrot, zrot], где:

  • xctr, yctr, и zctr задайте центр кубоида.

  • xlen, ylen, и zlen задайте длину кубоида вдоль x-, y-, и ось z, соответственно, прежде чем вращение было применено.

  • xrot, yrot, и zrot задайте углы поворота для кубоида вдоль x-, y-, и ось z, соответственно. Эти углы по часовой стрелке положительны при взгляде в прямом направлении их соответствующих осей.

Этот рисунок показывает, как эти значения задают положение кубоида.

Данные о метке сцены

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

gTruth.SceneLabelData
ans = 

  SceneLabelData with properties:

    daytime: [0 sec    10.15 sec]

daytime метка применяется к целому временному интервалу, который составляет приблизительно 10 секунд.

Используйте метки основной истины

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

Чтобы совместно использовать помеченные достоверные данные, совместно используйте MAT-файл основной истины, содержащий groundTruthMultisignal объект, не MAT-файл, содержащий сеанс приложения. Для получения дополнительной информации смотрите Долю, и Хранилище Пометило Ground Truth Data (Computer Vision Toolbox).

Смотрите также

| | |

Похожие темы