컴퓨터비전

Depth Estimation을 위한 개념 정리

juice_moon 2022. 1. 17. 17:30

Depth estimation 논문을 읽을 때, 나오는 여러 method들에 대한 정리가 필요한 것 같아서, 간단한 개념들을 정리해보았다.

 

Structure from motion

여러 2D 이미지를 통하여 3D 구조를 추정하는 것이다. 

과거에 matrix 계산을 통해 구하는 방법은 low texture, complex geometry/photometry, thin structures, occlusion에서 제대로 된 성능을 내기 어렵다.

따라서 현대에는 딥러닝을 이용한 방법들이 많아졌는데, 이러한 방법으로 우리가 흔히 아는 stereo뿐 아니라, pose estimation, feature matching도 이에 포함된다. 

(stereo: depth 계산, feature matching: 두 사진의 여러 특징점들 중 동일한 point 찾기)

 

Warping-based view syntheies

카메라 시점이 변경된 여러 input 이미지들을 통해 3D 형상을 만들어 내는 것이다. 

초기의 view synthesis는 3D geometry를 추정하거나, 만들어내서 하나의 novel view에 합치는 것이였다. 

최근에는 end-to-end learning으로 depth나 flow를 통해 novel view로 변환하는 방법을 사용한다.

이에 대한 예시로 동영상 링크를 첨부했으니, 확인해보면 좋을 것 같다.

DeepStereo: https://www.youtube.com/watch?v=cizgVZ8rjKA

Deepstereo

 

 

Learning single-view 3D from registered 2D views

single-view로 2D에서 3D를 추론하는 방식이 최근에 많이 면구되고 있다. 이는 단일 view에서 연속된 여러 2D 이미지들을 통해 depth를 추론하거나, stereoscopic film footage를 통해 input data의 다른 view point를 추론하며 학습을 진행한다. 예로 위에서 언급한 Deep3D등이 있다. 

 

Unsupervised/Self-supervised learning from video

video에서의 depth estimation에서 supervision은 거의 불가능하기 때문에 unsupervised나 self-supervised learning을 진행한다. 사실 unsupervised라고 해도 읽어보면 self-supervised인 경우가 많기 때문에, 대부분 self-supervised하고 생각해도 될 것 같다. 

이러한 학습의 예로 ego-motion estimation, tracking, object motion mask prediction등이 존재한다. 

ego-motion estimation: 카메라의 이동을 통해 얻은 이미지들을 토대로 주변 환경을 추론하는 것이다. 이는 탐사선과 같은 로봇에 많이 사용되는 방식이다. 

tracking: tracking은 사물의 움직임을 추적하는 method이다.

object motion mask prediction: 각 물체들의 움직임을 이용하여, object prediction을 진행하는 것이다.

object motion mask prediction   그림 출처: https://openaccess.thecvf.com/content_cvpr_2017/papers/Pathak_Learning_Features_by_CVPR_2017_paper.pdf