SLIDE 1 Selectively De-Animating Video
Jiamin Bai, Aseem Agarwala, Maneesh Agrawala, Ravi Ramamoorthi SIGGRAPH 2012
CS 448V: Computational Video Manipulation
SLIDE 2
Inspiration
http://cinemagraphs.com/
SLIDE 3
Cinemagraphs
SLIDE 4
De-Animating Video
SLIDE 5
Example Walkthrough
SLIDE 6
Example Walkthrough
SLIDE 7
Cinemagraphs
SLIDE 8
System Diagram
SLIDE 9
System Diagram
SLIDE 10
System Diagram
SLIDE 11 Warping: Tracking
s = track index t = time (frame number) ta = reference frame
K (s, t) = set of tracks as a table of 2D coordinates KG (s, t) = subset of tracks that lie on the user indicated region K’G (s, t) = locations of tracks after warping K’G (s, t) = KG (s, ta) KG = KA ∪ KF
SLIDE 12 Warping: Tracking
K (s, t) = set of tracks as a table of 2D coordinates KG (s, t) = subset of tracks that lie on the user indicated region K’G (s, t) = locations of tracks after warping K’G (s, t) = KG (s, ta) KG = KA ∪ KF
s = track index t = time (frame number) ta = reference frame
SLIDE 13 Warping: Tracking
K (s, t) = set of tracks as a table of 2D coordinates KG (s, t) = subset of tracks that lie on the user indicated region K’G (s, t) = locations of tracks after warping K’G (s, t) = KG (s, ta) KG = KA ∪ KF
s = track index t = time (frame number) ta = reference frame
SLIDE 14 Warping: Tracking
K (s, t) = set of tracks as a table of 2D coordinates KG (s, t) = subset of tracks that lie on the user indicated region K’G (s, t) = locations of tracks after warping K’G (s, t) = KG (s, ta) KG = KA ∪ KF
s = track index t = time (frame number) ta = reference frame
anchor tracks
SLIDE 15 Warping: Tracking
s = track index t = time (frame number) ta = reference frame
K (s, t) = set of tracks as a table of 2D coordinates KG (s, t) = subset of tracks that lie on the user indicated region K’G (s, t) = locations of tracks after warping K’G (s, t) = KG (s, ta) KG = KA ∪ KF
SLIDE 16 Warping: Tracking
s = track index t = time (frame number) ta = reference frame
K (s, t) = set of tracks as a table of 2D coordinates KG (s, t) = subset of tracks that lie on the user indicated region K’G (s, t) = locations of tracks after warping K’G (s, t) = KG (s, ta) KG = KA ∪ KF floating tracks
SLIDE 17
System Diagram
SLIDE 18
Warping: Initial Warp
E = Ea + ωEs
SLIDE 19 Warping: Initial Warp
E = Ea + ωEs
main constraint
SLIDE 20 Warping: Initial Warp
E = Ea + ωEs
shape-preserving
SLIDE 21
Warping: Initial Warp
E = Ea + ωEs
SLIDE 22
Warping: Initial Warp
E = Ea + ωEs
SLIDE 23 Warping: Initial Warp
E = Ea + ωEs
K’A (s, t)
SLIDE 24 Warping: Initial Warp
E = Ea + ωEs
weighting function
SLIDE 25
System Diagram
SLIDE 26
Warping: Refined Warp
E = Ea + Ef + ωEs
SLIDE 27 Warping: Refined Warp
E = Ea + Ef + ωEs
K’F (s, ta) ???
SLIDE 28
Warping: Refined Warp
E = Ea + Ef + ωEs
SLIDE 29 Warping: Refined Warp
E = Ea + Ef + ωEs
K’F (s, t+1) K’F (s, t)
SLIDE 30
Warping: Result
SLIDE 31
System Diagram
SLIDE 32
System Diagram
SLIDE 33 Candidate Video Volumes
Labels L = W ∪ S dynamic: copies of warped video W(x, y, t) W = {Wi, Wj} (if loop seamlessly) static: still-frames from input video repeated to fill duration of output S = {Ib, I2b, … I5b}
SLIDE 34 Candidate Video Volumes
Labels L = W ∪ S dynamic: copies of warped video W(x, y, t) W = {W} or {Wi, Wj} (if loop seamlessly) static: still-frames from input video repeated to fill duration of output S = {Ib, I2b, … I5b}
SLIDE 35 Candidate Video Volumes
Labels L = W ∪ S dynamic: copies of warped video W(x, y, t) W = {W} or {Wi, Wj} (if loop seamlessly) static: still-frames from input video repeated to fill duration of output S = {Ib, I2b, … I5b}
b = time interval that evenly samples the input five times Ib = video where both frame of input video is repeated for duration of output
SLIDE 36 Candidate Video Volumes
Labels L = W ∪ S dynamic: copies of warped video W(x, y, t) W = {W} or {Wi, Wj} (if loop seamlessly) static: still-frames from input video repeated to fill duration of output S = {Ib, I2b, … I5b}
b = time interval that evenly samples the input five times Ib = video where both frame of input video is repeated for duration of output
SLIDE 37 Compositing: Graph-cut
Wi Wj
SLIDE 38 Wi Wj
Compositing: Graph-cut
SLIDE 39 Wi Wj
Compositing: Graph-cut
SLIDE 40 Wi Wj
Compositing: Graph-cut
t = tj - 11 t = tj - 10
SLIDE 41
Compositing: Labeling Constraints
SLIDE 42 Compositing: Labeling Constraints
From user-drawn compositing strokes:
- If v(x, y) = blue, λ(x, y, t) ∈ W
- If v(x, y) = red, λ(x, y, t) ∈ S
For seamless looping:
- λ(x, y, 0) ≠ Wi
- λ(x, y, 20) ≠ Wj
v(x, y) = strokes {red, blue, NULL}
SLIDE 43 Compositing: Labeling Constraints
From user-drawn compositing strokes:
- If v(x, y) = blue, λ(x, y, t) ∈ W
- If v(x, y) = red, λ(x, y, t) ∈ S
For seamless looping:
- λ(x, y, 0) ≠ Wi
- λ(x, y, 20) ≠ Wj
t = 0 t = 20 v(x, y) = strokes {red, blue, NULL}
SLIDE 44
Compositing: Energy Function
SLIDE 45 Compositing: Energy Function
RGB differences
SLIDE 46 Compositing: Energy Function
edge strengths
SLIDE 47 Compositing: Energy Function
RGB differences
SLIDE 48 Compositing: Energy Function
color of pixel p2 in candidate video volume λ(p1)
SLIDE 49 Compositing: Energy Function
edge strengths
SLIDE 50 Compositing: Energy Function
edge strengths
candidates for seams between dynamic and static
SLIDE 51 Compositing: Energy Function
edge strengths
SLIDE 52
Compositing: Energy Function
minimize
SLIDE 53
System Diagram
SLIDE 54
Results: Beer
SLIDE 55
Results: Model K
SLIDE 56
Results: Glass
SLIDE 57
Results: Glass
SLIDE 58
Results: Glass
SLIDE 59
Results: Video Editing
SLIDE 60
Results: Roulette
SLIDE 61
Results: Roulette
SLIDE 62
Results: Roulette
SLIDE 63
Results: Video Editing
SLIDE 64
Assumptions
SLIDE 65 Assumptions
- Input captured with a tripod (or previously stabilized)
- Assume large-scale motions can be be de-animated
with 2D warps
- Objects to de-animate shot in front of a defocused,
uniform, or uniformly-textured background
SLIDE 66 Assumptions
- Input captured with a tripod (or previously stabilized)
- Assume large-scale motions can be be de-animated
with 2D warps
- Objects to de-animate shot in front of a defocused,
uniform, or uniformly-textured background
SLIDE 67 Assumptions
- Input captured with a tripod (or previously stabilized)
- Assume large-scale motions can be be de-animated
with 2D warps
- Objects to de-animate shot in front of a defocused,
uniform, or uniformly-textured background
SLIDE 68
Limitations: 3D Motion
SLIDE 69
Limitations: Background
SLIDE 70 Limitations
- What happens if the input video is not stabilized?
SLIDE 71 Follow-up
- This system includes some manual annotation, how
would you automate the user input?
- Specifically, what would you do for faces?
SLIDE 72 Follow-up: Cinemagraph Portraits
“Automatic Cinemagraph Portraits” Bai et al. EGSR 2013
SLIDE 73 Selectively De-Animating Video
Jiamin Bai, Aseem Agarwala, Maneesh Agrawala, Ravi Ramamoorthi SIGGRAPH 2012
CS 448V: Computational Video Manipulation
SLIDE 74
Warping: Tracking
SLIDE 75
Warping: Initial vs Refined
SLIDE 76
Results: Existing Techniques
SLIDE 77 Adapted Cost Function
Graph-cut
SLIDE 78
User Input: De-animated Static
de-animate strokes compositing strokes
SLIDE 79
User Input: De-animated Dynamic
compositing strokes de-animate strokes
SLIDE 80
System Diagram
SLIDE 81
System Diagram