|
Void Sentry
An AI-driven, real-time Sentry Turret platform leveraging asynchronous I/O and computer vision to deliver high-precision autonomous motion tracking on resource-constrained embedded hardware.
|
Finds moving regions in 40x30 gray frames with a background model (pure C++20, natively tested). More...
#include "tracking_types.h"Go to the source code of this file.
Classes | |
| class | tracking::MotionDetector |
Finds moving regions in 40x30 gray frames with a background model (pure C++20, natively tested).
Per frame: foreground mask against an exponential-moving-average background, a scene-change guard, and 8-connected blobs via two-pass union-find labelling. There is no morphological opening: each cell is already an 8x8 block average (1/8 DC decode), so an opening would erase hand-sized targets; isolated noise cells are rejected by DetectorConfig::min_blob_cells instead. Background cells learn fast (1/16) and foreground cells slowly (1/128), so moving objects leave no trail while a stopped object is still absorbed eventually. A cell that stays foreground for more than fg_age_limit frames goes back to the fast rate, so ghosts (cells that differ because the background itself was wrong) clear in a few seconds instead of ~14 s. All state is fixed-size (~12 KB): no heap. NOT thread-safe.