Gaegul's devlog
[논문 리뷰] Flow-edge Guided Video Completion_ECCV 2020 본문
[논문 리뷰] Flow-edge Guided Video Completion_ECCV 2020
부지런깨꾹이 2021. 10. 5. 16:510. Abstract
본 논문은 새로운 flow-based video completion algorithm 을 설명한다. 그들의 방법은 우선 motion edge 을 extract 하고 complete한다. 그리고 샤프한 motion edge를 가지고 piecewise-smooth flow completion을 가이드하기 위해 사용한다. 현재 존재하는 방법들은 인접한 프레임들 사이의 local flow connection 사이 색상을 propagate 한다. 그러나 움직임 경계가 관통할 수 없는 장벽을 형성하기 때문에 비디오의 모든 누락된 영역에 이러한 방식으로 도달할 수 있는 것은 아니다. flow-edge guided 방법은 일시적으로 먼 프레임에 local이 아닌 flow guided을 도입하여 모션 경계를 넘어 비디오 콘텐츠를 가능하게 하여 이 문제를 완화한다. DAVIS 데이터 세트에 대한 접근 방식을 검증한다. 시각적 및 정량적 결과 모두 sota 알고리즘에 비해 유리하다는 것을 보여준다.
카메라 모션을 따라 inpainting 하는 현재까지 가장 성공적인 방법은 flow 기반이다. color와 flow를 공동으로 합성하고 흐름 궤적을 따라 색을 propagate하여 일시적 일관성을 개선하여 메모리 문제를 완화하고 고해상도 출력을 가능하게 한다. 우리의 방법은 또한 이 일반적인 접근법을 따른다. flow-based approach 에서 좋은 결과를 갖기 위한 중요한 점은 flow completion 정확도이다. 구체적으로, object boundaries를 따라 날카로운 flow edge를 합성하는 것이다.
이전 flow-based 방법들의 다른 한계는 인접한 프레임 사이의 연결된 flow vectors들은 오로지 연속적인 temporal constraints 으로 부터 얻을 수 있다. 이것은 비디오의 많은 부분을 향해 constrainting 하고 propagating 하는 것을 막는다.
Main Contribution
1. Flow edge : flow edge를 명시적으로 완료함으로써 부분적으로 smooth한 flow edge를 얻는다.
2. Non-local flow : Non-local flow을 활용하여 과도적 흐름(예: 걷기와 같은 주기적 움직임)을 통해 도달할 수 없는 영역을 처리한다.
3. Seamless blending : gradient domain안에서 작동을 통해 결과에 가시적인 이음새(?)가 생기지 않도록 함.
(A) Input : 합성을 해야 할 부분을 나타내는 컬러 비디오 + 바이너리 마스크
(B) Edge-guided flow completion : 인접 프레임과 비인접 프레임 사이의 forward , backward 사이의 flow를 계산하고, 흐름 가장자리를 extract 및 completion한 후 완료된 edge를 이용하여 부분적으로 부드러운 flow completion을 유도한다.
(C) 각 missing pixel에 대한 후보 픽셀 집합을 계산하기 위해 흐름 궤적을 따른다. 각 후보자에 대해 바이너리 유효성 지표뿐 만 아니라 신뢰 점수를 추정한다.
(D) confidence-weighted average을 사용하여, 각 결측 픽셀에 대한 gradient 영역의 후보를 통합한다. 픽셀이 가장 많이 빠진 프레임을 선택하고 이미지 인패인팅으로 채운다.
(E) 결측 픽셀이 없을 때 까지 결과를 다음 iteration으로 전달한다.
1. Methodology
(1) Flow Completion
본 논문에서 첫번째로 인접하지 않은 frames의 세트 뿐만 아니라 인접한 프레임 사이에 forward 와 backward flow를 계산한다. 그리고 이러한 flow field안에서 missing region을 완성한다.
1-1) Flow Formulation
다음은 flow를 계산하는 formulation 이다. 바이너리 마스크는 white(0), black(1)으로 이뤄져있다.
* Homography Hj→i : big motion을 위한 constraints
local이 아닌 프레임에서 자주 발생하는 큰 모션이 있는 경우 flow estimation(추정)이 상당히 저하되거나 심지어 실패한다는 점에 주목한다. 이 문제를 완화하기 위해 flow을 추정하기 전에 프레임 i와 프레임 j(예: 카메라 회전) 사이의 큰 모션을 보정하기 위해 Homography Hj→i를 사용한다.
1-2) Flow Edge Completion
flow field를 추정한 후, 목적은 그럴듯한 completion을 가진 missing region을 대체하는 것이다. 누락된 영역의 영향이 마스크 바깥쪽으로 약간 확장되기 때문에 마스크를 15 픽셀 확대한다.
본 논문의 여러 예에서 볼 수 있듯이, flow field는 점진적으로 매끄럽고, 이러한 맵에서 가장 두드러진 특징인 고유 motion boundaries를 따라가는 것을 제외하고는 gradient가 작다.
그러나 , 이전의 많은 flow based video completion 방법들이 명확한 경계를 보존할 수 없다는 것을 관찰했다. 이를 개선하기 위해 먼저 flow-edge를 추출하여 완료한 다음 flow값의 단계적 매끄러운 완료를 위한 지침으로 사용한다.
1-3) Flow Completion
flow edge가 사라진 부분에서 환각을 일으켰으므로 실제 flow 값을 채울 수 있다. edge를 제외한 부드러운 completion에 관심이 있기 때문에 모든 곳에서(가장자리를 제외한) gradient이 최소화되는 솔루션을 해결한다.
(2) Temporal propagation (Local / Non-Local)
이제 완성된 flow를 얻었고, 이를 color video의 완성을 가이드하기 위해 사용할 수 있다. 과정은 다음과 같다.
1. 알고 있는 temporal neighbor pixel 을 찾는다.
2. weighted averaging을 사용한 후보군을 통합하면서 color를 입힌다.
T가 5 pixel 보다 큰 에러를 마주칠 때 tracing을 멈춘다.
(3) Fusing Temporal Neighbors
confidence-weighted propagation 을 사용한 최소 한개의 valid candidate를 가진 각각 missing region을 위해 후보군을 통합한다. visible color seam(이음새)을 피하기 위해 gradient domain 안에서 fusion을 수행한다. 만약, 이러한 procedure 이후에 여전히 이러한 missing pixel이 존재한다면, temporal propagation이 채워지지 않는 것을 의미한다. 이러한 픽셀을 다루기 위해, 우리는 single key frame (with most remaining pixels)을 뽑는다.
2. Experiment / Result
본 논문의 결과를 보면, 이전의 Deep Flow-Guided Video Inpainting 의 결과보다 향상된 것을 확인할 수 있다. Xu et.al 이 Deep Flow-Guided Video Inpainting 결과 이다. 고정된 mask, object mask 두 개의 마스크의 실험 결과에서 모두 향상된 결과를 보인다. 본 결과의 metric은 PSNR, SSIM, LPIPS 을 사용하였다. 또한 실험은 720 * 384 resolution, 960 * 512 resolution 두 가지로 진행하였다.
- Presentation Video : http://chengao.vision/FGVC/
- paper : https://arxiv.org/pdf/2009.01835.pdf