MATLAB Answers

augmentedImageDatastore center crop does not return datastore with labels

28 views (last 30 days)
OJ27
OJ27 on 14 May 2020
Edited: Prasobhkumar P. P. on 5 Dec 2020
I have an image datastore which includes images and labels. Before feeding to the network, I want to crop the images at the center. However, I noticed that imdsTrain_crop does not have label information as imdsTrain does.
imdsTrain_crop = augmentedImageDatastore([28,28],imdsTrain,'OutputSizeMode','centercrop');
Notice below how the ImageDatastore object has Labels but the augmentedImageDatastore does not. Is there any way to work around this?
I know that augmentedImageDatastore.Files will have information of the filepath for each image, which I can read and then label accoordingly, but this seems troublesome when there could be a simpler solution.

Answers (2)

Sai Bhargav Avula
Sai Bhargav Avula on 26 May 2020
Edited: Sai Bhargav Avula on 26 May 2020
Hi,
One way to address this is to use pixelLabelDatastore for loading the labels
pixelLabelImageDatastore to create the datastore for training.
imdsTrain = imageDataStore(imageDir);
pxdsTrain = pixelLabelDatastore(labelDir,ClassNames,labelIds);
trainingData = pixelLabelImageDatastore(imds,pxds,'OutputSizeMode','centercrop','OutputSize',[28,28]);
or transform function over the datastores.
Hope this helps!
  4 Comments
M J
M J on 15 Oct 2020
Hello!
I have a function that creates a random subset of n images (according to a set of rules) from the original training dataset. Basically, each random subset has the same size as the miniBatch, so I would then have one random subset (batch) passed in the network at every iteration.
Can I achieve this by transforming the datastore and using this type of command ?
fds = fileDatastore(TrainingImages.Files,'ReadFcn',@myRandomSubsetFunction)
I am not sure about how to retrieve the labels in this new datastore and how to pass it to the "trainNetwork" function. I would greatly appreciate your help, if possible. Thank you in advance.

Sign in to comment.


Prasobhkumar P. P.
Prasobhkumar P. P. on 5 Dec 2020
Edited: Prasobhkumar P. P. on 5 Dec 2020
Labels of augmentedImageDatastore is is inside the output (see info).
[data,info]=read(augimdsTrain)
I got this info from below post

Community Treasure Hunt

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

Start Hunting!