Modifying unetLayers-architecture for distance map regression

3 次查看(过去 30 天)
Hello!
I want to modify the unetLayers-architecture (with encoderDepth = 4 and numClasses = 2) in order to be able to perform image-to-image regression where the input is a grayscale image and the output is a distance map (in grayscale) of the binary mask of the segmented grayscale image. I've removed the final two layers in the architecture by stating:
lgraph = removeLayers(lgraph, 'Softmax-Layer');
lgraph = removeLayers(lgraph,'Segmentation-Layer');
and added a regressionLayer for getting the regression output according to:
lgraph = lgraph.addLayers(regressionLayer('name','regressionLayer'));
lgraph = lgraph.connectLayers('Final-ConvolutionLayer', 'regressionLayer');
However, my knowledge of the thought behind the final layers of the UNet-architecture is limited. The final convolutional layer outputs a 128x128x2 output (since my input size is 128x128 and the number of classes is stated as 2). How can I optimally modify this structure (and especially the final convolutional layer) for a regression problem? Would adding a fully connected layer be helpful?

采纳的回答

Srivardhan Gadila
Srivardhan Gadila 2020-3-11
In addition to above replace the 'Final-ConvolutionLayer' with new convolution2dLayer having filter size 1 and number of filters 1 as follows:
imageSize = [128 128 1];
numClasses = 2;
encoderDepth = 4;
lgraph = unetLayers(imageSize,numClasses,'EncoderDepth',encoderDepth);
lgraph = replaceLayer(lgraph,'Final-ConvolutionLayer',convolution2dLayer(1,1,'Name','Final-ConvolutionLayer'));
lgraph = replaceLayer(lgraph,'Segmentation-Layer',regressionLayer('name','regressionLayer'));
lgraph = removeLayers(lgraph, 'Softmax-Layer');
lgraph = lgraph.connectLayers('Final-ConvolutionLayer', 'regressionLayer');
analyzeNetwork(lgraph)
  1 个评论
Julius Å
Julius Å 2020-3-11
I actually did this myself before your answer and it worked out very well.
Thank you for answering anyways!

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by