Posts Tagged ‘photosynth’

Google Chrome PhotoSynth WebGL Viewer extension

April 13th, 2011

Google Chrome PhotoSynth WebGL Viewer extension

I definitively have been distracted, working on something else than PhotoSynth2CMVS, sorry about that ;-) . I have to say that I’m a Javascript lover and being able to do the same thing as my PhotoSynthDownloader and PhotoSynthViewer in Javascript was just irresistible!



As you can see in the video above, my Google Chrome extension allow you to view the point cloud of a PhotoSynth if you don’t have Silverlight using WebGL. This extension was very easy to implement thanks to 2 open-source project:

The source code of my extension should be available soon on my GitHub (with an html page working with Firefox 4 and Opera 11.5 using a PHP proxy to fix ajax cross-domain security issue).

Download

The Google Chrome extension is available for free on the Chrome Web Store.

Warning: I’ve released this extension without Microsoft approval so if they don’t accept it, I will remove it immediately.

Ideas

This is my first Google Chrome extension! It’s currently labeled 0.0.1 so don’t expect that much feature for now. But I’ve lot of idea of feature that I want to add to this viewer:

  • Use Web Workers to parse file in a background thread.
  • Display cameras positions and orientation as in my Ogre3D Viewer.
  • Display Bing map on the ground if the Synth is geo-referenced.
  • Display the collection of picture and if you click on one, animated the 3d camera to the corresponding viewpoint.

Donate

This is not directly linked to this post but if you have used one of my project:

…and find it useful, your help will be appreciated ;-) . The PayPal donate button is on the sidebar on the right. Thanks!

Share

PhotoSynth WebGL Viewer

April 5th, 2011

CMVS support in PhotoSynthToolkit:

First of all, I’m sorry this post is not about CMVS support in PhotoSynthToolkit :-( . Releasing the PhotoSynthToolkit with CMVS support is way more complicated than predicted… This is because it is not just a file conversion process (as in my PhotoSynth2PMVS). I have designed a library (OpenSyntherLib) that extract features, match them, build tracks and then triangulate them using PhotoSynth cameras parameters. The problem is that this library is highly configurable to match each dataset needs. So providing an automatic solution with good parameters is difficult.

The new PhotoSynth2CMVS tool generates bundler-compatible file (“bundle.out”). I’ve sent the bundle.out file of the V3D dataset to Olafur Haraldsson and he has managed to create a 36 million vertices point cloud with it! It will be showcased in a next post.

PhotoSynth WebGL Viewer:

As soon as I’ve seen the SpiderGL presentation at the 3D-Arch Workshop I’ve decided to implement a PhotoSynth viewer with WebGL! Thanks to Cesar Andres Lopez I’ve found XB PointStream which is very well designed and documented. Implementing a PhotoSynth Parser turns out to be super easy! Porting my PhotoSynthParser.cpp took less than 10min thanks to the jDataView and binary ajax developed by Vjeux. After 2 hours of hacking I got this first viewer:

 

I can’t host the viewer on my website has it is using a proxy to fix ajax cross-domain security issue (thus it will kill my bandwidth limit). So I’ve made a video to show you how it looks:

 

The viewer source code will be hosted on my GitHub and I’m working on a Google Chrome extension to by-pass the need of a proxy… Having a Google Chrome extension that replace the Silverlight viewer on photosynth.net would be nice too (if you don’t have Silverlight).

Share

New toolkits released

February 22nd, 2011

V3DSfMToolkit

ETH-V3D Structure-and-Motion software was created by Christopher Zach. The original source code with dataset is available at Christopher Zach Open-Source page (GPL license). I have created a windows port of V3DSfMToolkit with scripting wich is available as both binary (V3dSfMToolkit1.zip) and source (github).


I’ve tested this toolkit with the dataset given by Christopher Zach (see above screenshot) the reconstruction looks good but I only managed to get partial reconstruction from my own dataset.

MissStereo

Quasi-Euclidean Epipolar Rectification: MissStereo created by Pascal Monasse, Neus Sabater, Zhongwei Tang. The original source code is available at the IPOL related page under GPL license. You can download my windows port as both binary (MissStereo1.zip) and source (github).

I’m interested by this method to estimate the fundamental matrix without prior focal length knowledge.

PhotoSynthToolkit with XSI support

With the help of Julien Carmagnac (3D Graphist and XSI advanced user), I’ve duplicated the 3DS Max texture projection rendering solution for Softimage XSI:


As usual, the new version of PhotoSynthToolkit including this new feature is available on his dedicated page.

SFMToolkit with sequence matching

SFMToolkit was packaged with BundlerMatcher, my own matching solution using SiftGPU: this is a trivial quadratic exhaustive matching implementation. This implementation is well-suited for unstructured (unordered) pictures but if you are using a sequence of images as input (movie) you can reduce the complexity of the matching to linear. You can do that by only comparing frame N with frame N+1, N+2 [...], N+p. I’ve also fixed a bug that may occur on some system (Windows 7 x64 with UAC activated): thanks to Josh Harle for the bug reporting!

The new version of SFMToolkit is available on his dedicated page: this new feature is hidden, you need to edit “1 – Bundler.wsf” and set SEQUENCE_MATCHING_ENABLED to true (replace false by true).

3D-Arch’2011

I’m going to the 3D-Arch’2011 Workshop at Trento: 3D Virtual Reconstruction and Visualization of Complex Architectures. I hope to see amazing things about 3D reconstruction ;-)


Jean-Philippe Pons (CSTB, Sophia-Antipolis, France): High-resolution large-scale multi-view stereo

Share

Photorealistic mesh created with PhotoSynthToolkit

February 4th, 2011

I’ve updated the PhotoSynthToolkit, it now integrates the CameraExport 3DS Max script created by Josh Harle. I’ve converted his code from C# to C++ with his approval, so the 3DS Max script is now generated directly when you download a Synth with my PhotoSynthDownloader. So now you’ll find a “cameras.ms” file in the “bin” folder. In the video just below you’ll see the difference between the rendering using only vertex color and the one using texture projection:

For 3DS Max beginner like me, this is how I have setup the rendering:

  • add path to your synth: Customize -> Configure User Paths -> External Files -> add Path to your pmvs\visualize folder
  • when importing the obj file be sure to uncheck Flip ZY-axis
  • change environment global lighting: Rendering -> Environment -> Global Lighting: level 0.0, Ambient white

As usual the new toolkit his available on his dedicated page.

 
Share

Ogre3D PhotoSynth Viewer

January 26th, 2011

This viewer is now integrated with the new version of my PhotoSynthToolkit (v5). This toolkit allow you to download synth point cloud and thumbnails pictures. You can also densify the sparse point cloud generated by PhotoSynth using PMVS2 and then create great accurate mesh using MeshLab.

New feature of PhotoSynthToolkit v5:

  • Thumbnails downloading should be faster (8x)
  • New C++ HD picture downloader (download tiles and re-compose them)
  • Tools to generate “vis.dat” from previous PMVS2 call (analysing .patch file)
  • Working Ogre3D PhotoSynth viewer:
    • Can read dense point cloud created with my PhotoSynthToolkit using PMVS2
    • Click on a picture to change camera viewpoint
    • No-roll camera system

Warning: the PhotoSynth viewer may need a very powerful GPU (depending on the synth complexity: point cloud size and number of thumbnails). I’ve currently tested a scene with 820 pictures and 900k vertices on a Nvidia 8800 GTX with 768mo and it was working at 25fps (75fps with a 470 GTX and 1280mo). I wish I could have used Microsoft Seadragon :-) .

Download:

The PhotoSynthToolkit v5 is available on his dedicated page, please do not make direct link to the zip file but to this page instead. So people willing to download the toolkit will always get the latest version.

Video demo:

Future version

Josh Harle has created CameraExport: a solution for 3DS Max that enable to render the picture of the Synth using camera projection. I don’t have tested it yet but I’ll try to generate a file compatible with his 3DS Max script directly from my toolkit, thus avoiding to download the Synth again using a modified version of SynthExport. Josh has also created a very interesting tutorial on how to use mask with PMVS2:

Masks with the PhotoSynth Toolkit 4 – tutorial from Josh Harle on Vimeo.

Share