exponenta event banner

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

После маркировки сигналов с помощью процедуры «Достоверность основания метки для нескольких сигналов» экспортируйте метки и узнайте, как они хранятся.

Установка

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

groundTruthLabeler groundTruthLabelingSession.mat

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

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

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

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

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}     {[0.5862 0.8276 0.3103]}    {1x1 struct}
    {'car'    }    PointCloud    Cuboid       {'Vehicles'}    {0x0 char}     {[0.5862 0.8276 0.3103]}    {1x1 struct}
    {'daytime'}    Time          Scene        {'None'    }    {0x0 char}     {[          0.0588 1 1]}    {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: ''

Данные метки окупаемости инвестиций

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

gTruth.ROILabelData
ans = 

  ROILabelData with properties:

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

Каждое свойство содержит расписание меток ROI, нарисованных на каждой временной метке сигнала, с одним столбцом на метку. Просмотрите часть видео и расписания последовательности облака точек лидара. Установите интервал времени от 8 до 8,5 секунд. Этот интервал времени соответствует началу интервала времени, обозначенного в процедуре Label 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

Теперь просмотрите кубоид car метки для первого кадра последовательности облаков точек в интервале времени. Последовательности облаков точек не поддерживают подметки или атрибуты. Вместо сохранения кубоидных меток в Position поле структуры, положения кубовидной ограничивающей рамки хранятся в M-by-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-файл, содержащий сеанс приложения. Дополнительные сведения см. в разделе Обмен и хранение помеченных данных о истинности земли.

См. также

| | |

Связанные темы