При создании и экспорте пиксельных меток из приложения Image Labeler, Video Labeler или Ground Truth Labeler (требует Automated Driving Toolbox™), приложение, сохраняются два набора данных.
Папка под названием PixelLabelData
, который содержит файлы PNG пиксельной информации о метке. Эти метки закодированы как индексированные значения.
MAT-файл, содержащий данные о пиксельных метках, наряду с любыми другими данными о метке. Эти данные хранятся в groundTruth
объект, или, если вы используете приложение Ground Truth Labeler, groundTruthMultisignal
объект. Для данных о пиксельных метках объект также хранит соответствия между фреймами изображения или видеокадрами и файлами PNG.
Файлы PNG в PixelLabelData
папка хранится как категориальная матрица. categorical
матрицы содержат значения, присвоенные категориям. Категориальный тип данных. Категориальная матрица обеспечивает эффективное устройство хранения данных и удобную манипуляцию нечисловых данных, также обеспечивая понятные имена для значений. Эти матрицы являются естественными представлениями для основной истины семантической сегментации, где каждый пиксель является одной из предопределенной категории меток.
Объектно-ориентированная память основной истины путь к папке и имя для папки данных о пиксельных метках. LabelData
свойство groundTruth
объект или ROILabelData
свойство groundTruthMultisignal
объект содержит информацию в 'PixelLabelData'
столбец. Если вы изменяете местоположение файла пиксельных данных, необходимо также обновить сопутствующую информацию в объекте основной истины. Можно использовать changeFilePaths
функционируйте, чтобы обновить информацию.
Магазин приложений этикетировочной машины основная истина семантической сегментации как файлы PNG без потерь, с uint8
значение, представляющее каждую категорию. Приложение использует categorical
функционируйте, чтобы сопоставить uint8
значения к категории. Чтобы просмотреть ваши пиксельные данные, можно или наложить категории на изображениях или создать datastore из помеченных изображений.
Используйте imread
функция с categorical
и labeloverlay
функции. Вы не можете просмотреть пиксельные данные непосредственно из категориальной матрицы. Вид на море Экспортируемые Данные о пиксельных метках.
Используйте 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 изображений.
imds = imageDatastore(imDir);
Создайте пиксельный datastore метки.
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)