Skip to content

willSapgreen/structure-from-motion

Repository files navigation

Structure From Motion Pipeline

Abstract

This repository contains the following functionality/algorithm implementations for SfM:

Functionality Implementation Class Name
feature detection OpenCV view_processor (VP)
feature matching OpenCV key_tracker (KT)
2D and 3D point tracking Self key_tracker
fundamental matrix calculation Self epipolar_processor (EP)
essential matrix calculation Self epipolar_processor
camera pose extraction from essential matrix Self campose_processor (CP)
camera pose disambiguation Self campose_processor
linear triangulation Self triangulation_processor (TP)
nonlinear triangulation Self triangulation_processor
linear perspective-n-point estimation Self campose_processor
nonlinear perspective-n-point estimation Self campose_processor
bundle adjustment Self ba_processor (BAP)

The pipeline (data flow) is as shown below Pipeline

Environment

  • Python 3.8.17
  • Conda environment: environment_sfm.yml

Commands

Each script has its own unit. Ex. python3 epipolar_processor.py. For the whole pipeline testing, python3 ba_processor.py.

Whole testing result

ba_processor_unit_test_result

Reference

About

Structure from motion pipeline

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages