Когда вы создаете и экспортируете пиксельные метки от Image Labeler, Video Labeler или Ground Truth Labeler (требует Automated Driving Toolbox™), приложение, два набора данных сохранены.
Папка под названием PixelLabelData
, который содержит файлы PNG пиксельной информации о метке. Эти метки закодированы как индексированные значения.
MAT-файл, содержащий объект groundTruth
, который хранит соответствия между фреймами изображения или кадрами видео и файлами PNG. Объект также содержит любые отмеченные прямоугольники или ломаные линии.
Файлы PNG в папке PixelLabelData
хранятся как категориальная матрица. Матрицы categorical
содержат значения, присвоенные категориям. Категориальный тип данных. Категориальная матрица обеспечивает эффективное устройство хранения данных и удобную манипуляцию нечисловых данных, также поддерживая понятные имена для значений. Эти матрицы являются естественными представлениями для семантической наземной истины сегментации, где каждый пиксель является одной из предопределенной категории меток.
Объектно-ориентированная память groundTruth
путь к папке и имя для пикселя маркирует папку данных. Наземное свойство LabelData
истины этого объекта содержит информацию в столбце 'PixelLabelData'
. Если вы изменяете местоположение файла пиксельных данных, необходимо также обновить сопутствующую информацию в объекте groundTruth
. Можно использовать функцию changeFilePaths
, чтобы обновить информацию.
Магазин приложений этикетировочной машины семантическая наземная истина сегментации как файлы PNG без потерь, со значением uint8
, представляющим каждую категорию. Приложение использует функцию categorical
, чтобы сопоставить значения uint8
к категории. Чтобы просмотреть ваши пиксельные данные, можно или наложить категории на изображениях или создать datastore из маркированных изображений.
Используйте функцию imread
с функции labeloverlay
и categorical
. Вы не можете просмотреть пиксельные данные непосредственно из категориальной матрицы. Вид на море Экспортировал Пиксельные Данные о Метке.
Используйте функцию pixelLabelDatastore
, чтобы создать datastore из набора маркированных изображений. Используйте функцию 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))
Наложите пиксельные данные о метке по изображению.
Установите местоположение изображения и пиксельных данных о метке.
dataDir = fullfile(toolboxdir('vision'),'visiondata'); imDir = fullfile(dataDir,'building'); pxDir = fullfile(dataDir,'buildingPixelLabels');
Создайте datastore изображений и пиксельный datastore метки
imds = imageDatastore(imDir); classNames = ["sky" "grass" "building" "sidewalk"]; pixelLabelID = [1 2 3 4]; pxds = pixelLabelDatastore(pxDir,classNames,pixelLabelID);
Считайте изображение и пиксельные данные о метке. read(pxs)
возвращает категориальную матрицу, C
. Элемент C (i, j) в матрице является категориальной меткой, присвоенной пикселю в местоположении l (i, j).
I = read(imds); C = read(pxds);
Отобразите категории метки в C
.
categories(C)
ans = 4x1 cell array
{'sky' }
{'grass' }
{'building'}
{'sidewalk'}
Наложите и отобразите пиксельные данные о метке на изображение.
B = labeloverlay(I,C); figure imshow(B)