Updating 300VW baseline results by running the baselines from MTCNN detections.

This commit is contained in:
Tadas Baltrusaitis
2017-06-19 11:38:13 -04:00
parent e8d1372235
commit 44ce6beb8d
36 changed files with 89 additions and 20 deletions

2
.gitignore vendored
View File

@@ -95,3 +95,5 @@ matlab_version/experiments_300VW/CLNF_res_2/
matlab_version/experiments_300VW/CECLM_res_menpo/
matlab_version/experiments_300VW/CLNF_res_general/
matlab_version/experiments_300VW/CECLM_res_general/
matlab_version/experiments_300VW/CECLM_res_general_mtcnn/
matlab_version/experiments_300VW/CLNF_res_general_mtcnn/

View File

@@ -3,9 +3,13 @@ addpath(genpath('../'));
output_dir = './CECLM_res_general/';
if(~exist(output_dir, 'dir'))
mkdir(output_dir)
end
%% select database and load bb initializations
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
bb_root = '../..//matlab_runners/Feature Point Experiments/300VW_face_dets/';
bb_root = './300VW_dets_mtcnn/';
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);

View File

@@ -5,7 +5,7 @@ output_dir = './CECLM_res_menpo/';
%% select database and load bb initializations
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
bb_root = '../..//matlab_runners/Feature Point Experiments/300VW_face_dets/';
bb_root = './300VW_dets_mtcnn/';
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);

View File

@@ -5,7 +5,7 @@ output_dir = './CLM_res/';
%% select database and load bb initializations
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
bb_root = '../..//matlab_runners/Feature Point Experiments/300VW_face_dets/';
bb_root = './300VW_dets_mtcnn/';
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);

View File

@@ -3,9 +3,13 @@ addpath(genpath('../'));
output_dir = './CLNF_res_general/';
if(~exist(output_dir, 'dir'))
mkdir(output_dir)
end
%% select database and load bb initializations
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
bb_root = '../..//matlab_runners/Feature Point Experiments/300VW_face_dets/';
bb_root = './300VW_dets_mtcnn/';
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);

View File

@@ -4,6 +4,7 @@ file_out = fopen('results/300VW_66.txt', 'w');
load('results/ceclm_errors.mat');
load('results/cfss_errors.mat');
load('results/clnf_errors.mat');
load('results/cfan_errors.mat');
load('results/drmf_errors.mat');
load('results/iccr_errors.mat');
load('results/pocr_errors.mat');
@@ -14,6 +15,7 @@ fprintf(file_out, 'Method\tcat 1\tcat 2\tcat3\n');
fprintf(file_out, 'CLNF\t%.2f\t%.2f\t%.2f\n', median(clnf_error_66_cat_1)*100, median(clnf_error_66_cat_2)*100, median(clnf_error_66_cat_3)*100);
fprintf(file_out, 'CFSS\t%.2f\t%.2f\t%.2f\n', median(cfss_error_66_cat_1)*100, median(cfss_error_66_cat_2)*100, median(cfss_error_66_cat_3)*100);
fprintf(file_out, 'ICCR\t%.2f\t%.2f\t%.2f\n', median(iccr_error_66_cat_1)*100, median(iccr_error_66_cat_2)*100, median(iccr_error_66_cat_3)*100);
fprintf(file_out, 'CFAN\t%.2f\t%.2f\t%.2f\n', median(cfan_error_66_cat_1)*100, median(cfan_error_66_cat_2)*100, median(cfan_error_66_cat_3)*100);
fprintf(file_out, '------------------------------\n');
fprintf(file_out, 'CE-CLM\t%.2f\t%.2f\t%.2f\n', median(ceclm_error_66_cat_1)*100, median(ceclm_error_66_cat_2)*100, median(ceclm_error_66_cat_3)*100);
fclose(file_out);
@@ -28,6 +30,7 @@ fprintf(file_out, 'CFSS\t%.2f\t%.2f\t%.2f\n', median(cfss_error_49_cat_1)*100, m
fprintf(file_out, 'ICCR\t%.2f\t%.2f\t%.2f\n', median(iccr_error_49_cat_1)*100, median(iccr_error_49_cat_2)*100, median(iccr_error_49_cat_3)*100);
fprintf(file_out, 'DRMF\t%.2f\t%.2f\t%.2f\n', median(drmf_error_49_cat_1)*100, median(drmf_error_49_cat_2)*100, median(drmf_error_49_cat_3)*100);
fprintf(file_out, 'PO-CR\t%.2f\t%.2f\t%.2f\n', median(pocr_error_49_cat_1)*100, median(pocr_error_49_cat_2)*100, median(pocr_error_49_cat_3)*100);
fprintf(file_out, 'CFAN\t%.2f\t%.2f\t%.2f\n', median(cfan_error_49_cat_1)*100, median(cfan_error_49_cat_2)*100, median(cfan_error_49_cat_3)*100);
fprintf(file_out, '------------------------------\n');
fprintf(file_out, 'CE-CLM\t%.2f\t%.2f\t%.2f\n', median(ceclm_error_49_cat_1)*100, median(ceclm_error_49_cat_2)*100, median(ceclm_error_49_cat_3)*100);
fclose(file_out);

View File

@@ -25,6 +25,10 @@ load('results/clnf_errors.mat');
[error_x, error_y] = cummErrorCurve(clnf_error_49_cat_1);
plot(error_x, error_y, 'DisplayName', 'CLNF', 'LineWidth',line_width);
load('results/cfan_errors.mat');
[error_x, error_y] = cummErrorCurve(cfan_error_49_cat_1);
plot(error_x, error_y, 'DisplayName', 'CFAN', 'LineWidth',line_width);
load('results/iccr_errors.mat');
[error_x, error_y] = cummErrorCurve(iccr_error_49_cat_1);
plot(error_x, error_y, 'DisplayName', 'iCCR', 'LineWidth',line_width);
@@ -80,6 +84,10 @@ load('results/clnf_errors.mat');
[error_x, error_y] = cummErrorCurve(clnf_error_49_cat_2);
plot(error_x, error_y, 'DisplayName', 'CLNF', 'LineWidth',line_width);
load('results/cfan_errors.mat');
[error_x, error_y] = cummErrorCurve(cfan_error_49_cat_2);
plot(error_x, error_y, 'DisplayName', 'CFAN', 'LineWidth',line_width);
load('results/iccr_errors.mat');
[error_x, error_y] = cummErrorCurve(iccr_error_49_cat_2);
plot(error_x, error_y, 'DisplayName', 'iCCR', 'LineWidth',line_width);
@@ -135,6 +143,10 @@ load('results/clnf_errors.mat');
[error_x, error_y] = cummErrorCurve(clnf_error_49_cat_3);
plot(error_x, error_y, 'DisplayName', 'CLNF', 'LineWidth',line_width);
load('results/cfan_errors.mat');
[error_x, error_y] = cummErrorCurve(cfan_error_49_cat_3);
plot(error_x, error_y, 'DisplayName', 'CFAN', 'LineWidth',line_width);
load('results/iccr_errors.mat');
[error_x, error_y] = cummErrorCurve(iccr_error_49_cat_3);
plot(error_x, error_y, 'DisplayName', 'iCCR', 'LineWidth',line_width);

View File

@@ -25,6 +25,10 @@ load('results/clnf_errors.mat');
[error_x, error_y] = cummErrorCurve(clnf_error_66_cat_1);
plot(error_x, error_y, 'DisplayName', 'CLNF', 'LineWidth',line_width);
load('results/cfan_errors.mat');
[error_x, error_y] = cummErrorCurve(cfan_error_66_cat_1);
plot(error_x, error_y, 'DisplayName', 'CFAN', 'LineWidth',line_width);
load('results/iccr_errors.mat');
[error_x, error_y] = cummErrorCurve(iccr_error_66_cat_1);
plot(error_x, error_y, 'DisplayName', 'iCCR', 'LineWidth',line_width);
@@ -72,6 +76,10 @@ load('results/clnf_errors.mat');
[error_x, error_y] = cummErrorCurve(clnf_error_66_cat_2);
plot(error_x, error_y, 'DisplayName', 'CLNF', 'LineWidth',line_width);
load('results/cfan_errors.mat');
[error_x, error_y] = cummErrorCurve(cfan_error_66_cat_2);
plot(error_x, error_y, 'DisplayName', 'CFAN', 'LineWidth',line_width);
load('results/iccr_errors.mat');
[error_x, error_y] = cummErrorCurve(iccr_error_66_cat_2);
plot(error_x, error_y, 'DisplayName', 'iCCR', 'LineWidth',line_width);
@@ -119,6 +127,10 @@ load('results/clnf_errors.mat');
[error_x, error_y] = cummErrorCurve(clnf_error_66_cat_3);
plot(error_x, error_y, 'DisplayName', 'CLNF', 'LineWidth',line_width);
load('results/cfan_errors.mat');
[error_x, error_y] = cummErrorCurve(cfan_error_66_cat_3);
plot(error_x, error_y, 'DisplayName', 'CFAN', 'LineWidth',line_width);
load('results/iccr_errors.mat');
[error_x, error_y] = cummErrorCurve(iccr_error_66_cat_3);
plot(error_x, error_y, 'DisplayName', 'iCCR', 'LineWidth',line_width);

View File

@@ -1,10 +1,12 @@
clear
pocr_dir = 'D:\Dropbox\Dropbox\AAM\3rd party models\PO-CR\300VW/';
pocr_dir = 'D:\Dropbox\Dropbox\AAM\3rd party models\PO-CR\300VW_mtcnn/';
cfss_dir = 'C:\Users\tbaltrus\Documents\300W-CFSS/';
% cfss_dir = 'D:\Dropbox\Dropbox\AAM\3rd party models\CVPR15-CFSS-master\CVPR15-CFSS-master\300VW_mtcnn/';
iccr_dir = 'D:\demo_iccr\iCCR\iCCR\out_300VW/';
chehra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\chehra_out/';
sdm_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\sdm_out/';
chehra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\chehra_out_mtcnn/';
sdm_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\sdm_out_mtcnn/';
cfan_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\CFAN_mtcnn/';
%% Gather predictions and ground truth
cat_1 = [ 114, 124, 125, 126, 150, 158, 401, 402, 505, 506, 507, 508, 509, 510, 511, 514, 515, 518, 519, 520, 521, 522, 524, 525, 537, 538, 540, 541, 546, 547, 548];
@@ -16,6 +18,7 @@ cat_3 = [410, 411, 516, 517, 526, 528, 529, 530, 531, 533, 557, 558, 559, 562];
cfss_preds = zeros(68,2,0);
iccr_preds = zeros(66,2,0);
clnf_preds = zeros(68,2,0);
cfan_preds = zeros(68,2,0);
sdm_preds = zeros(49,2,0);
drmf_preds = zeros(49,2,0);
pocr_preds = zeros(49,2,0);
@@ -31,6 +34,9 @@ for i=cat_1
load([cfss_dir, num2str(i)]);
cfss_preds = cat(3, cfss_preds, preds);
load([cfan_dir, num2str(i)]);
cfan_preds = cat(3, cfan_preds, preds);
load([iccr_dir, num2str(i)]);
iccr_preds = cat(3, iccr_preds, pred_landmarks);
@@ -45,20 +51,24 @@ end
labels = labels([1:60,62:64,66:end],:,:);
clnf_preds = clnf_preds([1:60,62:64,66:end],:,:);
cfss_preds = cfss_preds([1:60,62:64,66:end],:,:);
cfan_preds = cfan_preds([1:60,62:64,66:end],:,:);
clnf_error_66_cat_1 = compute_error(labels, clnf_preds);
cfss_error_66_cat_1 = compute_error(labels, cfss_preds - 0.5);
cfan_error_66_cat_1 = compute_error(labels, cfan_preds - 1.0);
iccr_error_66_cat_1 = compute_error(labels, iccr_preds);
% Do the 49 point version
labels = labels(18:end,:,:);
clnf_preds = clnf_preds(18:end,:,:);
cfan_preds = cfan_preds(18:end,:,:);
cfss_preds = cfss_preds(18:end,:,:);
iccr_preds = iccr_preds(18:end,:,:);
clnf_error_49_cat_1 = compute_error(labels, clnf_preds);
cfss_error_49_cat_1 = compute_error(labels, cfss_preds - 0.5);
cfan_error_49_cat_1 = compute_error(labels, cfan_preds - 1.0);
iccr_error_49_cat_1 = compute_error(labels, iccr_preds);
drmf_error_49_cat_1 = compute_error(labels, drmf_preds-0.5);
pocr_error_49_cat_1 = compute_error(labels, pocr_preds);
@@ -68,6 +78,8 @@ pocr_error_49_cat_1 = compute_error(labels, pocr_preds);
cfss_preds = zeros(68,2,0);
iccr_preds = zeros(66,2,0);
clnf_preds = zeros(68,2,0);
cfan_preds = zeros(68,2,0);
sdm_preds = zeros(49,2,0);
drmf_preds = zeros(49,2,0);
pocr_preds = zeros(49,2,0);
@@ -82,12 +94,15 @@ for i=cat_2
load([cfss_dir, num2str(i)]);
cfss_preds = cat(3, cfss_preds, preds);
load([cfan_dir, num2str(i)]);
cfan_preds = cat(3, cfan_preds, preds);
load([iccr_dir, num2str(i)]);
iccr_preds = cat(3, iccr_preds, pred_landmarks);
load([chehra_dir, num2str(i)]);
drmf_preds = cat(3, drmf_preds, preds);
drmf_preds = cat(3, drmf_preds, preds);
load([pocr_dir, num2str(i)]);
pocr_preds = cat(3, pocr_preds, preds);
end
@@ -96,20 +111,24 @@ end
labels = labels([1:60,62:64,66:end],:,:);
clnf_preds = clnf_preds([1:60,62:64,66:end],:,:);
cfss_preds = cfss_preds([1:60,62:64,66:end],:,:);
cfan_preds = cfan_preds([1:60,62:64,66:end],:,:);
clnf_error_66_cat_2 = compute_error(labels, clnf_preds);
cfss_error_66_cat_2 = compute_error(labels, cfss_preds - 0.5);
cfan_error_66_cat_2 = compute_error(labels, cfan_preds - 1.0);
iccr_error_66_cat_2 = compute_error(labels, iccr_preds);
% Do the 49 point version
labels = labels(18:end,:,:);
clnf_preds = clnf_preds(18:end,:,:);
cfan_preds = cfan_preds(18:end,:,:);
cfss_preds = cfss_preds(18:end,:,:);
iccr_preds = iccr_preds(18:end,:,:);
clnf_error_49_cat_2 = compute_error(labels, clnf_preds);
cfss_error_49_cat_2 = compute_error(labels, cfss_preds - 0.5);
cfan_error_49_cat_2 = compute_error(labels, cfan_preds - 1.0);
iccr_error_49_cat_2 = compute_error(labels, iccr_preds);
drmf_error_49_cat_2 = compute_error(labels, drmf_preds-0.5);
pocr_error_49_cat_2 = compute_error(labels, pocr_preds);
@@ -118,6 +137,8 @@ pocr_error_49_cat_2 = compute_error(labels, pocr_preds);
cfss_preds = zeros(68,2,0);
iccr_preds = zeros(66,2,0);
clnf_preds = zeros(68,2,0);
cfan_preds = zeros(68,2,0);
sdm_preds = zeros(49,2,0);
drmf_preds = zeros(49,2,0);
pocr_preds = zeros(49,2,0);
@@ -132,34 +153,41 @@ for i=cat_3
load([cfss_dir, num2str(i)]);
cfss_preds = cat(3, cfss_preds, preds);
load([cfan_dir, num2str(i)]);
cfan_preds = cat(3, cfan_preds, preds);
load([iccr_dir, num2str(i)]);
iccr_preds = cat(3, iccr_preds, pred_landmarks);
iccr_preds = cat(3, iccr_preds, pred_landmarks);
load([chehra_dir, num2str(i)]);
drmf_preds = cat(3, drmf_preds, preds);
drmf_preds = cat(3, drmf_preds, preds);
load([pocr_dir, num2str(i)]);
pocr_preds = cat(3, pocr_preds, preds);
pocr_preds = cat(3, pocr_preds, preds);
end
% As ICCR uses only 66 landmarks adapt all the others to the same format
labels = labels([1:60,62:64,66:end],:,:);
clnf_preds = clnf_preds([1:60,62:64,66:end],:,:);
cfss_preds = cfss_preds([1:60,62:64,66:end],:,:);
cfan_preds = cfan_preds([1:60,62:64,66:end],:,:);
clnf_error_66_cat_3 = compute_error(labels, clnf_preds);
cfss_error_66_cat_3 = compute_error(labels, cfss_preds - 0.5);
cfan_error_66_cat_3 = compute_error(labels, cfan_preds - 1.0);
iccr_error_66_cat_3 = compute_error(labels, iccr_preds);
% Do the 49 point version
labels = labels(18:end,:,:);
clnf_preds = clnf_preds(18:end,:,:);
cfan_preds = cfan_preds(18:end,:,:);
cfss_preds = cfss_preds(18:end,:,:);
iccr_preds = iccr_preds(18:end,:,:);
clnf_error_49_cat_3 = compute_error(labels, clnf_preds);
cfss_error_49_cat_3 = compute_error(labels, cfss_preds - 0.5);
cfan_error_49_cat_3 = compute_error(labels, cfan_preds - 1.0);
iccr_error_49_cat_3 = compute_error(labels, iccr_preds);
drmf_error_49_cat_3 = compute_error(labels, drmf_preds-0.5);
pocr_error_49_cat_3 = compute_error(labels, pocr_preds);
@@ -171,6 +199,8 @@ save('results/cfss_errors', 'cfss_error_66_cat_1', 'cfss_error_66_cat_2', 'cfss_
'cfss_error_49_cat_1', 'cfss_error_49_cat_2', 'cfss_error_49_cat_3');
save('results/iccr_errors', 'iccr_error_66_cat_1', 'iccr_error_66_cat_2', 'iccr_error_66_cat_3',...
'iccr_error_49_cat_1', 'iccr_error_49_cat_2', 'iccr_error_49_cat_3');
save('results/cfan_errors', 'cfan_error_66_cat_1', 'cfan_error_66_cat_2', 'cfan_error_66_cat_3',...
'cfan_error_49_cat_1', 'cfan_error_49_cat_2', 'cfan_error_49_cat_3');
save('results/drmf_errors', 'drmf_error_49_cat_1', 'drmf_error_49_cat_2', 'drmf_error_49_cat_3');
save('results/pocr_errors', 'pocr_error_49_cat_1', 'pocr_error_49_cat_2', 'pocr_error_49_cat_3');

View File

@@ -1,10 +1,11 @@
Errors without outline (49 points)
------------------------------
Method cat 1 cat 2 cat3
CLNF 3.01 3.40 4.06
CLNF 3.02 3.34 4.05
CFSS 2.82 3.09 3.36
ICCR 2.68 2.94 3.49
DRMF 3.33 3.57 5.44
PO-CR 2.95 3.10 3.69
DRMF 3.33 3.55 5.27
PO-CR 2.95 3.08 3.68
CFAN 3.17 3.72 4.94
------------------------------
CE-CLM 2.43 2.75 3.18
CE-CLM 2.44 2.70 3.19

View File

@@ -1,8 +1,9 @@
Errors with outline (66 points)
------------------------------
Method cat 1 cat 2 cat3
CLNF 4.19 4.15 5.06
CLNF 4.21 4.08 5.05
CFSS 3.42 3.66 4.22
ICCR 3.37 3.45 4.46
CFAN 3.93 4.43 6.39
------------------------------
CE-CLM 3.36 3.49 4.22
CE-CLM 3.37 3.45 4.24

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 173 KiB