이번 리뷰 논문은 비지도 학습 기반의 depth completion 방법론 입니다. 해당 방법론은 sparse한 깊이 정보를 영상 정보를 함께 활용하여 dense한 깊이 정보를 추론하는 방법론 입니다. 학습시 GT에 해당하는 dense한 깊이 정보 없이 학습을 진행하는 비지도 학습 기반의 방법론 입니다.
Unsupervised Depth Completion With Calibrated Backprojection Layers
해당 태스크는 이미지 평면 수준의 조밀한 깊이 정보를 GT인 조밀한 깊이 정보 없이 RGB 영상 I 과 sparse point cloud z 를 이용하여 복원하는 것을 목표로 합니다. 이를 수행하기 위해 저자는 크게 2가지 모듈, sparse-to-dense (S2D) f_{\omega} 와 calibrated backprojection (KB) layers을 제안합니다. S2D는 여러 크기의 커널을 가진 min과 max 풀링으로 구성되어 있으며, 이를 통해 희소한 깊이 정보의 로컬 및 글로벌 구조를 살리며, 조밀한 깊이 정보의 초기화를 수행하는 역할를 합니다. KB layers는 내부 카메라 파라미터를 이용하여 2차원에 투영된 정보들을 명시적으로 3차원 공간에 backprojection을 수행하여 정보를 보정합니다. 영상 정보와 희소한 깊이 정보의 두 스트림을 가진 이전 작업과들은 달리 내부 카메라 파라미터를 입력으로 받는 KB layer를 통해 이미지 영역의 정보를 3차원 공간으로 끌어올려 해당 정보를 조밀한 3차원 정보를 복원하는 decoder에 skip connection을 통해 전달합니다. 해당 모델은 비지도 학습을 수행하기 위해 시간적으로 인접한 영상 프레임을 이용한 손실 함수를 설계하여 학습을 수행합니다. 해당 KBNet의 도식화는 fig 1을 참고하시면 됩니다.
Sparse-to-Dense Module (S2D)
S2D module f_{\omega} 는 다양한 커널 크기를 가진 min and max pooling을 이용하여 희소한 깊이 정보 z에 대해 다중 스케일 고밀도화를 수행하는 역할을 합니다. (커널 크기는 sparse point cloud를 추론하는 센서 혹은 방법에 의한 희소성에 따라 조절한다고 합니다) 여러 스케일과 두 가지 방식의 풀링 레이어를 통해 출력된 정보들 간의 trade off를 학습하기 위해 3개의 1×1 conv에 입력되어 집니다. 이후 3×3 conv를 통해 z와 융합되어 이후 네트워크에 고밀도 혹은 준고밀도 깊이 특징을 생성합니다.
추가로 희소한 깊이 정보의 0 또는 음수 형태의 깊이 값을 풀링하지 않도록 수행하는 최소 풀링 레이어를 설계합니다. 이는 다음과 같습니다.
++ 위 내용과 같이 설계된 최소 풀링을 통해 아웃라이어들을 제거하고 주변에 비어 있는 공간들을 보완하는 효과를 얻을 수 있습니다.
저자는 풀링을 이용한 기법에는 2가지 trade-off, (i) density versus detail and (ii) preservation of near versus far structures를 가진다고 합니다. 이에 대한 해결방안으로 max pooling과 여러 크기의 커널 사이즈를 사용함으로써 해소하고자 합니다.
Density versus details. 고밀도화를 위해 커널 크기가 큰 풀링을 수행할 수 있지만, 이 경우 로컬 구조의 디테일을 희생해야 합니다. 반대로, 디테일을 유지하기 위해 작은 커널 크기로 풀링을 수행하면 작은 커널 크기로 풀링하면 학습에 활용되는 정보가 너무 희소하여 학습이 어려울 수 있습니다. 따라서 저자는 로컬한 디테일을 유지하면서 조밀한 표현을 얻으려면 작은 커널 크기와 큰 커널 크기를 모두 사용하여 풀링을 수행할 것을 제안합니다.
++ 커널 크기가 커질 수록 수용 영역이 커지면서 희소한 깊이 정보를 담을 가능성이 높아져 조밀한 깊이 정보를 얻을 수 있습니다.
Near versus far. 최대 풀링으로만 풀링할 경우 멀리 있는 구조물은 보존되지만 커널 크기가 커질수록 가까운 구조물의 디테일은 사라집니다. 예를 들어 fig 2에서 카메라에 가까운 얇은 구조, 즉 강조 표시된 극은 최대 풀링 커널 크기가 크기 때문에 사라집니다. 반면에 최소 풀링만 사용하면 가까운 구조물은 더 두드러지지만 멀리 떨어진 영역은 손상됩니다. 또한 복잡한 씬에서 최소 풀링을 사용하면 인접한 구조가 서로 번져 보이는 현상이 발생합니다. 따라서 저자는 가까운 구조와 먼 구조를 보존하기 위해 최소 풀링 레이어와 최대 풀링 레이어를 모두 사용하는 방법을 제안합니다.
++ 깊이 정보를 구성하는 값들의 범위는 거리값으로 구성되기 때문에 최대 풀링은 최대한 멀리 떨어져 있는 정보를, 최소 풀링은 최대한 가까이 있는 정보를 풀링하는 형태를 가집니다.
위에서 제시된 두가지 trade-off를 모두 최적화하기 위해 다양한 크기의 커널 사이즈의 최소 및 최대 풀링로부터 출력된 정보를 concatenated하여 3개의 1×1 conv에 공급하여 각 출력 정보 간의 trade-off를 학습하고 3×3 conv를 통해 멀티 스케일 최소/최대 풀링을 sparse point cloud z와 융합하여 고밀도 표현 f_{\omega}(z) 를 생성합니다.
KBNet Architecture
Motivation. 기존 비지도 학습 기반의 방법론들은 시간적으로 인접한 영상 프레임 I_{\tau}, \tau \in T= \{ t-1, t+1 \} 을 이용하여 \hat{ I_{\tau} } 를 예측하는 photometric reprojection error L_{perl} 를 이용합니다.
픽셀 단위로 추정되는 L_{perl} 는 다음과 같이 구성됩니다.
여기서 \bar{x} 는 homogeneou coordinate의 x에 해당하며, g_{\tau t} \in SE(3)는 인접 프레임 간의 상대적 포즈 정보에 해당합니다. K는 내부 캘리브레이션 매트릭스에 해당합니다. \pi 는 perspective projection에 해당합니다.
저자가 주장하길 기존 방법론들은 캘리브레이션 정보가 없는 상태에서 실제 세계에서의 포즈 정보를 예측하기 매우 어렵고 일반적으로 훈련 데이터의 특성과 다른 환경의 테스트 정보를 추론할 경우, 저조한 성능을 보여줍니다. 쉽게 정리해서 말하자면, 학습 데이터를 통해 측정된 센서들과 실제 세계 간의 보정 정보를 추론할 수 있지만 학습 데이터에 오버 피팅되기 때문에 센서 및 촬영 방식이 변경된 테스트 데이터에서는 다른 보정 정보를 활용되어야 하기 때문에 저조한 성능을 보여준다고 이해하시면 됩니다.
저자는 기존 방법론들의 보정 정보에 대한 한계를 지적하면서 KBNet은 캘리브레이션 정보를 입력으로 사용하기 때문에 훈련에 맞춰 혹은 테스트 환경에 맞는 보정 정보를 적응적으로 적용이 가능하도록 하고자 했다고 합니다.
Calibrated Backprojection Layers. KB layers는 depth 및 RGB encoding과 내부 카메라 파라미터 K를 입력으로 받아 3차원 공간에 역투영된 영상 정보에 대한 추론을 수행합니다. RGB 3D ecoding이 형성되면 이후 KB layer의 입력으로 공급되고 decoder로 skip connection을 수행하여 제공되어집니다. 이는 fig 3을 통해서 도식화된 표현을 확인할 수 있습니다.
먼저, KB 레이어는 보정 행렬을 사용하여 각 픽셀 x의 좌표를 3차원 공간 x \rightarrow K^{-1} \bar{x} 로 변화시킵니다. 그런 다음, depth 인코더 \phi(x) \in R^M 의 특징 맵을 훈련 가능한 압축 모듈 q에 의해 d(x) = q^{T} \phi(x) 로 스칼라로 축소합니다. 임펄스된 깊이 d(x)는 \bar{x} 를 역투영하는데 사용하여 각 픽셀 x_{3D} = K^{-1} \bar{x} d(x) 에 대한 3D 위치 인코딩을 생성합니다.
각 레이어의 feature map의 사이즈가 줄어들면서 첫 레이어에서는 영상 크기와 동일하 크기에서 2배 씩 감소하게 되어집니다. 그렇기에 내부 카메라 파라미터의 스케일을 줄어드는 크기에 맞춰 고유 매개변수인 focal length와 principalpoint에 대한 스케일 조절을 수행합니다.
RGB 3D encoding은 RGB encoding \psi(x) \in R^N 과 이전 KB 레이어의 출력 \psi_{3D}(x) \in R^N 과 연결되며, 이를 1 × 1 conv로 융합하여 RGB 3D encoding을 생성합니다. 해당 정보는 다음 레이어에 전달되며, decoder에 skip connection을 통해 전달되어집니다. 마지막으로 KB layer의 depth와 RGB encoding은 별도의 3 × 3 conv를 수행하여 다음 레이어의 입력으로 전달됩니다.
Loss Function
Photometric Consistency. 위에서 언급한 비지도 기반의 방법인 수식 4를 통해 인접한 영상 프레임들을 재구성하여 photometric reprojection error를 활용합니다. 저자는 L1과 SSIM을 이용하여 복원 유사성에 대한 정도를 측정합니다.
Sparse Depth Consisten. 깊이 수준에서의 스케일을 예측하기 위해 spare point \omega_z 에 대한 L1 Loss를 수행합니다.
Local Smoothness. 예측된 조밀한 깊이 정보에 대한 local smoothness와 연결성을 강화하기 위해 영상 정보의 수직 수평 측면의 그래디언트를 활용한 손실 함수를 사용합니다.
Total Loss
Experiment
Outdoor (KITTI detph completion benchmark)
해당 모델은 다른 모델 대비 높은 성능 향상을 보여주고 있으며, 무엇보다 성능 대비 높은 추론 속도를 보여주고 있습니다.
Ablation study
Tab 3에서는 S2D와 유사한 SSP를 비교하기 위한 실험도 진행하였습니다. SSP는 trade-off를 고려하지 않고 설계된 모듈이기에 S2D 대비 저조한 성능을 보여줍니다. 최종적으로 S2D와 KBNet 조합이 가장 좋은 성능을 보여줍니다.
++ Scaffolding은 희소한 포인트를 해결하기 위한 이전 논문에서 제안한 기법 정도로 이해하셔도 괜찮습니다.
fig 5는 캘리브레이션 정보가 주는 영향에 대한 실험입니다. 해당 모델은 캘리브레이션 정보를 입력으로 받아 수행하기 때문에 강인성에 대한 실험을 위해 진행된 걸로 판단됩니다. 또한 다른 depth completion 방법론의 캘리브레이션 정보의 영향력에 대한 통찰을 줄 수 있는 실험으로 보입니다. 결과적으로 focal length이 줄어들었을 때, 성능에 가장 큰 영향을 줍니다. 알고리즘의 특성상 focal 값이 줄어들면 먼 거리의 정보들에 대한 공간이 줄어들어 손해가 발생합니다. 더 올라가는 경우에는 덜 영향을 준다고 분석되어집니다.
Indoor (VOID & NUCv2)
마지막으로 야외 환경보다 복잡한 실내 환경에서 진행한 실험으로 해당 실험에서도 효과를 보여주고 있음을 증명합니다.
해당 논문을 토대로 생각보다 재밌는 실험 구성이 떠올라서 리뷰하게 되었습니다. 이후 좋은 결과로 선보이게 되길 바라면서 마무리 하도록 하겠습니다.