Сегментация изображений на MATLAB с помощью Alexnet / Googlenet и т. Д. - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь сегментировать изображение, используя глубокое обучение на 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...