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.
    14 次查看(过去 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!




