Add NaN check, move threshold value to const
authorMarcin Romaniuk <m.romaniuk@samsung.com>
Mon, 7 Jun 2021 16:35:28 +0000 (18:35 +0200)
committerPiotr Czaja <p.czaja@samsung.com>
Tue, 14 Sep 2021 11:01:34 +0000 (13:01 +0200)
Fitness/ViewModels/ScanningViewModel.cs

index 571112facbd9bf5ed27df4193e3b1edd90adc6cf..6cd3afbd55233aefb955883fce1dcab8cd3f00cb 100644 (file)
@@ -11,6 +11,8 @@ namespace Fitness.ViewModels
 {
     public class ScanningViewModel : BaseViewModel
     {
+        private const float SquatDetectedThreshold = 0.92f;
+
         private readonly PoseDetector poseDetector = new PoseDetector();
         private int isInferencing = 0;
 
@@ -104,7 +106,12 @@ namespace Fitness.ViewModels
 
                     var locations = range.Select(x => landmarks[0, x].Location).ToList();
                     var squatSimilarity = SquatDetector.Similarity(locations);
-                    var squatDetection = squatSimilarity > 0.95 ? "SQUAT DETECTED" : "no squat";
+                    if (float.IsNaN(squatSimilarity))
+                    {
+                        squatSimilarity = 0.0f;
+                    }
+
+                    var squatDetection = squatSimilarity >= SquatDetectedThreshold ? "SQUAT DETECTED" : "no squat";
 
                     NUIContext.InvokeOnMainThread(() =>
                     {