diff --git a/exe/FeatureExtraction/FeatureExtraction.cpp b/exe/FeatureExtraction/FeatureExtraction.cpp index 96bb3b1..fc959e1 100644 --- a/exe/FeatureExtraction/FeatureExtraction.cpp +++ b/exe/FeatureExtraction/FeatureExtraction.cpp @@ -200,9 +200,6 @@ int main (int argc, char **argv) // Work out the pose of the head from the tracked model cv::Vec6d pose_estimate = LandmarkDetector::GetPose(face_model, sequence_reader.fx, sequence_reader.fy, sequence_reader.cx, sequence_reader.cy); - // Drawing the visualization on the captured image - visualise_tracking(captured_image, face_model, det_parameters, gazeDirection0, gazeDirection1, sequence_reader.fx, sequence_reader.fy, sequence_reader.cx, sequence_reader.cy); - // Displaying the tracking visualizations visualizer.SetImage(captured_image, sequence_reader.fx, sequence_reader.fy, sequence_reader.cx, sequence_reader.cy); visualizer.SetObservationFaceAlign(sim_warped_img); diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp index 54a2558..6359254 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp @@ -813,11 +813,11 @@ vector Calculate3DEyeLandmarks(const CLNF& clnf_model, double fx, d auto lmks = clnf_model.hierarchical_models[i].GetShape(fx, fy, cx, cy); - int num_landmarks = lmks.rows / 3; + int num_landmarks = lmks.cols; for (int lmk = 0; lmk < num_landmarks; ++lmk) { - cv::Point3d curr_lmk(lmks.at(lmk), lmks.at(lmk + num_landmarks), lmks.at(lmk + 2 * num_landmarks)); + cv::Point3d curr_lmk(lmks.at(0, lmk), lmks.at(1, lmk), lmks.at(2, lmk)); to_return.push_back(curr_lmk); } } diff --git a/lib/local/Utilities/src/Visualizer.cpp b/lib/local/Utilities/src/Visualizer.cpp index c5b0ded..231b57e 100644 --- a/lib/local/Utilities/src/Visualizer.cpp +++ b/lib/local/Utilities/src/Visualizer.cpp @@ -99,7 +99,10 @@ void Visualizer::SetObservationFaceAlign(const cv::Mat& aligned_face) void Visualizer::SetObservationHOG(const cv::Mat_& hog_descriptor, int num_cols, int num_rows) { - Visualise_FHOG(hog_descriptor, num_rows, num_cols, this->hog_image); + if(vis_hog) + { + Visualise_FHOG(hog_descriptor, num_rows, num_cols, this->hog_image); + } } @@ -173,6 +176,13 @@ void Visualizer::SetObservationGaze(const cv::Point3f& gaze_direction0, const cv if (i == 27) next_point = 20; + if (i == 7 + 28) + next_point = 0 + 28; + if (i == 19 + 28) + next_point = 8 + 28; + if (i == 27 + 28) + next_point = 20 + 28; + cv::Point nextFeaturePoint(cvRound(eye_landmarks2d[next_point].x * (double)draw_multiplier), cvRound(eye_landmarks2d[next_point].y * (double)draw_multiplier)); if (i < 8 || i > 19) cv::line(captured_image, featurePoint, nextFeaturePoint, cv::Scalar(255, 0, 0), thickness_2, CV_AA, draw_shiftbits); @@ -190,7 +200,7 @@ void Visualizer::SetObservationGaze(const cv::Point3f& gaze_direction0, const cv for (size_t i = 0; i < 8; ++i) { pupil_left = pupil_left + eye_landmarks3d[i]; - pupil_right = pupil_right + eye_landmarks3d[i + eye_landmarks3d.size()]; + pupil_right = pupil_right + eye_landmarks3d[i + eye_landmarks3d.size()/2]; } pupil_left = pupil_left / 8; pupil_right = pupil_right / 8; @@ -224,7 +234,6 @@ void Visualizer::ShowObservation() { cv::namedWindow("tracking_result", 1); cv::imshow("tracking_result", captured_image); - cv::waitKey(1); } if (vis_align) { @@ -234,6 +243,7 @@ void Visualizer::ShowObservation() { cv::imshow("hog", hog_image); } + cv::waitKey(1); } cv::Mat Visualizer::GetVisImage()