mirror of
https://gitcode.com/gh_mirrors/ope/OpenFace.git
synced 2025-12-30 13:02:30 +00:00
Adding DISFA trained models.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
clear;
|
||||
version = '0.4.1';
|
||||
version = '1.0.0';
|
||||
|
||||
out_x86 = sprintf('OpenFace_%s_win_x86', version);
|
||||
out_x64 = sprintf('OpenFace_%s_win_x64', version);
|
||||
|
||||
@@ -53,4 +53,14 @@ for a=1:numel(aus)
|
||||
|
||||
save(name, 'model', 'accuracies', 'F1s', 'corrs', 'rms', 'ccc', 'prediction', 'valid_labels');
|
||||
|
||||
name = sprintf('classifiers/AU_%d_dyn.dat', au);
|
||||
|
||||
pos_lbl = model.Label(1);
|
||||
neg_lbl = model.Label(2);
|
||||
|
||||
w = model.w(1:end-1)';
|
||||
b = model.w(end);
|
||||
|
||||
svs = bsxfun(@times, PC, 1./scaling') * w;
|
||||
write_lin_svm(name, means, svs, b, pos_lbl, neg_lbl);
|
||||
end
|
||||
@@ -51,6 +51,17 @@ for a=1:numel(aus)
|
||||
|
||||
[ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_regression_results( prediction, valid_labels );
|
||||
|
||||
save(name, 'model', 'accuracies', 'F1s', 'corrs', 'rms', 'ccc', 'prediction', 'valid_labels');
|
||||
save(name, 'model', 'accuracies', 'F1s', 'corrs', 'rms', 'ccc', 'prediction', 'valid_labels');
|
||||
|
||||
name = sprintf('classifiers/AU_%d_stat.dat', au);
|
||||
|
||||
pos_lbl = model.Label(1);
|
||||
neg_lbl = model.Label(2);
|
||||
|
||||
w = model.w(1:end-1)';
|
||||
b = model.w(end);
|
||||
|
||||
svs = bsxfun(@times, PC, 1./scaling') * w;
|
||||
write_lin_svm(name, means, svs, b, pos_lbl, neg_lbl);
|
||||
|
||||
end
|
||||
@@ -0,0 +1,68 @@
|
||||
% Change to your downloaded location
|
||||
clear
|
||||
addpath('C:\liblinear\matlab')
|
||||
addpath('../training_code')
|
||||
addpath('../utilities')
|
||||
|
||||
%% load shared definitions and AU data
|
||||
shared_defs;
|
||||
|
||||
% Set up the hyperparameters to be validated
|
||||
hyperparams.c = 10.^(-7:1:3);
|
||||
hyperparams.p = 10.^(-2);
|
||||
|
||||
hyperparams.validate_params = {'c', 'p'};
|
||||
|
||||
% Set the training function
|
||||
svr_train = @svr_train_linear_shift;
|
||||
|
||||
% Set the test function (the first output will be used for validation)
|
||||
svr_test = @svr_test_linear_shift;
|
||||
|
||||
%%
|
||||
for a=1:numel(aus)
|
||||
|
||||
au = aus(a);
|
||||
|
||||
rest_aus = setdiff(all_aus, au);
|
||||
|
||||
% make sure validation data's labels are balanced
|
||||
[users_train, users_valid] = get_balanced_fold(DISFA_dir, users, au, 1/4, 1);
|
||||
|
||||
% need to split the rest
|
||||
[train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_generic_dynamic(users_train, users_valid, au, rest_aus, DISFA_dir, hog_data_dir);
|
||||
|
||||
train_samples = sparse(train_samples);
|
||||
valid_samples = sparse(valid_samples);
|
||||
|
||||
%% Validate here
|
||||
hyperparams.success = valid_success;
|
||||
hyperparams.valid_samples = valid_samples;
|
||||
hyperparams.valid_labels = valid_labels;
|
||||
hyperparams.vid_ids = valid_ids;
|
||||
|
||||
[ best_params, ~ ] = validate_grid_search_no_par(svr_train, svr_test, false, train_samples, train_labels, valid_samples, valid_labels, hyperparams);
|
||||
|
||||
model = svr_train(train_labels, train_samples, best_params);
|
||||
model.success = valid_success;
|
||||
model.vid_ids = valid_ids;
|
||||
|
||||
[~, prediction] = svr_test(valid_labels, valid_samples, model);
|
||||
|
||||
name = sprintf('regressors/AU_%d_dyn_intensity.mat', au);
|
||||
|
||||
[ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_regression_results( prediction, valid_labels );
|
||||
|
||||
save(name, 'model', 'accuracies', 'F1s', 'corrs', 'rms', 'ccc', 'prediction', 'valid_labels');
|
||||
|
||||
% Write out the model
|
||||
name = sprintf('regressors/AU_%d_dynamic_intensity.dat', au);
|
||||
|
||||
w = model.w(1:end-1)';
|
||||
b = model.w(end);
|
||||
|
||||
svs = bsxfun(@times, PC, 1./scaling') * w;
|
||||
|
||||
write_lin_dyn_svr(name, means, svs, b, model.cutoff);
|
||||
|
||||
end
|
||||
@@ -0,0 +1,68 @@
|
||||
% Change to your downloaded location
|
||||
clear
|
||||
addpath('C:\liblinear\matlab')
|
||||
addpath('../training_code')
|
||||
addpath('../utilities')
|
||||
|
||||
%% load shared definitions and AU data
|
||||
shared_defs;
|
||||
|
||||
% Set up the hyperparameters to be validated
|
||||
hyperparams.c = 10.^(-7:1:3);
|
||||
hyperparams.p = 10.^(-2);
|
||||
|
||||
hyperparams.validate_params = {'c', 'p'};
|
||||
|
||||
% Set the training function
|
||||
svr_train = @svr_train_linear;
|
||||
|
||||
% Set the test function (the first output will be used for validation)
|
||||
svr_test = @svr_test_linear;
|
||||
|
||||
%%
|
||||
for a=1:numel(aus)
|
||||
|
||||
au = aus(a);
|
||||
|
||||
rest_aus = setdiff(all_aus, au);
|
||||
|
||||
% make sure validation data's labels are balanced
|
||||
[users_train, users_valid] = get_balanced_fold(DISFA_dir, users, au, 1/4, 1);
|
||||
|
||||
% need to split the rest
|
||||
[train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_generic(users_train, users_valid, au, rest_aus, DISFA_dir, hog_data_dir);
|
||||
|
||||
train_samples = sparse(train_samples);
|
||||
valid_samples = sparse(valid_samples);
|
||||
|
||||
%% Validate here
|
||||
hyperparams.success = valid_success;
|
||||
hyperparams.valid_samples = valid_samples;
|
||||
hyperparams.valid_labels = valid_labels;
|
||||
hyperparams.vid_ids = valid_ids;
|
||||
|
||||
[ best_params, ~ ] = validate_grid_search_no_par(svr_train, svr_test, false, train_samples, train_labels, valid_samples, valid_labels, hyperparams);
|
||||
|
||||
model = svr_train(train_labels, train_samples, best_params);
|
||||
model.success = valid_success;
|
||||
model.vid_ids = valid_ids;
|
||||
|
||||
[~, prediction] = svr_test(valid_labels, valid_samples, model);
|
||||
|
||||
name = sprintf('regressors/AU_%d_static_intensity.mat', au);
|
||||
|
||||
[ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_regression_results( prediction, valid_labels );
|
||||
|
||||
save(name, 'model', 'accuracies', 'F1s', 'corrs', 'rms', 'ccc', 'prediction', 'valid_labels');
|
||||
|
||||
% Write out the model
|
||||
name = sprintf('regressors/AU_%d_static_intensity.dat', au);
|
||||
|
||||
w = model.w(1:end-1)';
|
||||
b = model.w(end);
|
||||
|
||||
svs = bsxfun(@times, PC, 1./scaling') * w;
|
||||
|
||||
write_lin_svr(name, means, svs, b);
|
||||
|
||||
end
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user