DevelopHyun

Data Science & Algorith with Computer Science

Video Style Transfer[1] Artistic style transfer for videos(2016) - Review

13 Nov 2018 » deeplearning, video, style-transfer, paperreview

1. Abstract

  • 연속적이고 안정적인 video style transfer를 위한 새로운 initialization과 loss 제안

2. Introduction

  • style transfer for image
    • content image와 style image에 CNN을 적용

2.1 style transfer for video

fig1

  • 일반적인 style transfer를 video의 frame에 각각 적용하면 frame별로 다르게 학습되어 discontinuous하기 때문에 stable하지 않다는 문제 발생

  • white noise feature map
    • white noise로 부터 generated image를 생성하기 때문에 한 frame씩 학습시키게 된다면 모든 frame이 다르게 학습됨
  • temporal consistency
    • 자연스러운(smooth) 장면 전환(frame transition)을 위해서 두 frame의 deviation(편차)에 penalty를 적용
    • 단순한 image의 deviation에 편차에 penalty를 적용하는 것이 아니라, point trajectory에 penalty를 적용하는 optical flow 기법 사용
    • 즉, frame에서 사라진 물체에 대해서는 penalty를 적용하지 않고, 계속 화면에 존재하는(trajectory에 존재하는) 물체에만 penalty 적용
  • long-term consistency
    • 만약 어떤 물체가 화면에 가려졌다가(occuluded) 다시 등장하게 된다면, 그 부분의 style이 기본과는 다르게 새로 학습되는 문제 발생
    • long term motion estimate를 통해 물체의 재등장시 frame간의 style을 같게 유지해줌
  • multi-pass algorithm
    • image의 boundary에 content image에 없는 artifact(물체)가 생기는 경우가 존재
    • image에서는 크게 상관이 없지만, video에서는 중앙쪽으로 카메라가 움직이면서 기존의 content와 증폭되는 문제 발생
    • video의 forward/backward 방향을 번갈아가며 처리하는 multi-pass algorithm 방식으로 해결

  • Style transfer using deep networks
  • Painted animations

4. Style Transfer in still images

  • content loss
    • CNN을 통해 output의 feature map이 content image와 비슷해지도록 함
    • =
    • = size of -th layer feature map
    • = original image를 layer에 통과시켰을 때, output의 각 pixel값
    • = generated image를 layer에 통과시켰을 때, output의 각 pixel값
    • 즉, 각 layer마다 content image와 generated image의 모양(content)가 얼마나 차이나는지를 loss로 사용
  • style loss
    • output과 style image의 correlation을 통해 style이 비슷하도록 encoding
    • =
    • = size of -th layer feature map
    • = = style image의 Gram Matrix
    • = = gernerated image의 Gram Matrix
    • 즉, 각 layer마다 content image와 generated image의 style이 얼마나 차이나는지를 loss로 사용
  • total loss
    • =

5. Style Transfer in videos

5.1 Short-term consistency by initialization

optical flow

  • 만약 연속적인 frame이 각각 다른 Gaussian noise로 부터 initialization될 경우, 두 frame이 서로 다른 local minima로 수렴하여 flickering 문제(같은 부분에 다른 style이 적용되는 문제)가 발생

  • -th generated image를 -th frame의 initialization로 사용
    • 변화가 없는 부분은 그대로 style이 적용되고, 새로 등장하거나 변화되는 부분은 새롭게 학습
    • 하지만, motion이 있는 경우에는 움직이는 부분에 initialization이 부정확하게 되는 문제가 발생
  • optical flow 적용
    • optical flow란, previous frame과 current frame을 이용하여 각 부분의 motion vector, 즉, 얼마나 이동했는지를 찾는 것
    • original image의 frame에서 측정된 optical flow field를 -th generated image에 적용하여 -th frame의 initialization로 사용
    • =
    • = optical flow field from original frame to original frame

5.2 Temporal consistency loss

  • 인접한 장면의 일관성을 위해서 연속된 두 frame에 penalty를 부여
    • 이를 위해서는 물체가 사라진건지 아닌지에 대한 것과 motion에 대한 detection이 필요
  • disocclusion object(가려졌다가 다시 등장하는 물체, 혹은, 새롭게 등장하는 물체)
    • object disocclusion을 판단 위하여 forward/backward 방형의 optical flow를 확인
    • disocclusion이 발생하지 않는 area(계속 image에 존재하는 물체)는 forward/backward 방형의 optical flow가 거의 반대이기 때문에, disocclusion인 부분은 아래의 부등식이 성립
    • >
    • = = forward 방향의 optical flow
    • = = backward 방향의 optical flow
    • =
  • motion boundary
    • >
    • 위의 공식을 이용하여 motion detection을 함
  • temporal consistency loss
    • frame에서 optical flow가 변화없는 곳에 적용되어 deviation에 penalty를 적용
    • =
    • = per-pixel weight
    • =
  • short-term loss
    • =
    • =
    • = disoclussion 혹은 motion boundary가 있는 곳은 0, 아니면 1
    • = optical flow field from -th frame to -th frame

5.3 Long-term consistency loss

  • 물체가 가려졌다가(occluded) 다시 등장하는(disoccluded) 경우, style이 변하는 문제가 발생
    • previous frame만 확인하는 것이 아니라, 더 멀리 있는 frame도 확인할 수 있는 long-term loss 적용
  • long-term loss
    • =
    • =
    • = -th frame이 고려해야하는 frame의 index set
    • =
  • 우선 short-term loss를 적용한 후, long-term loss 적용

5.4 Multi-pass algorithm

fig2

  • boundary가 다른 부분에 비해 학습이 잘 되지 않는다는 문제가 존재
    • camera 혹은 물체가 움직이면서 image boundary가 화면의 중심으로 오게 될 경우, 낮은 quality의 output을 보여줌
    • image sequence를 다양한 방향과, multiple-pass로 학습을 시키는 방식으로 해결
    • multiple-pass란, 이전 pass에서 학습된 것을 사용하여 여러 번 반복해서 학습시키는 것
  • multiple-pass algorithm
    • 우선 각 frame을 독립적으로 학습시킨 후, non-disoccluded한 image끼리 섞어서 optimization
    • 이때, optimization은 forward/backward 방향 모두에 대해서 학습
    • image
    • = initialization of frame

6. Experiments

6.1 Implementation details

style transfer

  • 기존의 style transfer처럼 VGG-19 기반의 model
    • 의 output을 content loss에 사용
    • , , , , 의 output을 style loss에 사용
  • L-BFGS를 통해 optimization
    • 50 iteration 동안 0.01% 이상 감소하지 않으면 학습을 중단
    • 처음 image에는 2000~3000 iteration, 그 이후의 image는 400~800 iteration
  • parameter for loss
    • = 1, = 20, = 200 for
    • = 1, = 40, = 200 for
    • = 1, = 100, = 400 for
  • multi-pass algorithm
    • = 0.5
    • 100 iteration for pass
    • 10개 정도의 pass가 좋은 성능
  • optical flow
    • DeepMatching, DeepFlow, EpicFlow 사용
  • Sintel dataset 사용

6.1.1 Runtime

  • style transfer
    • GPU를 사용하여 frame당 3분 소요
  • optical flow
    • CPU를 사용하여 frame당 3분 소요
    • 병렬처리 가능

6.2 Short-term consistency

table1

6.3 Long-term consistency and multi-pass algorithm

fig3-4


7. Conclusion

  • 새로운 loss를 도입하여 video에 style transfer를 자연스럽게 적용

8. Reference