논문 요약
많은 video enhancement 알고리즘은 비디오 시퀀스에 프레임을 register하기 위해 optical flow에 의존한다. 하지만 정확한 flow를 예측하는 것은 어렵고 어떤 경우 optical-flow자체가 특정 비디오 처리 문제에 sub-optimal한 경우도 있다. 이 논문에서는 하고자 하는 task에 맞는 motion representation을 self-supervised한 방법으로 학습할 수 있는 task-oriented flow (TOFlow)를 제시한다. 네트워크는 각 task에 맞는 flow를 학습할 수 있으며 motion estimation component와 video processing component로 구성되어있다. 더불어 평가를 위해 low-level 비디오 처리에 적합한 large-scale, high-quality 비디오 데이터셋 Vimeo-90K을 구축했다.
1. Paper Bibliography
논문 제목
Video Enhancement with Task-Oriented Flow
저자
Xue et al.
출판 정보 / 학술대회 발표 정보
International Journal of Computer Vision 127.8 (2019): 1106-1125.
2. Problems & Motivations
Motion estimation은 video frame interpolation, video denoising, video super-resolution 등 비디오 처리에서의 핵심 요소이다. 이 당시 모션을 기반으로한 비디오 처리 알고리즘은 two-step으로 접근하는 방법이 많았다: 먼저 입력 프레임간의 motion을 estimate하고 최종 결과물 만들기에 사용. 이 때문에 flow estimation의 정확도가 이러한 two-step 접근법의 성능에 영향을 많이 미쳤다.
그러나 정확한 flow를 estimate하는 것은 매우 어렵고 느리다. 많은 알고리즘들은 brightness constancy assumption에 의지하고 있었으며 빛과 포즈의 다양성, motion blur, occlusion 때문에 예측에 실패하기도 하였다. 더불어 많은 알고리즘이 large-scale optimization problem을 푸는 것을 포함하기 때문에 real-time으로 할만큼 효율적이지 않다.
Fig 1은 frame interpolation의 예를 보여준다. 당시 EpicFlow(2015)는 SOTA모델 중 하나였는데 (I-b)를 보면 경계가 잘 정렬된 motion field를 예측한 것을 볼 수 있다. 그러나 이를 기반으로 interpolated된 frame은 occlusion때문에 아티팩트가 생긴 것을 볼 수 있다(I-c). 이는 EpicFlow가 두 프레임간에 보이는 부분만 매칭하기 때문인데, interpolation에서는 occluded region도 inpaint할 필요가 있다. 이에 반해 task-oriented flow는 (I-e) ground truth optical flow과는 결과가 다르더라도 (I-d) occlusion을 다루는 법도 학습하기 때문에 task의 최종 결과물은 더 잘 나온 것을 볼 수 있다. 다른 예로 video denoising에서 task-oriented flow는 노이즈를 없애는데 도움을 준다 (II-d).
즉, 구체적인 비디오 처리 문제에서 실제 물체의 움직임과는 정확히 매치되지 않아도 더 나은 결과를 도출해낼 수 있는 motion representation이 있다는 것을 알 수 있다.
3. Method
TOFlow는 크게 3파트로 나눠져 있다
1. flow estimation module: 입력 프레임들의 픽셀간 움직임을 예측
2. image transformation module: 프레임들을 reference frame으로 warp
3. task-specific image processing module: 이미지 처리 모듈 ex) video interpolation, denoising, super-resolution
fow-estimation module 이 다른 두 모듈과 함께 학습되기 때문에 특정 task에 맞는 flow를 예측할 수 있게 된다
3.1 Flow Estimation Module
Flow estimation module은 입력 프레임 간의 motion fields를 계산한다. 각 flow network는 입력으로 reference frame과 $N$ ($N$=3: interpolation, $N$=7: denoising, super-resolution)개의 프레임으로 구성된 sequence를 입력으로 받아 이들간의 motion을 결과물로 예측한다
SPyNet(2017) 구조를 사용해 flow를 예측한다. 이는 피라미드 구조로 되어 있으며 프레임간의 큰 변화를 다루는데 적합하다.
3.2 Image Transformation Module
이전에 구한 motion field를 가지고, 모든 input frame을 reference frame에 register한다. 이 때 STN(2015) 구조를 사용했다. 이때 중요한 속성인 이 모듈은 기울기를 flow estimation모듈에 역전파할 수 있다는 점이다. 이를 통해 우리는 각 task에 맞는 flow representation을 구할 수 있다.
3.3 Image Processing Module
최종 결과를 위한 모듈이다. 각 taks에 따라 조금씩 다른 구조를 가지고 있다.
Occluded regions in warped frames
mask prediction network도 시도해 보았다. 이는 예측한 두 모션 필드를 입력으로 받고 2개의 occlusion mask를 만든다: $m_{21}$이면 이미지 1을 warp해 만든 프레임2. Warped frames의 invalid regions는 해당하는 마스크를 곱함으로서 masked된다.
이러한 마스크 처리를 하지 않아도 어느 정도 좋은 성능을 보이기 때문에 선택적으로 사용할 수 있다.
4. Experiments
Datasets
Vimeo90K
이전 비디오 데이터셋은 사이즈가 작고 컨텐츠가 부족했다. 대신 저자들은 Vimeo에서 다양한 주제를 가지고 전문 카메라로 찍은 비디오들을 모았다. 추가로 intter-frame compressioon(e.g. H.264)가 없는 비디오들을 찾았는데 이는 비디오 코덱으로 발생한 아티펙트를 방지하기 위해서이다.
- 4278 videos, 89800 independent shots
- resize all frames to fixed resolution 448x256
Results(VSR)
- Fixed Flow: train each module separately (first pre-train motion estimation, and then train video processing while fixing the flow module)
- TOFlow: jointly train all modules
Google Scholar Link
GitHub
https://github.com/anchen1011/toflow
댓글