Hi all, how to create image datasets. I need them to train neural networks. I have about 15 to 20 images and I need to turn these images into an image dataset. Please.
23 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nurul Farhana Mohd Fadzli
el 16 de Mayo de 2022
Comentada: yanqi liu
el 20 de Mayo de 2022
I have tried to find the way to build image dataset but all of the example are using Python. But i want to use Matlab. Please help me.
0 comentarios
Respuesta aceptada
Abhijit Bhattacharjee
el 19 de Mayo de 2022
This is easy to do in MATLAB! You can put all your images into a folder and use the imageDatastore command.
imds = imageDatastore("name_of_image_folder");
2 comentarios
Abhijit Bhattacharjee
el 19 de Mayo de 2022
What you do next depends on your application. In your original question, you asked what you need to make a dataset. The code I provided should be sufficient for that.
Más respuestas (1)
yanqi liu
el 20 de Mayo de 2022
yes,sir,may be use cnn transfer to train model,such as
unzip('MerchData.zip');
% use image folder to get dataset
imds = imageDatastore('MerchData','IncludeSubfolders',true,'LabelSource','foldernames');
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');
% use Alexnet to get cnn model
alex_net = alexnet;
class_number = length(unique(imds.Labels));
alex_net_share = alex_net.Layers(1:end-3);
alex_net_add = [
fullyConnectedLayer(class_number,'Name','fc8','WeightLearnRateFactor',10, 'BiasLearnRateFactor',20)
softmaxLayer('Name','softmax')
classificationLayer('Name','classification')
];
layers_1 = [alex_net_share
alex_net_add];
% train
augimdsTrain = augmentedImageDatastore([227 227],imdsTrain);
augimdsValidation = augmentedImageDatastore([227 227],imdsValidation);
miniBatchSize = 10;
valFrequency = floor(numel(augimdsTrain.Files)/miniBatchSize);
options = trainingOptions('sgdm', ...
'MiniBatchSize',miniBatchSize, ...
'MaxEpochs',5, ...
'InitialLearnRate',3e-4, ...
'Shuffle','every-epoch', ...
'ValidationData',augimdsValidation, ...
'ValidationFrequency',valFrequency, ...
'Verbose',false);
trainedNet = trainNetwork(augimdsTrain,layers_1,options);
% test
[YPred,probs] = classify(trainedNet,augimdsValidation);
accuracy = mean(YPred == imdsValidation.Labels)
% app
idx = randperm(numel(imdsValidation.Files),4);
figure
for i = 1:4
subplot(2,2,i)
I = readimage(imdsValidation,idx(i));
imshow(I)
label = YPred(idx(i));
title(string(label) + ", " + num2str(100*max(probs(idx(i),:)),3) + "%");
end
2 comentarios
yanqi liu
el 20 de Mayo de 2022
yes,sir,let us check the folder MerchData,we can find that one subfolder is one class,so if use our data,we can just make a new subfolder, and use name as subfolder name
then put images in it,and run code
Ver también
Categorías
Más información sobre Deep Learning Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!