Git Product home page Git Product logo

Comments (11)

sweeneychris avatar sweeneychris commented on August 23, 2024

There are several potential areas for improvement here. First, it appears
that you do not have very many feature matches between images. Try
adjusting Lowes ratio and see is that helps (higher means more matches).
Second, any of the matches that you do have are being filtered with the
loop rotation before any estimation is being done. You can increase this
threshold to maybe 6 or 8 degrees and see if that helps as well.

Finally, if this is all taken with the same camera then you can recover the
known camera intrinsics beforehand with some sort of calibration technique.
Supplying a calibration fine and setting camera intrinsics to constant
should help quite a lot with the estimation

On Sun, Feb 22, 2015, 12:58 AM Anne van Rossum [email protected]
wrote:

I created 46 pictures from different angles from a chair in my house. This
is the corresponding gist:
https://gist.github.com/mrquincle/1071001a5ab180eb56ba.

I only adjusted:

--images=/home/anne/mypictures/3d/*.jpeg
--output_matches_file=output.matches

How many pictures do I need? Or do I do something wrong? I have to admit
the pictures are not taken in the best lighting conditions... Is there a
(small) data set available that I can use to test?


Reply to this email directly or view it on GitHub
#6.

from theiasfm.

sweeneychris avatar sweeneychris commented on August 23, 2024

Also, a good dataset to try is the Strecha dataset. It works best if you
supply the camera intrinsics file and set the constant intrinsics to true:
http://cvlabwww.epfl.ch/data/multiview/denseMVS.html

On Sun, Feb 22, 2015, 9:27 AM Chris Sweeney [email protected]
wrote:

There are several potential areas for improvement here. First, it appears
that you do not have very many feature matches between images. Try
adjusting Lowes ratio and see is that helps (higher means more matches).
Second, any of the matches that you do have are being filtered with the
loop rotation before any estimation is being done. You can increase this
threshold to maybe 6 or 8 degrees and see if that helps as well.

Finally, if this is all taken with the same camera then you can recover
the known camera intrinsics beforehand with some sort of calibration
technique. Supplying a calibration fine and setting camera intrinsics to
constant should help quite a lot with the estimation

On Sun, Feb 22, 2015, 12:58 AM Anne van Rossum [email protected]
wrote:

I created 46 pictures from different angles from a chair in my house.
This is the corresponding gist: https://gist.github.com/
mrquincle/1071001a5ab180eb56ba.

I only adjusted:

--images=/home/anne/mypictures/3d/*.jpeg
--output_matches_file=output.matches

How many pictures do I need? Or do I do something wrong? I have to admit
the pictures are not taken in the best lighting conditions... Is there a
(small) data set available that I can use to test?


Reply to this email directly or view it on GitHub
#6.

from theiasfm.

mrquincle avatar mrquincle commented on August 23, 2024

I'm going through the documentation at http://cs.ucsb.edu/~cmsweeney/theia/ but couldn't find yet the format for the camera calibration settings.

I have to say that you guys made something absolutely gorgeous here. I spend yesterday half a day trying to install VisualSFM which made me compile lots of different tools, one for SIFT (running with CUDA), one for bundle adjustment, one for graph cuts, one for SfM itself, one for image clustering, etc. etc. Yours was a walk in the park.

If you need help, for example with documentation, please indicate what is most urgent somewhere. This is really promising software!

from theiasfm.

sweeneychris avatar sweeneychris commented on August 23, 2024

Glad you are finding it useful! I hope you find it easy to extend in
addition to use out of the box.

More documentation in the website will be added as I have time, but the
code should actually be well documented in itself. The calibration format
is here:
https://github.com/sweeneychris/TheiaSfM/blob/master/src/theia/io/read_calibration.cc

Note that this is the proper format (with principal point explicitly
listed) and not as it is described in the .h file. I would welcome a pull
request to fix this and add more documentation as you find useful :)

On Sun, Feb 22, 2015, 4:01 PM Anne van Rossum [email protected]
wrote:

I'm going through the documentation at
http://cs.ucsb.edu/~cmsweeney/theia/ but couldn't find yet the format for
the camera calibration settings.

I have to say that you guys made something absolutely gorgeous here. I
spend yesterday half a day trying to install VisualSFM which made me
compile lots of different tools, one for SIFT (running with CUDA), one for
bundle adjustment, one for graph cuts, one for SfM itself, one for image
clustering, etc. etc. Yours was a walk in the park.

If you need help, for example with documentation, please indicate what is
most urgent somewhere. This is really promising software!


Reply to this email directly or view it on GitHub
#6 (comment).

from theiasfm.

mrquincle avatar mrquincle commented on August 23, 2024

Thanks, that looks easy enough.

By the way I didn't trust the sentence Successfully extracted 16384 features for every image in my output. I do not expect to have the same number of (SIFT) features for each image. I've been comparing the SIFT results of Theia:

./extract_features --input_imgs=some.jpg --img_output_dir=$HOME --descriptor=SIFT

with that of SiftGPU (using the defaults of the TestWinGlut utility).

You can see the results in my gist: https://gist.github.com/mrquincle/1071001a5ab180eb56ba or without downloading at https://gist.github.com/mrquincle/1071001a5ab180eb56ba/revisions

The SIFT feature detector software in Theia does seem to find way too many features. I'll have to find out first how to tone it down a bit.

from theiasfm.

sweeneychris avatar sweeneychris commented on August 23, 2024

They only reason that they all have the same number of descriptors is
because I limit the total number of descriptors possible (this value can
easily be changed in the FeatureExtractor class). I am not an expert in
feature detection so if you have good insight on how to tune the parameters
to closely match siftgpu I would be eager to hear

On Sun, Feb 22, 2015, 7:39 PM Anne van Rossum [email protected]
wrote:

Thanks, that looks easy enough.

By the way I didn't trust the sentence Successfully extracted 16384
features for every image in my output. I do not expect to have the same
number of (SIFT) features for each image. I've been comparing the SIFT
results of Theia:

./extract_features --input_imgs=some.jpg --img_output_dir=$HOME --descriptor=SIFT

with that of SiftGPU (using the defaults of the TestWinGlut utility).

You can see the results in my gist:
https://gist.github.com/mrquincle/1071001a5ab180eb56ba

The SIFT feature detector software in Theia does seem to find way too many
features. I'll have to find out first how to tone it down a bit.


Reply to this email directly or view it on GitHub
#6 (comment).

from theiasfm.

mrquincle avatar mrquincle commented on August 23, 2024

Apparently the peak threshold default used by siftgpu is much higher (it uses also vlfeat as underlying lib). If I adjust the code and hardcode a value of 4 or 5 it will go on and create several 3d models.

./view_reconstruction --reconstruction=output.3d-0

Subsequently shows some point cloud, but it's hard to figure out without images added to the reconstruction. But I guess that's another tool altogether. 💤

from theiasfm.

sweeneychris avatar sweeneychris commented on August 23, 2024

On my todo list is to write a nice program to output files for CMVS/PMVS. This is a low priority at the moment though.

With de9cb27 I am able to reconstruct the Building dataset from the ICCV13 project nicely (included with their code): http://www.zhpcui.org/ICCV2013_SfM/

It isn't a perfect reconstruction since the configuration is close to collinear, but you can definitely make out the building decently. I did have to bump up the minimum number of inlier correspondences during geometric verification to 100 though... Maybe this is related to Theia's tendancy to extract too many descriptors? If you can send me the images for your chair reconstruction I can try to play around with it a bit

from theiasfm.

sweeneychris avatar sweeneychris commented on August 23, 2024

Are you still having any issues with reconstructions? Please close this issue if you are not.

from theiasfm.

mrquincle avatar mrquincle commented on August 23, 2024

@sweeneychris I got a 3D scene out of it, but didn't have time to make it really nice yet. The peak threshold however was a key change here. I will do another one to reconstruct my living room. If I have more time I will build up more diverse datasets so I can tell more specifically what might be improved. Awesome software of course!!

from theiasfm.

sweeneychris avatar sweeneychris commented on August 23, 2024

Great! I would love to have feedback on what works well and does not. By the way, I have added support for exporting Theia reconstructions as PLY files as well as exporting them for dense reconstruction with CMVS/PMVS. Haven't uploaded the documentation yet, but they exist in applications/ and should be easy enough to follow

from theiasfm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.