diff --git a/.gitignore b/.gitignore index 52d089c4..f5a4f429 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,7 @@ exe/FeatureExtraction/out_bp4d/ x64/Debug/ matlab_runners/Action Unit Experiments/out_unbc/ matlab_runners/Action Unit Experiments/out_bosph/ +matlab_runners/Action Unit Experiments/out_DISFA/ +matlab_runners/Action Unit Experiments/out_fera/ +matlab_runners/Demos/output_features_seq/ +matlab_runners/Demos/output_features_vid/ diff --git a/exe/FeatureExtraction/FeatureExtraction.cpp b/exe/FeatureExtraction/FeatureExtraction.cpp index 05ffe835..f327c21a 100644 --- a/exe/FeatureExtraction/FeatureExtraction.cpp +++ b/exe/FeatureExtraction/FeatureExtraction.cpp @@ -324,12 +324,9 @@ int main (int argc, char **argv) // Used for image masking - cv::Mat_ triangulation;//TODO rem? string tri_loc; if(boost::filesystem::exists(path("model/tris_68_full.txt"))) { - std::ifstream triangulation_file("model/tris_68_full.txt"); - LandmarkDetector::ReadMat(triangulation_file, triangulation); tri_loc = "model/tris_68_full.txt"; } else @@ -337,12 +334,7 @@ int main (int argc, char **argv) path loc = path(arguments[0]).parent_path() / "model/tris_68_full.txt"; tri_loc = loc.string(); - if(exists(loc)) - { - std::ifstream triangulation_file(loc.string()); - LandmarkDetector::ReadMat(triangulation_file, triangulation); - } - else + if(!exists(loc)) { cout << "Can't find triangulation files, exiting" << endl; return 0; diff --git a/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt b/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt index 979ece1d..d944851d 100644 --- a/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt +++ b/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt @@ -15,4 +15,21 @@ svm_combined/AU_23_static.dat AU23 svm_combined/AU_25_dynamic.dat AU25 svm_combined/AU_26_dynamic.dat AU26 svm_combined/AU_28_static.dat AU28 -svm_combined/AU_45_dynamic.dat AU45 \ No newline at end of file +svm_combined/AU_45_dynamic.dat AU45 +svr_combined/AU_1_dynamic_intensity_comb.dat AU01 +svr_combined/AU_2_dynamic_intensity_comb.dat AU02 +svr_combined/AU_4_static_intensity_comb.dat AU04 +svr_combined/AU_5_dynamic_intensity.dat AU05 +svr_combined/AU_6_static_intensity_comb.dat AU06 +svr_combined/AU_7_static_intensity_comb.dat AU07 +svr_combined/AU_9_dynamic_intensity.dat AU09 +svr_combined/AU_10_static_intensity_comb.dat AU10 +svr_combined/AU_12_static_intensity_comb.dat AU12 +svr_combined/AU_14_static_intensity.dat AU14 +svr_combined/AU_15_dynamic_intensity_comb.dat AU15 +svr_combined/AU_17_dynamic_intensity_comb.dat AU17 +svr_combined/AU_20_dynamic_intensity.dat AU20 +svr_combined/AU_23_dynamic_intensity_comb.dat AU23 +svr_combined/AU_25_dynamic_intensity_comb.dat AU25 +svr_combined/AU_26_dynamic_intensity_comb.dat AU26 +svr_combined/AU_45_dynamic_intensity_comb.dat AU45 \ No newline at end of file diff --git a/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt b/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt index 4d9504aa..41e696b4 100644 --- a/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt +++ b/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt @@ -16,7 +16,7 @@ svm_combined/AU_25_static.dat AU25 svm_combined/AU_26_static.dat AU26 svm_combined/AU_28_static.dat AU28 svm_combined/AU_45_static.dat AU45 -svr_combined/AU_1_static_intensity_comb.dat AU01 +svr_combined/AU_1_static_intensity.dat AU01 svr_combined/AU_2_static_intensity_comb.dat AU02 svr_combined/AU_4_static_intensity_comb.dat AU04 svr_combined/AU_5_static_intensity.dat AU05 diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_bp4d/AU_23_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_bp4d/AU_23_static.dat deleted file mode 100644 index 1caf6a08..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_bp4d/AU_23_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_bp4d/AU_7_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_bp4d/AU_7_static.dat deleted file mode 100644 index 25d01370..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_bp4d/AU_7_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_dynamic.dat index d81b6c8c..169a5b8a 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_static.dat index cdd15a1d..149fcf35 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_10_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_dynamic.dat index f8afb264..2f36f6fd 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_static.dat index 2690abe1..2b0c3ab5 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_dynamic.dat index d31141a6..c31894a1 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_static.dat index b1869dbf..e067b63d 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_14_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_dynamic.dat index 79afec4f..886c0d14 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_static.dat index cd428599..4e8c136f 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_dynamic.dat index 32996100..8764e93d 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_static.dat index c4639dac..4a44b6b1 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_17_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_dynamic.dat index ea123c8b..8da47385 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_static.dat index fe091ad9..4a93caf7 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_dynamic.dat index 9f085a06..3b2eb5ae 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_static.dat index b35708b3..64f27b30 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_20_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_dynamic.dat index f2cddb44..8c8f7c8a 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_static.dat index c8def81e..12ec7fde 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_23_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_dynamic.dat index 03f5b23e..ee7f6eea 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_static.dat index 6ee8a52d..c0a3226b 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_dynamic.dat index 6cd620a2..2b04a5ae 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_static.dat index fd0a99e4..fbc41322 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_26_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_dynamic.dat index d53c4c23..5f84b18b 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_static.dat index 97fed7e4..a9af4fdd 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_28_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_dynamic.dat index e62fc01b..8f9cb984 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_static.dat index 1d45f7a8..288634e9 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_dynamic.dat index 578f5994..b58b9277 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_static.dat index 8e13be50..830aee7d 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_45_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_dynamic.dat index 55f7b92a..e56d1b20 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_static.dat index a887b0b1..08e875a6 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_dynamic.dat index 87cb54c6..fc0beebb 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_static.dat index 7b44fe37..c6dd7e18 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_5_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_dynamic.dat index 462b8181..e5dd4469 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_static.dat index e90adf53..c53afee7 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_6_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_dynamic.dat index 0643e7ec..55ea2ee8 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_static.dat index b7099299..ec665e2d 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_7_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_dynamic.dat index 77a14d21..aa120df4 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_dynamic.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_dynamic.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_static.dat index f2e74fa8..0c460579 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_static.dat and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_static.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_28_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_28_static.dat deleted file mode 100644 index 82ac113e..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_28_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_45_dynamic.dat b/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_45_dynamic.dat deleted file mode 100644 index 285b9fea..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_45_dynamic.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_45_static.dat b/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_45_static.dat deleted file mode 100644 index fb2198fd..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_semaine/AU_45_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_bp4d/AU_10_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_bp4d/AU_10_static_intensity.dat deleted file mode 100644 index 669ef764..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_bp4d/AU_10_static_intensity.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_bp4d/AU_14_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_bp4d/AU_14_static_intensity.dat deleted file mode 100644 index 93f010b9..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_bp4d/AU_14_static_intensity.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_10_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_10_static_intensity_comb.dat index 52673b7d..624731e3 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_10_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_10_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_12_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_12_static_intensity_comb.dat index 574057ba..406fd810 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_12_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_12_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_14_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_14_static_intensity.dat index 2e3975de..83c864ee 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_14_static_intensity.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_14_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_dynamic_intensity_comb.dat new file mode 100644 index 00000000..00f802cf Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_static_intensity_comb.dat index fb5f4e48..3a22f41a 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_dynamic_intensity_comb.dat new file mode 100644 index 00000000..8e5c2389 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_comb.dat index 45fcb68d..109c7740 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_dynamic_intensity_comb.dat new file mode 100644 index 00000000..db183754 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity.dat new file mode 100644 index 00000000..065b1c52 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity_comb.dat deleted file mode 100644 index b0d9d437..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity_comb.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_dynamic_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_dynamic_intensity.dat new file mode 100644 index 00000000..554df8c7 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_dynamic_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_static_intensity.dat index 4a445e45..eb78b669 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_static_intensity.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_20_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_dynamic_intensity_comb.dat new file mode 100644 index 00000000..a6f437a7 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_static_intensity_comb.dat index 2528743a..bd03fe24 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_dynamic_intensity_comb.dat new file mode 100644 index 00000000..f161ad8c Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_static_intensity.dat index 60895212..411670da 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_static_intensity.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_dynamic_intensity_comb.dat new file mode 100644 index 00000000..c5b2597e Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_static_intensity_comb.dat index da3f8bf3..3119305f 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_dynamic_intensity_comb.dat new file mode 100644 index 00000000..89391784 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_static_intensity_comb.dat index 140366d6..12f7ce84 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_dynamic_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_dynamic_intensity_comb.dat new file mode 100644 index 00000000..2f6c0b54 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_dynamic_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_static_intensity_comb.dat index 5d1bc606..28bce9a0 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_4_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_4_static_intensity_comb.dat index a023e7a8..8204a879 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_4_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_4_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_dynamic_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_dynamic_intensity.dat new file mode 100644 index 00000000..14f43f53 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_dynamic_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_static_intensity.dat index c2c5fb62..5c3481b5 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_static_intensity.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_6_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_6_static_intensity_comb.dat index e98b274c..69c3005d 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_6_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_6_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_7_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_7_static_intensity_comb.dat index 31976cfa..04b4a112 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_7_static_intensity_comb.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_7_static_intensity_comb.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_dynamic_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_dynamic_intensity.dat new file mode 100644 index 00000000..c809ddcd Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_dynamic_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_static_intensity.dat index ba358174..7cdfc5d6 100644 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_static_intensity.dat and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_15_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_15_dyn.dat deleted file mode 100644 index b7d06302..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_15_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_15_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_15_static.dat deleted file mode 100644 index 34b15dce..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_15_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_1_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_1_dyn.dat deleted file mode 100644 index a25f7925..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_1_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_1_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_1_static.dat deleted file mode 100644 index 203a3c23..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_1_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_20_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_20_dyn.dat deleted file mode 100644 index 864d4132..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_20_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_20_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_20_static.dat deleted file mode 100644 index 5bdd3fde..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_20_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_25_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_25_static.dat deleted file mode 100644 index 846e0a62..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_25_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_26_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_26_dyn.dat deleted file mode 100644 index 84b87191..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_26_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_26_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_26_static.dat deleted file mode 100644 index 4999b067..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_26_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_2_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_2_dyn.dat deleted file mode 100644 index 63a70690..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_2_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_2_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_2_static.dat deleted file mode 100644 index b64fccf3..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_2_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_4_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_4_static.dat deleted file mode 100644 index 40adfa95..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_4_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_5_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_5_dyn.dat deleted file mode 100644 index 407ea6ac..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_5_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_5_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_5_static.dat deleted file mode 100644 index d6f0290b..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_5_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_9_dyn.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_9_dyn.dat deleted file mode 100644 index 6ccf1429..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_9_dyn.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_9_static.dat b/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_9_static.dat deleted file mode 100644 index f2abf44d..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_disfa/AU_9_static.dat and /dev/null differ diff --git a/lib/local/FaceAnalyser/include/FaceAnalyser.h b/lib/local/FaceAnalyser/include/FaceAnalyser.h index 6228995c..bf43defc 100644 --- a/lib/local/FaceAnalyser/include/FaceAnalyser.h +++ b/lib/local/FaceAnalyser/include/FaceAnalyser.h @@ -124,7 +124,7 @@ public: // Identify if models are static or dynamic (useful for correction and shifting) std::vector GetDynamicAUClass() const; // Presence - std::vector GetDynamicAUReg() const; // Intensity + std::vector> FaceAnalyser::GetDynamicAUReg() const; // Intensity void ExtractAllPredictionsOfflineReg(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps, bool dynamic); diff --git a/lib/local/FaceAnalyser/include/SVR_dynamic_lin_regressors.h b/lib/local/FaceAnalyser/include/SVR_dynamic_lin_regressors.h index f67550bf..ed31d432 100644 --- a/lib/local/FaceAnalyser/include/SVR_dynamic_lin_regressors.h +++ b/lib/local/FaceAnalyser/include/SVR_dynamic_lin_regressors.h @@ -89,6 +89,11 @@ public: return AU_names; } + std::vector GetCutoffs() const + { + return cutoffs; + } + private: // The names of Action Units this model is responsible for @@ -101,6 +106,9 @@ private: cv::Mat_ support_vectors; cv::Mat_ biases; + // For AU callibration (see the OpenFace paper) + std::vector cutoffs; + }; //=========================================================================== } diff --git a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp index 94ae1cf3..3b24211a 100644 --- a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp +++ b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp @@ -92,12 +92,11 @@ FaceAnalyser::FaceAnalyser(vector orientation_bins, double scale, int align_height = height; // Initialise the histograms that will represent bins from 0 - 1 (as HoG values are only stored as those) - // Set the number of bins for the histograms - num_bins_hog = 600; + num_bins_hog = 1000; max_val_hog = 1; - min_val_hog = 0; + min_val_hog = -0.005; - // The geometry histogram ranges from -3 to 3 + // The geometry histogram ranges from -60 to 60 num_bins_geom = 10000; max_val_geom = 60; min_val_geom = -60; @@ -186,19 +185,19 @@ std::vector FaceAnalyser::GetDynamicAUClass() const return au_dynamic_class; } -std::vector FaceAnalyser::GetDynamicAUReg() const +std::vector> FaceAnalyser::GetDynamicAUReg() const { - std::vector au_dynamic_reg; + std::vector> au_dynamic_reg; std::vector au_reg_names_stat = AU_SVR_static_appearance_lin_regressors.GetAUNames(); std::vector au_reg_names_dyn = AU_SVR_dynamic_appearance_lin_regressors.GetAUNames(); for (size_t i = 0; i < au_reg_names_stat.size(); ++i) { - au_dynamic_reg.push_back(false); + au_dynamic_reg.push_back(std::pair(au_reg_names_stat[i], false)); } for (size_t i = 0; i < au_reg_names_dyn.size(); ++i) { - au_dynamic_reg.push_back(true); + au_dynamic_reg.push_back(std::pair(au_reg_names_dyn[i], true)); } return au_dynamic_reg; @@ -384,7 +383,7 @@ void FaceAnalyser::AddNextFrame(const cv::Mat& frame, const LandmarkDetector::CL // Extract HOG descriptor from the frame and convert it to a useable format cv::Mat_ hog_descriptor; Extract_FHOG_descriptor(hog_descriptor, aligned_face, this->num_hog_rows, this->num_hog_cols); - + // Store the descriptor hog_desc_frame = hog_descriptor; @@ -396,11 +395,23 @@ void FaceAnalyser::AddNextFrame(const cv::Mat& frame, const LandmarkDetector::CL bool update_median = true; // TODO test if this would be useful or not - //if(!this->AU_predictions.empty()) + //if(!this->AU_predictions_reg.empty()) //{ - // for(size_t i = 0; i < this->AU_predictions.size(); ++i) + // vector> dyns = this->GetDynamicAUReg(); + + // for(size_t i = 0; i < this->AU_predictions_reg.size(); ++i) // { - // if(this->AU_predictions[i].second > 1) + // bool stat = false; + // for (size_t n = 0; n < dyns.size(); ++n) + // { + // if (dyns[n].first.compare(AU_predictions_reg[i].first) == 0) + // { + // stat = !dyns[i].second; + // } + // } + + // // If static predictor above 1.5 assume it's not a neutral face + // if(this->AU_predictions_reg[i].second > 1.5 && stat) // { // update_median = false; // break; @@ -417,7 +428,9 @@ void FaceAnalyser::AddNextFrame(const cv::Mat& frame, const LandmarkDetector::CL if(frames_tracking % 2 == 1) { UpdateRunningMedian(this->hog_desc_hist[orientation_to_use], this->hog_hist_sum[orientation_to_use], this->hog_desc_median, hog_descriptor, update_median, this->num_bins_hog, this->min_val_hog, this->max_val_hog); + this->hog_desc_median.setTo(0, this->hog_desc_median < 0); } + // Geom descriptor and its median geom_descriptor_frame = clnf_model.params_local.t(); @@ -608,7 +621,7 @@ void FaceAnalyser::PostprocessPredictions() int success_ind = 0; int all_ind = 0; int all_frames_size = timestamps.size(); - + while(all_ind < all_frames_size && success_ind < max_init_frames) { @@ -619,13 +632,14 @@ void FaceAnalyser::PostprocessPredictions() this->geom_descriptor_frame = geom_descriptor_frames_init[success_ind]; // Perform AU prediction - auto AU_predictions_reg = PredictCurrentAUs(views[success_ind]); + auto AU_predictions_reg = PredictCurrentAUs(views[success_ind]); // Modify the predictions to the historic data for (size_t au = 0; au < AU_predictions_reg.size(); ++au) { // Find the appropriate AU (if not found add it) AU_predictions_reg_all_hist[AU_predictions_reg[au].first][all_ind] = AU_predictions_reg[au].second; + } auto AU_predictions_class = PredictCurrentAUsClass(views[success_ind]); @@ -659,7 +673,10 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vector offsets; confidences = this->confidences; successes = this->valid_preds; + + vector dyn_au_names = AU_SVR_dynamic_appearance_lin_regressors.GetAUNames(); + // Allow these AUs to be person calirated based on expected number of neutral frames (learned from the data) for(auto au_iter = AU_predictions_reg_all_hist.begin(); au_iter != AU_predictions_reg_all_hist.end(); ++au_iter) { vector au_good; @@ -685,11 +702,33 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vector 5) au_predictions[au].second[frame] = 5; - + } else { @@ -728,7 +767,7 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vectorsecond.size() - (window_size - 1) / 2; ++i) { double sum = 0; - for (int w = -(window_size - 1) / 2; w < (window_size - 1) / 2; ++w) + for (int w = -(window_size - 1) / 2; w <= (window_size - 1) / 2; ++w) { sum += au_vals_tmp[i + w]; } @@ -739,7 +778,6 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps, bool dynamic) @@ -763,7 +801,7 @@ void FaceAnalyser::ExtractAllPredictionsOfflineClass(vector& histogram, int& h converted_descriptor.setTo(cv::Scalar(num_bins-1), converted_descriptor > num_bins - 1); converted_descriptor.setTo(cv::Scalar(0), converted_descriptor < 0); - // Only count the median till a certain number of frame seen? for(int i = 0; i < histogram.rows; ++i) { int index = (int)converted_descriptor.at(i); @@ -883,9 +920,9 @@ void FaceAnalyser::UpdateRunningMedian(cv::Mat_& histogram, int& h for(int j = 0; j < histogram.cols; ++j) { cummulative_sum += histogram.at(i, j); - if(cummulative_sum > cutoff_point) + if(cummulative_sum >= cutoff_point) { - median.at(i) = min_val + j * (length/num_bins) + (0.5*(length)/num_bins); + median.at(i) = min_val + ((double)j) * (length/((double)num_bins)) + (0.5*(length)/ ((double)num_bins)); break; } } @@ -953,7 +990,7 @@ vector> FaceAnalyser::PredictCurrentAUs(int view) vector svr_lin_dyn_aus; vector svr_lin_dyn_preds; - AU_SVR_dynamic_appearance_lin_regressors.Predict(svr_lin_dyn_preds, svr_lin_dyn_aus, hog_desc_frame, geom_descriptor_frame, this->hog_desc_median, this->geom_descriptor_frame); + AU_SVR_dynamic_appearance_lin_regressors.Predict(svr_lin_dyn_preds, svr_lin_dyn_aus, hog_desc_frame, geom_descriptor_frame, this->hog_desc_median, this->geom_descriptor_median); for(size_t i = 0; i < svr_lin_dyn_preds.size(); ++i) { @@ -996,7 +1033,6 @@ vector> FaceAnalyser::CorrectOnlineAUs(std::vector 1) { double scaling_curr = 5.0 / predictions[i].second; diff --git a/lib/local/FaceAnalyser/src/Face_utils.cpp b/lib/local/FaceAnalyser/src/Face_utils.cpp index d95117ed..52e00940 100644 --- a/lib/local/FaceAnalyser/src/Face_utils.cpp +++ b/lib/local/FaceAnalyser/src/Face_utils.cpp @@ -249,7 +249,7 @@ namespace FaceAnalysis for(size_t i = 0; i < aligned_face_channels.size(); ++i) { - aligned_face_channels[i] = aligned_face_channels[i].mul(paw.pixel_mask); + cv::multiply(aligned_face_channels[i], paw.pixel_mask, aligned_face_channels[i], 1.0, CV_8U); } if(aligned_face.channels() == 3) diff --git a/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp b/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp index bb9ef5c0..6e02600a 100644 --- a/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp +++ b/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp @@ -64,7 +64,13 @@ using namespace FaceAnalysis; void SVR_dynamic_lin_regressors::Read(std::ifstream& stream, const std::vector& au_names) { + + // For person specific calibration in a video + double cutoff; + stream.read((char*)&cutoff, 8); + cutoffs.push_back(cutoff); + // The feature normalization using the mean if(this->means.empty()) { LandmarkDetector::ReadMatBin(stream, this->means); @@ -115,7 +121,6 @@ void SVR_dynamic_lin_regressors::Predict(std::vector& predictions, std:: { if(AU_names.size() > 0) { - cv::Mat_ preds; if(fhog_descriptor.cols == this->means.cols) { @@ -136,7 +141,7 @@ void SVR_dynamic_lin_regressors::Predict(std::vector& predictions, std:: { predictions.push_back(*pred_it); } - + names = this->AU_names; } } \ No newline at end of file diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp index 1c22bf8e..76ff196b 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp @@ -632,12 +632,6 @@ bool CLNF::DetectLandmarks(const cv::Mat_ &image, const cv::Mat_ & // Do the actual landmark detection hierarchical_models[part_model].DetectLandmarks(image, depth, hierarchical_params[part_model]); - // Reincorporate the models into main tracker - for (size_t mapping_ind = 0; mapping_ind < mappings.size(); ++mapping_ind) - { - detected_landmarks.at(mappings[mapping_ind].first) = hierarchical_models[part_model].detected_landmarks.at(mappings[mapping_ind].second); - detected_landmarks.at(mappings[mapping_ind].first + pdm.NumberOfPoints()) = hierarchical_models[part_model].detected_landmarks.at(mappings[mapping_ind].second + hierarchical_models[part_model].pdm.NumberOfPoints()); - } } else { @@ -650,9 +644,28 @@ bool CLNF::DetectLandmarks(const cv::Mat_ &image, const cv::Mat_ & // Recompute main model based on the fit part models if(parts_used) { + + for (int part_model = 0; part_model < hierarchical_models.size(); ++part_model) + { + vector> mappings = this->hierarchical_mapping[part_model]; + + if (!((hierarchical_model_names[part_model].compare("right_eye_28") == 0 || + hierarchical_model_names[part_model].compare("left_eye_28") == 0) + && !params.track_gaze)) + { + // Reincorporate the models into main tracker + for (size_t mapping_ind = 0; mapping_ind < mappings.size(); ++mapping_ind) + { + detected_landmarks.at(mappings[mapping_ind].first) = hierarchical_models[part_model].detected_landmarks.at(mappings[mapping_ind].second); + detected_landmarks.at(mappings[mapping_ind].first + pdm.NumberOfPoints()) = hierarchical_models[part_model].detected_landmarks.at(mappings[mapping_ind].second + hierarchical_models[part_model].pdm.NumberOfPoints()); + } + } + } + pdm.CalcParams(params_global, params_local, detected_landmarks); pdm.CalcShape2D(detected_landmarks, params_local, params_global); } + } // Check detection correctness diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp index 48bec32d..a44540ce 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp @@ -384,7 +384,7 @@ void get_image_input_output_params(vector &input_image_files, vector= 10) + valid = speech == 0; + else + valid = true(size(speech,1), 1); + end + + % all indices in SEMAINE are valid + valid_ids{file_id} = valid; + + file_id = file_id + 1; + end + + labels = labels(1:file_id-1); + valid_ids = valid_ids(1:file_id-1); + filenames = filenames(1:file_id-1); + +end + diff --git a/matlab_runners/Action Unit Experiments/helpers/find_FERA2011.m b/matlab_runners/Action Unit Experiments/helpers/find_FERA2011.m new file mode 100644 index 00000000..411fcba8 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/helpers/find_FERA2011.m @@ -0,0 +1,31 @@ +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/'; +else + fprintf('FERA2011 location not found (or not defined)\n'); +end + +all_recs = {'train_001', 'train_002', 'train_003', 'train_004', 'train_005',... + 'train_006', 'train_007', 'train_008', 'train_009', 'train_010',... + 'train_011', 'train_012', 'train_013', 'train_014', 'train_015',... + 'train_016', 'train_017', 'train_018', 'train_019', 'train_020',... + 'train_021', 'train_022', 'train_023', 'train_024', 'train_025',... + 'train_026', 'train_027', 'train_028', 'train_029', 'train_030',... + 'train_031', 'train_032', 'train_033', 'train_034', 'train_035',... + 'train_036', 'train_037', 'train_038', 'train_039', 'train_040',... + 'train_041', 'train_042', 'train_043', 'train_044', 'train_045',... + 'train_046', 'train_047', 'train_048', 'train_049', 'train_050',... + 'train_051', 'train_052', 'train_053', 'train_054', 'train_055',... + 'train_056', 'train_057', 'train_058', 'train_059', 'train_060',... + 'train_061', 'train_062', 'train_063', 'train_064', 'train_065',... + 'train_066', 'train_067', 'train_068', 'train_069', 'train_070',... + 'train_071', 'train_072', 'train_073', 'train_074', 'train_075',... + 'train_076', 'train_077', 'train_078', 'train_079', 'train_080',... + 'train_081', 'train_082', 'train_083', 'train_084', 'train_085',... + 'train_086', 'train_087'}; + +% Making them person independent +train_recs = all_recs(1:56); +devel_recs = setdiff(all_recs, train_recs); + +all_aus = [1, 2, 4, 6, 7, 10, 12, 15, 17, 18, 25, 26]; \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt new file mode 100644 index 00000000..7e624a5b --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt @@ -0,0 +1,11 @@ +AU1 class, Precision - 0.501, Recall - 0.521, F1 - 0.511 +AU2 class, Precision - 0.379, Recall - 0.451, F1 - 0.412 +AU4 class, Precision - 0.459, Recall - 0.503, F1 - 0.480 +AU6 class, Precision - 0.738, Recall - 0.774, F1 - 0.755 +AU7 class, Precision - 0.762, Recall - 0.732, F1 - 0.747 +AU10 class, Precision - 0.847, Recall - 0.842, F1 - 0.844 +AU12 class, Precision - 0.888, Recall - 0.816, F1 - 0.850 +AU14 class, Precision - 0.547, Recall - 0.807, F1 - 0.652 +AU15 class, Precision - 0.402, Recall - 0.416, F1 - 0.409 +AU17 class, Precision - 0.632, Recall - 0.592, F1 - 0.611 +AU23 class, Precision - 0.338, Recall - 0.597, F1 - 0.431 diff --git a/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt new file mode 100644 index 00000000..60463028 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt @@ -0,0 +1,5 @@ +AU6 results - rms 0.863, corr 0.780, ccc - 0.735 +AU10 results - rms 1.035, corr 0.738, ccc - 0.684 +AU12 results - rms 0.814, corr 0.867, ccc - 0.834 +AU14 results - rms 1.107, corr 0.531, ccc - 0.486 +AU17 results - rms 0.834, corr 0.592, ccc - 0.487 diff --git a/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt new file mode 100644 index 00000000..a15af3a8 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt @@ -0,0 +1,17 @@ +AU1 class, Precision - 0.396, Recall - 0.724, F1 - 0.512 +AU2 class, Precision - 0.266, Recall - 0.850, F1 - 0.405 +AU4 class, Precision - 0.513, Recall - 0.877, F1 - 0.648 +AU5 class, Precision - 0.293, Recall - 0.968, F1 - 0.450 +AU6 class, Precision - 0.343, Recall - 0.823, F1 - 0.484 +AU7 class, Precision - 0.793, Recall - 0.750, F1 - 0.771 +AU9 class, Precision - 0.318, Recall - 0.960, F1 - 0.478 +AU10 class, Precision - 0.349, Recall - 0.769, F1 - 0.480 +AU12 class, Precision - 0.671, Recall - 0.863, F1 - 0.755 +AU14 class, Precision - 0.184, Recall - 0.872, F1 - 0.304 +AU15 class, Precision - 0.184, Recall - 0.858, F1 - 0.302 +AU17 class, Precision - 0.295, Recall - 0.886, F1 - 0.443 +AU20 class, Precision - 0.115, Recall - 0.930, F1 - 0.205 +AU23 class, Precision - 0.106, Recall - 0.874, F1 - 0.189 +AU25 class, Precision - 0.855, Recall - 0.871, F1 - 0.863 +AU26 class, Precision - 0.360, Recall - 0.813, F1 - 0.499 +AU45 class, Precision - 0.321, Recall - 0.768, F1 - 0.453 diff --git a/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt new file mode 100644 index 00000000..f4ff4c44 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt @@ -0,0 +1,17 @@ +AU1 intensity, Corr - 0.717, RMS - 0.894, CCC - 0.667 +AU2 intensity, Corr - 0.696, RMS - 0.774, CCC - 0.625 +AU4 intensity, Corr - 0.802, RMS - 0.603, CCC - 0.775 +AU5 intensity, Corr - 0.746, RMS - 0.835, CCC - 0.639 +AU6 intensity, Corr - 0.556, RMS - 0.736, CCC - 0.532 +AU7 intensity, Corr - 0.831, RMS - 0.757, CCC - 0.804 +AU9 intensity, Corr - 0.779, RMS - 0.551, CCC - 0.738 +AU10 intensity, Corr - 0.494, RMS - 0.721, CCC - 0.473 +AU12 intensity, Corr - 0.807, RMS - 0.717, CCC - 0.751 +AU14 intensity, Corr - 0.347, RMS - 0.905, CCC - 0.278 +AU15 intensity, Corr - 0.526, RMS - 0.539, CCC - 0.447 +AU17 intensity, Corr - 0.561, RMS - 0.882, CCC - 0.484 +AU20 intensity, Corr - 0.411, RMS - 0.885, CCC - 0.282 +AU23 intensity, Corr - 0.354, RMS - 0.754, CCC - 0.268 +AU25 intensity, Corr - 0.846, RMS - 0.816, CCC - 0.813 +AU26 intensity, Corr - 0.513, RMS - 0.958, CCC - 0.464 +AU45 intensity, Corr - 0.867, RMS - 0.550, CCC - 0.848 diff --git a/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt b/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt new file mode 100644 index 00000000..850f8976 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt @@ -0,0 +1,12 @@ +AU1 results - corr 0.832, rms 0.405, ccc - 0.809 +AU2 results - corr 0.763, rms 0.445, ccc - 0.658 +AU4 results - corr 0.863, rms 0.583, ccc - 0.838 +AU5 results - corr 0.750, rms 0.179, ccc - 0.720 +AU6 results - corr 0.702, rms 0.604, ccc - 0.657 +AU9 results - corr 0.745, rms 0.382, ccc - 0.690 +AU12 results - corr 0.865, rms 0.510, ccc - 0.850 +AU15 results - corr 0.753, rms 0.264, ccc - 0.717 +AU17 results - corr 0.656, rms 0.499, ccc - 0.589 +AU20 results - corr 0.633, rms 0.305, ccc - 0.589 +AU25 results - corr 0.914, rms 0.543, ccc - 0.903 +AU26 results - corr 0.805, rms 0.447, ccc - 0.763 diff --git a/matlab_runners/Action Unit Experiments/results/DISFA_valid_res_back.txt b/matlab_runners/Action Unit Experiments/results/DISFA_valid_res_back.txt new file mode 100644 index 00000000..850f8976 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/DISFA_valid_res_back.txt @@ -0,0 +1,12 @@ +AU1 results - corr 0.832, rms 0.405, ccc - 0.809 +AU2 results - corr 0.763, rms 0.445, ccc - 0.658 +AU4 results - corr 0.863, rms 0.583, ccc - 0.838 +AU5 results - corr 0.750, rms 0.179, ccc - 0.720 +AU6 results - corr 0.702, rms 0.604, ccc - 0.657 +AU9 results - corr 0.745, rms 0.382, ccc - 0.690 +AU12 results - corr 0.865, rms 0.510, ccc - 0.850 +AU15 results - corr 0.753, rms 0.264, ccc - 0.717 +AU17 results - corr 0.656, rms 0.499, ccc - 0.589 +AU20 results - corr 0.633, rms 0.305, ccc - 0.589 +AU25 results - corr 0.914, rms 0.543, ccc - 0.903 +AU26 results - corr 0.805, rms 0.447, ccc - 0.763 diff --git a/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt b/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt new file mode 100644 index 00000000..3ee062d3 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt @@ -0,0 +1,11 @@ +AU1 class, Precision - 0.588, Recall - 0.708, F1 - 0.643 +AU2 class, Precision - 0.473, Recall - 0.749, F1 - 0.580 +AU4 class, Precision - 0.509, Recall - 0.745, F1 - 0.605 +AU6 class, Precision - 0.834, Recall - 0.667, F1 - 0.741 +AU7 class, Precision - 0.685, Recall - 0.792, F1 - 0.735 +AU10 class, Precision - 0.520, Recall - 0.737, F1 - 0.610 +AU12 class, Precision - 0.919, Recall - 0.654, F1 - 0.764 +AU15 class, Precision - 0.362, Recall - 0.634, F1 - 0.461 +AU17 class, Precision - 0.230, Recall - 0.279, F1 - 0.252 +AU25 class, Precision - 0.205, Recall - 0.871, F1 - 0.332 +AU26 class, Precision - 0.122, Recall - 0.974, F1 - 0.217 diff --git a/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt b/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt new file mode 100644 index 00000000..8e83d548 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt @@ -0,0 +1,6 @@ +AU2 class, Precision - 0.386, Recall - 0.747, F1 - 0.509 +AU12 class, Precision - 0.427, Recall - 0.782, F1 - 0.553 +AU17 class, Precision - 0.124, Recall - 0.815, F1 - 0.215 +AU25 class, Precision - 0.340, Recall - 0.568, F1 - 0.426 +AU28 class, Precision - 0.486, Recall - 0.475, F1 - 0.481 +AU45 class, Precision - 0.297, Recall - 0.631, F1 - 0.404 diff --git a/matlab_runners/Action Unit Experiments/results/UNBC_valid_res_int.txt b/matlab_runners/Action Unit Experiments/results/UNBC_valid_res_int.txt new file mode 100644 index 00000000..cfac00f2 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/results/UNBC_valid_res_int.txt @@ -0,0 +1,6 @@ +AU6 results - rms 0.889, corr 0.510, ccc - 0.447 +AU7 results - rms 0.632, corr 0.583, ccc - 0.524 +AU10 results - rms 1.264, corr 0.074, ccc - 0.018 +AU12 results - rms 0.740, corr 0.636, ccc - 0.580 +AU25 results - rms 0.519, corr 0.513, ccc - 0.466 +AU26 results - rms 0.563, corr 0.411, ccc - 0.365 diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_BP4D.m b/matlab_runners/Action Unit Experiments/run_AU_prediction_BP4D.m index 5474f686..de807b68 100644 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_BP4D.m +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_BP4D.m @@ -22,7 +22,8 @@ new_bp4d_dirs = {}; % This might take some time for i = 1:numel(bp4d_dirs) dirs = dir([bp4d_loc, '/', bp4d_dirs{i}, '/T*']); - tmp_dir = [bp4d_loc, '/', bp4d_dirs{i}, '/tmp/']; + + tmp_dir = [bp4d_loc, '/../tmp/', bp4d_dirs{i}, '/']; new_bp4d_dirs = cat(1, new_bp4d_dirs, tmp_dir); if(~exist(tmp_dir, 'file')) @@ -51,11 +52,10 @@ end %% parfor f1=1:numel(new_bp4d_dirs) - % TODO rem - attempt a static model + command = [executable ' -asvid -no2Dfp -no3Dfp -noMparams -noPose -noGaze ']; [f,~,~] = fileparts(new_bp4d_dirs{f1}); - [f,~,~] = fileparts(f); [~,f,~] = fileparts(f); output_file = [out_loc f '.au.txt']; @@ -98,15 +98,8 @@ for c=1:numel(column_names) end %% -inds_au_int = zeros(size(aus_BP4D)); inds_au_class = zeros(size(aus_BP4D)); -for ind=1:numel(aus_BP4D) - if(~isempty(find(aus_pred_int==aus_BP4D(ind), 1))) - inds_au_int(ind) = find(aus_pred_int==aus_BP4D(ind)); - end -end - for ind=1:numel(aus_BP4D) if(~isempty(find(aus_pred_class==aus_BP4D(ind), 1))) inds_au_class(ind) = find(aus_pred_class==aus_BP4D(ind)); @@ -114,45 +107,26 @@ for ind=1:numel(aus_BP4D) end preds_all_class = []; -preds_all_int = []; for i=1:numel(new_bp4d_dirs) [f,~,~] = fileparts(new_bp4d_dirs{i}); - [f,~,~] = fileparts(f); [~,f,~] = fileparts(f); fname = [out_loc, f, '.au.txt']; preds = dlmread(fname, ',', 1, 0); - % Read all of the intensity AUs - preds_int = preds(:, inds_int_in_file); % Read all of the classification AUs preds_class = preds(:, inds_class_in_file); preds_all_class = cat(1, preds_all_class, preds_class); - preds_all_int = cat(1, preds_all_int, preds_int); end %% -f = fopen('BP4D_valid_res_class.txt', 'w'); +f = fopen('results/BP4D_valid_res_class.txt', 'w'); for au = 1:numel(aus_BP4D) - if(inds_au_int(au) ~= 0) - tp = sum(labels_gt(:,au) == 1 & preds_all_int(:, inds_au_int(au)) >= 1); - fp = sum(labels_gt(:,au) == 0 & preds_all_int(:, inds_au_int(au)) >= 1); - fn = sum(labels_gt(:,au) == 1 & preds_all_int(:, inds_au_int(au)) < 1); - tn = sum(labels_gt(:,au) == 0 & preds_all_int(:, inds_au_int(au)) < 1); - - precision = tp./(tp+fp); - recall = tp./(tp+fn); - - f1 = 2 * precision .* recall ./ (precision + recall); - - fprintf(f, 'AU%d intensity, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_BP4D(au), precision, recall, f1); - end - if(inds_au_class(au) ~= 0) tp = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 1); fp = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 1); @@ -177,10 +151,11 @@ find_BP4D; aus_BP4D = [6, 10, 12, 14, 17]; [ labels_gt, valid_ids, vid_ids, filenames] = extract_BP4D_labels_intensity(BP4D_dir_int, devel_recs, aus_BP4D); +valid_ids = cat(1, valid_ids{:}); labels_gt = cat(1, labels_gt{:}); %% Identifying which column IDs correspond to which AU -tab = readtable([out_loc, bp4d_dirs{1}, '_T1.au.txt']); +tab = readtable([out_loc, bp4d_dirs{1}, '.au.txt']); column_names = tab.Properties.VariableNames; % As there are both classes and intensities list and evaluate both of them @@ -205,9 +180,12 @@ end preds_all_int = []; -for i=1:numel(filenames) +for i=1:numel(new_bp4d_dirs) - fname = [out_loc, filenames{i}, '.au.txt']; + [f,~,~] = fileparts(new_bp4d_dirs{i}); + [~,f,~] = fileparts(f); + + fname = [out_loc, f, '.au.txt']; preds = dlmread(fname, ',', 1, 0); % Read all of the intensity AUs @@ -216,9 +194,9 @@ for i=1:numel(filenames) end %% -f = fopen('BP4D_valid_res_int.txt', 'w'); +f = fopen('results/BP4D_valid_res_int.txt', 'w'); for au = 1:numel(aus_BP4D) - [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all_int(:, inds_au_int(au)), labels_gt(:,au)); - fprintf(f, 'AU%d results - corr %.3f, ccc - %.3f\n', aus_BP4D(au), corrs, ccc); + [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all_int(valid_ids, inds_au_int(au)), labels_gt(valid_ids,au)); + fprintf(f, 'AU%d results - rms %.3f, corr %.3f, ccc - %.3f\n', aus_BP4D(au), rms, corrs, ccc); end fclose(f); \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.asv b/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.asv deleted file mode 100644 index 8659812e..00000000 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.asv +++ /dev/null @@ -1,189 +0,0 @@ -% Perform static model prediction using images - -clear - -addpath('./helpers'); - -find_Bosphorus; -out_loc = './out_bosph/'; - -if(~exist(out_loc, 'dir')) - mkdir(out_loc); -end - -%% -executable = '"../../x64/Release/FaceLandmarkImg.exe"'; - -bosph_dirs = dir([Bosphorus_dir, '/BosphorusDB/BosphorusDB/bs*']); - -%% -parfor f1=1:numel(bosph_dirs) - - command = executable; - - input_dir = [Bosphorus_dir, '/BosphorusDB/BosphorusDB/', bosph_dirs(f1).name]; - command = cat(2, command, [' -fdir "' input_dir '" -ofdir "' out_loc '"']); - command = cat(2, command, ' -multi_view 1 -wild'); - - dos(command); - -end - -%% - -aus_Bosph = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 45]; - -[ labels_gt, valid_ids, filenames] = extract_Bosphorus_labels(Bosphorus_dir, all_recs, aus_Bosph); - -%% Read the predicted values - -% First read the first file to get the ids and line numbers -% au occurences -fid = fopen([out_loc, filenames{1}, '_det_0.pts']); -data = fgetl(fid); - -ind = 0; -beg_ind = -1; -end_ind = -1; -aus_det = []; -aus_det_id = []; - -while ischar(data) - if(~isempty(findstr(data, 'au occurences:'))) - num_occurences = str2num(data(numel('au occurences:')+1:end)); - % Skip ahead two lines - data = fgetl(fid); - data = fgetl(fid); - ind = ind + 2; - beg_ind = ind; - end - - if(beg_ind ~= -1 && end_ind == -1) - if(~isempty(findstr(data, '}'))) - end_ind = ind; - else - d = strsplit(data, ' '); - aus_det = cat(1, aus_det, str2num(d{1}(3:end))); - aus_det_id = cat(1, aus_det_id, ind - beg_ind + 1); - end - end - - data = fgetl(fid); - ind = ind + 1; -end -fclose(fid); - -%% -labels_pred = zeros(size(labels_gt)); -for i=1:numel(filenames) - - % Will need to read the relevant AUs only - if(exist([out_loc, filenames{i}, '_det_0.pts'], 'file')) - fid = fopen([out_loc, filenames{i}, '_det_0.pts']); - for k=1:beg_ind - data = fgetl(fid); - end - - for k=1:num_occurences - data = fgetl(fid); - if(sum(aus_Bosph == aus_det(k))>0) - d = strsplit(data, ' '); - labels_pred(i, aus_Bosph == aus_det(k)) = str2num(d{2}); - end - end - - fclose(fid); - end -end - - -%% - - -%% -f = fopen('Bosphorus_res_class.txt', 'w'); -for au = 1:numel(aus_Bosph) - - if(inds_au_int(au) ~= 0) - tp = sum(labels_gt(:,au) == 1 & preds_all_int(:, inds_au_int(au)) >= 1); - fp = sum(labels_gt(:,au) == 0 & preds_all_int(:, inds_au_int(au)) >= 1); - fn = sum(labels_gt(:,au) == 1 & preds_all_int(:, inds_au_int(au)) < 1); - tn = sum(labels_gt(:,au) == 0 & preds_all_int(:, inds_au_int(au)) < 1); - - precision = tp./(tp+fp); - recall = tp./(tp+fn); - - f1 = 2 * precision .* recall ./ (precision + recall); - - fprintf(f, 'AU%d intensity, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_BP4D(au), precision, recall, f1); - end - - if(inds_au_class(au) ~= 0) - tp = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 1); - fp = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 1); - fn = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 0); - tn = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 0); - - precision = tp./(tp+fp); - recall = tp./(tp+fn); - - f1 = 2 * precision .* recall ./ (precision + recall); - - fprintf(f, 'AU%d class, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_BP4D(au), precision, recall, f1); - end - -end -fclose(f); - -%% -addpath('./helpers/'); - -find_BP4D; - -aus_BP4D = [6, 10, 12, 14, 17]; -[ labels_gt, valid_ids, vid_ids, filenames] = extract_BP4D_labels_intensity(BP4D_dir_int, devel_recs, aus_BP4D); -labels_gt = cat(1, labels_gt{:}); - -%% Identifying which column IDs correspond to which AU -tab = readtable([out_loc, bosph_dirs{1}, '_T1.au.txt']); -column_names = tab.Properties.VariableNames; - -% As there are both classes and intensities list and evaluate both of them -aus_pred_int = []; -inds_int_in_file = []; - -for c=1:numel(column_names) - if(strfind(column_names{c}, '_r') > 0) - aus_pred_int = cat(1, aus_pred_int, int32(str2num(column_names{c}(3:end-2)))); - inds_int_in_file = cat(1, inds_int_in_file, c); - end -end - -%% -inds_au_int = zeros(size(aus_BP4D)); - -for ind=1:numel(aus_BP4D) - if(~isempty(find(aus_pred_int==aus_BP4D(ind), 1))) - inds_au_int(ind) = find(aus_pred_int==aus_BP4D(ind)); - end -end - -preds_all_int = []; - -for i=1:numel(filenames) - - fname = [out_loc, filenames{i}, '.au.txt']; - preds = dlmread(fname, ',', 1, 0); - - % Read all of the intensity AUs - preds_int = preds(:, inds_int_in_file); - preds_all_int = cat(1, preds_all_int, preds_int); -end - -%% -f = fopen('BP4D_valid_res_int.txt', 'w'); -for au = 1:numel(aus_BP4D) - [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all_int(:, inds_au_int(au)), labels_gt(:,au)); - fprintf(f, 'AU%d results - corr %.3f, ccc - %.3f\n', aus_BP4D(au), corrs, ccc); -end -fclose(f); \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.m b/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.m index 80d0518d..fff14c52 100644 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.m +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.m @@ -23,7 +23,7 @@ parfor f1=1:numel(bosph_dirs) input_dir = [Bosphorus_dir, '/BosphorusDB/BosphorusDB/', bosph_dirs(f1).name]; command = cat(2, command, [' -fdir "' input_dir '" -ofdir "' out_loc '"']); - command = cat(2, command, ' -multi_view 1 -wild'); + command = cat(2, command, ' -multi_view 1 -wild -q'); dos(command); @@ -97,7 +97,7 @@ for i=1:numel(filenames) end %% -f = fopen('Bosphorus_res_class.txt', 'w'); +f = fopen('results/Bosphorus_res_class.txt', 'w'); labels_gt_bin = labels_gt; labels_gt_bin(labels_gt_bin > 1) = 1; for au = 1:numel(aus_Bosph) @@ -179,22 +179,12 @@ for i=1:numel(filenames) end %% -f = fopen('Bosphorus_res_class.txt', 'w'); -labels_gt_bin = labels_gt; -labels_gt_bin(labels_gt_bin > 1) = 1; +f = fopen('results/Bosphorus_res_int.txt', 'w'); for au = 1:numel(aus_Bosph) - tp = sum(labels_gt_bin(:,au) == 1 & labels_pred(:, au) == 1); - fp = sum(labels_gt_bin(:,au) == 0 & labels_pred(:, au) == 1); - fn = sum(labels_gt_bin(:,au) == 1 & labels_pred(:, au) == 0); - tn = sum(labels_gt_bin(:,au) == 0 & labels_pred(:, au) == 0); - - precision = tp./(tp+fp); - recall = tp./(tp+fn); - - f1 = 2 * precision .* recall ./ (precision + recall); - - fprintf(f, 'AU%d class, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_Bosph(au), precision, recall, f1); + [ ~, ~, corrs, ccc, rms, ~ ] = evaluate_regression_results( labels_pred(:, au), labels_gt(:, au)); + + fprintf(f, 'AU%d intensity, Corr - %.3f, RMS - %.3f, CCC - %.3f\n', aus_Bosph(au), corrs, rms, ccc); end fclose(f); diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_DISFA.m b/matlab_runners/Action Unit Experiments/run_AU_prediction_DISFA.m index 166fab4e..20b0c7dc 100644 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_DISFA.m +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_DISFA.m @@ -4,7 +4,7 @@ executable = '"../../x64/Release/FeatureExtraction.exe"'; videos = dir([DISFA_dir, '*.avi']); -output = 'AU_preds/'; +output = 'out_DISFA/'; if(~exist(output, 'file')) mkdir(output); end @@ -33,7 +33,7 @@ end % the results Label_dir = 'D:/Datasets/DISFA/ActionUnit_Labels/'; -prediction_dir = 'AU_preds/'; +prediction_dir = 'out_DISFA/'; label_folders = dir([Label_dir, 'SN*']); @@ -83,11 +83,11 @@ for i=1:numel(preds_files) end %% now do the actual evaluation that the collection has been done -f = fopen('DISFA_valid_res.txt', 'w'); +f = fopen('results/DISFA_valid_res.txt', 'w'); au_res = zeros(1, numel(AUs_disfa)); for au = 1:numel(AUs_disfa) [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all(:,au), labels_all(:,au)); - fprintf(f, 'AU%d results - corr %.3f, ccc - %.3f\n', AUs_disfa(au), corrs, ccc); + fprintf(f, 'AU%d results - corr %.3f, rms %.3f, ccc - %.3f\n', AUs_disfa(au), corrs, rms, ccc); au_res(au) = ccc; end fclose(f); \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_FERA2011.m b/matlab_runners/Action Unit Experiments/run_AU_prediction_FERA2011.m new file mode 100644 index 00000000..f2d2f28a --- /dev/null +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_FERA2011.m @@ -0,0 +1,116 @@ +clear + +fera_loc = 'D:\Datasets\fera\'; + +out_loc = './out_fera/'; + +if(~exist(out_loc, 'dir')) + mkdir(out_loc); +end + +%% +executable = '"../../x64/Release/FeatureExtraction.exe"'; + +fera_dirs = dir([fera_loc, 'au_train*']); + +for f1=1:numel(fera_dirs) + + fera_dirs_level_2 = dir([fera_loc, fera_dirs(f1).name]); + fera_dirs_level_2 = fera_dirs_level_2(3:end); + + parfor f2=1:numel(fera_dirs_level_2) + + vid_files = dir([fera_loc, fera_dirs(f1).name, '/', fera_dirs_level_2(f2).name, '/*.avi']); + + for v=1:numel(vid_files) + + command = [executable ' -asvid -q -no2Dfp -no3Dfp -noMparams -noPose -noGaze -au_static ']; + + 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 name '.au.txt']; + + command = cat(2, command, [' -f "' curr_vid '" -of "' output_file '"']); + + + dos(command); + end + end +end + +%% +addpath('./helpers/'); + +find_FERA2011; + +[ labels_gt, valid_ids, filenames] = extract_FERA2011_labels(FERA2011_dir, all_recs, all_aus); +labels_gt = cat(1, labels_gt{:}); + +for i=1:numel(filenames) + filenames{i} = filenames{i}(1:end-3); +end + +%% Identifying which column IDs correspond to which AU +tab = readtable([out_loc, 'train_001.au.txt']); +column_names = tab.Properties.VariableNames; + +% As there are both classes and intensities list and evaluate both of them +aus_pred_class = []; + +inds_class_in_file = []; + +for c=1:numel(column_names) + if(strfind(column_names{c}, '_c') > 0) + aus_pred_class = cat(1, aus_pred_class, int32(str2num(column_names{c}(3:end-2)))); + inds_class_in_file = cat(1, inds_class_in_file, c); + end +end + +%% +inds_au_class = zeros(size(all_aus)); + +for ind=1:numel(all_aus) + if(~isempty(find(aus_pred_class==all_aus(ind), 1))) + inds_au_class(ind) = find(aus_pred_class==all_aus(ind)); + end +end + +%% +preds_all_class = []; + +for i=1:numel(filenames) + + fname = dir([out_loc, '/*', filenames{i}, '.au.txt']); + fname = fname(1).name; + + preds = dlmread([out_loc '/' fname], ',', 1, 0); + + % Read all of the intensity AUs + preds_class = preds(:, inds_class_in_file); + + preds_all_class = cat(1, preds_all_class, preds_class); +end + +%% +f = fopen('results/FERA2011_res_class.txt', 'w'); +au_res = []; +for au = 1:numel(all_aus) + if(inds_au_class(au) ~= 0) + + tp = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 1); + fp = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 1); + fn = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 0); + tn = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 0); + + precision = tp./(tp+fp); + recall = tp./(tp+fn); + + f1 = 2 * precision .* recall ./ (precision + recall); + + fprintf(f, 'AU%d class, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', all_aus(au), precision, recall, f1); + au_res = cat(1, au_res, f1); + end + +end +fclose(f); \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_SEMAINE.m b/matlab_runners/Action Unit Experiments/run_AU_prediction_SEMAINE.m index 52d5fb4c..1ce89d6a 100644 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_SEMAINE.m +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_SEMAINE.m @@ -10,7 +10,7 @@ if(~exist(out_loc, 'dir')) end executable = '"../../x64/Release/FeatureExtraction.exe"'; - +%% parfor f1=1:numel(devel_recs) @@ -95,22 +95,9 @@ for i=1:numel(devel_recs) end %% -f = fopen('SEMAINE_valid_res.txt', 'w'); +f = fopen('results/SEMAINE_valid_res.txt', 'w'); +f1s = zeros(1, numel(aus_SEMAINE)); for au = 1:numel(aus_SEMAINE) - - if(inds_au_int(au) ~= 0) - tp = sum(labels_gt(:,au) == 1 & preds_all_int(:, inds_au_int(au)) >= 1); - fp = sum(labels_gt(:,au) == 0 & preds_all_int(:, inds_au_int(au)) >= 1); - fn = sum(labels_gt(:,au) == 1 & preds_all_int(:, inds_au_int(au)) < 1); - tn = sum(labels_gt(:,au) == 0 & preds_all_int(:, inds_au_int(au)) < 1); - - precision = tp./(tp+fp); - recall = tp./(tp+fn); - - f1 = 2 * precision .* recall ./ (precision + recall); - - fprintf(f, 'AU%d intensity, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_SEMAINE(au), precision, recall, f1); - end if(inds_au_class(au) ~= 0) tp = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 1); @@ -122,7 +109,7 @@ for au = 1:numel(aus_SEMAINE) recall = tp./(tp+fn); f1 = 2 * precision .* recall ./ (precision + recall); - + f1s(au) = f1; fprintf(f, 'AU%d class, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_SEMAINE(au), precision, recall, f1); end diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_UNBC.m b/matlab_runners/Action Unit Experiments/run_AU_prediction_UNBC.m index 6666f36d..9e71ae32 100644 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_UNBC.m +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_UNBC.m @@ -17,7 +17,7 @@ unbc_dirs = {'042-ll042', '043-jh043', '047-jl047', '048-aa048', '049-bm049',... '103-jk103', '106-nm106', '107-hs107', '108-th108', '109-ib109',... '115-jy115', '120-kz120', '121-vw121', '123-jh123', '124-dn124'}; -parfor f1=1:numel(unbc_dirs) +for f1=1:numel(unbc_dirs) if(isdir([unbc_loc, unbc_dirs{f1}])) @@ -61,25 +61,18 @@ column_names = tab.Properties.VariableNames; % As there are both classes and intensities list and evaluate both of them aus_pred_int = []; -aus_pred_class = []; inds_int_in_file = []; -inds_class_in_file = []; for c=1:numel(column_names) if(strfind(column_names{c}, '_r') > 0) aus_pred_int = cat(1, aus_pred_int, int32(str2num(column_names{c}(3:end-2)))); inds_int_in_file = cat(1, inds_int_in_file, c); end - if(strfind(column_names{c}, '_c') > 0) - aus_pred_class = cat(1, aus_pred_class, int32(str2num(column_names{c}(3:end-2)))); - inds_class_in_file = cat(1, inds_class_in_file, c); - end end %% inds_au_int = zeros(size(aus_UNBC)); -inds_au_class = zeros(size(aus_UNBC)); for ind=1:numel(aus_UNBC) if(~isempty(find(aus_pred_int==aus_UNBC(ind), 1))) @@ -87,13 +80,7 @@ for ind=1:numel(aus_UNBC) end end -for ind=1:numel(aus_UNBC) - if(~isempty(find(aus_pred_class==aus_UNBC(ind), 1))) - inds_au_class(ind) = find(aus_pred_class==aus_UNBC(ind)); - end -end -preds_all_class = []; preds_all_int = []; for i=1:numel(filenames) @@ -106,83 +93,15 @@ for i=1:numel(filenames) % Read all of the intensity AUs preds_int = preds(:, inds_int_in_file); - % Read all of the classification AUs - preds_class = preds(:, inds_class_in_file); - - preds_all_class = cat(1, preds_all_class, preds_class); preds_all_int = cat(1, preds_all_int, preds_int); end %% -f = fopen('UNBC_valid_res_class.txt', 'w'); +f = fopen('results/UNBC_valid_res_int.txt', 'w'); for au = 1:numel(aus_UNBC) - if(inds_au_class(au) ~= 0) - tp = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 1); - fp = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 1); - fn = sum(labels_gt(:,au) == 1 & preds_all_class(:, inds_au_class(au)) == 0); - tn = sum(labels_gt(:,au) == 0 & preds_all_class(:, inds_au_class(au)) == 0); - - precision = tp./(tp+fp); - recall = tp./(tp+fn); - - f1 = 2 * precision .* recall ./ (precision + recall); - - fprintf(f, 'AU%d class, Precision - %.3f, Recall - %.3f, F1 - %.3f\n', aus_UNBC(au), precision, recall, f1); - end - -end -fclose(f); - -%% -addpath('./helpers/'); - -find_BP4D; - -aus_UNBC = [6, 10, 12, 14, 17]; -[ labels_gt, valid_ids, vid_ids, filenames] = extract_BP4D_labels_intensity(BP4D_dir_int, devel_recs, aus_UNBC); -labels_gt = cat(1, labels_gt{:}); - -%% Identifying which column IDs correspond to which AU -tab = readtable([out_loc, bp4d_dirs{1}, '_T1.au.txt']); -column_names = tab.Properties.VariableNames; - -% As there are both classes and intensities list and evaluate both of them -aus_pred_int = []; -inds_int_in_file = []; - -for c=1:numel(column_names) - if(strfind(column_names{c}, '_r') > 0) - aus_pred_int = cat(1, aus_pred_int, int32(str2num(column_names{c}(3:end-2)))); - inds_int_in_file = cat(1, inds_int_in_file, c); - end -end - -%% -inds_au_int = zeros(size(aus_UNBC)); - -for ind=1:numel(aus_UNBC) - if(~isempty(find(aus_pred_int==aus_UNBC(ind), 1))) - inds_au_int(ind) = find(aus_pred_int==aus_UNBC(ind)); - end -end - -preds_all_int = []; - -for i=1:numel(filenames) - - fname = [out_loc, filenames{i}, '.au.txt']; - preds = dlmread(fname, ',', 1, 0); - - % Read all of the intensity AUs - preds_int = preds(:, inds_int_in_file); - preds_all_int = cat(1, preds_all_int, preds_int); -end - -%% -f = fopen('BP4D_valid_res_int.txt', 'w'); -for au = 1:numel(aus_UNBC) [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all_int(:, inds_au_int(au)), labels_gt(:,au)); - fprintf(f, 'AU%d results - corr %.3f, ccc - %.3f\n', aus_UNBC(au), corrs, ccc); + fprintf(f, 'AU%d results - rms %.3f, corr %.3f, ccc - %.3f\n', aus_UNBC(au), rms, corrs, ccc); + end fclose(f); \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/run_BP4D_devel_txt_intensity.m b/matlab_runners/Action Unit Experiments/run_BP4D_devel_txt_intensity.m deleted file mode 100644 index bd086fd5..00000000 --- a/matlab_runners/Action Unit Experiments/run_BP4D_devel_txt_intensity.m +++ /dev/null @@ -1,51 +0,0 @@ -clear - -addpath('../data extraction/'); -find_BP4D; - -bp4d_loc = [BP4D_dir '../BP4D/BP4D-training/']; - -out_loc = './out_bp4d_static_intensity/'; - -if(~exist(out_loc, 'dir')) - mkdir(out_loc); -end - -features_exe = '"../C++ models/Release/AUPrediction.exe"'; - -% Go two levels deep -bp4d_dirs = devel_recs; - -in_txt = './txt_files/'; - -parfor f1=1:numel(bp4d_dirs) - - if(isdir([bp4d_loc, bp4d_dirs{f1}])) - - bp4d_2_dirs = dir([bp4d_loc, bp4d_dirs{f1}]); - bp4d_2_dirs = bp4d_2_dirs(3:end); - - f1_dir = bp4d_dirs{f1}; - - for f2=1:numel(bp4d_2_dirs) - - command = [features_exe, ' -scaling 0.4 -auloc "./AU_predictors/AU_SVR_BP4D_static.txt" -fx 2000 -fy 2000 -rigid -asvid -simscale 0.7 -simsize 112 ']; - - f2_dir = bp4d_2_dirs(f2).name; - if(isdir([bp4d_loc, bp4d_dirs{f1}])) - - curr_txt_file = [in_txt, f1_dir, '_', f2_dir, '.txt']; - - name = [f1_dir '_' f2_dir]; - output_file = [out_loc name '/']; - - output_aus = [out_loc name '.au.txt']; - - command = cat(2, command, [' -ftxt "' curr_txt_file '" -oausreg "' output_aus '"']); - end - - dos(command); - end - - end -end \ No newline at end of file diff --git a/matlab_runners/Feature Point Experiments/Run_CLM_fitting_on_images.m b/matlab_runners/Feature Point Experiments/Run_CLM_fitting_on_images.m index ebe1207e..131a15de 100644 --- a/matlab_runners/Feature Point Experiments/Run_CLM_fitting_on_images.m +++ b/matlab_runners/Feature Point Experiments/Run_CLM_fitting_on_images.m @@ -46,7 +46,7 @@ command = cat(2, command, [' -mloc ' model ' ']); command = cat(2, command, [' -multi_view ' num2str(multi_view) ' ']); tic -for i=1:numel(dataset_dirs) +parfor i=1:numel(dataset_dirs) input_loc = ['-fdir "', dataset_dirs{i}, '" ']; command_c = cat(2, command, input_loc); diff --git a/matlab_runners/Feature Point Experiments/results/fps_yt.mat b/matlab_runners/Feature Point Experiments/results/fps_yt.mat index dfe869e4..fea77025 100644 Binary files a/matlab_runners/Feature Point Experiments/results/fps_yt.mat and b/matlab_runners/Feature Point Experiments/results/fps_yt.mat differ diff --git a/matlab_runners/Feature Point Experiments/results/fps_yt.txt b/matlab_runners/Feature Point Experiments/results/fps_yt.txt index b1d3e4ca..8c126310 100644 --- a/matlab_runners/Feature Point Experiments/results/fps_yt.txt +++ b/matlab_runners/Feature Point Experiments/results/fps_yt.txt @@ -1,3 +1,3 @@ Model, mean, median -OpenFace (CLNF): 0.0561, 0.0512 +OpenFace (CLNF): 0.0562, 0.0515 CLM: 0.0683, 0.0602 diff --git a/matlab_runners/Feature Point Experiments/results/in-the-wild-res-no-outline.pdf b/matlab_runners/Feature Point Experiments/results/in-the-wild-res-no-outline.pdf index 59e0793c..9adb48ca 100644 Binary files a/matlab_runners/Feature Point Experiments/results/in-the-wild-res-no-outline.pdf and b/matlab_runners/Feature Point Experiments/results/in-the-wild-res-no-outline.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/landmark_detections.mat b/matlab_runners/Feature Point Experiments/results/landmark_detections.mat index 50749372..d8706064 100644 Binary files a/matlab_runners/Feature Point Experiments/results/landmark_detections.mat and b/matlab_runners/Feature Point Experiments/results/landmark_detections.mat differ diff --git a/matlab_runners/Feature Point Experiments/run_clm_feature_point_tests_wild.m b/matlab_runners/Feature Point Experiments/run_clm_feature_point_tests_wild.m index 9df6594a..0587666d 100644 --- a/matlab_runners/Feature Point Experiments/run_clm_feature_point_tests_wild.m +++ b/matlab_runners/Feature Point Experiments/run_clm_feature_point_tests_wild.m @@ -6,7 +6,7 @@ curr_dir = cd('.'); if(exist([getenv('USERPROFILE') '/Dropbox/AAM/test data/'], 'file')) database_root = [getenv('USERPROFILE') '/Dropbox/AAM/test data/']; else - database_root = 'F:/Dropbox/Dropbox/AAM/test data/'; + database_root = 'D:/Dropbox/Dropbox/AAM/test data/'; end %% Run using CLNF in the wild model diff --git a/matlab_runners/Feature Point Experiments/run_yt_dataset.m b/matlab_runners/Feature Point Experiments/run_yt_dataset.m index bb72a233..aeca5b8c 100644 --- a/matlab_runners/Feature Point Experiments/run_yt_dataset.m +++ b/matlab_runners/Feature Point Experiments/run_yt_dataset.m @@ -11,7 +11,7 @@ end if(exist([getenv('USERPROFILE') '/Dropbox/AAM/test data/'], 'file')) database_root = [getenv('USERPROFILE') '/Dropbox/AAM/test data/']; else - database_root = 'F:/Dropbox/Dropbox/AAM/test data/'; + database_root = 'D:/Dropbox/Dropbox/AAM/test data/'; end database_root = [database_root, '/ytceleb_annotations_CVPR2014/']; diff --git a/matlab_runners/Full_test_suite.m b/matlab_runners/Full_test_suite.m index 72480ab5..b8c36ce7 100644 --- a/matlab_runners/Full_test_suite.m +++ b/matlab_runners/Full_test_suite.m @@ -24,13 +24,21 @@ cd('../'); %% AUs cd('Action Unit Experiments'); run_AU_prediction_DISFA -assert(mean(au_res) > 0.6); +assert(mean(au_res) > 0.7); + +run_AU_prediction_SEMAINE +assert(mean(f1s) > 0.42); + +run_AU_prediction_FERA2011 +assert(mean(f1s) > 0.5); + cd('../'); %% Gaze cd('Gaze Experiments'); extract_mpii_gaze_test -assert(median_error < 9.5) +assert(mean_error < 9.5) +assert(median_error < 9.0) cd('../'); %% Demos diff --git a/matlab_runners/Gaze Experiments/extract_mpii_gaze_test.m b/matlab_runners/Gaze Experiments/extract_mpii_gaze_test.m index b1f990bf..fd0fa7d8 100644 --- a/matlab_runners/Gaze Experiments/extract_mpii_gaze_test.m +++ b/matlab_runners/Gaze Experiments/extract_mpii_gaze_test.m @@ -5,6 +5,8 @@ curr_dir = cd('.'); % Replace this with your downloaded 300-W train data if(exist([getenv('USERPROFILE') '/Dropbox/AAM/eye_clm/mpii_data/'], 'file')) database_root = [getenv('USERPROFILE') '/Dropbox/AAM/eye_clm/mpii_data/']; +elseif(exist('D:\Dropbox/Dropbox/AAM/eye_clm/mpii_data/', 'file')) + database_root = 'D:\Dropbox/Dropbox/AAM/eye_clm/mpii_data/'; else fprintf('MPII gaze dataset not found\n'); end diff --git a/matlab_runners/Gaze Experiments/mpii_1500_errs.mat b/matlab_runners/Gaze Experiments/mpii_1500_errs.mat index 1d2dcd6b..eb03d00f 100644 Binary files a/matlab_runners/Gaze Experiments/mpii_1500_errs.mat and b/matlab_runners/Gaze Experiments/mpii_1500_errs.mat differ diff --git a/matlab_runners/Gaze Experiments/mpii_1500_errs.txt b/matlab_runners/Gaze Experiments/mpii_1500_errs.txt index 9618f9e4..4058ebdb 100644 --- a/matlab_runners/Gaze Experiments/mpii_1500_errs.txt +++ b/matlab_runners/Gaze Experiments/mpii_1500_errs.txt @@ -1,2 +1,2 @@ Mean error, median error -9.944, 9.314 +9.469, 8.773 diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF.mat b/matlab_runners/Head Pose Experiments/results/Pose_OF.mat index 8a4272bd..27a26706 100644 Binary files a/matlab_runners/Head Pose Experiments/results/Pose_OF.mat and b/matlab_runners/Head Pose Experiments/results/Pose_OF.mat differ diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF.txt b/matlab_runners/Head Pose Experiments/results/Pose_OF.txt index 338e150c..dc63c7f8 100644 --- a/matlab_runners/Head Pose Experiments/results/Pose_OF.txt +++ b/matlab_runners/Head Pose Experiments/results/Pose_OF.txt @@ -1,4 +1,4 @@ Dataset and model, pitch, yaw, roll, mean, median -biwi error: 7.990, 5.614, 4.448, 6.017, 2.624 +biwi error: 7.970, 5.611, 4.436, 6.006, 2.624 bu error: 2.762, 4.103, 2.568, 3.145, 2.118 ict error: 3.619, 3.606, 3.625, 3.617, 2.027 diff --git a/matlab_runners/Readme.txt b/matlab_runners/Readme.txt index 965223ad..a724b14c 100644 --- a/matlab_runners/Readme.txt +++ b/matlab_runners/Readme.txt @@ -39,7 +39,9 @@ run_yt_dataset.m run the CLNF model on the YTCeleb Database (https://sites.googl ======================== Action Unit Experiments ============================ -Evaluating our Facial Action Unit detection system on DISFA. As the models were partly trained on DISFA the results might not generalise across datasets. However, this demonstrates how AU prediction can be done with our system. +Evaluating our Facial Action Unit detection system on DISFA, FERA2011 and SEMAINE datasets. + +As the models were partially trained/validated on DISFA, FERA2011, BP4D, UNBC, Bosphorus, and SEMAINE datasets the results might not generalise across datasets. However, this demonstrates how AU prediction can be done with our system. ======================== Gaze Experiments ============================ diff --git a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity_dynamic.m b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity_dynamic.m new file mode 100644 index 00000000..8dc4ca7b --- /dev/null +++ b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity_dynamic.m @@ -0,0 +1,115 @@ +function [data_train, labels_train, vid_ids_train_string, data_devel, labels_devel, vid_ids_devel_string, raw_devel, PC, means_norm, stds_norm, success_devel] = ... + Prepare_HOG_AU_data_generic_intensity_dynamic(train_users, devel_users, au_train, bp4d_dir, hog_data_dir) + +%% +addpath(genpath('../data extraction/')); + +% First extracting the labels +[ labels_train, valid_ids_train, vid_ids_train ] = extract_BP4D_labels_intensity(bp4d_dir, train_users, au_train); +au_other = setdiff([6, 10, 12, 14, 17], au_train); +[ labels_other, ~, ~ ] = extract_BP4D_labels_intensity(bp4d_dir, train_users, au_other); +labels_other = cat(1, labels_other{:}); + +train_geom_data = Read_geom_files_dynamic(train_users, hog_data_dir); + +% Reading in the HOG data (of only relevant frames) +[train_appearance_data, valid_ids_train_hog, vid_ids_train_string] = Read_HOG_files_dynamic_pp(train_users, hog_data_dir); +train_appearance_data = cat(2, train_appearance_data, train_geom_data); + +% Subsample the data to make training quicker +labels_train = cat(1, labels_train{:}); +valid_ids_train = logical(cat(1, valid_ids_train{:})); + +reduced_inds = false(size(labels_train,1),1); +reduced_inds(labels_train > 0) = true; + +% make sure the same number of positive and negative samples is taken +pos_count = sum(labels_train > 0); +neg_count = sum(labels_train == 0); + +num_other = floor(pos_count / (size(labels_other, 2))); + +inds_all = 1:size(labels_train,1); + +if(numel(train_users) > 0) + if(numel(au_train) == 1) + for i=1:size(labels_other, 2)+1 + + if(i > size(labels_other, 2)) + % fill the rest with a proportion of neutral + inds_other = inds_all(sum(labels_other,2)==0 & ~labels_train ); + num_other_i = min(numel(inds_other), pos_count - sum(labels_train(reduced_inds,:)==0)); + else + % take a proportion of each other AU + inds_other = inds_all(labels_other(:, i) & ~labels_train ); + num_other_i = min(numel(inds_other), num_other); + end + inds_other_to_keep = inds_other(round(linspace(1, numel(inds_other), num_other_i))); + reduced_inds(inds_other_to_keep) = true; + + end + end + % Remove invalid ids based on CLM failing or AU not being labelled + reduced_inds(~valid_ids_train) = false; + reduced_inds(~valid_ids_train_hog) = false; + + labels_other = labels_other(reduced_inds, :); + labels_train = labels_train(reduced_inds,:); + train_appearance_data = train_appearance_data(reduced_inds,:); + vid_ids_train_string = vid_ids_train_string(reduced_inds,:); + +end + +%% Extract devel data + +% First extracting the labels +[ labels_devel, valid_ids_devel, vid_ids_devel ] = extract_BP4D_labels_intensity(bp4d_dir, devel_users, au_train); + +devel_geom_data = Read_geom_files_dynamic(devel_users, hog_data_dir); +% Reading in the HOG data (of only relevant frames) +[devel_appearance_data, valid_ids_devel_hog, vid_ids_devel_string] = Read_HOG_files_dynamic_pp(devel_users, hog_data_dir); +devel_appearance_data = cat(2, devel_appearance_data, devel_geom_data); + +valid_ids_devel = logical(cat(1, valid_ids_devel{:})); + +labels_devel = cat(1, labels_devel{:}); + +success_devel = valid_ids_devel; + +% Peforming zone specific masking +if(au_train < 8 || au_train == 43 || au_train == 45) % upper face AUs ignore bottom face + % normalise the data + pca_file = '../../pca_generation/generic_face_upper.mat'; + load(pca_file); +elseif(au_train > 9) % lower face AUs ignore upper face and the sides + % normalise the data + pca_file = '../../pca_generation/generic_face_lower.mat'; + load(pca_file); +elseif(au_train == 9) % Central face model + % normalise the data + pca_file = '../../pca_generation/generic_face_rigid.mat'; + load(pca_file); +end + +PC_n = zeros(size(PC)+size(devel_geom_data, 2)); +PC_n(1:size(PC,1), 1:size(PC,2)) = PC; +PC_n(size(PC,1)+1:end, size(PC,2)+1:end) = eye(size(devel_geom_data, 2)); +PC = PC_n; + +means_norm = cat(2, means_norm, zeros(1, size(devel_geom_data,2))); +stds_norm = cat(2, stds_norm, ones(1, size(devel_geom_data,2))); + +% Grab all data for validation as want good params for all the data +raw_devel = devel_appearance_data; + +devel_appearance_data = bsxfun(@times, bsxfun(@plus, devel_appearance_data, -means_norm), 1./stds_norm); +data_devel = devel_appearance_data * PC; + +if(numel(train_users) > 0) + train_appearance_data = bsxfun(@times, bsxfun(@plus, train_appearance_data, -means_norm), 1./stds_norm); + data_train = train_appearance_data * PC; +else + data_train = []; +end + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static.m b/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static.m index 8fce9ad9..a0c50bff 100644 --- a/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static.m +++ b/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static.m @@ -19,8 +19,6 @@ svr_train = @svr_train_linear; % Set the test function (the first output will be used for validation) svr_test = @svr_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; - hog_data_dir_BP4D = hog_data_dir; aus = [6, 10, 12, 14, 17]; @@ -35,7 +33,7 @@ for a=1:numel(aus) rest_aus = setdiff(all_aus, au); % load the training and testing data for the current fold - [train_samples, train_labels, ~, valid_samples, valid_labels, vid_ids_devel, ~, PC, means, scaling, success_devel] = Prepare_HOG_AU_data_generic_intensity(train_recs, devel_recs, au, BP4D_dir_int, hog_data_dir_BP4D, pca_loc); + [train_samples, train_labels, ~, valid_samples, valid_labels, vid_ids_devel, ~, PC, means, scaling, success_devel] = Prepare_HOG_AU_data_generic_intensity(train_recs, devel_recs, au, BP4D_dir_int, hog_data_dir_BP4D); ignore = valid_labels == 9; diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_dynamic.dat index d81b6c8c..169a5b8a 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_static.dat index cdd15a1d..149fcf35 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_10_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_dynamic.dat index f8afb264..2f36f6fd 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_static.dat index 2690abe1..2b0c3ab5 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_12_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_dynamic.dat index d31141a6..c31894a1 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_static.dat index b1869dbf..e067b63d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_14_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_dynamic.dat index 79afec4f..886c0d14 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_static.dat index cd428599..4e8c136f 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_15_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_dynamic.dat index 32996100..8764e93d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_static.dat index c4639dac..4a44b6b1 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_17_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_dynamic.dat index ea123c8b..8da47385 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_static.dat index fe091ad9..4a93caf7 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_1_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_dynamic.dat index 9f085a06..3b2eb5ae 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_static.dat index b35708b3..64f27b30 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_20_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_dynamic.dat index f2cddb44..8c8f7c8a 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_static.dat index c8def81e..12ec7fde 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_23_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_dynamic.dat index 03f5b23e..ee7f6eea 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_static.dat index 6ee8a52d..c0a3226b 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_25_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_dynamic.dat index 6cd620a2..2b04a5ae 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_static.dat index fd0a99e4..fbc41322 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_26_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_dynamic.dat index d53c4c23..5f84b18b 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_static.dat index 97fed7e4..a9af4fdd 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_28_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_dynamic.dat index e62fc01b..8f9cb984 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_static.dat index 1d45f7a8..288634e9 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_2_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_dynamic.dat index 578f5994..b58b9277 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_static.dat index 8e13be50..830aee7d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_45_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_dynamic.dat index 55f7b92a..e56d1b20 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_static.dat index a887b0b1..08e875a6 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_4_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_dynamic.dat index 87cb54c6..fc0beebb 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_static.dat index 7b44fe37..c6dd7e18 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_5_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_dynamic.dat index 462b8181..e5dd4469 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_static.dat index e90adf53..c53afee7 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_6_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_dynamic.dat index 0643e7ec..55ea2ee8 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_static.dat index b7099299..ec665e2d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_7_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_dynamic.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_dynamic.dat index 77a14d21..aa120df4 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_dynamic.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_static.dat b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_static.dat index f2e74fa8..0c460579 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_static.dat and b/matlab_version/AU_training/experiments/full_model_training/classifiers/AU_9_static.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/evaluate_best_models_DISFA_dyn.m b/matlab_version/AU_training/experiments/full_model_training/evaluate_best_models_DISFA_dyn.m new file mode 100644 index 00000000..14e6bc06 --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/evaluate_best_models_DISFA_dyn.m @@ -0,0 +1,55 @@ +% Change to your downloaded location +clear +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +DISFA_aus = [1, 2, 4, 5, 6, 9, 12, 15, 17, 20, 25, 26]; + +au = DISFA_aus(1); + +op = cd('../DISFA/'); +rest_aus = setdiff(DISFA_aus, au); +shared_defs; +users = users(1); + +% need to split the rest +[~, ~, test_samples, test_labels, raw_data, PC, means, scaling, vid_ids, success] = Prepare_HOG_AU_data_generic_dynamic([], users, au, rest_aus, hog_data_dir); + +test_samples = sparse(test_samples); + +%% +root = [hog_data_dir, '/../']; +for i=1:numel(users) + input_train_label_files{i} = [root, '/ActionUnit_Labels/', users{i}, '/', users{i}]; +end +labels_gt_test = []; +for a=1:numel(DISFA_aus) + labels_gt_test = cat(2, labels_gt_test, extract_au_labels(input_train_label_files, DISFA_aus(a))); +end +cd(op); +% labels_gt_test(labels_gt_test > 1) = 1; + +%% +for a=1:1%numel(DISFA_aus) + + name = sprintf('mat_models/AU_%d_dynamic_intensity_comb.mat', DISFA_aus(a)); + load(name); + svr_test = @svr_test_linear_shift; + + model.eval_ids = ones(size(labels_gt_test,1),1); + model.vid_ids = vid_ids; + model.success = success; + + svs = bsxfun(@times, PC, 1./scaling') * model.w(1:end-1)'; +% model.cutoff = -1; + + [~, predictions_all] = svr_test(labels_gt_test(:,a), test_samples, model); + + [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( predictions_all, labels_gt_test(:,a)); + + fprintf('AU%d, CCC - %.3f\n', DISFA_aus(a), ccc); +end + + diff --git a/matlab_version/AU_training/experiments/full_model_training/evaluate_best_models_DISFA_static.m b/matlab_version/AU_training/experiments/full_model_training/evaluate_best_models_DISFA_static.m new file mode 100644 index 00000000..b76487d4 --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/evaluate_best_models_DISFA_static.m @@ -0,0 +1,49 @@ +% Change to your downloaded location +clear +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +DISFA_aus = [1, 2, 4, 5, 6, 9, 12, 15, 17, 20, 25, 26]; + +au = DISFA_aus(1); + +op = cd('../DISFA/'); +rest_aus = setdiff(DISFA_aus, au); +shared_defs; + +% need to split the rest +[~, ~, test_samples, test_labels, raw_test, PC, means, scaling, vid_ids, success] = Prepare_HOG_AU_data_generic([], users, au, rest_aus, hog_data_dir); + +test_samples = sparse(test_samples); + +%% +root = [hog_data_dir, '/../']; +for i=1:numel(users) + input_train_label_files{i} = [root, '/ActionUnit_Labels/', users{i}, '/', users{i}]; +end +labels_gt_test = []; +for a=1:numel(DISFA_aus) + labels_gt_test = cat(2, labels_gt_test, extract_au_labels(input_train_label_files, DISFA_aus(a))); +end +cd(op); + +%% +for a=1:4%numel(DISFA_aus) + + name = sprintf('mat_models/AU_%d_static_intensity.mat', DISFA_aus(a)); + load(name); + svr_test = @svr_test_linear; + + model.eval_ids = ones(size(labels_gt_test,1),1); + model.vid_ids = vid_ids; + model.success = success; + [~, predictions_all] = svr_test(labels_gt_test(:,a), test_samples, model); + + [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( predictions_all, labels_gt_test(:,a)); + + fprintf('AU%d, CCC - %.3f\n', DISFA_aus(a), ccc); +end + + diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic.mat index c8c6dd4e..45356d6e 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic_intensity.mat new file mode 100644 index 00000000..9af95dba Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic_intensity_comb.mat new file mode 100644 index 00000000..2dd78414 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static.mat index b67f67ad..11408646 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity.mat index 910625e8..e31fe3c5 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity_comb.mat index 9b298eca..0da73b61 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic.mat index d10e79e3..e32b877e 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic_intensity.mat new file mode 100644 index 00000000..d689c488 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic_intensity_comb.mat new file mode 100644 index 00000000..4a17759f Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static.mat index ebe82df7..2c2cd8f2 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity.mat index 104b395e..c3109e35 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity_comb.mat index f379ae17..7ea294af 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic.mat index 6a0bf8a9..6852dfad 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic_intensity.mat new file mode 100644 index 00000000..0c42700a Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static.mat index 8a6f8203..6294fdfc 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static_intensity.mat index 032cb04a..a465cd6c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic.mat index e328d3f3..5293cb3d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic_intensity.mat new file mode 100644 index 00000000..ccdb4695 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic_intensity_comb.mat new file mode 100644 index 00000000..91d3bcb0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static.mat index be446498..65c86e9d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity.mat index 48ac1bbe..a4401858 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity_comb.mat index 84afa372..427e8ad7 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic.mat index 85af493b..77967b6f 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic_intensity.mat new file mode 100644 index 00000000..22def917 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic_intensity_comb.mat new file mode 100644 index 00000000..f4303d89 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static.mat index c99c7e38..a4f11079 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity.mat index 7fd0f9da..56d9d615 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity_comb.mat index a312f967..3268166c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic.mat index 54adea5f..e6d8838b 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic_intensity.mat new file mode 100644 index 00000000..0e0caec0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic_intensity_comb.mat new file mode 100644 index 00000000..51cfa191 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static.mat index 1ae1490a..e73448bf 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity.mat index c87c47aa..eda562d4 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity_comb.mat index 28922bae..11d11378 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic.mat index 38d792c2..f0d546ff 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic_intensity.mat new file mode 100644 index 00000000..de83425f Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static.mat index d9923820..dd5bdb86 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static_intensity.mat index 7d5c0645..81bca509 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic.mat index 2ffc1abd..04bc4114 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic_intensity.mat new file mode 100644 index 00000000..8775c912 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic_intensity_comb.mat new file mode 100644 index 00000000..51bae919 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static.mat index 1549f75d..7faed42a 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity.mat index 6ece972f..f69dda36 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity_comb.mat index bc3dfa6e..12209e31 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic.mat index b1b0597a..733b3604 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic_intensity.mat new file mode 100644 index 00000000..9eab9649 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic_intensity_comb.mat new file mode 100644 index 00000000..d5246526 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static.mat index 69fa1725..9bbd2d8e 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity.mat index ad45a712..2e4ebdcc 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity_comb.mat index 191841f9..cb4fd924 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic.mat index f7365f62..14c951ad 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic_intensity.mat new file mode 100644 index 00000000..4bdaa900 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic_intensity_comb.mat new file mode 100644 index 00000000..a479a71a Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static.mat index c72f2216..a575e0e6 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity.mat index acd2f84a..9284bae1 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity_comb.mat index 988bfa81..00f914bd 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_dynamic.mat index 2bd01d6d..b6594e87 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_static.mat index 0175ac9e..a41e835e 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_28_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic.mat index 684793df..ad269846 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic_intensity.mat new file mode 100644 index 00000000..2c713516 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic_intensity_comb.mat new file mode 100644 index 00000000..00e7ae35 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static.mat index 84e08de7..526b29cf 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity.mat index 6654a2a5..89ca6629 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity_comb.mat index 6dc73d0a..23e2af9f 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic.mat index 4125804e..640dfdfd 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic_intensity.mat new file mode 100644 index 00000000..20960be9 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic_intensity_comb.mat new file mode 100644 index 00000000..e9d35ba9 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static.mat index 72e5b00d..82bc298b 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity.mat index fa37c86b..a0ed805d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity_comb.mat index bb73dad1..fbbfbf84 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic.mat index 23216cd6..1e869153 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic_intensity.mat new file mode 100644 index 00000000..1d2f3908 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic_intensity_comb.mat new file mode 100644 index 00000000..22f9a0a0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static.mat index 11d03b1e..ab755c69 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity.mat index 62c1e459..68e2edd7 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity_comb.mat index 78c83d18..b7f272d6 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic.mat index 5e64a61f..c21da056 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic_intensity.mat new file mode 100644 index 00000000..caf5644c Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static.mat index d38060be..1b2f4c43 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static_intensity.mat index 783c1596..986fda51 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic.mat index c87a82ff..b86b300c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic_intensity.mat new file mode 100644 index 00000000..2a4b810b Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic_intensity_comb.mat new file mode 100644 index 00000000..f5331b32 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static.mat index 8db28a15..ee25eb80 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity.mat index 8b46c3b0..f282f27c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity_comb.mat index 8fe157d2..dac6d3dd 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic.mat index 6de0ecd1..d14f28ab 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic_intensity.mat new file mode 100644 index 00000000..20b734dd Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic_intensity_comb.mat new file mode 100644 index 00000000..b8808ed1 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_dynamic_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static.mat index 73d136fb..677e2847 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity.mat index cdca9644..ad2a20c2 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity_comb.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity_comb.mat index 99cdb9ab..0704ce2c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity_comb.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static_intensity_comb.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic.mat index 6fd43490..021f572c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic_intensity.mat new file mode 100644 index 00000000..85d838e8 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_dynamic_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static.mat index ebd21b0e..52472752 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static_intensity.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static_intensity.mat index 7d8daf0a..b2695713 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static_intensity.mat and b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_dynamic.mat deleted file mode 100644 index 28f36cd1..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_static.mat deleted file mode 100644 index 40f78960..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_dynamic.mat deleted file mode 100644 index fb6ba2d8..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_static.mat deleted file mode 100644 index 5d201439..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_dynamic.mat deleted file mode 100644 index 3b05208d..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_static.mat deleted file mode 100644 index 7c9bbcf0..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_dynamic.mat deleted file mode 100644 index ab78a41c..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_static.mat deleted file mode 100644 index bead3df8..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_dynamic.mat deleted file mode 100644 index 146cd1a2..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_static.mat deleted file mode 100644 index 4b4b7d76..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_dynamic.mat deleted file mode 100644 index 8af1863d..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_static.mat deleted file mode 100644 index 9d9f6c2e..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_dynamic.mat deleted file mode 100644 index e2389cc1..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_static.mat deleted file mode 100644 index 53d3f7fa..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_dynamic.mat deleted file mode 100644 index f07abd18..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_static.mat deleted file mode 100644 index abeb5837..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_dynamic.mat deleted file mode 100644 index fb6ab68b..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_static.mat deleted file mode 100644 index f71b45c7..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_dynamic.mat deleted file mode 100644 index b3e961e1..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_static.mat deleted file mode 100644 index 09c8f55d..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_dynamic.mat deleted file mode 100644 index 26864996..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_static.mat deleted file mode 100644 index 3b784744..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_dynamic.mat deleted file mode 100644 index ec3a1527..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_static.mat deleted file mode 100644 index bb99d37a..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_dynamic.mat deleted file mode 100644 index 7a9e6d71..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_static.mat deleted file mode 100644 index 0cbe2374..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_dynamic.mat deleted file mode 100644 index d39a8713..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_static.mat deleted file mode 100644 index 37f41d8f..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_dynamic.mat deleted file mode 100644 index 8d4b72b9..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_static.mat deleted file mode 100644 index 0a14d7c6..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_dynamic.mat deleted file mode 100644 index 377ad551..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_static.mat deleted file mode 100644 index 069d12c4..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_dynamic.mat deleted file mode 100644 index 243f792a..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_static.mat deleted file mode 100644 index 412da99e..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_dynamic.mat deleted file mode 100644 index 4bc2a9a3..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_dynamic.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_static.mat deleted file mode 100644 index f5783f5d..00000000 Binary files a/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_static.mat and /dev/null differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_dynamic_intensity.dat new file mode 100644 index 00000000..241f61e0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_dynamic_intensity_comb.dat new file mode 100644 index 00000000..fe9ce795 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity.dat index fd664471..c3888555 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity_comb.dat index 52673b7d..624731e3 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_10_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_dynamic_intensity.dat new file mode 100644 index 00000000..ebb8053c Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_dynamic_intensity_comb.dat new file mode 100644 index 00000000..491f94d0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity.dat index 31307e44..b74a655d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity_comb.dat index 574057ba..406fd810 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_dynamic_intensity.dat new file mode 100644 index 00000000..706d585e Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_static_intensity.dat index 2e3975de..83c864ee 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_dynamic_intensity.dat new file mode 100644 index 00000000..42de54ac Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_dynamic_intensity_comb.dat new file mode 100644 index 00000000..00f802cf Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity.dat index 6f4edb23..472a768d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity_comb.dat index fb5f4e48..3a22f41a 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_dynamic_intensity.dat new file mode 100644 index 00000000..649dec0f Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_dynamic_intensity_comb.dat new file mode 100644 index 00000000..8e5c2389 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity.dat index ae8011fa..362dd687 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity_comb.dat index 45fcb68d..109c7740 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_dynamic_intensity.dat new file mode 100644 index 00000000..67a80a5d Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_dynamic_intensity_comb.dat new file mode 100644 index 00000000..db183754 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity.dat index d9c141cc..065b1c52 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity_comb.dat index b0d9d437..d85541b9 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_dynamic_intensity.dat new file mode 100644 index 00000000..554df8c7 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_static_intensity.dat index 4a445e45..eb78b669 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_dynamic_intensity.dat new file mode 100644 index 00000000..2afaa3f0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_dynamic_intensity_comb.dat new file mode 100644 index 00000000..a6f437a7 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity.dat index bd94fdf1..335d7c7b 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity_comb.dat index 2528743a..bd03fe24 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_dynamic_intensity.dat new file mode 100644 index 00000000..a6679646 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_dynamic_intensity_comb.dat new file mode 100644 index 00000000..f161ad8c Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity.dat index 60895212..411670da 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity_comb.dat index a1d09c4c..254f819c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_dynamic_intensity.dat new file mode 100644 index 00000000..a9939992 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_dynamic_intensity_comb.dat new file mode 100644 index 00000000..c5b2597e Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity.dat index 668d0d36..39c61b9a 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity_comb.dat index da3f8bf3..3119305f 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_dynamic_intensity.dat new file mode 100644 index 00000000..b384ad37 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_dynamic_intensity_comb.dat new file mode 100644 index 00000000..89391784 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity.dat index 6c00d714..eb9ae935 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity_comb.dat index 140366d6..12f7ce84 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_dynamic_intensity.dat new file mode 100644 index 00000000..0da415b7 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_dynamic_intensity_comb.dat new file mode 100644 index 00000000..2f6c0b54 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity.dat index 80c97d4c..fb3b9d32 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity_comb.dat index 5d1bc606..28bce9a0 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_dynamic_intensity.dat new file mode 100644 index 00000000..67598c08 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_dynamic_intensity_comb.dat new file mode 100644 index 00000000..c5c8edaf Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity.dat index 2bd6c983..7ee65b02 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity_comb.dat index a023e7a8..8204a879 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_dynamic_intensity.dat new file mode 100644 index 00000000..14f43f53 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_static_intensity.dat index c2c5fb62..5c3481b5 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_dynamic_intensity.dat new file mode 100644 index 00000000..afbc2670 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_dynamic_intensity_comb.dat new file mode 100644 index 00000000..58727998 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity.dat index 89b24fa2..5c33712c 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity_comb.dat index e98b274c..69c3005d 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_dynamic_intensity.dat new file mode 100644 index 00000000..221c6d21 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_dynamic_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_dynamic_intensity_comb.dat new file mode 100644 index 00000000..f13ba04d Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_dynamic_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity.dat index 64214263..785ccc74 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity_comb.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity_comb.dat index 31976cfa..04b4a112 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity_comb.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity_comb.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_dynamic_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_dynamic_intensity.dat new file mode 100644 index 00000000..c809ddcd Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_dynamic_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_static_intensity.dat index ba358174..7cdfc5d6 100644 Binary files a/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_static_intensity.dat and b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/full_model_training/test_smoothing.m b/matlab_version/AU_training/experiments/full_model_training/test_smoothing.m deleted file mode 100644 index 6df66531..00000000 --- a/matlab_version/AU_training/experiments/full_model_training/test_smoothing.m +++ /dev/null @@ -1,23 +0,0 @@ -% Test out smoothing -addpath('../training_code'); - -models = dir('mat_models/AU*'); - -F1s_sm = zeros(numel(models), 8); - -for i =1:numel(models) - - load(['mat_models/' models(i).name]); - - F1_orig = compute_F1(valid_labels, predictions_all); - F1s_sm(i, 1) = F1_orig; - spans = [3, 5, 7, 9, 11, 13]; - sp = 2; - for s = spans - pred_smooth = smooth(predictions_all, s, 'moving'); - pred_smooth(pred_smooth < 0.5) = 0; - pred_smooth(pred_smooth >= 0.5) = 1; - F1s_sm(i, sp) = compute_F1(valid_labels, pred_smooth); - sp = sp + 1; - end -end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.asv b/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.asv deleted file mode 100644 index 36ad3843..00000000 --- a/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.asv +++ /dev/null @@ -1,27 +0,0 @@ -% Try out the smoothing -addpath('../training_code'); - -models = dir('mat_models/AU*intensity.mat'); - -CCCs_sm = zeros(numel(models), 8); - -for i =1:numel(models) - - load(['mat_models/' models(i).name]); - - eval_ids_uq = unique(eval_ids)'; - cccs = []; - - spans = [1, 3, 5, 7, 9, 11, 13]; - - for s = spans - for e=eval_ids_uq - if(dataset_ids{e} ~= 'Bosphorus') - smoothed_model = smooth(predictions_all(eval_ids==e), s, 'moving'); - [ ~, ~, ~, ccc_c, ~, ~ ] = evaluate_regression_results( smoothed_model, valid_labels(eval_ids==e)); - cccs = cat(2, cccs, ccc_c); - end - end - end - -end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.m b/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.m deleted file mode 100644 index d9ed8718..00000000 --- a/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.m +++ /dev/null @@ -1,30 +0,0 @@ -% Try out the smoothing -addpath('../training_code'); - -models = dir('mat_models/AU*intensity.mat'); - -CCCs_sm = zeros(numel(models), 8); - -for i =1:numel(models) - - load(['mat_models/' models(i).name]); - - eval_ids_uq = unique(eval_ids)'; - cccs_all = []; - - spans = [1, 3, 5, 7, 9, 11, 13]; - cccs = []; - for s = spans - ccc = []; - for e=eval_ids_uq - if(strcmp(dataset_ids{e}, 'Bosphorus') == 0) - smoothed_model = smooth(predictions_all(eval_ids==e), s, 'moving'); - [ ~, ~, ~, ccc_c, ~, ~ ] = evaluate_regression_results( smoothed_model, valid_labels(eval_ids==e)); - ccc = cat(1,ccc, ccc_c); - end - end - ccc = mean(ccc); - cccs = cat(2, cccs, ccc); - end - cccs_all = cat(1, cccs_all, cccs); -end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/full_model_training/train_dynamic_regressors.m b/matlab_version/AU_training/experiments/full_model_training/train_dynamic_regressors.m new file mode 100644 index 00000000..a69b453a --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/train_dynamic_regressors.m @@ -0,0 +1,233 @@ +% Change to your downloaded location +clear +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +%% load shared definitions and AU data +all_dataset_aus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 45]; + +% Set up the hyperparameters to be validated +hyperparams.c = 10.^(-7:1:4); +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; + +BP4D_aus = [6, 10, 12, 14, 17]; +UNBC_aus = [6, 7, 9, 12, 25, 26]; +DISFA_aus = [1, 2, 4, 5, 6, 9, 12, 15, 17, 20, 25, 26]; +Bosphorus_aus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 45]; + +for a=1:numel(all_dataset_aus) + + au = all_dataset_aus(a); + + train_samples = []; + valid_samples = []; + + train_labels = []; + valid_labels = []; + + % Keeping track which validation sample came from which dataset, as we + % will be validating based on which hyperparam leads to best + % performance on all datasets (mean F1) + eval_ids = []; + dataset_ids = {}; + vid_ids = {}; + success = []; + + if(~isempty(find(BP4D_aus == au, 1))) + op = cd('../BP4D/'); + rest_aus = setdiff(BP4D_aus, au); + shared_defs; + % load the training and testing data for the current fold + [train_samples_bp4d, train_labels_bp4d, ~, valid_samples_bp4d, valid_labels_bp4d, vid_ids_bp4d, ~, PC, means, scaling, success_devel] = Prepare_HOG_AU_data_generic_intensity_dynamic(train_recs, devel_recs, au, BP4D_dir_int, hog_data_dir); + + ignore = valid_labels_bp4d == 9; + + valid_samples_bp4d = valid_samples_bp4d(~ignore, :); + valid_labels_bp4d = valid_labels_bp4d(~ignore); + vid_ids_bp4d = vid_ids_bp4d(~ignore); + success_devel = success_devel(~ignore); + + train_samples = cat(1, train_samples, train_samples_bp4d); + valid_samples = cat(1, valid_samples, valid_samples_bp4d); + + train_labels = cat(1, train_labels, train_labels_bp4d); + valid_labels = cat(1, valid_labels, valid_labels_bp4d); + vid_ids = cat(1, vid_ids, vid_ids_bp4d); + + success = cat(1, success, success_devel); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_bp4d,1), 1); + end + + clear 'train_samples_bp4d' 'train_labels_bp4d' 'valid_samples_bp4d' 'valid_labels_bp4d' + + dataset_ids = cat(1, dataset_ids, {'BP4D'}); + + cd(op); + + end + + if(~isempty(find(Bosphorus_aus == au, 1))) + op = cd('../Bosphorus/'); + rest_aus = setdiff(DISFA_aus, au); + shared_defs; + + % make sure validation data's labels are balanced + [users_train, users_valid_bosph] = get_balanced_fold(Bosphorus_dir, all_recs, au, 1/3, 1); + + % need to split the rest + [train_samples_bosph, train_labels_bosph, valid_samples_bosph, valid_labels_bosph, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_dynamic(users_train, users_valid_bosph, au, rest_aus, Bosphorus_dir, hog_data_dir); + + % Shortening the filenames to make it more like a video so that it + % would work with normalization + for v=1:numel(valid_ids) + valid_ids{v} = valid_ids{v}(1:5); + end + + % As there are only a few Bosphorus images (it being an image dataset) + % we oversample it quite a bit + train_samples_bosph = repmat(train_samples_bosph, 10, 1); + train_labels_bosph = repmat(train_labels_bosph, 10, 1); + + train_samples = cat(1, train_samples, train_samples_bosph); + valid_samples = cat(1, valid_samples, valid_samples_bosph); + + train_labels = cat(1, train_labels, train_labels_bosph); + valid_labels = cat(1, valid_labels, valid_labels_bosph); + + vid_ids = cat(1, vid_ids, valid_ids); + + success = cat(1, success, valid_success); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_bosph, 1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_bosph, 1), 1)); + end + + clear 'train_samples_bosph' 'train_labels_bosph' 'valid_samples_bosph' 'valid_labels_bosph' + dataset_ids = cat(1, dataset_ids, {'Bosphorus'}); + cd(op); + + end + + if(~isempty(find(DISFA_aus == au, 1))) + op = cd('../DISFA/'); + rest_aus = setdiff(DISFA_aus, au); + shared_defs; + + % make sure validation data's labels are balanced + [users_train, users_valid_disfa] = get_balanced_fold(DISFA_dir, users, au, 1/3, 1); + + % need to split the rest + [train_samples_disf, train_labels_disf, valid_samples_disf, valid_labels_disf, raw_disfa, PC, means, scaling, vid_ids_disfa, valid_success] = Prepare_HOG_AU_data_generic_dynamic(users_train, users_valid_disfa, au, rest_aus, hog_data_dir); + + train_samples = cat(1, train_samples, train_samples_disf); + valid_samples = cat(1, valid_samples, valid_samples_disf); + + train_labels = cat(1, train_labels, train_labels_disf); + valid_labels = cat(1, valid_labels, valid_labels_disf); + + vid_ids = cat(1, vid_ids, vid_ids_disfa); + + success = cat(1, success, valid_success); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_disf,1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_disf,1), 1)); + end + + clear 'train_samples_disf' 'train_labels_disf' 'valid_samples_disf' 'valid_labels_disf' + dataset_ids = cat(1, dataset_ids, {'DISFA'}); + cd(op); + + end + + if(~isempty(find(UNBC_aus == au, 1))) + op = cd('../UNBC/'); + rest_aus = setdiff(UNBC_aus, au); + shared_defs; + + [users_train, users_valid_unbc] = get_balanced_fold(UNBC_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples_unbc, train_labels_unbc, valid_samples_unbc, valid_labels_unbc, ~, PC, means, scaling, vid_ids_unbc, success_devel] = Prepare_HOG_AU_data_dynamic(users_train, users_valid_unbc, au, rest_aus, UNBC_dir, hog_data_dir); + + train_samples = cat(1, train_samples, train_samples_unbc); + valid_samples = cat(1, valid_samples, valid_samples_unbc); + + train_labels = cat(1, train_labels, train_labels_unbc); + valid_labels = cat(1, valid_labels, valid_labels_unbc); + + vid_ids = cat(1, vid_ids, vid_ids_unbc); + + success = cat(1, success, success_devel); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_unbc,1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_unbc,1), 1)); + end + + clear 'train_samples_unbc' 'train_labels_unbc' 'valid_samples_unbc' 'valid_labels_unbc' + dataset_ids = cat(1, dataset_ids, {'UNBC'}); + cd(op); + + end + + train_samples = sparse(train_samples); + dataset_ids + %% Cross-validate here + hyperparams.eval_ids = eval_ids; + hyperparams.vid_ids = vid_ids; + hyperparams.valid_samples = valid_samples; + hyperparams.success = success; + hyperparams.valid_labels = valid_labels; + + [ 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.eval_ids = eval_ids; + model.vid_ids = vid_ids; + + [~, predictions_all] = svr_test(valid_labels, valid_samples, model); + + name = sprintf('mat_models/AU_%d_dynamic_intensity.mat', au); + + eval_ids_uq = unique(eval_ids)'; + cccs = []; + for i=eval_ids_uq + [ ~, ~, ~, ccc_c, ~, ~ ] = evaluate_regression_results( predictions_all(eval_ids==i), valid_labels(eval_ids==i)); + cccs = cat(2, cccs, ccc_c); + end + + mean_ccc = mean(cccs); + + save(name, 'model', 'mean_ccc', 'mean_ccc', 'cccs', 'predictions_all', 'valid_labels', 'eval_ids', 'dataset_ids'); + + % 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); + + clear 'train_samples' 'train_labels' 'valid_samples' 'valid_labels' +end + + diff --git a/matlab_version/AU_training/experiments/full_model_training/train_dynamic_regressors_with_classifiers.m b/matlab_version/AU_training/experiments/full_model_training/train_dynamic_regressors_with_classifiers.m new file mode 100644 index 00000000..ec996ea6 --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/train_dynamic_regressors_with_classifiers.m @@ -0,0 +1,255 @@ +% Change to your downloaded location +clear +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +%% load shared definitions and AU data +all_dataset_aus = [1, 2, 4, 6, 7, 10, 12, 15, 17, 23, 25, 26, 45]; + +% Set up the hyperparameters to be validated +hyperparams.c = 10.^(-8:0.5:4); +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; + +BP4D_aus = [6, 10, 12, 14, 17]; +UNBC_aus = [6, 7, 9, 12, 25, 26]; +DISFA_aus = [1, 2, 4, 5, 6, 9, 12, 15, 17, 20, 25, 26]; +Bosphorus_aus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 45]; + +for a=1:numel(all_dataset_aus) + + au = all_dataset_aus(a); + + train_samples = []; + valid_samples = []; + + train_labels = []; + valid_labels = []; + + % Keeping track which validation sample came from which dataset, as we + % will be validating based on which hyperparam leads to best + % performance on all datasets (mean F1) + eval_ids = []; + dataset_ids = {}; + vid_ids = {}; + success = []; + + if(~isempty(find(BP4D_aus == au, 1))) + op = cd('../BP4D/'); + rest_aus = setdiff(BP4D_aus, au); + shared_defs; + % load the training and testing data for the current fold + [train_samples_bp4d, train_labels_bp4d, ~, valid_samples_bp4d, valid_labels_bp4d, vid_ids_bp4d, ~, PC, means, scaling, success_devel] = Prepare_HOG_AU_data_generic_intensity_dynamic(train_recs, devel_recs, au, BP4D_dir_int, hog_data_dir); + + ignore = valid_labels_bp4d == 9; + + valid_samples_bp4d = valid_samples_bp4d(~ignore, :); + valid_labels_bp4d = valid_labels_bp4d(~ignore); + vid_ids_bp4d = vid_ids_bp4d(~ignore); + success_devel = success_devel(~ignore); + + train_samples = cat(1, train_samples, train_samples_bp4d); + valid_samples = cat(1, valid_samples, valid_samples_bp4d); + + train_labels = cat(1, train_labels, train_labels_bp4d); + valid_labels = cat(1, valid_labels, valid_labels_bp4d); + vid_ids = cat(1, vid_ids, vid_ids_bp4d); + + success = cat(1, success, success_devel); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_bp4d,1), 1); + end + + clear 'train_samples_bp4d' 'train_labels_bp4d' 'valid_samples_bp4d' 'valid_labels_bp4d' + + dataset_ids = cat(1, dataset_ids, {'BP4D'}); + + cd(op); + + end + + if(~isempty(find(Bosphorus_aus == au, 1))) + op = cd('../Bosphorus/'); + rest_aus = setdiff(DISFA_aus, au); + shared_defs; + + % make sure validation data's labels are balanced + [users_train, users_valid_bosph] = get_balanced_fold(Bosphorus_dir, all_recs, au, 1/3, 1); + + % need to split the rest + [train_samples_bosph, train_labels_bosph, valid_samples_bosph, valid_labels_bosph, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_dynamic(users_train, users_valid_bosph, au, rest_aus, Bosphorus_dir, hog_data_dir); + + % Shortening the filenames to make it more like a video so that it + % would work with normalization + for v=1:numel(valid_ids) + valid_ids{v} = valid_ids{v}(1:5); + end + + % As there are only a few Bosphorus images (it being an image dataset) + % we oversample it quite a bit + train_samples_bosph = repmat(train_samples_bosph, 10, 1); + train_labels_bosph = repmat(train_labels_bosph, 10, 1); + + train_samples = cat(1, train_samples, train_samples_bosph); + valid_samples = cat(1, valid_samples, valid_samples_bosph); + + train_labels = cat(1, train_labels, train_labels_bosph); + valid_labels = cat(1, valid_labels, valid_labels_bosph); + + vid_ids = cat(1, vid_ids, valid_ids); + + success = cat(1, success, valid_success); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_bosph, 1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_bosph, 1), 1)); + end + + clear 'train_samples_bosph' 'train_labels_bosph' 'valid_samples_bosph' 'valid_labels_bosph' + dataset_ids = cat(1, dataset_ids, {'Bosphorus'}); + cd(op); + + end + + if(~isempty(find(DISFA_aus == au, 1))) + op = cd('../DISFA/'); + rest_aus = setdiff(DISFA_aus, au); + shared_defs; + + % make sure validation data's labels are balanced + [users_train, users_valid_disfa] = get_balanced_fold(DISFA_dir, users, au, 1/3, 1); + + % need to split the rest + [train_samples_disf, train_labels_disf, valid_samples_disf, valid_labels_disf, raw_disfa, PC, means, scaling, vid_ids_disfa, valid_success] = Prepare_HOG_AU_data_generic_dynamic(users_train, users_valid_disfa, au, rest_aus, hog_data_dir); + + train_samples = cat(1, train_samples, train_samples_disf); + valid_samples = cat(1, valid_samples, valid_samples_disf); + + train_labels = cat(1, train_labels, train_labels_disf); + valid_labels = cat(1, valid_labels, valid_labels_disf); + + vid_ids = cat(1, vid_ids, vid_ids_disfa); + + success = cat(1, success, valid_success); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_disf,1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_disf,1), 1)); + end + + clear 'train_samples_disf' 'train_labels_disf' 'valid_samples_disf' 'valid_labels_disf' + dataset_ids = cat(1, dataset_ids, {'DISFA'}); + cd(op); + + end + + if(~isempty(find(UNBC_aus == au, 1))) + op = cd('../UNBC/'); + rest_aus = setdiff(UNBC_aus, au); + shared_defs; + + [users_train, users_valid_unbc] = get_balanced_fold(UNBC_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples_unbc, train_labels_unbc, valid_samples_unbc, valid_labels_unbc, ~, PC, means, scaling, vid_ids_unbc, success_devel] = Prepare_HOG_AU_data_dynamic(users_train, users_valid_unbc, au, rest_aus, UNBC_dir, hog_data_dir); + + train_samples = cat(1, train_samples, train_samples_unbc); + valid_samples = cat(1, valid_samples, valid_samples_unbc); + + train_labels = cat(1, train_labels, train_labels_unbc); + valid_labels = cat(1, valid_labels, valid_labels_unbc); + + vid_ids = cat(1, vid_ids, vid_ids_unbc); + + success = cat(1, success, success_devel); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_unbc,1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_unbc,1), 1)); + end + + clear 'train_samples_unbc' 'train_labels_unbc' 'valid_samples_unbc' 'valid_labels_unbc' + dataset_ids = cat(1, dataset_ids, {'UNBC'}); + cd(op); + + end + + train_samples = sparse(train_samples); + dataset_ids + %% Cross-validate here + + name = sprintf('mat_models/AU_%d_dynamic_intensity.mat', au); + load(name, 'model'); + model_reg = model; + + valid_all_reg = valid_samples * model_reg.w(1:end-1)' + model_reg.w(end); + train_all_reg = train_samples * model_reg.w(1:end-1)' + model_reg.w(end); + + name = sprintf('mat_models/AU_%d_dynamic.mat', au); + load(name, 'model'); + model_class = model; + valid_all_class = valid_samples * model_class.w(1:end-1)' + model_class.w(end); + train_all_class = train_samples * model_class.w(1:end-1)' + model_class.w(end); + + valid_samples_p = cat(2, valid_all_reg, valid_all_class); + train_samples_p = sparse(cat(2, train_all_reg, train_all_class)); + + %% + hyperparams.eval_ids = eval_ids; + hyperparams.vid_ids = vid_ids; + hyperparams.valid_samples = valid_samples_p; + hyperparams.success = success; + hyperparams.valid_labels = valid_labels; + + [ best_params, ~ ] = validate_grid_search_no_par(svr_train, svr_test, false, train_samples_p, train_labels, valid_samples_p, valid_labels, hyperparams); + model_fuse = svr_train(train_labels, train_samples_p, best_params); + + % Fust the regressor and classifier based on their corresponding + % weights + p = model_fuse.w; + model = model_reg; + model.w = model_reg.w * p(1) + model_class.w * p(2); + model.w(end) = model.w(end) + p(3); + %% + name = sprintf('mat_models/AU_%d_dynamic_intensity_comb.mat', au); + + [~, predictions_all] = svr_test(valid_labels, valid_samples, model); + + eval_ids_uq = unique(eval_ids)'; + cccs = []; + for i=eval_ids_uq + [ ~, ~, ~, ccc_c, ~, ~ ] = evaluate_regression_results( predictions_all(eval_ids==i), valid_labels(eval_ids==i)); + cccs = cat(2, cccs, ccc_c); + end + + mean_ccc = mean(cccs); + %% + save(name, 'model', 'mean_ccc', 'mean_ccc', 'cccs', 'predictions_all', 'valid_labels', 'eval_ids', 'dataset_ids'); + + % Write out the model + name = sprintf('regressors/AU_%d_dynamic_intensity_comb.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); + + clear 'train_samples' 'train_labels' 'valid_samples' 'valid_labels' +end + + diff --git a/matlab_version/AU_training/experiments/training_code/svr_test_linear.m b/matlab_version/AU_training/experiments/training_code/svr_test_linear.m index f91cba49..754d0f6b 100644 --- a/matlab_version/AU_training/experiments/training_code/svr_test_linear.m +++ b/matlab_version/AU_training/experiments/training_code/svr_test_linear.m @@ -13,6 +13,7 @@ function [result, prediction] = svr_test_linear(test_labels, test_samples, model result = corr(test_labels, prediction); [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( prediction, test_labels ); result = ccc; + fprintf('CCC: %.3f\n', ccc); else eval_ids = unique(model.eval_ids)'; ccc = 0; diff --git a/matlab_version/AU_training/experiments/utilities/write_lin_dyn_svr.m b/matlab_version/AU_training/experiments/utilities/write_lin_dyn_svr.m index e9f62f21..f9122578 100644 --- a/matlab_version/AU_training/experiments/utilities/write_lin_dyn_svr.m +++ b/matlab_version/AU_training/experiments/utilities/write_lin_dyn_svr.m @@ -1,4 +1,4 @@ -function [ success ] = write_lin_dyn_svr( location, means, w, b) +function [ success ] = write_lin_dyn_svr( location, means, w, b, cutoff) %WRITE_LIN_SVR Summary of this function goes here % Detailed explanation goes here @@ -9,6 +9,8 @@ function [ success ] = write_lin_dyn_svr( location, means, w, b) % Write the regressor type 1 - linear dynamic SVR fwrite(fileID, 1, 'uint'); + fwrite(fileID, cutoff, 'float64'); + writeMatrixBin(fileID, means, 6); writeMatrixBin(fileID, w, 6); fwrite(fileID, b, 'float64'); diff --git a/matlab_version/AU_training/instructions.txt b/matlab_version/AU_training/instructions.txt index 60c1d5a7..91b41c7f 100644 --- a/matlab_version/AU_training/instructions.txt +++ b/matlab_version/AU_training/instructions.txt @@ -1,8 +1,27 @@ -1. First compile the C++ models to be able to extract the features +The instructions are for a Windows machine, but it should be fairly easy to adapt them to other operating systems + +0. You need to acquire the following AU datasets for the code to work (if you do not have some of them you will need to modify the code slightly to account for that): + - Bosphorus (http://bosphorus.ee.boun.edu.tr/) + - BP4D from FERA2015 (http://sspnet.eu/fera2015/) + - DISFA (http://www.engr.du.edu/mmahoor/DISFA.htm) + - FERA2011 (http://sspnet.eu/fera2011/fera2011data/) + - SEMAINE from FERA2015 (http://sspnet.eu/fera2015/) + - UNBC (http://www.pitt.edu/~emotion/um-spread.htm) +1. First compile the 64-bit C++ models to be able to extract the features (possible to use 32-bit models as well but default path assumes 64 bit) 2. Extract features using scripts in the "data extraction" folder, this allows to build a PCA subspace for HOGs that is relevant to faces and facial expressions + - change the directory locations to where you downloaded the datasets from step 0 - run all of the extract_features_*.m scripts - this will take some time: 4-20 hours depending on your machine as you will need to process a lot of visual data - you need to make sure you have the right datasets and they are in the right locations - - Note for Bosphorus you will need to change the code a bit and add face_model.Reset(); after frame_count++ line in FeatureExtraction.cpp (this is because the images are not from a video and are quite far from each other). - -Create a PCA model \ No newline at end of file +3. Create a PCA model + - run the createSubFaceModels.m in the pca_generation folder + - this will create a full, lower and upper face PCAs + - this will take some time (30-60 minutes or so) and require lots of RAM (up to 16GB) +4. Training the actual models, go to experiments/full_model_training + - train_static_regressors.m + - train_static_classifiers.m + - train_dynamic_regressors.m + - train_dynamic_classifiers.m + - train_static_regressors_with_classifiers.m + - train_dynamic_regressors_with_classifiers.m + - this will create the .dat files that can be used with the C++ code for AU prediction \ No newline at end of file diff --git a/matlab_version/AU_training/pca_generation/Read_HOG_files_small.m b/matlab_version/AU_training/pca_generation/Read_HOG_files_small.m index 3f58ed5b..1e580434 100644 --- a/matlab_version/AU_training/pca_generation/Read_HOG_files_small.m +++ b/matlab_version/AU_training/pca_generation/Read_HOG_files_small.m @@ -50,12 +50,13 @@ function [hog_data, valid_inds, vid_id] = Read_HOG_files_small(hog_files, hog_da feature_vec = fread(f, [4 + num_rows * num_cols * num_chan, 5000], 'float32'); feature_vec = feature_vec(4:end,:)'; - num_rows_read = size(feature_vec,1); - - curr_data_buff(curr_ind+1:curr_ind+num_rows_read,:) = feature_vec; - %valid_data_buff = - curr_ind = curr_ind + size(feature_vec,1); - + if(~isempty(feature_vec)) + num_rows_read = size(feature_vec,1); + + curr_data_buff(curr_ind+1:curr_ind+num_rows_read,:) = feature_vec; + %valid_data_buff = + curr_ind = curr_ind + size(feature_vec,1); + end end end diff --git a/matlab_version/AU_training/pca_generation/createSubFaceModels.m b/matlab_version/AU_training/pca_generation/createSubFaceModels.m index 9178dba4..38f0f300 100644 --- a/matlab_version/AU_training/pca_generation/createSubFaceModels.m +++ b/matlab_version/AU_training/pca_generation/createSubFaceModels.m @@ -1,6 +1,6 @@ clear; -%% CK+, FERA2011, UNBC and Bosphorus datasets +%% CK+, FERA2011, and UNBC datasets hog_dir = 'D:\Datasets/face_datasets/hog_aligned_rigid/'; hog_files = dir([hog_dir, '*.hog']); @@ -8,6 +8,18 @@ hog_files = dir([hog_dir, '*.hog']); appearance_data = appearance_data(valid_inds,:); vid_ids_train = vid_ids_train(valid_inds,:); +%% Bosphorus dataset +hog_dir = 'D:\Datasets/face_datasets/hog_aligned_rigid_b/'; +hog_files = dir([hog_dir, '*.hog']); + +[appearance_data_bosph, valid_inds, vid_ids_train_bosph] = Read_HOG_files_small(hog_files, hog_dir); + +appearance_data_bosph = appearance_data_bosph(valid_inds,:); +vid_ids_train_bosph = vid_ids_train_bosph(valid_inds,:); + +appearance_data = cat(1,appearance_data, appearance_data_bosph); +vid_ids_train = cat(1,vid_ids_train, vid_ids_train_bosph); + %% DISFA hog_dir = 'D:\Datasets\DISFA\hog_aligned_rigid/'; hog_files = dir([hog_dir, '*.hog']); diff --git a/matlab_version/AU_training/pca_generation/generic_face_lower.mat b/matlab_version/AU_training/pca_generation/generic_face_lower.mat index f950b23b..1cb17298 100644 Binary files a/matlab_version/AU_training/pca_generation/generic_face_lower.mat and b/matlab_version/AU_training/pca_generation/generic_face_lower.mat differ diff --git a/matlab_version/AU_training/pca_generation/generic_face_rigid.mat b/matlab_version/AU_training/pca_generation/generic_face_rigid.mat index 5f179895..7107e845 100644 Binary files a/matlab_version/AU_training/pca_generation/generic_face_rigid.mat and b/matlab_version/AU_training/pca_generation/generic_face_rigid.mat differ diff --git a/matlab_version/AU_training/pca_generation/generic_face_upper.mat b/matlab_version/AU_training/pca_generation/generic_face_upper.mat index 0cde2d4e..3c9652f4 100644 Binary files a/matlab_version/AU_training/pca_generation/generic_face_upper.mat and b/matlab_version/AU_training/pca_generation/generic_face_upper.mat differ