michaelml.dev / Michael_Portfolio.ipynb
Monocular Visual SLAM system for autonomous drone navigation featuring ORB and SIFT feature detection, MIDAS depth estimation, and 3D point cloud reconstruction. Implements Structure from Motion (SfM) with Extended Kalman Filter for robust pose estimation in GPS-denied environments.
[ ]
code · VSLAM Drone Navigation
project = load_project("vslam-drone-navigation")
project.summary()Output

VSLAM Drone Navigation
Monocular Visual SLAM system for autonomous drone navigation featuring ORB and SIFT feature detection, MIDAS depth estimation, and 3D point cloud reconstruction. Implements Structure from Motion (SfM) with Extended Kalman Filter for robust pose estimation in GPS-denied environments.
Computer VisionSLAMORB-SLAMSIFTDeep LearningMIDASPythonOpenCVPyTorchStructure from MotionKalman FilterAutonomous NavigationDrones
[ ]
code · Problem definition
project = load_project("vslam-drone-navigation")
project.problem()Output
ProblemA drone in a GPS-denied space must estimate its six-degree-of-freedom pose and build a map from a single moving camera.
ApproachCombine ORB/SIFT tracking, essential-matrix motion, triangulation, MIDAS depth, bundle adjustment, and Extended Kalman filtering.
OutcomeDelivered a complete experimental monocular VSLAM and point-cloud pipeline; no flight benchmark is claimed.
[ ]
code · Constraints
project = load_project("vslam-drone-navigation")
project.constraints()Output
Constraints
- Monocular cameras have inherent scale ambiguity.
- Tracking errors accumulate without loop closure and global correction.
- Real-time feature quality trades off against compute cost.
[ ]
code · Role and implementation
project = load_project("vslam-drone-navigation")
project.implementation()Output
Role and implementation
My role: Built the monocular VSLAM study, feature and geometry pipeline, learned-depth integration, pose filtering, and 3D reconstruction visualizations.
- Compared ORB for speed with SIFT for robust feature quality.
- Estimated camera motion, triangulated points, and fused learned MIDAS depth.
- Filtered poses with an Extended Kalman Filter and reconstructed a global map.
[ ]
code · Architecture
project = load_project("vslam-drone-navigation")
project.show_architecture()Output
Camera CalibrationCalibrate monocular camera intrinsics (focal length, principal point, distortion) for accurate undistortion
Feature Detection & MatchingExtract ORB or SIFT keypoints, compute descriptors, track features across consecutive frames using descriptor matching
MIDAS Depth EstimationGenerate dense depth maps using Intel's MIDAS deep learning model to address scale ambiguity in monocular vision
Camera Motion EstimationCompute Essential Matrix from feature correspondences, decompose into rotation and translation components
Structure from MotionTriangulate 3D points from multiple views, apply bundle adjustment to jointly optimize camera poses and 3D structure
Extended Kalman FilteringFuse visual odometry with motion model predictions to filter noisy pose estimates and reduce drift
[ ]
code · Demo and media
project = load_project("vslam-drone-navigation")
project.media()Output

[ ]
code · Evaluation
project = load_project("vslam-drone-navigation")
project.evaluation()Output
Evaluation
- Compared ORB and SIFT behavior and visualized feature tracks, depth, and reconstruction.
- No end-to-end autonomous-flight metric is present in the project record.
[ ]
code · Results
project = load_project("vslam-drone-navigation")
project.results()Output
Results
- Produced six-degree-of-freedom pose, trajectory, and 3D point-cloud outputs from monocular imagery.
- The system remains an experimental navigation pipeline.
[ ]
code · Tradeoffs and failures
project = load_project("vslam-drone-navigation")
project.tradeoffs()Output
Tradeoffs
- ORB supports faster updates while SIFT improves robustness at higher compute cost.
- Learned depth helps relative scale but is not equivalent to calibrated metric depth.
[ ]
code · What I would improve
project = load_project("vslam-drone-navigation")
project.improvements()Output
Improvements
- Add loop closure, metric-scale sensors, and sequence-level trajectory benchmarks.
- Validate latency and robustness on a controlled physical flight platform.
[ ]
code · Links and repository
project = load_project("vslam-drone-navigation")
project.links()Output