https://arxiv.org/abs/2409.09790
Multiple Rotation Averaging with Constrained Reweighting Deep Matrix Factorization
Multiple rotation averaging plays a crucial role in computer vision and robotics domains. The conventional optimization-based methods optimize a nonlinear cost function based on certain noise assumptions, while most previous learning-based methods require
arxiv.org
이 논문은 여러 장의 사진이나 여러 대의 로봇 카메라가 찍은 영상에서 '어떤 방향을 보고 있었는지'를 정확하게 알아내는 방법을 제안합니다. 이걸 '다중 회전 평균화'라고 부르는데, 왜 중요하냐면 우리가 3D 지도를 만들거나, 로봇이 자기 주변을 이해하고 움직이게 할 때 카메라나 센서가 어디를 향하고 있었는지를 정확히 아는 것이 필수적이기 때문입니다.
이전에는 이 문제를 풀기 위해 크게 두 가지 방법이 있었습니다.
1. 수학 계산으로 푸는 방법 (최적화 기반):
이건 "정확한 방향을 찾으려면 이런 수학 공식을 최소화해야 해!"라고 정해놓고 계산하는 방식입니다. 하지만 이 방식은 '사진이나 센서 데이터에 노이즈(오류)가 얼마나 있을지'에 대한 가정을 미리 해야 하고, 또 결과를 좋게 만들려면 사람이 직접 파라미터를 조절해야 하는 어려움이 있었습니다. 게다가 실제 세상의 노이즈는 항상 우리가 가정한 대로 깔끔하지 않아요.
2. 컴퓨터 학습으로 푸는 방법 (학습 기반):
이건 컴퓨터에게 수많은 '정답' 데이터를 보여주면서 "이 사진들에서는 카메라가 이런 방향을 보고 있었어!"라고 가르치는 방식입니다. 컴퓨터는 이 정답들을 보고 스스로 규칙을 찾아내서 새로운 사진이 들어왔을 때 방향을 예측합니다. 이 방식은 성능이 좋지만, 가장 큰 문제는 '정답 데이터'를 만드는 것이 너무 어렵고 시간이 많이 든다는 점입니다. 현실 세계에서 모든 카메라의 정확한 방향을 하나하나 측정하는 건 거의 불가능하거든요.
이 논문은 이 두 가지 방법의 장점만 쏙쏙 뽑아서 새로운 방법을 제안합니다. 마치 "정답 데이터를 주지 않아도, 컴퓨터가 스스로 학습해서 노이즈에도 강하게 방향을 찾아낼 수 있어!"라고 말하는 것과 같습니다.
Method

1단계: 잘못된 연결선(오류) 걸러내기 - 'Spanning Tree-based Edge Filtering'

우리가 여러 장의 사진을 찍었다고 상상해 보세요. 각 사진은 '노드'가 되고, 두 사진 사이의 '상대적인 방향'은 '연결선(에지)'이 됩니다. 예를 들어, 사진 A에서 사진 B를 찍었을 때 카메라가 오른쪽으로 30도 돌았다는 식으로요. 그런데 실제로는 센서의 오차나 사진이 흐릿해서 이런 연결선 정보가 조금씩 틀릴 수 있습니다. 이걸 '특이값(outlier)'이라고 부릅니다.
이 논문은 이 특이값들을 똑똑하게 찾아내서 걸러내는 방법을 사용합니다.
1. 세 개의 사진을 연결하는 삼각형 보기:
사진 A, B, C가 있다고 해봅시다. A에서 B로의 방향, B에서 C로의 방향, C에서 A로의 방향이 모두 주어졌을 때, 이 세 방향을 따라가면 결국 A로 돌아와야 정확하겠죠? 만약 돌아왔는데 약간 어긋나 있다면, 이 세 연결선 중 하나 이상에 오류가 있다는 뜻입니다. 논문에서는 이런 '삼각형 루프'를 만들어서 그 어긋난 정도를 계산합니다. 어긋난 정도가 크면 그 연결선이 잘못되었을 확률이 높다고 판단하는 거죠.
2. 각 연결선에 점수 매기기:
모든 가능한 삼각형 루프를 검사해서, 각 연결선(예: A-B)이 얼마나 많은 '정확한 삼각형 루프'에 참여하는지 점수를 매깁니다. 정확한 루프에 많이 참여할수록 그 연결선은 '믿을 만하다'고 보는 겁니다.
3. 가장 믿을 만한 길 찾기 (스패닝 트리):
모든 연결선 중에서 가장 믿을 만한 것들만 골라 하나의 큰 '나무' 구조(스패닝 트리)를 만듭니다. 이 나무는 모든 사진 노드를 연결하되, 가장 정확하다고 판단되는 연결선들로만 이루어져 있습니다.
4. 나무에 맞지 않는 연결선 버리기:
이제 이 '가장 믿을 만한 나무'를 기준으로, 원래 있던 다른 연결선들이 이 나무의 방향과 너무 다르면 '이건 잘못된 정보야!'라고 판단하고 버려 버립니다. 이렇게 하면 처음에 오차나 잘못된 정보가 많았던 연결선들이 대부분 제거됩니다.
2단계: 'Deep Matrix Factorization'로 최종 방향 찾아내기
1단계에서 걸러진 '믿을 만한' 연결선들만 가지고 이제 각 사진의 '절대적인 방향'(예: 사진 A는 북쪽을 향하고, 사진 B는 동쪽을 향한다)을 찾아냅니다.
여기서는 1단계에서 얻은 '깨끗하고 신뢰할 수 있는 상대적인 회전 정보'를 바탕으로, 각 카메라 또는 센서의 최종적인 '절대적인 방향(absolute orientation)'을 찾아내는 과정입니다.
이 과정의 핵심 아이디어는 복잡한 '방향 정보'를 '행렬(Matrix)'이라는 큰 표 형태로 표현하고, 이 행렬을 딥 러닝(Deep Learning) 기술을 이용해 '분해(Factorization)'하고 '재구성(Reconstruction)'하는 것입니다.
1. 방향 정보를 '매트릭스'로 표현하기 (Matrix Reconstruction Problem):
- 우리가 찾으려는 것은 각 카메라 $R_1, R_2, ..., R_N$의 절대적인 방향입니다. 이 정보들을 모아서 하나의 거대한 행렬 $G$로 표현할 수 있습니다.
- 이 $G$ 행렬은 사실 각 카메라의 절대적인 방향 $R_i$들의 정보로 이루어진 $X$라는 더 작은 행렬과 그 $X$의 전치 행렬($X^T$)의 곱으로 표현될 수 있다는 수학적인 특성($G = XX^T$)이 있습니다.
- 중요한 점은 이렇게 구성된 $G$ 행렬이 특정 '랭크(rank)'를 가진다는 사전 지식입니다. 우리 문제에서는 이 랭크가 '3'이라는 것을 알고 있습니다(3차원). 이 '랭크 3'이라는 제약은 우리가 해결해야 할 문제를 '저랭크 행렬 재구성(Low-Rank Matrix Reconstruction)' 문제로 만들 수 있게 해줍니다.
- 하지만 실제 데이터에서는 일부 연결선만 관측되거나 노이즈가 섞여 있기 때문에, 완벽한 $G$ 행렬을 직접 만들 수는 없습니다. 대신, '관측된 $G$ 행렬'($\tilde{G}$)을 가지고, 이 $\tilde{G}$와 가장 비슷하면서도 '랭크 3'이라는 조건을 만족하는 '재구성된 $G$ 행렬'($\hat{G}$)을 찾아야 합니다.
2. '딥 매트릭스 분해'를 위한 신경망 설계 (Deep Matrix Factorization with Explicit Constraints):
- '딥 매트릭스 분해'는 이 $\hat{G}$ 행렬을 여러 개의 작은 '요소 행렬(factor matrices)'($W_1, W_2, ..., W_d$)의 곱으로 표현하는 방식입니다: $\hat{G} = W_1 W_2 ... W_d$. 이 요소 행렬들은 딥 러닝 모델의 '가중치(weights)'가 됩니다.
- 이 논문은 특히 '선형 신경망(Linear Neural Network)'을 사용합니다. 일반적인 신경망과는 달리, 활성화 함수(activation function) 없이 선형 계층(linear layers)만 연결하여 구성됩니다. 이는 수학적으로 행렬 곱셈과 유사하며, 행렬 분해에 적합합니다.
- 명시적 낮은 랭크 제약(Explicit Low-Rank Constraint): 앞서 $G$ 행렬의 랭크가 3이라는 것을 알고 있다고 말씀드렸죠? 논문에서는 이 지식을 적극 활용합니다. 신경망의 내부 구조, 즉 요소 행렬($W_i$)들의 차원(dimension)을 '3N x 3'과 '3 x 3N'과 같이 특정하게 설계합니다. 이렇게 하면 최종적으로 재구성되는 $\hat{G}$ 행렬이 자연스럽게 '낮은 랭크(low-rank)'를 가지게 됩니다. 기존의 방법들은 '암시적 정규화(implicit regularization)'에 의존하여 낮은 랭크 솔루션을 얻으려고 했지만, 이는 노이즈가 많은 상황에서 과적합(overfitting) 문제를 일으킬 수 있었습니다. 이 논문은 명시적으로 랭크를 제약하여 이러한 문제를 해결합니다.
- 대칭 제약(Symmetric Constraint): $G$ 행렬은 $XX^T$의 형태이므로 항상 '대칭(symmetric)'이고 '양의 반정부(positive semidefinite)'라는 수학적 특성을 가집니다. 논문은 이 특성을 활용하여 신경망의 파라미터 수를 줄이고 학습을 더 효율적으로 만듭니다. 즉, $\hat{G} = HH^T$ 형태로 표현하여, $H$만 최적화하면 됩니다. 이는 마치 거울을 보듯이 한쪽만 만들어도 다른 쪽은 자동으로 결정되는 것과 같습니다. 이 설계는 모델의 '해석 가능성(interpretability)'도 높여줍니다.
3. 반복적인 재가중치 스키마 (Iterative Reweighting Scheme):
- 이 스키마는 모델의 '강건성(robustness)'을 크게 향상시킵니다. 학습 과정 중에 혹시 남아 있을 수 있는 잘못된 연결선(특이값)의 영향을 줄이는 데 목적이 있습니다.
- 가중치 할당: 초기에는 모든 연결선에 동일한 중요도(가중치)를 부여합니다.
- 오차 기반 가중치 조절: 학습이 진행되면서 신경망이 계산한 '예측된 방향'($\hat{G}$)과 1단계에서 필터링된 '실제 관측된 상대 방향'($\tilde{G}$)을 비교하여 각 연결선마다 '오차'를 계산합니다.
- 점진적인 학습: 만약 특정 연결선에서 오차가 크다면, 그 연결선은 여전히 '노이즈'가 있거나 '특이값'일 가능성이 높다고 판단합니다. 그러면 다음 학습 단계에서는 그 연결선에 부여된 '가중치(weight)'를 줄입니다. 반대로 오차가 작고 잘 맞는 연결선에는 높은 가중치를 유지하여, 신경망이 '신뢰할 수 있는 데이터'에 더 집중하도록 유도합니다.
- 이 과정은 마치 "초반에는 모든 단서를 참고하되, 시간이 지나면서 점점 더 신뢰할 수 있는 단서에만 집중해서 퍼즐을 맞춰나가는" 과정과 같습니다. 이를 통해 시스템은 노이즈나 특이값에 덜 민감하게 반응하고 더 정확한 결과를 얻을 수 있습니다.
4. 동적 깊이 선택 (Dynamic Depth Selection):
- 신경망에는 '깊이(depth)'라는 개념이 있습니다. 이는 신경망의 '계층(layer)' 수를 의미하는데, 마치 퍼즐을 푸는 데 필요한 생각의 단계 수와 비슷합니다. 너무 얕으면 충분히 복잡한 관계를 학습하기 어렵고, 너무 깊으면 오히려 과적합(overfitting)되거나 학습이 불안정해질 수 있습니다.
- 논문에서는 최적의 깊이를 찾기 위해 여러 개의 후보 모델(예: 깊이 2부터 8까지)을 동시에 독립적으로 학습시킵니다.
- 그리고 학습이 끝난 후, 각 모델이 관측된 데이터에 얼마나 잘 맞는지(즉, 오차가 얼마나 작은지)를 기준으로 가장 성능이 좋은 모델을 최종적으로 선택합니다. 이는 시스템이 스스로 최적의 구성을 찾아내도록 하는 유연성을 제공합니다.
요약하자면, 2단계는 1단계에서 정제된 상대 방향 정보를 바탕으로, 딥 러닝의 강력한 학습 능력과 문제의 수학적 특성(랭크, 대칭성)을 결합하여 각 카메라의 절대적인 방향을 '스스로 학습하고', '반복적으로 정교하게 다듬어' 최종적인 정답을 찾아내는 과정입니다. 이 모든 과정은 '정답 데이터' 없이도 이루어진다는 것이 이 논문의 큰 장점입니다.
결론적으로, 이 논문의 방법은:
- 데이터의 오류를 스스로 걸러내고,
- 정답 데이터를 미리 알려주지 않아도 컴퓨터가 스스로 학습하여,
- 수학적 특징을 활용한 똑똑한 설계와 반복적인 조절을 통해,
- 여러 장의 사진이나 센서 데이터에서 각 카메라나 센서가 어떤 절대적인 방향을 보고 있었는지를 정확하게 찾아내는
새로운 기술을 제안하는 것입니다. 이로써 3D 지도 제작, 로봇 자율 주행 등 다양한 분야에서 더 정교하고 효율적인 시스템을 만들 수 있게 됩니다.
'논문리뷰' 카테고리의 다른 글
| <논문리뷰>SuperPoint-SLAM3: Augmenting ORB-SLAM3 with Deep Features, Adaptive NMS, and Learning-Based Loop Closure (2) | 2025.06.18 |
|---|