exponential_background — VIDEOSTREAM recursive op

• Data kinds: video → video

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

उपयोग

हर frame पर recursive background bg ← (1−α)·bg + α·frame → (T, H, W) (video)।

पहले frame से bg initialise करके, उसके बाद हर pixel पर bg += α (frame - bg) को दोहराने वाला exponential moving average। state केवल 1 background है (कोई window नहीं)। frame t का output उस समय के bg की copy है, और t = 0 input का पहला frame ही है।

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

• alpha: [0, 1]। time constant लगभग 1/α frames है (0.05 → लगभग 20 frames)। 0 होने पर background पहले frame पर स्थिर रहता है, 1 होने पर हमेशा वर्तमान frame। वस्तु रुकने पर लगभग 1/α frames में background में समा जाती है (selective update नहीं है)।

• return value: (T, H, W) float64, [0, 1]।

• विफलता: ValueError (shape, dtype, alpha की range)।

foreground mask भी चाहिए तो उसी model का exponential_foreground। हर pixel के noise के अनुसार threshold रखना हो तो running_gaussian_background।

उपयोग की विस्तृत 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_foreground · running_mean_std · optical_flow_magnitude_stream · motion_history_image

इसी category के (recursive)

frame_difference_causal · exponential_foreground · 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.