Wavelets

386 Views

Download Presentation
## Wavelets

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Wavelets**Fast Multiresolution Image QueryingJacobs et.al. SIGGRAPH95**Outline**• Overview / Background • Wavelets • 2D Image matching • L1, L2 metrics • Wavelet metric • Evaluation • Use in 3D**Image matching**• 2D analogue of 3D shape matching • Raster instead of XYZ**What are we trying to match?**• Looking for different images of the same things? • Different projections • Different colors • Looking for images that look the same? • Look for similar shapes and colors • Metric to discern like human eye**Wavelets**• Decompose a signal into component parts • Fourier analysis: a signal can be represented as a (possibly infinite) sum of sine and cosine functions • Signal becomes a set of wavelet coefficients • Coefficients represent features of signal**Wavelets II**• Signal can be completely reconstructed from all the coefficients • Signal can be partially reconstructed from some coefficients**Wavelets for 2D Images**• Each color plane in image is signal • Coefficients will represent visual features in the image • Store as many coefficients as needed • Image compression (see next slide) • c.f. Statistical shape descriptors**Wavelet Reconstruction**SIGGRAPH 96 Course Notes: Wavelets in Computer Graphics**Comparing Images**• Develop a metric that describes how closely two images match • Smaller difference in metric = images more similar**Image metrics**• Comparing images Q and T, with dimensions i,j • L1-Norm • For each pixel in Q, calculate the difference between Q[i,j] and T[i,j] • Add absolute value of differences of all i,j to form metric**Image metrics II**• L2-Norm • For each pixel in Q, calculate the square of the difference between Q[i,j] and T[i,j] • Add for all i,j, and take square root • Better than L1?**Image metrics III**• Problems with L1 and L2 • Expensive to compute / compare: O(i*j) • Not discriminating in cases with • Color Shift • Misregistration • Noise / Dithering • In general, not good descriptors • c.f. D1, D2 in 3D**Wavelets as image metrics**• Capture features of images e.g. edges in coefficients • Use Haar wavelets • Square basis functions • Easy to implement and compute • Calculate coefficients, truncate, quantize**Truncation**• 128x128 image has 1282 coefficients • Truncation = only storing largest ‘n’ coefficients • ‘n’ ~ 40-60 depending on exact use • Discarding smaller coefficients discards high frequency information i.e. detail • Loss of that information is desirable**Quantization**• Reduce precision of wavelet magnitude • Large +ve +1 • Large –ve -1 • Else 0 • Turns out this works well for matching**Wavelet metric**• Q,T are query and target image coefficients • w is weighting function**Weighting function**• Weighting function applied to give particular pairs of coefficients different significance in comparison • Gives ability to statistically tune the metric • Determined experimentally from dataset (Appendix A) • Weights expensive to calculate • Compute fewer • Bins to map range of i,j onto a weight**Wavelet metric II**• For i=0, j=0 value in Q and T is proportional to the average overall color • From quantization, use ≠**Calculating coefficients**• Standard two-dimensional Haar wavelet decomposition • Decompose each row, then decompose each column of the result • Trivial to implement**Wavelet metric III**• Final metric is • T[0,0] • Sign, i and j of n largest coefficients in T**Faster Matching**• To speed up matching, use 6 arrays • One for each combination of R,G,B,+,- • DR+,DR-, … • Each i,j in Dx is a list of all images with a metric coefficient in that color range, with that sign**Evaluation**• Better than L1 and L2 • Matches to ~1% of database • Compact • Fast to compare: similar complexity to an 8x8 pixel image L1/L2 for any resolution • More robust • Misregistration • Color shifting • Dithering • Different resolutions**Evaluation III**• Limits • Scaling ~1.5 times • Rotation ~20 degrees • Translation ~ 15% of width**Matching in 3D**• Can this be used in 3D as well • Compares image rather than geometry • Render 3D into voxels? • Projection of 3D object into 2D? • In general, other 3D specific methods probably much better