Skip to content

Commit

Permalink
DOCS: Add stationary tracking config section to elaborate more on sta…
Browse files Browse the repository at this point in the history
…tionary tracking (blakeblackshear#3077)

* Add docs to elaborate more on stationary tracking

* Add link to guide on avoiding stationary objects in driveway scenario

* Update wording in reference config

* Small cleanups

* Update with PR comments
  • Loading branch information
NickM-27 authored Apr 11, 2022
1 parent 2e5d082 commit a292f27
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
5 changes: 3 additions & 2 deletions docs/docs/configuration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,9 @@ detect:
max_disappeared: 25
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for running detection on stationary objects (default: shown below)
# When set to 0, object detection will never be run on stationary objects. If set to 10, it will be run on every 10th frame.
# Optional: Frequency for confirming stationary objects (default: shown below)
# When set to 0, object detection will not confirm stationary objects until movement is detected.
# If set to 10, object detection will run to confirm the object still exists on every 10th frame.
interval: 0
# Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
threshold: 50
Expand Down
28 changes: 28 additions & 0 deletions docs/docs/configuration/stationary_objects.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Stationary Objects

An object is considered stationary when it is being tracked and has been in a very similar position for a certain number of frames. This number is defined in the configuration under `detect -> stationary -> threshold`, and is 10x the frame rate (or 10 seconds) by default. Once an object is considered stationary, it will remain stationary until motion occurs near the object at which point object detection will start running again. If the object changes location, it will be considered active.

## Why does it matter if an object is stationary?

Once an object becomes stationary, object detection will not be continually run on that object. This serves to reduce resource usage and redundant detections when there has been no motion near the tracked object. This also means that Frigate is contextually aware, and can for example [filter out recording segments](record.md#what-do-the-different-retain-modes-mean) to only when the object is considered active. Motion alone does not determine if an object is "active" for active_objects segment retention. Lighting changes for a parked car won't make an object active.

## Tuning stationary behavior

The default config is:

```yaml
detect:
stationary:
interval: 0
threshold: 50
```
`interval` is defined as the frequency for running detection on stationary objects. This means that by default once an object is considered stationary, detection will not be run on it until motion is detected. With `interval > 0`, every nth frames detection will be run to make sure the object is still there.

NOTE: There is no way to disable stationary object tracking with this value.

`threshold` is the number of frames an object needs to remain relatively still before it is considered stationary.

## Avoiding stationary objects

In some cases, like a driveway, you may prefer to only have an event when a car is coming & going vs a constant event of it stationary in the driveway. [This docs sections](../guides/stationary_objects.md) explains how to approach that scenario.
1 change: 1 addition & 0 deletions docs/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ module.exports = {
'configuration/objects',
'configuration/rtmp',
'configuration/zones',
'configuration/stationary_objects',
'configuration/advanced',
'configuration/hardware_acceleration',
'configuration/nvdec',
Expand Down

0 comments on commit a292f27

Please sign in to comment.