feat(perception): motion blur detector via Laplacian variance (Issue #286) #292
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-perception/issue-286-blur-detect"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
_blur_detector.py:BlurResultNamedTuple,laplacian_variance()(ksize=3 Laplacian on greyscale, optional ROI crop),detect_blur()returning variance + is_blurred + threshold; handles BGR and greyscale inputblur_detect_node.py: subscribes/camera/color/image_raw(BEST_EFFORT), publishesBoolon/saltybot/image_blurredandFloat32on/saltybot/blur_scoreper frame;thresholdandroi_fracROS paramsblur_detectorconsole script insetup.pyIntended use
Pause or down-weight SLAM keyframe insertion (
/saltybot/image_blurred == True) when the robot is moving fast and the D435i image is visibly blurred.Test plan
python3 -m pytest test/test_blur_detector.py -v→ 25 passedros2 run saltybot_bringup blur_detector/saltybot/blur_scorerises when robot is stationary (sharp image) and falls during fast rotation/saltybot/image_blurredtoggles correctly around the default threshold=100.0roi_frac=0.3to skip the sky/ceiling region🤖 Generated with Claude Code