dfridovi / SimpleSFM

A simple structure from motion library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SimpleSFM

A simple structure from motion library.

Disclaimer I built this project as an exercise in teaching myself about SfM. I no longer maintain it, and I do not recommend that anyone use it for any purpose other than as a guide for building your own SfM pipeline.

Current Status

Right now, the Python side of SimpleSFM is reasonably stable. Essentially, it can process a series of still images from an iPhone 5 and output an optimized 3D sparse point cloud. It's not particularly fast, but I've done my best to write good, clean, well-documented code. I should add that, in its current incarnation, I can imagine several things that might go wrong in certain cases which might effect the results. However, without better visualization (i.e. involving dense matching) it is very hard, if not impossible to know for certain.

Future Goals

My vision for this project is that it should support dense matching between images and be reimplemented in C++ both for speed and to allow more concise expression of the bundle adjustment problem (i.e. calculation of reprojection error without explicit vectorization). To that end, here is my priority queue:

  1. Reimplement the Python code in C++.
  2. Do a careful re-evaluation of appropriate data structures.
  3. Rewrite Python code accordingly, with more rigorous APIs.
  4. Add dense matching.

About

A simple structure from motion library.


Languages

Language:Python 67.7%Language:C++ 32.3%