How can I use semantic segmentation for gray scale images?

4 vues (au cours des 30 derniers jours)
Abbas Atefi
Abbas Atefi le 2 Oct 2018
Hi,
I labeled gray scale images using Pixel Label in Image Labeler app (MATLAB 2018a). I am using semantic segmentation (https://www.mathworks.com/help/vision/examples/semantic-segmentation-using-deep-learning.html) to classify different objects in the images. When I ran this part of the code (I changed the third element in the imageSize to 1 because I am using the gray scale images):
imageSize = [144 176 1];
numClasses = numel(classes);
lgraph = segnetLayers(imageSize,numClasses,'vgg16');
I got this error:
imageSize must have three elements and the third element must be 3 when creating SegNet based off of VGG-16 or VGG-19.
Error in segnetLayers (line 170)
iCheckImageSizeHasThreeElementsForVGG(args.imageSize);
Error in semanticSegmentation (line 23)
lgraph = segnetLayers(imageSize,numClasses,'vgg16');
Does SegNet support gray scale images? If yes, how can I solve the issue?
Thank you,
Abbas
  1 commentaire
Aydin Sümer
Aydin Sümer le 30 Oct 2018
Did you solve this problem ? I'm getting same errror.

Connectez-vous pour commenter.

Réponses (1)

Andrey Gizdov
Andrey Gizdov le 27 Nov 2018
Modifié(e) : Andrey Gizdov le 27 Nov 2018
Hi,
I was having exactly the same issue as you. To solve it, I created a simple functions which checks for the number of color channels in each of image of the 'imds' ImageDatastore from your example. The function is as follows:
function [] = checkDataSize(imds)
%Check if all provided training images are in RGB format
imagesPath = [imds.Files];
for i=1:numel(imagesPath)
currentImage = readimage(imds, i);
[~, ~, colorChannels] = size(currentImage);
if colorChannels == 1 || colorChannels == 2
newImage = cat(3, currentImage, currentImage, currentImage);
imwrite(newImage, imagesPath{i});
fprintf("Found and overwrote image with a single color channel in path %s \n", imagesPath{i});
end
end
end
Probably not the best solution, but it works around the problem and did the trick for me.
Hope that helps!

Catégories

En savoir plus sur Image Data Workflows dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by