sustaining_gazes/matlab_version/experiments_iccv_300w/Display_clnf_results.m

182 lines
5.3 KiB
Matlab

clear
%%
scrsz = get(0,'ScreenSize');
figure1 = figure('Position',[20 50 3*scrsz(3)/4 0.9*scrsz(4)]);
set(figure1,'Units','Inches');
pos = get(figure1,'Position');
set(figure1,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)])
% Create axes
axes1 = axes('Parent',figure1,'FontSize',40,'FontName','Helvetica');
line_width = 6;
hold on;
load('results/intraface_wild_resize.mat');
labels_all = labels_all(18:end,:,:);
shapes_all = shapes_all(18:end,:,:);
intraface_wild_error = compute_error(labels_all, shapes_all);
% removing faces that were not detected by intraface for fairness
detected = intraface_wild_error < 1;
load('results/results_wild_clnf.mat');
labels = experiments.labels([1:60,62:64,66:end],:,detected);
shapes = experiments.shapes([1:60,62:64,66:end],:,detected);
labels = labels(18:end,:,:);
% center the pixel
shapes = shapes(18:end,:,:) + 0.5;
clnf_error = compute_error( labels, shapes);
[error_x, error_y] = cummErrorCurve(clnf_error);
plot(error_x, error_y, 'r','DisplayName', 'OpenFace', 'LineWidth',line_width);
hold on;
load('results/intraface_wild_resize.mat');
labels_all = labels_all(18:end,:,detected);
% center the pixel
shapes_all = shapes_all(18:end,:,detected) + 0.5;
intraface_wild_error = compute_error(labels_all, shapes_all);
[error_x, error_y] = cummErrorCurve(intraface_wild_error);
plot(error_x, error_y, '.-g','DisplayName', 'SDM (CVPR 13)', 'LineWidth',line_width);
hold on;
load('results/GNDPM_300W.mat');
% center the pixel
shapes_all = shapes_all(:,:,detected) + 1;
labels_all = labels_all(:,:,detected);
gndpm_wild_error = compute_error(labels_all, shapes_all);
[error_x, error_y] = cummErrorCurve(gndpm_wild_error);
plot(error_x, error_y, '-.','DisplayName', 'GNDPM (CVPR 14)', 'LineWidth',line_width);
hold on;
load('results/zhu_wild.mat');
labels_all = labels_all(18:end,:,detected);
shapes_all = shapes_all(18:end,:,detected);
zhu_wild_error = compute_error(labels_all, shapes_all);
[error_x, error_y] = cummErrorCurve(zhu_wild_error);
plot(error_x, error_y, '.-c','DisplayName', 'Tree based (CVPR 12)', 'LineWidth',line_width);
load('results/results_wild_clm.mat');
labels = experiments.labels([1:60,62:64,66:end],:,detected);
shapes = experiments.shapes([1:60,62:64,66:end],:,detected);
labels = labels(18:end,:,:);
% center the pixel
shapes = shapes(18:end,:,:) + 0.5;
clm_error = compute_error( labels, shapes);
[error_x, error_y] = cummErrorCurve(clm_error);
plot(error_x, error_y, '--b','DisplayName', 'CLM+', 'LineWidth',line_width);
load('results/drmf_wild.mat');
labels_all = labels_all(18:end,:,detected);
shapes_all = shapes_all(18:end,:,detected);
drmf_error = compute_error(labels_all, shapes_all);
[error_x, error_y] = cummErrorCurve(drmf_error);
plot(error_x, error_y, '-.k','DisplayName', 'DRMF (CVPR 13)', 'LineWidth',line_width);
set(gca,'xtick',[0:0.05:0.15])
xlim([0,0.15]);
xlabel('IOD normalised shape error','FontName','Helvetica');
ylabel('Proportion of images','FontName','Helvetica');
grid on
% title('Fitting in the wild without outline','FontSize',60,'FontName','Helvetica');
leg = legend('show', 'Location', 'SouthEast');
set(leg,'FontSize',30)
print -dpdf results/in-the-wild-clnf-no-outline.pdf
%%
scrsz = get(0,'ScreenSize');
figure1 = figure('Position',[20 50 3*scrsz(3)/4 0.9*scrsz(4)]);
set(figure1,'Units','Inches');
pos = get(figure1,'Position');
set(figure1,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)])
% Create axes
axes1 = axes('Parent',figure1,'FontSize',40,'FontName','Helvetica');
line_width = 6;
hold on;
load('results/results_wild_clnf.mat');
labels = experiments.labels([1:60,62:64,66:end],:,:);
% center the pixel
shapes = experiments.shapes([1:60,62:64,66:end],:,:) + 0.5;
clnf_error = compute_error( labels, shapes);
[error_x, error_y] = cummErrorCurve(clnf_error);
hold on;
plot(error_x, error_y, 'r','DisplayName', 'OpenFace', 'LineWidth',line_width);
load('results/zhu_wild.mat');
zhu_wild_error = compute_error(labels_all(:,:,:), shapes_all(:,:,:));
[error_x, error_y] = cummErrorCurve(zhu_wild_error);
plot(error_x, error_y, '.-c','DisplayName', 'Zhu et al.', 'LineWidth',line_width);
load('results/yu_wild.mat');
yu_wild_error = compute_error(lmark_dets_all(:,:,:)-1, shapes_all(:,:,:));
yu_wild_error(isnan(yu_wild_error)) = 1;
yu_wild_error(isinf(yu_wild_error)) = 1;
[error_x, error_y] = cummErrorCurve(yu_wild_error);
plot(error_x, error_y, 'xg','DisplayName', 'Yu et al.', 'LineWidth',line_width);
load('results/results_wild_clm.mat');
experiments(1).labels = experiments(1).labels([1:60,62:64,66:end],:,:);
% center the pixel
experiments(1).shapes = experiments(1).shapes([1:60,62:64,66:end],:,:) + 0.5;
clm_error = compute_error( experiments(1).labels, experiments(1).shapes);
[error_x, error_y] = cummErrorCurve(clm_error);
plot(error_x, error_y, '--b','DisplayName', 'CLM+', 'LineWidth',line_width);
load('results/drmf_wild.mat');
drmf_error = compute_error(labels_all, shapes_all);
[error_x, error_y] = cummErrorCurve(drmf_error);
plot(error_x, error_y, '-.k','DisplayName', 'DRMF', 'LineWidth',line_width);
set(gca,'xtick',[0:0.05:0.15])
xlim([0,0.15]);
xlabel('IOD normalised shape error','FontName','Helvetica');
ylabel('Proportion of images','FontName','Helvetica');
grid on
%title('Fitting in the wild','FontSize',60,'FontName','Helvetica');
legend('show', 'Location', 'SouthEast');
print -dpdf results/in-the-wild-comparison.pdf