____ _ _ _ | _ \ ___ __ _| | | | ___ __ _ _ __| |_ | | | |/ _ \ / _` | |_| |/ _ \/ _` | '__| __| | |_| | (_) | (_| | _ | __/ (_| | | | |_ |____/ \___/ \__, |_| |_|\___|\__,_|_| \__| |___/ DogHeart Technical Notes Public Review Draft Date: 2026-06-22 1. System Summary DogHeart is an embedded computer-vision prototype for stabilized human-region tracking, pose-derived region-of-interest estimation, visual marker detection, and target-loss handling on constrained hardware. The current build processes a live camera feed, detects human figures, maintains stabilized region boxes, derives an upper-body region of interest from skeletal keypoints when available, and tracks visual marker state inside that region. The system has evolved from a single-person detector into a multi-person, pose-driven tracking pipeline with camera-aware tuning. All distance and closeness reasoning is currently handled in the 2D image plane. The present single-camera setup does not provide true range or depth. Apparent size, image position, and box movement are used as practical 2D proxies. 2. Current Capabilities - Stabilized body-region tracking using double-exponential smoothing. - Pose-derived upper-body region-of-interest estimation. - Fixed-ratio fallback when pose keypoints are missing or unreliable. - Visual marker detection inside the tracked region of interest. - Multi-person tracking. - Target-loss handling through hold, decay, and reset states. - Camera-aware tuning for scale-relative movement in the image plane. 3. Architecture 3.1 Human-Region Detection The baseline system used object detection to locate the person class in the frame. The largest detected person was selected as the active subject. The early build derived a secondary upper-body box from fixed percentages of the detected body box. Later builds moved toward pose-driven tracking. This allowed the system to use skeletal keypoints instead of relying only on object-detection boxes. 3.2 Pose and Keypoint Estimation The current pose path uses a lightweight body-pose model suitable for embedded hardware. Shoulder and hip keypoints are used when available to derive the upper-body region of interest. When those keypoints are incomplete, unstable, or outside acceptable bounds, the system falls back to a fixed-ratio region derived from the main body box. This keeps the display stable when pose confidence drops. 3.3 Smoothing and Stabilization The system uses a double-exponential smoother for box coordinates. Each edge of the tracked box is smoothed independently. This approach tracks both position and trend. It reduces jitter compared to raw detector output and responds better to motion than a simple first-order exponential moving average. The smoother operates only on pixel coordinates. Movement toward or away from the camera appears primarily as box scaling, not true depth movement. 3.4 Box Tracking The tracking layer wraps the coordinate smoothers and manages target-loss behavior. Loss handling uses three states: - Hold: the most recent stable box remains visible briefly after a missed detection. - Decay: the box remains visible with reduced confidence while the system waits for reacquisition. - Reset: the track is cleared after the subject is lost for too long. This prevents the display from snapping immediately to empty space during brief occlusion, motion blur, or pose failure. 3.5 Visual Marker Detection The system includes visual marker detection inside the tracked region of interest. Two implementation paths have been tested: - Color-space thresholding on a cropped frame region. - GPU-assisted region cropping followed by direct channel-comparison logic. The GPU-assisted path reduces unnecessary full-frame CPU work. The color-space path remains useful for tuning and comparison. Exact marker thresholds, hysteresis values, and filter constants are intentionally omitted from this public-review document. Those values belong in internal configuration notes and source-controlled build records. 3.6 Multi-Person Association The multi-person build maintains separate tracks for multiple visible people. Association is handled by nearest-centroid matching. Match tolerance scales with the apparent size of each person's tracked body region. This is a 2D proxy for the fact that closer subjects move more pixels per frame than distant subjects. This method is simple and fast. It is not equivalent to full re-identification or depth-aware tracking. 4. Version History 4.1 Baseline Build The baseline build used a person detector to locate one subject in a live camera feed. It selected the largest detection and drew a body box plus a derived upper-body region. State was held in module-level variables. Smoothing used a simple exponential moving average. Target loss caused a hard reset after a fixed number of missed frames. 4.2 Version 1 - Tracking Architecture Version 1 introduced reusable smoothing and tracking classes. Major changes: - Added a double-exponential coordinate smoother. - Added a box tracker object to encapsulate smoothing state. - Added hold, decay, and reset behavior for target loss. - Added clamping to keep the derived region inside the body box. - Added guards against degenerate boxes during drawing. This version remained single-person and still used fixed-ratio region derivation. 4.3 Version 2 - Pose-Based Region Estimation Version 2 moved from detector-only logic to pose-based estimation. Major changes: - Added body-pose keypoint detection. - Derived the upper-body region from shoulder and hip keypoints. - Preserved fixed-ratio fallback when keypoints were not reliable. - Added visual keypoint markers for live confidence feedback. - Retained the smoother and box tracker from Version 1. This made the region of interest more anatomically consistent than a static percentage box. 4.4 Version 3 - Visual Marker Detection Version 3 added visual marker detection inside the derived region of interest. Major changes: - Added region-specific marker detection. - Tested GPU-side cropping before CPU transfer. - Tested direct color-channel comparison as an alternative to heavier image-processing dependencies. - Reduced unnecessary full-frame processing. This version established the marker-detection path but still required tuning against lighting and camera behavior. 4.5 Version 4 - Sensitivity and Association Tuning Version 4 focused on stability, filtering, and multi-person behavior. Major changes: - Added scale-relative matching tolerance for person association. - Improved false-positive rejection through stricter single-frame filtering. - Preserved immediate marker-state responsiveness while reducing noise. - Improved behavior around lighting variation and clipped highlights. This version made the system more usable in live testing but did not remove the need for controlled camera exposure and lighting validation. 4.6 Experimental Builds Some experimental branches include unstable features such as gesture-state recognition and object-presence checks near the tracked subject. These features are not part of the current stable public description. They should remain in internal notes until they are repeatable, validated, and integrated into the multi-person pipeline. 5. Subsystem Reference Smoothing: HoltSmoother Per-edge double-exponential smoothing for pixel coordinates. Tracks level and trend for each box edge. Box tracking: BoxTracker Wraps coordinate smoothers and manages hold, decay, and reset behavior for missed detections. Region derivation: pose-derived ROI and fixed-ratio fallback Uses visible shoulder and hip keypoints when available. Falls back to a body-box percentage region when pose information is incomplete. Visual marker detection: region-specific marker state Runs marker detection only inside the tracked region of interest. This reduces noise and limits processing load compared to full-frame scanning. Multi-person association: PersonTrack association layer Maintains separate person tracks. Uses nearest-centroid matching with scale-relative tolerance. 6. Display Legend - White: primary body-region track. - Red: pose-derived upper-body region of interest. - Green: marker-present state inside the tracked region. - Grey: lost-track decay state. - Cyan: visible keypoint markers. 7. Constraints and 2D Proxies - The current sensor path uses a single 2D camera. - The system does not measure true distance or depth. - Distance-like behavior is approximated through apparent size, image position, and pixel movement. - Movement toward or away from the camera appears as box scaling. - The smoother treats scale change as image-plane motion, not true depth movement. - Lighting changes can strongly affect marker detection. - Camera exposure, gain, white balance, and lens selection directly affect repeatability. - Current hardware limits how many features can run at the same time. - Outdoor daylight, low light, occlusion, rapid movement, and mixed lighting still require structured testing. 8. Validation Status Current validation is limited to prototype-level testing. Known tested areas: - Live camera input. - Embedded hardware execution. - Human-region detection. - Pose-derived region estimation. - Region smoothing. - Track hold, decay, and reset behavior. - Visual marker detection under controlled conditions. - Multi-person tracking. Known unvalidated or partially validated areas: - Outdoor daylight performance. - Low-light performance. - Fast motion. - Heavy occlusion. - Multiple lighting temperatures. - Long-duration runtime stability. - Camera-to-camera repeatability. - Formal latency measurement. - Formal false-positive and false-negative rates. - True depth or range estimation. 9. Current Engineering Priorities - Build a repeatable test set with controlled lighting notes. - Add connected-component analysis if marker false positives persist. - Evaluate a Kalman filter if occlusion handling becomes a primary failure point. - Add formal latency measurement from camera input to rendered overlay. - Test camera exposure locks and fixed white balance for improved repeatability. - Compare lens and sensor options before expanding feature count. - Integrate gesture or object features only after the base multi-person pipeline is stable. - Use object area relative to the tracked body region as the current closeness proxy. 10. Depth Path The current single-camera design cannot provide true depth by itself. If true range or depth becomes a requirement, the system will need one of the following: - Stereo camera pair. - Dedicated depth camera. - External range sensor. - Sensor-fusion path combining vision with a separate range source. Until then, all distance-like logic should be described as 2D image-plane approximation. 11. Compliance Boundary This document is a technical development note. It does not classify the system, define export-control status, or establish product authorization. Export-control review, defense-article classification, supplier restrictions, and customer restrictions are separate compliance issues. --------------------------------------------------------------------------------------------------------------------------------------------------------- DogHeart is an embedded computer-vision prototype focused on stabilized human-region tracking, pose-derived region estimation, visual marker detection, and loss-state handling on constrained hardware. The system is currently a prototype. It is useful for demonstrating the detection pipeline, tracking behavior, region stabilization, and camera-dependent limitations. _ ___________________ ____________ __ _______ | | / / _/ ____/ ____/ | / / ____/ __ \/ //_/ ___/ | | / // // / / __/ | | /| / / __/ / /_/ / ,< \__ \ | |/ // // /___/ /___ | |/ |/ / /___/ _, _/ /| |___/ / |___/___/\____/_____/ |__/|__/_____/_/ |_/_/ |_/____/