InfiniTAM v3
Prisacariu 2017 · 논문
한 줄 요약 — 복셀 해싱 TSDF(또는 서펠) 매핑, 강건한 ICP/RGB 추적, 랜덤 펀 재지역화, 서브맵 기반 전역 일관 재건을 결합한 모듈형 크로스 디바이스 오픈소스 RGB-D 재건 프레임워크.
문제
재건을 TSDF로 체적 표현하면 KinectFusion류 시스템의 GPU 구현이 누리는 단순성과 효율성을 얻을 수 있지만, 밀도 균일 격자는 메모리를 많이 소모하고 규모를 제한합니다. 그리고 연구 커뮤니티에는 카메라 추적, 장면 표현, 데이터 통합을 교체하고 조정할 수 있는 단일한 빠르고 유연한 파이프라인이 부재했습니다. InfiniTAM은 바로 그러한 프레임워크이며, v3 기술 보고서는 그 세 번째 반복을 기록합니다. 이번 버전의 주요 추가 사항은 실패 감지 기능을 갖춘 강건한 추적기, 랜덤 펀 재지역화기, 서브맵을 통한 전역 일관 TSDF 재건, 그리고 서펠 백엔드입니다.
방법 및 아키텍처
엔진 아키텍처. 책임 연쇄(chain-of-responsibility) 설계입니다: 상태를 갖지 않는 처리 엔진(추적, 할당, 통합, 레이캐스트, 스와핑)들이 상태 객체를 주고받으며, 각 엔진은 Abstract, Device-Specific(CPU/CUDA/Metal), 그리고 공유 인라인 C 코드로 구성된 Device-Agnostic 계층으로 나뉩니다. 두 가지 파이프라인이 존재합니다: ITMBasicEngine(표준 융합)과 ITMMultiEngine(루프 클로저를 포함한 전역 일관 방식).
복셀 해싱. 복셀(TSDF 값, 가중치, 선택적 RGB)은 연속된 복셀 블록 배열(개 항목)에 저장되는 블록으로 그룹화됩니다. 해시 테이블은 다음을 통해 블록의 모서리 좌표 를 저장 인덱스로 매핑합니다.
충돌은 정렬되지 않은 초과 목록(excess list)으로 처리됩니다. 할당은 각 깊이 픽셀 에 대해 에서 까지의 구간을 역투영하여 교차하는 블록들을 세 단계의 논블로킹 방식으로 할당하고, 이후 통합 단계는 KinectFusion과 마찬가지로 각 가시 복셀을 가중 이동 TSDF 평균으로 갱신합니다.
추적. 전통적인 ITMDepthTracker는 모델의 레이캐스팅 결과에 대한 점-대-평면 거리 를 해상도 계층에 걸쳐 최소화합니다. ITMColorTracker는 대신 색상 차이 를 최소화합니다. v3에서 새로 도입된 기본 추적기 ITMExtendedTracker는 ICP를 강건하게 만듭니다: 픽셀별 오차에 대한 Huber 노름, 먼(더 잡음이 많은) 측정치에 대한 깊이 의존적 가중치 하향, 거리 임계값에 의한 이상치 게이팅, 그리고 강도 에 대한 선택적 프레임-대-프레임 광도 항(Tukey 손실, 0.3으로 스케일링)을 포함하며, 이 모두는 Levenberg-Marquardt로 거칠기-에서-세밀도 방식으로 최소화됩니다. ICP 통계량(인라이어 비율, 헤시안 행렬식, 잔차)에 대한 SVM 분류기가 추적 실패를 감지하여 재지역화를 유발합니다.
재지역화(랜덤 펀). 각 RGB-D 이미지는 개의 특징 테스트로 이루어진 개의 이진 코드 블록으로 인코딩됩니다. 이미지 간 유사도는 블록 단위 해밍 거리 로 계산됩니다. 코드 테이블이 코드를 키프레임 ID로 매핑하므로, 가장 가까운 저장된 키프레임(및 그 포즈)을 상수 시간에 검색할 수 있습니다 — 포즈 복구와 루프 클로저 탐지 양쪽에 모두 사용됩니다.
전역 일관 재건. 장면은 강체 서브맵들(활성 서브맵은 매 프레임 추적되고, 비활성 서브맵은 휴면 상태이며, 카메라가 현재 서브맵을 벗어나면 새 서브맵이 생성됨)로 분할됩니다. 서브맵 간 제약은 추적과 펀 기반 루프 클로저 탐지로부터 축적되며, 서브맵 포즈 그래프는 백그라운드 스레드에서 최적화됩니다. 렌더링은 즉석에서 융합된 암묵적 결합 TSDF를 레이캐스팅합니다.
여기서 는 서브맵 의 포즈, 는 그 TSDF와 가중치입니다 — 전역 맵은 서브맵들에 대한 하나의 뷰일 뿐, 명시적으로 구축되지는 않습니다.
서펠 백엔드 및 스와핑. Keller 등의 포인트 기반 융합에 대한 베타 구현이 매칭된 서펠을 신뢰도 가중 평균 으로 갱신하며, 최대 500만 개의 서펠까지 지원합니다. 고정 크기 호스트/디바이스 전송 버퍼를 갖는 스와핑 엔진이 복셀 블록을 GPU 메모리에서 내보내고 돌아올 때 다시 융합하므로, 맵이 GPU 용량을 초과할 수 있습니다.
실험 결과
v3 논문은 정량적 평가표를 포함하지 않는, 프레임워크 구현에 관한 기술 보고서입니다 — 그 기반이 되는 전역 일관 서브맵 방법은 짝을 이루는 별도 논문(Kähler et al., ECCV 2016)에서 평가됩니다. 보고서 자체가 내세우는 주장은 엔지니어링 관점의 것들입니다: 파이프라인은 GPU에서 실시간으로 동작하며(덜 최적화된 서펠 백엔드도 좋은 GPU에서는 “여전히 실시간”), 해싱을 사용해도 일반적인 그래픽 카드는 4,mm 복셀 해상도에서 대략 방 하나 정도를 활성 메모리에 담을 수 있고, 스와핑 서브시스템이 이를 더 큰 장면으로 확장합니다. 그리고 전체 스택은 CPU, CUDA, Metal 디바이스 계층에서 다양한 센서(Kinect, PrimeSense, RealSense, Structure)와 함께 동작합니다. 완전한 추적 정확도 평가는 짝을 이루는 논문들을 참조하십시오. 그 지속적인 영향은 가장 널리 사용되고 수정하기 쉬운 오픈소스 RGB-D 재건 코드베이스 중 하나라는 점입니다.
SLAM에서의 의미
InfiniTAM v3는 KinectFusion 이후의 최신 기술 — 복셀 해싱, 실패 감지 기능을 갖춘 강건한 프레임-대-모델 추적, 펀 재지역화, 서브맵 기반 루프 클로저 — 를 하나의 모듈형 프레임워크로 패키징했습니다. 프로덕션 수준의 밀도 SLAM 파이프라인이 어떻게 설계되는지(메모리 관리, GPU 커널, 교체 가능한 맵 백엔드, 호스트-디바이스 페이징) 이해하고 싶다면, InfiniTAM의 코드를 읽는 것이 이 레벨에서 가장 좋은 연습 중 하나입니다. 또한 BundleFusion과 같이 확장 가능한 TSDF 시스템이 기반으로 삼는 복셀 해싱 저장 방식의 참조 구현이기도 합니다.