Background Subtraction
Algorithms seperating the input point cloud into foreground and background.
Field | Type | Default | Unit |
---|---|---|---|
mixture_of_gaussians |
- |
- |
|
Use mixture of gaussians for foreground/background detection |
|||
static |
- |
- |
|
Use a static tree structure for foreground/background detection. |
Mixture Of Gaussians
Dynamic background subtraction using a mixture of gaussians. The algorithm automatically slowly updates the background model if the scene changes. The update rate is controlled via 'exponential_decay'.
Field | Type | Default | Unit |
---|---|---|---|
num_initialization_frames |
uint32 |
- |
- |
The amount of initially received frames which are used to build the background. Reasonable default: 10 |
|||
exponential_decay |
float |
- |
- |
Controls how fast objects switch between foreground and background. Exponential decay factor. Reasonable default: 0.005 |
|||
min_weight_threshold_for_background |
float |
- |
- |
Controls how much noise the background/foreground is expected to have. Reasonable default: 0.25 |
|||
object_awareness |
- |
- |
|
Configure the object awareness of the background subtraction. |
Object Awareness
The dynamic model update can depend on the detected objects. If enabled, the model update is freezed for areas around detected objects.
This can be very helpful to avoid that stalled objects, which stay in the scene for a while (e.g. parked cars) or objects which are following similar paths (e.g. persons in a hallway), cause the generation of an invalid background model. The dynamic model update is though still enabled for small objects or noise points (e.g. caused by vegetation).
To still allow the merging of objects into the scene background, simple rules are available which automatically re-initialize the background model for the area around a stall object. Also, objects can be explicitly merged into the background via separate API commands.
Field | Type | Default | Unit |
---|---|---|---|
enabled |
bool |
- |
- |
Enable object awareness |
|||
auto_merge_object_duration |
float |
- |
s |
After an object has been tracked for the given duration, the area of the object is reinitialized. If 0, the auto merging is disabled. Reasonable default: 10 minutes |
|||
sizes |
repeated ObjectSize |
- |
- |
Only enable the object awareness for the given object sizes. If empty, it is enabled for all sizes. Reasonable default: OBJECT_SIZE_MEDIUM, OBJECT_SIZE_LARGE. |
|||
disable_for_in_background_objects |
bool |
- |
- |
Disable for objects which are marked with the in_background property. This can be beneficial in scenes where the continuous background model update works better than the one-shot auto-merge re-initialization. Please note that the shadow detection will not work as expected when this is disabled. |
Static
Uses the first received frames to build a static background map of the environment. The algorithm requires the scene to only contain the static parts of the scene on the start of the processing. The background model is not updated automatically afterwards. The ResetBackground grpc method allows to update the static map of the environment.
Field | Type | Default | Unit |
---|---|---|---|
num_initialization_frames |
uint32 |
- |
- |
How many frames of the first received frames are used to build the background Reasonable default: 10 |
|||
voxel_size |
float |
- |
m |
Size of voxels used for voxelization of the background during initialization. Default: 0.05 m |
|||
min_distance |
float |
- |
m |
Minimum spatial distance to background to detect points as foreground Default: 0.15 m |