Video Propagation Networks V. Jampani, R. Gadde and P. V. Gehler, - - PowerPoint PPT Presentation

video propagation networks
SMART_READER_LITE
LIVE PREVIEW

Video Propagation Networks V. Jampani, R. Gadde and P. V. Gehler, - - PowerPoint PPT Presentation

Video Propagation Networks V. Jampani, R. Gadde and P. V. Gehler, CVPR 2017 s Jon a Ser ych 2019-09-05 The Task Given: Video sequence Per-pixel information (color, segmentation, . . . ) on few frames Propagate the


slide-1
SLIDE 1

Video Propagation Networks

  • V. Jampani, R. Gadde and P. V. Gehler, CVPR 2017

Jon´ aˇ s ˇ Ser´ ych 2019-09-05

slide-2
SLIDE 2

The Task

Given:

  • Video sequence
  • Per-pixel information (color, segmentation, . . . ) on few frames

Propagate the information to the whole video.

1/16

slide-3
SLIDE 3

The Task

Given:

  • Video sequence
  • Per-pixel information (color, segmentation, . . . ) on few frames

Propagate the information to the whole video.

1/16

slide-4
SLIDE 4

The Approach

Bilateral network

  • image-adaptive

spatio-temporal dense filtering

  • straight-forward integration
  • f temporal information

Spatial Network

  • shallow CNN
  • spatial refinement

2/16

slide-5
SLIDE 5

Bilateral Filtering – Introduction

Standard Gaussian filtering – weighted average of all pixel values: v′

i ≈ n

  • j=0

e−||pi−pj||2vj pi = (xi, yi)

  • spatially close → bigger influence

3/16

slide-6
SLIDE 6

Bilateral Filtering – Introduction

Standard Gaussian filtering – weighted average of all pixel values: v′

i ≈ n

  • j=0

e−||pi−pj||2vj pi = (xi, yi)

  • spatially close → bigger influence

Bilateral filtering: pi = (xi, yi, Ri, Gi, Bi)

  • spatially close and visually similar → bigger influence

3/16

slide-7
SLIDE 7

Edge-Preserving Bilateral Filtering Illustration

https://saplin.blogspot.com/2012/01/bilateral-image-filter-edge-preserving.html

4/16

slide-8
SLIDE 8

Joint Bilateral Upsampling Illustration

Signal (coloring) on low-resolution image upsampled using high-resolution image guide.

Image from slides by Peter Gehler Kopf, Johannes, et al. ”Joint bilateral upsampling.” ACM Transactions on Graphics, 2007.

5/16

slide-9
SLIDE 9

Bilateral Filtering – Propagation in Video

The main idea: Use the current frame as a guide for information propagation from the past frames. Use (x, y, R, G, B, t) instead of (x, y, R, G, B).

6/16

slide-10
SLIDE 10

Bilateral Filtering - Implementation Overview

  • 1. Splat: Embed input values vi at positions pi in a

high-dimensional space.

  • 2. Blur: Perform the filtering.
  • 3. Slice: Sample the space at positions p′

i. 7/16

slide-11
SLIDE 11

Naive Implementation

2D example:

  • Just do a convolution with Gaussian filter.
  • But what if the positions are not on the grid?

We could splat values onto the grid using bilinear interpolation: OK, but: Regular square grid: 2D neighboring vertices!

8/16

slide-12
SLIDE 12

Efficient Implementation Using Permutohedral Lattice

Permutohedral lattice: only D + 1 neighboring vertices

  • 1. Find the nearest lattice vertices and the corresponding weights

in O

  • D2

.

  • 2. Accumulate weighted values in lattice vertices (splat).
  • 3. Perform convolution on the lattice (blur).
  • 4. Interpolate from the lattice (slice).

9/16

slide-13
SLIDE 13

Linearity of Bilateral Filtering

Given (1-D for simplicity) values v ∈ RN at positions p ∈ RN×D:

  • Construct Ssplat ∈ RM×N using p.

M . . . number of lattice points. Each column of Ssplat contains the weights of single input.

  • Construct convolution in the matrix form B ∈ RM×M.
  • Construct Sslice ∈ RN×M similarly to Ssplat.

Then: v′ = Sslice (B (Ssplatv)) Linear in v and the convolution weights inside B. Backpropagation possible.

10/16

slide-14
SLIDE 14

VPN Architecture

  • splat in the first BCLa,b layers guided by previous frames
  • the rest guided by the current frame
  • ReLU after concatenations and spatial convolutions
  • Λa,b position scales found by validation

11/16

slide-15
SLIDE 15

Some Setup Details

  • splice: random sampling or superpixels (12000)
  • bilateral convolutions with no neighborhood
  • YCbCr instead of RGB
  • weighting previous 9 frame values by α, α2, α3, . . ., where

α = 0.5 (!!!)

  • optical flow for transformation of positions into current frame
  • multi-stage training and inference

12/16

slide-16
SLIDE 16

Object Segmentation Results

13/16

slide-17
SLIDE 17

Semantic Segmentation Results

14/16

slide-18
SLIDE 18

Color Propagation Example Outputs

15/16

slide-19
SLIDE 19

Conclusions

  • Efficient implementation of high-dimensional convolutions

using permutohedral lattices

  • Fast propagation of arbitrary data in video sequences
  • Interested? Check: H. Su, V. Jampani et al. Pixel-Adaptive

Convolutional Neural Networks (CVPR2019)

16/16

slide-20
SLIDE 20

Splat with Permutohedral Lattice

  • 1. Take the hyperplane of RD+1 in which coordinates sum to
  • zero. HD : x · 1 = 0
  • 2. The hyperplane HD is spanned by “base” vectors:

(D, −1, . . . , −1), (−1, D, −1, . . . , −1), . . . , (−1, . . . , −1, D)

  • 3. Integer combinations of the “base” vectors are the lattice

vertices.

slide-21
SLIDE 21

Splat with Permutohedral Lattice

View orthogonal to the hyperplane.

slide-22
SLIDE 22

Splat with Permutohedral Lattice

Integer combinations of the “base” vectors form the lattice.

slide-23
SLIDE 23

Splat with Permutohedral Lattice

Each vertex has consistent coordinates modulo (D + 1).

slide-24
SLIDE 24

Splat with Permutohedral Lattice

Permutohedron formed by the lattice points.

slide-25
SLIDE 25

Splat with Permutohedral Lattice

The HD hyperplane is tiled by translations of the permutohedron.

slide-26
SLIDE 26

Splat with Permutohedral Lattice

The neighboring lattice vertices fully identified by closest 0-remainder point l0 and coordinate ordering of x − l0.

slide-27
SLIDE 27

Splat with Permutohedral Lattice

Finding closest remainder-0 vertex

  • 1. l0 ← round coordinates of x to nearest multiple of (D + 1)
  • 2. Sort the coordinates by the amount of rounding
  • 3. Iterate starting with the most rounded coordinate:

3.1 If l0 lies on HD: finish 3.2 Round in the opposite direction 3.3 Go to the next coordinate

slide-28
SLIDE 28

Splat with Permutohedral Lattice

  • 1. Project input position p into the (D+1)-dimensional

hyperplane HD.

  • 2. Find closest remainder-0 point.
  • 3. Find corresponding simplex.
  • 4. Compute barycentric weights wi, i ∈ {1, 2, . . . , D + 1}.
  • 5. Accumulate the input value v weighted by wi into the

neighboring lattice vertices (entries in a hash-table).