Face recognition by using CNN in Matlab(part 2) - code is available in the description

Опубликовано: 15 Май 2026
на канале: Shahram Taheri
1,378
19

#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)