diff --git a/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m b/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m index fcbbfd1..cb7cf23 100644 --- a/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m +++ b/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m @@ -14,7 +14,7 @@ Bosphorus_dir = [Bosphorus_dir, 'BosphorusDB/BosphorusDB/']; bosph_dirs = dir([Bosphorus_dir, 'bs*']); parfor f1=1:numel(bosph_dirs) - + command = executable; input_dir = [Bosphorus_dir, bosph_dirs(f1).name]; diff --git a/matlab_version/AU_training/data extraction/extract_features_DISFA.m b/matlab_version/AU_training/data extraction/extract_features_DISFA.m index 5ccbc5c..48e0200 100644 --- a/matlab_version/AU_training/data extraction/extract_features_DISFA.m +++ b/matlab_version/AU_training/data extraction/extract_features_DISFA.m @@ -1,84 +1,34 @@ % Biwi dataset experiment -features_exe = '"..\..\..\x64\Release\FeatureExtraction.exe"'; - -if(exist('D:/Databases/DISFA/', 'dir')) - DISFA_loc = 'D:/Databases/DISFA/'; -elseif(exist('D:/Datasets/DISFA/', 'dir')) - DISFA_loc = 'D:/Datasets/DISFA/'; -elseif(exist('E:/datasets/DISFA/', 'dir')) - DISFA_loc = 'E:/datasets/DISFA/'; -elseif(exist('C:/tadas/DISFA', 'dir')) - DISFA_loc = 'C:/tadas/DISFA/'; -elseif(exist('D:\datasets\face_datasets\DISFA/', 'dir')) - DISFA_loc = 'D:\datasets\face_datasets\DISFA/'; +if(isunix) + features_exe = '"../../../build/bin/FeatureExtraction"'; else - fprintf('DISFA not found\n'); + features_exe = '"../../../x64/Release/FeatureExtraction.exe"'; end -output = [DISFA_loc, '/aligned_rigid/']; -output_hog_root = [DISFA_loc '/hog_aligned_rigid/']; -output_params_root = [DISFA_loc '/model_params/']; +find_DISFA; -DISFA_loc_1 = [DISFA_loc, 'Videos_LeftCamera/']; -DISFA_loc_2 = [DISFA_loc, 'Video_RightCamera/']; +output_dir = 'E:\datasets\face_datasets_processed\disfa'; -if(~exist(output, 'dir')) - mkdir(output); -end - -if(~exist(output_hog_root, 'dir')) - mkdir(output_hog_root); -end - -if(~exist(output_params_root, 'dir')) - mkdir(output_params_root); -end +DISFA_loc_1 = [DISFA_dir, 'Videos_LeftCamera/']; +DISFA_loc_2 = [DISFA_dir, 'Video_RightCamera/']; disfa_loc_1_files = dir([DISFA_loc_1, '/*.avi']); disfa_loc_2_files = dir([DISFA_loc_2, '/*.avi']); %% -tic; - parfor i=1:numel(disfa_loc_1_files) - command = features_exe; - input_file = [DISFA_loc_1 disfa_loc_1_files(i).name]; - - [~,name,~] = fileparts(disfa_loc_1_files(i).name); - output_file = [output name '/']; - - output_hog = [output_hog_root name '.hog']; - output_params = [output_params_root '/' name '.txt']; - - command = cat(2, command, [' -rigid -f "' input_file '" -simalign "' output_file '" -simscale 0.7 -simsize 112']); - command = cat(2, command, [' -hogalign "' output_hog '"' ]); - command = cat(2, command, [' -of "' output_params '" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q']); - + command = sprintf('%s -f "%s" -out_dir "%s" -hogalign -pdmparams', features_exe, input_file, output_dir ); + dos(command); end %% parfor i=1:numel(disfa_loc_2_files) - command = features_exe; - - input_file = [DISFA_loc_2 disfa_loc_2_files(i).name]; - - [~,name,~] = fileparts(disfa_loc_2_files(i).name); - output_file = [output name '/']; - - output_hog = [output_hog_root name '.hog']; - - output_params = [output_params_root '/' name '.txt']; - - command = cat(2, command, [' -rigid -f "' input_file '" -simalign "' output_file '" -simscale 0.7 -simsize 112']); - command = cat(2, command, [' -hogalign "' output_hog '"']); - command = cat(2, command, [' -of "' output_params '" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q']); - - dos(command); -end + input_file = [DISFA_loc_2 disfa_loc_1_files(i).name]; + command = sprintf('%s -f "%s" -out_dir "%s" -hogalign -pdmparams', features_exe, input_file, output_dir ); -timeTaken = toc; \ No newline at end of file +end diff --git a/matlab_version/AU_training/data extraction/extract_features_FERA_2011.m b/matlab_version/AU_training/data extraction/extract_features_FERA_2011.m index 34071b0..5523778 100644 --- a/matlab_version/AU_training/data extraction/extract_features_FERA_2011.m +++ b/matlab_version/AU_training/data extraction/extract_features_FERA_2011.m @@ -1,42 +1,33 @@ clear -features_exe = '"..\..\..\x64\Release\FeatureExtraction.exe"'; -fera_loc = 'D:\Datasets\fera\'; +if(isunix) + features_exe = '"../../../build/bin/FeatureExtraction"'; +else + features_exe = '"../../../x64/Release/FeatureExtraction.exe"'; +end -out_loc = 'D:\Datasets\face_datasets\hog_aligned_rigid\'; -out_loc_params = 'D:\Datasets\face_datasets\model_params\'; +find_FERA2011; + +output_dir = 'E:\datasets\face_datasets_processed\fera2011'; % Go two levels deep -fera_dirs = dir(fera_loc); -fera_dirs = fera_dirs(3:end); +fera_dirs = dir([FERA2011_dir, '/train*']); -for f1=1:numel(fera_dirs) +parfor f1=1:numel(fera_dirs) - fera_dirs_level_2 = dir([fera_loc, fera_dirs(f1).name]); + fera_dirs_level_2 = dir([FERA2011_dir, fera_dirs(f1).name]); fera_dirs_level_2 = fera_dirs_level_2(3:end); for f2=1:numel(fera_dirs_level_2) - vid_files = dir([fera_loc, fera_dirs(f1).name, '/', fera_dirs_level_2(f2).name, '/*.avi']); + vid_files = dir([FERA2011_dir, fera_dirs(f1).name, '/', fera_dirs_level_2(f2).name, '/*.avi']); - parfor v=1:numel(vid_files) + for v=1:numel(vid_files) - command = features_exe; + input_file = [FERA2011_dir, fera_dirs(f1).name, '/', fera_dirs_level_2(f2).name, '/', vid_files(v).name]; - curr_vid = [fera_loc, fera_dirs(f1).name, '/', fera_dirs_level_2(f2).name, '/', vid_files(v).name]; - - [~,name,~] = fileparts(curr_vid); - output_file = [out_loc fera_dirs(f1).name '_' name '/']; + command = sprintf('%s -f "%s" -out_dir "%s" -hogalign -pdmparams', features_exe, input_file, output_dir ); - output_hog = [out_loc fera_dirs(f1).name '_' name '.hog']; - - output_params = [out_loc_params fera_dirs(f1).name '_' name '.txt']; - - command = cat(2, command, [' -rigid -f "' curr_vid '" -simalign "' output_file '" -simscale 0.7 -simsize 112']); - command = cat(2, command, [' -hogalign "' output_hog '"']); - - command = cat(2, command, [' -of "' output_params '" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q']); - dos(command); end diff --git a/matlab_version/AU_training/data extraction/extract_features_SEMAINE.m b/matlab_version/AU_training/data extraction/extract_features_SEMAINE.m index 355a705..71d6e7b 100644 --- a/matlab_version/AU_training/data extraction/extract_features_SEMAINE.m +++ b/matlab_version/AU_training/data extraction/extract_features_SEMAINE.m @@ -1,12 +1,16 @@ -features_exe = '"..\..\..\x64\Release\FeatureExtraction.exe"'; +if(isunix) + features_exe = '"../../../build/bin/FeatureExtraction"'; +else + features_exe = '"../../../x64/Release/FeatureExtraction.exe"'; +end find_SEMAINE; % Go two levels deep semaine_dirs = train_recs; -out_loc = [SEMAINE_dir, '../processed_data/train/']; +output_dir = 'E:\datasets\face_datasets_processed\semaine'; parfor f1=1:numel(semaine_dirs) @@ -18,21 +22,11 @@ parfor f1=1:numel(semaine_dirs) for v=1:numel(vid_files) - command = features_exe; + input_file = [SEMAINE_dir, f1_dir, '/', vid_files(v).name]; - curr_vid = [SEMAINE_dir, f1_dir, '/', vid_files(v).name]; + command = sprintf('%s -f "%s" -out_dir "%s" -hogalign -pdmparams', features_exe, input_file, output_dir ); - name = f1_dir; - output_file = [out_loc name '/']; - - output_hog = [out_loc name '.hog']; - output_params = [out_loc name '.params.txt']; - - command = cat(2, command, [' -rigid -f "' curr_vid '" -simalign "' output_file '" -simscale 0.7 -simsize 112']); - command = cat(2, command, [' -hogalign "' output_hog '"']); - command = cat(2, command, [' -of "' output_params '" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q']); dos(command); - end end end @@ -51,19 +45,10 @@ parfor f1=1:numel(semaine_dirs) for v=1:numel(vid_files) - command = features_exe; + input_file = [SEMAINE_dir, f1_dir, '/', vid_files(v).name]; - curr_vid = [SEMAINE_dir, f1_dir, '/', vid_files(v).name]; + command = sprintf('%s -f "%s" -out_dir "%s" -hogalign -pdmparams', features_exe, input_file, output_dir ); - name = f1_dir; - output_file = [out_loc name '/']; - - output_hog = [out_loc name '.hog']; - output_params = [out_loc name '.params.txt']; - - command = cat(2, command, [' -rigid -f "' curr_vid '" -simalign "' output_file '" -simscale 0.7 -simsize 112']); - command = cat(2, command, [' -hogalign "' output_hog '"']); - command = cat(2, command, [' -of "' output_params '" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q']); dos(command); end diff --git a/matlab_version/AU_training/data extraction/extract_features_UNBC.m b/matlab_version/AU_training/data extraction/extract_features_UNBC.m index 6c51aff..69302a2 100644 --- a/matlab_version/AU_training/data extraction/extract_features_UNBC.m +++ b/matlab_version/AU_training/data extraction/extract_features_UNBC.m @@ -1,41 +1,35 @@ clear -features_exe = '"..\..\..\x64\Release\FeatureExtraction.exe"'; +if(isunix) + features_exe = '"../../../build/bin/FeatureExtraction"'; +else + features_exe = '"../../../x64/Release/FeatureExtraction.exe"'; +end -unbc_loc = 'D:\Datasets\UNBC\Images/'; - -out_loc = 'D:\Datasets\face_datasets/'; +find_UNBC; +UNBC_dir = [UNBC_dir, '/images/']; +output_dir = 'E:\datasets\face_datasets_processed\unbc'; % Go two levels deep -unbc_dirs = dir(unbc_loc); +unbc_dirs = dir(UNBC_dir); unbc_dirs = unbc_dirs(3:end); parfor f1=1:numel(unbc_dirs) - unbc_dirs_level_2 = dir([unbc_loc, unbc_dirs(f1).name]); + unbc_dirs_level_2 = dir([UNBC_dir, unbc_dirs(f1).name]); unbc_dirs_level_2 = unbc_dirs_level_2(3:end); for f2=1:numel(unbc_dirs_level_2) - if(~isdir([unbc_loc, unbc_dirs(f1).name, '/', unbc_dirs_level_2(f2).name])) + if(~isdir([UNBC_dir, unbc_dirs(f1).name, '/', unbc_dirs_level_2(f2).name])) continue; end - command = features_exe; - - curr_vid = [unbc_loc, unbc_dirs(f1).name, '/', unbc_dirs_level_2(f2).name]; + input_dir = [UNBC_dir, unbc_dirs(f1).name, '/', unbc_dirs_level_2(f2).name]; name = [unbc_dirs(f1).name, '_', unbc_dirs_level_2(f2).name]; - output_file = [out_loc, '/hog_aligned_rigid/', name '/']; + command = sprintf('%s -fdir "%s" -out_dir "%s" -of %s -hogalign -pdmparams -verbose', features_exe, input_dir, output_dir, name ); - output_hog = [out_loc, '/hog_aligned_rigid/', name '.hog']; - output_params = [out_loc, '/model_params/', name '.txt']; - - command = cat(2, command, [' -rigid -asvid -fdir "' curr_vid '" -simalign "' output_file '" -simscale 0.7 -simsize 112 -g']); - command = cat(2, command, [' -hogalign "' output_hog '"']); - - command = cat(2, command, [' -of "' output_params '" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q']); - dos(command); end diff --git a/matlab_version/AU_training/data extraction/find_FERA2011.m b/matlab_version/AU_training/data extraction/find_FERA2011.m index 411fcba..43e6e56 100644 --- a/matlab_version/AU_training/data extraction/find_FERA2011.m +++ b/matlab_version/AU_training/data extraction/find_FERA2011.m @@ -1,6 +1,7 @@ if(exist('D:\Datasets\fera/au_training', 'file')) FERA2011_dir = 'D:\Datasets\fera/au_training/'; - hog_data_dir = 'D:\Datasets\face_datasets\hog_aligned_rigid/'; +elseif(exist('E:\Datasets\fera/au_training', 'file')) + FERA2011_dir = 'E:\Datasets\fera/au_training/'; else fprintf('FERA2011 location not found (or not defined)\n'); end diff --git a/matlab_version/AU_training/data extraction/find_UNBC.m b/matlab_version/AU_training/data extraction/find_UNBC.m index 06bb373..315529d 100644 --- a/matlab_version/AU_training/data extraction/find_UNBC.m +++ b/matlab_version/AU_training/data extraction/find_UNBC.m @@ -1,6 +1,7 @@ if(exist('D:\Datasets\UNBC/', 'file')) - UNBC_dir = 'D:\Datasets\UNBC/'; - hog_data_dir = 'D:\Datasets\face_datasets\hog_aligned_rigid'; + UNBC_dir = 'E:\Datasets\UNBC/'; +elseif(exist('E:\Datasets\UNBC/', 'file')) + UNBC_dir = 'E:\Datasets\UNBC/'; else fprintf('UNBC location not found (or not defined)\n'); end