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

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

Setup

Откройте сеанс приложения 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]

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

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

The 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"

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

The LabelDefinitions свойство содержит таблицу сведений об определениях меток. Отобразите таблицу определений меток. Каждая строка содержит информацию о информация только для чтения или определении метки сцены. The 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}

The Hierarchy в столбце хранится информация о подметке и определениях атрибутов родительской метки информация только для чтения. Отображение подметки и информации атрибута для 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: ''

Информации только для чтения

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

gTruth.ROILabelData
ans = 

  ROILabelData with properties:

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

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

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

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

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

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

The 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, соответственно. Эти углы являются положительными по часовой стрелке при взгляде в прямом направлении их соответствующих осей.

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

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

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

gTruth.SceneLabelData
ans = 

  SceneLabelData with properties:

    daytime: [0 sec    10.15 sec]

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

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

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

Чтобы поделиться маркированными достоверными данными, поделитесь основной истиной MAT-файлом, содержащим groundTruthMultisignal объект, а не MAT-файл, содержащий сеанс приложения. Для получения дополнительной информации смотрите Share and Store Labeled Ground Truth Data.

См. также

| | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте