Efficient ICP Using K-D Tree

Document Sample
Efficient ICP Using K-D Tree Powered By Docstoc
					Optimization of ICP
Using K-D Tree

Baochun Bai
Instructor: Prof. Boulanger

n An  Introduction to ICP
n Algorithm Steps
n KD-Tree
n Method to compute rotation and
  translation matrix
n Results
Overview of ICP Algorithm
nA popular algorithm to register a data
 shape to a model shape
  – Data shape point set P{pi} with Np points
  – Model shape point set X{xi} with Nx points
  – Find the optimal rotation R and translation
    matrix T to transform P to X
  – Minimize the mean square error
Algorithm Steps of ICP

          P0 = P, R0 = I, T0 = (0, 0, 0)
n Initialize
n For each iteration k,
   – Find the closest points Yk = C(Pk, X) based
     on Euclidean distance
   – Compute the registration and find rotation
     matrix Rk and translation matrix Tk
   – Apply the registration, Pk+1 = Rk(Pk) + Tk
   – Stop if mean square error is less than a
Nearest Neighbor Search
n Performance  bottleneck of the algorithm
n Straightforward Approach
  – Sequential Search
  – O(NpNx), Np <= Nx, O(N2)
n K-D   Tree
  – A binary search tree
  – O(logN)
K-D Tree

nA balanced binary search tree for k-
 dimensional data
 – Root node: entire space
 – Leaf node: a mutually exclusive subspace
 – Intermediate node: key to partition the
   space, key is one of k dimensions
An Example of K-D Tree

Algorithm to Compute Rotation
and Translation Matrix
n Compute   the cross-covariance matrix of
 P and X

n Compute   the 4x4 symmetric matrix Q
Algorithm to Compute Rotation
and Translation Matrix
n Get  the unit eigenvector qR of Q, which
  is corresponding to the maximum
  eigenvalue of Q
n Compute the rotation matrix R from qR
n Compute the translation matrix T based
  on R
  – T = ux - Rup

n RunningTime
n Bunny Model
  – 31000 points
  – 601MHZ, 128Mb Memory

   Sequential Search   K-D Tree

   16 seconds          9300 seconds
Convergence of Mean Square

Shared By: