Запись сигнальных кадров для данных истинности заземления на диск
записывает кадры наземных источников сигнала истинности в указанные местоположения папки. Функция возвращает имена файлов, содержащих записанные кадры. fileNames = writeFrames(gTruth,signalNames,location)fileNames содержит одно имя файла для каждого сигнала, указанного signalNames за groundTruthMultisignal объект, указанный gTruth.
Используйте эти записанные кадры и связанные метки истинности земли, полученные из gatherLabelData функционировать в качестве обучающих данных для моделей машинного обучения или глубокого обучения.
задает временные метки кадров сигнала для записи. Для получения временных меток сигналов используйте fileNames = writeFrames(gTruth,signalNames,location,timestamps)gatherLabelData функция.
указывает параметры, использующие один или несколько аргументов пары имя-значение, в дополнение к любой из комбинаций входных аргументов из предыдущих синтаксисов. Например, можно указать префикс и расширение типа файла имен для записанных кадров.fileNames = writeFrames(___,Name,Value)
Сбор данных метки для видеосигнала и сигнала последовательности облака точек лидара из groundTruthMultisignal объект. Запишите сигнальные кадры, связанные с данными метки, на диск и визуализируйте кадры.
Добавьте путь к папке последовательности облаков точек в путь поиска MATLAB ®. Видео уже находится в пути поиска MATLAB.
pcSeqDir = fullfile(toolboxdir('driving'),'drivingdata', ... 'lidarSequence'); addpath(pcSeqDir);
Загрузить a groundTruthMultisignal объект, содержащий данные метки для видео и последовательности облаков точек лидара.
data = load('MultisignalGTruth.mat');
gTruth = data.gTruth;
Укажите сигналы для сбора данных метки.
signalNames = ["video_01_city_c2s_fcw_10s" "lidarSequence"];
Видео содержит метки прямоугольника, в то время как последовательность облаков точек лидара содержит метки кубов. Соберите прямоугольные метки из видео и кубовидные метки из последовательности облаков точек лидара.
labelTypes = [labelType.Rectangle labelType.Cuboid]; [labelData,timestamps] = gatherLabelData(gTruth,signalNames,labelTypes);
Отображение первых восьми строк данных метки из двух сигналов. Оба сигнала содержат данные для Car этикетка. В видео, Car метка рисуется как прямоугольная ограничительная рамка. В последовательности облаков точек лидара Car метка рисуется как кубовидная ограничивающая рамка.
videoLabelSample = head(labelData{1})
lidarLabelSample = head(labelData{2})
videoLabelSample =
table
Car
_________________
{[299 213 42 33]}
lidarLabelSample =
table
Car
____________________________________________________
{[17.7444 6.7386 3.3291 3.6109 3.2214 3.5583 0 0 0]}
Запись кадров сигнала, связанных с собранными данными метки, во временные папки с одной папкой на сигнал. Использовать метки времени, возвращенные gatherLabelData для указания, какие сигнальные кадры следует записать.
outputFolder = fullfile(tempdir,["videoFrames" "lidarFrames"]); fileNames = writeFrames(gTruth,signalNames,outputFolder,timestamps);
Writing 2 frames from the following signals: * video_01_city_c2s_fcw_10s * lidarSequence
Загрузка кадров записанного видеосигнала с помощью imageDatastore объект. Загрузите связанные данные метки прямоугольника с помощью boxLabelDatastore объект.
imds = imageDatastore(fileNames{1});
blds = boxLabelDatastore(labelData{1});
Загрузите записанные кадры лидарного сигнала с помощью fileDatastore объект. Загрузка связанных данных меток кубов с помощью boxLabelDatastore объект.
fds = fileDatastore(fileNames{2},'ReadFcn',@pcread);
clds = boxLabelDatastore(labelData{2});
Визуализация записанных видеокадров с помощью vision.VideoPlayer объект. Визуализация записанных лидарных кадров с помощью pcplayer объект.
videoPlayer = vision.VideoPlayer; ptCloud = preview(fds); ptCloudPlayer = pcplayer(ptCloud.XLimits,ptCloud.YLimits,ptCloud.ZLimits); while hasdata(imds) % Read video and lidar frames. I = read(imds); ptCloud = read(fds); % Visualize video and lidar frames. videoPlayer(I); view(ptCloudPlayer,ptCloud); end


Удалите путь к папке последовательности облаков точек.
rmpath(pcSeqDir);
gTruth - Многосигнальные данные о истинности землиgroundTruthMultisignal объект | вектор groundTruthMultisignal объектыМногосигнальные данные о истинности земли, указанные как groundTruthMultisignal объект или вектор groundTruthMultisignal объекты.
signalNames - Наименования сигналовИмена сигналов для записи кадров, определяемые как вектор символов, скаляр строк, массив ячеек векторов символов или вектор строк. Имена сигналов должны быть действительными именами сигналов, хранящимися во входных многосигнальных данных о истинности земли. gTruth.
Получение имен сигналов из groundTruthMultisignal объект, используйте этот синтаксис, где gTruth - имя переменной объекта:
gTruth.DataSource.SignalName
Пример: 'video_01_city_c2s_fcw_10s'
Пример: "video_01_city_c2s_fcw_10s"
Пример: {'video_01_city_c2s_fcw_10s','lidarSequence'}
Пример: ["video_01_city_c2s_fcw_10s" "lidarSequence"]
location - Расположение папокРасположение папок для записи кадров, указанное как Mоколо-N матрицу строк или Mоколо-N клеточный массив символьных векторов, где:
M - количество groundTruthMultisignal объекты в gTruth.
N - количество сигналов в signalNames.
location(m,n) (для матричных входов) или location{m,n} (для входов массива ячеек) содержит расположение папки записи кадров для n-й сигнал signalNames который находится в mth groundTruthMultisignal объект gTruth.
Можно указать расположение папок как относительные пути или полные пути к файлам. Если какие-либо указанные расположения папок не существуют, writeFrames создает папки. Все расположения папок должны быть уникальными. Если файлы уже существуют в указанной папке и существующие файлы доступны для записи, то writeFrames функция перезаписывает их.
timestamps - Временные метки кадров для записиduration вектор | массив ячеек duration векторыВременные метки кадров для записи, указанные как duration вектор или Mоколо-N массив ячеек duration векторы, где:
M - количество groundTruthMultisignal объекты в gTruth.
N - количество сигналов в signalNames.
timestamps{m,n} содержит временные метки для n-й сигнал signalNames который находится в mth groundTruthMultisignal объект gTruth.
При записи кадров только для одного сигнала и одного groundTruthMultisignal объект, укажите timestamps как единый duration вектор.
По умолчанию writeFrames функция записывает все кадры сигнала. Если сигнал не имеет кадра с указанными временными метками, функция записывает кадр с ближайшей предшествующей временной меткой.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'NamePrefix',["video" "lidar"],'FileType',["png" "ply"] записывает видеокадры с именами файлов формата video_001.png, video_002.pngи так далее, и записывает лидарные кадры с именами файлов формата lidar_001.ply, lidar_002.plyи так далее.'NamePrefix' - Префикс имени файла для каждого сигналаПрефикс имени файла для каждого сигнала в signalNames, указанная как пара, разделенная запятыми, состоящая из 'NamePrefix' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый вектор.
Каждый элемент 'NamePrefix' указывает тип файла для сигнала в соответствующей позиции signalNames. По умолчанию 'NamePrefix' - имя каждого сигнала в signalNames.
'FileType' - Тип файла для каждого сигнала"jpg" для Image сигналы, "pcd" для PointCloud сигналы (по умолчанию) | символьный вектор | строковый скаляр | массив ячеек символьных векторов | строковый векторТип файла для каждого сигнала в signalNames, указанная как пара, разделенная запятыми, состоящая из 'FileType' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый вектор.
Каждый элемент 'FileType' указывает тип файла для сигнала в соответствующей позиции signalNames. Этот аргумент пары имя-значение используется для указания расширений файлов в именах записанных файлов.
Поддерживаемые типы файлов для сигнала зависят от типа этого сигнала. Image или PointCloud.
| Тип сигнала | Поддерживаемые типы файлов |
|---|---|
Image | Все типы файлов, поддерживаемые imwrite функция |
PointCloud |
Файлы данных облака точек (PCD) и полигона (PLY) записываются с использованием двоичной кодировки. Для получения дополнительной информации об этих форматах файлов см. |
Просмотр типов сигналов, хранящихся в groundTruthMultisignal объект, gTruth, используйте следующий код:
gTruth.DataSource.SignalType
Пример: 'FileType','png'
Пример: 'FileType',"png"
Пример: 'FileType',{'png','ply'}
Пример: 'FileType',["png" "ply"]
'Verbose' - Отображение информации о ходе записиtrueили 1 (по умолчанию) | false или 0Отображение информации о ходе записи в командной строке MATLAB ®, указанной как разделенная запятыми пара, состоящая из 'Verbose' и логический 1 (true) или 0 (false).
fileNames - Имена файлов записанных кадровИмена файлов записанных кадров, возвращаемых в виде Mоколо-N массив ячеек струнных векторов, где:
M - количество groundTruthMultisignal объекты в gTruth.
N - количество сигналов в signalNames.
fileNames{m,n} содержит имена файлов для кадров n-й сигнал signalNames который находится в mth groundTruthMultisignal объект gTruth.
Имена файлов для каждого сигнала возвращаются в векторе строкового столбца, где каждая строка содержит имя файла для записанного кадра. Если указан ввод timestamps, то каждое имя файла представляет собой записанный кадр на отметке времени в соответствующей позиции timestamps.
Каждый выходной файл имеет имя , где:NamePrefix_UID.FileType
- префикс имени файла. Чтобы задать префикс имени файла, используйте NamePrefix'NamePrefix' аргумент пары имя-значение.
- уникальный целочисленный индекс для каждого записанного кадра. UIDwriteFrames функция генерирует эти индексы.
- расширение типа файла. Чтобы задать расширение типа файла, используйте FileType'FileType' аргумент пары имя-значение.
gatherLabelData | groundTruthMultisignal | imformats | imwrite | pcwrite
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.