I'm built a unet for segmentation purpose. I trained the network and now want test the accuracy of the network. For training I randomly extracted 32x32 patches with randomPatchExtractionDatastore. For testing I split the input image into ordered 32x32, so 516x516 images was split into 256 32x32 images. Then I run the following code
testdata = imageDatastore(testDir);
predictPatchSize = [32 32];
net = load('trained_unet.mat');
net = net.net;
YPred = predict(net,testdata);
And the result it give back to me is a 4D array of 32x32x2x516.
Now I get the 32x32 because that's the size of my images. the 516 is how many images I put in and now many I get out. However the 2 is confusing me and I can't extract out the 516 images to rebuild back into a 516x516 image to compare to the grand truth mask I have to see how accurate the network is. Anyone have any idea on this problem?

 채택된 답변

Jon Cherrie
Jon Cherrie 2021년 4월 23일

0 개 추천

I think that Ypred(i,j,k,n) is the score for class k for pixel i,j of the n-th image.
Often the score is the probability or similar. So you can think of this as the probability the pixel i,j of the n-th image is in class k.

댓글 수: 1

Hmm but I'm trying to segment the image. Like it should just be giving me back just the mask of the area that suppose to be segmented?
Hmmm oh I see my mask has 2 class like either the background or the thing I'm trying ot find. So reason it has 2 probability is because there are 2 things it could be. So I would need to compare them to see which one is more likely and just set it myself?

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

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기

질문:

2021년 4월 22일

댓글:

2021년 4월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by