Semantic segmentation using numeric array training input

조회 수: 1 (최근 30일)
Matt J
Matt J 2019년 7월 24일
댓글: Catherine Potts 2020년 6월 2일
I have a series of P images, each MxNxC (in other words C channels) organized as a 4D numeric array X where size(X) is [M,N,C,P].
I have a corresponding series of P label maps organized as a 3D numeric array Y where size(Y) is [M,N,P].
Question: How do I convert this input to a form that can be fed to trainNetwork() in a semantic image segmentation application?
I know that trainNetwork has an input syntax,
trainedNet = trainNetwork(X,Y,layers,options)
but the documentation does not discuss the format of Y for semantic segmentation problems.

채택된 답변

Vimal Rathod
Vimal Rathod 2019년 7월 31일
In case you have images with their ground truth image files, you can create image datastore and a pixelLabelDatastore and pass it to trainNetwork function using the following command.
%imds = imageDatastore(imageDirectory); %Image DataStore
%pxds = pixelLabelDatastore(pixelatedImageDirectory,classNames,pixelLabelID); %PixelLabel DataStore
trainingData = pixelLabelImageDatastore(imds,pxds);
net = trainNetwork(trainingData,layers,opts);
Currently the support for directly using a 4D Numeric array is not present so you may have to convert the array into set of images and store then in files accordingly.
Refer to this link for more information:
  댓글 수: 1
Catherine Potts
Catherine Potts 2020년 6월 2일
I am faced with this exact same situation, can you elaborate on how to convert the array into a set of images and storing them in files so that you can use the datastore functions? The examples aren't very insightful as to what the file structures need to be in order to create an effective datastore from a 4-D array along with classification information.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by