Trikang
[3D Vision] DUSt3R: Geometric 3D Vision Made Easy 논문 정리 본문
찾아도 잘 안나와서 몰랐는데, 이번 CVPR 2024에서 Accept 된듯하다.
1. Introduction
일반적으로 Reconstruction을 수행하기 위해서는 카메라의 intrinsic, extrinsic 파라미터를 구해야 했다. 이는 일반적으로 지루하고 번거로운 작업이지만, 모든 최고 성능의 MVS 알고리즘의 핵심인 3D 공간에서 해당 픽셀을 삼각 측량하는 데 필수적이다. 해당 논문에서는 camera calibration이나 viewpoint pose에 대한 prior information\(사전 정보\)이 없이 작동하는, 근본적으로 새로운 패러다임인 Dense and Unconstrained Stereo 3D Reconstruction\(DUSt3R\)를 소개한다. 해당 논문에서는 일반적인 projective camera model의 엄격한 제약을 완화하기 위해 pairwise reconstruction 문제를 regression of pointmaps로 전환하였으며, 이를 통해 monocular, binocular reconstruction 사례를 원활하게 통합하는 것을 보여준다. DUSt3R는 많은 3D Vision task를 통합하고, monocular/multi-view depth estimation 뿐만아니라 relative pose estimation에서도 SOTA를 달성했다.
해당 Task는 주어진 장면의 이미지 집합으로부터 3D geometry와 camera parameters를 추정한다. 이 기술은 지도 작성, 내비게이션, 고고학, 문화유산 보존, 로봇 공학 등 다양한 응용 분야에서 사용될 뿐만 아니라, 모든 3D 비전 작업 중에서도 특히 중요한 위치를 차지하고 있다. 실제로, 거의 모든 다른 기하학적 3D 비전 작업을 포함한다. 따라서, 현대적인 3D 재구성 접근법은 keypoint detection, robust estimation, Structure-from-Motion (SfM)과 Bundle Adjustment (BA), dense Multi-View Stereo (MVS) 등 다양한 하위 분야에서 수십 년 동안의 발전을 집대성하는 것이다.
결국, 현대의 SfM과 MVS 파이프라인은 일련의 최소 문제를 해결하는 것으로 요약된다: matching points, finding essential matricies, triangulating points, sparsely reconstructing the scene, estimating cameras and finally performing dense reconstruction. 최근의 발전을 고려할 때, 이 다소 복잡한 체인은 일부 상황에서 물론 실행 가능한 솔루션이지만, 저자는 이것이 매우 불만족스럽다고 주장한다. 각 하위 문제가 완벽하게 해결되지 않고 다음 단계에 노이즈를 추가하여 파이프라인이 전체적으로 작동하기 위해 필요한 복잡성과 엔지니어링 노력을 증가시키기 때문이다. 이와 관련하여, 각 하위 문제 간의 소통 부재는 매우 의미심장하다: 각 하위 문제가 서로 도움을 주는 것이 더 합리적일 것이다. 즉, dense reconstruction은 카메라 자세를 복원하기 위해 구축된 sparse scene으로부터 자연스럽게 혜택을 받아야 하며, 그 반대도 마찬가지이다. 게다가, 이 파이프라인의 주요 단계들은 취약하여 많은 경우에 쉽게 실패할 수 있다. 예를 들어, 모든 카메라 매개변수를 추정하는 중요한 단계인 SfM은 일반적으로 장면 뷰의 수가 적은 경우, non-Lambertian 표면을 가진 객체의 경우, 카메라 움직임이 충분하지 않은 경우 등 많은 일반적인 상황에서 실패하는 것으로 알려져 있다. 결국 MVS 알고리즘은 입력 이미지와 카메라 매개변수의 품질만큼만 좋기 때문에 이는 우려스러운 일이다.
이 논문에서는 보정되지 않은 자세의 카메라로부터 밀집 비제약 스테레오 3D 재구성(Dense Unconstrained Stereo 3D Reconstruction)을 위한 획기적으로 새로운 접근 방식인 DUSt3R를 소개한다. 주요 구성 요소는 장면이나 카메라에 대한 사전 정보 없이 오직 두 장의 이미지로부터 밀집하고 정확한 장면 표현을 예측할 수 있는 네트워크이다(내부 파라미터조차도 필요하지 않음). 결과적인 장면 표현은 다음과 같은 풍부한 특성을 가진 3D 포인트맵(point map)을 기반으로 한다: 이 포인트맵은 (a)Scene geometry, (b)The relation between pixels and scene points, 그리고 (c)The relation between the two viewpoints 를 동시에 포함한다.
이 출력만으로도 사실상 모든 장면 매개변수(즉, cameras and scene geometry)를 간단히 추출할 수 있다. 이는 우리의 네트워크가 입력 이미지를 결과로 생성된 3D 포인트맵(point map)과 함께 처리하기 때문에 가능하다. 따라서 2D 구조와 3D 형태를 연관짓는 방법을 학습하고, 여러 최소 문제를 동시에 해결할 기회를 가지며, 이들 간의 내부 ‘협업’을 가능하게 한다.
해당 모델은 simple regression loss를 이용한 fully-supervised 방법을 사용한다. 해당 모델은 특정 작업에 맞춘 모듈을 통합하는 대신, 강력한 사전 학습 방식의 이점을 활용할 수 있는 일반적인 트랜스포머 아키텍처를 기반으로 하는 완전한 데이터 기반 전략을 채택했다. 네트워크는 텍스처(texture), 음영(shading) 또는 윤곽선(contours)과 같은 MVS에서 일반적으로 활용되는 강력한 기하학적(geometric) 및 모양(shape)의 사전 지식(priors)을 학습한다.
여러 이미지 쌍으로부터 prediction을 융합하기 위해, 우리는 포인트맵(point map)의 경우에 맞춰 Bundle Adjustment(BA)를 재검토하여 전체 규모의 MVS를 달성한다. 해당 모델에 global alignment 단계를 도입하는데, 이는 BA와 달리 reprojection error를 최소화하는 단계가 포함하지 않는다.
- reprojection error는 BA 기법에서 사용하는 오류 측정 방식으로, 3차원 공간 상의 점을 이미지 평면에 투영했을 때, 실제 관측된 이미지 좌표와의 차이를 의미
논문이 주장하는 contributions는 다음과 같다:
- 해당 논문은 처음으로 un-calibrated, un-posed 이미지들로부터 monocular와 binocular 3D 재구성을 통합하는 전체적인 end-to-end 3D 재구성 파이프라인을 제안한다.
- MVS application를 위한 pointmap representation을 제안한다. pointmap representation은 network가 pixel과 scene 사이의 implicit relationship을 보존하면서 canonical frame에서 3D shape을 예측하게 한다.
- multi-view 3D reconstruction의 맥락에서 pointmaps를 global하게(전역적으로) align하기 위한 optimization procedure를 제안한다.
- 다양한 3D vision 작업들에 대해 유망한 성능을 보여준다. 특히, 해당 all-in-one 모델은 monocular 및 multi-view depth 벤치마크와 multi-view camera pose estimation에서 SOTA 결과를 달성했다.
2. Related Work
Structure-from-Motion(SfM)
- 목표: 입력 이미지로부터 카메라 파라미터를 추정함과 동시에 sparse 3D map을 재구성
- 다중 이미지 간의 키포인트 매칭으로 얻어진 pixel correspondences로부터 시작하여 geometric relationships을 결정하고, 그 다음에 bundle adjustment를 통해 3D 좌표와 카메라 파라미터를 공통으로 최적화
- 최근에는 learning-based 기술 통합 등을 통해 상당한 개선을 이루었지만(개선 방법과 관련된 related work는 논문 참고), SfM 파이프라인의 순차적 구조는 지속되고 있고, 각 개별 구성 요소에서 발생하는 노이즈와 오류에 취약하다.
MultiView Stereo(MVS)
목표: 여러 시점(viewpoints) 간의 삼각 측량(triangulation)을 이용해 관측 가능한 표면을 densely reconstructing하는 것
- MVS의 전통적인 방법에서는 모든 카메라 파라미터가 입력으로 제공되는 것으로 가정되었다
- 이후 발전된 접근법에서도 모두 복잡한 카메라 보정(calibration) 절차를 통해 얻어진 카메라 파라미터 추정치에 의존한다
- 실제 시나리오에서 잘못 추정된 카메라 파라미터는 해당 알고리즘이 제대로 작동하는 데에 해로울 수 있다
- 이 연구에서는 대신에 카메라 파라미터에 대한 명시적인 지식 없이 관측 가능한 표면(surface)의 geometry를 직접 예측할 것을 제안
Direct RGB-to-3D
목표: Single RGB 이미지로부터 3D geometry를 직접적으로 예측
- RGB 이미지는 3D 정보를 담고 있지 않기에, 단일 RGB 이미지에서 3D 정보를 추론하기 위해서는 3차원 세계에 대한 사전 지식이나 제약 조건과 같은 '추가적인 가정'이 필요함
- 해당 방법은 모호함을 해결하기 위해 큰 데이터셋으로부터 강력한 3D priors를 학습하는 신경망을 활용하여 모호성을 해결한다. 해당 방법은 두 그룹으로 분류될 수 있다
- 첫 번째 그룹은 많은 2D 이미지 컬렉션을 기반으로 단일 이미지에서 형태(shape), 자세(pose) and 외형(appearance)을 완전히 복원할 수 있는 모델을 학습할 것을 제안한다. 이러한 접근 방식은 강력하지만 unseen caregories의 객체에 대해서는 형태를 추론하지 못한다.
- 두 번째 그룹은 해당 논문에서 제안하는 방법과 가장 가까우며, general scene에 초점을 맞춘다. 해당 방법은 MDE(monocular depth estimation) network를 직접 만들거나 기존의 것을 재사용 하는 것에 기반을 둔다. Depth map은 일종의 3D 정보를 인코딩하며, 카메라 intrinsic 파라미터와 결합하면 pixel-aligned 3D 포인트 클라우드를 간단히 생성할 수 있다. 하지만 해당 방법론들은 모두 depth 추론의 결과물에 따른 한계를 가지는데, 단일 이미지를 사용하는 경우 깊이 추정 자체가 본질적으로 잘못된 설정이기 때문이라고 한다(단일 이미지만으로는 3차원 공간 정보를 완벽하게 복원하는 것은 불가능에 가깝다는 맥락으로 보임)
- 두 번째 그룹에 제안된 방법과 다르게, 해당 논문에서는 두 개의 뷰 포인트를 동시에 처리하여 pointmap을 출력한다.
Pointmaps
포인트맵 모음을 형태(shape) 표현으로 사용하는 것은 MVS에서는 꽤 직관적이지 않지만, Visual Localization 작업에서는 널리 사용된다. 이는 in scene-dependent optimization approaches나 scene agnostic inference methods에서 사용된다. 유사하게, 단안 3D reconstruction 작업과 view synthesis 작업에서 viewwise modeling이 일반적인 주제이다. 이러한 접근법은 multiple canonical view에 canonical 3D shape를 저장하여 이미지 공간에서 작업하는 아이디어를 기반으로 한다. 이러한 접근법은 보통 canonical representation의 렌더링을 통해 명시적인 원근 카메라 geometry를 활용한다.
-> 해당 부분 아직 이해가 부족함
3. Method
본격적인 시작에 앞서, 논문에서 쓰이는 핵심적인 개념들을 짚고 넘어간다.
Pointmap
3D ponint 집합의 밀집된(dense) 2D field를 아래처럼 나타낸다.
해당 포인트맵은 해상도가 W x H인 대응되는 이미지 I와 연관된다. X는 이미지 픽셀들과 3D 장면의 포인트들 간의 1대1 매핑 관계를 형성한다. 즉, 모든 픽셀 좌표 $ (i,j)∈\{1,…,W\}×\{1,…,H\} $에 대해 $ I_{i,j}↔X_{i,j} $이다. 여기서 각 카메라 광선이 단일 3D 포인트에 도달한다고 가정하며, 투명한 표면의 경우 무시한다. 즉, 픽셀 좌표 1개마다 3D 포인트 좌표 1개가 존재한다고 할 수 있다.
Cameras and Scene
카메라 intrinsic 파라미터 $ K ∈ \mathbb{R}^{3×3} $가 주어지면, 관찰된 장면의 포인트맵 $ X $는 다음과 같은 방법으로 실제 depth map $ D ∈ \mathbb{R}^{W×H} $로부터 간단하게 얻을 수 있다.
여기서 $ X $ 카메라 좌표계로 표현되며, 픽셀 좌표 i, j가 주어지면 해당 좌표를 $ K^{-1} $와 연산해서 Normalized Coordinate로 변환하여 주어진 Depth를 곱하면 카메라 좌표계 기준의 3D 점 정보를 얻을 수 있다.
그리고, 카메라 $ n $에서 바라본 포인트맵 $ X_n $ 을 카메라 $ m $ 의 좌표계로 변환하여 해당 좌표계에서 표현된 3D 포인트 맵을 $ X_{n, m} $ 으로 나타낸다.
여기서 $ P_m, P_n ∈ \mathbb{R}^{3×4} $는 각각 이미지 $ n, m $의 world-to-camera pose를 말하며, $ h $는 $ h : (x, y, z) \rightarrow (x, y, z, 1)$ 의 homogeneous mapping을 의미한다. 즉, n번째 view에서 봤던 포인트 맵을 m번째 view로 변환하여 관측한 결과를 말한다.
3.1 Overview
작성 중.. 다른 곳에 적어놔서 옮겨야 하는데...
3.2 Training Objective
3.3 Downstream Applications
Relative pose estimation
- 두 카메라 뷰 간의 relative pose estimation -> 한 카메라의 좌표계를 다른 카메라의 좌표계로 맞추기 위해 회전(R)과 이동(t)을 결정하는 것
논문에서는 두 가지 방법을 제안한다. 첫 번째 방식은 위에서 설명한 2D matching과 recover intrinsic을 수행하고, Epipolar matrix와 relative pose를 추정하는 것이다. 두 번째 방식은 서로 다른 뷰에서 바라본 동일한 포인트 맵을 구할 수 있기에( X^{1, 1}↔X^{1, 2} ), Procrustes alignment 방법론을 이용해서 두 뷰 포인트에서 본 pointmap이 동일해지도록 하는 rotation matrix $ R $, translation matrix $ t $, scale factor $ \sigma $를 구하는 것.