После маркировки сигналов с помощью процедуры Label Ground Truth for Multiple Signals, экспортируйте метки и исследуйте, как они хранятся.
Откройте сеанс приложения 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.
gatherLabelData
| groundTruthMultisignal
| ROILabelData
| SceneLabelData