From cb229ad50b2b9175e0dd19129bce24b2ff34309d Mon Sep 17 00:00:00 2001 From: Tadas Baltrusaitis Date: Sat, 4 Nov 2017 20:57:24 +0000 Subject: [PATCH] More recorder simplification. --- exe/FeatureExtraction/FeatureExtraction.cpp | 36 +------------------ lib/local/Recorder/Recorder.vcxproj | 1 + lib/local/Recorder/Recorder.vcxproj.filters | 3 ++ .../include/RecorderOpenFaceParameters.h | 12 ++++--- lib/local/Recorder/src/RecorderOpenFace.cpp | 10 +++--- 5 files changed, 17 insertions(+), 45 deletions(-) diff --git a/exe/FeatureExtraction/FeatureExtraction.cpp b/exe/FeatureExtraction/FeatureExtraction.cpp index a2f8a01..bb08175 100644 --- a/exe/FeatureExtraction/FeatureExtraction.cpp +++ b/exe/FeatureExtraction/FeatureExtraction.cpp @@ -557,12 +557,8 @@ int main (int argc, char **argv) return 0; } -void get_output_feature_params(vector &output_similarity_aligned, vector &output_hog_aligned_files, bool& visualize_track, - bool& visualize_align, bool& visualize_hog, bool &output_2D_landmarks, bool &output_3D_landmarks, bool &output_model_params, - bool &output_pose, bool &output_AUs, bool &output_gaze, vector &arguments) +void get_visualization_params(bool& visualize_track, bool& visualize_align, bool& visualize_hog,vector &arguments) { - output_similarity_aligned.clear(); - output_hog_aligned_files.clear(); bool* valid = new bool[arguments.size()]; @@ -632,36 +628,6 @@ void get_output_feature_params(vector &output_similarity_aligned, vector visualize_track = true; valid[i] = false; } - else if (arguments[i].compare("-no2Dfp") == 0) - { - output_2D_landmarks = false; - valid[i] = false; - } - else if (arguments[i].compare("-no3Dfp") == 0) - { - output_3D_landmarks = false; - valid[i] = false; - } - else if (arguments[i].compare("-noMparams") == 0) - { - output_model_params = false; - valid[i] = false; - } - else if (arguments[i].compare("-noPose") == 0) - { - output_pose = false; - valid[i] = false; - } - else if (arguments[i].compare("-noAUs") == 0) - { - output_AUs = false; - valid[i] = false; - } - else if (arguments[i].compare("-noGaze") == 0) - { - output_gaze = false; - valid[i] = false; - } } for (int i = arguments.size() - 1; i >= 0; --i) diff --git a/lib/local/Recorder/Recorder.vcxproj b/lib/local/Recorder/Recorder.vcxproj index 57ff119..371b48b 100644 --- a/lib/local/Recorder/Recorder.vcxproj +++ b/lib/local/Recorder/Recorder.vcxproj @@ -142,6 +142,7 @@ + diff --git a/lib/local/Recorder/Recorder.vcxproj.filters b/lib/local/Recorder/Recorder.vcxproj.filters index e1d4e26..5544754 100644 --- a/lib/local/Recorder/Recorder.vcxproj.filters +++ b/lib/local/Recorder/Recorder.vcxproj.filters @@ -24,6 +24,9 @@ Source Files + + Source Files + diff --git a/lib/local/Recorder/include/RecorderOpenFaceParameters.h b/lib/local/Recorder/include/RecorderOpenFaceParameters.h index 33dc666..2566f3e 100644 --- a/lib/local/Recorder/include/RecorderOpenFaceParameters.h +++ b/lib/local/Recorder/include/RecorderOpenFaceParameters.h @@ -47,14 +47,13 @@ using namespace std; namespace Recorder { - struct RecorderOpenFaceParameters + class RecorderOpenFaceParameters { + public: // Constructors RecorderOpenFaceParameters(); - RecorderOpenFaceParameters(vector &arguments, double fps_vid_out = 30, std::string output_codec = "DIVX"); - - + RecorderOpenFaceParameters(std::vector &arguments, double fps_vid_out = 30, std::string output_codec = "DIVX"); bool isSequence() const { return is_sequence; } bool output2DLandmarks() const { return output_2D_landmarks; } @@ -91,8 +90,11 @@ namespace Recorder // Some video recording parameters std::string output_codec; double fps_vid_out; + + // For output location + std::string output_root = ""; }; } -#endif // __FACE_ANALYSER_PARAM_H +#endif // ____RECORDER_OPENFACE_PARAM_H diff --git a/lib/local/Recorder/src/RecorderOpenFace.cpp b/lib/local/Recorder/src/RecorderOpenFace.cpp index d960df2..b5110a5 100644 --- a/lib/local/Recorder/src/RecorderOpenFace.cpp +++ b/lib/local/Recorder/src/RecorderOpenFace.cpp @@ -118,7 +118,7 @@ void RecorderOpenFace::SetObservationVisualization(const cv::Mat &vis_track) std::string output_codec = params.outputCodec(); try { - video_writer.open(video_filename, CV_FOURCC(output_codec[0], output_codec[1], output_codec[2], output_codec[3]), fps_vid_out, vis_track.size(), true); + video_writer.open(video_filename, CV_FOURCC(output_codec[0], output_codec[1], output_codec[2], output_codec[3]), params.outputFps(), vis_track.size(), true); } catch (cv::Exception e) { @@ -141,20 +141,20 @@ void RecorderOpenFace::WriteObservation() if(observation_count == 1) { - csv_recorder.Open(csv_filename, output_2D_landmarks, output_3D_landmarks, output_model_params, output_pose, - output_AUs, output_gaze, num_face_landmarks, num_model_modes, num_eye_landmarks, au_names_class, au_names_reg); + csv_recorder.Open(csv_filename, params.output2DLandmarks(), params.output3DLandmarks(), params.outputPDMParams(), params.outputPose(), + params.outputAUs(), params.outputGaze(), num_face_landmarks, num_model_modes, num_eye_landmarks, au_names_class, au_names_reg); } this->csv_recorder.WriteLine(observation_count, timestamp, landmark_detection_success, landmark_detection_confidence, landmarks_2D, landmarks_3D, pdm_params_local, pdm_params_global, head_pose, gaze_direction0, gaze_direction1, gaze_angle, eye_landmarks, au_intensities, au_occurences); - if(output_hog) + if(params.outputHOG()) { this->hog_recorder.Write(); } - if(output_tracked_video) + if(params.outputTrackedVideo()) { if (vis_to_out.empty()) {