Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization...

44
Anat Levin Dani Lischinski Yair Weiss School of Computer Science and Engineering The Hebrew University of Jerusalem, Israel Colorization Using Optimization 1 Tuesday, June 19, 2007

Transcript of Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization...

Page 1: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Anat Levin Dani Lischinski Yair Weiss

School of Computer Science and EngineeringThe Hebrew University of Jerusalem, Israel

Colorization Using Optimization

1Tuesday, June 19, 2007

Page 2: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Colorization: a computer-assisted process of adding color to a monochrome image or movie.

(Invented by Wilson Markle, 1970)

Colorization

2Tuesday, June 19, 2007

Page 3: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

• Colorizing black and white movies?

• Maybe not...

• But what about black and white TV shows?

Motivation

3Tuesday, June 19, 2007

Page 4: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

• Colorizing black and white movies / TV shows

• Recoloring color images for special effects

Motivation

4Tuesday, June 19, 2007

Page 5: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

5Tuesday, June 19, 2007

Page 6: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Color 101• Typically represented by points in a three

dimensional color space:• (Red, Green, Blue)• (Cyan, Magenta, Yellow)

• Some color spaces separate between the grayscale and the chromatic components of a color:

6Tuesday, June 19, 2007

Page 7: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Typical Colorization Process

Images from: “Yet Another Colorization Tutorial”

http://www.worth1000.com/tutorial.asp?sid=161018

7Tuesday, June 19, 2007

Page 8: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Images from: “Yet Another Colorization Tutorial”

http://www.worth1000.com/tutorial.asp?sid=161018

Typical Colorization Process• Delineate region boundary

8Tuesday, June 19, 2007

Page 9: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Images from: “Yet Another Colorization Tutorial”

http://www.worth1000.com/tutorial.asp?sid=161018

Typical Colorization Process• Delineate region boundary• Choose region color from palette

9Tuesday, June 19, 2007

Page 10: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Images from: “Yet Another Colorization Tutorial”

http://www.worth1000.com/tutorial.asp?sid=161018

Typical Colorization Process• Delineate region boundary• Choose region color from palette

10Tuesday, June 19, 2007

Page 11: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Images from: “Yet Another Colorization Tutorial”

http://www.worth1000.com/tutorial.asp?sid=161018

Typical Colorization Process• Delineate region boundary• Choose region color from palette

11Tuesday, June 19, 2007

Page 12: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Video Colorization Process• Delineate region boundary• Choose region color from palette

• Track regions across video frames

12Tuesday, June 19, 2007

Page 13: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Process Limitations

• Time consuming and labor intensive

• Difficult to delineate detailed or fuzzy boundaries

• Failures in tracking

13Tuesday, June 19, 2007

Page 14: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Hertzmann et al. 2001, Welsh et al. 2002

A : A’

B : B’

?

Colorization by Analogy

14Tuesday, June 19, 2007

Page 15: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Colorization by Analogy - Discussion

• Indirect artistic control

• No spatial continuity constraint

15Tuesday, June 19, 2007

Page 16: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Our Approach

16Tuesday, June 19, 2007

Page 17: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Artist scribbles desired colors inside regions

Our Approach

17Tuesday, June 19, 2007

Page 18: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Colors are propagated to all pixels

“Nearby pixels with similar intensities should have the same color”

Our Approach

18Tuesday, June 19, 2007

Page 19: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Intensity channel Color channels

Assumption: Neighboring pixels with similar intensities should have similar colors

Propagation using Optimization

19Tuesday, June 19, 2007

Page 20: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Intensity channel Color channels

Propagation using Optimization

Minimize the sum of affinity-weighed squared distances between the colors of adjacent pixels:

J(U) = !r,s

wrs (U(r)!U(s))2

20Tuesday, June 19, 2007

Page 21: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Affinity Functions

proportional to local variancewrs ! e!(Y (r)!Y (s))2/2!2

r

21Tuesday, June 19, 2007

Page 22: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Space-time Affinity

wrs ! e!(Y (r)!Y (s))2/2!2r

22Tuesday, June 19, 2007

Page 23: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Since the cost function is quadratic, its minimum may be found by solving sparse system of linear equations.

Minimize the cost function:

Subject to labeling constraints

Optimization

J(U) = !r,s

wrs (U(r)!U(s))2

!U(rk) = Uk

"

23Tuesday, June 19, 2007

Page 24: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Optimization

Minimize by solving the equations:

!J(U) = 0!J(V ) = 0

U! = argminU

J(U)

V ! = argminV

J(V )

24Tuesday, June 19, 2007

Page 25: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

DerivationJ(U) = !

r,swrs (Ur!Us)2

= !r,s

wrs!U2

r !2UrUs +U2s"

= !r,s

wrsU2r !2!

r,swrsUrUs +!

r,swrsU2

s

= !r

DrrU2r !2!

r,swrsUrUs +!

sDssU2

s

= 2UT (D!W )U

25Tuesday, June 19, 2007

Page 26: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Derivation

J(U) = 2UT (D!W )U

Unconstrained system:

(D!W )U = 0

Note: has a trivial solution (any constant vector U).

!J(U) = 4(D!W )U = 0

26Tuesday, June 19, 2007

Page 27: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

DerivationAdd constraints:

J(U) = UT (D!W )U +! !k

!Uk!Uk

"2

J(U) = UT (D!W )U +!!U!U

"T C!U!U

"

!J(U) = 2(D!W )U +2!C!U!U

"= 0

Constrained system:

(D!W +!C)U = !CU

27Tuesday, June 19, 2007

Page 28: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Color Interpolation

28Tuesday, June 19, 2007

Page 29: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Colorizing Stills

29Tuesday, June 19, 2007

Page 30: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

30Tuesday, June 19, 2007

Page 31: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Original Colorized

Colorizing Stills

31Tuesday, June 19, 2007

Page 32: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Colorizing Stills

32Tuesday, June 19, 2007

Page 33: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Colorizing Stills

33Tuesday, June 19, 2007

Page 34: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Challenging Case

34Tuesday, June 19, 2007

Page 35: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Our result

Segmentation aided colorization

NCuts Segmentation (Shi & Malik 97)

Segmentation?

35Tuesday, June 19, 2007

Page 36: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Affinity between pixels – based on intensity AND color similarities.

Recoloring

36Tuesday, June 19, 2007

Page 37: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Recoloring

37Tuesday, June 19, 2007

Page 38: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Recoloring

38Tuesday, June 19, 2007

Page 39: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

13 out of 92 frames

Colorizing Video

39Tuesday, June 19, 2007

Page 40: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

16 out of 101 frames

Colorizing Video

40Tuesday, June 19, 2007

Page 41: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Red channel<->matte

Matting

41Tuesday, June 19, 2007

Page 42: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Matting

42Tuesday, June 19, 2007

Page 43: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

Future Work

• Import image segmentation advantages: affinity functions, optimization techniques.

• Alternative color spaces, propagating hue and saturation differently

43Tuesday, June 19, 2007

Page 44: Colorization Using Optimizationcsip/CSIP2007-colorization.pdf · Colorization Using Optimization Tuesday, June 19, ... Colorization: a computer-assisted process of adding color to

★ Interface: User scribbles color on a small number of pixels

★ Colors propagate in space-time volume respecting intensity boundaries

★ Convincing colorization with a small amount of user effort

Code & examples available: www.cs.huji.ac.i/~yweiss/Colorization/

Summary

44Tuesday, June 19, 2007