#matlab #cnn #facerecognition #convolutional #neuralnetwork
Face recognition by using CNN in Matlab(part 1) : • Face recognition by using CNN in Matlab(pa...
Dataset: ORL dataset(AT&T Dataset): https://paperswithcode.com/dataset/orl
%Matlab code - CNN for Face Recognition
faceDatasetPath = fullfile('c:','FaceDataset');
imds = imageDatastore('E:\Animal\Image', ...
'IncludeSubfolders',true,'LabelSource','foldernames');
figure;
perm = randperm(400,20);
for i = 1:20
subplot(4,5,i);
imshow(imds.Files{perm(i)});
end
numTrainFiles = 7;
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.8,'randomize');
layers = [
imageInputLayer([256 256 3])
convolution2dLayer(3,12,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(3,20,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(3,64,'Padding','same')
batchNormalizationLayer
reluLayer
fullyConnectedLayer(7)
softmaxLayer
classificationLayer];
options = trainingOptions('sgdm', ...
'InitialLearnRate',0.001, ...
'MaxEpochs',20, ...
'Shuffle','every-epoch', ...
'ValidationData',imdsValidation, ...
'ValidationFrequency',3, ...
'Verbose',false, ...
'Plots','training-progress');
net = trainNetwork(imdsTrain,layers,options);
YPred = classify(net,imdsValidation);
YValidation = imdsValidation.Labels;
accuracy = sum(YPred == YValidation)/numel(YValidation)