Archive for the ‘photogrammetry’ category

Moving on

September 26th, 2011

I’ve spent almost 4 years at axyz.fr but it was time for me to move on. I’ve quit my job and I’ve started to work at Acute3D in September: they are working in the structure from motion and dense 3d reconstruction field. You can try their dense mesh creation technology by using Autodesk Photofly. Photofly is calibrating the cameras using Autodesk implementation and then the mesh is generated using Acute3D technology (Autodesk has bought a license of their meshing technology).

I’m working on the development of a calibration system (like bundler) at Acute3D. I’ve decided to work with them as I think that they do have the best technology available and I wanted to work with very skilled people working in computer vision.

I don’t know if I’ll be able to continue writing on this blog as this new job is really more interesting and challenging for me.

Share

PhotoSynth viewer with pose estimator WebService

August 8th, 2011

I’ve spent 2 days implementing a WebService in C++. I’ve lost 1 day trying to use WebSocket (this wasn’t a good idea as Firefox and Google Chrome were not implementing the same version). I’ve also lost a lot of time with the beautiful drag and drop API… who is responsible for this mess? Anyway I’ve managed to create this cool demo:

The principle is very simple: the user drag and drop an unknown picture on the webpage. The picture is resized on the client side using canvas and then sent to the webservice using a classic POST Ajax call with the picture sent in jpeg base64. Then the pose estimator web service try to compute the pose and send an xml response. Then the pose is applied to the Three.js camera used in my PhotoSynth viewer.

I have cheated a little as I’ve used shots of a video with known intrinsic parameters. But I’ve two options to handle really unknown pictures:

  • If the jpeg as Exif I can use it to find the focal (using a CCD database and a JS Exif parser)
  • Otherwise I am planning to implement this in C++

I hope you enjoy this demo as much as I do and that Google and Microsoft are working in that direction too (especially Microsoft with Read/Write World…)

Share

Google Chrome PhotoSynth Viewer using Three.js

July 21st, 2011

I’m finally back from holiday and found enough time to update the Google Chrome extension with my new PhotoSynth Viewer based on Three.js.

You can download the new Google Chrome extension from the chrome web store: Three.js Google Chrome extension. The old one is still available but this is not a good idea to have both activated at the same time… Do not hesitate to use the donate button ;-) (located in the right side-panel) if you find this extension useful… thanks!

Warning: this extension may use a lot of ram (point cloud are store in memory as regular js array not TypedArray).

Possible improvement

  • Add picture thumbnails in the 3d environment (may become impossible without Microsoft adding CORS to the jpeg due to WebGL security issue)
  • Add a free flight camera (easy to add but harder without roll: I’ve added features to Three.js Quaternion class for this purpose, but still not ready)
  • Make the download point cloud link work! This is not my fault (I hope) I think that this is a Chrome bug. The only workaround that I can think of (without being sure that it would work) for this issue would be that Microsoft host downloadify.swf on photosynth.net… please ask them to do that!
  • Add a Meshlab like camera system (mouse handling + white sphere): if you know Three.js please give it a try!

Credits

Please take a look at the list of all dependencies used for this demo in my previous post describing this PhotoSynth viewer.

Share

PhotoSynth Viewer using Three.js

June 20th, 2011

I wasn’t happy with my previous WebGL PhotoSynth Viewer: my javascript parser was aware of the position of the cameras and I wasn’t doing anything useful with it… Furthermore I was only relying on XB-PointStream for the rendering (which manage to display perfectly a dense point cloud). But I definitively want to do more fancy stuff. So Goodbye XB-PointStream, Hello Three.js!

The only trouble with this demo is that it is using a proxy PHP page to bypass ajax cross-domain security issue. Thus I won’t put it online (as it would kill my bandwidth limit). But I’ll try to update my Google Chrome extension so that you can give it a try too (will take time and I’m going in holiday…sorry).

On the tech side, this demo is using:

Other news

On another side I’ve been up to:

  • compile a bundler version with PBA support (with bad result: fast BA but erroneous point cloud)
  • create a new framework for fast matching: already 3x faster than OpenSynther (which is already really fast). This new framework is compatible with multi-gpu and multi-cpu + you can add constraints to memory usage!
  • create an hybrid AR solution for my current work based on my panorama tracking demo and using gyroscope information to fix the computing time of the vision part
Share

PhotoSynthToolkit video tutorials

June 20th, 2011

Josh Harle from Neonascent has created 5 video tutorials explaining how to use my PhotoSynthToolkit:

  1. Creating Synth: http://vimeo.com/14796939.
  2. Downloading and Viewing: http://vimeo.com/25072862.
  3. Viewing, Dense Reconstruction: http://vimeo.com/25071703.
  4. Meshing model, creating texture: http://vimeo.com/25071366.
  5. Projecting Hi-Res Images: http://vimeo.com/25072168.

I’ve also added the video tutorials links on the PhotoSynthToolkit page.

You can thank him on the pgrammetry forum: see Josh Harle announcement.

Thanks Josh!

Share