writeFrames

Запишите системы координат сигнала для достоверных данных к диску

Описание

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);

Загрузите 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);

Входные параметры

свернуть все

Данные об истине мультисигнальной земли в виде groundTruthMultisignal объект или вектор из groundTruthMultisignal объекты.

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

Местоположения папки, в которые можно записать системы координат в виде M- N матрица строк или M- N массив ячеек из символьных векторов, где:

  • M количество groundTruthMultisignal объекты в gTruth.

  • N количество сигналов в signalNames.

  • location(m,n) (для матричных входных параметров) или location{m,n} (для входных параметров массива ячеек), содержит пишущее систему координат местоположение папки для nсигнал th signalNames это находится в mth groundTruthMultisignal объект gTruth.

Можно задать местоположения папки как относительные пути или полные пути к файлам. Если какие-либо заданные местоположения папки не существуют, writeFrames функция создает папки. Все местоположения папки должны быть уникальными. Если файлы уже существуют в заданном месте папки, и существующие файлы writeable, то writeFrames функция перезаписывает их.

Метки времени систем координат, чтобы записать в виде a duration вектор или M- N массив ячеек duration векторы, где:

  • M количество groundTruthMultisignal объекты в gTruth.

  • N количество сигналов в signalNames.

  • timestamps{m,n} содержит метки времени для nсигнал th 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, и так далее.

Префикс имени файла для каждого сигнала в signalNamesВ виде разделенной запятой пары, состоящей из 'NamePrefix' и вектор символов, строковый скаляр, массив ячеек из символьных векторов или вектор строки.

Каждый элемент 'NamePrefix' задает тип файла для сигнала в соответствующем положении signalNames. По умолчанию, 'NamePrefix' имя каждого сигнала в signalNames.

Тип файла для каждого сигнала в signalNamesВ виде разделенной запятой пары, состоящей из 'FileType' и вектор символов, строковый скаляр, массив ячеек из символьных векторов или вектор строки.

Каждый элемент 'FileType' задает тип файла для сигнала в соответствующем положении signalNames. Используйте этот аргумент пары "имя-значение", чтобы задать расширения файла на имена записанных файлов.

Поддерживаемые типы файлов для сигнала зависят от того, имеет ли тот сигнал тип Image или PointCloud.

Тип сигналаПоддерживаемые типы файлов
ImageВсе типы файлов, поддержанные imwrite функция
PointCloud

"pcd" или "ply"

Данные об облаке точек (PCD) и многоугольник (PLY) файлы записаны с помощью бинарного кодирования. Для получения дополнительной информации об этих форматах файлов смотрите pcwrite функция.

Просмотреть типы сигнала для сигналов, сохраненных в groundTruthMultisignal объект, gTruth, используйте этот код:

gTruth.DataSource.SignalType

Пример: 'FileType','png'

Пример: 'FileType',"png"

Пример: 'FileType',{'png','ply'}

Пример: 'FileType',["png" "ply"]

Отобразите информацию о прогрессе записи в командной строке MATLAB® в виде разделенной запятой пары, состоящей из 'Verbose' и логический 1 TRUE) или 0 ложь).

Выходные аргументы

свернуть все

Имена файлов записанных систем координат, возвращенных как M- N массив ячеек векторов строки, где:

  • M количество groundTruthMultisignal объекты в gTruth.

  • N количество сигналов в signalNames.

  • fileNames{m,n} содержит имена файлов для систем координат nсигнал th signalNames это находится в mth groundTruthMultisignal объект gTruth.

Имена файлов для каждого сигнала возвращены в строковом векторе-столбце, где каждая строка содержит имя файла для записанной системы координат. Если вы задали вход timestamps, затем каждое имя файла представляет записанную систему координат в метке времени в соответствующем положении timestamps.

Каждый выходной файл называют NamePrefix_UIDFileType , где:

  • NamePrefix префикс имени файла. Чтобы установить префикс имени файла, используйте 'NamePrefix' аргумент пары "имя-значение".

  • UID уникальный целочисленный индекс для каждой записанной системы координат. writeFrames функция генерирует эти индексы.

  • FileType расширение типа файла. Чтобы установить расширение типа файла, используйте 'FileType' аргумент пары "имя-значение".

Введенный в R2020a