소스 검색

selectively increment position changes

Blake Blackshear 3 년 전
부모
커밋
5a2e395352
2개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  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):