person-re-ranking/evaluation/utils/draw_confusion_matrix.m
zhunzhong07 ca27f37dd8 add
2017-03-22 18:48:01 +08:00

37 lines
1.0 KiB
Matlab

% calculate and draw confusion matrix
function [ap_mat, r1_mat] = draw_confusion_matrix(ap, r1, queryCam)
ap_mat = zeros(6, 6);
r1_mat = zeros(6, 6);
count1 = zeros(6, 6);
count2 = zeros(6, 6);
for n = 1:length(queryCam)
for k = 1:6
ap_mat(queryCam(n), k) = ap_mat(queryCam(n), k) + ap(n, k);
if ap(n, k) ~= 0
count1(queryCam(n), k) = count1(queryCam(n), k) + 1;
end
if r1(n, k) >= 0
r1_mat(queryCam(n), k) = r1_mat(queryCam(n), k) + r1(n, k);
count2(queryCam(n), k) = count2(queryCam(n), k) + 1;
end
end
end
num_class = 6;
ap_mat = ap_mat./count1;
name_class{1} = 'Cam1';
name_class{2} = 'Cam2';
name_class{3} = 'Cam3';
name_class{4} = 'Cam4';
name_class{5} = 'Cam5';
name_class{6} = 'Cam6';
draw_cm(ap_mat,name_class,num_class);
r1_mat = r1_mat./count2;
name_class{1} = 'Cam1';
name_class{2} = 'Cam2';
name_class{3} = 'Cam3';
name_class{4} = 'Cam4';
name_class{5} = 'Cam5';
name_class{6} = 'Cam6';
draw_cm(r1_mat,name_class,num_class);