summaryrefslogtreecommitdiffhomepage
path: root/tracker-neuralnet
diff options
context:
space:
mode:
authorMichael Welter <michael@welter-4d.de>2021-10-26 11:31:26 +0200
committerMichael Welter <michael@welter-4d.de>2022-05-12 19:55:23 +0200
commitf58bc9de86e79df8f7a30fe1e21821bdabfb165e (patch)
tree5eec9c4c8304305483dc49b97eb00a3b54110f8a /tracker-neuralnet
parentdb54d8eb86b06e6c7ea44ff0c112c22ab85305c3 (diff)
tracker/nn: catch exception in case the head pose model throws during inference
Diffstat (limited to 'tracker-neuralnet')
-rw-r--r--tracker-neuralnet/ftnoir_tracker_neuralnet.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp b/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp
index 3687a6cd..50d1e7b4 100644
--- a/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp
+++ b/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp
@@ -315,7 +315,16 @@ std::optional<PoseEstimator::Face> PoseEstimator::run(
const auto nt = omp_get_num_threads();
omp_set_num_threads(num_threads);
- session.Run(Ort::RunOptions{nullptr}, input_names, &input_val, 1, output_names, output_val, 3);
+ try
+ {
+ session.Run(Ort::RunOptions{ nullptr }, input_names, &input_val, 1, output_names, output_val, 3);
+ }
+ catch (const Ort::Exception &e)
+ {
+ qDebug() << "Failed to run the model: " << e.what();
+ omp_set_num_threads(nt);
+ return {};
+ }
omp_set_num_threads(nt);
// FIXME: Execution time fluctuates wildly. 19 to 26 ms. Why???