groundTruthDataSource

Объект для хранения наземных источников данных истины

Описание

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

  • Image Labeler поддерживает источники данных для наборов изображений.

  • Video Labeler и Ground Truth Labeler (требует Automated Driving Toolbox™), источники данных поддержки приложений для видео и последовательностей изображений. Эти приложения также поддерживают пользовательские источники данных.

Создание

Синтаксис

gtSource = groundTruthDataSource(imageFiles)
gtSource = groundTruthDataSource(videoName)
gtSource = groundTruthDataSource(imageSeqFolder)
gtSource = groundTruthDataSource(imageSeqFolder,timeStamps)
gtSource = groundTruthDataSource(sourceName,readerFcn,timeStamps)

Описание

пример

gtSource = groundTruthDataSource(imageFiles) возвращает наземный объект источника данных истины для набора изображений, заданных imageFiles. Изображения должны быть в формате файла, читаемом imread.

gtSource = groundTruthDataSource(videoName) возвращает наземный объект источника данных истины для видеофайла, заданного videoName. Видео должны быть в формате файла, читаемом VideoReader.

пример

gtSource = groundTruthDataSource(imageSeqFolder) возвращает наземный объект источника данных истины для последовательности изображений, расположенной в папке, заданной imageSeqFolder.

gtSource = groundTruthDataSource(imageSeqFolder,timeStamps) возвращает наземный объект источника данных истины для последовательности изображений с соответствующей меткой времени для каждого изображения, содержавшегося в заданной папке. timeStamps устанавливает свойство TimeStamps.

пример

gtSource = groundTruthDataSource(sourceName,readerFcn,timeStamps) возвращает наземный объект источника данных истины при помощи пользовательского указателя на функцию читателя, readerFcn. sourceName устанавливает свойство Source, и timeStamps установил свойство TimeStamps. Пользовательская функция читателя загружает изображение от sourceName, который соответствует текущей метке времени, заданной в векторе duration timeStamps.

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

развернуть все

Имена файла образа, заданные как массив строк или массив ячеек из символьных векторов. Изображения должны быть в формате файла, читаемом imread. Для списка форматов поддерживаемого файла изображения смотрите imformats.

Имя видеофайла, заданного как скаляр строки или вектор символов. Видео должны быть в формате файла, читаемом VideoReader. Для списка поддерживаемых форматов видеофайла смотрите VideoReader.getFileFormats. Если ваш формат видео не поддержан, задайте пользовательскую функцию читателя, readerFcn.

Папка последовательности изображений, заданная как скаляр строки или вектор символов. Расширения имени файлов изображений должны поддерживаться imformats. Если ваш формат видео не поддержан, задайте пользовательскую функцию читателя, readerFcn.

Изображения загружаются в порядке, возвращенном командой dir.

Пользовательская функция читателя, заданная как указатель на функцию. Пользовательская функция читателя должна загрузить изображение из источника в заданной метке времени при помощи этого синтаксиса:

outputImage = readerFcn(sourceName,currentTimeStamp)
  • readerFcn является именем вашей пользовательской функции читателя.

  • sourceName является именем источника данных.

  • currentTimeStamp является текущей меткой времени, как задано входным вектором timeStamp.

outputImage, возвращенный пользовательской функцией, должен быть шкалой полутонов или изображением RGB в любом формате, поддержанном imshow. Для получения дополнительной информации смотрите Использование Пользовательский Читатель Источника данных для Разметки достоверных данных.

Свойства

развернуть все

Это свойство доступно только для чтения.

Метки времени видео или последовательности изображений, заданной как вектор duration.

  • Для видеофайла TimeStamps автоматически заполняется с метками времени, которые присутствуют для кадров видео.

  • Для последовательности изображений или пользовательского читателя, TimeStamps заполняется со значениями в векторе входа duration timeStamps.

  • Для набора изображений свойство TimeStamps остается пустым.

.

Это свойство доступно только для чтения.

Источник наземных данных об истине, заданных как вектор символов или массив ячеек из символьных векторов. Исходное имя может относиться к именам файла образа, имени видеофайла, именам файла последовательности изображений или пользовательским именам источников данных.

Примеры

свернуть все

Используйте объект groundTruthDataSource создать источник данных.

Считайте видеофайл и создайте источник данных.

videoName = 'vipunmarkedroad.avi';
dataSource = groundTruthDataSource(videoName)
dataSource = 
groundTruthDataSource for a video file with properties

        Source: ...tlab/toolbox/vision/visiondata/vipunmarkedroad.avi
    TimeStamps: [84x1 duration]

Создайте VideoReader, чтобы считать кадры видео.

reader = VideoReader(videoName);

Считайте 5-й кадр в видео и отображении

 timeStamp = seconds(dataSource.TimeStamps(5));
 reader.CurrentTime = timeStamp;
 I = readFrame(reader);
 
 figure
 imshow(I)

Создайте наземный источник данных истины из последовательность изображений, сохраненная в заданной папке.

Задайте папку, содержащую последовательность изображений.

imageDir = fullfile(matlabroot,'toolbox','vision',...
        'visiondata','building');

Создайте источник данных для изображений, которые находятся в папке imageDir.

    dataSource = groundTruthDataSource(imageDir)
dataSource = 
groundTruthDataSource for a video as an image sequence with properties

                      Source: {
                              ' .../build/matlab/toolbox/vision/visiondata/building/building1.JPG';
                              ' .../build/matlab/toolbox/vision/visiondata/building/building2.JPG';
                              ' .../build/matlab/toolbox/vision/visiondata/building/building3.JPG'
                               ... and 2 more
                              }
                  TimeStamps: [5x1 duration]

Считайте 5-й кадр в последовательности.

    I = imread(dataSource.Source{5});
    figure
    imshow(I)

Создайте наземный источник данных истины с помощью пользовательского читателя.

Задайте каталог образов, содержащий последовательность дорожных изображений.

imageDir = fullfile(matlabroot,'toolbox','vision',...
      'visiondata','building');

Используйте хранилище данных изображения в качестве пользовательского источника данных.

imgDataStore = imageDatastore(imageDir);

Запишите функцию читателя, чтобы считать изображения из источника данных. Первый входной параметр, sourceName, пользовательской функции читателя, readerFcn, не используются. 2-й вход, currentTimeStamp, преобразован от скаляра длительности до индекса на основе 1, подходящего для источника данных.

readerFcn = @(~,idx)readimage(imgDataStore,seconds(idx));

Создайте источник данных для изображений в, imageDir, папка с помощью readerFcn.

dataSource = groundTruthDataSource(imageDir,readerFcn,1:5)
dataSource = 
  groundTruthDataSource with properties:

        Source: ...471_pass\matlab\toolbox\vision\visiondata\building
    TimeStamps: [5×1 duration]

Считайте 5-й кадр в последовательности.

I = readerFcn(imageDir,seconds(5));
figure
imshow(I)

Советы

  • Объекты groundTruth для основанных на видео объектов groundTruthDataSource полагаются на возможности чтения видео вашей операционной системы. Созданное использование объекта groundTruth источника видеоданных остается сопоставимым только для той же платформы, которая использовалась, чтобы создать его. Чтобы создать специфичный для платформы объект groundTruth, преобразуйте видео в последовательность изображений.

Введенный в R2017a