본문 바로가기

논문 리뷰/etc.

Deep Flow-Guided Video Inpainting

Optical flow를 통한 video inpainting 방법

 

[Project Page]

[arXiv]

[Github]

 

 

Abstract

Deep Flow Completion network를 이용한 flow-guided video inpainting

 

 

Introduction

인페인팅을 위해 RGB 픽셀을 채우는 대신 flow 기반 접근 방법 제시.

영상의 대부분의 개체는 추적 가능한 동작을 가지므로 시간적 일관성이 자연스럽게 유지됨.

 

Optical flow를 채우기 위해 DFC-Net(Deep Flow Completion Network) 설계.

  • Coarse-to-fine refinement: 3개의 하위 네트워크(DFC-S)를 쌓아 단계적으로 복구
  • Temporal coherence maintenance: 하위 네트워크가 매번 단일 프레임만 예측하더라도 자연스럽게 전역 시간적 일관성을 장려하도록 설계됨.
  • Hard flow example mining 전략 도입

 

최첨단 성능, 이전 방법들에 비해 런타임 속도가 훨씬 빠르며 특정한 가정이 필요하지 않음.

 

 

 

Methodology

Flow를 완성하는 단계, 픽셀을 전파하는 단계로 나누어짐.

Deep Flow Completion Subnetwork (DFC-S)

FlowNet2.0을 사용하여 flow field를 추출하고 마스크 된 부분을 부드럽게 보간하여 초기화.

첫 번째 DFC-S의 입력 채널은 33(x축, y축 flow map, mask 11개씩)

 

ResNet backbone +

  • conv1 입력 채널 수정
  • 해상도를 높이기 위해 stride를 줄이고 conv4, 5를 dilated convolution으로 교체
  • 업샘플링 모듈 추가. 예측을 flow field에 투영하기 위해 마지막 활성화함수 제거

Refine Flow by Stacking

해상도가 낮을수록 좋은 초기 결과를 얻기 때문에 초기 DFC-S의 입력 크기는 작게 했다가 다른 DFC-S에 입력될 때 점점 확대하여 세부 정보 포착.

두 번째 DFC-S의 입력에는 역방향 flow map도 추가.

세 번째 DFC-S는 크기만 다르고 두 번째 DFC-S와 같음.

 

Training

비디오 시퀀스에서 마스크를 무작위로 생성하고 모델 출력과 ground truth와 비교.

각 하위 네트워크는 개별 학습한 다음 공동으로 fine-tuning.

 

Hard Flow Example Mining (HFEM)

대부분의 flow 영역이 매끄럽기 때문에 경계 부분이 흐려지는 불균형 문제가 생길 수 있음.

 

모든 픽셀의 손실을 내림차순으로 정렬한 다음 상위 픽셀을 hard example로 지정하고 해당 영역에 높은 가중치를 부여.


 Flow Guided Frame Inpainting

Flow Guided Pixel Propagation

Flow의 유효성 검사: 순방향, 역방향 진행을 하면 원래 위치로 돌아가야 함.

(x = location, f = flow, ε = 매우 작은 임계값)

 

 Flow의 신뢰할 수 있는 유효한 부분을 기반으로 픽셀을 전파.

 

여기서 따로 모듈 같은 것을 사용하지 않는데, 어떤 프레임에서 보이지 않던 부분이 다른 프레임에서 보일 수 있기 때문에, optical flow의 성질에 따라 픽셀을 채워 넣을 수 있다. 

 

Inpaint Unseen Regions in Video

픽셀 전파로 다 채우지 못한 부분은 비디오 시퀀스에서 다 채워지지 않은 프레임 하나를 선택하여 contextual attention을 통해 채운 다음, 추정된 optical flow를 기반으로 다른 프레임으로 전파.

 

모든 프레임의 모든 픽셀이 채워질 때까지 인페인팅과 전파를 반복. (마스크가 12%인 경우 평균 1.1회 전파)

 

 

 

Experiments