Axial Flip Invariance and Fast Exhaustive Searching with Wavelets Matthew Bolitho
Outline Goals Shape Descriptors Invariance to rigid transformation Wavelets The wavelet transform Haar basis functions Axial ambiguity with wavelets Axial ambiguity Invariance Fast Exhaustive Searching
Wavelet based Shape Descriptor Voxel based descriptor Rasterise model into voxel grid Apply Wavelet Transform Subset of information into feature vectors Compare vectors
Shape Descriptor Goals Concise to store Quick to compute Efficient to match Discriminating Invariant to transformations Invariant to deformations Insensitive to noise Insensitive to topology Robust to degeneracies
Project focus Invariance to transformation Efficient matching
Scale, Translation, Rotation Invariance Invariance through normalisation Scale: scale voxel grid such that is just fits the whole model Translation: set the origin of voxel grid to be model center of mass Rotation: Principal Component Analysis
Principal Component Analysis Align model to a canonical frame Calculate variance of points Eigen-values of covariance matrix map to (x,y,z) axes in order of size [1]
Axial Ambiguity PCA has a problem Eigen-values are only defined up to sign In 3D, flip about x,y,z axes [1]
Resolving the Ambiguity Exhaustive search approach Compare all possible alignments (8 in 3D) Select alignment with minimal distance as best match An invariant approach: make comparison invariant to axial flip
The Wavelet Transform Transforms a function to a new basis: Haar basis functions Invertible Non-Lossy [2]
Haar Basis Functions Family of step functions i specifies frequency family j indexes family Orthogonal Orthonormal when scaled by Fast to compute Compute in-place
Constant Function
Family i=0
Family i=1
Family i=2
Nomenclature Adopt a more convenient indexing scheme i=2 i=1 i=0
Vector Basis Basis functions can also be represented as a set of orthonormal basis vectors: Wavelet transform of function g is:
Example Given a function Wavelet transform is Aside: given function
Resolving Axial Ambiguity Exploit wavelets to get: Axial Flip Invariance Make Wavelet Transform invariant to axial flip Fast Exhaustive Search Reduce the complexity of exhaustively testing all permutations of flip (recall: 8 in 3D)
Observation
Wavelets and Axial Flip Established a mapping for axial flip f 0 itself f 1 inverse of itself Pairs inverse of each other
Invariance Goal: Discard information that determines flip Goal: Not loose too much information Use mapping to make wavelet transform invariant to flip f 0 is already invariant | f 1 | is invariant Pairs are not, yet…
Invariance with pairs For a pair So, a+b and a-b behave like f 1 and f 0 under axial flip Note: when a+b and a-b are known, a and b can be known – no loss of information; transform invertible
Observation
A New Basis Redefine basis with a new mapping S( f ) Now all coefficients either map to themselves (+) or their inverse (-) under reflection
Invariance New basis defines reflections with change in sign of half the coefficients Invariance: Store f 0, f 3, f 6, f 7 Store absolute value of f 1, f 2, f 4, f 5, …
Invariance Example Given g and h from previous example Perform wavelet transform: Transform basis:
Invariance Evaluation Advantages Only perform single comparison Disadvantage Discards sign of half the coefficients may hurt ability to discriminate
Exhaustive Searching Rather than making comparison invariant, perform it a number of times: R is the set of all possible axial reflections Good Idea: If possible reduce this comparison cost fast exhaustive searching
Fast Exhaustive searching Distance between g and h, R(g) and h : Recall g i, h i : sign according to axial reflection
Fast Exhaustive searching Recall the mapping of R(g i ) g i, thus:
Fast Exhaustive searching Collect together terms to form:
Fast Exhaustive searching Now, we can express and only in terms of g i and h i We can calculate both from the decomposition of the first, with minimal extra computation
Fast Exhaustive search Example Given g and h from previous examples Transform basis:
Fast Exhaustive search Example Calculate gh + and gh - from S(W(g)) and S(W(h)) : Calculate norms:
Fast search Evaluation For minimal extra computation, all permutations of flip can be compared No information is discarded c.f. invariance
Higher Dimensions Both invariance and fast exhaustive search apply to higher dimensions As dimensionality increases, invariance needs to discard more and more information In 2D, 4 flips In 3D, 8 flips
Applying Transforms in 2D Transform rows
Applying Transforms in 2D Transform columns
Exhaustive Searching in 2D In 1D we had gh + and gh - In 2D we will have gh ++, gh +-, gh -+ and gh -- By applying both W(g) and S(g) in rows then columns, the 2D flip problem is reduced to two 1D flip problems This makes the cross multiplication easier
Cross multiplication gh ++, gh +-, gh -+ and gh -- are determined by cross multiplying the grid + * + = gh ++ etc
Exhaustive Searching in 2D
In 3D The extension into 3D is similar: 8 flips 8 gh terms 8 ways to combine gh terms
Conclusion Presented a way to overcome PCA alignment ambiguity With minimal extra computation With no loss of useful shape information
Conclusion II PCA still has problems Instability: Small change in PCA alignment can change voxel vote Gaussian smoothing can distribute votes better
Future Work Integrate into complete shape descriptor Concise to store Quick to compute Discriminating Robustness etc Actual precision vs. recall results
References [1] Misha Kazhdan: Alignment slides, October [2] Original teapot image from