Wavelets for Computer Graphics. AK Computergrafik WS 2005/06. Markus Grabner

Similar documents
Wavelets and Multiresolution Processing

Wavelets For Computer Graphics

Digital Image Processing

Multiresolution image processing

Wavelets in Pattern Recognition

Let p 2 ( t), (2 t k), we have the scaling relation,

The New Graphic Description of the Haar Wavelet Transform

An Introduction to Wavelets and some Applications

Digital Image Processing

Introduction to Mathematical Programming

Digital Image Processing

( nonlinear constraints)

Multiresolution schemes

Multiresolution schemes

Chapter 7 Wavelets and Multiresolution Processing

c 2010 Melody I. Bonham

Discrete Wavelet Transform: A Technique for Image Compression & Decompression

Defining the Discrete Wavelet Transform (DWT)

1 The Continuous Wavelet Transform The continuous wavelet transform (CWT) Discretisation of the CWT... 2

Two Channel Subband Coding

Wavelets in Scattering Calculations

1 Introduction to Wavelet Analysis

From Fourier to Wavelets in 60 Slides

Wavelets and Multiresolution Processing. Thinh Nguyen

Revolutionary Image Compression and Reconstruction via Evolutionary Computation, Part 2: Multiresolution Analysis Transforms

Lecture Notes 5: Multiresolution Analysis

Boundary functions for wavelets and their properties

EE67I Multimedia Communication Systems

Study of Wavelet Functions of Discrete Wavelet Transformation in Image Watermarking

MULTIRATE DIGITAL SIGNAL PROCESSING

Scientific Computing: An Introductory Survey

Machine Learning: Basis and Wavelet 김화평 (CSE ) Medical Image computing lab 서진근교수연구실 Haar DWT in 2 levels

LINEAR SYSTEMS (11) Intensive Computation

Multiresolution Analysis

A First Course in Wavelets with Fourier Analysis

Lectures notes. Rheology and Fluid Dynamics

Lecture 16: Multiresolution Image Analysis

Wavelets and Filter Banks Course Notes

Image Compression. 1. Introduction. Greg Ames Dec 07, 2002

Module 4 MULTI- RESOLUTION ANALYSIS. Version 2 ECE IIT, Kharagpur

Multiscale Image Transforms

MLISP: Machine Learning in Signal Processing Spring Lecture 10 May 11

Chapter 7 Wavelets and Multiresolution Processing. Subband coding Quadrature mirror filtering Pyramid image processing

Multiresolution analysis & wavelets (quick tutorial)

Denoising and Compression Using Wavelets

Sparse linear models

Problem with Fourier. Wavelets: a preview. Fourier Gabor Wavelet. Gabor s proposal. in the transform domain. Sinusoid with a small discontinuity

Wavelets: a preview. February 6, 2003 Acknowledgements: Material compiled from the MATLAB Wavelet Toolbox UG.

ECG782: Multidimensional Digital Signal Processing

Development and Applications of Wavelets in Signal Processing

Linear Algebra (Review) Volker Tresp 2018

Wavelets and Image Compression. Bradley J. Lucier

Finite-dimensional spaces. C n is the space of n-tuples x = (x 1,..., x n ) of complex numbers. It is a Hilbert space with the inner product

Wavelets Marialuce Graziadei

L. Yaroslavsky. Fundamentals of Digital Image Processing. Course

Module 4. Multi-Resolution Analysis. Version 2 ECE IIT, Kharagpur

Lecture 7 Multiresolution Analysis

CHAPTER 4 PRINCIPAL COMPONENT ANALYSIS-BASED FUSION

Wavelet Transform. Figure 1: Non stationary signal f(t) = sin(100 t 2 ).

Course and Wavelets and Filter Banks

Image Compression by Using Haar Wavelet Transform and Singular Value Decomposition

Linear Algebra for Machine Learning. Sargur N. Srihari

Wavelet Analysis. Willy Hereman. Department of Mathematical and Computer Sciences Colorado School of Mines Golden, CO Sandia Laboratories

Introduction to Discrete-Time Wavelet Transform

arxiv: v1 [cs.oh] 3 Oct 2014

Image Compression Using the Haar Wavelet Transform

MGA Tutorial, September 08, 2004 Construction of Wavelets. Jan-Olov Strömberg

Review and problem list for Applied Math I

Construction of Multivariate Compactly Supported Orthonormal Wavelets

Transform methods. and its inverse can be used to analyze certain time-dependent PDEs. f(x) sin(sxπ/(n + 1))

Wavelets on hierarchical trees

Sparse Solutions of Linear Systems of Equations and Sparse Modeling of Signals and Images: Final Presentation

SIGNAL COMPRESSION. 8. Lossy image compression: Principle of embedding

Sparse Solutions of Systems of Equations and Sparse Modelling of Signals and Images

Multimedia Networking ECE 599

Math Linear Algebra

Wavelet Transform And Principal Component Analysis Based Feature Extraction

Discrete Wavelet Transform

Proyecto final de carrera

A Tutorial on Wavelets and their Applications. Martin J. Mohlenkamp

Linear Algebra (Review) Volker Tresp 2017

Applied Machine Learning for Biomedical Engineering. Enrico Grisan

Numerical tensor methods and their applications

Analysis of Fractals, Image Compression and Entropy Encoding

Figure 4.26: Code and Test for the One-Dimensional Inverse

9. Numerical linear algebra background

Invariant Scattering Convolution Networks

Advanced Digital Signal Processing -Introduction

Chapter 3 Transformations

Philosophiekolloquium FB Philosophie KGW

Numerical Methods. Elena loli Piccolomini. Civil Engeneering. piccolom. Metodi Numerici M p. 1/??

Wavelets. Lecture 28

Class notes: Approximation

Approximate Query Processing Using Wavelets

Introduction to Wavelets and Wavelet Transforms

Coding the Matrix Index - Version 0

Introduction to time-frequency analysis Centre for Doctoral Training in Healthcare Innovation

Dot Products. K. Behrend. April 3, Abstract A short review of some basic facts on the dot product. Projections. The spectral theorem.

Math 671: Tensor Train decomposition methods II

Wavelets and Signal Processing

Transcription:

Wavelets for Computer Graphics AK Computergrafik WS 2005/06 Markus Grabner 1/49

Content Introduction Simple example (Haar wavelet basis) Mathematical background Image operations Other useful properties MATLAB examples 2/49

Introduction Large data Analyzation Visualization Manipulation Single value not meaningful Domains Time, space,... Frequency (Fourier) Mix? 3/49

Fourier vs. wavelets (1) 4/49

Fourier vs. wavelets (2) Fourier: localized in frequency only (each coefficient captures entire signal) Wavelets: localized in time and frequency 5/49

History First ideas by Weierstrass (1873) Not invented, but used in different fields: Seismology (term coined by Ricker, 1940) Physics Signal and image processing Multiresolution analysis (Mallat, 1989) 6/49

Wavelet properties Hierarchical representations Linear time complexity (conversion to/from) Sparsity (compression, efficiency) Adaptibility (wide variety of functions/domains) 7/49

MR group @ Caltech Prof. Peter Schröder Linear elasticity and wavelets 8/49

Haar wavelet basis Alfred Haar, 1909 Simplest wavelet basis Example 9/49

Example: sequence of 4 values [ 9 3 2 6 ] 10/49

Build averages Averages [ 9 3 2 6 ] [ 6 4 ] 11/49

Build detail coefficients Averages Detail Coefficients [ 9 3 2 6 ] [ 6 4 ] [ 3-2 ] 12/49

Repeat procedure Resolution Averages Detail Coefficients 4 [ 9 3 2 6 ] 2 [ 6 4 ] [ 3-2 ] 1 [ 5 ] [ 1 ] 13/49

Wavelet transform Resolution Averages Detail Coefficients 4 [ 9 3 2 6 ] 2 [ 6 4 ] [ 3-2 ] 1 [ 5 ] [ 1 ] wavelet transform [ 5 1 3-2 ] 14/49

Algorithms Decomposition Compute averages Compute detail coefficients Continue at lower level Reconstruction Apply detail coefficients Continue at higher level 15/49

Mathematical background Vector spaces Involved functions Orthogonality Normalization Compression 16/49

Vector spaces Collection of things Addition and scalar multiplication Can be Arrays of scalar values Functions... Example Nested spaces 17/49

Vector space example One pixel image: function constant in [0,1) Operations well defined vector space V 0 Two pixels: constant in [0,0.5) and [0.5,1) V 1 1 V 0 V 1 V 2 0 0 1 18/49

Nested vector spaces Previous example: each vector in V j is also in V j+1 Formally: V 0 V 1 V 2 19/49

Tools for vector spaces Basis: j i x:=2 j x i, i=0,,2 j 1 x:={ 1 for 0 x1 } 1 0 otherwise 0 Support: region where function is nonzero Compact support: supported over bounded interval Inner product: we choose f g := 0 1 f x g xdx 0 1 20/49

Wavelet definition Vectors u, v orthogonal if u v =0 W j orthogonal complement of V j in V j+1 Wavelets: collection of linearly independent functions ij (x) spanning W j Properties: j i (x) of W j and j i (x) of V j form basis in V j+1 ij (x) of W j and ij (x) of V j are orthogonal Informal: wavelets capture details beyond V j 21/49

Scaling functions and wavelets 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1-1 -1 22/49

Relations between vector spaces V 3 V 2 V 1 + + + V 0 V 0 W 0 W 1 W 2 23/49

Wavelet properties Useful properties (not shared by all wavelet bases) Orthogonality All basis functions orthogonal to each other Normalization Basis function u(x) is normalized if Normalized Haar basis: u u =1 i j x=2 j 2 j x i i j x=2 j 2 j x i 24/49

Compression basics JPEG2000: store twice the number of pictures in your digital camera at the same quality as JPEG Express initial data by smaller set of data Lossless or lossy User-specified error tolerance In the wavelet context: m f x= ci i=1 u i x f x= ci i=1 u i x mm, f x f x for some norm m 25/49

Wavelet compression We choose a fixed basis, i.e., u i =u i, i=1,, m Coefficient encoding not discussed here Which coefficients to select? Define permutation (i) Use some of the coefficients: m f x= i=1 ci u i x 26/49

Approximation error Square of L 2 error of approximation: orthonormal basis: u i u j = ij f f 2 2 = f f f f m = i= m1 = m i= m1 = m i= m1 m c i u i j= m1 m j= m1 c i 2 Omit smallest coefficients first c j u j c i c j u i u j 27/49

Applications Image compression Image editing Image querying 28/49

Image compression Generalization of Haar wavelets to two dimensions Similar framework for entirely different applications Two common ways to transform image: Standard decomposition Non-standard decomposition 29/49

Standard decomposition (1) Apply 1D transform to each row Apply 1D transform to each (transformed) column Results are Single overall average coefficient Detail coefficients 30/49

Standard decomposition (2) transform rows transform columns 31/49

Nonstandard decomposition (1) Apply averaging/differencing step to each row Apply averaging/differencing step to each column Repeat procedure on average quadrant Results are Average coefficients at each level Detail coefficients at each level 32/49

Nonstandard decomposition (2) 33/49

2D Haar basis functions Standard construction: tensor products Nonstandard construction: One 2D scaling function Three 2D wavelet functions Combine at different levels 34/49

Standard construction + + + + + + + 0 0 x 1 1 y 0 0 x 1 1 y 0 0 x 1 1 y 0 1 x 1 1 y 1 1 x 1 1 y + + + + + + + 0 0 x 0 1 y 0 0 x 0 1 y 0 1 x 0 1 y 1 1 x 0 1 y + + + + + + + 0 0 x 0 0 y 0 0 x 0 0 y 0 1 x 0 0 y 1 1 x 0 0 y + + + + 0 0 x 0 0 y 0 0 x 0 0 y 0 1 x 0 0 y 1 1 x 0 0 y 35/49

Nonstandard construction (1) Scaling function: x, y= x y Wavelet functions: x, y= x y x, y= x y x, y= x y 36/49

Nonstandard construction (2) Single coarse scaling function: 0 x, y= x, y Translated and scaled wavelet functions: j k,l j k,l j k,l 0,0 x, y=2 j 2 j x k, 2 j y l x, y=2 j 2 j x k, 2 j y l x, y=2 j 2 j x k, 2 j y l 37/49

Nonstandard construction (3) + + + + + + 1 0,1 x, y 1 0,1 x, y 1 1,1 x, y 1 0,1 x, y 1 1,1 x, y + + + + + + 1 0,0 x, y 1 1,0 x, y 1 0,0 x, y 1 1,0 x, y + + + + + 0 0,0 x, y 0 0,0 x, y 1 0,1 x, y 1 1,1 x, y + + + + 0 0,0 x, y 0 0,0 x, y 1 0,0 x, y 1 1,0 x, y 38/49

Standard vs. nonstandard Number of assignments for nn image: Standard: 4(n 2 -n) Nonstandard: 8/3(n 2-1) Number of nonzero coefficients for O(n) inputs: Standard: O(nlogn) Nonstandard: O(n) Solution of linear equations: Standard: explicit transformation possible fits well with existing software Nonstandard: implicit transformation doesn't fit well 39/49

More applications Image editing Edit image at desired scale Quadtree representing wavelet hierarchy Image querying Query by content (e.g., rough sketch) Similarity metric Compare m largest wavelet coefficients 40/49

Other useful properties Solution of linear systems Vanishing moments 41/49

Solution of linear systems (1) Consider set of linear equations Ax=b If A is dense: slow direct/iterative solution Much faster for sparse matrices Q: How can we make A sparse? A: By applying the wavelet transform All operations linear: Matrix describes decomposition (v=v') Matrix -1 describes reconstruction ( -1 v'=v'') 42/49

Solution of linear systems (2) We can formally write: A x=b A 1 x= b A ' sparse Solve for x'=x and reconstruct x= -1 x' Left multiplication transforms columns Right multiplication transforms rows No correspondence between A and image matrix 43/49

Wavelet matrix Compact representation of averaging/differencing Concatenate all steps: = 2 1 Optional rearrangement Example (not normalized): x 0 x 1 x 2 x 3 + x 0 ' + x 0 '' - x 1 ' x 1 '' + x 2 ' - x 2 '' - x 3 ' x 3 '' = 1 1 0 0 1 1 0 0 x' 0 0 1 1 0 0 1 1 = 1 1 0 1 0 0 1 0 0 x ' ' 1 0 1 0 0 0 0 1 2 x x ' 44/49

Vanishing moments A wavelet (x) has n vanishing moments if x x k dx=0 is true for all k=0,...,n-1, but not for k=n Constant regions zero coefficients (Haar basis) Higher order wavelets more vanishing moments zero coefficients for linear, quadratic,... regions better compression of smooth images 45/49

Bunny (flat, Haar) Constant regions One vanishing moment 46/49

Bunny (Gouraud, Haar) Linear regions One vanishing moment 47/49

Bunny (Gouraud, Daubechies) Linear regions Two vanishing moments 48/49

Thank you for your attention! 49/49

Praktische Anwendungen Wavelets in Matlab Bildkompression Kantendetektion Lösen von Gleichungssystemen AKCG&BVME WS2005/06 50/71

Wavelets in Matlab AKCG&BVME WS2005/06 51/71

Fast Wavelet Transform Decomposition and reconstruction by convolution Convolution kernels defined in Wavelet filterbank 4 1D-filter masks needed: 2 for decomposition 2 for reconstruction AKCG&BVME WS2005/06 52/71

Haar wavelet filter masks [ Lo_D Hi_D Lo_R Hi_R ] = wfilters( haar ) Lo_D = 0.7071 0.7071 Hi_D = -0.7071 0.7071 Lo_R = 0.7071 0.7071 Hi_R = 0.7071-0.7071 Size of filters dependent on wavelet type Filter pair consists of lowpass filter and highpass filter AKCG&BVME WS2005/06 53/71

Decomposition Down arrows mean downsampling of the image by 2. First along columns, then along rows AKCG&BVME WS2005/06 54/71

Reconstruction Down arrows mean upsampling of the image by 2. First along rows, then along columns AKCG&BVME WS2005/06 55/71

Wavelets in Matlab Wavelet-Decomposition: wavedec2 dwt2 Wavelet-Reconstruction: waverec2 idwt2 Scaling&Wavelet Function wavefun AKCG&BVME WS2005/06 56/71

dwt2 [ CA,CH,CV,CD] = dwt2(x, wname ) CA approximation coefficients CH horizontal coefficients CV vertical coefficients CD diagonal coefficients Führt nur einen Level der Decomposition durch. AKCG&BVME WS2005/06 57/71

dwt2 I = double(imread( lenna.bmp )); % first level [CA,CH,CV,CD] = DWT2(I, haar ); figure; imshow([ca,ch;cv,cd],[]); % second level [CA2,CH2,CV2,CD2] = DWT2(CA, haar ); figure; imshow([[ca2,ch2;cv2,cd2],ch;cv,cd],[]); AKCG&BVME WS2005/06 58/71

Bildkompression Verlustbehaftete Kompression Wavelet-Transformation anwenden Koeffizienten die sehr klein sind werden durch 0 ersetzt (-> Verlust von Information) Nur mehr Koeffizienten speichern die ungleich 0 sind. AKCG&BVME WS2005/06 59/71

Bildkompression I = double(imread( lenna.bmp )); wtype = db2 ; [C S] = wavedec2(i, wmaxlev(i,wtype), wtype); [B IX] = sort(abs(c)); B = fliplr(b); IX = fliplr(ix); CF = C; CF(IX(15000:length(IX))) = 0; X = waverec2(cf,s,wtype); figure; imshow(i,[]); figure; imshow(x,[]); AKCG&BVME WS2005/06 60/71

AKCG&BVME WS2005/06 61/71

Vergleich FFT - Wavelet 13359 FFT-Koeffizienten AKCG&BVME WS2005/06 62/71 13678 WVLT-Koeffizienten

Vergleich FFT - Wavelet 1363 FFT-Koeffizienten AKCG&BVME WS2005/06 63/71 1366 WVLT-Koeffizienten

Vergleich FFT - Wavelet 519 FFT-Koeffizienten AKCG&BVME WS2005/06 64/71 532 WVLT-Koeffizienten

Beispiel: Kanten bleiben gut erhalten AKCG&BVME WS2005/06 65/71

Kantendetektion Original Wavelet- Decomposition Approximation Teil wird auf 0 gesetzt Wavelet- Reconstruction Nur mehr Kanteninformation enthalten AKCG&BVME WS2005/06 66/71

Lösen von Gleichungssystemen Ax= b Große Matrizen A führen zu langen Rechenzeiten Abhängig von der Gestalt der Matrix A können unterschiedliche Algorithmen schnellere Laufzeiten ermöglichen AKCG&BVME WS2005/06 67/71

Sparse Matrices Sparse Matrices = Schwach besetzte Matrizen Bei vielen Anwendungen entstehen Gleichungssysteme bei denen nur wenige Elemente Werte ungleich 0 enthalten. Es gibt Methoden die solche Gleichungssysteme schneller lösen AKCG&BVME WS2005/06 68/71

Sparse Matrices durch Wavelet- Decomposition $[ = E 1 ( ψ $ ψ )( ψ[ ) = ( ψe) Erweitern des ursprünglichen Gleichungssystems mit, was eine Wavelettransformation darstellt. Das neue Gleichungssystem ist dann sparse und kann schneller gelöst werden. Der Lösungsvektor ( x) kann durch die inverse Wavelettransformation ( -1 x) in den gesuchten Lösungsvektor x zurücktransformiert werden. AKCG&BVME WS2005/06 69/71

Sparse Matrices durch Wavelet- Decomposition Bsp: A 4x4 Matrix x,b 4 Vektor = (Haar-Wavelet) 1 1 1 1 1-1 0 0 1 1-1 -1 0 0 1-1 A = 1.9225 0.6175-0.0200-0.0200 0.6125 1.9075-0.0100-0.0100-0.0075-0.0125 4.6600-2.1400-0.0175-0.0225-2.1300 4.6700 A -1 = 2.5000 0.0100 0 0 0 1.3000 0.0100 0-0.0000 0 2.5600 0 0.0000 0 0.0100 6.8000 AKCG&BVME WS2005/06 70/71

Zusammenfassung Haar Wavelets Standard/ Non-Standard decomposition Bildkompression, Effizientes Lösen von Gleichungssystemen, Kantendetektion AKCG&BVME WS2005/06 71/71