- First simplify neighbourhood matches by removing current delaunay for every frame. track directly with the delaunay from the ref frame. 1.1. Think about a good way to use batch of frames to come up with prompts
- Use the the strategy to also track # common features that can help decide keyframe spawn decision
- Implement tracking for RGBD - frame to frame, frame to sparse map, image to GS map, motion model (for failure cases)
- Setup factor graph slam using gtsam or g20, checkout pypose.
- Use SAM2 for two purpose - propose dynamic mask, help in improving prompts from the delaunay thing by consistency
- Classes - Unified Dataloader for SLAM and GS, Frame, KeyFrames, Feature Det/Match, GS MAP, Track, SLAM, TimingUtils
- Importantly - increase focus on speed metric from the start - track every methods time
- Sparse Map - List of KeyFrames, Keyframe - [Frame from the DataLoader - But fully populated with Features, Tracked Pose, Results of DynamicFeature Detection from Delaunay based methos, Dynamic Object Mask from SAM2...]
- Dense Map - List of Gaussians - Each Gaussian is associated with a KeyFrame so upon loopclosure, The gaussians can be deformed as well. Impliment proper - spawn, prune, densify methods for GS MAP. Use dynamic mask to control GS map optimization
- Focus on building metric from step1.
- Testing Framework
- Unit tests for core components
- Integration tests for SLAM pipeline
- Benchmark suite for performance metrics
- Visualization Components
- Real-time trajectory visualization
- Map quality assessment tools
- Dynamic object detection visualization
- Robustness
- Failure recovery mechanisms
- Edge case handling
- Tracking quality metrics
- Documentation
- API documentation
- Usage examples
- Performance benchmarks
- First impliment individual components, but for the overall slam - exploit parallelism
- Make custom dataset that can demonstrate open-set dynamic object removal quality - Bonn IPB doesnt have a lot of dynamic objects in the scene.
-
Core Components
- [DONE] Feature detection/matching with Delaunay
- [REIMPLIMENT CURRENT VERSION] frame-to-frame tracking
- Initial timing infrastructure
-
SLAM Backend
- Factor graph implementation
- Keyframe management
- Loop closure detection
-
Dynamic Objects
- [DONE - NOT INTEGRATED] SAM2 integration
- Dynamic mask generation
- Tracking refinement
-
Gaussian Splatting
- [DONE] GS map initialization
- [DONE] Map optimization
- [DONE] Dynamic object handling
- Feature matching: < Xms per frame
- Tracking: < Xms per frame
- Map update: < Xms per keyframe
- Dynamic object detection: < Xms per frame
-
Main Thread
- Feature detection/matching
- Pose estimation
- Core SLAM operations
-
Worker Threads
- SAM2 processing
- Gaussian Splatting optimization
- Loop closure detection
- Map maintenance