POV-Ray : Newsgroups : povray.binaries.images : MATCHMOVING in POV-ray : MATCHMOVING in POV-ray Server Time
1 May 2024 18:40:02 EDT (-0400)
  MATCHMOVING in POV-ray  
From: Kenneth
Date: 13 Feb 2014 17:40:01
Message: <web.52fd49177094def7c2d977c20@news.povray.org>
Hi everyone!

I've been away from the newsgroups for awhile (yet again), but I certainly
haven't been away from POV-Ray. I've been using it almost daily, working on two
long-standing personal projects.

First, I would like to add my congratulations and thanks to the POV team for
releasing v3.7! I can only imagine all of the hard work that went into that. I
haven't played with it much yet, as my two projects were developed in 3.62 and
were keeping me busy;  but I'm looking forward to discovering all the
new/improved features that have been added.

BTW, I recently retired (it's called 'early retirement' in the US.) So now I
have even MORE time to spend with POV-Ray ;-)

By far, the most interesting project I've been developing is 'matchmoving' (also
called camera tracking.) That is, taking a digital video and getting POV-Ray to
'match' the camera movement, while rendering CG objects for later inclusion
(compositing) into the video scene. My process makes use of various free apps:
VirtualDub (with a *magical* motion-analysis plug-in called Deshaker, by Gunnar
Thalin); SMPlayer (a GUI version of MPlayer) for converting my h.264-encoded
videos into individual frames; Edit Pad Lite, for editing the Deshaker data file
into a form that can be #read by POV-Ray; and a modified version of POV-Ray's
"Screen.inc" include file.

The Deshaker plug-in is not meant for 'matchmoving' per se; it's for smoothing
out bumps and shakes in a video. But the data file it generates (for its own use
in VirtualDub) is quite robust, and can instead be used in POV-Ray for
matchmoving, as I've discovered. The method to translate that raw data into
meaningful POV-Ray object/camera transformations took quite awhile to figure
out!

The matchmoving is done in POV-Ray, while rendering the CGI scene objects; the
camera there rotates in all axes to match the pan/tilt/roll movements in the
video, frame by frame. (My code can even match *spatial* 3D movement of the
camera-- with a fair amount of manual help.) Currently, my process is about
2/3rds automated and 1/3rd hard manual labor (only when *spatial* movement needs
matching, as in walking forward with the camera.) If the camera is stationary in
space-- with only pan/tilt/roll-- it's almost fully automated. The animation
scene file(s) to do this are probably the most complex code I've yet written,
and I continue to tweak it all.

The only current limitation of the process (and it's a big one) is that the
POV-Ray camera needs to remain at the origin ( <0,0,0> ). Thus, all the CGI
objects need to move instead.

I'm currently working on a way to automate the *spatial* matchmoving as well, by
detecting 'marker objects' in the video and using that data to create 3D
movements of the POV-Ray camera (or objects), with the correct perspective and
vanishing point. (Deshaker is no help with that.) It's a tricky procedure, as
the data originates from 2D 'planar' images!

This is just a brief description; more details to come.

The results look really promising so far; I will post a recent animation test at
p.b.animations. Meanwhile, here's a rather non-informative still frame ;-)


Post a reply to this message


Attachments:
Download 'matchmoving_still_frame.jpg' (252 KB)

Preview of image 'matchmoving_still_frame.jpg'
matchmoving_still_frame.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.