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

fast algorithms
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

Motivating Example Motion in MRI cardiac image

slide-3
SLIDE 3

Motivating Example Motion in MRI cardiac image Restored MRI cardiac image

slide-4
SLIDE 4

Outline

  • Uniform motion blurs, matrix models
  • Non-uniform motion blurs, matrix models
  • Algorithms
  • Difficulties
slide-5
SLIDE 5

Uniform Motion Blur

True Image Horizontal Blur Vertical Blur Angled Blur

slide-6
SLIDE 6

Uniform Motion Blur

True Image Horizontal Blur Vertical Blur Angled Blur

slide-7
SLIDE 7

Uniform Motion Blur Linear model:

b = Ax + n

The matrix A is structured: Horizontal blur ⇒ A = T ⊗ I Vertical blur ⇒ A = I ⊗ T

where T =

     

1 d

. . .

1 d

... ...

1 d

· · ·

1 d

     

Angled blur ⇒ A = block Toeplitz, Toeplitz blocks

slide-8
SLIDE 8

Non-Uniform Motion Blur

True Image Non−Uniform Blur

slide-9
SLIDE 9

Non-Uniform Motion Blur

True Image Non−Uniform Blur

slide-10
SLIDE 10

Non-Uniform Motion Blur

True Image Non−Uniform Blur

We still have linear model

b = Ax + n

However, A has no obvious structure.

slide-11
SLIDE 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
slide-12
SLIDE 12

Sparsity Pattern of A

slide-13
SLIDE 13

Sparsity Pattern of A

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 nz = 223734

slide-14
SLIDE 14

Sparsity Pattern of A

100 200 300 400 500 600 700 800 900 1000 100 200 300 400 500 600 700 800 900 1000 nz = 13017

slide-15
SLIDE 15

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

slide-16
SLIDE 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 ≈

  • IkAk

where Ak is defined by uniform motion in kth region and Ik is diagonal, with Ik = I

slide-17
SLIDE 17

Region Partitioning

One region

slide-18
SLIDE 18

Region Partitioning

4 regions

slide-19
SLIDE 19

Region Partitioning

9 regions

slide-20
SLIDE 20

Region Partitioning

16 regions

slide-21
SLIDE 21

Region Partitioning

25 regions

slide-22
SLIDE 22

Region Partitioning

64 regions

slide-23
SLIDE 23

Deblurring Algorithms Given A (or its approximation), need to solve

b = Ax + n

where

  • A is ill-conditioned

⇒ need regularization

  • A is large

⇒ usually need iterative method

slide-24
SLIDE 24

Example Singular Value Distribution

10 20 30 40 50 60 70 80 90 100 110 10

−18

10

−16

10

−14

10

−12

10

−10

10

−8

10

−6

10

−4

10

−2

10

singular values Horizontal blur

10 20 30 40 50 60 70 80 90 100 110 10

−18

10

−16

10

−14

10

−12

10

−10

10

−8

10

−6

10

−4

10

−2

10

singular values Angle blur

slide-25
SLIDE 25

Deblurring Algorithms Possible regularization methods

  • Truncated singular value decomposition (TSVD)

A = UΣV T ⇒

xtsvd =

k

  • i=1

uT

i b

σi

vi

(can use efficiently for horizontal or vertical blurs)

  • Tikhonov:

min

  • ||b − Ax||2 + µ2||Lx||2
  • Iterative: Terminate iterations early

(e.g., conjugate gradients)

slide-26
SLIDE 26

Deblurring Algorithms Example of iterative regularization ...

5 10 15 20 25 30 35 40 45 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65

iteration relative error

slide-27
SLIDE 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

slide-28
SLIDE 28

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

Blurred image

slide-29
SLIDE 29

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

1 region, 0 iterations

slide-30
SLIDE 30

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

4 region, 0 iterations

slide-31
SLIDE 31

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

16 region, 1 iterations

slide-32
SLIDE 32

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

64 region, 3 iterations

slide-33
SLIDE 33

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

256 region, 9 iterations

slide-34
SLIDE 34

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

1024 region, 15 iterations

slide-35
SLIDE 35

Numerical Examples

10 20 30 40 50 60 70 80 90 100 0.2 0.3 0.4 0.5 0.6 0.7

iteration relative error

Every pixel, 79 iterations

slide-36
SLIDE 36

Numerical Examples

2 4 6 8 10 12 14 16 18 20 0.08 0.1 0.12 0.14 0.16 0.18 0.2

iteration relative error

Blurred image

slide-37
SLIDE 37

Numerical Examples

2 4 6 8 10 12 14 16 18 20 0.08 0.1 0.12 0.14 0.16 0.18 0.2

iteration relative error

1 region, 1 iterations

slide-38
SLIDE 38

Numerical Examples

2 4 6 8 10 12 14 16 18 20 0.08 0.1 0.12 0.14 0.16 0.18 0.2

iteration relative error

4 regions, 1 iteration

slide-39
SLIDE 39

Numerical Examples

2 4 6 8 10 12 14 16 18 20 0.08 0.1 0.12 0.14 0.16 0.18 0.2

iteration relative error

16 regions, 3 iterations

slide-40
SLIDE 40

Numerical Examples

2 4 6 8 10 12 14 16 18 20 0.08 0.1 0.12 0.14 0.16 0.18 0.2

iteration relative error

64 regions, 7 iterations

slide-41
SLIDE 41

Numerical Examples

2 4 6 8 10 12 14 16 18 20 0.08 0.1 0.12 0.14 0.16 0.18 0.2

iteration relative error

Every pixel, 14 iterations

slide-42
SLIDE 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?
slide-43
SLIDE 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

slide-44
SLIDE 44

Preconditioning using Kronecker Products Using the model: A =

p

  • k=1

IkAk

  • Each Ak can be decomposed as:

Ak =

r

  • j=1

C(k)

j

⊗ D(k)

j

  • Therefore, our model for A is:

A =

p

  • k=1

Ik

 

r

  • j=1

C(k)

j

⊗ D(k)

j

 

slide-45
SLIDE 45

The End!

  • It is possible to efficiently implement iterative meth-
  • ds 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