diff --git a/.gitignore b/.gitignore index 953a39e..52d089c 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 e45f9b9..ac9ec43 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 3c3d46d..05ffe83 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 20f275b..979ece1 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 97f1ffb..4d9504a 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 0000000..d81b6c8 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 0000000..cdd15a1 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 0000000..f8afb26 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 0000000..2690abe 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 ad1b61b..0000000 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 0000000..d31141a 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 0000000..b1869db 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 0000000..79afec4 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 2fe049b..0000000 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 0000000..cd42859 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 cbc2f54..0000000 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 0000000..3299610 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 0000000..c4639da 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 0000000..ea123c8 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 0000000..fe091ad 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 d805935..0000000 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 0000000..9f085a0 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 0000000..b35708b 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 0000000..f2cddb4 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 0000000..c8def81 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 0000000..03f5b23 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 0000000..6ee8a52 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 0e978e3..0000000 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 0000000..6cd620a 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 0000000..fd0a99e 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 0000000..d53c4c2 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 0000000..97fed7e 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 0000000..e62fc01 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 dbba587..0000000 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 0000000..1d45f7a 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 33a1af8..0000000 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 0000000..578f599 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 0000000..8e13be5 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 0000000..55f7b92 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 1fe4229..0000000 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 0000000..a887b0b 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 498d034..0000000 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 0000000..87cb54c 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 0000000..7b44fe3 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 0000000..462b818 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 0000000..e90adf5 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 0000000..0643e7e 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 0000000..b709929 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 0000000..77a14d2 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 0000000..f2e74fa 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 0000000..52673b7 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 0000000..574057b 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 1f4fcb4..0000000 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 0000000..2e3975d 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 0000000..fb5f4e4 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 0000000..45fcb68 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 eb5dbcc..0000000 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 0000000..b0d9d43 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 0000000..4a445e4 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 0000000..2528743 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 0000000..6089521 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 0000000..da3f8bf 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 0000000..140366d 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 0000000..5d1bc60 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 0000000..a023e7a 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 0000000..c2c5fb6 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 0000000..e98b274 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 14c5e68..0000000 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 0000000..31976cf 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 0000000..ba35817 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 d3bb30b..6228995 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 ba6e346..94ae1cf 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 9569e9b..2cd767c 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 0000000..bd8d37b --- /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 f42fad2..f6bdded 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 0000000..fbdcde8 --- /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 0000000..39c101e --- /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 1c0a45b..5474f68 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 0000000..8659812 --- /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 0000000..80d0518 --- /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 0000000..fbdcde8 --- /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 0000000..832feef --- /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 2499311..6c51aff 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 0000000..39c101e --- /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 8e38f2f..1e56805 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 99ce130..05f3f66 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 2c4bfd6..dae8fba 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 e4b45af..06aa882 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 e4b45af..06aa882 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 3b0f71e..2b023a1 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 2167bd5..6ea1e52 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 2fbd16a..381143d 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 2fbd16a..381143d 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 01d450d..3c340db 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 0b44001..a7d47be 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 43ddeb2..322b3f7 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 43ddeb2..322b3f7 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 693435a..6a0b383 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 fc88564..ec09ccd 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 5687420..c2a8662 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 5687420..c2a8662 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 8094929..5910532 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 028b044..7172244 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 5ec09d6..7a544b1 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 46f374c..40e5a19 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 37cdb3d..c4a77fd 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 fe0c157..1c6516a 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 f6532b5..a1c064c 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 af0da29..f7da0d2 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 8019114..f406992 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 6e37f64..a8b5abb 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 f07d541..288db4f 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 6ca8b19..f6e94fa 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 2d03103..67af3a3 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 635e3a0..95bcef6 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 7be5f50..d5bf4d3 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 9c09a39..646f107 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 b935de4..4e1a516 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 95fc88b..12ef667 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 9dc90bf..7ea2d0d 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 f2f953a..76da8d3 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 70e1a86..e6643b1 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 ca5313b..8c13724 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 d223606..c91740c 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 3115dfa..a541ec7 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 8dd0372..509564f 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 baa6d4f..279b1df 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 52d2837..71c19cf 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 80b7cb4..f6cfd46 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 e2dfd2a..668cfce 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 a111e8f..eed2cf8 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 9bfad69..ace61ea 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 de47b01..a82d591 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 3f57593..c97bdae 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 ebe2017..b3c037c 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 c2a5b30..6675737 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 1407a18..3f798c2 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 3cf4e6e..6f15015 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 fda54c8..d9c968c 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 165c0ae..ce868f8 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 32e0ec0..71d39d5 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 5404e4b..2fc079b 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 fb7ec9c..d03acab 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 4167bda..5a6b018 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 d42ef74..eac486e 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 d7505f8..df9cb6c 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 6328ab7..4a37097 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 c1df73a..b325e1f 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 ef60fd9..8d10da2 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 4215b39..851e725 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 f7834bf..d620ca1 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 da0af27..5776b1e 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 7e28bbb..9ce775d 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 0000000..a8c4e83 --- /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 0000000..a6a877e --- /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 0000000..3d9acc7 --- /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 0000000..0e0182f --- /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 0000000..902f203 --- /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 0000000..d406283 --- /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 0000000..735e0a7 --- /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 0000000..507bd5d --- /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 0000000..efde2c6 --- /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 0000000..287a8e5 --- /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 0000000..a7b6be2 --- /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 0000000..dda2133 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 0000000..b8759d0 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 0000000..851cfe8 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 0000000..92d7e79 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 0000000..ffec6b3 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 0000000..abb8a8b 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 0000000..421c79a 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 0000000..c2b9901 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 0000000..f9697e5 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 0000000..fada049 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 0000000..cfb1bbf 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 0000000..66937e8 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 0000000..b40f5de 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 0000000..96af31b 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 0000000..ed03a93 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 0000000..8bccef8 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 0000000..6e457e1 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 0000000..48a468e 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 0000000..7960d9f 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 0000000..69f406f 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 0000000..22d2053 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 0000000..842f8c1 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 0000000..9317afa 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 0000000..15704c7 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 0000000..18664c1 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 0000000..683d191 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 0000000..bc17be6 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 0000000..657b5fb 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 0000000..86bd168 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 0000000..1e03fb6 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 0000000..b9243ff 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 0000000..646d5e0 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 0000000..ccaf651 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 0000000..623e84d 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 0000000..47c8c5e 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 0000000..0fe52b3 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 0000000..d347325 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 0000000..dc390cd 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 0000000..6f5e950 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 0000000..3e7e296 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 0000000..53fd6e9 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 0000000..e446573 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 0000000..5f25544 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 0000000..6ca52c7 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 0000000..14b25da 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 0000000..df4a186 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 0000000..f0a0238 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 0000000..2d759be 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 0000000..fe867f8 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 0000000..9349320 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 0000000..a87867a 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 0000000..6a66f2b 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 0000000..0db8868 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 0000000..cf7c9c4 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 0000000..edebec7 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 0000000..2e7fd69 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 0000000..404302b 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 0000000..407be27 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 0000000..a751f56 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 0000000..8783573 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 0000000..e0b8151 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 0000000..150d0b3 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 0000000..e9a42ec 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 0000000..edc7bcc 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 0000000..16271be 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 0000000..c7d64ac 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 0000000..0004015 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 0000000..46a63ba 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 0000000..3e47b42 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 0000000..d97a19d 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 0000000..1bb9c2b 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 0000000..da7475f 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 0000000..f317e7a 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 0000000..f246c41 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 0000000..9572ee4 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 0000000..ddca8c6 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 0000000..79de776 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 0000000..6ff9842 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 0000000..ff7050d 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 0000000..3a9c64e 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 0000000..da80d45 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 0000000..ddf6f63 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 0000000..5a1e1a6 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 0000000..2d827ac 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 0000000..921a438 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 0000000..55feffd 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 0000000..b0de536 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 0000000..7d40dbe 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 0000000..3a16e35 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 0000000..7bcb800 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 0000000..8d19660 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 0000000..630f7be 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 0000000..b9eb5af 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 0000000..72c9da9 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 0000000..a3096e3 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 0000000..4c5dffe 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 0000000..d70a417 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 0000000..baaf24e 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 0000000..cc542b9 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 0000000..6e84a8f 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 0000000..24943be 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 0000000..5d54804 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 0000000..816ae27 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 0000000..9e6ce09 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 0000000..834a296 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 0000000..b1b77b4 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 0000000..0b1290f 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 0000000..db1a2ee 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 0000000..0b62d1e 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 0000000..82920f9 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 0000000..fb54b2d 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 0000000..90dc17f 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 0000000..1562c61 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 0000000..7dbc7a6 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 0000000..b220a8c 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 0000000..33a0413 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 0000000..f76c0b3 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 0000000..55bf470 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 0000000..c29fadf 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 0000000..65f69bf 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 0000000..1b973fe 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 0000000..20916ab 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 0000000..eb69398 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 0000000..9f465f8 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 0000000..690c066 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 0000000..70a57e9 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 0000000..a8959cc 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 0000000..4a6f7a1 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 0000000..bb2fa72 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 0000000..f37e528 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 0000000..ace7fc5 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 0000000..dc7ecf1 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 0000000..5ac9d6d 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 0000000..41fb543 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 0000000..c23acd9 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 0000000..6707ddc 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 0000000..92becc5 --- /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 ce3e8e1..cbe7aea 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 cfa8bcd..6528cd7 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 57f3506..65d56b3 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 675df12..4b9a5b7 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 83ff19f..be89c18 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 4ef5fe5..b4fd6e0 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 85a9daa..f70c191 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 97af712..b3e0f92 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 dd4922c..4341e1d 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 0161ac4..c1c69dd 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 7b13cd0..cdd6762 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 ec44121..4dfd27a 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 fad99cc..cc1213b 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 ab33ec8..39e655b 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 cfbb9b2..0000000 --- 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 a9856c5..84eba1e 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 1e659d6..41fd362 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 3b0729f..78c2543 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 45f6dc9..1fe9bd5 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 7920bb3..7a705ac 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 e5a1b25..9fe50e9 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 cfd6dd9..5db9f4f 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 3e66e82..6b03f1c 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 56f3833..a35c818 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 92993a4..b7fb4a4 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 75d0dc7..10547b5 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 bc131f1..cea4d5a 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 b2cd75f..27c77d1 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 e0a8e1e..e91f6f5 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 b5e618c..742020b 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 e05f801..30f14b8 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 fa42dcc..f81e393 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 e8df04c..76215e0 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 6a14284..f69b063 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 67bc1e4..e6214c6 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 61b9201..629047a 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 8ecfd0d..81ae18d 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 df91cf5..76f1046 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 21b5644..f436d98 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 0a6480f..bf59c1b 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 a3ec95b..7f8f49e 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 fb0b00e..1d40dcc 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 ea62bcc..c340ca0 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 f59f22e..ab9a13c 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 67b7e38..fa46462 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 0000000..dfe87f3 --- /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 7501ae4..25a255f 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 3c2cc79..2bebe0f 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 be878e9..9f36672 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 12812dd..77eef41 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 cbd47b6..e9d188c 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 adb6a61..212ed98 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 b6d65d8..148b7cd 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 2d9d47b..ba82851 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 76d770c..3de891a 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 31303d4..0032a44 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 1a92432..f686beb 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 d8bb4a6..a9e547b 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 c374c63..e1bd095 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 f081680..deb9d94 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 4f947fa..60badc9 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 51779eb..b06d5c9 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 8668632..5987598 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 50fcf0d..56c26cb 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 b878ae1..e81b162 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 b4326f5..a44a382 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 0337d72..6f64468 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 915fc24..ede5505 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 28456d7..8d7c658 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 eb8b566..83bf942 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 b768263..6821450 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 c99b2e7..bb7f5a7 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 416c39b..3af13d4 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 1d78f60..e32103b 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 b8412bd..72e0168 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 d6aa853..053128b 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 ca567a2..ca16c54 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 0a866a0..35b1033 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 e56a969..6bae36e 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 fa79b31..2b1aa53 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 f658321..0b557cb 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 29d4f6f..5d5114e 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 02feb94..50193ca 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 34d8b6c..3a369cd 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 6f1c4c0..e11f7e5 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 d76750e..96dd155 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 aea15a9..f11c808 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 cfdb38d..5d5a246 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 5588d4e..f1954f3 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 426deff..2dff07a 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 51012b8..c7fe26d 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 20358e1..dd631ce 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 4fc3232..df7fa1a 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 d364781..906e206 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 cd713f1..bb1c674 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 9e19b88..4f90a63 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 13f44ca..bfaa989 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 1e115bc..26235d6 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 903cb40..275df3c 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 62436fc..32ae98e 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 c280831..3dd8401 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 7055103..1977f94 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 b193447..d53c4c2 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 a1c3b27..97fed7e 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 e216dc1..827a220 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 4c9f4a1..f90ec88 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 3a8ddbf..2e92ca2 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 5c61585..dc01048 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 a5dcc99..834ed4f 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 69b06c4..a3139a1 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 ff99ac0..c943dcd 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 ef347cb..92e4477 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 51a7fce..4a1ee7a 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 01aa51f..f83b4c5 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 1122954..33a2e29 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 42bbaa4..9b54ed6 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 8fc81e7..dbdec3e 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 33e3fec..6b76c41 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 1d88502..2c60954 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 a4867b3..f5dbd84 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 0000000..a5dcc99 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 0000000..69b06c4 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 0000000..ff99ac0 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 0000000..ef347cb 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 0000000..51a7fce 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 0000000..01aa51f 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 0000000..1122954 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 0000000..42bbaa4 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 0000000..8fc81e7 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 0000000..33e3fec 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 0000000..1d88502 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 0000000..a4867b3 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 05fe483..6ada175 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 83e0a42..1c5e231 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 6b97724..2875a92 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 eb2ccab..00a9bd2 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 9bb482c..bc6e73e 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 1dc39a8..a51a7dd 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 3e8af6d..03fcbeb 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 56f58de..ce8a3d4 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 7d5613e..5139668 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 7744ebd..6653c6d 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 672e654..8a7cc72 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 9225def..cf17174 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 f703a65..25b7495 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 dd774ba..afed975 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 296bfd0..3237f48 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 e16c8ba..601c595 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 feaf8a0..7491a0b 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 82f37f4..7dd79fa 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 6167021..88b92f0 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 fcf039e..a68e4f2 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 81eced4..2171137 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 3cff32a..dfafbbf 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 6ef768e..14e1323 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 01b7271..0695a0d 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 19d90c0..5ba6355 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 e45d03d..77489d3 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 50a0db1..4f3b8f2 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 34727f5..62a4128 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 dc5717a..47231d6 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 56eaad6..b7489f3 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 234302e..9ccad00 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 693eb7e..f854cb9 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 3ed6a9a..cbcf202 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 9cb663b..bc78d69 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 8cb6014..162dc7f 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 b1b4b97..2319e1e 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 d579857..4d9f196 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 5d1a072..8fa0a93 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 5fdb7dd..af8c2f2 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 b7110ce..4f90cb7 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 e68030a..6d0e5a7 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 384b31d..1082333 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 fe6331e..bd2c0db 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 8a1f65b..e86585c 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 12aa6c1..e15633b 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 ec11d09..6ee38bd 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 54b6366..cb241d3 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 ed6985e..646f75f 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 c720816..0322f0d 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 82eafe9..790830e 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 e1af8c0..65f636d 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 f5ec22e..7412075 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 9e7a42a..bc0a56c 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 26ca23a..63b92ae 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 7a96bcf..b55a6a9 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 9ed3f71..d5e4cd7 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 2e7e0f9..87d402b 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 b64e357..d05cc2f 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 3123ba4..d81b6c8 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 7dcbc73..cdd15a1 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 04a8b72..f8afb26 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 8bb9b1d..2690abe 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 693435a..d31141a 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 fc88564..b1869db 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 38dace7..79afec4 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 496871b..cd42859 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 59c9671..3299610 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 747f2a0..c4639da 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 4063081..ea123c8 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 1b64ae7..fe091ad 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 9583f7c..9f085a0 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 942dfd8..b35708b 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 8019114..f2cddb4 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 6e37f64..c8def81 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 44f4597..03f5b23 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 8f45741..6ee8a52 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 f9d24dc..6cd620a 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 fc3689c..fd0a99e 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 b193447..d53c4c2 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 a1c3b27..97fed7e 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 5a40bc9..e62fc01 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 80fa150..1d45f7a 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 3a8ddbf..578f599 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 5c61585..8e13be5 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 75239db..55f7b92 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 c07524c..a887b0b 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 9209839..87cb54c 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 6161741..7b44fe3 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 cdbb3c9..462b818 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 f65e4a4..e90adf5 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 ebc38a1..0643e7e 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 42c5f1f..b709929 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 b85a669..77a14d2 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 b873398..f2e74fa 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 3ba4c23..c8c6dd4 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 58b276f..b67f67a 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 0000000..910625e 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 0000000..9b298ec 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 a2f0e24..d10e79e 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 91bd435..ebe82df 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 0000000..104b395 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 0000000..f379ae1 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 3610b6a..6a0bf8a 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 d1ca0c2..8a6f820 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 0000000..032cb04 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 32a8cae..e328d3f 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 e0bc695..be44649 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 0000000..48ac1bb 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 0000000..84afa37 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 a8c2df3..85af493 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 6b2a20a..c99c7e3 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 0000000..7fd0f9d 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 0000000..a312f96 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 b3548d4..54adea5 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 13fda33..1ae1490 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 0000000..c87c47a 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 0000000..28922ba 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 9d081bb..38d792c 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 1ee4142..d992382 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 0000000..7d5c064 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 67c73e6..2ffc1ab 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 d71e476..1549f75 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 0000000..6ece972 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 0000000..bc3dfa6 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 7534d05..b1b0597 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 35adbc6..69fa172 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 0000000..ad45a71 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 0000000..191841f 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 1df8352..f7365f6 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 b888773..c72f221 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 0000000..acd2f84 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 0000000..988bfa8 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 43bd05c..2bd01d6 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 244d8b4..0175ac9 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 0a45b94..684793d 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 32c5466..84e08de 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 0000000..6654a2a 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 0000000..6dc73d0 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 f8992a9..4125804 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 b46ccdb..72e5b00 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 0000000..fa37c86 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 0000000..bb73dad 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 8bb36b2..23216cd 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 cf4252c..11d03b1 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 0000000..62c1e45 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 0000000..78c83d1 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 c1c0790..5e64a61 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 3dba130..d38060b 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 0000000..783c159 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 54e3f7e..c87a82f 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 863a732..8db28a1 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 0000000..8b46c3b 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 0000000..8fe157d 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 354b913..6de0ecd 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 9fc9165..73d136f 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 0000000..cdca964 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 0000000..99cdb9a 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 b8118eb..6fd4349 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 def8a74..ebd21b0 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 0000000..7d8daf0 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 0000000..28f36cd 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 0000000..40f7896 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 0000000..fb6ba2d 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 0000000..5d20143 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 0000000..3b05208 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 0000000..7c9bbcf 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 0000000..ab78a41 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 0000000..bead3df 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 0000000..146cd1a 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 0000000..4b4b7d7 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 0000000..8af1863 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 0000000..9d9f6c2 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 0000000..e2389cc 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 0000000..53d3f7f 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 0000000..f07abd1 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 0000000..abeb583 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 0000000..fb6ab68 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 0000000..f71b45c 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 0000000..b3e961e 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 0000000..09c8f55 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 0000000..2686499 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 0000000..3b78474 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 0000000..ec3a152 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 0000000..bb99d37 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 0000000..7a9e6d7 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 0000000..0cbe237 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 0000000..d39a871 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 0000000..37f41d8 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 0000000..8d4b72b 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 0000000..0a14d7c 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 0000000..377ad55 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 0000000..069d12c 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 0000000..243f792 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 0000000..412da99 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 0000000..4bc2a9a 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 0000000..f5783f5 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 0000000..fd66447 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 0000000..52673b7 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 0000000..31307e4 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 0000000..574057b 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 0000000..2e3975d 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 0000000..6f4edb2 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 0000000..fb5f4e4 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 0000000..ae8011f 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 0000000..45fcb68 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 0000000..d9c141c 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 0000000..b0d9d43 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 0000000..4a445e4 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 0000000..bd94fdf 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 0000000..2528743 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 0000000..6089521 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 0000000..a1d09c4 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 0000000..668d0d3 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 0000000..da3f8bf 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 0000000..6c00d71 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 0000000..140366d 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 0000000..80c97d4 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 0000000..5d1bc60 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 0000000..2bd6c98 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 0000000..a023e7a 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 0000000..c2c5fb6 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 0000000..89b24fa 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 0000000..e98b274 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 0000000..6421426 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 0000000..31976cf 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 0000000..ba35817 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 4c1b3e5..6df6653 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 0000000..36ad384 --- /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 0000000..d9ed871 --- /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 9b892f6..979717d 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 5bc86b7..fa8f9f2 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 60b6c47..83b67d9 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 0000000..a852c68 --- /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 4083410..f91cba4 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 fac36df..ae13f4c 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 ceb215b..0000000 --- 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 e45d4f6..e030132 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 ce1cebd..107cdc2 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 0a3a449..60c1d5a 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 0000000..9178dba --- /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 0000000..f950b23 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 a7f09c5..5f17989 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 0000000..0cde2d4 Binary files /dev/null and b/matlab_version/AU_training/pca_generation/generic_face_upper.mat differ