我已经解决了总共32个类别的一个图像识别问题。我得到了结果并计算了它的平均精度。我需要绘制混淆矩阵。
答案 0 :(得分:1)
我正在研究YOLOv2,并为检测网络创建了一个混淆矩阵。希望这会有所帮助:)
testObjects是真实标签,predLabel是预测标签
TestData是imdsTest的imageDatastore()
testObjects = testData.UnderlyingDatastores{1, 1}.Files ; %'C:\Users\admin\Desktop\Img_Data\Flower1\Flower101.jpg'
testObjects = erase(testObjects,fullfile(pwd,imgFolderName)); %'\Flower1\Flower101.jpg'
testObjects = categorical(extractBetween(testObjects, "\","\")); % Flower1 - array
predLabels = zeros(2,1);
predLabels = categorical(predLabels); % Prelocation
for iPred = 1:length(testObjects)
[~, idxx] = max(cell2mat(detectionResults.Scores(iPred))); % max of all the bounding box scores
multiLabels = detectionResults.Labels{iPred,1}; % find label of max score
if isempty(multiLabels) == 1
predLabels(iPred,1) = {'NaN'};
predLabels(iPred,1) = standardizeMissing(predLabels(iPred,1),{'NaN'});
else
predLabels(iPred,1) = (multiLabels(idxx,1));
end
end
predLabels = removecats(predLabels);
plotconfusion (testObjects,predLabels) %confusionchart(testAsts,predLabels)