2025. 2. 27. 16:33ㆍ컴퓨터비전&AI
3.2. Training Objective (학습 목표) 정리
이 논문에서는 3D 공간에서의 회귀(regression) 기반 손실(loss) 을 사용하여 네트워크를 학습합니다.
핵심 목표:
✅ 3D 위치를 예측하는 회귀 손실 사용
✅ 스케일 차이를 보정(scale normalization)
✅ 신뢰도(Confidence)를 고려하여 가중치를 부여한 학습 진행
🔹 1. 3D 회귀 손실 (3D Regression Loss)
- 네트워크가 예측한 3D 포인트맵을 정답(Ground Truth)과 비교하여 학습하는 방식
- 픽셀 i 에 대한 손실(loss)은 단순히 유클리드 거리(Euclidean Distance) 로 정의됨.
→ 스케일 차이(Scale Ambiguity) 문제 해결
- 예측한 포인트맵과 실제 포인트맵이 크기가 다를 수 있음.
- 따라서 평균 거리를 기준으로 정규화(normalization) 하여 비교함.
- 3D 위치 예측을 할 때, 크기 차이(scale difference)를 보정하여 비교하도록 학습함!
🔹 2. 신뢰도(Confidence)를 고려한 손실 함수
실제 3D 데이터를 보면,
- 하늘(Sky)처럼 3D 위치를 정의하기 어려운 부분이 있음
- 반투명한 유리 같은 객체는 깊이(Depth) 예측이 어려움
- 따라서, 픽셀마다 신뢰도(confidence) 점수를 학습해서, 어려운 부분을 더 신중하게 처리하도록 만듦.
🔹 신뢰도 가중 회귀 손실 (Confidence-weighted Regression Loss)
✅ 쉽게 말하면?
- 예측이 어려운 영역에서는 신뢰도를 낮춰서 네트워크가 조정할 수 있도록 함!
- 너무 높은 신뢰도 값을 방지하기 위해 항상 양수(positive)가 되도록 함.
3.3. 다운스트림 애플리케이션(Downstream Applications)
출력된 포인트맵(Pointmap) 은 다양한 작업을 쉽게 수행할 수 있도록 도와줍니다.
📌 주요 응용 분야 (Downstream Applications)
1️⃣ 포인트 매칭 (Point Matching)
두 이미지 간의 픽셀 대응(correspondence)을 찾는 방법!
- 3D 포인트맵 공간에서 최근접 이웃(Nearest Neighbor, NN) 검색을 수행.
- 상호 대응(Mutual Correspondence) 보장:
- 즉, "서로 가장 가까운 포인트" 인 경우만 매칭 유지!
✅ 쉽게 말하면?
- 3D 공간에서 가장 가까운 점을 찾아서 이미지 간 픽셀 매칭을 수행!
- 매칭 신뢰도를 높이기 위해 양방향 검색 적용!
2️⃣ 카메라 내부 파라미터 복원 (Recovering Intrinsics)
- 본 논문에서는 주점(Principal Point)은 이미지 중앙이고, 픽셀은 정사각형이라고 가정하여
추정해야 하는 유일한 값은 초점 거리(Focal Length, f1f_1)
✅ 쉽게 말하면?
- 출력된 포인트맵을 이용해 카메라의 초점 거리(Focal Length)를 자동으로 추정 가능!
- 빠른 최적화 기법(Weiszfeld Algorithm)으로 몇 번의 반복(iteration)만으로 계산 가능!
3️⃣ 상대 자세 추정 (Relative Pose Estimation)
두 이미지 간의 회전(R) 및 이동(t) 관계를 찾는 방법!
- 방법 1: 2D 매칭 + 에피폴라 기하(Epipolar Geometry) 활용
- 2D 매칭을 수행하고, 카메라 내부 파라미터 복원 → 에피폴라 행렬(E) 추정 → 상대 자세 계산.
- 방법 2: Procrustes Alignment 활용 (더 직접적인 방법)
- Procrustes 알고리즘을 이용해 상대적인 회전(R)과 이동(t) 최적화:
- 하지만, Procrustes는 노이즈 및 이상치(outlier)에 민감!
- 더 강건한(robust) 방법:
- PnP (Perspective-n-Point) + RANSAC 적용!
- RANSAC을 사용하면 이상치를 제거하며 더 정확한 상대 자세 추정 가능!
✅ 쉽게 말하면?
- Procrustes 정렬로 두 이미지의 3D 포인트맵을 직접 비교해 자세(R, t) 계산 가능!
- 하지만, Procrustes는 노이즈에 취약 → PnP + RANSAC을 사용하면 더 강건한 방법이 됨!
4️⃣ 절대 자세 추정 (Absolute Pose Estimation = 시각적 위치 추정, Visual Localization)
카메라의 절대 위치(Absolute Pose)를 추정하는 방법!
✅ 방법 1: 2D-3D 대응을 이용한 PnP-RANSAC
- 질의 이미지 IQ 의 내부 파라미터(Intrinsics)를 포인트맵 XQ,QX로부터 추정
- IQ 와 IB 간 2D 대응 관계를 찾음 → 이를 기반으로 2D-3D 대응 관계 생성
- PnP-RANSAC 적용하여 절대 자세(Absolute Pose) 계산!
✅ 방법 2: 상대 자세(위에서 구한 값) 활용
- IQ와 IB간의 상대 자세를 먼저 계산
- 이 상대 자세를 세계 좌표계(World Coordinate System)로 변환
- 변환 시, 실제 3D 포인트맵(ground-truth) 간의 크기 비율(scale factor)을 적용!
✅ 쉽게 말하면?
- 카메라의 절대 위치를 구하는 방법 2가지!
1️⃣ 2D-3D 매칭 + PnP-RANSAC 적용!
2️⃣ 상대 자세를 이용해 세계 좌표계로 변환! (스케일 조정 필요)
3.4. 글로벌 정렬 (Global Alignment)
📌 핵심 내용 요약
이전까지 설명한 네트워크 는 두 장의 이미지만 처리 가능했음.
하지만 실제 3D 재구성에서는 여러 이미지가 존재하며, 이들을 하나의 공통 3D 공간으로 정렬해야 함!
이를 해결하기 위해 빠르고 간단한 후처리(Post-processing) 최적화 방법을 도입.
✅ 여러 이미지에서 생성된 3D 포인트맵을 하나의 3D 공간으로 맞춰 정렬(Global Alignment)!
✅ 그래프 기반 최적화(Pairwise Graph + Global Optimization)를 사용하여 포인트맵을 정렬!
✅ 기존의 번들 조정(Bundle Adjustment)보다 계산이 빠르고 효율적인 방법!
🔹 1. 이미지 연결 그래프 (Pairwise Graph)
📌 여러 이미지 간 겹치는 부분을 찾아 정렬하기 위해 "연결 그래프(Connectivity Graph)"를 만듦!
1️⃣ 주어진 장면에서 N 개의 이미지 {I1,I2,...,IN}가 존재함.
2️⃣ 각 이미지를 정점(Vertex)으로 설정하고, 두 이미지가 겹치면 간선(Edge)을 연결함.
- 간선 e=(n,m) 은 두 이미지 In 과 Im이 시각적으로 겹친다는 것을 의미.
3️⃣ 이미지 쌍을 비교하여 겹치는 정도를 측정하는 방법: - 기존의 이미지 검색 방법(Image Retrieval Methods) 을 사용할 수도 있음.
- 또는 네트워크 를 통해 직접 이미지 쌍을 비교(추론 속도: 약 40ms on H100 GPU)
- 신뢰도(Confidence)가 낮은 쌍은 필터링하여 제거!
✅ 쉽게 말하면?
- 각 이미지가 겹치는 관계를 찾기 위해 그래프를 구성!
- 신뢰도가 낮은(즉, 정확하지 않은) 이미지 쌍은 제거하여 최적화 속도를 높임!
🔹 2. 글로벌 최적화 (Global Optimization)
📌 목표: 모든 포인트맵을 공통 3D 좌표계로 정렬!
1️⃣ 각 이미지에 대해 포인트맵을 생성:.
2️⃣ 모든 포인트맵을 하나의 공통 좌표계로 정렬하기 위한 변환 요소 추가:
- 즉, 각 이미지 쌍을 하나의 3D 공간으로 맞추도록 변환 행렬을 학습!
3️⃣ 최적화 문제 공식화:
- 각 이미지에서 생성된 3D 포인트맵을 하나의 공통 3D 좌표계로 변환!
4️⃣ 최적화 문제에서 발생할 수 있는 문제 방지:
- 모든 스케일링 값의 곱이 1이 되도록 강제:
✅ 쉽게 말하면?
- 각 이미지에서 생성된 3D 포인트맵을 하나의 공통 3D 공간으로 변환하는 최적화 문제를 설정!
- 모든 이미지 쌍의 상대 변환 행렬과 스케일을 조정하여 정렬 수행!
- 스케일이 0으로 수렴하는 문제를 방지하기 위해 제약 조건을 추가!
🔹 3. 카메라 매개변수 복원 (Recovering Camera Parameters)
📌 이 방법을 확장하면 카메라의 내부/외부 매개변수까지 복원 가능!
✅ 카메라 내부/외부 파라미터 복원 방법:
1️⃣ 각 포인트맵을 카메라의 핀홀 모델(Pinhole Camera Model)로 변환:
2️⃣ 이 방법을 통해:
- 모든 카메라의 자세 {Pn}
- 내부 파라미터 {Kn}
- 뎁스맵 {Dn}를 함께 복원 가능!
✅ 쉽게 말하면?
- 3D 정렬 과정을 활용하여 모든 카메라의 내부/외부 매개변수를 추정 가능!
- 초점 거리, 뎁스맵까지 자동으로 계산 가능!
🔹 4. 기존 방법과 비교 (vs Bundle Adjustment)
📌 기존의 번들 조정(Bundle Adjustment)보다 더 빠르고 효율적인 방법!
✅ 기존 방법 (Bundle Adjustment, BA):
- 일반적으로 2D 재투영 오류(2D Reprojection Error)를 최소화
- 최적화 과정이 복잡하고 계산량이 많음
- 수렴 속도가 느리고, 고성능 GPU가 필요할 수 있음
✅ 이 방법의 장점:
- 2D 대신 3D 공간에서 직접 최적화(3D Projection Error 최적화)
- 표준 그래디언트 디센트(Gradient Descent) 사용 → 빠른 최적화 가능!
- 일반적인 GPU에서 수 초 내에 최적화 완료!
✅ 쉽게 말하면?
- 기존의 Bundle Adjustment보다 더 빠르고 간단한 3D 최적화 방법!
- GPU에서 빠르게 계산 가능하며, 정확한 3D 정렬 수행!
📌 최종 요약
💡 여러 이미지에서 생성된 3D 포인트맵을 하나의 공통 좌표계로 정렬하는 방법!
✅ 1. Pairwise Graph:
- 각 이미지가 서로 겹치는 관계를 그래프로 표현하여 최적화 속도 향상!
✅ 2. Global Optimization:
- 모든 포인트맵을 하나의 공통 3D 공간으로 정렬!
- 상대 변환 행렬과 스케일을 최적화하여 매끄러운 정렬 수행!
✅ 3. 카메라 파라미터 복원:
- 초점 거리(Focal Length), 뎁스맵(Depth Map), 자세(Pose) 자동 계산!
✅ 4. 기존 방법보다 빠르고 효율적:
- 번들 조정보다 더 빠르고 간단한 최적화 → GPU에서 수 초 내 수렴! 🚀
'컴퓨터비전&AI' 카테고리의 다른 글
[논문정리] 1. DUSt3R: Geometric 3D Vision Made Easy (0) | 2025.02.23 |
---|---|
논문 읽는 법 with 챗GPT (0) | 2025.02.12 |
[논문리뷰였던것] Deep learning-guided video compression for machine vision tasks 였지만 VVC 이론. (0) | 2025.02.12 |
NeRF: Neural Radiance Fields (0) | 2024.12.22 |
[배울랑교AI] 이미지 처리 (0) | 2024.11.27 |