Blob Tracker
Track moving blobs and objects in video by connected-component analysis.
What it does
Blob Tracker finds contiguous regions in an image and tracks them frame to frame as stable IDs. A segmentation model pulls a mask out of the image, or a mask is fed in directly; the individual blobs in that mask are isolated, then matched against the previous frame to carry position, velocity and identity forward.
Each tracked blob carries a centroid, velocity, area, bounding box, orientation, an age and a stable ID that survives frame to frame. Bounding-box shapes come out ready to composite or to use as an analytic-shape input.
When to use it
People, hands, props or any moving shape from a camera or video feed, each with a persistent identity across frames
Per-blob motion data (position, velocity, size) driving other nodes
A mask that already exists, from another vision node, a threshold or a key, needing only blob isolation and tracking
| Parameter | Type | Default |
|---|---|---|
image | OneOf([FieldOf(Raster)]) | — |
model | String | "u2net_lite" |
threshold | Number | 0.500 |
min_area | Number | 0.001 |
max_area | Number | 0.900 |
max_blobs | Number | 20 |
sort_mode | String | "area" |
max_distance | Number | 0.150 |
persistence | Number | 15 |
process_noise | Number | 0.010 |
measurement_noise | Number | 0.100 |
distance_weight | Number | 1 |
iou_weight | Number | 0.500 |
area_weight | Number | 0.300 |
enabled | Boolean | true |
Gotchas
On an already-binary input, a mask or a matte from a Key node, set Model to "none". Running a segmentation model over a mask wastes time and can distort the edges.
Min Area and Max Area are fractions of the image, not pixels: 0.001 means a blob must cover at least 0.1% of the frame to count. Raise Min Area to ignore noise flecks; lower Max Area if a large background region is being counted as a blob.
Distance Weight, IoU Weight and Area Weight shape how blobs are matched between frames: position, shape overlap and size similarity respectively. When IDs swap between two blobs that pass close to each other, raise IoU Weight or Area Weight so shape and size break the tie instead of proximity alone.
Persistence sets how many frames a blob is kept alive after it is lost (covered, off-screen, or momentarily undetected) before its ID is dropped. Too low and fast-moving or briefly-occluded blobs lose their identity and restart as new blobs; too high and stale blobs linger and can steal a match from a real new one.
Worked example
Add a Blob Tracker and wire a Camera or Video node into Image.
Leave Model at "u2net_lite" for general subjects, or switch to "modnet" for people. Raise Threshold if the mask is picking up background noise.
Set Min Area to filter out small flecks, and Max Blobs to cap how many blobs are tracked at once.
Read the blobs output for full per-blob data, or wire centroids / velocities directly into whatever should follow the motion.