본문 바로가기
논문 리뷰/Optical Flow Estimation

[2019_CVPR_SelFlow] SelFlow: Self-Supervised Learning of Optical Flow

by 귤이두번 2023. 6. 2.

논문 요약

 본 논문은 optical flow estimation을 위한 self-supervised 학습 방법을 소개한다. 저자들은 먼저 non-occluded pixels에 대해 학습하여 믿을 수 있는 flow를 만든다. 이를 가이드로 사용하여 occlusions이 있는 상황에서도 flow를 잘 예측할 수 있도록 학습한다. 이와 더불어 여러 프레임의 시간적 정보를 활용해 더 정확한 flow를 예측할 수 있는 CNN을 디자인하였다.

 

1. Paper Bibliography

논문 제목

- SelFlow: Self-Supervised Learning of Optical Flow

 

저자

- Liu, Pengpeng, et al.

 

출판 정보 / 학술대회 발표 정보

- CVPR 2019

 

 


 

2. Problems & Motivations

End-to-end로 CNN을 사용하여 optical flow estimation을 수행하는 여러 방법이 제안되었다. 하지만 대부분 supervised 방식을 따르며, 많은 양의 라벨링된 훈련 데이터를 필요로 한다. Occlusions등의 문제로 인하여 ground-truth optical flow를 구하는 것은 쉽지 않아 사용 가능한 데이터셋은 제한적이다. 이를 해결하고자 합성 데이터를 먼저 훈련 시킨 후 실제 세계의 데이터를 통해 파인튜닝 하는 방법이 있지만 여전히 데이터간의 분포 차이가 있으며 학습 스케줄을 잘 조정해야 하는 어려움이 있다. 

 

이를 해결하기 위해 unlabeled data를 활용하는 unsupervised 방식도 제안되었으며 기본적인 아이디어는 다음과 같다.

1. reference image와 taget image간의 flow를 구한다

2. 구한 flow를 사용하여 target image를 warp한다

3. warped target image와 reference image를 비교하여 photometric loss를 구한다.

이 경우 더 정확한 flow를 구해야 warp가 잘 되어 loss를 줄일 수 있을 것이다. 이러한 아이디어는 non-occluded pixels에 대해서는 효과적이지만 occluded pixels에 대해서는 잘못된 정보를 제공한다.   



SelFlow는 unlabeled data로부터 어떠한 형태의 occlusions가 있어도 효과적으로 optical flow estimation 학습을 할 수 있는 self-supervised 방식을 제안한다. 

 

3. Method

SelFlow는 동일한 구조를 가진 두개의 CNN을 학습한다. 

- NOC-Model: Non-occluded pixels에 대한 정확한 flow esimtation 

- OCC-Model: 모든 픽셀에 대해 optical flow estimation

NOC-Model에서 얻은 신뢰할 수 있는 flow 추정값을 활용해 occlusion이 있는 OCC-Model 학습에 사용한다. 

테스트 시 OCC-Model만 사용한다. 

 

3.1 Notation

1. 연속된 RGB 이미지 $I_{t-1}, I_t, I_{t+1}$이 있을 때 목표는 $I_t, I_{t+1}$로부터 forward optical flow $w_{t→t+1}$를 만드는 것이다.

2. Optical flow를 얻으면 reference 이미지를 만들기 위해 target 이미지를 backward warp할 수 있으며 이 때 Spatial Transformer Network를 사용한다. 

ex) $I_j$를 $I_i$로 warp하기 위해 $w_{i→j}$를 사용하고 결과는 $I^w_{j→i}$이다. 

3. $O_{i→j}$는 occlusion map이며 값이 1인 곳은 $I_i$의 픽셀이 $I_j$에서는 안보인다는 의미이다.

4. SelFlow에서는 superpixel에 랜덤 노이즈를 넣어 occlusion을 만든 새로운 target image $\tilde{I}_{t+1}$을 만든다.

 

3.2 CNNs for Multi-Frame Flow Estimation

제안한 방법은 어떠한 CNN에도 적용할 수 있으며 본 논문에서는 PWC-Net을 사용하였다. 

원래 PWC-Net은 two-frame을 위한 모델이다. 이를 수정하여 three-frame flow estimation을 할 수 있게 하였다. 

1. 3개의 입력 이미지를 받아 3개의 features를 추출한다. 

2. 각 레벨에서 forward flow, cost volume 뿐 만 아니라 backward도 계산한다. (과거의 정보가 도움이 될 수 있다!)

3. initial forward flow, - inintal backward flow, feature of reference image, forward cost volume, backward cost volume을 쌓아서 각 레벨의 forward flow를 예측한다. Backward flow의 경우 flow와 cost volume을 swap한다.

 

3.3 Occlusion Estimation

two-frame optical flow estimation에서는 2개의 이미지들을 swap하여 forward, backward flow를 만든 후 forward-backward consistency prior를 통해 occlusion map을 만들 수 있다. 이를 three-frame에서 하기 위해서는 인접한 다섯 프레임을 입력으로 넣어 bi-directional flows를 구한다.

 

Forward-backward consistency를 확인하기 위해 forward flow와 reversed forward flow가 어긋나는 양이 크면 해당 픽셀이 occluded하다고 판단한다.

 

ex) $O_{t→t+1}$을 구할 때

- reversed forward flow는 다음과 같다:

- 픽셀은 다음 제약 조건을 위반할 때 occluded된 것으로 간주된다:

 

3.4 Occlusion Hallucination

Self-supervised learning을 하기 위해 랜덤 노이즈를 통해 일정 영역을 변형시켜 occlusion을 만든다. 단순히 네모난 영역이 아닌 슈퍼픽셀을 만든 후 일부를 선택해 노이즈로 채운다. 이는 두가지 장점이 있다.

1. 슈퍼픽셀의 형태는 대체로 무작위로 결정되며, 보통 객체의 경계를 형성하므로, 이는 실제 이미지 사례와 일치하여 이미지를 더 현실적으로 만든다.
2. 각 슈퍼픽셀 내의 픽셀은 일반적으로 같은 객체에 속하거나 유사한 플로우 필드를 갖으므로, 이는 optical flow estimation에 도움이 될 수 있다.

 

3.5  NOC-to-OCC as Self-Supervision

이미지 $I_t$의 픽셀 $p_1$이 이미지 $I_{t+1}$에서는 occluded되지 않아 $p'_1$이 되었다. 만약 $I_{t+1}$에 노이즈를 주입한다면 $p_1$는 occluded된다. 하지만 NOC-Model의 정보를 받아 OCC-Model이 occluded된 $p_1$에 대한 flow를 예측할 수 있도록 만들 수 있다. 이는 실제 occlusion에서도 적용이 되며 occluded pixels는 이웃한 non-occluded pixels의 정보를 통해 flow를 구할 수 있게 된다. 

 

3.6 Loss Functions

이전 unsupervised method과 비슷하게 먼저 non-occluded pixels에 대해 photometric loss $L_p$를 적용한다. NOC-Model학습에는 이 loss만 필요하다.

(이미지와 warped 이미지 비교)

Occluded pixels에 대한 flow estimation을 위해 self-supervision loss $L_o$를 제안한다. 이는 OCC-Model 훈련에 쓰인다.

먼저 sythetic occluded pixels에 대한 self-supervision mask를 계산한다

self-supervision loss는 다음과 같다

(원본 이미지 flow, occluded된 이미지 flow 비교)

OCC-Model 훈련시 $L_p$와 $L_o$를 모두 사용한다. 

 

3.6 Loss Functions

Raw dataset으로 pre-train한 후 real-world annotated data로 파인튜닝한다. Ground  truth flow $w^{gt}_{t→t+1}$, mask $V$ (픽셀이 라벨이 있는지. 1은 픽셀이 gt flow가 있다는 뜻)가 있을 때 다음과 같은 supervised fine-tuning loss를 얻을 수 있다. 

파인튜닝시, 먼저 pre-trained OCC-Model을 통해 초기화한 후 $L_s$를 통해 optimize한다.

 

 

4. Experiments

Datasets

MPI Sintel, KITTI 2012, KITTI 2015

 

Results

 

 


Google Scholar Link

https://scholar.google.co.kr/scholar?hl=ko&as_sdt=0%2C5&q=selflow&btnG=&oq=sel 

 

Google 학술 검색

[인용][C] A case of the Improvement Low Back Pain and Lumbar Strength by isotonic lumbar extension training on lumbar strength and self Low Back Exercise Stretching … Y Kim, JP Yun, SY Kim, JK Lim… - The Journal of …, 2003 - … of Chuna manual

scholar.google.co.kr

 

GitHub

https://github.com/ppliuboy/SelFlow

 

GitHub - ppliuboy/SelFlow: SelFlow: Self-Supervised Learning of Optical Flow

SelFlow: Self-Supervised Learning of Optical Flow. Contribute to ppliuboy/SelFlow development by creating an account on GitHub.

github.com

 

댓글