exponenta event banner

Как приложения Labeler хранят экспортированные пиксельные метки

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

  • Папка с именем PixelLabelData, который содержит PNG-файлы информации о метках пикселей. Эти метки кодируются как индексированные значения.

  • MAT-файл, содержащий данные пиксельной метки вместе с любыми другими данными метки. Эти данные хранятся в groundTruth объект, или, если вы используете приложение Ground Truth Labeler, groundTruthMultisignal (Автоматическая панель инструментов управления). Для данных пиксельной метки объект также сохраняет соответствия между кадрами изображения или видеокадров и файлами PNG.

Файлы PNG в пределах PixelLabelData хранятся в виде категориальной матрицы. categorical матрицы содержат значения, присвоенные категориям. Категориальный - это тип данных. Категориальная матрица обеспечивает эффективное хранение и удобное манипулирование нечисловыми данными, сохраняя при этом значимые имена для значений. Эти матрицы являются естественными представлениями для семантической сегментации, где каждый пиксель является одним из предопределенной категории меток.

Расположение папки данных метки пикселя

Базовый объект истинности сохраняет путь к папке и имя для папки данных метки пикселя. LabelData имущества groundTruth объект или ROILabelData имущества groundTruthMultisignal содержит информацию в 'PixelLabelData' столбец. При изменении местоположения файла пиксельных данных необходимо также обновить связанную информацию в объекте истинности земли. Вы можете использовать changeFilePaths для обновления информации.

Просмотр экспортированных данных метки пикселя

Приложения labeler хранят истинную семантическую сегментацию в виде PNG-файлов без потерь с uint8 значение, представляющее каждую категорию. Приложение использует categorical для связывания uint8 значения категории. Для просмотра пиксельных данных можно наложить категории на изображения или создать хранилище данных из помеченных изображений.

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

Используйте imread функции с помощью categorical и labeloverlay функции. Просмотр пиксельных данных непосредственно из категориальной матрицы невозможен. См. раздел Просмотр экспортированных данных пиксельной метки.

Просмотр экспортированных данных пиксельной метки из хранилища данных помеченных изображений

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

Примеры

Просмотр экспортированных данных метки пикселя

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

visiondatadir = fullfile(toolboxdir('vision'),'visiondata');
 
buildingImage = imread(fullfile(visiondatadir,'building','building1.JPG'));
buildingLabels = imread(fullfile(visiondatadir,'buildingPixelLabels','Label_1.png'));

Определение категорий для каждого значения пикселя в buildingLabels.

labelIDs = [1,2,3,4];
labelcats = ["sky" "grass" "building" "sidewalk"];

Создайте категориальную матрицу с использованием изображения и определений.

buildingLabelCats = categorical(buildingLabels,labelIDs,labelcats);

Отображение категорий, наложенных на изображение.

figure
imshow(labeloverlay(buildingImage,buildingLabelCats))

Figure contains an axes. The axes contains an object of type image.

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

Наложение данных пиксельной метки на изображение.

Задайте местоположение изображения и данных метки пикселя.

dataDir = fullfile(toolboxdir('vision'),'visiondata');
imDir = fullfile(dataDir,'building');
pxDir = fullfile(dataDir,'buildingPixelLabels');

Создание хранилища данных образа.

imds = imageDatastore(imDir);

Создание хранилища данных меток пикселей.

classNames = ["sky" "grass" "building" "sidewalk"];
pixelLabelID = [1 2 3 4];
pxds = pixelLabelDatastore(pxDir,classNames,pixelLabelID);

Считывание данных изображения и пиксельной метки. read(pxds) возвращает категориальную матрицу, C. Элемент C (i, j) в матрице является категориальной меткой, назначенной пикселю в местоположении l (i, j).

I = read(imds);
C = read(pxds);

Отображение категорий меток в C.

categories(C{1})
ans = 4x1 cell
    {'sky'     }
    {'grass'   }
    {'building'}
    {'sidewalk'}

Наложение и отображение данных пиксельной метки на изображение.

B = labeloverlay(I,C{1});
figure
imshow(B)

Figure contains an axes. The axes contains an object of type image.

См. также

Приложения

Объекты

Функции

Связанные темы