170 likes | 406 Vues
3D Model Reconstruction with Voodoo Camera Tracker. Jae Hyuk Kwak 2009 Fall CS682 George Mason Univ. Contents. What is Voodoo Camera Tracker How does it work? What is Video Trace “ My Video Tracer ” Goal of my project How does it work? Discussion Lessons learned.
E N D
3D Model Reconstruction with Voodoo Camera Tracker Jae Hyuk Kwak 2009 Fall CS682 George Mason Univ.
Contents • What is Voodoo Camera Tracker • How does it work? • What is Video Trace • “My Video Tracer” • Goal of my project • How does it work? • Discussion • Lessons learned
Voodoo Camera Tracker • Voodoo Camera Tracker is developedby Digi-lab, which belongs to Univ. Hannover, Germany. • http://www.digilab.uni-hannover.de • It calculates the position of camera in 3D coordination from sequence of image files, which is equals to a video file. • It also calculate the position of corner points in 3D coordination. • Works for two modes: rotation and free move. • Source code is NOT open.
How does Voodoo work? • 1. Find corner points for each frame. • 2. Track each corner point on prior frame to the next frame. • 3. Calculate the position of camera and the corner point in 3D coordination. Voodoo requires sequential image files not a video file. We can convert it by Virtual Dub, which is open source.
How does Voodoo work? Find corners Track corners
Video Trace • Video Trace: SIGGRAPH 2007 • Based on data from Voodoo Camera Tracker. • Interact with users at real time. • User pick points and connect the points. • Calculate the position of the points in 3D. • Reconstruct the 3D model. • Source code is NOT open. • Difference: Voodoo focuses on Camera while Video Trace is interested in Corners.
Goal of my project • Reconstruct 3D model. • Load up data from Voodoo Camera Tracker. • Interact with users in real time. • Pick points in 2D. • Adjust the position of the points. • Connect points. • Generate 3D data onto XML format, X3D
Personal Challenging Points • Using OpenCV • Using Voodoo Camera Tracker. • Using Eclipse CDT. • Using Google Test for TDD approach. • Building GUI framework with DOM level 3 specification from W3C. • Using X3D as output format.
How does it work? • Voodoo analyze a video file and generate data. • Load up Data: • Voodoo Camera information • Voodoo Feature Point information • Sequential image files. • Interact with users: • Pick points. • Adjust the position of the points • Connect the points • Store the reconstructed 3D model data
Data from Voodoo Voodoo analyze it.
User Interface • Tools • Draw points. • Draw lines. • Erase points. • Move points. • Navigation: • Go to start • Go to previous • Play • Go to next • Go to the last • Save X3D Green points: Corners from Voodoo
Depth information • The first depth information is from nearest feature point. • User can adjust the position from different angles. • Green points: • feature points from Voodoo. • Blue points: • points from User • Red points: • calculated Projection
Difference from Video Trace • Video Trace estimates the depth information by minimizing the distance between a surface and feature points inside of the surface. • It means user have to close a shape before moving to other frames. • My approach is simpler, because the depth information is given to each point rather than each surface.
Software detail • Size of binary file : 37M • Number of source files : 194 files (*.cpp, *.h) • Number of Test Cases : 197 cases. • Lines of code : 11,896 lines • Developing time : 7 weeks, Alone. • Source code is open on GoogleCode: • svn checkout http://mysimplevideotrace.googlecode.com/svn/trunk/ mysimplevideotrace
Discussion • Generating enough number of feature points is a very painful and time consuming task. • Moving camera introduces blurring noise., which Voodoo is weak at. • There is no strong reasonto use move clip.Several static imagesmay be enough; RealViz.
Lessons learned • User Interface of Voodoo is full of jargon. • Video Tracer still requires lots of manual tasks. • 3D reconstruction is not yet practical. • Building GUI system is non-trivial.