Improve fireball detector recall with stdpixel decontamination#866
Open
alextudorica wants to merge 1 commit into
Open
Improve fireball detector recall with stdpixel decontamination#866alextudorica wants to merge 1 commit into
alextudorica wants to merge 1 commit into
Conversation
7ac217a to
2f18ff2
Compare
99d6a39 to
f88aa48
Compare
A bright fireball inflates stdpixel along its trail within the 256-frame FF block, pushing the threshold (avepixel + k1*stdpixel + j1) above 255. The uint8 clip kills near-saturated trail pixels (250-254). Fix: before thresholding, replace stdpixel at contaminated pixels (maxpixel >= P90 AND stdpixel > 3x background median) with the background median. Pure numpy, no Cython changes needed. Also: clip threshold to 254 (not 255) so near-saturated pixels can pass, and replace the hard-coded 2 px/frame fireball velocity cap with a configurable angular velocity (fireball_max_ang_vel, default 60 deg/s) converted to a per-sensor px/frame limit at runtime using fps and the platepar-derived deg/pixel scale - same conversion the meteor detector already uses. Lets the same config value transfer between cameras with different FOV/resolution. Tested on 133-event reference dataset (1730 FF files, 100 FR-less stations): missed station recall 30% -> 55%, zero regressions on existing detections (FR-positive recall 98.5% -> 99.4%).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The fireball detector misses events when a bright fireball inflates
stdpixelalong its trail within the 256-frame FF block. The threshold formula (avepixel + k1*stdpixel + j1) exceeds 255, gets clipped to 255 (uint8), and near-saturated trail pixels (250–254) are killed.Fix: before passing to
thresholdAndSubsample, replacestdpixelat contaminated pixels with the background median:std_ref = median(stdpixel)wheremaxpixel < P90maxpixel >= P90ANDstdpixel > 3 × std_refstdpixel[contaminated] = std_refPure numpy preprocessing — no Cython changes needed, Pi3/Py2 compatible.
Additional changes:
Grouping3Dcy.pyxso near-saturated pixels can passmax_velocityconfigurable via.configfile (default raised from 2 to 3 px/frame)Results on 133-event reference dataset
1730 FF files, 100 FR-less (missed) stations:
Zero regressions on existing detections.
Test plan