Depth from sensor
RGB-D 카메라는 컬러 이미지와 픽셀별 깊이 이미지를 동시에 촬영합니다. 하드웨어에서 깊이를 직접 얻는다는 것은 SLAM 문제를 근본적으로 바꿉니다. 해결해야 할 스케일 모호성이 없고, 지도가 유용해지기 전에 시차로부터 점들을 삼각측량할 필요도 없으며, 첫 프레임부터 밀도 높은 재건(dense reconstruction)이 가능해집니다. 2010—2011년경 저가 소비자용 깊이 카메라(Microsoft Kinect)가 등장하면서 이 분야는 폭발적으로 성장했고, 이는 KinectFusion을 시작으로 하는 실시간 체적 융합(volumetric fusion) 시스템의 물결을 촉발했습니다.
두 가지 센싱 방식(그리고 하이브리드)
지배적인 센싱 방식은 두 가지입니다.
- 구조광(Structured light): 센서가 알려진 적외선 점 패턴을 장면에 투사하고 IR 카메라로 그 변형을 관찰합니다. 깊이는 투사기와 카메라 사이의 삼각측량으로 얻어집니다. Kinect v1(측정 범위 약 0.8—4,m)과 Orbbec Astra가 이 방식으로 동작합니다.
- 능동 IR ToF(Time-of-Flight): 센서가 변조된 적외선 광을 방출하고, 픽셀별로 반사된 신호의 이동 시간(위상 이동)을 측정합니다. Kinect v2와 Azure Kinect가 ToF를 사용하며, 일반적으로 구조광보다 더 나은 정확도와 해상도를 제공합니다.
세 번째로 관련된 방식은 능동 IR 스테레오(예: Intel RealSense D400 시리즈)입니다. 투사된 IR 텍스처의 도움을 받는 고전적인 스테레오 페어로, 텍스처가 없는 표면에서도 동작하며 태양광 아래에서는 수동 스테레오로 우아하게 성능이 저하됩니다.
| 구조광 | 능동 IR ToF | |
|---|---|---|
| 원리 | 패턴 삼각측량 | 픽셀별 이동 시간 |
| 일반적인 범위 | ~0.5—4,m | 최대 ~4—5,m |
| 예시 센서 | Kinect v1, Orbbec Astra | Kinect v2, Azure Kinect |
| 약점 | 태양광, 패턴 간섭 | 다중 경로 반사, 태양광 |
깊이 오차의 거동
초점 거리 , 기준선 , 시차(disparity) 를 가진 모든 삼각측량 기반 센서(구조광, 능동 또는 수동 스테레오)에서 깊이는 입니다. 이를 미분해 보면 이러한 센서가 거리가 멀어질수록 왜 성능이 급격히 나빠지는지 알 수 있습니다. 시차 오차 는 범위(range)에 대해 제곱으로 증가하는 깊이 오차를 만들어냅니다.
1,m에서 밀리미터 수준의 정확도를 가진 센서라도 4,m에서는 몇 센티미터씩 벗어날 수 있습니다. ToF 센서는 다르게 저하됩니다. 무작위 노이즈는 거리에 따라 더 완만하게 증가하지만, 대신 특징적인 계통 오차를 겪습니다. 다중 경로 간섭(방출된 빛이 두 표면에서 반사된 후 돌아와 코너와 오목한 영역에 편향을 일으킴)과 비산 픽셀(flying pixels)(깊이 불연속을 가로지르는 허위 깊이 값)이 그것입니다. 이 때문에 RGB-D SLAM 시스템은 거리에 따라 측정값에 가중치를 두고, 먼 거리 측정을 절단(truncate)하며, 깊이 경계를 필터링합니다.
일반적인 장치
- Microsoft Kinect v1 (2010): 구조광 방식, 측정 범위 0.8—4,m; 소비자용 RGB-D를 개척하고 KinectFusion 연구의 물결을 가능하게 함.
- Microsoft Kinect v2 (2013): ToF 방식; 정확도 향상, 최대 4.5,m 범위, 더 높은 해상도.
- Azure Kinect DK (2019): 1 MP ToF 깊이, 넓은 시야각 RGB 카메라, 내장 IMU; AI/엣지 응용을 목표로 함.
- Intel RealSense D 시리즈 (D415/D435/D455): 스테레오 기반 능동 IR; 소형이며 USB 전원으로 구동되어 로보틱스와 드론 연구 대부분에서 기본 선택.
- Occipital Structure Core: 넓은 기준선 스테레오를 갖춘 모바일 친화적 능동 IR 센서.
- Orbbec Astra / Astra Pro: 저렴한 구조광 방식; ROS 기반 연구에서 널리 사용.
트레이드오프와 그 세부 사항
무료로 얻는 메트릭 스케일의 대가는 일련의 엄격한 물리적 한계입니다. 범위가 짧아(수 미터) 이러한 센서들은 실내용 장치입니다. 강한 적외선 주변광(태양광)은 방출된 신호를 씻어냅니다. 어둡거나 흡수성이 있거나 투명하거나 반사성인 재질은 신호를 거의 반환하지 않거나 왜곡된 신호를 반환하여 깊이 이미지에 구멍을 남깁니다. 깊이 노이즈도 거리에 따라 증가합니다 (삼각측량 기반 센서의 경우 대략 제곱으로), 이 때문에 RGB-D SLAM 시스템은 먼 거리 측정값에 가중치를 부여하거나 절단합니다.
흔한 함정
- 깊이와 컬러는 서로 다른 카메라입니다: 깊이 이미저와 RGB 이미저는 서로 다른 내부 파라미터를 가지고 다른 위치에 있습니다. 정확한 외부 파라미터 정합(그리고 시간 동기화)이 없으면, 컬러 포인트 클라우드에서 깊이 경계를 넘나드는 색상 “번짐(bleeding)“이 나타나고, 광도(photometric)+기하(geometric) 기반 방법(예: DVO, ElasticFusion)이 소리 없이 성능 저하를 겪습니다.
- 유효하지 않은 픽셀은 예외가 아니라 정상입니다: 실제 깊이 프레임은 모두 흡수성, 반사성, 투명 재질과 투사기의 가림 영역에서 발생하는 구멍(0 또는 NaN 깊이)을 포함합니다. 추적 및 융합 코드는 결측 깊이를 오류가 아닌 정상적인 경우로 처리해야 합니다.
- 깊이 단위와 스케일 인자를 확인하세요: 원시 깊이는 흔히 밀리미터 단위의 16비트 정수로 제공되며, 데이터셋은 각기 다른 스케일 인자를 사용해 깊이 PNG를 저장합니다. 잘못된 스케일 인자는 다른 모든 것이 정상적으로 동작하는 것처럼 보이면서도 미묘하게(또는 완전히) 잘못된 크기의 지도를 만들어냅니다.
- 다중 센서는 서로 간섭합니다: 동일한 표면을 관찰하는 두 개의 구조광 카메라는 서로의 점 패턴을 손상시킵니다. 다중 카메라 리그는 간섭 완화(시간 다중화 또는 ToF 주파수 분리)가 필요합니다.
- 빠른 움직임은 깊이 이미지 자체를 깨뜨립니다: 모션 블러와 롤링 셔터 유사 아티팩트는 추적이 관측하기도 전에 깊이를 손상시킵니다. 어떤 강건한 추정을 하더라도 촬영 시점에 이미 잘못된 측정값을 고칠 수는 없습니다.
SLAM에서의 의미
RGB-D SLAM의 모든 설계 결정은 센서로부터 흘러나옵니다. 픽셀별 메트릭 깊이는 ICP와 체적 TSDF 또는 서펠(surfel) 융합을 이용한 밀도 프레임-대-모델 추적을 가능하게 하며, 센서의 노이즈 모델, 범위 한계, 재질별 실패 양상은 이러한 시스템이 어디에서 무너지는지를 결정합니다. 여러분의 깊이가 구조광, ToF, 능동 스테레오 중 어디서 왔는지 아는 것은 그 시스템이 어떤 환경에서 살아남을 수 있는지를 알려주며, 왜 RGB-D SLAM이 실내 기술이고 실외 시스템은 스테레오나 LiDAR에 의존하는지를 설명합니다.
관련 문서
- Camera device — 카메라 센서 유형 개요
- KinectFusion — 소비자용 깊이 카메라가 가능하게 한 시스템
- Disparity vs Depth — 수동 스테레오 삼각측량으로부터의 깊이
- Scale ambiguity — 깊이 센서가 제거하는 단안 카메라 문제
- Frame-to-model tracking — 밀도 SLAM이 깊이 스트림으로 하는 일
- ICP — 이러한 측정값들이 공급되는 정합 알고리즘