230 likes | 555 Views
Image Denoising with K-SVD. Priyam Chatterjee EE 264 – Image Processing & Reconstruction Instructor : Prof. Peyman Milanfar Spring 2007. Sparseland Model. Defined as a set {D,X,Y} such that. t. Y. D. X. Figure courtesy Michael Elad. Sparse Coding.
E N D
Image Denoising with K-SVD Priyam Chatterjee EE 264 – Image Processing & Reconstruction Instructor : Prof. Peyman Milanfar Spring 2007
Sparseland Model Defined as a set {D,X,Y} such that t Y D X Figure courtesy Michael Elad
Sparse Coding • Given a D and yi, how to find xi • Constraint : xiis sufficiently sparse • Finding exact solution difficult • Approximate solution good enough ?
Orthogonal Matching Pursuit Select dkwith max projection on residue xk = arg min ||y-Dkxk|| D, y x Check terminating condition Update residue r = y - Dkxk
OMP : features • Greedy algorithm • Can find approximate solution • Close solution if T is small enough • Simplistic in nature
Dictionary Selection • What D to use ? • A fixed overcomplete set of basis : • Steerable wavelet • Contourlet • DCT Basis • …. • Data Adaptive Dictionary – learn from data
Select atoms from input Atoms can be patches from the image Patches are overlapping K-SVD Algorithm Initialize Dictionary Sparse Coding (OMP) Update Dictionary One atom at a time
Use OMP or any other fast method Output gives sparse code for all signals Minimize error in representation K-SVD Algorithm Initialize Dictionary Sparse Coding (OMP) Update Dictionary One atom at a time
Replace unused atom with minimally represented signal Identify signals that use k-th atom (non zero entries in rows of X) K-SVD Algorithm Initialize Dictionary Sparse Coding (OMP) Update Dictionary One atom at a time
Deselect k-th atom from dictionary Find coding error matrix of these signals Minimize this error matrix with rank-1 approx from SVD K-SVD Algorithm Initialize Dictionary Sparse Coding (OMP) Update Dictionary One atom at a time
[U,S,V] = svd(Ek) Replace coeff of atom dk in X with entries of s1v1 dk = u1/||u1||2 K-SVD Algorithm Initialize Dictionary Sparse Coding (OMP) Update Dictionary One atom at a time
Denoising framework • A cost function for : Y = Z + n • Solve for Prior term
Denoising Framework • Break problem into smaller problems • Aim at minimization at the patch level Select i-th patch of Z accounted for implicitly by OMP
Denoising Framework • Solution : • Denoising by normalized weighted averaging Initialize Dictionary Sparse Coding (OMP) Update Dictionary One atom at a time Averaging of patches
Proof of the pudding – low noise PSNR 28.12 dB PSNR 34.16 dB Denoising under presence of AWGN of std. dev 10
High noise case – std dev 50 PSNR 24.93 dB PSNR 14.75 dB
Outside the math : • Similar atoms in dictionary should be replaced with signals that are least represented • Atoms which are least used should be replaced by signals that are least represented