Helo….. Iam working on a dataset of both pothole and non-pothole images which means two classes. I have worked on the below code for classification of the classes using image augmentation. I have got two confusion matrics has output. could any plz help me in understanding this.
clc;clear all;close all;myTrainingFolder = 'C:\Users\Admin\Desktop\Major Project\CNN_dataset2';%testingFolder = 'C:\Users\Be Happy\Documents\MATLAB\gtsrbtest';
imds = imageDatastore(myTrainingFolder,'IncludeSubfolders', true, 'LabelSource', 'foldernames');%testingSet = imageDatastore(testingFolder,'IncludeSubfolders', true, 'LabelSource', 'foldernames');
labelCount = countEachLabel(imds);numClasses = height(labelCount);numImagesTraining = numel(imds.Files);%% Create training and validation sets
[imdsTrainingSet, imdsValidationSet] = splitEachLabel(imds, 0.7, 'randomize');%% Build a simple CNN
imageSize = [227 227 3];% Specify the convolutional neural network architecture.
layers = [ imageInputLayer(imageSize) convolution2dLayer(3,8,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,16,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,32,'Padding','same') batchNormalizationLayer reluLayer fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];%% Specify training options
options = trainingOptions('sgdm', ... 'MiniBatchSize',10, ... 'MaxEpochs',6, ... 'InitialLearnRate',1e-4, ... 'Shuffle','every-epoch', ... 'ValidationData',imdsValidationSet, ... 'ValidationFrequency',3, ... 'Verbose',false, ... 'Plots','training-progress');%% Train the network
net1 = trainNetwork(imdsTrainingSet,layers,options);%% Report accuracy of baseline classifier on validation set
YPred = classify(net1,imdsValidationSet);YValidation = imdsValidationSet.Labels;imdsAccuracy = sum(YPred == YValidation)/numel(YValidation);%% Plot confusion matrix
figure, plotconfusion(YValidation,YPred)%% PART 2: Baseline Classifier with Data Augmentation
%% Create augmented image data store
% Specify data augmentation options and values/ranges
imageAugmenter = imageDataAugmenter( ... 'RandRotation',[-20,20], ... 'RandXTranslation',[-5 5], ... 'RandYTranslation',[-5 5]);% Apply transformations (using randomly picked values) and build augmented
% data store
augImds = augmentedImageDatastore(imageSize,imdsTrainingSet, ... 'DataAugmentation',imageAugmenter);% (OPTIONAL) Preview augmentation results
batchedData = preview(augImds);figure, imshow(imtile(batchedData.input)) %% Train the network.
net2 = trainNetwork(augImds,layers,options);%% Report accuracy of baseline classifier with image data augmentation
YPred = classify(net2,imdsValidationSet);YValidation = imdsValidationSet.Labels;augImdsAccuracy = sum(YPred == YValidation)/numel(YValidation);%% Plot confusion matrixfigure, plotconfusion(YValidation,YPred);
Best Answer