ProFORMA Demonstration

ProFORMA appears to be an interesting take on Structure from Motion (technology that uses sequential video frames and scale invariant feature recognition to build 3D models of objects in a video segment). I worked extensively with these sorts of techniques with Visre when we were building 3D models of buildings from vehicle mounted cameras. This is neat in the webcam/live regard. Below is a video introducing ProFORMA and showing its live on-line generation of textured 3D models.

Below is a video from a case study from Instinct Tech.

It shows 4096 bot planes handled solely on a single GPU parallel to game rendering.

The bot planes use steering behaviours for flocking, navigation and obstacle avoidance. The planes are fully lit and rendered (with shadows). The demo runs with interactive frame rate on main stream CUDA enabled graphics cards. In comparison the same simulation without utilizing CUDA achieved a similar frame rate on a decent machine with only 512 planes in our tests. The steering computation for 512 planes requires about 260,000 neighbour queries while for 4096 planes this grows to a whopping 16 Million queries. The algorithm can be easily parallelized, explaining the advantage of technologies like CUDA for this kind of problem. Even if there is a potential to optimize the algorithm for CPU the clear benefit for us is a heavily reduced development time.

One of the best presentations at SIGGRAPH 2009.

Content-Preserving Warps for 3D Video Stabilization

Per the website at University of Wisconsin-Madison:

"In this paper, we describe a technique that transforms a video from a hand-held video camera so that it appears as if it were taken with a directed camera motion. Our method can adjust the video to appear as if it were taken from nearby viewpoints, allowing for 3D camera movements to be simulated. By aiming only for perceptual plausibility, rather than accurate reconstruction, we are able to develop algorithms that can effectively recreate dynamic scenes from a single source video. Our technique first recovers the original 3D camera motion and a sparse set of 3D, static scene points using an off-the-shelf structure-from-motion system. Then, a desired camera path is computed either automatically (e.g., by fitting a linear or quadratic path) or interactively. Finally, our technique performs a least-squares optimization that computes a spatially-varying warp from each input video frame into an output frame. The warp is computed to both follow the sparse displacements suggested by the recovered 3D structure, and avoid deforming the content in the video frame. Our experiments on stabilizing challenging videos of dynamic scenes demonstrate the effectiveness of our technique."