I have been working with Bundler and PMVS2 to reconstruct some of my old multi-camera scans from 2007. There is a lot of potential to get some really good output from them, but at the moment I’m getting incomplete results; only one side comes out.
As you can see, these are not complete scans.
Mysteriously, the bundle2pmvs command only processes some of the images with these sets (for other imagesets it does all). While a bit annoying, this can not be the cause of the single-side reconstruction, as there are still images from a full “orbit”:
C:bundlerexamplesphil>bundle2pmvs list.txt ./bundle/bundle.out
[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 18 images and 597 points…
[GetJPEGDimensions] File ./p01.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p02.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p03.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p04.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p05.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p08.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p12.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p13.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p14.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p16.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p20.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p21.jpg: ( 1704 , 2264 )
[GetJPEGDimensions] File ./p22.jpg: ( 1704 , 2264 )
The “phil” imageset is available in it’s own Flickr set if you want to test out yourself, or as a zip file. The images are pre-undistorted using the ImageIron software, which could be potentially causing the issues. I’ll have a go with an untouched image set tomorrow. Alternatively, it’s possible that the PMVS2 reconstruction only works on one side, and that to get a full result, I will need to reconstruct from a few angles and combine.
Edit 1: I have heard back from one of the PMVS2 developers, Yasutaka Furukawa, who was kind enough to field my question:
PMVS is a multi-view stereo software, meaning, it uses all the images simultaneously. So, we do not do pairwise. It should give you 360 degree reconstruction. My guess is that Bundler fails in registering all the photos. So, Bundler only registers images on one side (the other half have zero camera parameters and are ignored in bundler2pmvs).
It looks likely that Bundler is matching the 16 or so cameras around the wall as the same 3 cameras. It thinks all the perspectives are similar, and is ignoring conflicts in points on the subject (Phil) over the stronger feature match of the cameras. I guess this makes sense; the view of each camera is identical except for the subjects direction.
Edit 2: I have had some better results from masking the background. On looking at the bundler output it bacame apparent that Bundler was matching the (by far most) consistent appearance of the cameras as all the same bank of three. Results are still not 360 degrees, however.
Here are the input images and results:
- Masked image set in zip archive format
- The command line output for the “RunBundler” command
- Bundle output (.ply, bundle.out, etc.)
Edit 3: I’ve managed to optimize the image preparation, to get good results in PhotoSynth at least. I’ve kept the unique pattern, but removed the cameras that were leading to false positives.
Here is the current best imageset:
Here is the most successful (PhotoSynth-based) reconstruction so far:
Reza
Apr 7, 2010 -
Have you tried it with Bundler 0.4?
http://phototour.cs.washington.edu/bundler/distr/
http://phototour.cs.washington.edu/bundler/distr/bundler-v0.4-source.zip
Josh
Apr 7, 2010 -
Hi Reza, thanks for the pointer – I didn’t know there was a new version. I’ll update based on the results from that version.
…
Hmm no good. Still the same results. I’m in correspondence with the Bundler software author Noah Snavely at the moment, so maybe he can give some advice.
Adoniseagle
Jul 6, 2010 -
Hi I have make public bundler 0.4 binaries (windows 32/64) here :
http://francemapping.free.fr/Portfolio/Prog3D/BUNDLER.html
Josh
Jul 20, 2010 -
@Adoniseagle: I have tried this using the compiled source of 0.4 and it did not improve, though I might give your windows binaries a go and see if they’re better.
Shivank
Jul 18, 2010 -
Hi Reza and everybody
I need an urgent help from you. Actually I am using PMVS2 software for image reconstruction. I have got 12 images but I don’t know their camera parameters. I used Bundler to get the camera parameters. The 3d output (ply file) that I finally obtained from PMVS is very bad as is of the order of Kbytes when it should be of the order of Mbytes to make out something from the data. I don’t know if their is problem using Bundler and the consecutive camera parameters. Please help me guess the camera parametes in PMVS format or help me know where I am wrong or I am posting my 12 images get it for me.
Your help will be very much appreciated.
Thanks
Shivank
Jul 18, 2010 -
Hi
I have verified the output with the images that you used. Unfortunately, I am not getting result with that also. This means I am wrong somewhere. When I ran bundler I was able to retrieve the parameters of only the first 6 images (out of the 18 images that you provided, I don’t know why?) When I ran the PMVS with the first six images, it gave no output. In refinepatch it was outputting nan (not a number). I am totally lost now. It is not the problem with the s/w as you got the output correctly.
Please help me out of this problem.
Lardon
Oct 27, 2010 -
Hi Josh,
I have the same problem than you: just a half 3D modelling… Did you have some advice from the Bundler software author Noah Snavely?
Josh
Oct 27, 2010 -
@Lardon,
I solved this by
i) masking out details in the source images that were causing false-positives,
ii) using a slightly different toolset than the standard Bundler.
What are you using? Try using the SFM package I’ve modified from Henri Astre’s work.
Lardon
Oct 27, 2010 -
@Josh,
I am student, I work with Ubuntu 10.4 and I have to use bundler/CMVS/PMVS2/PoissonRecon/Meshlab for 3D modelling.
SFM is for windows, I can’t use it, what have you really modified in Bundler?
Adoniseagle
Oct 27, 2010 -
You could reach some linux binaries here :
http://francemapping.free.fr/Portfolio/Prog3D/PhotogrammetryToolbox.html
(you have also all the c++ source).
If you could wait a little bit, I could manage to compile you the binairies and make it easy to use via python script.
=> http://opensourcephotogrammetry.blogspot.com/2010/09/python-photogrammetry-toolbox.html
http://opensourcephotogrammetry.blogspot.com/2010/10/3d-reconstruction-example.html
Josh
Oct 29, 2010 -
@Lardon,
The SFM package uses Henri AstrĂ©’s BundleMatcher which uses the GPU and is much, much faster (and apparently slightly better) at matching.
Lardon
Nov 4, 2010 -
Hi,
thanks for your respond. I have another question: after bundler/CMVS/PMVS2/Meshlab I have a points image, using PoissonRecon gives me a smooth model but just in black and white. What is necessary to do to have a smooth-colored model.
Josh
Nov 5, 2010 -
@Lardon,
Check out this tutorial video at 20:35 to see how to copy colour across:
http://vimeo.com/14783202
Hope it is helpful
Lardon
Nov 10, 2010 -
Thanks Josh! Now 3D reconstruction looks great! thank you for your help. I have another questions.
Firstly, I can’t manage to open many layers in MeshLab from the terminal, is ti possible? when I write ” meshlab *.ply” in terminal, just the first document.ply is open in MeshLab.
And secondly, I have searched the command to execute filter from terminal (for coloring the smooth model), I don’t find it; Did someone have a clue?
Thanks for your help
Josh
Nov 11, 2010 -
@Lardon,
That’s great news. I’ve not had look at using the console at all, but it strikes me as a way of automating or at least simplifying another element of the reconstruction. Can you give me a link to the documentation on the Meshlab console, and I’ll take a look.
Lardon
Nov 18, 2010 -
@Josh,
I’ve regretably no documentation on the Meshlab console. I just use the official documentation : http://meshlab.sourceforge.net/wiki/index.php/MeshLab_Documentation . I suppose that is not really helpful.
Dao
Dec 22, 2010 -
@Josh and Lardon,
Meshlab provides meslabserver used for batch processing. I tried the batch processing for a some of the filters and it work fine. Unfortunately, for Poisson surface reconstruction, I can’t save the new mesh.
Can anybody here save the new mesh or I have to hack the code?
jazzros
Feb 4, 2011 -
Interesting technology.
I should be very useful.
greg downing
Feb 20, 2011 -
Dao,
You may want to try w/ the new Meshlabserver. I hadn’t tried previous versions but I was able to batch poisson w/ 1.3 w/ a batch file that looked like this:
meshlabserver.exe -i 1.ply -o output1.ply -s 01.mlx
meshlabserver.exe -i 2.ply -o output2.ply -s 01.mlx
and a .mlx file that looked like this:
if you are on windows you want to make sure you aren’t doing it in the “Program Files” directory, it doesn’t like spaces in the path.
Ujwal
Sep 3, 2011 -
Hi guys
Thanks for the write up. I am facing a new problem here in bundler. When I run the prep_pmvs.sh script its throwing a segmentation fault in the RadialUndistort function. I tried with the dataset that you provided and it still persists. Since you were able to run this successfully any idea whats the problem could be? has anyone else had a similar problem and solved this?
Josh
Oct 16, 2011 -
I’d suggest that everyone move to using Henri Astre’s much more up-to-date code! Thanks!
Richard
Jan 11, 2012 -
Hi. I guess bundler is designed for rigid objects. Maybe you need to find some non-rigid reconstruction algorithm to reconstruct the human body. Good luck.
abhilash sk
Jan 12, 2015 -
Hi guys i am new to bundler concept ,
i have downloaded the bundler file from Noah when i run it on windows for microscopic images i am not getting good sparse pt cloud or dense pt could
so can u guys suggest me what to do and where all can i optimize my bundler code to get more pts in sparse cloud
Josh Harle
Jan 22, 2015 -
I’d recommend using VisualSFM, or even have a go with Autodesk 123D Catch.