• 沒有找到結果。

Image warping

N/A
N/A
Protected

Academic year: 2022

Share "Image warping"

Copied!
27
0
0

加載中.... (立即查看全文)

全文

(1)

Image warping/morphing

Digital Visual Effects Yung-Yu Chuang

with slides by Richard Szeliski, Steve Seitz, Tom Funkhouser, Jia-Bing Huang and Alexei Efros

Image warping

Image formation

A

B

Sampling and quantization

(2)

What is an image

• We can think of an image as a function, f: R2R:

– f(x, y) gives the intensity at position (x, y) – defined over a rectangle, with a finite range:

• f: [a,b]x[c,d]  [0,1]

• A color image ( , )

( , ) ( , )

( , ) r x y

f x y g x y

b x y

 

x y

f

A digital image

• We usually operate on digital (discrete) images:

– Sample the 2D space on a regular grid

– Quantize each sample (round to nearest integer)

• If our samples are D apart, we can write this as:

f[i ,j] = Quantize{ f(i D, j D) }

• The image can now be represented as a matrix of integer values

Image warping

image filtering: change range of image g(x) = h(f(x))

f

x

h

g

x

f

x

h

g

x

image warping: change domain of image g(x) = f(h(x))

h(y)=0.5y+0.5

h(y)=2y

Image warping

h

h

f

f

g g

image filtering: change range of image g(x) = h(f(x))

image warping: change domain of image g(x) = f(h(x))

h(y)=0.5y+0.5

h([x,y])=[x,y/2]

(3)

Parametric (global) warping

translation rotation aspect

affine perspective

cylindrical

Examples of parametric warps:

Parametric (global) warping

• Transformation T is a coordinate-changing machine: p’ = T(p)

• What does it mean that T is global?

– Is the same for any point p

– can be described by just a few numbers (parameters)

• Represent T as a matrix: p’ = M*p

T

p = (x,y) p’ = (x’,y’)

 

 

 

 

 

y x y

x M

' '

Scaling

• Scaling a coordinate means multiplying each of its components by a scalar

• Uniform scaling means this scalar is the same for all components:

 2

f g

 

 

 

 

 

y x y

x

2 2 '

 '

 

y x

• Non-uniform scaling: different scalars per component:

Scaling

x  2, y  0.5

 

 

 

 

 

y x y

x

5 . 0

2 '

'

 

 

 

 

 

 

 

 

 

' ' y g x y

f x

(4)

Scaling

• Scaling operation:

• Or, in matrix form:

by y

ax x

 ' '

 

 

 

 

 

 

 

y x b a y

x

0 0 '

'

scaling matrix S What’s inverse of S?

2-D Rotation

• This is easy to capture in matrix form:

• Even though sin() and cos() are nonlinear to ,

– x’ is a linear combination of x and y – y’ is a linear combination of x and y

• What is the inverse transformation?

– Rotation by –

– For rotation matrices, det(R) = 1 so

   

   



 

 

 

y x y

x

cos sin

sin cos

' '

RT

R1 R

2x2 Matrices

• What types of transformations can be represented with a 2x2 matrix?

2D Identity?

y y

x x 

''









 

 

y x y

x 01 10 ''

2D Scale around (0,0)?

y s y

x s x

y

x

* '

* '



 



 

 



 

y x s s y

x

y x

0 0 '

'

2x2 Matrices

• What types of transformations can be represented with a 2x2 matrix?

2D Rotate around (0,0)?

y x

y

y x

x

* cos

* sin '

* sin

* cos '

y x y

x

cos sin

sin cos

' '

2D Shear?

y x sh y

y sh x x

y x

* '

*

' 

 



 





 

y x sh

sh y

x

y x

1 1

' '

(5)

2x2 Matrices

• What types of transformations can be represented with a 2x2 matrix?

2D Mirror about Y axis?

y y

x x 

''









 

 

y x y

x 01 10 ''

2D Mirror over (0,0)?

y y

x x 

''









 

 

 

y x y

x 01 01 ''

All 2D Linear Transformations

• Linear transformations are combinations of …

– Scale, – Rotation, – Shear, and – Mirror

• Properties of linear transformations:

– Origin maps to origin – Lines map to lines

– Parallel lines remain parallel – Ratios are preserved

– Closed under composition

 

 

 

 

 

 

 

y x d c

b a y

x ' '

2x2 Matrices

• What types of transformations can not be represented with a 2x2 matrix?

2D Translation?

y x

t y y

t x x

 ' '

Only linear 2D transformations can be represented with a 2x2 matrix

NO!

Translation

• Example of translation

1 1 1 0 0

1 0

0 1

1 ' '

y x y

x

t y

t x y x t t y

x

tx= 2 ty= 1

Homogeneous Coordinates

(6)

Affine Transformations

• Affine transformations are combinations of …

– Linear transformations, and – Translations

• Properties of affine transformations:

– Origin does not necessarily map to origin – Lines map to lines

– Parallel lines remain parallel – Ratios are preserved

– Closed under composition – Models change of basis

 

 

 

 

 

 

 

w y x f e d

c b a w

y x

1 0 0 ' '

Projective Transformations

• Projective transformations …

– Affine transformations, and – Projective warps

• Properties of projective transformations:

– Origin does not necessarily map to origin – Lines map to lines

– Parallel lines do not necessarily remain parallel – Ratios are not preserved

– Closed under composition – Models change of basis

 

 

 

 

 

 

 

w y x i h g

f e d

c b a w

y x ' ' '

Image warping

• Given a coordinate transform x’ = T(x) and a source image I(x), how do we compute a transformed image I’(x’) = I(T(x))?

I(x) I’(x’)

x x’

T(x)

Forward warping

• Send each pixel I(x) to its corresponding location x’ = T(x) in I’(x’)

I(x) I’(x’)

x x’

T(x)

(7)

Forward warping

fwarp(I, I’, T) {

for (y=0; y<I.height; y++) for (x=0; x<I.width; x++) {

(x’,y’)=T(x,y);

I’(x’,y’)=I(x,y);

}

} I I’

x

x’

T

Forward warping

Some destination may not be covered

Many source pixels could map to the same destination

Forward warping

• Send each pixel I(x) to its corresponding location x’ = T(x) in I’(x’)

f(x) g(x’)

x x’

h(x)

• What if pixel lands “between” two pixels?

• Will be there holes?

• Answer: add “contribution” to several pixels, normalize later (splatting)

Forward warping

fwarp(I, I’, T) {

for (y=0; y<I.height; y++) for (x=0; x<I.width; x++) {

(x’,y’)=T(x,y);

Splatting(I’,x’,y’,I(x,y),kernel);

}

} I I’

x

x’

T

(8)

Inverse warping

• Get each pixel I’(x’) from its corresponding location x = T-1(x’) in I(x)

I(x) I’(x’)

x x’

T-1(x’)

Inverse warping

iwarp(I, I’, T) {

for (y'=0; y’<I’.height; y’++) for (x’=0; x’<I’.width; x’++) {

(x,y)=T-1(x’,y’);

I’(x’,y’)=I(x,y);

}

} I I’

x

x’

T-1

Inverse warping

• Get each pixel I’(x’) from its corresponding location x = T-1(x’) in I(x)

• What if pixel comes from “between” two pixels?

• Answer: resample color value from interpolated (prefiltered) source image

f(x) g(x’)

x x’

Inverse warping

iwarp(I, I’, T) {

for (y’=0; y’<I’.height; y’++) for (x’=0; x’<I’.width; x’++) {

(x,y)=T-1(x’,y’);

I’(x’,y’)=Reconstruct(I,x,y,kernel);

}

} I I’

x

x’

T-1

(9)

Inverse warping

• No hole, but must resample

• What value should you take for non-integer coordinate? Closest one?

Inverse warping

• It could cause aliasing

Reconstruction

• Reconstruction generates an approximation to the original function. Error is called aliasing.

sample position sample value

sampling reconstruction

Reconstruction

• Computed weighted sum of pixel neighborhood;

output is weighted average of input, where weights are normalized values of filter kernel k

width d

color=0;

weights=0;

for all q’s dist < width d = dist(p, q);

w = kernel(d);

color += w*q.color;

weights += w;

p.Color = color/weights;

p

q

 

i i

i i i

q k

q q p k

) (

) (

(10)

Triangle filter Gaussian filter

Sampling

band limited

Reconstruction

The reconstructed function is obtained by interpolating among the samples in some manner

(11)

Reconstruction (interpolation)

• Possible reconstruction filters (kernels):

– nearest neighbor – bilinear

– bicubic

– sinc (optimal reconstruction)

Bilinear interpolation (triangle filter)

• A simple method for resampling images

Non-parametric image warping

• Specify a more detailed warp function

• Splines, meshes, optical flow (per-pixel motion)

Non-parametric image warping

• Mappings implied by correspondences

• Inverse warping

? P’

(12)

Non-parametric image warping

P’

' '

'

' w A w B w C PABC

Barycentric coordinate

C w B w A w

PABC

P

Barycentric coordinates

3 1

2 1

3 3 2 2 1 1

t t t

A t A t A t P

Non-parametric image warping

' '

'

' w A w B w C PABC

Barycentric coordinate

C w B w A w

PABC

Non-parametric image warping

radial basis function

) 2

(r e r

 

) log(

)

(rr2 r

Gaussian thin plate spline

i

i

X P X

K k

P 1 i( ')

(13)

Image warping

• Warping is a useful operation for mosaics,

retargeting, video matching, view interpolation and so on.

An application of image warping:

face beautification

Data-driven facial beautification Facial beautification

(14)

Facial beautification Facial beautification

Training set

• Face images

– 92 young Caucasian female – 33 young Caucasian male

Feature extraction

(15)

Feature extraction

• Extract 84 feature points by BTSM

• Delaunay triangulation -> 234D distance vector (normalized by the square root of face area)

BTSM

scatter plot for

all training faces

234D vector

Beautification engine

Support vector regression (SVR)

• Similar concept to SVM, but for regression

• RBF kernels

• fb(v)

Beautification process

• Given the normalized distance vector v, generate a nearby vector v’ so that

fb(v’) > fb(v)

• Two options

– KNN-based – SVR-based

(16)

KNN-based beautification

4.3

4.5

5.1

3.1

5.3 4.6

v v'

SVR-based beautification

• Directly use fb to seek v’

• Use standard no-derivative direction set method for minimization

• Features were reduced to 35D by PCA

SVR-based beautification

• Problems: it sometimes yields distance vectors corresponding to invalid human face

• Solution: add log-likelihood term (LP)

• LP is approximated by modeling face space as a multivariate Gaussian distribution

u’s projection in PCA space

’s i-th component

i-th eigenvalue

PCA

λ1

λ2

(17)

Embedding and warping Distance embedding

• Convert modified distance vector v’ to a new face landmark

• A graph drawing problem referred to as a stress minimization problem, solved by LM algorithm for non-linear minimization

1 if i and j belong to different facial features 10 otherwise

Distance embedding

• Post processing to enforce similarity transform for features on eyes by minimizing

SVR K=5

K=3 Original

(18)

Results (in training set) User study

Results (not in training set) By parts

full

mouth eyes

(19)

Different degrees

50% 100%

Facial collage

Results

• video

Image morphing

(20)

Image morphing

• The goal is to synthesize a fluid transformation from one image to another.

image #1 dissolving image #2

• Cross dissolving is a common transition between cuts, but it is not good for morphing because of the ghosting effects.

Artifacts of cross-dissolving

http://www.salavon.com/

Image morphing

• Why ghosting?

• Morphing = warping + cross-dissolving

shape (geometric)

color (photometric)

morphing cross-dissolving

Image morphing

image #1 image #2

warp warp

(21)

Morphing sequence Face averaging by morphing

average faces

Image morphing

create a morphing sequence: for each time t

1. Create an intermediate warping field (by interpolation)

2. Warp both images towards it

3. Cross-dissolve the colors in the newly warped images

t=0 t=0.33 t=1

An ideal example (in 2004)

t=0 t=0.25t=0.75t=0.5 t=1

(22)

morphing

An ideal example (in 2004)

t=0 t=1

An ideal example

middle face (t=0.5)

t=0 t=1

Warp specification (mesh warping)

• How can we specify the warp?

1. Specify corresponding spline control points

interpolate to a complete warping function

easy to implement, but less expressive

Warp specification

• How can we specify the warp

2. Specify corresponding points

• interpolate to a complete warping function

(23)

Solution: convert to mesh warping

1. Define a triangular mesh over the points – Same mesh in both images!

– Now we have triangle-to-triangle correspondences 2. Warp each triangle separately from source to destination

– How do we warp a triangle?

– 3 points = affine warp!

– Just like texture mapping

Warp specification (field warping)

• How can we specify the warp?

3. Specify corresponding vectors

• interpolate to a complete warping function

• The Beier & Neely Algorithm

Beier&Neely (SIGGRAPH 1992)

• Single line-pair PQ to P’Q’:

Algorithm (single line-pair)

• For each X in the destination image:

1. Find the corresponding u,v

2. Find X’ in the source image for that u,v 3. destinationImage(X) = sourceImage(X’)

• Examples:

Affine transformation

(24)

Multiple Lines

length = length of the line segment, dist= distance to line segment

The influence of a, p, b. The same as the average of Xi

i i

i X X

D'

Full Algorithm

Resulting warp Comparison to mesh morphing

• Pros: more expressive

• Cons: speed and control

(25)

Warp interpolation

• How do we create an intermediate warp at time t?

– linear interpolation for line end-points

– But, a line rotating 180 degrees will become 0 length in the middle

– One solution is to interpolate line mid-point and orientation angle

t=0

t=1

Animation

Animated sequences

• Specify keyframes and interpolate the lines for the inbetween frames

• Require a lot of tweaking

Results

Michael Jackson’s MTV “Black or White”

(26)

Multi-source morphing Multi-source morphing

Miss Korea

Picasa recognizes them as the same person

(27)

Align and mean face Morphing sequence

• video

Woman in arts References

• Thaddeus Beier, Shawn Neely, Feature-Based Image Metamorphosis, SIGGRAPH 1992, pp35-42.

• Detlef Ruprecht, Heinrich Muller, Image Warping with Scattered Data Interpolation, IEEE Computer Graphics and Applications, March 1995, pp37-43.

• Seung-Yong Lee, Kyung-Yong Chwa, Sung Yong Shin, Image Metamorphosis Using Snakes and Free-Form Deformations, SIGGRAPH 1995.

• Seungyong Lee, Wolberg, G., Sung Yong Shin, Polymorph: morphing among multiple images, IEEE Computer Graphics and Applications, Vol. 18, No. 1, 1998, pp58-71.

• Peinsheng Gao, Thomas Sederberg, A work minimization approach to image morphing, The Visual Computer, 1998, pp390-400.

• George Wolberg, Image morphing: a survey, The Visual Computer, 1998, pp360-372.

Data-Driven Enhancement of Facial Attractiveness, SIGGRAPH 2008

參考文獻

相關文件

Use images to adapt a generic face model Use images to adapt a generic face model. Creating

4.1.2 Overfitting and underfitting 4.1.3 Robust data fitting... 4.1.0 Scattered

• Richard Szeliski, Image Alignment and Stitching: A Tutorial, Foundations and Trends in Computer Graphics and Computer Vision, 2(1):1-104, December 2006. Szeliski

• Richard Szeliski, Image Alignment and Stitching: A Tutorial, Foundations and Trends in Computer Graphics and Computer Vision, 2(1):1-104, December 2006. Szeliski

• Paul Debevec, Rendering Synthetic Objects into Real Scenes:. Bridging Traditional and Image-based Graphics with Global Illumination and High Dynamic

• It is a plus if you have background knowledge on computer vision, image processing and computer graphics.. • It is a plus if you have access to digital cameras

• Detlef Ruprecht, Heinrich Muller, Image Warping with Scattered Data Interpolation, IEEE Computer Graphics and Applications, March 1995 pp37-43. March 1995,

• Detlef Ruprecht, Heinrich Muller, Image Warping with Scattered Data Interpolation, IEEE Computer Graphics and Applications, March 1995 pp37-43. March 1995,