Search code examples
opencvsurfstructure-from-motion

reconstruction with structure from motion


I am currently trying to write an algorithm of structure from motion with the help of the book mastering opencv 3. Now i have my algorithme who sort my set of image and triangulate point and reconstruct just the base line triangle for one pair of image sort before..

So this is my first result : reconstruction of foutain-c11 for this pair of image : foutain c11 image1 foutain c11 image2

I use the SURF algorithm implemented in opencv (with GPU) and i found 25000 features and after sort the feature by inlier and outlier i found 15000 features

So i try to reconstruct a real world model with my own camera (logitech brio 4k) this is my real world model now :

real world model image1

real world model image2

real world model image3

real world model image4

real world model image5

But i found only between 700 and 900 features and after sort by inlier outlier i found ~300 feature My question is : is it my real world model the problème or this kind of algorithm (SURF) does not workd for this kind of model thank you


Solution

  • I think SURF is not the problem here but there are multiple problems:

    1. Your images are smaller than the fountain (at least the uploaded ones) - means there is less pixels to create features from (roughly 5 times smaller images)
    2. Your images are blurry you need to have your model in focus. To get (nearly) everything in focus use a small aperture (high f number) but be aware that this leads to longer exposure times which may also create blurry images (at least for DSLR with tripod f/11 would be a good trade-off).
    3. The Fountain has more structure to find features than yours (the corners and cracks of the wall of the fountain vs. more or less big region of uniform gray).

    and this all sums up and with every point the number of feature decreases