Wiener Filtering - Theory

Wiener Subdivision
Presented by Koray KAVUKCUOGLU
Geometric Modeling
Spring 2004
Outline
• Introduction
– Concepts
• Wiener Filtering
– Theory
• Wiener Subdivision
– Midpoint Subdivision
– Application of Filter
– Parameters
• Results
May 05, 2004
2
Introduction
aim
– Derive and Implement a subdivison scheme
Based on Marc Alexa’s Wiener Filtering of Meshes
methodology
– Midpoint Linear Subdivision
– Create refined mesh
– Wiener Filtering
– Relocate vertices to obtain a smooth surface
May 05, 2004
3
Wiener Filtering
– Filtering of Irregular Meshes using Wiener Filter
– Recovering original smooth geometry from noisy data
May 05, 2004
4
Wiener Filtering - Theory
Mesh
– Triangular domain  (K,V)
connectivity info
vertices in R3
–Topological Distance ()
0 i j




 (i, j )  
1 {i, j}  K

min( (i, k )  1) {k , j}  K 


May 05, 2004
5
Wiener Filtering - Theory
– Neighborhood Definition
m-ring neighborhood
N m (i)  { j |  (i, j )  m}
Collection of rings, with radius up to m
– Expectation
linear operator
E ( a  b)   E (a)  E (b)
May 05, 2004
– Correlation
C (d (a, b))  E (ab)
Distance between two vertices
6
Wiener Filtering - Theory
Representation of Vertex Locations
vertex position in noisy mesh
vi  vi  ri
true vertex position
random noise contribution
Estimate each point as a linear sum of given noisy points
vi   aij vj   i
j
Find coefficients that minimize square of discrepancy
May 05, 2004
7
Wiener Filtering - Theory
Linear System
Solution of this
system gives,
coefficients aij
Ci ai  bi
bi  {C (d (vi , v j ))}
Ci  {C (d (v j , vk ))}
Need to define distance and correlation functions
1
i
d
d
2
d
May 05, 2004
8
Wiener Subdivision
development environment
– Language C++
– Mesh format GTS
– Windows XP
– Cygwin
external libs / tools
– TNT (template numerical toolkit)
Supersedes Lapack++
– Jama/C++ (uses TNT - linear system solution)
– Mesh Viewer for visualization
May 05, 2004
9
Wiener Subdivision
mesh data structure
– Tree  each triangle
divided into 4 childs
– Triangles
– Edge Sharing
May 05, 2004
10
Wiener Subdivision
mesh refinement
– Linear midpoint subdivision
May 05, 2004
11
Wiener Subdivision
filtering
– computing Topology
– compute m-ring neighborhood
BFS over vertices
– compute distance and correlation
va  vb
1
ex
x is parameterized
for smoothness control
May 05, 2004
12
Wiener Subdivision
filtering
– solve linear system
– LU decomposition method
– Jama/C++
May 05, 2004
13
Wiener Subdivision
parameters
– size of m-ring neighborhood (1, 2, …) <-m>
– smoothness parameter <-sp>
– fraction of old vertex location in new location <-p>
May 05, 2004
14
results
-m1 / -n3 / -sp2
May 05, 2004
15
results
-m1 / -n3 / -sp0
May 05, 2004
-m2 / -n3 / -sp2
16
results
-m1 / -n3 / -sp0
-m1 / -n3 / -sp2
-m2 / -n3 / -sp2
May 05, 2004
17
results
-m1 / -n3 / -sp2
May 05, 2004
-m1 / -n3 / -sp2 / -p0.3
18
results
-m2 / -n3 / -sp2
May 05, 2004
-m1 / -n3 / -sp2 / -p0.3
19
results
May 05, 2004
20
results
May 05, 2004
21
Questions?
May 05, 2004
22