Quellcode durchsuchen

selectively increment position changes

Blake Blackshear vor 3 Jahren
Ursprung
Commit
5a2e395352
2 geänderte Dateien mit 10 neuen und 2 gelöschten Zeilen
  1. 1 1
      docs/docs/integrations/mqtt.md
  2. 9 1
      frigate/objects.py

+ 1 - 1
docs/docs/integrations/mqtt.md

@@ -57,7 +57,7 @@ Message published for each changed event. The first message is published when th
     "has_snapshot": false,
     "has_clip": false,
     "motionless_count": 0, // number of frames the object has been motionless
-    "position_changes": 2 // number of times the object has changed position
+    "position_changes": 2 // number of times the object has moved from a stationary position
   },
   "after": {
     "id": "1607123955.475377-mxklsc",

+ 9 - 1
frigate/objects.py

@@ -99,8 +99,16 @@ class ObjectTracker:
         if self.update_position(id, new_obj["box"]):
             self.tracked_objects[id]["motionless_count"] += 1
         else:
+            # register the first position change and then only increment if
+            # the object was previously stationary
+            if (
+                self.tracked_objects[id]["position_changes"] == 0
+                or self.tracked_objects[id]["motionless_count"]
+                >= self.detect_config.stationary_threshold
+            ):
+                self.tracked_objects[id]["position_changes"] += 1
             self.tracked_objects[id]["motionless_count"] = 0
-            self.tracked_objects[id]["position_changes"] += 1
+
         self.tracked_objects[id].update(new_obj)
 
     def update_frame_times(self, frame_time):