Fixing gaze visualization, making sure the tests still run correctly. Adding other AU datasets for testing.

This commit is contained in:
Tadas Baltrusaitis 2016-12-06 13:02:45 -05:00
parent 6499412259
commit d0cf22969c
8 changed files with 13 additions and 13 deletions

View file

@ -559,9 +559,10 @@ namespace OpenFaceOffline
nonRigidGraph.Update(non_rigid_params); nonRigidGraph.Update(non_rigid_params);
// Update eye gaze // Update eye gaze
GazeXLabel.Content = gaze_angle.Item1 * (180.0 / Math.PI); String x_angle = String.Format("{0:F0}°", gaze_angle.Item1 * (180.0 / Math.PI));
GazeYLabel.Content = gaze_angle.Item2 * (180.0 / Math.PI); String y_angle = String.Format("{0:F0}°", gaze_angle.Item2 * (180.0 / Math.PI));
GazeXLabel.Content = x_angle;
GazeYLabel.Content = y_angle;
} }
if (show_tracked_video) if (show_tracked_video)
@ -695,7 +696,7 @@ namespace OpenFaceOffline
// ---------------------------------------------------------- // ----------------------------------------------------------
// Recording helpers (TODO simplify) // Recording helpers
private void SetupRecording(String root, String filename, int width, int height, bool output_2D_landmarks, bool output_3D_landmarks, private void SetupRecording(String root, String filename, int width, int height, bool output_2D_landmarks, bool output_3D_landmarks,
bool output_model_params, bool output_pose, bool output_AUs, bool output_gaze) bool output_model_params, bool output_pose, bool output_AUs, bool output_gaze)

View file

@ -302,7 +302,7 @@ public:
clnf->GetPose(pose_list, fx, fy, cx, cy); clnf->GetPose(pose_list, fx, fy, cx, cy);
cv::Vec6d pose(pose_list[0], pose_list[1], pose_list[2], pose_list[3], pose_list[4], pose_list[5]); cv::Vec6d pose(pose_list[0], pose_list[1], pose_list[2], pose_list[3], pose_list[4], pose_list[5]);
cv::Vec2d gaze_angle = FaceAnalysis::GetGazeAngle(*gazeDirection0, *gazeDirection1, pose); *gazeAngle = FaceAnalysis::GetGazeAngle(*gazeDirection0, *gazeDirection1, pose);
// Grab pupil locations // Grab pupil locations
int part_left = -1; int part_left = -1;

View file

@ -163,7 +163,6 @@ cv::Vec2d FaceAnalysis::GetGazeAngle(cv::Point3f& gaze_vector_1, cv::Point3f& ga
cv::Vec3d eulerAngles(head_pose(3), head_pose(4), head_pose(5)); cv::Vec3d eulerAngles(head_pose(3), head_pose(4), head_pose(5));
cv::Matx33d rotMat = LandmarkDetector::Euler2RotationMatrix(eulerAngles); cv::Matx33d rotMat = LandmarkDetector::Euler2RotationMatrix(eulerAngles);
cv::Point3f gaze_point = (gaze_vector_1 + gaze_vector_2) / 2; cv::Point3f gaze_point = (gaze_vector_1 + gaze_vector_2) / 2;
double gaze_diff = acos(gaze_vector_1.dot(gaze_vector_2));
cv::Vec3d gaze(gaze_point.x, gaze_point.y, gaze_point.z); cv::Vec3d gaze(gaze_point.x, gaze_point.y, gaze_point.z);
gaze = rotMat * gaze; gaze = rotMat * gaze;

View file

@ -1,11 +1,11 @@
AU1 class, Precision - 0.501, Recall - 0.521, F1 - 0.511 AU1 class, Precision - 0.500, Recall - 0.522, F1 - 0.511
AU2 class, Precision - 0.379, Recall - 0.451, F1 - 0.412 AU2 class, Precision - 0.380, Recall - 0.450, F1 - 0.412
AU4 class, Precision - 0.459, Recall - 0.503, F1 - 0.480 AU4 class, Precision - 0.459, Recall - 0.503, F1 - 0.480
AU6 class, Precision - 0.738, Recall - 0.774, F1 - 0.755 AU6 class, Precision - 0.738, Recall - 0.774, F1 - 0.755
AU7 class, Precision - 0.762, Recall - 0.732, F1 - 0.747 AU7 class, Precision - 0.762, Recall - 0.732, F1 - 0.747
AU10 class, Precision - 0.847, Recall - 0.842, F1 - 0.844 AU10 class, Precision - 0.847, Recall - 0.842, F1 - 0.844
AU12 class, Precision - 0.888, Recall - 0.816, F1 - 0.850 AU12 class, Precision - 0.888, Recall - 0.816, F1 - 0.850
AU14 class, Precision - 0.547, Recall - 0.807, F1 - 0.652 AU14 class, Precision - 0.547, Recall - 0.807, F1 - 0.652
AU15 class, Precision - 0.402, Recall - 0.416, F1 - 0.409 AU15 class, Precision - 0.396, Recall - 0.419, F1 - 0.407
AU17 class, Precision - 0.632, Recall - 0.592, F1 - 0.611 AU17 class, Precision - 0.630, Recall - 0.593, F1 - 0.611
AU23 class, Precision - 0.338, Recall - 0.597, F1 - 0.431 AU23 class, Precision - 0.338, Recall - 0.597, F1 - 0.431

View file

@ -2,4 +2,4 @@ AU6 results - rms 0.863, corr 0.780, ccc - 0.735
AU10 results - rms 1.035, corr 0.738, ccc - 0.684 AU10 results - rms 1.035, corr 0.738, ccc - 0.684
AU12 results - rms 0.814, corr 0.867, ccc - 0.834 AU12 results - rms 0.814, corr 0.867, ccc - 0.834
AU14 results - rms 1.107, corr 0.531, ccc - 0.486 AU14 results - rms 1.107, corr 0.531, ccc - 0.486
AU17 results - rms 0.834, corr 0.592, ccc - 0.487 AU17 results - rms 0.834, corr 0.592, ccc - 0.488

View file

@ -98,7 +98,7 @@ end
%% %%
f = fopen('results/UNBC_valid_res_int.txt', 'w'); f = fopen('results/UNBC_valid_res_int.txt', 'w');
ints_cccs = zeros(1, numel(aus_UNBC); ints_cccs = zeros(1, numel(aus_UNBC));
for au = 1:numel(aus_UNBC) for au = 1:numel(aus_UNBC)
[ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all_int(:, inds_au_int(au)), labels_gt(:,au)); [ accuracies, F1s, corrs, ccc, rms, classes ] = evaluate_au_prediction_results( preds_all_int(:, inds_au_int(au)), labels_gt(:,au));

View file

@ -1,2 +1,2 @@
Mean error, median error Mean error, median error
9.431, 8.733 9.428, 8.730