Problem with RCNN Detector

1 view (last 30 days)
Abdussalam Elhanashi
Abdussalam Elhanashi on 22 Aug 2019
Commented: Dinesh Yadav on 26 Aug 2019
Hi Guys
I have a problem with RCNN detector as i am trying to train the detector for smoke images which is basiclly with layers Herein the code :-
any solution
Thank you in advance
load('gTruth.mat')
load('layers')
smokedetection = selectLabels(gTruth,'smokealarm');
if isfolder(fullfile('TrainingData'))
cd TrainingData
else
mkdir TrainingData
end
addpath('TrainingData');
trainingData = objectDetectorTrainingData(smokedetection,'SamplingFactor',4,...
'WriteLocation','TrainingData');
layers = [
imageInputLayer([32 32 3],"Name","imageinput")
convolution2dLayer([5 5],32,"Name","conv","BiasLearnRateFactor",2,"Padding",[2 2 2 2],"WeightsInitializer","narrow-normal")
maxPooling2dLayer([3 3],"Name","maxpool","Stride",[2 2])
reluLayer("Name","relu")
convolution2dLayer([5 5],32,"Name","conv_1","BiasLearnRateFactor",2,"Padding",[2 2 2 2],"WeightsInitializer","narrow-normal")
reluLayer("Name","relu_1")
averagePooling2dLayer([3 3],"Name","avgpool","Stride",[2 2])
convolution2dLayer([5 5],64,"Name","conv_2","BiasLearnRateFactor",2,"Padding",[2 2 2 2],"WeightsInitializer","narrow-normal")
reluLayer("Name","relu_2")
averagePooling2dLayer([3 3],"Name","avgpool_1","Stride",[2 2])
fullyConnectedLayer(64,"Name","fc","BiasLearnRateFactor",2,"WeightsInitializer","narrow-normal")
reluLayer("Name","relu_3")
fullyConnectedLayer(2,"Name","fc_rcnn","BiasL2Factor",1,"BiasLearnRateFactor",10,"WeightLearnRateFactor",20,"WeightsInitializer","narrow-normal")
softmaxLayer("Name","softmax")
classificationLayer("Name","classoutput")];
options = trainingOptions('sgdm', ...
'MiniBatchSize', 32, ...
'InitialLearnRate', 1e-6, ...
'MaxEpochs', 10);
imds=trainingData
detector = trainRCNNObjectDetector(trainingData, layers, options, 'NegativeOverlapRange', [0 0.3]);
save('Detector.mat','detector');
and the errors are :-
Error using trainNetwork (line 165)
The class names of layer 13 must match the class names of the training data. The training data class names are given by
categories(Y), where Y are the training data labels.
Error in rcnnObjectDetector.train (line 234)
[net, info] = trainNetwork(dispatcher, layers, opts);
Error in trainRCNNObjectDetector (line 278)
[detector, ~, info] = rcnnObjectDetector.train(trainingData, lgraphOrLayers, options, params);
Error in TrainingsmokedetectionwithRCNN (line 22)
detector = trainRCNNObjectDetector(trainingData, layers, options, 'NegativeOverlapRange', [0 0.3]);
  1 Comment
Dinesh Yadav
Dinesh Yadav on 26 Aug 2019
"The class names of layer 13 must match the class names of the training data. The training data class names are given by categories(Y), where Y are the training data labels". The error you displayed is self explanatory. Kindly output and compare the training data class labels with categories(Y) word to word i.e. Spacing, Capitals etc.

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!