exponential_foreground — VIDEOSTREAM recursive op

• Data kinds: video → video

• Call: import fullseye as fs; fs.ledger.exponential_foreground(video, alpha: 'float' = 0.05, threshold: 'float' = 0.1) -> 'np.ndarray' (implementation को सीधे call करना हो तो import videostream; videostream.exponential_foreground(video, alpha: 'float' = 0.05, threshold: 'float' = 0.1) -> 'np.ndarray', registry से लेना हो तो opsvideostream.get("exponential_foreground"))

उपयोग

foreground mask |frame − exponential background| > threshold → 0/1 (T, H, W) (video)।

exponential_background जैसा ही exponential moving average bg += α (frame - bg) चलाता है, और हर frame में update के बाद के bg से अंतर |frame - bg| > threshold को 1 करता है। पहला frame bg को initialise करने में लगता है और उसका अंतर 0 है, इसलिए t = 0 पर सभी pixel 0 हैं।

• video: (T, H, W) array या 2-D frames की list। integer dtype को अधिकतम मान से [0, 1] में normalise किया जाता है, float को clip किया जाता है। NaN/Inf पर ValueError।

• alpha: [0, 1]। जितना बड़ा, background उतनी तेज़ी से पीछा करता है, और रुकी हुई वस्तु लगभग 1/α frames में गायब हो जाती है। 1 होने पर bg == frame होता है और हमेशा सभी pixel 0।

• threshold: [0, 1] की intensity इकाई में। यह सभी pixels के लिए एक ही absolute threshold है, इसलिए अंधेरे हिस्से का noise और उजले हिस्से का noise एक ही threshold से काटा जाता है।

• return value: (T, H, W) float64 के 0 / 1।

• विफलता: ValueError।

हर pixel के variance से threshold तय करना हो तो running_gaussian_foreground। ghost-रहित motion detection के लिए three_frame_difference।

उपयोग की विस्तृत guide

• video_streaming family guide

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• mv_cables — Cables (standards, speed, power delivery, robot cables)

• mv_frame_grabbers — Frame grabber boards (optics नहीं, पर यही तय करते हैं कि capture हो भी सकता है या नहीं)

• mv_standards — Camera interface standards और उनके पीछे की संस्थाएँ

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• video_streaming — py -3.11 examples/video_streaming.py

वे अगले ops जिनसे type जुड़ता है (video को input के रूप में लेते हैं)

temporal_median_window · moving_average_window · background_subtraction_window · frame_difference_causal · exponential_background · running_mean_std · optical_flow_magnitude_stream · motion_history_image

इसी category के (recursive)

frame_difference_causal · exponential_background · running_mean_std


*Provenance: videostream.py — VIDEOSTREAM operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.