From 45e48310779c8adec67de7cf76328aa7bd034466 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 20 Jan 2023 13:50:43 +0100 Subject: tracker/nn: try fixing center on startup --- tracker-neuralnet/ftnoir_tracker_neuralnet.cpp | 10 +++++++--- tracker-neuralnet/ftnoir_tracker_neuralnet.h | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'tracker-neuralnet') diff --git a/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp b/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp index e9a490fa..d8077326 100644 --- a/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp +++ b/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp @@ -353,7 +353,7 @@ bool NeuralNetTracker::detect() last_pose_affine_ = pose_affine; } - draw_gizmos(*face, last_pose_affine_); + draw_gizmos(*face, pose_affine); return true; } @@ -652,12 +652,16 @@ void NeuralNetTracker::update_fps(double dt) void NeuralNetTracker::data(double *data) { - Affine tmp = [&]() + auto tmp2 = [&]() { QMutexLocker lck(&mtx_); return last_pose_affine_; }(); + if (!tmp2) + return; + const auto& tmp = *tmp2; + const auto& mx = tmp.R.col(0); const auto& my = tmp.R.col(1); const auto& mz = -tmp.R.col(2); @@ -682,7 +686,7 @@ void NeuralNetTracker::data(double *data) Affine NeuralNetTracker::pose() { QMutexLocker lck(&mtx_); - return last_pose_affine_; + return last_pose_affine_ ? *last_pose_affine_ : Affine{}; } std::tuple NeuralNetTracker::stats() const diff --git a/tracker-neuralnet/ftnoir_tracker_neuralnet.h b/tracker-neuralnet/ftnoir_tracker_neuralnet.h index 3548335e..df71a7a8 100644 --- a/tracker-neuralnet/ftnoir_tracker_neuralnet.h +++ b/tracker-neuralnet/ftnoir_tracker_neuralnet.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -151,7 +152,7 @@ private: QMutex mtx_ = {}; // Protects the pose std::optional last_pose_ = {}; - Affine last_pose_affine_ = {}; + std::optional last_pose_affine_ = {}; Preview preview_; std::unique_ptr video_widget_; -- cgit v1.2.3