Я пытаюсь сегментировать изображение, используя глубокое обучение на MATLAB. Я прочитал эту статью https://www.mathworks.com/help/deeplearning/ref/alexnet.html
Тем не менее, это руководство только для заданных изображений с метками в пути (имя папки).
Я хочу сделать что-то подобное: у меня есть две папки с изображениями - оригинальные изображения и изображения меток (сегментированные изображения). Как я могу использовать с alexnet или googlenet в этом случае?
Извините, у меня нет здесь кода, потому что я до сих пор не представляю, как это сделать :(
Любой, кто имеет опыт для выполнения этой задачи, пожалуйста, напишите руководство!
Вот мой пример - но ошибка не запускается:
clc;
clearvars;
close all;
dataSetDir = fullfile('C:\Data');
imageDir=fullfile(dataSetDir, 'orinals');
labelDir=fullfile(dataSetDir,'labels');
imds=imageDatastore(imageDir);
imdsl=imageDatastore(labelDir);
classNames=["skin","background"];
labelIDs=[1 0];
pxds=pixelLabelDatastore(labelDir,classNames,labelIDs);
I=read(imds);
C=read(pxds);
I=imresize(I,5);
L=imresize(uint8(C),5);
alnet = alexnet;
layers = alnet.Layers;
opts = trainingOptions('sgdm', ...
'MiniBatchSize',10, ...
'MaxEpochs',6, ...
'Shuffle','every-epoch', ...
'InitialLearnRate',1e-4, ...
'ValidationFrequency',3, ...
'Verbose',false, ...
'Plots','training-progress');
trainingData=pixelLabelImageSource(imds,pxds);
tbl=countEachLabel(trainingData);
totalNumberOfPixels=sum(tbl.PixelCount);
frequency=tbl.PixelCount/totalNumberOfPixels;
classWeights=1./frequency;
layers(end)=pixelClassificationLayer('ClassNames',tbl.Name,'ClassWeights',classWeights);
net=trainNetwork(trainingData,layers,opts);
save skincnn.mat;