diff --git a/.gitignore b/.gitignore index 953a39ee..52d089c4 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ matlab_runners/Action Unit Experiments/out_SEMAINE/ exe/FeatureExtraction/out_bp4d/ x64/Debug/ matlab_runners/Action Unit Experiments/out_unbc/ +matlab_runners/Action Unit Experiments/out_bosph/ diff --git a/exe/FaceLandmarkImg/FaceLandmarkImg.cpp b/exe/FaceLandmarkImg/FaceLandmarkImg.cpp index e45f9b92..ac9ec43e 100644 --- a/exe/FaceLandmarkImg/FaceLandmarkImg.cpp +++ b/exe/FaceLandmarkImg/FaceLandmarkImg.cpp @@ -188,26 +188,64 @@ void write_out_pose_landmarks(const string& outfeatures, const cv::Mat_& } } -void write_out_landmarks(const string& outfeatures, const LandmarkDetector::CLNF& clnf_model) +void write_out_landmarks(const string& outfeatures, const LandmarkDetector::CLNF& clnf_model, const cv::Vec6d& pose, const cv::Point3f& gaze0, const cv::Point3f& gaze1, std::vector> au_intensities, std::vector> au_occurences) { create_directory_from_file(outfeatures); std::ofstream featuresFile; - featuresFile.open(outfeatures); + featuresFile.open(outfeatures); - if(featuresFile.is_open()) - { + if (featuresFile.is_open()) + { int n = clnf_model.patch_experts.visibilities[0][0].rows; featuresFile << "version: 1" << endl; featuresFile << "npoints: " << n << endl; featuresFile << "{" << endl; - - for (int i = 0; i < n; ++ i) + + for (int i = 0; i < n; ++i) { // Use matlab format, so + 1 - featuresFile << clnf_model.detected_landmarks.at(i) + 1 << " " << clnf_model.detected_landmarks.at(i+n) + 1 << endl; + featuresFile << clnf_model.detected_landmarks.at(i) + 1 << " " << clnf_model.detected_landmarks.at(i + n) + 1 << endl; } - featuresFile << "}" << endl; + featuresFile << "}" << endl; + // Do the pose and eye gaze if present as well + featuresFile << "pose: eul_x, eul_y, eul_z: " << endl; + featuresFile << "{" << endl; + featuresFile << pose[3] << " " << pose[4] << " " << pose[5] << endl; + featuresFile << "}" << endl; + + // Do the pose and eye gaze if present as well + featuresFile << "gaze: dir_x_1, dir_y_1, dir_z_1, dir_x_2, dir_y_2, dir_z_2: " << endl; + featuresFile << "{" << endl; + featuresFile << gaze0.x << " " << gaze0.y << " " << gaze0.z << " " << gaze1.x << " " << gaze1.y << " " << gaze1.z << endl; + featuresFile << "}" << endl; + + // Do the au intensities + featuresFile << "au intensities: " << au_intensities.size() << endl; + featuresFile << "{" << endl; + + for (int i = 0; i < au_intensities.size(); ++i) + { + // Use matlab format, so + 1 + featuresFile << au_intensities[i].first << " " << au_intensities[i].second << endl; + } + + featuresFile << "}" << endl; + + // Do the au occurences + featuresFile << "au occurences: " << au_occurences.size() << endl; + featuresFile << "{" << endl; + + for (int i = 0; i < au_occurences.size(); ++i) + { + // Use matlab format, so + 1 + featuresFile << au_occurences[i].first << " " << au_occurences[i].second << endl; + } + + featuresFile << "}" << endl; + + + featuresFile.close(); } } @@ -315,6 +353,45 @@ int main (int argc, char **argv) cv::CascadeClassifier classifier(det_parameters.face_detector_location); dlib::frontal_face_detector face_detector_hog = dlib::get_frontal_face_detector(); + // Loading the AU prediction models + string au_loc = "AU_predictors/AU_all_static.txt"; + + if (!boost::filesystem::exists(boost::filesystem::path(au_loc))) + { + boost::filesystem::path loc = boost::filesystem::path(arguments[0]).parent_path() / au_loc; + + if (boost::filesystem::exists(loc)) + { + au_loc = loc.string(); + } + else + { + cout << "Can't find AU prediction files, exiting" << endl; + return 0; + } + } + + // Used for image masking for AUs + string tri_loc; + if (boost::filesystem::exists(boost::filesystem::path("model/tris_68_full.txt"))) + { + std::ifstream triangulation_file("model/tris_68_full.txt"); + tri_loc = "model/tris_68_full.txt"; + } + else + { + boost::filesystem::path loc = boost::filesystem::path(arguments[0]).parent_path() / "model/tris_68_full.txt"; + tri_loc = loc.string(); + + if (!exists(loc)) + { + cout << "Can't find triangulation files, exiting" << endl; + return 0; + } + } + + FaceAnalysis::FaceAnalyser face_analyser(vector(), 0.7, 112, 112, au_loc, tri_loc); + bool visualise = !det_parameters.quiet_mode; // Do some image loading @@ -396,6 +473,8 @@ int main (int argc, char **argv) } + auto ActionUnits = face_analyser.PredictStaticAUs(read_image, clnf_model, false); + // Writing out the detected landmarks (in an OS independent manner) if(!output_landmark_locations.empty()) { @@ -412,7 +491,7 @@ int main (int argc, char **argv) boost::filesystem::path fname = out_feat_path.filename().replace_extension(""); boost::filesystem::path ext = out_feat_path.extension(); string outfeatures = dir.string() + preferredSlash + fname.string() + string(name) + ext.string(); - write_out_landmarks(outfeatures, clnf_model); + write_out_landmarks(outfeatures, clnf_model, headPose, gazeDirection0, gazeDirection1, ActionUnits.first, ActionUnits.second); } if (!output_pose_locations.empty()) @@ -503,11 +582,13 @@ int main (int argc, char **argv) FaceAnalysis::EstimateGaze(clnf_model, gazeDirection1, fx, fy, cx, cy, false); } + auto ActionUnits = face_analyser.PredictStaticAUs(read_image, clnf_model, false); + // Writing out the detected landmarks if(!output_landmark_locations.empty()) { string outfeatures = output_landmark_locations.at(i); - write_out_landmarks(outfeatures, clnf_model); + write_out_landmarks(outfeatures, clnf_model, headPose, gazeDirection0, gazeDirection1, ActionUnits.first, ActionUnits.second); } // Writing out the detected landmarks diff --git a/exe/FeatureExtraction/FeatureExtraction.cpp b/exe/FeatureExtraction/FeatureExtraction.cpp index 3c3d46df..05ffe835 100644 --- a/exe/FeatureExtraction/FeatureExtraction.cpp +++ b/exe/FeatureExtraction/FeatureExtraction.cpp @@ -324,7 +324,7 @@ int main (int argc, char **argv) // Used for image masking - cv::Mat_ triangulation; + cv::Mat_ triangulation;//TODO rem? string tri_loc; if(boost::filesystem::exists(path("model/tris_68_full.txt"))) { diff --git a/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt b/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt index 20f275b7..979ece1d 100644 --- a/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt +++ b/lib/local/FaceAnalyser/AU_predictors/AU_all_best.txt @@ -1,20 +1,18 @@ -svr_disfa/AU_1_static.dat AU01 -svr_disfa/AU_2_dyn.dat AU02 -svr_disfa/AU_4_static.dat AU04 -svm_combined/AU_4_dynamic_combined_all.dat AU04 -svr_disfa/AU_5_dyn.dat AU05 -svr_combined/AU_6_static_intensity_combined.dat AU06 -svr_disfa/AU_9_dyn.dat AU09 -svr_bp4d/AU_10_static_intensity.dat AU10 -svm_combined/AU_12_static_combined_all.dat AU12 -svr_combined/AU_12_static_intensity_combined.dat AU12 -svr_bp4d/AU_14_static_intensity.dat AU14 -svr_disfa/AU_15_dyn.dat AU15 -svm_combined/AU_15_dynamic_combined_all.dat AU15 -svr_combined/AU_17_static_intensity_combined.dat AU17 -svr_disfa/AU_20_dyn.dat AU20 -svm_bp4d/AU_23_static.dat AU23 -svr_disfa/AU_25_static.dat AU25 -svr_disfa/AU_26_dyn.dat AU26 -svm_semaine/AU_28_static.dat AU28 -svm_semaine/AU_45_dynamic.dat AU45 \ No newline at end of file +svm_combined/AU_1_dynamic.dat AU01 +svm_combined/AU_2_dynamic.dat AU02 +svm_combined/AU_4_static.dat AU04 +svm_combined/AU_5_static.dat AU05 +svm_combined/AU_6_static.dat AU06 +svm_combined/AU_7_static.dat AU07 +svm_combined/AU_9_dynamic.dat AU09 +svm_combined/AU_10_static.dat AU10 +svm_combined/AU_12_static.dat AU12 +svm_combined/AU_14_static.dat AU14 +svm_combined/AU_15_dynamic.dat AU15 +svm_combined/AU_17_dynamic.dat AU17 +svm_combined/AU_20_dynamic.dat AU20 +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 diff --git a/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt b/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt index 97f1ffb5..4d9504aa 100644 --- a/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt +++ b/lib/local/FaceAnalyser/AU_predictors/AU_all_static.txt @@ -1,23 +1,35 @@ -svr_disfa/AU_1_static.dat AU01 -svr_disfa/AU_2_static.dat AU02 -svr_disfa/AU_4_static.dat AU04 -svm_combined/AU_4_static_combined_all.dat AU04 -svr_disfa/AU_5_static.dat AU05 -svr_combined/AU_6_static_intensity_combined.dat AU06 -svm_bp4d/AU_7_static.dat AU07 -svr_disfa/AU_9_static.dat AU09 -svr_bp4d/AU_10_static_intensity.dat AU10 -svm_combined/AU_12_static_combined_all.dat AU12 -svr_combined/AU_12_static_intensity_combined.dat AU12 -svr_bp4d/AU_14_static_intensity.dat AU14 -svr_disfa/AU_15_static.dat AU15 -svm_combined/AU_15_static_combined_all.dat AU15 -svr_combined/AU_17_static_intensity_combined.dat AU17 -svm_combined/AU_17_static_combined_all.dat AU17 -svr_disfa/AU_20_static.dat AU20 -svm_bp4d/AU_23_static.dat AU23 -svr_disfa/AU_25_static.dat AU25 -svm_combined/AU_25_static_combined_all.dat AU25 -svr_disfa/AU_26_static.dat AU26 -svm_semaine/AU_28_static.dat AU28 -svm_semaine/AU_45_static.dat AU45 \ No newline at end of file +svm_combined/AU_1_static.dat AU01 +svm_combined/AU_2_static.dat AU02 +svm_combined/AU_4_static.dat AU04 +svm_combined/AU_5_static.dat AU05 +svm_combined/AU_6_static.dat AU06 +svm_combined/AU_7_static.dat AU07 +svm_combined/AU_9_static.dat AU09 +svm_combined/AU_10_static.dat AU10 +svm_combined/AU_12_static.dat AU12 +svm_combined/AU_14_static.dat AU14 +svm_combined/AU_15_static.dat AU15 +svm_combined/AU_17_static.dat AU17 +svm_combined/AU_20_static.dat AU20 +svm_combined/AU_23_static.dat AU23 +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_2_static_intensity_comb.dat AU02 +svr_combined/AU_4_static_intensity_comb.dat AU04 +svr_combined/AU_5_static_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_static_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_static_intensity_comb.dat AU15 +svr_combined/AU_17_static_intensity_comb.dat AU17 +svr_combined/AU_20_static_intensity.dat AU20 +svr_combined/AU_23_static_intensity_comb.dat AU23 +svr_combined/AU_25_static_intensity.dat AU25 +svr_combined/AU_26_static_intensity_comb.dat AU26 +svr_combined/AU_45_static_intensity_comb.dat AU45 \ No newline at end of file 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 new file mode 100644 index 00000000..d81b6c8c Binary files /dev/null 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 new file mode 100644 index 00000000..cdd15a1d Binary files /dev/null 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 new file mode 100644 index 00000000..f8afb264 Binary files /dev/null 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 new file mode 100644 index 00000000..2690abe1 Binary files /dev/null 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_12_static_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_static_combined_all.dat deleted file mode 100644 index ad1b61b9..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_12_static_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..d31141a6 Binary files /dev/null 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 new file mode 100644 index 00000000..b1869dbf Binary files /dev/null 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 new file mode 100644 index 00000000..79afec4f Binary files /dev/null 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_dynamic_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_dynamic_combined_all.dat deleted file mode 100644 index 2fe049b6..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_dynamic_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..cd428599 Binary files /dev/null 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_15_static_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_static_combined_all.dat deleted file mode 100644 index cbc2f54b..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_15_static_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..32996100 Binary files /dev/null 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 new file mode 100644 index 00000000..c4639dac Binary files /dev/null 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 new file mode 100644 index 00000000..ea123c8b Binary files /dev/null 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 new file mode 100644 index 00000000..fe091ad9 Binary files /dev/null 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_1_static_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_static_combined_all.dat deleted file mode 100644 index d8059353..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_1_static_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..9f085a06 Binary files /dev/null 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 new file mode 100644 index 00000000..b35708b3 Binary files /dev/null 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 new file mode 100644 index 00000000..f2cddb44 Binary files /dev/null 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 new file mode 100644 index 00000000..c8def81e Binary files /dev/null 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 new file mode 100644 index 00000000..03f5b23e Binary files /dev/null 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 new file mode 100644 index 00000000..6ee8a52d Binary files /dev/null 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_25_static_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_static_combined_all.dat deleted file mode 100644 index 0e978e3b..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_25_static_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..6cd620a2 Binary files /dev/null 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 new file mode 100644 index 00000000..fd0a99e4 Binary files /dev/null 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 new file mode 100644 index 00000000..d53c4c23 Binary files /dev/null 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 new file mode 100644 index 00000000..97fed7e4 Binary files /dev/null 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 new file mode 100644 index 00000000..e62fc01b Binary files /dev/null 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_dynamic_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_dynamic_combined_all.dat deleted file mode 100644 index dbba5872..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_dynamic_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..1d45f7a8 Binary files /dev/null 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_2_static_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_static_combined_all.dat deleted file mode 100644 index 33a1af86..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_2_static_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..578f5994 Binary files /dev/null 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 new file mode 100644 index 00000000..8e13be50 Binary files /dev/null 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 new file mode 100644 index 00000000..55f7b92a Binary files /dev/null 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_dynamic_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_dynamic_combined_all.dat deleted file mode 100644 index 1fe42297..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_dynamic_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..a887b0b1 Binary files /dev/null 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_4_static_combined_all.dat b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_static_combined_all.dat deleted file mode 100644 index 498d0344..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_4_static_combined_all.dat and /dev/null 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 new file mode 100644 index 00000000..87cb54c6 Binary files /dev/null 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 new file mode 100644 index 00000000..7b44fe37 Binary files /dev/null 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 new file mode 100644 index 00000000..462b8181 Binary files /dev/null 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 new file mode 100644 index 00000000..e90adf53 Binary files /dev/null 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 new file mode 100644 index 00000000..0643e7ec Binary files /dev/null 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 new file mode 100644 index 00000000..b7099299 Binary files /dev/null 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 new file mode 100644 index 00000000..77a14d21 Binary files /dev/null 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 new file mode 100644 index 00000000..f2e74fa8 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svm_combined/AU_9_static.dat 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 new file mode 100644 index 00000000..52673b7d Binary files /dev/null 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 new file mode 100644 index 00000000..574057ba Binary files /dev/null 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_12_static_intensity_combined.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_12_static_intensity_combined.dat deleted file mode 100644 index 1f4fcb45..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_12_static_intensity_combined.dat and /dev/null 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 new file mode 100644 index 00000000..2e3975de Binary files /dev/null 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_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_15_static_intensity_comb.dat new file mode 100644 index 00000000..fb5f4e48 Binary files /dev/null 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_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_comb.dat new file mode 100644 index 00000000..45fcb68d Binary files /dev/null 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_17_static_intensity_combined.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_combined.dat deleted file mode 100644 index eb5dbccf..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_17_static_intensity_combined.dat and /dev/null 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 new file mode 100644 index 00000000..b0d9d437 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_1_static_intensity_comb.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 new file mode 100644 index 00000000..4a445e45 Binary files /dev/null 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_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_23_static_intensity_comb.dat new file mode 100644 index 00000000..2528743a Binary files /dev/null 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_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_25_static_intensity.dat new file mode 100644 index 00000000..60895212 Binary files /dev/null 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_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_26_static_intensity_comb.dat new file mode 100644 index 00000000..da3f8bf3 Binary files /dev/null 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_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_2_static_intensity_comb.dat new file mode 100644 index 00000000..140366d6 Binary files /dev/null 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_static_intensity_comb.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_45_static_intensity_comb.dat new file mode 100644 index 00000000..5d1bc606 Binary files /dev/null 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 new file mode 100644 index 00000000..a023e7a8 Binary files /dev/null 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_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_5_static_intensity.dat new file mode 100644 index 00000000..c2c5fb62 Binary files /dev/null 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 new file mode 100644 index 00000000..e98b274c Binary files /dev/null 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_6_static_intensity_combined.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_6_static_intensity_combined.dat deleted file mode 100644 index 14c5e689..00000000 Binary files a/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_6_static_intensity_combined.dat and /dev/null 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 new file mode 100644 index 00000000..31976cfa Binary files /dev/null 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_static_intensity.dat b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_static_intensity.dat new file mode 100644 index 00000000..ba358174 Binary files /dev/null and b/lib/local/FaceAnalyser/AU_predictors/svr_combined/AU_9_static_intensity.dat differ diff --git a/lib/local/FaceAnalyser/include/FaceAnalyser.h b/lib/local/FaceAnalyser/include/FaceAnalyser.h index d3bb30bb..6228995c 100644 --- a/lib/local/FaceAnalyser/include/FaceAnalyser.h +++ b/lib/local/FaceAnalyser/include/FaceAnalyser.h @@ -99,6 +99,10 @@ public: std::vector> GetCurrentAUsReg() const; // AU intensity std::vector> GetCurrentAUsCombined() const; // Both presense and intensity + // A standalone call for predicting AUs from a static image, the first element in the pair represents occurence the second intensity + // This call is useful for detecting action units in images + std::pair>, std::vector>> PredictStaticAUs(const cv::Mat& frame, const LandmarkDetector::CLNF& clnf, bool visualise = true); + void Reset(); void GetLatestHOG(cv::Mat_& hog_descriptor, int& num_rows, int& num_cols); @@ -123,8 +127,8 @@ public: std::vector GetDynamicAUReg() const; // Intensity - void ExtractAllPredictionsOfflineReg(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps); - void ExtractAllPredictionsOfflineClass(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps); + void ExtractAllPredictionsOfflineReg(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps, bool dynamic); + void ExtractAllPredictionsOfflineClass(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps, bool dynamic); private: diff --git a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp index ba6e3466..94ae1cf3 100644 --- a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp +++ b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp @@ -303,6 +303,59 @@ void FaceAnalyser::ExtractCurrentMedians(vector& hog_medians, vector>, std::vector>> FaceAnalyser::PredictStaticAUs(const cv::Mat& frame, const LandmarkDetector::CLNF& clnf, bool visualise) +{ + + // First align the face + AlignFaceMask(aligned_face, frame, clnf, triangulation, true, align_scale, align_width, align_height); + + // 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; + + cv::Vec3d curr_orient(clnf.params_global[1], clnf.params_global[2], clnf.params_global[3]); + int orientation_to_use = GetViewId(this->head_orientations, curr_orient); + + // Geom descriptor and its median + geom_descriptor_frame = clnf.params_local.t(); + + // Stack with the actual feature point locations (without mean) + cv::Mat_ locs = clnf.pdm.princ_comp * geom_descriptor_frame.t(); + + cv::hconcat(locs.t(), geom_descriptor_frame.clone(), geom_descriptor_frame); + + // First convert the face image to double representation as a row vector + cv::Mat_ aligned_face_cols(1, aligned_face.cols * aligned_face.rows * aligned_face.channels(), aligned_face.data, 1); + cv::Mat_ aligned_face_cols_double; + aligned_face_cols.convertTo(aligned_face_cols_double, CV_64F); + + // Visualising the median HOG + if (visualise) + { + FaceAnalysis::Visualise_FHOG(hog_descriptor, num_hog_rows, num_hog_cols, hog_descriptor_visualisation); + } + + // Perform AU prediction + auto AU_predictions_intensity = PredictCurrentAUs(orientation_to_use); + auto AU_predictions_occurence = PredictCurrentAUsClass(orientation_to_use); + + // Make sure intensity is within range (0-5) + for (size_t au = 0; au < AU_predictions_intensity.size(); ++au) + { + if (AU_predictions_intensity[au].second < 0) + AU_predictions_intensity[au].second = 0; + + if (AU_predictions_intensity[au].second > 5) + AU_predictions_intensity[au].second = 5; + } + + return std::pair>, std::vector>>(AU_predictions_intensity, AU_predictions_occurence); + +} + void FaceAnalyser::AddNextFrame(const cv::Mat& frame, const LandmarkDetector::CLNF& clnf_model, double timestamp_seconds, bool online, bool visualise) { @@ -607,7 +660,6 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vectorconfidences; successes = this->valid_preds; - // TODO only if the video is long enough or there is enough range? Compare stdev of BP4D and this for(auto au_iter = AU_predictions_reg_all_hist.begin(); au_iter != AU_predictions_reg_all_hist.end(); ++au_iter) { vector au_good; @@ -665,6 +717,28 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vectorfirst; + + // Perform a moving average of 3 frames + int window_size = 3; + vector au_vals_tmp = au_iter->second; + for (size_t i = (window_size - 1) / 2; i < au_iter->second.size() - (window_size - 1) / 2; ++i) + { + double sum = 0; + for (int w = -(window_size - 1) / 2; w < (window_size - 1) / 2; ++w) + { + sum += au_vals_tmp[i + w]; + } + sum = sum / window_size; + + au_iter->second[i] = sum; + } + + } + } diff --git a/matlab_runners/Action Unit Experiments/BP4D_valid_res_class.txt b/matlab_runners/Action Unit Experiments/BP4D_valid_res_class.txt index 9569e9b7..2cd767ce 100644 --- a/matlab_runners/Action Unit Experiments/BP4D_valid_res_class.txt +++ b/matlab_runners/Action Unit Experiments/BP4D_valid_res_class.txt @@ -1,11 +1,11 @@ -AU1 class, Precision - 0.426, Recall - 0.389, F1 - 0.406 -AU2 class, Precision - 0.326, Recall - 0.366, F1 - 0.345 -AU4 class, Precision - 0.465, Recall - 0.441, F1 - 0.453 -AU6 class, Precision - 0.759, Recall - 0.760, F1 - 0.760 -AU7 class, Precision - 0.741, Recall - 0.660, F1 - 0.698 -AU10 class, Precision - 0.863, Recall - 0.813, F1 - 0.837 -AU12 class, Precision - 0.882, Recall - 0.846, F1 - 0.864 -AU14 class, Precision - 0.575, Recall - 0.776, F1 - 0.660 -AU15 class, Precision - 0.348, Recall - 0.538, F1 - 0.423 -AU17 class, Precision - 0.575, Recall - 0.595, F1 - 0.585 -AU23 class, Precision - 0.395, Recall - 0.514, F1 - 0.447 +AU1 class, Precision - 0.470, Recall - 0.527, F1 - 0.497 +AU2 class, Precision - 0.371, Recall - 0.376, F1 - 0.373 +AU4 class, Precision - 0.422, Recall - 0.570, F1 - 0.485 +AU6 class, Precision - 0.845, Recall - 0.698, F1 - 0.765 +AU7 class, Precision - 0.719, Recall - 0.766, F1 - 0.742 +AU10 class, Precision - 0.811, Recall - 0.801, F1 - 0.806 +AU12 class, Precision - 0.902, Recall - 0.780, F1 - 0.837 +AU14 class, Precision - 0.513, Recall - 0.874, F1 - 0.647 +AU15 class, Precision - 0.406, Recall - 0.431, F1 - 0.418 +AU17 class, Precision - 0.638, Recall - 0.615, F1 - 0.626 +AU23 class, Precision - 0.357, Recall - 0.507, F1 - 0.419 diff --git a/matlab_runners/Action Unit Experiments/Bosphorus_res_class.txt b/matlab_runners/Action Unit Experiments/Bosphorus_res_class.txt new file mode 100644 index 00000000..bd8d37be --- /dev/null +++ b/matlab_runners/Action Unit Experiments/Bosphorus_res_class.txt @@ -0,0 +1,17 @@ +AU1 class, Precision - 0.371, Recall - 0.756, F1 - 0.498 +AU2 class, Precision - 0.303, Recall - 0.829, F1 - 0.443 +AU4 class, Precision - 0.552, Recall - 0.856, F1 - 0.671 +AU5 class, Precision - 0.361, Recall - 0.878, F1 - 0.511 +AU6 class, Precision - 0.348, Recall - 0.817, F1 - 0.488 +AU7 class, Precision - 0.819, Recall - 0.717, F1 - 0.765 +AU9 class, Precision - 0.361, Recall - 0.946, F1 - 0.522 +AU10 class, Precision - 0.336, Recall - 0.780, F1 - 0.469 +AU12 class, Precision - 0.687, Recall - 0.856, F1 - 0.762 +AU14 class, Precision - 0.190, Recall - 0.863, F1 - 0.311 +AU15 class, Precision - 0.156, Recall - 0.844, F1 - 0.263 +AU17 class, Precision - 0.284, Recall - 0.866, F1 - 0.428 +AU20 class, Precision - 0.130, Recall - 0.930, F1 - 0.228 +AU23 class, Precision - 0.103, Recall - 0.837, F1 - 0.183 +AU25 class, Precision - 0.839, Recall - 0.829, F1 - 0.834 +AU26 class, Precision - 0.363, Recall - 0.794, F1 - 0.498 +AU45 class, Precision - 0.377, Recall - 0.842, F1 - 0.521 diff --git a/matlab_runners/Action Unit Experiments/SEMAINE_valid_res.txt b/matlab_runners/Action Unit Experiments/SEMAINE_valid_res.txt index f42fad24..f6bddede 100644 --- a/matlab_runners/Action Unit Experiments/SEMAINE_valid_res.txt +++ b/matlab_runners/Action Unit Experiments/SEMAINE_valid_res.txt @@ -1,6 +1,6 @@ -AU2 class, Precision - 0.489, Recall - 0.536, F1 - 0.511 -AU12 class, Precision - 0.521, Recall - 0.751, F1 - 0.615 -AU17 class, Precision - 0.408, Recall - 0.486, F1 - 0.444 -AU25 class, Precision - 0.410, Recall - 0.542, F1 - 0.467 -AU28 class, Precision - 0.493, Recall - 0.398, F1 - 0.441 -AU45 class, Precision - 0.223, Recall - 0.723, F1 - 0.341 +AU2 class, Precision - 0.366, Recall - 0.718, F1 - 0.484 +AU12 class, Precision - 0.434, Recall - 0.790, F1 - 0.560 +AU17 class, Precision - 0.129, Recall - 0.830, F1 - 0.223 +AU25 class, Precision - 0.362, Recall - 0.580, F1 - 0.446 +AU28 class, Precision - 0.362, Recall - 0.514, F1 - 0.425 +AU45 class, Precision - 0.295, Recall - 0.571, F1 - 0.389 diff --git a/matlab_runners/Action Unit Experiments/helpers/extract_Bosphorus_labels.m b/matlab_runners/Action Unit Experiments/helpers/extract_Bosphorus_labels.m new file mode 100644 index 00000000..fbdcde84 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/helpers/extract_Bosphorus_labels.m @@ -0,0 +1,103 @@ +function [ labels, valid_ids, filenames ] = extract_Bosphorus_labels( Bosphorus_dir, recs, aus ) +%EXTRACT_SEMAINE_LABELS Summary of this function goes here +% Detailed explanation goes here + + % Ignoring rare ones or ones that don't overlap with other datasets + aus_Bosphorus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 43]; + aus(aus == 45) = 43; + + %% + fid = fopen([Bosphorus_dir, './facscodes/facscodes.lst']); + % Skipping the header + fgetl(fid); + fgetl(fid); + + % Starting to read + data = fgetl(fid); + + all_aus = []; + valid = []; + + id = 1; + + filenames = {}; + + while ischar(data) + + d = strsplit(data, '->'); + data = fgetl(fid); + + filename = strtrim(d{1}); + + % Skip extreme poses + if(~isempty(findstr(filename, 'CR')) || ~isempty(findstr(filename, 'YR') > 0) || ~isempty(findstr(filename, 'PR_U'))|| ~isempty(findstr(filename, 'PR_D'))) + continue; + end + + % ignore labels from non requested users + if(isempty(strmatch(filename(1:5), recs))) + continue; + end + + filenames = cat(1, filenames, filename); + + aus_str = d{2}(3:end); + + % decode the AU data + aus_c = strsplit(aus_str, '+'); + + curr_img_au = zeros(1, 80); + + for i=1:numel(aus_c) + + if(aus_c{i} == '0') + + continue + end + + intensity = -1; + + intensity_str = aus_c{i}(end); + if(intensity_str == 'A') + intensity = 1; + elseif(intensity_str == 'B') + intensity = 2; + elseif(intensity_str == 'C') + intensity = 3; + elseif(intensity_str == 'D') + intensity = 4; + elseif(intensity_str == 'E') + intensity = 5; + end + + if(~isempty(str2num(aus_c{i}(1)))) + if(intensity ~= -1) + num = str2num(aus_c{i}(1:end-1)); + else + num = str2num(aus_c{i}(1:end)); + intensity = 3; % if no intensity given just assume 3 + end + else + if(intensity ~= -1) + num = str2num(aus_c{i}(2:end-1)); + else + num = str2num(aus_c{i}(2:end)); + intensity = 3; % if no intensity given just assume 3 + end + end + + curr_img_au(1, num) = intensity; + end + all_aus = cat(1, all_aus, curr_img_au); + valid = cat(1, valid, [true]); + + id = id + 1; + + end + %aus_bosph = dlmread(, '->', 3, 0); + fclose(fid); + + valid_ids = logical(valid); + labels = all_aus(:, aus); +end + diff --git a/matlab_runners/Action Unit Experiments/helpers/find_Bosphorus.m b/matlab_runners/Action Unit Experiments/helpers/find_Bosphorus.m new file mode 100644 index 00000000..39c101e5 --- /dev/null +++ b/matlab_runners/Action Unit Experiments/helpers/find_Bosphorus.m @@ -0,0 +1,21 @@ +if(exist('D:/Datasets/Bosphorus/', 'file')) + Bosphorus_dir = 'D:\Datasets\Bosphorus/'; +else + fprintf('Bosphorus dataset location not found (or not defined)\n'); +end + +hog_data_dir = ['D:\Datasets\face_datasets']; + +all_recs = dir([Bosphorus_dir, '/BosphorusDB/BosphorusDB/bs*']); +all_recs_mat = cat(1, all_recs.name); +all_recs = cell(numel(all_recs), 1); + +for i=1:size(all_recs_mat,1) + + all_recs{i} = all_recs_mat(i,:); + +end + +devel_recs = all_recs(1:3:end); +train_recs = setdiff(all_recs, devel_recs); + 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 1c0a45b9..5474f686 100644 --- a/matlab_runners/Action Unit Experiments/run_AU_prediction_BP4D.m +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_BP4D.m @@ -13,32 +13,56 @@ executable = '"../../x64/Release/FeatureExtraction.exe"'; bp4d_dirs = {'F002', 'F004', 'F006', 'F008', 'F010', 'F012', 'F014', 'F016', 'F018', 'F020', 'F022', 'M002', 'M004', 'M006', 'M008', 'M010', 'M012', 'M014', 'M016', 'M018'}; -parfor f1=1:numel(bp4d_dirs) +%% Before running BP4D convert it to a smaller format and move each person to the same directory +% This is done so that dynamic models would work on it as otherwise the +% clips are a bit too short - if(isdir([bp4d_loc, bp4d_dirs{f1}])) +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/']; + new_bp4d_dirs = cat(1, new_bp4d_dirs, tmp_dir); + + if(~exist(tmp_dir, 'file')) + mkdir(tmp_dir); - bp4d_2_dirs = dir([bp4d_loc, bp4d_dirs{f1}]); - bp4d_2_dirs = bp4d_2_dirs(3:end); - - f1_dir = bp4d_dirs{f1}; - - command = [executable ' -asvid -q -no2Dfp -no3Dfp -noMparams -noPose -noGaze ']; - - for f2=1:numel(bp4d_2_dirs) - f2_dir = bp4d_2_dirs(f2).name; - if(isdir([bp4d_loc, bp4d_dirs{f1}])) + % Move all images and resize them + for d=1:numel(dirs) + + in_files = dir([bp4d_loc, '/', bp4d_dirs{i}, '/', dirs(d).name, '/*.jpg']); + + for img_ind=1:numel(in_files) + + img_file = [bp4d_loc, '/', bp4d_dirs{i}, '/', dirs(d).name, '/', in_files(img_ind).name]; + img = imread(img_file); + img = imresize(img, 0.5); + img_out = [tmp_dir, dirs(d).name, '_', in_files(img_ind).name]; + imwrite(img, img_out); - curr_vid = [bp4d_loc, f1_dir, '/', f2_dir, '/']; - - name = [f1_dir '_' f2_dir]; - output_file = [out_loc name '.au.txt']; - - command = cat(2, command, [' -fdir "' curr_vid '" -of "' output_file '"']); end + end - dos(command); end + +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']; + + command = cat(2, command, [' -fdir "' new_bp4d_dirs{f1} '" -of "' output_file '"']); + + dos(command); + end %% @@ -52,7 +76,7 @@ aus_BP4D = [1, 2, 4, 6, 7, 10, 12, 14, 15, 17, 23]; 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 @@ -92,9 +116,13 @@ end preds_all_class = []; 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); + [~,f,~] = fileparts(f); + + fname = [out_loc, f, '.au.txt']; preds = dlmread(fname, ',', 1, 0); % Read all of the intensity AUs diff --git a/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.asv b/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.asv new file mode 100644 index 00000000..8659812e --- /dev/null +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.asv @@ -0,0 +1,189 @@ +% 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 new file mode 100644 index 00000000..80d0518d --- /dev/null +++ b/matlab_runners/Action Unit Experiments/run_AU_prediction_Bosphorus.m @@ -0,0 +1,200 @@ +% 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'); +labels_gt_bin = labels_gt; +labels_gt_bin(labels_gt_bin > 1) = 1; +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); + +end +fclose(f); + +%% Read the predicted values for intensities + +% 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 intensities:'))) + num_occurences = str2num(data(numel('au intensities:')+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'); +labels_gt_bin = labels_gt; +labels_gt_bin(labels_gt_bin > 1) = 1; +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); + +end +fclose(f); diff --git a/matlab_version/AU_training/data extraction/extract_Bosphorus_labels.m b/matlab_version/AU_training/data extraction/extract_Bosphorus_labels.m new file mode 100644 index 00000000..fbdcde84 --- /dev/null +++ b/matlab_version/AU_training/data extraction/extract_Bosphorus_labels.m @@ -0,0 +1,103 @@ +function [ labels, valid_ids, filenames ] = extract_Bosphorus_labels( Bosphorus_dir, recs, aus ) +%EXTRACT_SEMAINE_LABELS Summary of this function goes here +% Detailed explanation goes here + + % Ignoring rare ones or ones that don't overlap with other datasets + aus_Bosphorus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 43]; + aus(aus == 45) = 43; + + %% + fid = fopen([Bosphorus_dir, './facscodes/facscodes.lst']); + % Skipping the header + fgetl(fid); + fgetl(fid); + + % Starting to read + data = fgetl(fid); + + all_aus = []; + valid = []; + + id = 1; + + filenames = {}; + + while ischar(data) + + d = strsplit(data, '->'); + data = fgetl(fid); + + filename = strtrim(d{1}); + + % Skip extreme poses + if(~isempty(findstr(filename, 'CR')) || ~isempty(findstr(filename, 'YR') > 0) || ~isempty(findstr(filename, 'PR_U'))|| ~isempty(findstr(filename, 'PR_D'))) + continue; + end + + % ignore labels from non requested users + if(isempty(strmatch(filename(1:5), recs))) + continue; + end + + filenames = cat(1, filenames, filename); + + aus_str = d{2}(3:end); + + % decode the AU data + aus_c = strsplit(aus_str, '+'); + + curr_img_au = zeros(1, 80); + + for i=1:numel(aus_c) + + if(aus_c{i} == '0') + + continue + end + + intensity = -1; + + intensity_str = aus_c{i}(end); + if(intensity_str == 'A') + intensity = 1; + elseif(intensity_str == 'B') + intensity = 2; + elseif(intensity_str == 'C') + intensity = 3; + elseif(intensity_str == 'D') + intensity = 4; + elseif(intensity_str == 'E') + intensity = 5; + end + + if(~isempty(str2num(aus_c{i}(1)))) + if(intensity ~= -1) + num = str2num(aus_c{i}(1:end-1)); + else + num = str2num(aus_c{i}(1:end)); + intensity = 3; % if no intensity given just assume 3 + end + else + if(intensity ~= -1) + num = str2num(aus_c{i}(2:end-1)); + else + num = str2num(aus_c{i}(2:end)); + intensity = 3; % if no intensity given just assume 3 + end + end + + curr_img_au(1, num) = intensity; + end + all_aus = cat(1, all_aus, curr_img_au); + valid = cat(1, valid, [true]); + + id = id + 1; + + end + %aus_bosph = dlmread(, '->', 3, 0); + fclose(fid); + + valid_ids = logical(valid); + labels = all_aus(:, aus); +end + diff --git a/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m b/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m new file mode 100644 index 00000000..832feef3 --- /dev/null +++ b/matlab_version/AU_training/data extraction/extract_features_Bosphorus.m @@ -0,0 +1,32 @@ +clear +features_exe = '"..\..\..\x64\Release\FeatureExtraction.exe"'; + +bosph_loc = 'D:\Datasets\Bosphorus\BosphorusDB\BosphorusDB/'; + +out_loc = 'D:\Datasets\face_datasets/'; + +% Go two levels deep +bosph_dirs = dir([bosph_loc, '/bs*']); + +for f1=1:numel(bosph_dirs) + + name = [bosph_dirs(f1).name]; + + curr_vids = dir([bosph_loc, '/' name, '/*.png']); + + parfor i=1:numel(curr_vids) + command = features_exe; + input_file = [bosph_loc, '/' name '/', curr_vids(i).name]; + [~, curr_name, ~] = fileparts(curr_vids(i).name); + output_file = [out_loc, '/hog_aligned_rigid_b/', curr_name, '/']; + + output_hog = [out_loc, '/hog_aligned_rigid_b/',curr_name '.hog']; + output_params = [out_loc, '/model_params_b/', curr_name '.txt']; + + command = cat(2, command, [' -rigid -f "' input_file '" -simalign "' output_file '" -simscale 0.7 -simsize 112 ']); + command = cat(2, command, [' -hogalign "' output_hog '"' ' -of "' output_params ]); + command = cat(2, command, ['" -no2Dfp -no3Dfp -noAUs -noPose -noGaze -q ']); + dos(command); + end + +end \ No newline at end of file diff --git a/matlab_version/AU_training/data extraction/extract_features_UNBC.m b/matlab_version/AU_training/data extraction/extract_features_UNBC.m index 24993117..6c51aff0 100644 --- a/matlab_version/AU_training/data extraction/extract_features_UNBC.m +++ b/matlab_version/AU_training/data extraction/extract_features_UNBC.m @@ -9,10 +9,6 @@ out_loc = 'D:\Datasets\face_datasets/'; unbc_dirs = dir(unbc_loc); unbc_dirs = unbc_dirs(3:end); -if(~exist([out_loc, '/clm_params/'], 'file')) - mkdir([out_loc, '/clm_params/']); -end - parfor f1=1:numel(unbc_dirs) unbc_dirs_level_2 = dir([unbc_loc, unbc_dirs(f1).name]); diff --git a/matlab_version/AU_training/data extraction/find_Bosphorus.m b/matlab_version/AU_training/data extraction/find_Bosphorus.m new file mode 100644 index 00000000..39c101e5 --- /dev/null +++ b/matlab_version/AU_training/data extraction/find_Bosphorus.m @@ -0,0 +1,21 @@ +if(exist('D:/Datasets/Bosphorus/', 'file')) + Bosphorus_dir = 'D:\Datasets\Bosphorus/'; +else + fprintf('Bosphorus dataset location not found (or not defined)\n'); +end + +hog_data_dir = ['D:\Datasets\face_datasets']; + +all_recs = dir([Bosphorus_dir, '/BosphorusDB/BosphorusDB/bs*']); +all_recs_mat = cat(1, all_recs.name); +all_recs = cell(numel(all_recs), 1); + +for i=1:size(all_recs_mat,1) + + all_recs{i} = all_recs_mat(i,:); + +end + +devel_recs = all_recs(1:3:end); +train_recs = setdiff(all_recs, devel_recs); + diff --git a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic.m b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic.m index 8e38f2f9..1e56805d 100644 --- a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic.m +++ b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic.m @@ -75,9 +75,21 @@ labels_devel = cat(1, labels_devel{:}); valid_ids_test = valid_ids_devel_hog; -% normalise the data -load(pca_file); - +% 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(train_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(train_geom_data, 2)); diff --git a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_dynamic.m b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_dynamic.m index 99ce1308..05f3f66e 100644 --- a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_dynamic.m +++ b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_dynamic.m @@ -71,9 +71,21 @@ devel_appearance_data = cat(2, devel_appearance_data, devel_geom_data); valid_ids_devel = valid_ids_devel_hog; -% normalise the data -load(pca_file); - +% 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(train_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(train_geom_data, 2)); diff --git a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity.m b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity.m index 2c4bfd62..dae8fbae 100644 --- a/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity.m +++ b/matlab_version/AU_training/experiments/BP4D/Prepare_HOG_AU_data_generic_intensity.m @@ -1,5 +1,5 @@ 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(train_users, devel_users, au_train, bp4d_dir, hog_data_dir, pca_file) + Prepare_HOG_AU_data_generic_intensity(train_users, devel_users, au_train, bp4d_dir, hog_data_dir) %% addpath(genpath('../data extraction/')); @@ -76,8 +76,20 @@ labels_devel = cat(1, labels_devel{:}); success_devel = valid_ids_devel; -% normalise the data -load(pca_file); +% 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; diff --git a/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_dynamic_shift.m b/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_dynamic_shift.m index e4b45af4..06aa8822 100644 --- a/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_dynamic_shift.m +++ b/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_dynamic_shift.m @@ -14,10 +14,10 @@ hyperparams.p = 10.^(-2); hyperparams.validate_params = {'c', 'p'}; % Set the training function -svr_train = @svr_train_linear_shift_fancy; +svr_train = @svr_train_linear_shift; % Set the test function (the first output will be used for validation) -svr_test = @svr_test_linear_shift_fancy; +svr_test = @svr_test_linear_shift; pca_loc = '../../pca_generation/generic_face_rigid.mat'; diff --git a/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static_shift.m b/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static_shift.m index e4b45af4..06aa8822 100644 --- a/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static_shift.m +++ b/matlab_version/AU_training/experiments/BP4D/Script_HOG_SVR_static_shift.m @@ -14,10 +14,10 @@ hyperparams.p = 10.^(-2); hyperparams.validate_params = {'c', 'p'}; % Set the training function -svr_train = @svr_train_linear_shift_fancy; +svr_train = @svr_train_linear_shift; % Set the test function (the first output will be used for validation) -svr_test = @svr_test_linear_shift_fancy; +svr_test = @svr_test_linear_shift; pca_loc = '../../pca_generation/generic_face_rigid.mat'; diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_10_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_10_dynamic.dat index 3b0f71ea..2b023a13 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_10_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_10_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_10_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_10_static.dat index 2167bd54..6ea1e528 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_10_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_10_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity.dat index 2fbd16ae..381143d1 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity_shift.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity_shift.dat index 2fbd16ae..381143d1 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity_shift.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_10_static_intensity_shift.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_12_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_12_dynamic.dat index 01d450d9..3c340db7 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_12_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_12_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_12_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_12_static.dat index 0b440019..a7d47be0 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_12_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_12_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity.dat index 43ddeb27..322b3f7b 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity_shift.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity_shift.dat index 43ddeb27..322b3f7b 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity_shift.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_12_static_intensity_shift.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_14_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_14_dynamic.dat index 693435a0..6a0b383f 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_14_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_14_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_14_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_14_static.dat index fc885644..ec09ccde 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_14_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_14_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity.dat index 56874201..c2a8662c 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity_shift.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity_shift.dat index 56874201..c2a8662c 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity_shift.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_14_static_intensity_shift.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_15_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_15_dynamic.dat index 80949291..59105322 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_15_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_15_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_15_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_15_static.dat index 028b044b..71722446 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_15_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_15_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_17_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_17_dynamic.dat index 5ec09d6b..7a544b14 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_17_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_17_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_17_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_17_static.dat index 46f374cc..40e5a192 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_17_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_17_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity.dat index 37cdb3db..c4a77fdd 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity_shift.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity_shift.dat index fe0c1572..1c6516ab 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity_shift.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_17_static_intensity_shift.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_1_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_1_dynamic.dat index f6532b53..a1c064c6 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_1_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_1_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_1_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_1_static.dat index af0da298..f7da0d28 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_1_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_1_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_23_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_23_dynamic.dat index 8019114c..f4069928 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_23_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_23_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_23_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_23_static.dat index 6e37f64f..a8b5abbb 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_23_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_23_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_2_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_2_dynamic.dat index f07d541a..288db4fc 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_2_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_2_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_2_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_2_static.dat index 6ca8b196..f6e94fa6 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_2_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_2_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_4_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_4_dynamic.dat index 2d031032..67af3a38 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_4_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_4_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_4_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_4_static.dat index 635e3a04..95bcef64 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_4_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_4_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_6_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_6_dynamic.dat index 7be5f50c..d5bf4d30 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_6_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_6_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_6_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_6_static.dat index 9c09a39c..646f107d 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_6_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_6_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity.dat index b935de41..4e1a5163 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity_shift.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity_shift.dat index 95fc88b8..12ef667d 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity_shift.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_6_static_intensity_shift.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_7_dynamic.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_7_dynamic.dat index 9dc90bf1..7ea2d0d0 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_7_dynamic.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_7_dynamic.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/models/AU_7_static.dat b/matlab_version/AU_training/experiments/BP4D/models/AU_7_static.dat index f2f953ad..76da8d3d 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/models/AU_7_static.dat and b/matlab_version/AU_training/experiments/BP4D/models/AU_7_static.dat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_dynamic.mat index 70e1a869..e6643b15 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static.mat index ca5313b6..8c13724f 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity.mat index d2236062..c91740c3 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity_shift.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity_shift.mat index 3115dfa4..a541ec70 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity_shift.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_10_static_intensity_shift.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_dynamic.mat index 8dd0372a..509564f6 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static.mat index baa6d4fb..279b1df2 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity.mat index 52d2837d..71c19cf3 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity_shift.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity_shift.mat index 80b7cb42..f6cfd460 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity_shift.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_12_static_intensity_shift.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_dynamic.mat index e2dfd2aa..668cfce2 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static.mat index a111e8fc..eed2cf86 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity.mat index 9bfad69e..ace61ea2 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity_shift.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity_shift.mat index de47b01f..a82d591a 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity_shift.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_14_static_intensity_shift.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_dynamic.mat index 3f575937..c97bdae2 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_static.mat index ebe2017b..b3c037c0 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_15_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_dynamic.mat index c2a5b303..6675737e 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static.mat index 1407a182..3f798c22 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity.mat index 3cf4e6e4..6f150156 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity_shift.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity_shift.mat index fda54c85..d9c968cb 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity_shift.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_17_static_intensity_shift.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_dynamic.mat index 165c0ae5..ce868f85 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_static.mat index 32e0ec0a..71d39d59 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_1_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_dynamic.mat index 5404e4bb..2fc079b8 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_static.mat index fb7ec9c0..d03acaba 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_23_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_dynamic.mat index 4167bda2..5a6b0189 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_static.mat index d42ef74b..eac486ec 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_2_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_dynamic.mat index d7505f8f..df9cb6cc 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_static.mat index 6328ab79..4a37097b 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_4_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_dynamic.mat index c1df73a0..b325e1f4 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static.mat index ef60fd95..8d10da27 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity.mat index 4215b397..851e7255 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity_shift.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity_shift.mat index f7834bf1..d620ca1a 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity_shift.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_6_static_intensity_shift.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_dynamic.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_dynamic.mat index da0af27f..5776b1e0 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_dynamic.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_dynamic.mat differ diff --git a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_static.mat b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_static.mat index 7e28bbb0..9ce775db 100644 Binary files a/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_static.mat and b/matlab_version/AU_training/experiments/BP4D/results_BP4D_devel/AU_7_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/Prepare_HOG_AU_data.m b/matlab_version/AU_training/experiments/Bosphorus/Prepare_HOG_AU_data.m new file mode 100644 index 00000000..a8c4e83b --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Prepare_HOG_AU_data.m @@ -0,0 +1,119 @@ +function [data_train, labels_train, data_devel, labels_devel, raw_devel, PC, means_norm, stds_norm, devel_ids, devel_success] = ... + Prepare_HOG_AU_data(train_users, devel_users, au_train, rest_aus, Bosphorus_dir, hog_data_dir) + +%% +addpath(genpath('../data extraction/')); + +% First extracting the labels +[ labels_train, valid_ids_train, filenames ] = extract_Bosphorus_labels(Bosphorus_dir, train_users, au_train); + +[ labels_other, ~, ~ ] = extract_Bosphorus_labels(Bosphorus_dir, train_users, rest_aus); + +% Reading in the HOG data (of only relevant frames) +[train_appearance_data, valid_ids_train_hog, vid_ids_train_string] = Read_HOG_files(filenames, [hog_data_dir, '/hog_aligned_rigid_b']); + +params_data_dir = [hog_data_dir, '/model_params_b']; +[train_geom_data] = Read_geom_files(filenames, params_data_dir); + +% Subsample the data to rebalance it +if(numel(train_users) > 0) + 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); + + 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 + + % 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,:); + train_geom_data = train_geom_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, filenames_devel ] = extract_Bosphorus_labels(Bosphorus_dir, devel_users, au_train); + +% Reading in the HOG data (of only relevant frames) +[devel_appearance_data, valid_ids_devel_hog, vid_ids_devel_string] = Read_HOG_files(filenames_devel, [hog_data_dir, '/hog_aligned_rigid_b']); +devel_success = valid_ids_devel_hog; +devel_ids = vid_ids_devel_string; + +[devel_geom_data] = Read_geom_files(filenames_devel, params_data_dir); + +% 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 + +% Grab all data for validation as want good params for all the data +raw_devel = cat(2, devel_appearance_data, devel_geom_data); + +devel_appearance_data = bsxfun(@times, bsxfun(@plus, devel_appearance_data, -means_norm), 1./stds_norm); + +data_devel = devel_appearance_data * PC; + +data_devel = cat(2, data_devel, devel_geom_data); + +valid_ids_devel = valid_ids_devel & devel_success; +data_devel = data_devel(valid_ids_devel,:); +labels_devel = labels_devel(valid_ids_devel,:); +raw_devel = raw_devel(valid_ids_devel,:); +devel_success = devel_success(valid_ids_devel,:); +devel_ids = devel_ids(valid_ids_devel); + +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; + data_train = cat(2, data_train, train_geom_data); +else + data_train = []; +end + +geom_size = max(size(train_geom_data, 2), size(devel_geom_data, 2)); + +PC_n = zeros(size(PC)+geom_size); +PC_n(1:size(PC,1), 1:size(PC,2)) = PC; +PC_n(size(PC,1)+1:end, size(PC,2)+1:end) = eye(geom_size); +PC = PC_n; + +means_norm = cat(2, means_norm, zeros(1, geom_size)); +stds_norm = cat(2, stds_norm, ones(1, geom_size)); + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/Prepare_HOG_AU_data_dynamic.m b/matlab_version/AU_training/experiments/Bosphorus/Prepare_HOG_AU_data_dynamic.m new file mode 100644 index 00000000..a6a877ee --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Prepare_HOG_AU_data_dynamic.m @@ -0,0 +1,118 @@ +function [data_train, labels_train, data_devel, labels_devel, raw_devel, PC, means_norm, stds_norm, devel_ids, devel_success] = ... + Prepare_HOG_AU_data_dynamic(train_users, devel_users, au_train, rest_aus, Bosphorus_dir, hog_data_dir) + +%% +addpath(genpath('../data extraction/')); + +% First extracting the labels +[ labels_train, valid_ids_train, filenames ] = extract_Bosphorus_labels(Bosphorus_dir, train_users, au_train); + +[ labels_other, ~, ~ ] = extract_Bosphorus_labels(Bosphorus_dir, train_users, rest_aus); + +% Reading in the HOG data (of only relevant frames) +[train_appearance_data, valid_ids_train_hog, vid_ids_train_string] = Read_HOG_files_dynamic(filenames, [hog_data_dir, '/hog_aligned_rigid_b']); + +params_data_dir = [hog_data_dir, '/model_params_b']; +[train_geom_data] = Read_geom_files_dynamic(filenames, params_data_dir); + +if(numel(train_users) > 0) + 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); + + 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 + + % 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,:); + train_geom_data = train_geom_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, devel_files ] = extract_Bosphorus_labels(Bosphorus_dir, devel_users, au_train); + +% Reading in the HOG data (of only relevant frames) +[devel_appearance_data, valid_ids_devel_hog, vid_ids_devel_string] = Read_HOG_files_dynamic(devel_files, [hog_data_dir, '/hog_aligned_rigid_b']); +devel_success = valid_ids_devel_hog; +devel_ids = vid_ids_devel_string; + +[devel_geom_data] = Read_geom_files_dynamic(devel_files, params_data_dir); + +% 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 + +% Grab all data for validation as want good params for all the data +raw_devel = cat(2, devel_appearance_data, devel_geom_data); + +devel_appearance_data = bsxfun(@times, bsxfun(@plus, devel_appearance_data, -means_norm), 1./stds_norm); + +data_devel = devel_appearance_data * PC; + +data_devel = cat(2, data_devel, devel_geom_data); + +valid_ids_devel = valid_ids_devel & devel_success; +data_devel = data_devel(valid_ids_devel,:); +labels_devel = labels_devel(valid_ids_devel,:); +raw_devel = raw_devel(valid_ids_devel,:); +devel_success = devel_success(valid_ids_devel,:); +devel_ids = devel_ids(valid_ids_devel); + +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; + data_train = cat(2, data_train, train_geom_data); +else + data_train = []; +end + +geom_size = max(size(train_geom_data, 2), size(devel_geom_data, 2)); + +PC_n = zeros(size(PC)+geom_size); +PC_n(1:size(PC,1), 1:size(PC,2)) = PC; +PC_n(size(PC,1)+1:end, size(PC,2)+1:end) = eye(geom_size); +PC = PC_n; + +means_norm = cat(2, means_norm, zeros(1, geom_size)); +stds_norm = cat(2, stds_norm, ones(1, geom_size)); + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/Read_HOG_files.m b/matlab_version/AU_training/experiments/Bosphorus/Read_HOG_files.m new file mode 100644 index 00000000..3d9acc76 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Read_HOG_files.m @@ -0,0 +1,89 @@ +function [hog_data, valid_data, vid_id] = Read_HOG_files(users, hog_data_dir) + + + hog_data = []; + vid_id = {}; + valid_data = []; + + feats_filled = 0; + + for i=1:numel(users) + + hog_file =[hog_data_dir, '/' users{i} '.hog']; + + f = fopen(hog_file, 'r'); + + curr_data = []; + curr_ind = 0; + + while(~feof(f)) + + if(curr_ind == 0) + num_cols = fread(f, 1, 'int32'); + if(isempty(num_cols)) + break; + end + + num_rows = fread(f, 1, 'int32'); + num_chan = fread(f, 1, 'int32'); + + curr_ind = curr_ind + 1; + + % preallocate some space + if(curr_ind == 1) + curr_data = zeros(5000, 1 + num_rows * num_cols * num_chan); + num_feats = 1 + num_rows * num_cols * num_chan; + end + + if(curr_ind > size(curr_data,1)) + curr_data = cat(1, curr_data, zeros(6000, 1 + num_rows * num_cols * num_chan)); + end + feature_vec = fread(f, [1, 1 + num_rows * num_cols * num_chan], 'float32'); + curr_data(curr_ind, :) = feature_vec; + else + + % Reading in batches of 5000 + feature_vec = fread(f, [4 + num_rows * num_cols * num_chan, 5000], 'float32'); + feature_vec = feature_vec(4:end,:)'; + + if(isempty(feature_vec)) + continue + end + + num_rows_read = size(feature_vec,1); + + curr_data(curr_ind+1:curr_ind+num_rows_read,:) = feature_vec; + + curr_ind = curr_ind + size(feature_vec,1); + + end + end + fclose(f); + + curr_data = curr_data(1:curr_ind,:); + vid_id_curr = cell(curr_ind,1); + vid_id_curr(:) = users(i); + + vid_id = cat(1, vid_id, vid_id_curr); + + % Assume same number of frames per video + if(i==1) + hog_data = zeros(curr_ind*numel(users), num_feats); + end + + if(size(hog_data,1) < feats_filled+curr_ind) + hog_data = cat(1, hog_data, zeros(size(hog_data,1), num_feats)); + end + + hog_data(feats_filled+1:feats_filled+curr_ind,:) = curr_data; + + feats_filled = feats_filled + curr_ind; + + end + + if(numel(users) > 0) + valid_data = hog_data(1:feats_filled,1) > 0; + hog_data = hog_data(1:feats_filled,2:end); + end + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/Read_HOG_files_dynamic.m b/matlab_version/AU_training/experiments/Bosphorus/Read_HOG_files_dynamic.m new file mode 100644 index 00000000..0e0182f8 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Read_HOG_files_dynamic.m @@ -0,0 +1,101 @@ +function [hog_data, valid_data, vid_id] = Read_HOG_files_dynamic(users, hog_data_dir) + + + hog_data = []; + vid_id = {}; + valid_data = []; + + user_files = []; + + feats_filled = 0; + + for i=1:numel(users) + + hog_file = [hog_data_dir, '/' users{i} '.hog']; + + user_files = cat(1, user_files, str2num(users{i}(3:5))); + + f = fopen(hog_file, 'r'); + + curr_data = []; + curr_ind = 0; + + while(~feof(f)) + + if(curr_ind == 0) + num_cols = fread(f, 1, 'int32'); + if(isempty(num_cols)) + break; + end + + num_rows = fread(f, 1, 'int32'); + num_chan = fread(f, 1, 'int32'); + + curr_ind = curr_ind + 1; + + % preallocate some space + if(curr_ind == 1) + curr_data = zeros(5000, 1 + num_rows * num_cols * num_chan); + num_feats = 1 + num_rows * num_cols * num_chan; + end + + if(curr_ind > size(curr_data,1)) + curr_data = cat(1, curr_data, zeros(6000, 1 + num_rows * num_cols * num_chan)); + end + feature_vec = fread(f, [1, 1 + num_rows * num_cols * num_chan], 'float32'); + curr_data(curr_ind, :) = feature_vec; + else + + % Reading in batches of 5000 + + feature_vec = fread(f, [4 + num_rows * num_cols * num_chan, 5000], 'float32'); + feature_vec = feature_vec(4:end,:)'; + + if(isempty(feature_vec)) + continue; + end + + num_rows_read = size(feature_vec,1); + + curr_data(curr_ind+1:curr_ind+num_rows_read,:) = feature_vec; + + curr_ind = curr_ind + size(feature_vec,1); + + end + + end + + fclose(f); + + curr_data = curr_data(1:curr_ind,:); + vid_id_curr = cell(curr_ind,1); + vid_id_curr(:) = users(i); + + vid_id = cat(1, vid_id, vid_id_curr); + + % Assume same number of frames per video + if(i==1) + hog_data = zeros(curr_ind*numel(users), num_feats); + end + + if(size(hog_data,1) < feats_filled+curr_ind) + hog_data = cat(1, hog_data, zeros(size(hog_data,1), num_feats)); + end + + hog_data(feats_filled+1:feats_filled+curr_ind,:) = curr_data; + + feats_filled = feats_filled + curr_ind; + + end + + if(numel(users) > 0) + valid_data = hog_data(:,1) > 0; + hog_data = hog_data(:,2:end); + + uq_ids = unique(user_files)'; + + for u=uq_ids + hog_data(user_files==u,:) = bsxfun(@plus, hog_data(user_files==u,:), -median( hog_data(valid_data & user_files==u,:))); + end + end +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/Read_geom_files.m b/matlab_version/AU_training/experiments/Bosphorus/Read_geom_files.m new file mode 100644 index 00000000..902f203e --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Read_geom_files.m @@ -0,0 +1,25 @@ +function [geom_data, valid_ids] = Read_geom_files(users, model_param_data_dir) + + geom_data = []; + valid_ids = []; + + load('../../pca_generation/pdm_68_aligned_wild.mat'); + + for i=1:numel(users) + + geom_file = [model_param_data_dir, '/' users{i} '.txt']; + + res = dlmread(geom_file, ',', 1, 0); + + valid = res(:, 4); + res = res(:, 11:end); + + actual_locs = res * V'; + res = cat(2, actual_locs, res); + + valid_ids = cat(1, valid_ids, valid); + + geom_data = cat(1, geom_data, res); + + end +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/Read_geom_files_dynamic.m b/matlab_version/AU_training/experiments/Bosphorus/Read_geom_files_dynamic.m new file mode 100644 index 00000000..d4062833 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Read_geom_files_dynamic.m @@ -0,0 +1,42 @@ +function [geom_data, valid_ids] = Read_geom_files_dynamic(users, model_param_data_dir) + + geom_data = []; + valid_ids = []; + + load('../../pca_generation/pdm_68_aligned_wild.mat'); + + user_files = []; + + for i=1:numel(users) + + geom_file = [model_param_data_dir, '/' users{i} '.txt']; + + user_files = cat(1, user_files, str2num(users{i}(3:5))); + + m_file = [model_param_data_dir, '/', users{i}, '.mat']; + + res = dlmread(geom_file, ',', 1, 0); + + valid = res(:, 4); + res = res(:, 11:end); + + actual_locs = res * V'; + res = cat(2, actual_locs, res); + + valid_ids = cat(1, valid_ids, valid); + + geom_data_curr_p = res; + + geom_data = cat(1, geom_data, geom_data_curr_p); + + end + + if(numel(users) > 0) + uq_ids = unique(user_files)'; + + for u=uq_ids + geom_data(user_files==u,:) = bsxfun(@plus, geom_data(user_files==u,:), -median( geom_data(valid_ids & user_files==u,:))); + end + end + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVM_train.m b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVM_train.m new file mode 100644 index 00000000..735e0a77 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVM_train.m @@ -0,0 +1,80 @@ +function Script_HOG_SVM_train() + +% Change to your downloaded location +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); +%% load shared definitions and AU data +shared_defs; + +% Set up the hyperparameters to be validated +hyperparams.c = 10.^(-9:0.5:1); +hyperparams.e = 10.^(-3); + +hyperparams.validate_params = {'c', 'e'}; + +% Set the training function +svm_train = @svm_train_linear; + +% Set the test function (the first output will be used for validation) +svm_test = @svm_test_linear; + +%% +for a=1:numel(aus) + + au = aus(a); + + rest_aus = setdiff(all_aus, au); + + [users_train, users_valid] = get_balanced_fold(Bosphorus_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data(users_train, users_valid, au, rest_aus, Bosphorus_dir, hog_data_dir); + + % Binarizing the data + train_labels(train_labels > 1) = 1; + valid_labels(valid_labels > 1) = 1; + + train_samples = sparse(train_samples); + valid_samples = sparse(valid_samples); + + %% Cross-validate here + [ best_params, ~ ] = validate_grid_search_no_par(svm_train, svm_test, false, train_samples, train_labels, valid_samples, valid_labels, hyperparams); + + model = svm_train(train_labels, train_samples, best_params); + + [prediction, a, actual_vals] = predict(valid_labels, valid_samples, model); + + % Go from raw data to the prediction + w = model.w(1:end-1)'; + b = model.w(end); + + svs = bsxfun(@times, PC, 1./scaling') * w; + + name = sprintf('models/AU_%d_static.dat', au); + + pos_lbl = model.Label(1); + neg_lbl = model.Label(2); + + write_lin_svm(name, means, svs, b, pos_lbl, neg_lbl); + + name = sprintf('results_Bosphorus_devel/AU_%d_static.mat', au); + + tp = sum(valid_labels == 1 & prediction == 1); + fp = sum(valid_labels == 0 & prediction == 1); + fn = sum(valid_labels == 1 & prediction == 0); + tn = sum(valid_labels == 0 & prediction == 0); + + precision = tp/(tp+fp); + recall = tp/(tp+fn); + + f1 = 2 * precision * recall / (precision + recall); + + save(name, 'model', 'f1', 'precision', 'recall', 'best_params', 'valid_labels', 'prediction', 'users_valid'); + +end + +end + + diff --git a/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVM_train_dyn.m b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVM_train_dyn.m new file mode 100644 index 00000000..507bd5d0 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVM_train_dyn.m @@ -0,0 +1,83 @@ +function Script_HOG_SVM_train_dyn() + +% Change to your downloaded location +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +%% load shared definitions and AU data +shared_defs; + +% Set up the hyperparameters to be validated +hyperparams.c = 10.^(-9:0.5:1); +hyperparams.e = 10.^(-3); + +hyperparams.validate_params = {'c', 'e'}; + +% Set the training function +svm_train = @svm_train_linear; + +% Set the test function (the first output will be used for validation) +svm_test = @svm_test_linear; + +pca_loc = '../../pca_generation/generic_face_rigid.mat'; + +%% +for a=1:numel(aus) + + au = aus(a); + + rest_aus = setdiff(all_aus, au); + + [users_train, users_valid] = get_balanced_fold(Bosphorus_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_dynamic(users_train, users_valid, au, rest_aus, Bosphorus_dir, hog_data_dir); + + train_samples = sparse(train_samples); + valid_samples = sparse(valid_samples); + + % Binarizing the data + train_labels(train_labels > 1) = 1; + valid_labels(valid_labels > 1) = 1; + + %% Cross-validate here + [ best_params, ~ ] = validate_grid_search_no_par(svm_train, svm_test, false, train_samples, train_labels, valid_samples, valid_labels, hyperparams); + + model = svm_train(train_labels, train_samples, best_params); + + [prediction, a, actual_vals] = predict(valid_labels, valid_samples, model); + + % Go from raw data to the prediction + w = model.w(1:end-1)'; + b = model.w(end); + + svs = bsxfun(@times, PC, 1./scaling') * w; + + name = sprintf('models/AU_%d_dyn.dat', au); + + pos_lbl = model.Label(1); + neg_lbl = model.Label(2); + + write_lin_dyn_svm(name, means, svs, b, pos_lbl, neg_lbl); + + name = sprintf('results_Bosphorus_devel/AU_%d_dyn.mat', au); + + tp = sum(valid_labels == 1 & prediction == 1); + fp = sum(valid_labels == 0 & prediction == 1); + fn = sum(valid_labels == 1 & prediction == 0); + tn = sum(valid_labels == 0 & prediction == 0); + + precision = tp/(tp+fp); + recall = tp/(tp+fn); + + f1 = 2 * precision * recall / (precision + recall); + + save(name, 'model', 'f1', 'precision', 'recall', 'best_params', 'valid_labels', 'prediction', 'users_valid'); + +end + +end + + diff --git a/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVR_train.m b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVR_train.m new file mode 100644 index 00000000..efde2c63 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVR_train.m @@ -0,0 +1,68 @@ +function Script_HOG_SVR_train() + +% Change to your downloaded location +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +%% load shared definitions and AU data +shared_defs; + +% 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; + +% Set the test function (the first output will be used for validation) +svr_test = @svr_test_linear; + +%% +for a=1:numel(aus) + + au = aus(a); + + rest_aus = setdiff(all_aus, au); + + [users_train, users_valid] = get_balanced_fold(Bosphorus_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data(users_train, users_valid, au, rest_aus, Bosphorus_dir, hog_data_dir); + + train_samples = sparse(train_samples); + valid_samples = sparse(valid_samples); + + hyperparams.success = valid_success; + + %% Cross-validate here + [ 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); + + [~, prediction] = svr_test(valid_labels, valid_samples, model); + + % Go from raw data to the prediction + w = model.w(1:end-1)'; + b = model.w(end); + + svs = bsxfun(@times, PC, 1./scaling') * w; + + name = sprintf('models/AU_%d_static_intensity.dat', au); + + write_lin_svr(name, means, svs, b); + + name = sprintf('results_Bosphorus_devel/AU_%d_static_intensity.mat', au); + + [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_regression_results( prediction, valid_labels ); + + save(name, 'model', 'F1s', 'corrs', 'accuracies', 'ccc', 'rms', 'prediction', 'valid_labels', 'users_valid'); + +end + +end + + diff --git a/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVR_train_dyn.m b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVR_train_dyn.m new file mode 100644 index 00000000..287a8e5b --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/Script_HOG_SVR_train_dyn.m @@ -0,0 +1,68 @@ +function Script_HOG_SVR_train_dyn() + +% Change to your downloaded location +addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); + +%% load shared definitions and AU data +shared_defs; + +% 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; + +% Set the test function (the first output will be used for validation) +svr_test = @svr_test_linear; + +%% +for a=1:numel(aus) + + au = aus(a); + + rest_aus = setdiff(all_aus, au); + + [users_train, users_valid] = get_balanced_fold(Bosphorus_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_dynamic(users_train, users_valid, au, rest_aus, Bosphorus_dir, hog_data_dir); + + train_samples = sparse(train_samples); + valid_samples = sparse(valid_samples); + + hyperparams.success = valid_success; + + %% Cross-validate here + [ 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); + + [~, prediction] = svr_test(valid_labels, valid_samples, model); + + % Go from raw data to the prediction + w = model.w(1:end-1)'; + b = model.w(end); + + svs = bsxfun(@times, PC, 1./scaling') * w; + + name = sprintf('models/AU_%d_dyn_intensity.dat', au); + + write_lin_dyn_svr(name, means, svs, b); + + name = sprintf('results_Bosphorus_devel/AU_%d_dyn_intensity.mat', au); + + [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_regression_results( prediction, valid_labels ); + + save(name, 'model', 'F1s', 'corrs', 'accuracies', 'ccc', 'rms', 'prediction', 'valid_labels', 'users_valid'); + +end + +end + + diff --git a/matlab_version/AU_training/experiments/Bosphorus/get_balanced_fold.m b/matlab_version/AU_training/experiments/Bosphorus/get_balanced_fold.m new file mode 100644 index 00000000..a7b6be24 --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/get_balanced_fold.m @@ -0,0 +1,35 @@ +function [train_users, dev_users] = get_balanced_fold(Bosphorus_dir, users, au, prop_test, offset) + + + [ labels_train, valid_ids_train, filenames ] = extract_Bosphorus_labels(Bosphorus_dir, users, au); + + labels_train = labels_train(valid_ids_train,:); + filenames = filenames(valid_ids_train); + + % Shorten the filenames to reflect user id + for i=1:numel(filenames) + filenames{i} = filenames{i}(1:5); + end + + counts = zeros(numel(users),1); + for k=1:numel(users) + counts(k) = sum(labels_train(strcmp(filenames, users{k}))>0); + end + + [sorted, inds] = sort(counts); + + dev_users = users(inds(offset:round(1/prop_test):end)); + train_users = setdiff(users, dev_users); + + count_dev = 0; + count_train = 0; + for k=1:numel(users) + if(any(strcmp(dev_users, users{k}))) + count_dev = count_dev + counts(k); + else + count_train = count_train + counts(k); + end + + end + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_dyn.dat new file mode 100644 index 00000000..dda21333 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_dyn_intensity.dat new file mode 100644 index 00000000..b8759d03 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_static.dat new file mode 100644 index 00000000..851cfe8e Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_static_intensity.dat new file mode 100644 index 00000000..92d7e79c Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_10_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_dyn.dat new file mode 100644 index 00000000..ffec6b38 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_dyn_intensity.dat new file mode 100644 index 00000000..abb8a8b2 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_static.dat new file mode 100644 index 00000000..421c79a9 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_static_intensity.dat new file mode 100644 index 00000000..c2b9901b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_12_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_dyn.dat new file mode 100644 index 00000000..f9697e5f Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_dyn_intensity.dat new file mode 100644 index 00000000..fada0498 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_static.dat new file mode 100644 index 00000000..cfb1bbf6 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_static_intensity.dat new file mode 100644 index 00000000..66937e8b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_14_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_dyn.dat new file mode 100644 index 00000000..b40f5def Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_dyn_intensity.dat new file mode 100644 index 00000000..96af31b6 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_static.dat new file mode 100644 index 00000000..ed03a93b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_static_intensity.dat new file mode 100644 index 00000000..8bccef8e Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_15_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_dyn.dat new file mode 100644 index 00000000..6e457e15 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_dyn_intensity.dat new file mode 100644 index 00000000..48a468ec Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_static.dat new file mode 100644 index 00000000..7960d9fa Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_static_intensity.dat new file mode 100644 index 00000000..69f406f6 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_17_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_dyn.dat new file mode 100644 index 00000000..22d20530 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_dyn_intensity.dat new file mode 100644 index 00000000..842f8c1e Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_static.dat new file mode 100644 index 00000000..9317afaa Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_static_intensity.dat new file mode 100644 index 00000000..15704c72 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_1_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_dyn.dat new file mode 100644 index 00000000..18664c1b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_dyn_intensity.dat new file mode 100644 index 00000000..683d191b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_static.dat new file mode 100644 index 00000000..bc17be61 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_static_intensity.dat new file mode 100644 index 00000000..657b5fbc Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_20_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_dyn.dat new file mode 100644 index 00000000..86bd1686 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_dyn_intensity.dat new file mode 100644 index 00000000..1e03fb6f Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_static.dat new file mode 100644 index 00000000..b9243ff3 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_static_intensity.dat new file mode 100644 index 00000000..646d5e07 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_23_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_dyn.dat new file mode 100644 index 00000000..ccaf6512 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_dyn_intensity.dat new file mode 100644 index 00000000..623e84db Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_static.dat new file mode 100644 index 00000000..47c8c5e5 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_static_intensity.dat new file mode 100644 index 00000000..0fe52b38 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_25_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_dyn.dat new file mode 100644 index 00000000..d3473255 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_dyn_intensity.dat new file mode 100644 index 00000000..dc390cd3 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_static.dat new file mode 100644 index 00000000..6f5e9504 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_static_intensity.dat new file mode 100644 index 00000000..3e7e2963 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_26_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_dyn.dat new file mode 100644 index 00000000..53fd6e99 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_dyn_intensity.dat new file mode 100644 index 00000000..e4465730 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_static.dat new file mode 100644 index 00000000..5f255442 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_static_intensity.dat new file mode 100644 index 00000000..6ca52c7a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_2_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_dyn.dat new file mode 100644 index 00000000..14b25da8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_dyn_intensity.dat new file mode 100644 index 00000000..df4a186a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_static.dat new file mode 100644 index 00000000..f0a02388 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_static_intensity.dat new file mode 100644 index 00000000..2d759bec Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_43_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_dyn.dat new file mode 100644 index 00000000..fe867f8a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_dyn_intensity.dat new file mode 100644 index 00000000..93493207 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_static.dat new file mode 100644 index 00000000..a87867a2 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_static_intensity.dat new file mode 100644 index 00000000..6a66f2b8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_4_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_dyn.dat new file mode 100644 index 00000000..0db88685 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_dyn_intensity.dat new file mode 100644 index 00000000..cf7c9c48 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_static.dat new file mode 100644 index 00000000..edebec7d Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_static_intensity.dat new file mode 100644 index 00000000..2e7fd691 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_5_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_dyn.dat new file mode 100644 index 00000000..404302b6 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_dyn_intensity.dat new file mode 100644 index 00000000..407be27c Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_static.dat new file mode 100644 index 00000000..a751f561 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_static_intensity.dat new file mode 100644 index 00000000..87835730 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_6_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_dyn.dat new file mode 100644 index 00000000..e0b81510 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_dyn_intensity.dat new file mode 100644 index 00000000..150d0b35 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_static.dat new file mode 100644 index 00000000..e9a42ec3 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_static_intensity.dat new file mode 100644 index 00000000..edc7bcc5 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_7_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_dyn.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_dyn.dat new file mode 100644 index 00000000..16271be6 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_dyn_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_dyn_intensity.dat new file mode 100644 index 00000000..c7d64ac2 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_static.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_static.dat new file mode 100644 index 00000000..0004015a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_static.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_static_intensity.dat b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_static_intensity.dat new file mode 100644 index 00000000..46a63ba8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/models/AU_9_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_dyn.mat new file mode 100644 index 00000000..3e47b42d Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_dyn_intensity.mat new file mode 100644 index 00000000..d97a19d5 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_static.mat new file mode 100644 index 00000000..1bb9c2bd Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_static_intensity.mat new file mode 100644 index 00000000..da7475fa Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_10_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_dyn.mat new file mode 100644 index 00000000..f317e7af Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_dyn_intensity.mat new file mode 100644 index 00000000..f246c416 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_static.mat new file mode 100644 index 00000000..9572ee40 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_static_intensity.mat new file mode 100644 index 00000000..ddca8c66 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_12_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_dyn.mat new file mode 100644 index 00000000..79de7760 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_dyn_intensity.mat new file mode 100644 index 00000000..6ff98427 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_static.mat new file mode 100644 index 00000000..ff7050df Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_static_intensity.mat new file mode 100644 index 00000000..3a9c64ec Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_14_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_dyn.mat new file mode 100644 index 00000000..da80d45c Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_dyn_intensity.mat new file mode 100644 index 00000000..ddf6f632 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_static.mat new file mode 100644 index 00000000..5a1e1a65 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_static_intensity.mat new file mode 100644 index 00000000..2d827acf Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_15_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_dyn.mat new file mode 100644 index 00000000..921a438e Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_dyn_intensity.mat new file mode 100644 index 00000000..55feffd5 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_static.mat new file mode 100644 index 00000000..b0de5365 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_static_intensity.mat new file mode 100644 index 00000000..7d40dbe7 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_17_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_dyn.mat new file mode 100644 index 00000000..3a16e35b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_dyn_intensity.mat new file mode 100644 index 00000000..7bcb8009 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_static.mat new file mode 100644 index 00000000..8d19660d Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_static_intensity.mat new file mode 100644 index 00000000..630f7be7 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_1_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_dyn.mat new file mode 100644 index 00000000..b9eb5af3 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_dyn_intensity.mat new file mode 100644 index 00000000..72c9da97 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_static.mat new file mode 100644 index 00000000..a3096e37 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_static_intensity.mat new file mode 100644 index 00000000..4c5dffed Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_20_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_dyn.mat new file mode 100644 index 00000000..d70a417b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_dyn_intensity.mat new file mode 100644 index 00000000..baaf24e9 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_static.mat new file mode 100644 index 00000000..cc542b9a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_static_intensity.mat new file mode 100644 index 00000000..6e84a8f1 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_23_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_dyn.mat new file mode 100644 index 00000000..24943be7 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_dyn_intensity.mat new file mode 100644 index 00000000..5d548040 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_static.mat new file mode 100644 index 00000000..816ae279 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_static_intensity.mat new file mode 100644 index 00000000..9e6ce098 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_25_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_dyn.mat new file mode 100644 index 00000000..834a296b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_dyn_intensity.mat new file mode 100644 index 00000000..b1b77b46 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_static.mat new file mode 100644 index 00000000..0b1290f4 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_static_intensity.mat new file mode 100644 index 00000000..db1a2eee Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_26_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_dyn.mat new file mode 100644 index 00000000..0b62d1e5 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_dyn_intensity.mat new file mode 100644 index 00000000..82920f9a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_static.mat new file mode 100644 index 00000000..fb54b2df Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_static_intensity.mat new file mode 100644 index 00000000..90dc17f8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_2_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_dyn.mat new file mode 100644 index 00000000..1562c618 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_dyn_intensity.mat new file mode 100644 index 00000000..7dbc7a6e Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_static.mat new file mode 100644 index 00000000..b220a8c4 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_static_intensity.mat new file mode 100644 index 00000000..33a0413f Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_43_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_dyn.mat new file mode 100644 index 00000000..f76c0b3a Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_dyn_intensity.mat new file mode 100644 index 00000000..55bf470b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_static.mat new file mode 100644 index 00000000..c29fadf8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_static_intensity.mat new file mode 100644 index 00000000..65f69bf8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_4_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_dyn.mat new file mode 100644 index 00000000..1b973fe9 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_dyn_intensity.mat new file mode 100644 index 00000000..20916ab3 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_static.mat new file mode 100644 index 00000000..eb69398f Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_static_intensity.mat new file mode 100644 index 00000000..9f465f82 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_5_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_dyn.mat new file mode 100644 index 00000000..690c0665 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_dyn_intensity.mat new file mode 100644 index 00000000..70a57e91 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_static.mat new file mode 100644 index 00000000..a8959cc0 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_static_intensity.mat new file mode 100644 index 00000000..4a6f7a13 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_6_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_dyn.mat new file mode 100644 index 00000000..bb2fa720 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_dyn_intensity.mat new file mode 100644 index 00000000..f37e5280 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_static.mat new file mode 100644 index 00000000..ace7fc57 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_static_intensity.mat new file mode 100644 index 00000000..dc7ecf14 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_7_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_dyn.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_dyn.mat new file mode 100644 index 00000000..5ac9d6d8 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_dyn_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_dyn_intensity.mat new file mode 100644 index 00000000..41fb543b Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_static.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_static.mat new file mode 100644 index 00000000..c23acd9d Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_static.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_static_intensity.mat b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_static_intensity.mat new file mode 100644 index 00000000..6707ddc5 Binary files /dev/null and b/matlab_version/AU_training/experiments/Bosphorus/results_Bosphorus_devel/AU_9_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/Bosphorus/shared_defs.m b/matlab_version/AU_training/experiments/Bosphorus/shared_defs.m new file mode 100644 index 00000000..92becc5a --- /dev/null +++ b/matlab_version/AU_training/experiments/Bosphorus/shared_defs.m @@ -0,0 +1,9 @@ +% this is data defined across the experiments (to make sure all of them have same user conventions) + +all_aus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 43]; +aus = [1, 2, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 20, 23, 25, 26, 43]; + +addpath('../../data extraction/'); + +find_Bosphorus; + diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_12_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_12_dyn_shift.mat index ce3e8e15..cbe7aeac 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_12_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_12_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_15_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_15_dyn_shift.mat index cfa8bcdd..6528cd79 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_15_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_15_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_17_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_17_dyn_shift.mat index 57f3506e..65d56b33 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_17_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_17_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_1_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_1_dyn_shift.mat index 675df129..4b9a5b74 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_1_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_1_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_20_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_20_dyn_shift.mat index 83ff19fc..be89c18a 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_20_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_20_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_25_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_25_dyn_shift.mat index 4ef5fe5c..b4fd6e06 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_25_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_25_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_26_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_26_dyn_shift.mat index 85a9daa6..f70c1911 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_26_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_26_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_2_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_2_dyn_shift.mat index 97af7122..b3e0f92e 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_2_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_2_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_4_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_4_dyn_shift.mat index dd4922cd..4341e1d7 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_4_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_4_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_5_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_5_dyn_shift.mat index 0161ac44..c1c69dd5 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_5_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_5_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_6_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_6_dyn_shift.mat index 7b13cd0d..cdd67625 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_6_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_6_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_9_dyn_shift.mat b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_9_dyn_shift.mat index ec441219..4dfd27a4 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_9_dyn_shift.mat and b/matlab_version/AU_training/experiments/DISFA/5_fold_shift/AU_9_dyn_shift.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic.m b/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic.m index fad99ccb..cc1213b8 100644 --- a/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic.m +++ b/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic.m @@ -82,12 +82,24 @@ if(numel(input_train_label_files) > 0) train_data = train_data(reduced_inds,:); end -% normalise the data -pca_file = '../../pca_generation/generic_face_rigid.mat'; -load(pca_file); - + geom_size = max(size(train_geom_data,2), size(test_geom_data,2)); +% 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)+geom_size); PC_n(1:size(PC,1), 1:size(PC,2)) = PC; PC_n(size(PC,1)+1:end, size(PC,2)+1:end) = eye(geom_size); diff --git a/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic_dynamic.m b/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic_dynamic.m index ab33ec85..39e655bd 100644 --- a/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic_dynamic.m +++ b/matlab_version/AU_training/experiments/DISFA/Prepare_HOG_AU_data_generic_dynamic.m @@ -82,12 +82,24 @@ if(numel(input_train_label_files) > 0) train_data = train_data(reduced_inds,:); end -% normalise the data -pca_file = '../../pca_generation/generic_face_rigid.mat'; -load(pca_file); geom_size = max(size(train_geom_data,2), size(test_geom_data,2)); +% 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)+geom_size); PC_n(1:size(PC,1), 1:size(PC,2)) = PC; PC_n(size(PC,1)+1:end, size(PC,2)+1:end) = eye(geom_size); diff --git a/matlab_version/AU_training/experiments/DISFA/Script_HOG_SVM_train_stat.asv b/matlab_version/AU_training/experiments/DISFA/Script_HOG_SVM_train_stat.asv deleted file mode 100644 index cfbb9b22..00000000 --- a/matlab_version/AU_training/experiments/DISFA/Script_HOG_SVM_train_stat.asv +++ /dev/null @@ -1,63 +0,0 @@ -% Change to your downloaded location -addpath('C:\liblinear\matlab') -addpath('../training_code') -addpath('../utilities') - -%% load shared definitions and AU data -shared_defs; - -% Set up the hyperparameters to be validated -hyperparams.c = 10.^(-7:1:3); -hyperparams.p = 10.^(-2); - -hyperparams.validate_params = {'c', 'p'}; - -% Set the training function -svr_train = @svm_train_linear; - -% Set the test function (the first output will be used for validation) -svr_test = @svm_test_linear; - -%% -for a=1:numel(aus) - - au = aus(a); - - prediction_all = []; - test_all = []; - fprintf('Training AU%d ', au); - - rest_aus = setdiff(all_aus, au); - - % make sure validation data's labels are balanced - [users_train, users_valid] = get_balanced_fold(DISFA_dir, users, au, 1/3, 1); - - % need to split the rest - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_generic(users_train, users_valid, au, rest_aus, hog_data_dir); - - train_samples = sparse(train_samples); - valid_samples = sparse(valid_samples); - - %% Validate here - hyperparams.success = valid_success; - - [ 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); - - [~, prediction] = svr_test(valid_labels, valid_samples, model); - - prediction_all = cat(1, prediction_all, prediction); - test_all = cat(1, test_all, test_labels); - - fprintf('\n'); - - name = sprintf('classifiers/AU_%d_stat.mat', au); - - [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_regression_results( prediction_all, test_all ); - - save(name, 'model', 'accuracies', 'F1s', 'corrs', 'rms', 'ccc', 'prediction_all', 'test_all'); - -end - - diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_dyn.mat index a9856c5d..84eba1e0 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_stat.mat index 1e659d6a..41fd362d 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_12_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_dyn.mat index 3b0729f0..78c25433 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_stat.mat index 45f6dc9d..1fe9bd57 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_15_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_dyn.mat index 7920bb36..7a705ac0 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_stat.mat index e5a1b259..9fe50e9f 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_17_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_dyn.mat index cfd6dd90..5db9f4f0 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_stat.mat index 3e66e82b..6b03f1c0 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_1_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_dyn.mat index 56f38338..a35c818b 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_stat.mat index 92993a43..b7fb4a4b 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_20_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_dyn.mat index 75d0dc74..10547b50 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_stat.mat index bc131f16..cea4d5a6 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_25_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_dyn.mat index b2cd75f4..27c77d10 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_stat.mat index e0a8e1e6..e91f6f55 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_26_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_dyn.mat index b5e618cc..742020bc 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_stat.mat index e05f801b..30f14b8a 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_2_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_dyn.mat index fa42dcc8..f81e3931 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_stat.mat index e8df04cc..76215e02 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_4_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_dyn.mat index 6a142841..f69b0632 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_stat.mat index 67bc1e4a..e6214c60 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_5_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_dyn.mat index 61b9201d..629047a3 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_stat.mat index 8ecfd0d1..81ae18d3 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_6_stat.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_dyn.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_dyn.mat index df91cf58..76f1046c 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_dyn.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_stat.mat b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_stat.mat index 21b5644f..f436d981 100644 Binary files a/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_stat.mat and b/matlab_version/AU_training/experiments/DISFA/classifiers/AU_9_stat.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic.m b/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic.m index 0a6480f3..bf59c1bd 100644 --- a/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic.m +++ b/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic.m @@ -1,5 +1,5 @@ function [data_train, labels_train, data_devel, labels_devel, raw_devel, PC, means_norm, stds_norm, vid_ids_devel_string, valid_ids_devel] = ... - Prepare_HOG_AU_data_generic(train_users, devel_users, au_train, rest_aus, unbc_dir, hog_data_dir, pca_file) + Prepare_HOG_AU_data_generic(train_users, devel_users, au_train, rest_aus, unbc_dir, hog_data_dir) %% addpath(genpath('../../data extraction/')); @@ -68,9 +68,21 @@ vid_ids_train_string = vid_ids_train_string(reduced_inds,:); labels_devel = cat(1, labels_devel{:}); -% normalise the data -load(pca_file); - +% 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 + % Grab all data for validation as want good params for all the data raw_devel = cat(2, devel_appearance_data, devel_geom_data); diff --git a/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic_dynamic.m b/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic_dynamic.m index a3ec95be..7f8f49e6 100644 --- a/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic_dynamic.m +++ b/matlab_version/AU_training/experiments/FERA2011/Prepare_HOG_AU_data_generic_dynamic.m @@ -1,5 +1,5 @@ function [data_train, labels_train, data_devel, labels_devel, raw_devel, PC, means_norm, stds_norm, vid_ids_devel_string] = ... - Prepare_HOG_AU_data_generic_dynamic(train_users, devel_users, au_train, rest_aus, semaine_dir, hog_data_dir, pca_file) + Prepare_HOG_AU_data_generic_dynamic(train_users, devel_users, au_train, rest_aus, semaine_dir, hog_data_dir) %% addpath(genpath('../../data extraction/')); @@ -68,8 +68,20 @@ vid_ids_train_string = vid_ids_train_string(reduced_inds,:); labels_devel = cat(1, labels_devel{:}); -% normalise the data -load(pca_file); +% 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 % Grab all data for validation as want good params for all the data raw_devel = cat(2, devel_appearance_data, devel_geom_data); diff --git a/matlab_version/AU_training/experiments/FERA2011/Read_HOG_files_dynamic.m b/matlab_version/AU_training/experiments/FERA2011/Read_HOG_files_dynamic.m index fb0b00e7..1d40dcc0 100644 --- a/matlab_version/AU_training/experiments/FERA2011/Read_HOG_files_dynamic.m +++ b/matlab_version/AU_training/experiments/FERA2011/Read_HOG_files_dynamic.m @@ -5,7 +5,36 @@ function [hog_data, valid_data, vid_id] = Read_HOG_files_dynamic(users, hog_data valid_data = []; feats_filled = 0; - + + user1 = {'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'}; + + user2 = {'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'}; + + user3 = {'train_033', 'train_034', 'train_035', 'train_036', 'train_037',... + 'train_038', 'train_039', 'train_040', 'train_041'}; + + user4 = {'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'}; + + user5 = {'train_057', 'train_058', 'train_059', 'train_060', 'train_061',... + 'train_062', 'train_063'}; + + user6 = {'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'}; + + user7 = {'train_080', 'train_081', 'train_082', 'train_083', 'train_084',... + 'train_085', 'train_086', 'train_087'}; + + users_group = cat(1, {user1}, {user2}, {user3}, {user4}, {user5}, {user6}, {user7}); + user_inds = []; + for i=1:numel(users) hog_file = [hog_data_dir, '/au_training_', users{i} '.hog']; @@ -60,9 +89,13 @@ function [hog_data, valid_data, vid_id] = Read_HOG_files_dynamic(users, hog_data curr_data = curr_data(1:curr_ind,:); - valid = logical(curr_data(:, 1)); + for k=1:numel(users_group) + if(~isempty(strmatch(users{i}, users_group{k}))) + user_inds = cat(1, user_inds, k * ones(curr_ind,1)); + end + end - curr_data(:, 2:end) = bsxfun(@plus, curr_data(:, 2:end), -median(curr_data(valid, 2:end))); + valid = logical(curr_data(:, 1)); vid_id_curr = cell(curr_ind,1); vid_id_curr(:) = users(i); @@ -83,9 +116,18 @@ function [hog_data, valid_data, vid_id] = Read_HOG_files_dynamic(users, hog_data feats_filled = feats_filled + curr_ind; end - + if(numel(users) > 0) + + % Perform normalization here + u_id = unique(user_inds)'; + valid_data = hog_data(1:feats_filled,1) > 0; + + for u=u_id + hog_data(user_inds==u, 2:end) = bsxfun(@plus, hog_data(user_inds==u, 2:end), -median(hog_data(user_inds==u & valid_data, 2:end))); + end + hog_data = hog_data(1:feats_filled,2:end); end end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/FERA2011/Read_geom_files_dynamic.m b/matlab_version/AU_training/experiments/FERA2011/Read_geom_files_dynamic.m index ea62bcc0..c340ca01 100644 --- a/matlab_version/AU_training/experiments/FERA2011/Read_geom_files_dynamic.m +++ b/matlab_version/AU_training/experiments/FERA2011/Read_geom_files_dynamic.m @@ -5,6 +5,35 @@ function [geom_data, valid_ids] = Read_geom_files_dynamic(users, params_data_dir load('../../pca_generation/pdm_68_aligned_wild.mat'); + user1 = {'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'}; + + user2 = {'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'}; + + user3 = {'train_033', 'train_034', 'train_035', 'train_036', 'train_037',... + 'train_038', 'train_039', 'train_040', 'train_041'}; + + user4 = {'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'}; + + user5 = {'train_057', 'train_058', 'train_059', 'train_060', 'train_061',... + 'train_062', 'train_063'}; + + user6 = {'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'}; + + user7 = {'train_080', 'train_081', 'train_082', 'train_083', 'train_084',... + 'train_085', 'train_086', 'train_087'}; + + users_group = cat(1, {user1}, {user2}, {user3}, {user4}, {user5}, {user6}, {user7}); + user_inds = []; + for i=1:numel(users) geom_file = [params_data_dir, '/au_training_' users{i} '.txt']; @@ -20,15 +49,29 @@ function [geom_data, valid_ids] = Read_geom_files_dynamic(users, params_data_dir valid = res(:, 4); res = res(:, 11:end); + for k=1:numel(users_group) + if(~isempty(strmatch(users{i}, users_group{k}))) + user_inds = cat(1, user_inds, k * ones(size(valid,1),1)); + end + end actual_locs = res * V'; res = cat(2, actual_locs, res); valid_ids = cat(1, valid_ids, valid); - res = bsxfun(@plus, res, -median(res)); geom_data = cat(1, geom_data, res); end + + if(numel(users) > 0) + + % Perform normalization here + u_id = unique(user_inds)'; + for u=u_id + geom_data(user_inds==u, :) = bsxfun(@plus, geom_data(user_inds==u, :), -median(geom_data(user_inds==u & valid_ids, :))); + end + end + end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train.m b/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train.m index f59f22e2..ab9a13c7 100644 --- a/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train.m +++ b/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train.m @@ -21,7 +21,7 @@ svm_train = @svm_train_linear; % Set the test function (the first output will be used for validation) svm_test = @svm_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; +all_recs = cat(2, train_recs, devel_recs); %% for a=1:numel(all_aus) @@ -29,9 +29,10 @@ for a=1:numel(all_aus) au = all_aus(a); rest_aus = setdiff(all_aus, au); - + [train_recs, devel_recs] = get_balanced_fold(FERA2011_dir, all_recs, au, 1/3, 1); + % load the training and testing data for the current fold - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, rest_aus, FERA2011_dir, hog_data_dir, pca_loc); + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, rest_aus, FERA2011_dir, hog_data_dir); train_samples = sparse(train_samples); valid_samples = sparse(valid_samples); @@ -57,7 +58,7 @@ for a=1:numel(all_aus) write_lin_svm(name, means, svs, b, pos_lbl, neg_lbl); name = sprintf('results_FERA2011_devel/AU_%d_static.mat', au); - + tp = sum(valid_labels == 1 & prediction == 1); fp = sum(valid_labels == 0 & prediction == 1); fn = sum(valid_labels == 1 & prediction == 0); diff --git a/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train_dyn.m b/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train_dyn.m index 67b7e383..fa464623 100644 --- a/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train_dyn.m +++ b/matlab_version/AU_training/experiments/FERA2011/Script_HOG_SVM_train_dyn.m @@ -21,7 +21,7 @@ svm_train = @svm_train_linear; % Set the test function (the first output will be used for validation) svm_test = @svm_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; +all_recs = cat(2, train_recs, devel_recs); %% for a=1:numel(all_aus) @@ -29,9 +29,11 @@ for a=1:numel(all_aus) au = all_aus(a); rest_aus = setdiff(all_aus, au); - + + [train_recs, devel_recs] = get_balanced_fold(FERA2011_dir, all_recs, au, 1/3, 1); + % load the training and testing data for the current fold - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(train_recs, devel_recs, au, rest_aus, FERA2011_dir, hog_data_dir, pca_loc); + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(train_recs, devel_recs, au, rest_aus, FERA2011_dir, hog_data_dir); train_samples = sparse(train_samples); valid_samples = sparse(valid_samples); diff --git a/matlab_version/AU_training/experiments/FERA2011/get_balanced_fold.m b/matlab_version/AU_training/experiments/FERA2011/get_balanced_fold.m new file mode 100644 index 00000000..dfe87f36 --- /dev/null +++ b/matlab_version/AU_training/experiments/FERA2011/get_balanced_fold.m @@ -0,0 +1,56 @@ +function [train_users, dev_users] = get_balanced_fold(FERA_dir, users, au, prop_test, offset) + + + [ labels_train, valid_ids_train, filenames ] = extract_FERA2011_labels(FERA_dir, users, au); + + % Make sure the folds are user independent + user1 = {'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'}; + + user2 = {'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'}; + + user3 = {'train_033', 'train_034', 'train_035', 'train_036', 'train_037',... + 'train_038', 'train_039', 'train_040', 'train_041'}; + + user4 = {'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'}; + + user5 = {'train_057', 'train_058', 'train_059', 'train_060', 'train_061',... + 'train_062', 'train_063'}; + + user6 = {'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'}; + + user7 = {'train_080', 'train_081', 'train_082', 'train_083', 'train_084',... + 'train_085', 'train_086', 'train_087'}; + + users_group = cat(1, {user1}, {user2}, {user3}, {user4}, {user5}, {user6}, {user7}); + + counts = zeros(numel(users_group),1); + for k=1:numel(users_group) + for f=1:numel(filenames) + if(~isempty(strmatch(filenames{f}(1:9), users_group{k}))) + counts(k) = counts(k) + sum(labels_train{f}); + end + end + end + + % Now group them together by users + + [sorted, inds] = sort(counts); + dev_inds = inds(offset:round(1/prop_test):end); + train_inds = setdiff(inds, dev_inds); + + dev_users = users_group(dev_inds); + dev_users = cat(2, dev_users{:})'; + + train_users = users_group(train_inds); + train_users = cat(2, train_users{:})'; + +end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_10_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_10_dyn.dat index 7501ae4c..25a255f8 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_10_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_10_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_10_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_10_static.dat index 3c2cc79f..2bebe0ff 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_10_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_10_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_12_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_12_dyn.dat index be878e9e..9f366721 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_12_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_12_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_12_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_12_static.dat index 12812dda..77eef418 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_12_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_12_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_15_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_15_dyn.dat index cbd47b69..e9d188cf 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_15_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_15_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_15_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_15_static.dat index adb6a61d..212ed989 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_15_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_15_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_17_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_17_dyn.dat index b6d65d86..148b7cdd 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_17_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_17_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_17_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_17_static.dat index 2d9d47b0..ba82851a 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_17_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_17_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_18_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_18_dyn.dat index 76d770c0..3de891a9 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_18_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_18_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_18_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_18_static.dat index 31303d44..0032a445 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_18_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_18_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_1_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_1_dyn.dat index 1a92432f..f686beb7 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_1_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_1_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_1_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_1_static.dat index d8bb4a6b..a9e547b6 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_1_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_1_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_25_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_25_dyn.dat index c374c63e..e1bd0955 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_25_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_25_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_25_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_25_static.dat index f081680e..deb9d945 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_25_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_25_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_26_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_26_dyn.dat index 4f947fa3..60badc9c 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_26_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_26_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_26_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_26_static.dat index 51779ebe..b06d5c9f 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_26_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_26_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_2_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_2_dyn.dat index 8668632a..59875986 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_2_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_2_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_2_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_2_static.dat index 50fcf0d2..56c26cb6 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_2_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_2_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_4_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_4_dyn.dat index b878ae1c..e81b1624 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_4_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_4_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_4_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_4_static.dat index b4326f52..a44a3825 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_4_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_4_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_6_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_6_dyn.dat index 0337d72c..6f64468e 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_6_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_6_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_6_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_6_static.dat index 915fc24e..ede5505f 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_6_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_6_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_7_dyn.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_7_dyn.dat index 28456d74..8d7c6587 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_7_dyn.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_7_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/models/AU_7_static.dat b/matlab_version/AU_training/experiments/FERA2011/models/AU_7_static.dat index eb8b566a..83bf942a 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/models/AU_7_static.dat and b/matlab_version/AU_training/experiments/FERA2011/models/AU_7_static.dat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_dyn.mat index b768263b..68214502 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_static.mat index c99b2e7b..bb7f5a7e 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_10_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_dyn.mat index 416c39b6..3af13d44 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_static.mat index 1d78f60a..e32103b0 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_dyn.mat index b8412bd1..72e0168d 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_static.mat index d6aa853a..053128be 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_15_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_dyn.mat index ca567a29..ca16c549 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_static.mat index 0a866a01..35b1033b 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_17_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_dyn.mat index e56a969c..6bae36e9 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_static.mat index fa79b31f..2b1aa53f 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_18_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_dyn.mat index f6583217..0b557cbe 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_static.mat index 29d4f6fd..5d5114e3 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_1_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_dyn.mat index 02feb948..50193ca3 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_static.mat index 34d8b6c7..3a369cde 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_25_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_dyn.mat index 6f1c4c0f..e11f7e53 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_static.mat index d76750e2..96dd1558 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_26_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_dyn.mat index aea15a9f..f11c8081 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_static.mat index cfdb38de..5d5a2468 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_2_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_dyn.mat index 5588d4e4..f1954f37 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_static.mat index 426deffd..2dff07a3 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_4_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_dyn.mat index 51012b8a..c7fe26d7 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_static.mat index 20358e1b..dd631ce1 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_6_static.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_dyn.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_dyn.mat index 4fc32327..df7fa1aa 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_dyn.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_static.mat b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_static.mat index d3647810..906e206f 100644 Binary files a/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_static.mat and b/matlab_version/AU_training/experiments/FERA2011/results_FERA2011_devel/AU_7_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic.m b/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic.m index cd713f1e..bb1c6740 100644 --- a/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic.m +++ b/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic.m @@ -68,8 +68,20 @@ vid_ids_train_string = vid_ids_train_string(reduced_inds,:); labels_devel = cat(1, labels_devel{:}); -% normalise the data -load(pca_file); +% 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 % Grab all data for validation as want good params for all the data raw_devel = cat(2, devel_appearance_data, devel_geom_data); diff --git a/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic_dynamic.m b/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic_dynamic.m index 9e19b88f..4f90a631 100644 --- a/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic_dynamic.m +++ b/matlab_version/AU_training/experiments/SEMAINE/Prepare_HOG_AU_data_generic_dynamic.m @@ -68,8 +68,20 @@ vid_ids_train_string = vid_ids_train_string(reduced_inds,:); labels_devel = cat(1, labels_devel{:}); -% normalise the data -load(pca_file); +% 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 % Grab all data for validation as want good params for all the data raw_devel = cat(2, devel_appearance_data, devel_geom_data); diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_dyn.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_dyn.dat index 13f44ca9..bfaa9894 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_dyn.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_static.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_static.dat index 1e115bc4..26235d6d 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_static.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_12_static.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_dyn.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_dyn.dat index 903cb40d..275df3c0 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_dyn.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_static.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_static.dat index 62436fc3..32ae98ef 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_static.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_17_static.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_dyn.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_dyn.dat index c2808315..3dd8401b 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_dyn.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_static.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_static.dat index 7055103c..1977f940 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_static.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_25_static.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_dyn.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_dyn.dat index b193447d..d53c4c23 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_dyn.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_static.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_static.dat index a1c3b270..97fed7e4 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_static.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_28_static.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_dyn.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_dyn.dat index e216dc1f..827a2204 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_dyn.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_static.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_static.dat index 4c9f4a1a..f90ec886 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_static.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_2_static.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_dyn.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_dyn.dat index 3a8ddbf5..2e92ca2e 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_dyn.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_static.dat b/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_static.dat index 5c615851..dc010488 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_static.dat and b/matlab_version/AU_training/experiments/SEMAINE/models/AU_45_static.dat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_dyn.mat index a5dcc997..834ed4f0 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_dyn.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_static.mat index 69b06c41..a3139a1d 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_static.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_dyn.mat index ff99ac09..c943dcd3 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_dyn.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_static.mat index ef347cb3..92e44773 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_static.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_17_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_dyn.mat index 51a7fcee..4a1ee7ae 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_dyn.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_static.mat index 01aa51f0..f83b4c55 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_static.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_25_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_dyn.mat index 1122954e..33a2e292 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_dyn.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_static.mat index 42bbaa45..9b54ed61 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_static.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_28_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_dyn.mat index 8fc81e7c..dbdec3ea 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_dyn.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_static.mat index 33e3fec3..6b76c411 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_static.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_2_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_dyn.mat index 1d885028..2c60954f 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_dyn.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_static.mat index a4867b30..f5dbd843 100644 Binary files a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_static.mat and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel/AU_45_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_12_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_12_dyn.mat new file mode 100644 index 00000000..a5dcc997 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_12_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_12_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_12_static.mat new file mode 100644 index 00000000..69b06c41 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_17_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_17_dyn.mat new file mode 100644 index 00000000..ff99ac09 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_17_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_17_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_17_static.mat new file mode 100644 index 00000000..ef347cb3 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_17_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_25_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_25_dyn.mat new file mode 100644 index 00000000..51a7fcee Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_25_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_25_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_25_static.mat new file mode 100644 index 00000000..01aa51f0 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_25_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_28_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_28_dyn.mat new file mode 100644 index 00000000..1122954e Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_28_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_28_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_28_static.mat new file mode 100644 index 00000000..42bbaa45 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_28_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_2_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_2_dyn.mat new file mode 100644 index 00000000..8fc81e7c Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_2_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_2_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_2_static.mat new file mode 100644 index 00000000..33e3fec3 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_2_static.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_45_dyn.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_45_dyn.mat new file mode 100644 index 00000000..1d885028 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_45_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_45_static.mat b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_45_static.mat new file mode 100644 index 00000000..a4867b30 Binary files /dev/null and b/matlab_version/AU_training/experiments/SEMAINE/results_SEMAINE_devel_back/AU_45_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data.m b/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data.m index 05fe4835..6ada1757 100644 --- a/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data.m +++ b/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data.m @@ -1,5 +1,5 @@ function [data_train, labels_train, data_devel, labels_devel, raw_devel, PC, means_norm, stds_norm, devel_ids, devel_success] = ... - Prepare_HOG_AU_data(train_users, devel_users, au_train, rest_aus, UNBC_dir, hog_data_dir, pca_file) + Prepare_HOG_AU_data(train_users, devel_users, au_train, rest_aus, UNBC_dir, hog_data_dir) %% addpath(genpath('../data extraction/')); @@ -72,9 +72,21 @@ devel_ids = vid_ids_devel_string; labels_devel = cat(1, labels_devel{:}); -% normalise the data -load(pca_file); - +% 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 + % Grab all data for validation as want good params for all the data raw_devel = cat(2, devel_appearance_data, devel_geom_data); diff --git a/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data_dynamic.m b/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data_dynamic.m index 83e0a42b..1c5e231b 100644 --- a/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data_dynamic.m +++ b/matlab_version/AU_training/experiments/UNBC/Prepare_HOG_AU_data_dynamic.m @@ -1,5 +1,5 @@ function [data_train, labels_train, data_devel, labels_devel, raw_devel, PC, means_norm, stds_norm, devel_ids, devel_success] = ... - Prepare_HOG_AU_data_dynamic(train_users, devel_users, au_train, rest_aus, UNBC_dir, hog_data_dir, pca_file) + Prepare_HOG_AU_data_dynamic(train_users, devel_users, au_train, rest_aus, UNBC_dir, hog_data_dir) %% addpath(genpath('../data extraction/')); @@ -72,9 +72,21 @@ devel_ids = vid_ids_devel_string; labels_devel = cat(1, labels_devel{:}); -% normalise the data -load(pca_file); - +% 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 + % Grab all data for validation as want good params for all the data raw_devel = cat(2, devel_appearance_data, devel_geom_data); diff --git a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train.m b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train.m index 6b97724a..2875a924 100644 --- a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train.m +++ b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train.m @@ -2,6 +2,9 @@ function Script_HOG_SVM_train() % Change to your downloaded location addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); %% load shared definitions and AU data shared_defs; @@ -18,7 +21,6 @@ svm_train = @svm_train_linear; % Set the test function (the first output will be used for validation) svm_test = @svm_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; all_recs = cat(2, train_recs, devel_recs); %% @@ -31,7 +33,7 @@ for a=1:numel(aus) [users_train, users_valid] = get_balanced_fold(UNBC_dir, all_recs, au, 1/3, 1); % load the training and testing data for the current fold - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir, pca_loc); + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir); % Binarizing the data train_labels(train_labels > 1) = 1; diff --git a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train_dyn.m b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train_dyn.m index eb2ccabe..00a9bd2f 100644 --- a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train_dyn.m +++ b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVM_train_dyn.m @@ -2,6 +2,9 @@ function Script_HOG_SVM_train_dyn() % Change to your downloaded location addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); %% load shared definitions and AU data shared_defs; @@ -18,7 +21,6 @@ svm_train = @svm_train_linear; % Set the test function (the first output will be used for validation) svm_test = @svm_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; all_recs = cat(2, train_recs, devel_recs); %% @@ -31,7 +33,7 @@ for a=1:numel(aus) [users_train, users_valid] = get_balanced_fold(UNBC_dir, all_recs, au, 1/3, 1); % load the training and testing data for the current fold - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_dynamic(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir, pca_loc); + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling] = Prepare_HOG_AU_data_dynamic(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir); train_samples = sparse(train_samples); valid_samples = sparse(valid_samples); diff --git a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train.m b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train.m index 9bb482c6..bc6e73e9 100644 --- a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train.m +++ b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train.m @@ -2,6 +2,9 @@ function Script_HOG_SVR_train() % Change to your downloaded location addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); %% load shared definitions and AU data shared_defs; @@ -18,7 +21,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'; all_recs = cat(2, train_recs, devel_recs); %% @@ -31,7 +33,7 @@ for a=1:numel(aus) [users_train, users_valid] = get_balanced_fold(UNBC_dir, all_recs, au, 1/3, 1); % load the training and testing data for the current fold - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir, pca_loc); + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir); train_samples = sparse(train_samples); valid_samples = sparse(valid_samples); diff --git a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train_dyn.m b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train_dyn.m index 1dc39a89..a51a7ddc 100644 --- a/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train_dyn.m +++ b/matlab_version/AU_training/experiments/UNBC/Script_HOG_SVR_train_dyn.m @@ -2,6 +2,9 @@ function Script_HOG_SVR_train_dyn() % Change to your downloaded location addpath('C:\liblinear\matlab') +addpath('../training_code/'); +addpath('../utilities/'); +addpath('../../data extraction/'); %% load shared definitions and AU data shared_defs; @@ -18,7 +21,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'; all_recs = cat(2, train_recs, devel_recs); %% @@ -31,7 +33,7 @@ for a=1:numel(aus) [users_train, users_valid] = get_balanced_fold(UNBC_dir, all_recs, au, 1/3, 1); % load the training and testing data for the current fold - [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_dynamic(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir, pca_loc); + [train_samples, train_labels, valid_samples, valid_labels, ~, PC, means, scaling, valid_ids, valid_success] = Prepare_HOG_AU_data_dynamic(users_train, users_valid, au, rest_aus, UNBC_dir, hog_data_dir); train_samples = sparse(train_samples); valid_samples = sparse(valid_samples); diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn.dat index 3e8af6df..03fcbebd 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn_intensity.dat index 56f58de9..ce8a3d4a 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_10_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_10_static.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_10_static.dat index 7d5613ea..51396688 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_10_static.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_10_static.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_10_static_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_10_static_intensity.dat index 7744ebda..6653c6d0 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_10_static_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_10_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn.dat index 672e6541..8a7cc724 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn_intensity.dat index 9225deff..cf171746 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_12_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_12_static.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_12_static.dat index f703a65f..25b74954 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_12_static.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_12_static.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_12_static_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_12_static_intensity.dat index dd774ba0..afed975a 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_12_static_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_12_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn.dat index 296bfd0e..3237f480 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn_intensity.dat index e16c8ba3..601c5952 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_25_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_25_static.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_25_static.dat index feaf8a02..7491a0be 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_25_static.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_25_static.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_25_static_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_25_static_intensity.dat index 82f37f4b..7dd79fa4 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_25_static_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_25_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn.dat index 61670211..88b92f01 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn_intensity.dat index fcf039e1..a68e4f2b 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_26_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_26_static.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_26_static.dat index 81eced44..2171137c 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_26_static.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_26_static.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_26_static_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_26_static_intensity.dat index 3cff32a7..dfafbbf7 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_26_static_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_26_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn.dat index 6ef768eb..14e1323e 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn_intensity.dat index 01b7271a..0695a0d2 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_6_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_6_static.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_6_static.dat index 19d90c02..5ba6355d 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_6_static.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_6_static.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_6_static_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_6_static_intensity.dat index e45d03d1..77489d3f 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_6_static_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_6_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn.dat index 50a0db1c..4f3b8f2c 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn_intensity.dat index 34727f58..62a4128c 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_7_dyn_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_7_static.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_7_static.dat index dc5717ab..47231d68 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_7_static.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_7_static.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/models/AU_7_static_intensity.dat b/matlab_version/AU_training/experiments/UNBC/models/AU_7_static_intensity.dat index 56eaad6d..b7489f3c 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/models/AU_7_static_intensity.dat and b/matlab_version/AU_training/experiments/UNBC/models/AU_7_static_intensity.dat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn.mat index 234302e2..9ccad009 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn_intensity.mat index 693eb7e1..f854cb90 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static.mat index 3ed6a9a8..cbcf2024 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static_intensity.mat index 9cb663bc..bc78d692 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_10_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn.mat index 8cb60145..162dc7fe 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn_intensity.mat index b1b4b972..2319e1ec 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static.mat index d579857f..4d9f1969 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static_intensity.mat index 5d1a072b..8fa0a93e 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_12_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn.mat index 5fdb7ddd..af8c2f23 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn_intensity.mat index b7110cee..4f90cb71 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static.mat index e68030a4..6d0e5a7c 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static_intensity.mat index 384b31db..10823332 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_25_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn.mat index fe6331e9..bd2c0db8 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn_intensity.mat index 8a1f65b8..e86585c2 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static.mat index 12aa6c1e..e15633b7 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static_intensity.mat index ec11d09a..6ee38bdc 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_26_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn.mat index 54b63663..cb241d3b 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn_intensity.mat index ed6985ed..646f75f2 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static.mat index c7208161..0322f0d0 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static_intensity.mat index 82eafe9e..790830e3 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_6_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn.mat index e1af8c06..65f636df 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn_intensity.mat index f5ec22ee..7412075f 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static.mat index 9e7a42af..bc0a56c1 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static_intensity.mat index 26ca23ac..63b92ae5 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_7_static_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn.mat index 7a96bcf2..b55a6a93 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn_intensity.mat index 9ed3f711..d5e4cd73 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_dyn_intensity.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static.mat index 2e7e0f91..87d402bb 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static.mat differ diff --git a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static_intensity.mat b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static_intensity.mat index b64e3570..d05cc2fc 100644 Binary files a/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static_intensity.mat and b/matlab_version/AU_training/experiments/UNBC/results_UNBC_devel/AU_9_static_intensity.mat differ 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 3123ba43..d81b6c8c 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 7dcbc734..cdd15a1d 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 04a8b729..f8afb264 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 8bb9b1d5..2690abe1 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 693435a0..d31141a6 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 fc885644..b1869dbf 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 38dace74..79afec4f 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 496871b1..cd428599 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 59c96714..32996100 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 747f2a09..c4639dac 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 4063081b..ea123c8b 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 1b64ae7c..fe091ad9 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 9583f7ca..9f085a06 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 942dfd8f..b35708b3 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 8019114c..f2cddb44 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 6e37f64f..c8def81e 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 44f45976..03f5b23e 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 8f457412..6ee8a52d 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 f9d24dc4..6cd620a2 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 fc3689c4..fd0a99e4 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 b193447d..d53c4c23 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 a1c3b270..97fed7e4 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 5a40bc9c..e62fc01b 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 80fa1509..1d45f7a8 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 3a8ddbf5..578f5994 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 5c615851..8e13be50 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 75239db5..55f7b92a 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 c07524c0..a887b0b1 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 9209839c..87cb54c6 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 6161741c..7b44fe37 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 cdbb3c9d..462b8181 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 f65e4a40..e90adf53 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 ebc38a18..0643e7ec 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 42c5f1f7..b7099299 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 b85a6698..77a14d21 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 b873398e..f2e74fa8 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/mat_models/AU_10_dynamic.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_dynamic.mat index 3ba4c230..c8c6dd4e 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_10_static.mat index 58b276f4..b67f67ad 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 new file mode 100644 index 00000000..910625e8 Binary files /dev/null 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 new file mode 100644 index 00000000..9b298eca Binary files /dev/null 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 a2f0e249..d10e79e3 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_12_static.mat index 91bd435b..ebe82df7 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 new file mode 100644 index 00000000..104b395e Binary files /dev/null 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 new file mode 100644 index 00000000..f379ae17 Binary files /dev/null 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 3610b6ac..6a0bf8a9 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_14_static.mat index d1ca0c26..8a6f8203 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 new file mode 100644 index 00000000..032cb04a Binary files /dev/null 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 32a8cae5..e328d3f3 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_15_static.mat index e0bc6953..be446498 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 new file mode 100644 index 00000000..48ac1bbe Binary files /dev/null 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 new file mode 100644 index 00000000..84afa372 Binary files /dev/null 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 a8c2df3b..85af493b 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_17_static.mat index 6b2a20ae..c99c7e38 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 new file mode 100644 index 00000000..7fd0f9da Binary files /dev/null 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 new file mode 100644 index 00000000..a312f967 Binary files /dev/null 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 b3548d41..54adea5f 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_1_static.mat index 13fda332..1ae1490a 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 new file mode 100644 index 00000000..c87c47aa Binary files /dev/null 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 new file mode 100644 index 00000000..28922bae Binary files /dev/null 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 9d081bba..38d792c2 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_20_static.mat index 1ee41422..d9923820 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 new file mode 100644 index 00000000..7d5c0645 Binary files /dev/null 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 67c73e68..2ffc1abd 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_23_static.mat index d71e4761..1549f75d 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 new file mode 100644 index 00000000..6ece972f Binary files /dev/null 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 new file mode 100644 index 00000000..bc3dfa6e Binary files /dev/null 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 7534d059..b1b0597a 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_25_static.mat index 35adbc69..69fa1725 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 new file mode 100644 index 00000000..ad45a712 Binary files /dev/null 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 new file mode 100644 index 00000000..191841f9 Binary files /dev/null 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 1df83522..f7365f62 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_26_static.mat index b888773d..c72f2216 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 new file mode 100644 index 00000000..acd2f84a Binary files /dev/null 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 new file mode 100644 index 00000000..988bfa81 Binary files /dev/null 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 43bd05c4..2bd01d6d 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 244d8b4e..0175ac9e 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 0a45b945..684793df 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_2_static.mat index 32c5466b..84e08de7 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 new file mode 100644 index 00000000..6654a2a5 Binary files /dev/null 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 new file mode 100644 index 00000000..6dc73d0a Binary files /dev/null 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 f8992a93..4125804e 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_45_static.mat index b46ccdbf..72e5b00d 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 new file mode 100644 index 00000000..fa37c86b Binary files /dev/null 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 new file mode 100644 index 00000000..bb73dad1 Binary files /dev/null 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 8bb36b2b..23216cd6 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_4_static.mat index cf4252c9..11d03b1e 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 new file mode 100644 index 00000000..62c1e459 Binary files /dev/null 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 new file mode 100644 index 00000000..78c83d18 Binary files /dev/null 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 c1c0790a..5e64a61f 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_5_static.mat index 3dba130b..d38060be 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 new file mode 100644 index 00000000..783c1596 Binary files /dev/null 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 54e3f7e6..c87a82ff 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_6_static.mat index 863a7322..8db28a15 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 new file mode 100644 index 00000000..8b46c3b0 Binary files /dev/null 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 new file mode 100644 index 00000000..8fe157d2 Binary files /dev/null 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 354b913b..6de0ecd1 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_7_static.mat index 9fc91659..73d136fb 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 new file mode 100644 index 00000000..cdca9644 Binary files /dev/null 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 new file mode 100644 index 00000000..99cdb9ab Binary files /dev/null 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 b8118eb5..6fd43490 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_static.mat b/matlab_version/AU_training/experiments/full_model_training/mat_models/AU_9_static.mat index def8a742..ebd21b0e 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 new file mode 100644 index 00000000..7d8daf0a Binary files /dev/null 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 new file mode 100644 index 00000000..28f36cd1 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_dynamic.mat 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 new file mode 100644 index 00000000..40f78960 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_10_static.mat 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 new file mode 100644 index 00000000..fb6ba2d8 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_dynamic.mat 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 new file mode 100644 index 00000000..5d201439 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_12_static.mat 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 new file mode 100644 index 00000000..3b05208d Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_dynamic.mat 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 new file mode 100644 index 00000000..7c9bbcf0 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_14_static.mat 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 new file mode 100644 index 00000000..ab78a41c Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_dynamic.mat 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 new file mode 100644 index 00000000..bead3df8 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_15_static.mat 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 new file mode 100644 index 00000000..146cd1a2 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_dynamic.mat 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 new file mode 100644 index 00000000..4b4b7d76 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_17_static.mat 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 new file mode 100644 index 00000000..8af1863d Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_dynamic.mat 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 new file mode 100644 index 00000000..9d9f6c2e Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_1_static.mat 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 new file mode 100644 index 00000000..e2389cc1 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_dynamic.mat 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 new file mode 100644 index 00000000..53d3f7fa Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_20_static.mat 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 new file mode 100644 index 00000000..f07abd18 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_dynamic.mat 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 new file mode 100644 index 00000000..abeb5837 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_23_static.mat 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 new file mode 100644 index 00000000..fb6ab68b Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_dynamic.mat 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 new file mode 100644 index 00000000..f71b45c7 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_25_static.mat 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 new file mode 100644 index 00000000..b3e961e1 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_dynamic.mat 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 new file mode 100644 index 00000000..09c8f55d Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_26_static.mat 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 new file mode 100644 index 00000000..26864996 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_dynamic.mat 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 new file mode 100644 index 00000000..3b784744 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_28_static.mat 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 new file mode 100644 index 00000000..ec3a1527 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_dynamic.mat 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 new file mode 100644 index 00000000..bb99d37a Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_2_static.mat 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 new file mode 100644 index 00000000..7a9e6d71 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_dynamic.mat 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 new file mode 100644 index 00000000..0cbe2374 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_45_static.mat 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 new file mode 100644 index 00000000..d39a8713 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_dynamic.mat 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 new file mode 100644 index 00000000..37f41d8f Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_4_static.mat 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 new file mode 100644 index 00000000..8d4b72b9 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_dynamic.mat 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 new file mode 100644 index 00000000..0a14d7c6 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_5_static.mat 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 new file mode 100644 index 00000000..377ad551 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_dynamic.mat 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 new file mode 100644 index 00000000..069d12c4 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_6_static.mat 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 new file mode 100644 index 00000000..243f792a Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_dynamic.mat 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 new file mode 100644 index 00000000..412da99e Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_7_static.mat 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 new file mode 100644 index 00000000..4bc2a9a3 Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_dynamic.mat 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 new file mode 100644 index 00000000..f5783f5d Binary files /dev/null and b/matlab_version/AU_training/experiments/full_model_training/mat_models_back/AU_9_static.mat 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 new file mode 100644 index 00000000..fd664471 Binary files /dev/null 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 new file mode 100644 index 00000000..52673b7d Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_12_static_intensity.dat new file mode 100644 index 00000000..31307e44 Binary files /dev/null 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 new file mode 100644 index 00000000..574057ba Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_14_static_intensity.dat new file mode 100644 index 00000000..2e3975de Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_15_static_intensity.dat new file mode 100644 index 00000000..6f4edb23 Binary files /dev/null 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 new file mode 100644 index 00000000..fb5f4e48 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_17_static_intensity.dat new file mode 100644 index 00000000..ae8011fa Binary files /dev/null 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 new file mode 100644 index 00000000..45fcb68d Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_1_static_intensity.dat new file mode 100644 index 00000000..d9c141cc Binary files /dev/null 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 new file mode 100644 index 00000000..b0d9d437 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_20_static_intensity.dat new file mode 100644 index 00000000..4a445e45 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_23_static_intensity.dat new file mode 100644 index 00000000..bd94fdf1 Binary files /dev/null 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 new file mode 100644 index 00000000..2528743a Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_25_static_intensity.dat new file mode 100644 index 00000000..60895212 Binary files /dev/null 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 new file mode 100644 index 00000000..a1d09c4c Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_26_static_intensity.dat new file mode 100644 index 00000000..668d0d36 Binary files /dev/null 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 new file mode 100644 index 00000000..da3f8bf3 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_2_static_intensity.dat new file mode 100644 index 00000000..6c00d714 Binary files /dev/null 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 new file mode 100644 index 00000000..140366d6 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_45_static_intensity.dat new file mode 100644 index 00000000..80c97d4c Binary files /dev/null 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 new file mode 100644 index 00000000..5d1bc606 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_4_static_intensity.dat new file mode 100644 index 00000000..2bd6c983 Binary files /dev/null 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 new file mode 100644 index 00000000..a023e7a8 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_5_static_intensity.dat new file mode 100644 index 00000000..c2c5fb62 Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_6_static_intensity.dat new file mode 100644 index 00000000..89b24fa2 Binary files /dev/null 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 new file mode 100644 index 00000000..e98b274c Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_7_static_intensity.dat new file mode 100644 index 00000000..64214263 Binary files /dev/null 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 new file mode 100644 index 00000000..31976cfa Binary files /dev/null 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_static_intensity.dat b/matlab_version/AU_training/experiments/full_model_training/regressors/AU_9_static_intensity.dat new file mode 100644 index 00000000..ba358174 Binary files /dev/null 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 index 4c1b3e52..6df66531 100644 --- a/matlab_version/AU_training/experiments/full_model_training/test_smoothing.m +++ b/matlab_version/AU_training/experiments/full_model_training/test_smoothing.m @@ -11,7 +11,7 @@ for i =1:numel(models) F1_orig = compute_F1(valid_labels, predictions_all); F1s_sm(i, 1) = F1_orig; - spans = [3, 5, 7, 9, 11, 13, 15]; + spans = [3, 5, 7, 9, 11, 13]; sp = 2; for s = spans pred_smooth = smooth(predictions_all, s, 'moving'); 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 new file mode 100644 index 00000000..36ad3843 --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.asv @@ -0,0 +1,27 @@ +% 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 new file mode 100644 index 00000000..d9ed8718 --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/test_smoothing_reg.m @@ -0,0 +1,30 @@ +% 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_classifiers.m b/matlab_version/AU_training/experiments/full_model_training/train_dynamic_classifiers.m index 9b892f60..979717d8 100644 --- a/matlab_version/AU_training/experiments/full_model_training/train_dynamic_classifiers.m +++ b/matlab_version/AU_training/experiments/full_model_training/train_dynamic_classifiers.m @@ -20,16 +20,12 @@ svm_train = @svm_train_linear; % Set the test function (the first output will be used for validation) svm_test = @svm_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; - BP4D_aus = [1, 2, 4, 6, 7, 10, 12, 14, 15, 17, 23]; SEMAINE_aus = [2, 12, 17, 25, 28, 45]; -UNBC_aus = [6, 7, 9, 10, 12, 25, 26]; +FERA2011_aus = [1, 2, 4, 6, 7, 10, 12, 15, 17, 25, 26]; +UNBC_aus = [6, 7, 9, 12, 25, 26]; DISFA_aus = [1, 2, 4, 5, 6, 9, 12, 15, 17, 20, 25, 26]; - -% For dynamic models we skip FERA as that does not work as well due to the -% videos being very short and not containing as much dynamics (no neutral -% expression in lots of them) +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) @@ -52,7 +48,7 @@ for a=1:numel(all_dataset_aus) 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, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(train_recs, devel_recs, au, BP4D_dir, hog_data_dir, pca_loc); + [train_samples_bp4d, train_labels_bp4d, valid_samples_bp4d, valid_labels_bp4d, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(train_recs, devel_recs, au, BP4D_dir, hog_data_dir); train_samples = cat(1, train_samples, train_samples_bp4d); valid_samples = cat(1, valid_samples, valid_samples_bp4d); @@ -71,13 +67,43 @@ for a=1:numel(all_dataset_aus) cd(op); end + + if(~isempty(find(FERA2011_aus == au, 1))) + op = cd('../FERA2011/'); + rest_aus = setdiff(FERA2011_aus, au); + shared_defs; + all_recs = cat(2, train_recs, devel_recs); + [users_train, users_valid_fera] = get_balanced_fold(FERA2011_dir, all_recs, au, 1/3, 1); + + % load the training and testing data for the current fold + [train_samples_f2011, train_labels_f2011, valid_samples_f2011, valid_labels_f2011, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(users_train, users_valid_fera, au, rest_aus, FERA2011_dir, hog_data_dir); + + train_samples = cat(1, train_samples, train_samples_f2011); + valid_samples = cat(1, valid_samples, valid_samples_f2011); + + train_labels = cat(1, train_labels, train_labels_f2011); + valid_labels = cat(1, valid_labels, valid_labels_f2011); + + if(isempty(eval_ids)) + eval_ids = ones(size(valid_labels_f2011,1), 1); + else + eval_ids = cat(1, eval_ids, (eval_ids(end)+1)*ones(size(valid_labels_f2011,1), 1)); + end + + clear 'train_samples_f2011' 'train_labels_f2011' 'valid_samples_f2011' 'valid_labels_bp4d' + + dataset_ids = cat(1, dataset_ids, {'FERA2011'}); + + cd(op); + + end if(~isempty(find(SEMAINE_aus == au, 1))) op = cd('../SEMAINE/'); rest_aus = setdiff(SEMAINE_aus, au); shared_defs; % load the training and testing data for the current fold - [train_samples_sem, train_labels_sem, valid_samples_sem, valid_labels_sem, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(train_recs, devel_recs, au, rest_aus, SEMAINE_dir, hog_data_dir, pca_loc); + [train_samples_sem, train_labels_sem, valid_samples_sem, valid_labels_sem, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic_dynamic(train_recs, devel_recs, au, rest_aus, SEMAINE_dir, hog_data_dir); train_samples = cat(1, train_samples, train_samples_sem); valid_samples = cat(1, valid_samples, valid_samples_sem); @@ -97,6 +123,43 @@ for a=1:numel(all_dataset_aus) 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); + + train_labels_bosph(train_labels_bosph > 1) = 1; + valid_labels_bosph(valid_labels_bosph > 1) = 1; + + % 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); + + 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); @@ -137,7 +200,7 @@ for a=1:numel(all_dataset_aus) [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] = Prepare_HOG_AU_data_dynamic(users_train, users_valid_unbc, au, rest_aus, UNBC_dir, hog_data_dir, pca_loc); + [train_samples_unbc, train_labels_unbc, valid_samples_unbc, valid_labels_unbc, ~, PC, means, scaling] = Prepare_HOG_AU_data_dynamic(users_train, users_valid_unbc, au, rest_aus, UNBC_dir, hog_data_dir); % Binarizing the data train_labels_unbc(train_labels_unbc > 1) = 1; @@ -182,8 +245,8 @@ for a=1:numel(all_dataset_aus) meanF1 = mean(F1s); - save(name, 'model', 'F1s', 'meanF1', 'predictions_all', 'valid_labels', 'eval_ids', 'dataset_ids'); - + save(name, 'model', 'F1s', 'meanF1', 'predictions_all', 'valid_labels', 'eval_ids', 'dataset_ids'); + % Write out the model name = sprintf('classifiers/AU_%d_dynamic.dat', au); @@ -195,7 +258,7 @@ for a=1:numel(all_dataset_aus) svs = bsxfun(@times, PC, 1./scaling') * w; - write_lin_dyn_svm(name, means, svs, b, pos_lbl, neg_lbl); + write_lin_dyn_svm(name, means, svs, b, pos_lbl, neg_lbl); clear 'train_samples' 'train_labels' 'valid_samples' 'valid_labels' end diff --git a/matlab_version/AU_training/experiments/full_model_training/train_static_classifiers.m b/matlab_version/AU_training/experiments/full_model_training/train_static_classifiers.m index 5bc86b70..fa8f9f2c 100644 --- a/matlab_version/AU_training/experiments/full_model_training/train_static_classifiers.m +++ b/matlab_version/AU_training/experiments/full_model_training/train_static_classifiers.m @@ -20,13 +20,12 @@ svm_train = @svm_train_linear; % Set the test function (the first output will be used for validation) svm_test = @svm_test_linear; -pca_loc = '../../pca_generation/generic_face_rigid.mat'; - BP4D_aus = [1, 2, 4, 6, 7, 10, 12, 14, 15, 17, 23]; SEMAINE_aus = [2, 12, 17, 25, 28, 45]; -FERA2011_aus = [1, 2, 6, 7, 10, 12, 15, 17, 25, 26]; +FERA2011_aus = [1, 2, 4, 6, 7, 10, 12, 15, 17, 25, 26]; 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) @@ -49,7 +48,7 @@ for a=1:numel(all_dataset_aus) 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, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, BP4D_dir, hog_data_dir, pca_loc); + [train_samples_bp4d, train_labels_bp4d, valid_samples_bp4d, valid_labels_bp4d, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, BP4D_dir, hog_data_dir); train_samples = cat(1, train_samples, train_samples_bp4d); valid_samples = cat(1, valid_samples, valid_samples_bp4d); @@ -73,8 +72,11 @@ for a=1:numel(all_dataset_aus) op = cd('../FERA2011/'); rest_aus = setdiff(FERA2011_aus, au); shared_defs; + all_recs = cat(2, train_recs, devel_recs); + [users_train, users_valid_fera] = get_balanced_fold(FERA2011_dir, all_recs, au, 1/3, 1); + % load the training and testing data for the current fold - [train_samples_f2011, train_labels_f2011, valid_samples_f2011, valid_labels_f2011, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, rest_aus, FERA2011_dir, hog_data_dir, pca_loc); + [train_samples_f2011, train_labels_f2011, valid_samples_f2011, valid_labels_f2011, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(users_train, users_valid_fera, au, rest_aus, FERA2011_dir, hog_data_dir); train_samples = cat(1, train_samples, train_samples_f2011); valid_samples = cat(1, valid_samples, valid_samples_f2011); @@ -101,7 +103,7 @@ for a=1:numel(all_dataset_aus) rest_aus = setdiff(SEMAINE_aus, au); shared_defs; % load the training and testing data for the current fold - [train_samples_sem, train_labels_sem, valid_samples_sem, valid_labels_sem, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, rest_aus, SEMAINE_dir, hog_data_dir, pca_loc); + [train_samples_sem, train_labels_sem, valid_samples_sem, valid_labels_sem, ~, PC, means, scaling] = Prepare_HOG_AU_data_generic(train_recs, devel_recs, au, rest_aus, SEMAINE_dir, hog_data_dir); train_samples = cat(1, train_samples, train_samples_sem); valid_samples = cat(1, valid_samples, valid_samples_sem); @@ -121,6 +123,43 @@ for a=1:numel(all_dataset_aus) 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(users_train, users_valid_bosph, au, rest_aus, Bosphorus_dir, hog_data_dir); + + train_labels_bosph(train_labels_bosph > 1) = 1; + valid_labels_bosph(valid_labels_bosph > 1) = 1; + + % 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); + + 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); @@ -161,7 +200,7 @@ for a=1:numel(all_dataset_aus) [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] = Prepare_HOG_AU_data(users_train, users_valid_unbc, au, rest_aus, UNBC_dir, hog_data_dir, pca_loc); + [train_samples_unbc, train_labels_unbc, valid_samples_unbc, valid_labels_unbc, ~, PC, means, scaling] = Prepare_HOG_AU_data(users_train, users_valid_unbc, au, rest_aus, UNBC_dir, hog_data_dir); % Binarizing the data train_labels_unbc(train_labels_unbc > 1) = 1; @@ -208,8 +247,6 @@ for a=1:numel(all_dataset_aus) save(name, 'model', 'F1s', 'meanF1', 'predictions_all', 'valid_labels', 'eval_ids', 'dataset_ids'); - save(name, 'model', 'F1s', 'predictions_all', 'valid_labels', 'eval_ids', 'dataset_ids'); - % Write out the model name = sprintf('classifiers/AU_%d_static.dat', au); diff --git a/matlab_version/AU_training/experiments/full_model_training/train_static_regressors.m b/matlab_version/AU_training/experiments/full_model_training/train_static_regressors.m index 60b6c47d..83b67d92 100644 --- a/matlab_version/AU_training/experiments/full_model_training/train_static_regressors.m +++ b/matlab_version/AU_training/experiments/full_model_training/train_static_regressors.m @@ -1 +1,227 @@ -% These are useful for individual images or very short clips \ No newline at end of file +% 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; + +% Set the test function (the first output will be used for validation) +svr_test = @svr_test_linear; + +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(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(users_train, users_valid_bosph, au, rest_aus, Bosphorus_dir, hog_data_dir); + + % 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(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(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_static_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_static_intensity.dat', au); + + w = model.w(1:end-1)'; + b = model.w(end); + + svs = bsxfun(@times, PC, 1./scaling') * w; + + write_lin_svr(name, means, svs, b); + + clear 'train_samples' 'train_labels' 'valid_samples' 'valid_labels' +end + + diff --git a/matlab_version/AU_training/experiments/full_model_training/train_static_regressors_with_classifiers.m b/matlab_version/AU_training/experiments/full_model_training/train_static_regressors_with_classifiers.m new file mode 100644 index 00000000..a852c684 --- /dev/null +++ b/matlab_version/AU_training/experiments/full_model_training/train_static_regressors_with_classifiers.m @@ -0,0 +1,249 @@ +% 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; + +% Set the test function (the first output will be used for validation) +svr_test = @svr_test_linear; + +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(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(users_train, users_valid_bosph, au, rest_aus, Bosphorus_dir, hog_data_dir); + + % 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(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(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_static_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_static.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_static_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_static_intensity_comb.dat', au); + + w = model.w(1:end-1)'; + b = model.w(end); + + svs = bsxfun(@times, PC, 1./scaling') * w; + + write_lin_svr(name, means, svs, b); + + 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 4083410d..f91cba49 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 @@ -8,10 +8,24 @@ function [result, prediction] = svr_test_linear(test_labels, test_samples, model prediction(prediction>5)=5; % using CCC as the evaluation metric - result = corr(test_labels, prediction); - [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( prediction, test_labels ); - - result = ccc; + % using the average of CCC errors if different datasets are used + if(~isfield(model, 'eval_ids')) + result = corr(test_labels, prediction); + [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( prediction, test_labels ); + result = ccc; + else + eval_ids = unique(model.eval_ids)'; + ccc = 0; + fprintf('CCC: '); + for i=eval_ids + [ ~, ~, ~, ccc_curr, ~, ~ ] = evaluate_regression_results( prediction(model.eval_ids == i), test_labels(model.eval_ids == i) ); + ccc = ccc + ccc_curr; + fprintf('%.3f ', ccc_curr); + end + ccc = ccc / numel(eval_ids); + fprintf('mean : %.3f\n', ccc); + result = ccc; + end if(isnan(result)) result = 0; diff --git a/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift.m b/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift.m index fac36df9..ae13f4c9 100644 --- a/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift.m +++ b/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift.m @@ -29,10 +29,23 @@ function [result, prediction] = svr_test_linear_shift(test_labels, test_samples, % using the average of RMS errors % result = mean(sqrt(mean((prediction - test_labels).^2))); - result = corr(test_labels, prediction); - [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( prediction, test_labels ); - - result = ccc; + if(~isfield(model, 'eval_ids')) + result = corr(test_labels, prediction); + [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( prediction, test_labels ); + result = ccc; + else + eval_ids = unique(model.eval_ids)'; + ccc = 0; + fprintf('CCC: '); + for i=eval_ids + [ ~, ~, ~, ccc_curr, ~, ~ ] = evaluate_regression_results( prediction(model.eval_ids == i), test_labels(model.eval_ids == i) ); + ccc = ccc + ccc_curr; + fprintf('%.3f ', ccc_curr); + end + ccc = ccc / numel(eval_ids); + fprintf('mean : %.3f\n', ccc); + result = ccc; + end if(isnan(result)) result = 0; diff --git a/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift_fancy.m b/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift_fancy.m deleted file mode 100644 index ceb215b6..00000000 --- a/matlab_version/AU_training/experiments/training_code/svr_test_linear_shift_fancy.m +++ /dev/null @@ -1,41 +0,0 @@ -function [result, prediction] = svr_test_linear_shift_fancy(test_labels, test_samples, model) - - prediction = test_samples * model.w(1:end-1)' + model.w(end); -% prediction = predict(test_labels, test_samples, model); - - prediction(~model.success) = 0; - - if(model.cutoff >= 0) - % perform shifting here per person - users = unique(model.vid_ids); - - for i=1:numel(users) - - preds_user = prediction(strcmp(model.vid_ids, users(i))); - sorted = sort(preds_user); - - % alternative, move to histograms and pick the highest one - - shift = sorted(round(end*model.cutoff)+1); - - prediction(strcmp(model.vid_ids, users(i))) = preds_user - shift; - - end - end - - % Cap the prediction as well - prediction(prediction<0)=0; - prediction(prediction>5)=5; - - % using the average of RMS errors -% result = mean(sqrt(mean((prediction - test_labels).^2))); - result = corr(test_labels, prediction); - [ ~, ~, ~, ccc, ~, ~ ] = evaluate_regression_results( prediction, test_labels ); - - result = ccc; - - if(isnan(result)) - result = 0; - end - -end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/training_code/svr_train_linear.m b/matlab_version/AU_training/experiments/training_code/svr_train_linear.m index e45d4f6d..e0301325 100644 --- a/matlab_version/AU_training/experiments/training_code/svr_train_linear.m +++ b/matlab_version/AU_training/experiments/training_code/svr_train_linear.m @@ -5,4 +5,9 @@ function [model] = svr_train_linear(train_labels, train_samples, hyper) comm = sprintf('-s 11 -B 1 -p %.10f -c %.10f -q', hyper.p, hyper.c); model = train(train_labels, train_samples, comm); model.success = hyper.success; + + if(isfield(hyper, 'eval_ids')) + model.eval_ids = hyper.eval_ids; + end + end \ No newline at end of file diff --git a/matlab_version/AU_training/experiments/training_code/svr_train_linear_shift_fancy.m b/matlab_version/AU_training/experiments/training_code/svr_train_linear_shift.m similarity index 90% rename from matlab_version/AU_training/experiments/training_code/svr_train_linear_shift_fancy.m rename to matlab_version/AU_training/experiments/training_code/svr_train_linear_shift.m index ce1cebd8..107cdc26 100644 --- a/matlab_version/AU_training/experiments/training_code/svr_train_linear_shift_fancy.m +++ b/matlab_version/AU_training/experiments/training_code/svr_train_linear_shift.m @@ -1,4 +1,4 @@ -function [model] = svr_train_linear_shift_fancy(train_labels, train_samples, hyper) +function [model] = svr_train_linear_shift(train_labels, train_samples, hyper) % Change to your downloaded location addpath('C:\liblinear\matlab') @@ -54,4 +54,9 @@ function [model] = svr_train_linear_shift_fancy(train_labels, train_samples, hyp model.cutoff = cutoffs(best_id); model.vid_ids = hyper.vid_ids; model.success = hyper.success; + + if(isfield(hyper, 'eval_ids')) + model.eval_ids = hyper.eval_ids; + end + end \ No newline at end of file diff --git a/matlab_version/AU_training/instructions.txt b/matlab_version/AU_training/instructions.txt index 0a3a4492..60c1d5a7 100644 --- a/matlab_version/AU_training/instructions.txt +++ b/matlab_version/AU_training/instructions.txt @@ -3,6 +3,6 @@ - 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 diff --git a/matlab_version/AU_training/pca_generation/createSubFaceModels.m b/matlab_version/AU_training/pca_generation/createSubFaceModels.m new file mode 100644 index 00000000..9178dba4 --- /dev/null +++ b/matlab_version/AU_training/pca_generation/createSubFaceModels.m @@ -0,0 +1,108 @@ +clear; + +%% CK+, FERA2011, UNBC and Bosphorus datasets +hog_dir = 'D:\Datasets/face_datasets/hog_aligned_rigid/'; +hog_files = dir([hog_dir, '*.hog']); + +[appearance_data, valid_inds, vid_ids_train] = Read_HOG_files_small(hog_files, hog_dir); +appearance_data = appearance_data(valid_inds,:); +vid_ids_train = vid_ids_train(valid_inds,:); + +%% DISFA +hog_dir = 'D:\Datasets\DISFA\hog_aligned_rigid/'; +hog_files = dir([hog_dir, '*.hog']); + +[appearance_data_disfa, valid_inds, vid_ids_train_disfa] = Read_HOG_files_small(hog_files, hog_dir, 100); + +appearance_data_disfa = appearance_data_disfa(valid_inds,:); +vid_ids_train_disfa = vid_ids_train_disfa(valid_inds,:); + +appearance_data = cat(1,appearance_data, appearance_data_disfa); +vid_ids_train = cat(1,vid_ids_train, vid_ids_train_disfa); + +%% BP4D +hog_dir = 'D:\Datasets\FERA_2015\bp4d\processed_data/train/'; +hog_files = dir([hog_dir, '*.hog']); + +[appearance_data_bp, valid_inds, vid_ids_train_bp] = Read_HOG_files_small(hog_files, hog_dir, 50); + +appearance_data_bp = appearance_data_bp(valid_inds,:); +vid_ids_train_bp = vid_ids_train_bp(valid_inds,:); + +appearance_data = cat(1,appearance_data, appearance_data_bp); +vid_ids_train = cat(1,vid_ids_train, vid_ids_train_bp); + +%% SEMAINE +hog_dir = 'D:\Datasets\FERA_2015\semaine\processed_data\train\'; +hog_files = dir([hog_dir, '*.hog']); + +[appearance_data_semaine, valid_inds, vid_ids_train_semaine] = Read_HOG_files_small(hog_files, hog_dir, 300); + +appearance_data_semaine = appearance_data_semaine(valid_inds,:); +vid_ids_train_semaine = vid_ids_train_semaine(valid_inds,:); + +appearance_data = cat(1,appearance_data, appearance_data_semaine); +vid_ids_train = cat(1,vid_ids_train, vid_ids_train_semaine); + +%% +means_norm = mean(appearance_data); +stds_norm = std(appearance_data); + +normed_data = bsxfun(@times, bsxfun(@plus, appearance_data, -means_norm), 1./stds_norm); + +%% Creating a generic model +[PC, score, eigen_vals] = princomp(normed_data, 'econ'); + +% Keep 95 percent of variability +total_sum = sum(eigen_vals); +count = numel(eigen_vals); +for i=1:numel(eigen_vals) + if ((sum(eigen_vals(1:i)) / total_sum) >= 0.95) + count = i; + break; + end +end + +PC = PC(:,1:count); + +save('generic_face_rigid.mat', 'PC', 'means_norm', 'stds_norm'); + +%% Creating a lower face model +normed_data_lower_face = normed_data; +normed_data_lower_face(:, 1:5*12*31) = 0; + +[PC, score, eigen_vals] = princomp(normed_data_lower_face, 'econ'); + +% Keep 98 percent of variability +total_sum = sum(eigen_vals); +count = numel(eigen_vals); +for i=1:numel(eigen_vals) + if ((sum(eigen_vals(1:i)) / total_sum) >= 0.98) + count = i; + break; + end +end + +PC = PC(:,1:count); + +save('generic_face_lower.mat', 'PC', 'means_norm', 'stds_norm'); + +%% Creating an upper face model +normed_data_upper_face = normed_data; +normed_data_upper_face(:, end-5*12*31+1:end) = 0; + +[PC, score, eigen_vals] = princomp(normed_data_upper_face, 'econ'); + +% Keep 98 percent of variability +total_sum = sum(eigen_vals); +count = numel(eigen_vals); +for i=1:numel(eigen_vals) + if ((sum(eigen_vals(1:i)) / total_sum) >= 0.98) + count = i; + break; + end +end + +PC = PC(:,1:count); + +save('generic_face_upper.mat', 'PC', 'means_norm', 'stds_norm'); \ No newline at end of file diff --git a/matlab_version/AU_training/pca_generation/generic_face_lower.mat b/matlab_version/AU_training/pca_generation/generic_face_lower.mat new file mode 100644 index 00000000..f950b23b Binary files /dev/null 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 a7f09c5c..5f179895 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 new file mode 100644 index 00000000..0cde2d4e Binary files /dev/null and b/matlab_version/AU_training/pca_generation/generic_face_upper.mat differ