fast algorithms
play

Fast Algorithms for the Removal of Non-Uniform Motion Blurs James - PowerPoint PPT Presentation

Fast Algorithms for the Removal of Non-Uniform Motion Blurs James G. Nagy Emory University Atlanta, GA Joint work with Julianne Chung, Eldad Haber, John Oshinski Motivating Example Motion in MRI cardiac image Motivating Example Motion in


  1. Fast Algorithms for the Removal of Non-Uniform Motion Blurs James G. Nagy Emory University Atlanta, GA Joint work with Julianne Chung, Eldad Haber, John Oshinski

  2. Motivating Example Motion in MRI cardiac image

  3. Motivating Example Motion in MRI cardiac image Restored MRI cardiac image

  4. Outline • Uniform motion blurs, matrix models • Non-uniform motion blurs, matrix models • Algorithms • Difficulties

  5. Uniform Motion Blur True Image Horizontal Blur Vertical Blur Angled Blur

  6. Uniform Motion Blur True Image Horizontal Blur Vertical Blur Angled Blur

  7. Uniform Motion Blur Linear model: b = A x + n The matrix A is structured: Horizontal blur ⇒ A = T ⊗ I Vertical blur ⇒ A = I ⊗ T 1   d . . .   ...  1  where T =   d ...     1 1 · · · d d Angled blur ⇒ A = block Toeplitz, Toeplitz blocks

  8. Non-Uniform Motion Blur True Image Non−Uniform Blur

  9. Non-Uniform Motion Blur True Image Non−Uniform Blur

  10. Non-Uniform Motion Blur True Image Non−Uniform Blur We still have linear model b = A x + n However, A has no obvious structure.

  11. Non-Uniform Motion Blur To explicitly construct A : • Estimate direction and magnitude of motion at each pixel • Construct corresponding column of A • Use sparse data structure for A

  12. Sparsity Pattern of A

  13. Sparsity Pattern of A 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 nz = 223734

  14. Sparsity Pattern of A 0 100 200 300 400 500 600 700 800 900 1000 0 100 200 300 400 500 600 700 800 900 1000 nz = 13017

  15. Non-Uniform Motion Blur Problem: It may be difficult to estimate motion at every pixel

  16. Non-Uniform Motion Blur To approximate A : • Partition image into regions • Assume motion is uniform in each region • Estimate direction and magnitude of ”uniform” mo- tion in each region • Use interpolation: � A ≈ I k A k where A k is defined by uniform motion in k th region and I k is diagonal, with � I k = I

  17. Region Partitioning One region

  18. Region Partitioning 4 regions

  19. Region Partitioning 9 regions

  20. Region Partitioning 16 regions

  21. Region Partitioning 25 regions

  22. Region Partitioning 64 regions

  23. Deblurring Algorithms Given A (or its approximation), need to solve b = A x + n where • A is ill-conditioned ⇒ need regularization • A is large ⇒ usually need iterative method

  24. Example Singular Value Distribution Horizontal blur Angle blur 0 0 10 10 −2 −2 10 10 −4 −4 10 10 singular values singular values −6 −6 10 10 −8 −8 10 10 −10 −10 10 10 −12 −12 10 10 −14 −14 10 10 −16 −16 10 10 −18 −18 10 10 0 10 20 30 40 50 60 70 80 90 100 110 0 10 20 30 40 50 60 70 80 90 100 110

  25. Deblurring Algorithms Possible regularization methods • Truncated singular value decomposition (TSVD) k u T i b A = U Σ V T � x tsvd = ⇒ v i σ i i =1 (can use efficiently for horizontal or vertical blurs) • Tikhonov: || b − A x || 2 + µ 2 || L x || 2 � � min • Iterative: Terminate iterations early (e.g., conjugate gradients)

  26. Deblurring Algorithms Example of iterative regularization ... 0.65 0.6 relative error 0.55 0.5 0.45 0.4 0.35 0.3 0 5 10 15 20 25 30 35 40 45 iteration

  27. Numerical Examples First consider text data: True Image Non−Uniform Blur • Use CGLS, iterative regularization. • For A , – Approximate motion on regions – Use motion information at every pixel

  28. Numerical Examples Blurred image 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  29. Numerical Examples 1 region, 0 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  30. Numerical Examples 4 region, 0 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  31. Numerical Examples 16 region, 1 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  32. Numerical Examples 64 region, 3 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  33. Numerical Examples 256 region, 9 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  34. Numerical Examples 1024 region, 15 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  35. Numerical Examples Every pixel, 79 iterations 0.7 0.6 relative error 0.5 0.4 0.3 0.2 0 10 20 30 40 50 60 70 80 90 100 iteration

  36. Numerical Examples Blurred image 0.2 0.18 0.16 relative error 0.14 0.12 0.1 0.08 0 2 4 6 8 10 12 14 16 18 20 iteration

  37. Numerical Examples 1 region, 1 iterations 0.2 0.18 0.16 relative error 0.14 0.12 0.1 0.08 0 2 4 6 8 10 12 14 16 18 20 iteration

  38. Numerical Examples 4 regions, 1 iteration 0.2 0.18 0.16 relative error 0.14 0.12 0.1 0.08 0 2 4 6 8 10 12 14 16 18 20 iteration

  39. Numerical Examples 16 regions, 3 iterations 0.2 0.18 0.16 relative error 0.14 0.12 0.1 0.08 0 2 4 6 8 10 12 14 16 18 20 iteration

  40. Numerical Examples 64 regions, 7 iterations 0.2 0.18 0.16 relative error 0.14 0.12 0.1 0.08 0 2 4 6 8 10 12 14 16 18 20 iteration

  41. Numerical Examples Every pixel, 14 iterations 0.2 0.18 0.16 relative error 0.14 0.12 0.1 0.08 0 2 4 6 8 10 12 14 16 18 20 iteration

  42. Computational Issues • Choosing a regularization parameter • Fast matrix-vector multiplication should scale well with number of regions • Preconditioning especially when using a lot of regions, or all pixel information • How to get motion information?

  43. Preconditioning • A is ill-conditioned ⇒ preconditioner is ill-conditioned • How to regularize preconditioner? • Relatively easy for circulant, and other transform based preconditioners. • But, A is not well approximated by circulant matrix. • Alternative approach – try: A ≈ C ⊗ D

  44. Preconditioning using Kronecker Products p � Using the model: A = I k A k k =1 • Each A k can be decomposed as: r C ( k ) ⊗ D ( k ) � A k = j j j =1 • Therefore, our model for A is: p   r C ( k ) ⊗ D ( k ) � � A = I k  j j  j =1 k =1

  45. The End! • It is possible to efficiently implement iterative meth- ods for non-uniform motion blurs. • More information provides substantially better restorations. • However, more information results in slower conver- gence of iterative methods. www.mathcs.emory.edu/ ∼ nagy

Recommend


More recommend