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 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Abhijit Bhattacharjee
2022-5-19
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 个评论
Abhijit Bhattacharjee
2022-5-19
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.
更多回答(1 个)
yanqi liu
2022-5-20
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 个评论
yanqi liu
2022-5-20
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Deep Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!