Problem with evaluate(imagecategoryclassifier) function from Vision System tool box
2 views (last 30 days)
Hello Matlab communtiy, I have a quich question to the evaluate(imagecategoryclassifier) function in matlab. I tried the given sample code, but it seems to missmatch some predicted labels considering the calculated scores. In the help it states that the predicted label corresponds to the highest value given by the score. After I run the example multiple times, it seemed to missmatch at least two labels. Here is the code I ran and the output it produced:
setDir = fullfile(toolboxdir('vision'),'visiondata','imageSets'); imgSets = imageSet(setDir, 'recursive');
[trainingSets, testSets] = partition(imgSets, 0.3, 'randomize');
bag = bagOfFeatures(trainingSets,'Verbose',false);
categoryClassifier = trainImageCategoryClassifier(trainingSets, bag);
[confMat,knownLabelIdx,predictedLabelIdx,score] = evaluate(categoryClassifier, testSets);
So here I don't understand why the second predicted label is 1 and not 2. The rest makes sense to me.
Birju Patel on 30 Sep 2015
Edited: Birju Patel on 26 Oct 2015
Thanks for reporting this issue. This is a bug. The predicted labels are correct, but the scores are not.
I can create a patched version for you. What release are you using?
EDIT: patched version for 15a attached. You'll need to put the patched version of the file here:
Also added patched version for 15b, which has _15b appended to it (imageCategoryClassifier_15b.m). You'll need to download this file and remove the "_15b" from the file name before copying it over to the toolbox directory.