Temporally Coherent Completion of Dynamic Shapes

shape-teaser
Left: Real-time 3D acquired dynamic performance geometry typically exhibits holes that are often temporally persistent. Right: Hole-filled, temporally coherent, and detailed sequence of watertight surfaces reconstructed using our method.

 

We present a novel shape completion technique for creating temporally coherent watertight surfaces from real-time captured dynamic performances. Because of occlusions and low surface albedo, scanned mesh sequences typically exhibit large holes that persist over extended periods of time. Most conventional dynamic shape reconstruction techniques rely on template models or assume slow deformations in the input data. Our framework sidesteps these requirements and directly initializes shape completion with topology derived from the visual hull. To seal the holes with patches that are consistent with the subject’s motion, we first minimize surface bending energies in each frame to ensure smooth transitions across hole boundaries. Temporally coherent dynamics of surface patches are obtained by unwarping all frames within a time window using accurate interframe correspondences. Aggregated surface samples are then filtered with a temporal visibility kernel that maximizes the use of nonoccluded surfaces. A key benefit of our shape completion strategy is that it does not rely on long-range correspondences or a template model. Consequently, our method does not suffer error accumulation typically introduced by noise, large deformations, and drastic topological changes. We illustrate the effectiveness of our method on several high-resolution scans of human performances captured with a state-of-the-art multiview 3D acquisition system.

Resources:    Paper »    Video »

@article{Li:2012:TCC,
author = "Hao Li and Linjie Luo and Daniel Vlasic and Pieter Peers and Jovan Popovi{'c} and
Mark Pauly and Szymon Rusinkiewicz",
title = "Temporally Coherent Completion of Dynamic Shapes",
journal = "ACM Transactions on Graphics",
year = "2012",
month = jan,
volume = "31",
number = "1"
}