Bringing Portraits to Life CS448V: Lecture 13 Motivation - - PowerPoint PPT Presentation

bringing portraits to life
SMART_READER_LITE
LIVE PREVIEW

Bringing Portraits to Life CS448V: Lecture 13 Motivation - - PowerPoint PPT Presentation

Bringing Portraits to Life CS448V: Lecture 13 Motivation Motivation Motivation Bring Your Profile to Life Facebook (2015) Motivation Breathing Profile Motivation Reactive Profile Approach Target Image ( ! ) Output Video ( , = {! ' , !


slide-1
SLIDE 1

Bringing Portraits to Life

CS448V: Lecture 13

slide-2
SLIDE 2

Motivation

slide-3
SLIDE 3

Motivation

slide-4
SLIDE 4

Motivation

Bring Your Profile to Life Facebook (2015)

slide-5
SLIDE 5

Motivation

Breathing Profile

slide-6
SLIDE 6

Motivation

Reactive Profile

slide-7
SLIDE 7

Approach

Target Image (!∗) Driving Video (# = {&', &), … }) Output Video (, = {!', !), … })

slide-8
SLIDE 8

A Challenging Problem

  • Uncanny Valley

Mori (1970) https://www.facebook.com/pam.richa rdcoones/posts/10103240387205162 https://spectrum.ieee.org/auto maton/robotics/humanoids/inva sion-of-the-robot-babies- infographic

slide-9
SLIDE 9

Assumptions

  • Front facing faces
  • Target image is a neutral face
  • Driving video includes an instance of a neutral face (!∗)
slide-10
SLIDE 10

Pipeline

Step 1: Feature Correspondence Target Image (!∗) Driving Video (#) Step 2: Coarse Target Video Synthesis Step 3: Transferring Hidden Regions Step 4: Transferring Fine-Scale Details

slide-11
SLIDE 11

Pipeline

Step 1: Feature Correspondence Target Image (!∗) Driving Video (#) Step 2: Coarse Target Video Synthesis Step 3: Transferring Hidden Regions Step 4: Transferring Fine-Scale Details

slide-12
SLIDE 12

Step 1: Feature Correspondence

  • 68 facial landmarks for facial region (red)
  • Peripheral points outside facial region (yellow)

Neutral Video Frame (!∗) Target image (#∗)

$ %∗

&

%∗

'

slide-13
SLIDE 13

Step 1: Feature Correspondence

  • Facial landmark detection
  • !: best similarity transform between control

points in driving video and target image

  • How do we handle regions outside the face?
  • Peripheral points!
  • On neutral video frame:
  • Feature point detection
  • On other frames in driving video:
  • Optical flow
  • On target image:
  • Map peripheral points with "

Neutral Video Frame (#∗) Target image (%∗) Driving Video Frame & (#')

" (∗

)

('

)

(∗

*

slide-14
SLIDE 14

Pipeline

Step 1: Feature Correspondence Target Image (!∗) Driving Video (#) Step 2: Coarse Target Video Synthesis Step 3: Transferring Hidden Regions Step 4: Transferring Fine-Scale Details

slide-15
SLIDE 15

Step 2: Coarse Target Video Synthesis

  • “Confidence-aware warping”
  • Interpolate warp fields + smooth warping in regions outside the face

Step 2 Result Driving Video

slide-16
SLIDE 16

Step 2: Coarse Target Video Synthesis

  • !: mapping between control points in driving

video and target image/resulting video

  • "∗

$ = & ⋅ "∗ (, ") $ = & ⋅ ") (

")

$ = "∗ $ − & ⋅ (") ( − "∗ ()

Neutral Video Frame (-∗) Target image (.∗) Driving Video Frame / (-))

&

")

$?

Result Video Frame / (.))

& "∗

(

")

(

"∗

$

slide-17
SLIDE 17

Step 2: Coarse Target Video Synthesis

  • Linear interpolation of warp field using Delauney triangulation (HW2)
  • But…
  • Discontinuities outside the facial region
  • We can apply uniform smoothing to the entire warp field, but…
  • Removes facial expression
slide-18
SLIDE 18

Step 2: Coarse Target Video Synthesis

  • Smooth w.r.t. confidence
  • No smoothing within face (high confidence)
  • The farther away from face, the greater the

radius of blurring kernel (lower confidence)

  • 10 discrete blur radii

R = 0 R = 0.005 R = 0.010 R = 0.015

slide-19
SLIDE 19

Step 2: Coarse Target Video Synthesis

  • What is missing and why?
  • Inside the mouth!
slide-20
SLIDE 20

Pipeline

Step 1: Feature Correspondence Target Image (!∗) Driving Video (#) Step 2: Coarse Target Video Synthesis Step 3: Transferring Hidden Regions Step 4: Transferring Fine-Scale Details

slide-21
SLIDE 21

Step 3: Transferring Hidden Regions

  • Transfer mouth region from driving video to fill in the mouth

Step 2 Result Step 3 Result Driving Video

slide-22
SLIDE 22

Step 3: Transferring Hidden Regions

2"#$%&'

"#$%&'

Mouth transfer Blend original & transfer Use original

slide-23
SLIDE 23

Step 3: Transferring Hidden Regions

Step 2 Result Step 3 Result Driving Video

slide-24
SLIDE 24

Step 3: Transferring Hidden Regions

  • Morphological erosion: be conservative about the pixels to replace (want

to keep lips)

  • Poisson blending: satisfy boundary while preserving patch structure

http://eric-yuan.me/poisson-blending/ http://what-when-how.com/introduction-to-video-and-image- processing/morphology-introduction-to-video-and-image-processing- part-2/

slide-25
SLIDE 25

Pipeline

Step 1: Feature Correspondence Target Image (!∗) Driving Video (#) Step 2: Coarse Target Video Synthesis Step 3: Transferring Hidden Regions Step 4: Transferring Fine-Scale Details

slide-26
SLIDE 26

Step 4: Transferring Fine-Scale Details

  • Add shading changes from driving video
  • Correct for undesired artifacts

Step 3 Result Final Result Driving Video

slide-27
SLIDE 27

Step 4: Transferring Fine-Scale Details

  • Use warped neutral frame ̅

"∗ = %&∗→&( ⋅ "∗

  • Compute ratio image *+
  • *+ = ,(&()

,( ̅ &∗)

Warped Neutral Frame ( ̅ "∗) Driving Video Frame / ("+) Ratio Image (*+)

slide-28
SLIDE 28

Step 4: Transferring Fine-Scale Details

  • Apply ratio image !" to Step 3 video frame after warping into target space
  • #" = (& ⋅ !") ⋅ #"′
  • Issues here?
  • Saturation

Warped Neutral Frame ( ̅ +∗) Driving Video Frame - (+") Ratio Image (!") Step 3 Video Frame - (#"′) Result Video(?) Frame - (#")

  • Outlier (misaligned shadow)
slide-29
SLIDE 29

Step 4: Transferring Fine-Scale Details

  • Robustness to saturation
  • Darkening inside in wrinkles is essential, but not as much for brightening
  • Reduce ‘brightening effect’ by a factor of 0.01
  • Facial region estimation: remove all effect outside the face
  • Need the forehead (not a landmark)
  • Best ellipse fit for points on chin
  • Grab-cut: segmentation using graph cut
slide-30
SLIDE 30

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination
  • General idea: “Outliers (e.g., shadows) appear in similar regions across all

frames, so detect them by comparing with the most distant frame and find corresponding outliers in other frames to remove them”

  • Reference frame (!"#$): the ‘most distant frame’ with the greatest ‘non-

similarity’ deformations

  • The frame with the greatest: %

& ∑ ()∗→), ⋅ .∗ ) − .0 ) 1 1

.∗

)

.0

)

Neutral Video Frame (!∗) Driving Video Frame 2 (!0)

()∗→), ()∗→), ⋅ .∗

)

slide-31
SLIDE 31

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$

Ratio Image (%"#$) Connected components

  • f significant ratio values
slide-32
SLIDE 32

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4

Reference Frame (!"#$) Warped Neutral Frame ( ̅

!∗)

slide-33
SLIDE 33

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4

Warped Neutral Frame ( ̅

!∗)

Reference Frame (!"#$)

slide-34
SLIDE 34

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4

Warped Neutral Frame ( ̅

!∗)

Reference Frame (!"#$)

slide-35
SLIDE 35

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4 3 1 5 1 3 2 3 1

Difference Max Difference: 5 Warped Neutral Frame ( ̅

!∗)

Reference Frame (!"#$)

slide-36
SLIDE 36

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 1 3 5 2 2 2 5 7

Difference Max Difference: 7

5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4

Warped Neutral Frame ( ̅

!∗)

Reference Frame (!"#$)

slide-37
SLIDE 37

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 1 1 1

Difference Max Difference: 1

5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4 1

  • Minimum

Max Difference Warped Neutral Frame ( ̅

!∗)

Reference Frame (!"#$)

slide-38
SLIDE 38

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

1 1 2

Difference Max Difference: 2

1 2

  • Minimum

Max Difference

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4

Warped Neutral Frame ( ̅

!∗)

Reference Frame (!"#$)

slide-39
SLIDE 39

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • Significant ratio values: pixels with values >1.1 or <1/1.1 in ratio image
  • 1. Outlier detection in !"#$
  • Find connected components of significant ratio values in %"#$
  • Check if the a pixels in the connected component ‘appear’ in ̅

!∗ (patch comparison)

1 2 1

Difference Max Difference: 2

1 2 2

Minimum Max Difference Warped Neutral Frame ( ̅

!∗)

Average: 1.7 < 5 -> Outlier Reference Frame (!"#$)

3 7 5 6 9 4 5 2 4 6 2 5 2 2 2 5 4 2 5 3 5 3 2 3 1 5 7 5 1 3 5 2 6 9 2 4 4 1 3 1 3 1 5 8 5 3 1 1 2 3 4 2 4 7 2 1 1 3 2 5 3 9 9 1 4 4 2 8 7 8 7 5 5 1 7 5 7 6 9 2 1 6 1 5 3 2 3 1 4

slide-40
SLIDE 40

Step 4: Transferring Fine-Scale Details

  • Outlier detection & elimination (Cont.)
  • 2. Outlier elimination in !"
  • Compute #$%→$'() (transform from !" to !*+,)
  • Exclude if outlier is close to the transformed pixel (20 px)

Connected components

  • f significant ratio values

Outliers (red) Modified Ratio Image

slide-41
SLIDE 41

Step 4: Transferring Fine-Scale Details

  • Temporal stability
  • Temporal Gaussian filter of size 21
  • Apply the modified ratio image!

Step 3 Video Frame ! ("#′) Result Video Frame ! ("#) Modified Ratio Image

slide-42
SLIDE 42

Results

slide-43
SLIDE 43

Results

  • Animated facial avatars
slide-44
SLIDE 44

Evaluation

  • User study
  • Presented 24 videos (8 real) to each of the 30 participants
  • Asked to rate very likely fake (1), likely fake (2), could equally be real or fake

(3), likely real (4), very likely real (5)

0.85 0.46

slide-45
SLIDE 45

Comparisons

  • Warping comparison (Fried et al.)
  • No manual step

Close-up photo Generated far photo

slide-46
SLIDE 46

Comparisons

  • Warping comparison (Fried et al.)
  • Hidden region transfer + fine-scale details
  • Smoother results
slide-47
SLIDE 47

Comparisons

  • Reenactment comparison (Thies et al.)
slide-48
SLIDE 48

Comparisons

  • Reenactment comparison (Thies et al.)
  • Single picture of target as input
  • Transfers head motion
  • Fine-scale details

Target Photo/Video Driving Video Thies et al. Results

slide-49
SLIDE 49

Limitations

  • Frontal head pose assumption
slide-50
SLIDE 50

Limitations

  • Neutral target face assumption
slide-51
SLIDE 51

Limitations

  • Dependency on face tracker accuracy
  • Eye blinking
slide-52
SLIDE 52

Limitations

  • Warping of background
  • Mouth region
slide-53
SLIDE 53

Recent Work

  • Geng et al.