Skip to content
Michael_Portfolio.ipynb
MR
File browser
Michael_Portfolio.ipynb
profile.jpg
resume.pdf

One editable portfolio notebook. Edits survive refreshes in this tab and reset when the tab closes or the notebook is reset.

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 project preview

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
VSLAM Drone Navigation project media
[ ]
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
GitHub
Python 3 · PyodideWorker: CPUConnecting…Command modeLn 1, Col 1