L o a d i n g

Project Overview

This project implements a complete Structure from Motion (SfM) pipeline for 3D reconstruction from 2D images. By combining feature detection, camera pose estimation, triangulation, and bundle adjustment, the pipeline generates sparse and dense 3D point clouds from sequential image inputs.

Key Features

  • Robust feature detection using SIFT
  • RANSAC-based Fundamental Matrix estimation
  • Essential Matrix-based pose recovery
  • Graph-based triangulation and sparse reconstruction
  • Bundle adjustment for pose and point optimization
  • Dense reconstruction using feature matching

Methodology

The SfM pipeline is executed through the following steps:

  1. Image Acquisition: Images are loaded and resized as needed. Camera intrinsics are provided.
  2. Feature Detection & Matching: SIFT features are extracted, matched, and filtered using RANSAC.
  3. Pose Estimation: Fundamental and Essential matrices are computed to derive relative camera poses.
  4. Triangulation: Matched feature points are triangulated to estimate 3D coordinates.
  5. Bundle Adjustment: Non-linear optimization is applied to refine camera poses and 3D points.
  6. Dense Reconstruction: Dense matching adds more 3D points, forming a high-resolution point cloud.

Results and Visualizations

The pipeline successfully reconstructed several indoor and outdoor scenes, producing both sparse and dense 3D point clouds. Results were validated through reprojection error metrics and visual inspections.

  • Reconstruction 1: Indoor lab setup
  • Reconstruction 2: Outdoor garden scene
  • Reconstruction 3: Office corridor walkthrough

Conclusion

This SfM pipeline demonstrates the capability to convert 2D image sequences into accurate 3D reconstructions using a structured computer vision workflow. Its modular nature allows integration with SLAM systems or photogrammetry software for advanced applications.

Project Information

  • Category: Computer Vision
  • Duration: 1 month
  • Completed: 2023
  • Institution: University at Buffalo
  • Framework: Custom Python Pipeline

Technologies Used

Python
OpenCV
NumPy
Matplotlib