Booil Jung

Voxblox++

로보틱스 분야에서 로봇이 주변 환경을 인식하고 이해하는 방식은 지난 수십 년간 근본적인 패러다임 전환을 겪어왔다. 초기 로봇 시스템의 주된 관심사가 장애물의 위치를 파악하여 충돌 없이 이동하는 것이었다면, 현대의 지능형 로봇에게는 훨씬 더 높은 수준의 환경 이해 능력이 요구된다. 이는 단순히 ‘갈 수 있는 공간’과 ‘갈 수 없는 공간’을 구분하는 기하학적 맵(Geometric Map)을 넘어, 환경을 구성하는 각 요소가 ‘무엇’이며(시맨틱, semantic), ‘어떻게’ 개별적으로 존재하는지(인스턴스, instance)를 파악하는 시맨틱 맵(Semantic Map)의 구축을 의미한다.1 이러한 고차원적 정보는 로봇이 특정 물건을 집어 옮기거나(manipulation), 문을 여는 등 복잡하고 의미 있는 상호작용을 수행하기 위한 필수 전제조건이다.3

이러한 기술적 요구 속에서, 특히 마이크로 비행체(Micro Aerial Vehicle, MAV)와 같이 계산 자원과 탑재량이 극히 제한된 플랫폼에서의 실시간 3D 매핑은 중요한 도전 과제로 남아있었다.5 이 문제에 대한 효과적인 해법 중 하나로 Voxblox가 등장했다. Voxblox는 CPU 기반 환경에서도 실시간으로 주변 환경의 3D 기하학적 구조를 효율적으로 표현하고, 특히 경로 계획에 필수적인 장애물 거리 정보를 증분적으로(incrementally) 계산하는 강력한 프레임워크를 제공하며 학계와 산업계의 큰 주목을 받았다.6 그러나 Voxblox는 순수한 기하학적 정보만을 다루었기에, 로봇의 지능을 한 단계 끌어올리기 위한 시맨틱 정보의 통합이라는 과제가 남았다.

Voxblox++는 바로 이 지점에서 출발한다.1

Voxblox++는 견고한 기하학적 매핑 프레임워크인 Voxblox의 기반 위에, 객체 수준의 시맨틱 정보와 인스턴스 정보를 통합하려는 선구적인 시도였다.9 이는 3D 맵을 단순한 공간 표현에서 지식 베이스(knowledge base)로 변모시키려는 중요한 발걸음이었다.

본 보고서는 Voxblox++를 기술적, 역사적 맥락 속에서 심층적으로 고찰하는 것을 목표로 한다. 이를 위해, 먼저 Voxblox++의 기술적 토대가 된 Voxblox의 핵심 원리와 아키텍처를 상세히 분석한다. 그다음, Voxblox++가 시맨틱 정보를 통합하기 위해 도입한 핵심 파이프라인과 알고리즘을 해부하고, 이 과정에서 드러나는 명백한 기술적 한계와 구조적 취약점을 비판적으로 조명한다. 마지막으로, Voxblox++의 한계를 극복하기 위해 등장한 다양한 후속 연구들과 대안적 프레임워크들을 조망함으로써, 3D 시맨틱 매핑 기술의 발전 계보 속에서 Voxblox++가 차지하는 기술사적 의의와 유산을 종합적으로 평가하고자 한다.

Voxblox++를 이해하기 위해서는 그 근간을 이루는 Voxblox에 대한 깊이 있는 이해가 선행되어야 한다. Voxblox는 단순한 3D 재구성 라이브러리가 아니라, 특정 목적, 즉 자원이 제한된 로봇 플랫폼에서의 실시간 경로 계획을 위해 고도로 최적화된 시스템이다. 이 장에서는 Voxblox의 핵심 목표와 이를 달성하기 위한 기술적 구성 요소들을 상세히 분석한다.

Voxblox의 탄생 배경에는 MAV와 같이 작고 빠른 로봇이 미지의 환경을 탐사하며 실시간으로 경로를 수정해야 하는 절박한 필요성이 자리 잡고 있다.5 이러한 로봇은 제한된 페이로드와 전력으로 인해 고성능 GPU와 같은 계산 자원을 활용하기 어렵다.5 따라서 경량화된 알고리즘이 필수적이다.

특히, CHOMP (Covariant Hamiltonian Optimization for Motion Planning)나 TrajOpt와 같은 궤적 최적화(Trajectory Optimization) 기반의 경로 계획 알고리즘은 로봇의 작업 공간 내 모든 지점에서 가장 가까운 장애물까지의 거리와 그 거리의 그래디언트(gradient) 정보를 요구한다.5 이 정보는 로봇이 충돌을 회피하면서도 부드럽고 효율적인 경로를 생성하는 데 결정적인 역할을 한다.

Voxblox는 바로 이 ‘장애물 거리 정보’를 CPU 기반 환경에서 실시간으로, 그리고 증분적으로 제공하는 것을 핵심 설계 목표로 삼았다.5

Voxblox의 기본 데이터 구조는 Truncated Signed Distance Field (TSDF)이다. TSDF는 3D 공간을 복셀(Voxel)이라는 작은 정육면체 격자로 나누고, 각 복셀에 정보를 저장하는 체적 표현 방식(volumetric representation)이다.

TSDF에서 각 복셀은 가장 가까운 물리적 표면(surface)까지의 부호화된 거리(signed distance)를 저장한다.5 이 거리는 다음과 같은 특징을 가진다.

이러한 특징 덕분에 TSDF는 센서 노이즈에 강건하고, 연속적인 표면 정보를 암시적으로 표현하여 고품질의 메시(mesh)를 생성하는 데 유리하다.5

로봇이 움직이며 새로운 깊이 정보를 얻을 때마다, TSDF 맵은 증분적으로 업데이트된다. 새로운 측정치와 기존 복셀 값을 통합하기 위해 가중 평균(weighted average) 방식이 사용된다. 특정 복셀 $\mathbf{p}$에 대해, $k$번째 관측이 들어왔을 때의 업데이트 과정은 다음과 같은 수식으로 표현될 수 있다.10 \(D_{k}(\mathbf{p}) = \frac{W_{k-1}(\mathbf{p})D_{k-1}(\mathbf{p}) + w_k(\mathbf{p})d_k(\mathbf{p})}{W_{k-1}(\mathbf{p}) + w_k(\mathbf{p})}\)

\[W_{k}(\mathbf{p}) = W_{k-1}(\mathbf{p}) + w_k(\mathbf{p})\]

여기서 각 변수는 다음을 의미한다.

가중치 $w_k(\mathbf{p})$는 일반적으로 센서 모델에 따라 결정되며, 거리가 멀어질수록 신뢰도가 낮아지는 것을 반영한다. Voxblox는 특히 큰 복셀 크기를 사용할 때 발생하는 표면 왜곡을 줄이기 위해, 센서 측정치에 일정한 가중치를 부여하는 대신 거리에 따라 선형적으로 감쇠하는 가중치 전략(linear drop-off weighting)을 제안하여 정확도를 높였다.10 이 가중 평균 방식은 여러 프레임에 걸친 관측을 자연스럽게 융합하여 센서 노이즈를 효과적으로 평활화(smoothing)하는 역할을 한다.6

앞서 언급했듯이, 경로 계획 알고리즘은 투영 거리가 아닌 실제 유클리드 거리(Euclidean distance)를 필요로 한다. ESDF는 맵의 모든 복셀이 가장 가까운 점유 공간(장애물)까지의 실제 유클리드 거리를 저장하는 맵이다.6

Voxblox의 핵심 기여 중 하나는 TSDF로부터 이 ESDF를 효율적으로, 그리고 증분적으로 생성하는 방법을 제시한 것이다.5

기존 방식들은 전체 맵이 완성된 후 일괄(batch)적으로 ESDF를 계산했는데, 이는 실시간 로봇 애플리케이션에 부적합했다.5

Voxblox는 Lau 등이 제안한 점유 격자(occupancy map) 기반의 증분적 ESDF 생성 알고리즘을 TSDF 환경에 맞게 확장하고 개선했다.5

알고리즘의 핵심은 Wavefront Propagation (파면 전파) 방식이다.10

  1. Site Voxel 식별: TSDF가 업데이트될 때, 새로 관측되어 점유 상태로 확인된 복셀(정확히는 0-crossing, 즉 부호가 바뀌는 경계에 있는 복셀)들을 ‘사이트(site)’로 지정한다. 이 사이트들은 거리 계산의 기준점이 된다.
  2. 우선순위 큐 활용: 알고리즘은 두 개의 우선순위 큐, 즉 ‘raise’ 큐와 ‘lower’ 큐를 사용한다.10
    • Lower Queue: 새로운 사이트 복셀이 추가되거나 기존 복셀의 거리 값이 더 짧은 경로의 발견으로 인해 감소해야 할 때, 해당 복셀들이 이 큐에 추가된다. 큐에서 복셀을 하나씩 꺼내어 그 주변 26개의 이웃 복셀(26-connected neighbors)들의 거리 값을 갱신하고, 만약 이웃의 거리 값이 더 짧아졌다면 그 이웃도 큐에 추가한다. 이 과정은 마치 물에 돌을 던졌을 때 파동이 퍼져나가는 것처럼 거리 정보가 전파되는 것과 같다.
    • Raise Queue: 장애물이 제거되거나 이동하여 기존 사이트 복셀이 더 이상 유효하지 않게 되면, 해당 사이트를 부모로 삼던 복셀들의 거리 정보는 무효화되어야 한다. 이 복셀들은 raise 큐에 추가되어, 주변으로 “거리가 무한대가 되었음”을 전파시켜 관련 영역의 ESDF를 재계산하도록 유도한다.12
  3. 증분적 업데이트: 이 방식은 맵 전체가 아닌, 변화가 발생한 지역 주변으로만 계산을 한정시킨다. 로봇은 매 순간 환경의 극히 일부만을 관측하므로, 이러한 증분적 접근은 계산량을 획기적으로 줄여 실시간 처리를 가능하게 한다.5

로봇이 미지의 환경을 탐사할 때, 맵의 최종 크기를 미리 알 수 없다. 고정된 크기의 배열로 맵을 표현하면 메모리 낭비가 심하거나, 로봇이 예상 범위를 벗어났을 때 대처할 수 없다. Voxblox는 이 문제를 해결하기 위해 Niessner 등이 제안한 Voxel Hashing 기법을 채택했다.5

Voxel Hashing의 원리는 다음과 같다.

이 구조는 Octomap에서 사용하는 옥트리(octree) 구조와 비교하여 다음과 같은 장점을 가진다.5

Voxblox는 TSDF와 ESDF를 각각 독립적인 ‘레이어(layer)’로 관리하며, 각 레이어는 자신만의 Voxel Hashing 구조를 가진다. 이를 통해 기하학 정보와 경로 계획용 거리 정보를 효율적으로 분리하여 관리할 수 있다.5

Voxblox의 설계 철학은 ‘읽기 쉽고 확장하기 쉬운 코드’를 우선시하면서도, 경로 계획이라는 명확한 목적을 달성하기 위한 성능 최적화를 포함한다.13 특히 주목할 만한 것은 데이터 통합기(integrator)의 성능이다.

이러한 최적화 덕분에 Voxblox는 대표적인 3D 매핑 라이브러리인 Octomap과 비교하여 상당한 성능 우위를 보인다. KITTI 데이터셋을 이용한 벤치마크 결과는 이를 명확히 뒷받침한다.13

표 1: VoxbloxOctomap 성능 비교 (KITTI 데이터셋 기반)

복셀 크기 (Voxel Size) Voxblox (fast integrator) Voxblox (simple integrator) Octomap  
5 cm 13.9 ms/scan 110.1 ms/scan 215.1 ms/scan  
10 cm 11.7 ms/scan 94.2 ms/scan 175.7 ms/scan  
20 cm 10.3 ms/scan 81.3 ms/scan 142.1 ms/scan  

출처:.13 Intel i7-4810MQ CPU @ 2.8 GHz 환경에서 측정된 평균 통합 시간(ms/scan). 값이 낮을수록 성능이 우수함.

이 표에서 볼 수 있듯이, Voxblox의 fast integrator는 모든 복셀 크기에서 Octomap보다 월등히 빠른 처리 속도를 보여준다. 20cm 복셀 크기에서는 10배 이상 빠른 성능을 기록하며, 이는 Voxblox가 실시간 애플리케이션에 얼마나 적합한지를 정량적으로 증명한다.

이러한 Voxblox의 성공은 목적 지향적 설계의 승리로 해석될 수 있다. Voxblox는 3D 재구성의 시각적 품질이나 모든 시나리오에 대응하는 범용성 대신, ‘자원이 제한된 MAV에서의 실시간 경로 계획’이라는 매우 구체적인 문제에 집중했다.5 이 명확한 목표는 시스템의 모든 설계 결정에 영향을 미쳤다. 예를 들어, GPU가 아닌 CPU 코어 하나에서도 실시간 동작이 가능하도록 설계한 점 6, Voxel Hashing을 통한 효율적인 메모리 관리, TSDF에서 ESDF로의 증분적 변환, 그리고 Fast Integrator를 통한 빠른 데이터 통합은 모두 이 목표를 달성하기 위한 필연적인 선택이었다. 그 결과,

VoxbloxOctomap과 같은 범용 라이브러리가 제공할 수 없는 특정 작업(궤적 최적화를 위한 ESDF 생성)에서의 압도적인 성능을 확보할 수 있었다.14 이는 로보틱스 시스템 설계에서 ‘모든 것을 적당히 잘하는’ 시스템보다 ‘필요한 한 가지를 매우 잘하는’ 시스템이 갖는 가치를 명확히 보여주는 사례라 할 수 있다.

Voxblox가 3D 공간의 기하학적 구조를 효율적으로 표현하는 데 성공했다면, Voxblox++는 그 위에 의미론적(semantic) 레이어를 추가하여 로봇의 환경 ‘이해’ 능력을 한 차원 높이려는 시도이다. 이 장에서는 Voxblox++가 어떻게 Voxblox의 기반 위에 객체 중심의 시맨틱 맵을 구축하는지, 그 핵심 목표와 파이프라인을 상세히 분석한다.

Voxblox++의 근본적인 목표는 로봇이 주변 환경을 단순한 장애물의 집합이 아닌, 개별적인 의미를 가진 객체들의 집합으로 인식하게 하는 것이다.1 이는 로봇이 “저기 있는 의자를 피해가라”는 수준을 넘어 “저기 있는 컵을 집어라”와 같은 고수준의 임무를 수행하기 위한 필수적인 단계이다.

이를 위해 Voxblox++는 기존의 기하학적 맵에 다음 두 가지 핵심 정보를 추가하고자 한다.2

  1. 시맨틱 클래스 (Semantic Class): 각 객체가 무엇인지(예: 의자, 테이블, 사람)를 식별한다.
  2. 인스턴스 ID (Instance ID): 같은 클래스에 속하더라도 개별 객체를 구분한다(예: 첫 번째 의자와 두 번째 의자).

Voxblox++의 중요한 특징 중 하나는 사전에 정의된 클래스의 객체들뿐만 아니라, 이전에 한 번도 본 적 없는 새로운 객체(unseen object-like instances)까지도 발견하고 3D 모델로 구축할 수 있는 능력을 목표로 한다는 점이다.1 이는 로봇이 완전히 새로운 환경에 처했을 때에도 강건하게 대처할 수 있는 일반화 능력을 부여하려는 시도이다. 결과적으로, Voxblox++가 생성하는 맵은 로봇의 안전한 항해(navigation)와 경로 계획뿐만 아니라, 잡기(grasping)나 조작(manipulation)과 같은 정교한 상호작용 계획에 직접적으로 사용될 수 있는 풍부한 정보를 담게 된다.1

Voxblox++는 RGB-D 카메라로부터 들어오는 연속적인 이미지 스트림과, 외부 SLAM 시스템(예: VINS-Mono, ROVIO)으로부터 추정된 카메라의 6-DoF 포즈를 입력으로 받아 동작한다.1 전체 파이프라인은 크게 세 단계로 구성된다.

각각의 새로운 RGB-D 프레임이 들어올 때마다, Voxblox++는 두 종류의 분할 작업을 병렬적으로 수행하여 3D 공간에 대한 초기 추정을 생성한다.1

이 두 분할 결과는 서로 교차(intersection)되어, 기하학적으로 의미 있으면서 동시에 시맨틱 정보가 부여된 ‘표면 마스크(surface mask)’를 생성하는 데 사용된다.16

프레임 단위로 생성된 수많은 3D 세그먼트들은 시간적으로 일관된 객체로 통합되어야 한다. 데이터 연관 단계는 바로 이 문제를 해결한다. 즉, 현재 프레임에서 관찰된 인스턴스 세그먼트들을 이전 프레임들로부터 구축된 전역 맵(global map) 상의 객체 인스턴스들과 연결(matching)하는 과정이다.1

이 과정은 현재 프레임의 3D 세그먼트와 전역 맵에 이미 존재하는 객체들 간의 유사도를 측정하여 최적의 쌍을 찾는 방식으로 이루어진다. 유사도는 기하학적 형태, 크기, 위치, 그리고 시맨틱 클래스 정보 등을 종합적으로 고려하여 계산될 수 있다. 이 데이터 연관 전략을 통해 로봇은 객체를 여러 프레임에 걸쳐 지속적으로 추적하고, 그 형태를 점진적으로 정밀하게 재구성할 수 있게 된다.1

데이터 연관이 완료되면, 각 프레임에서 얻어진 관측 정보(표면 형상, 시맨틱 클래스, 인스턴스 ID)는 최종적으로 전역 맵에 통합된다.1

Voxblox++는 이 전역 맵의 기반으로 Voxblox의 TSDF 볼륨을 사용한다.

이를 위해 기존 Voxblox의 복셀 구조가 확장된다. 원래의 Voxblox 복셀은 TSDF 거리 값과 가중치 정보만을 저장했지만, Voxblox++의 복셀은 여기에 추가적으로 시맨틱 클래스 ID객체 인스턴스 ID를 저장할 수 있는 필드를 가진다.2 새로운 관측이 들어오면,

Voxblox의 가중 평균 업데이트 방식과 유사하게, 각 복셀의 시맨틱 및 인스턴스 정보도 증분적으로 융합된다. 예를 들어, 특정 복셀에 대해 ‘의자’라는 관측이 여러 번 들어오면 해당 복셀이 ‘의자’일 신뢰도가 높아지는 방식이다.

이러한 통합 과정을 통해, Voxblox++는 기하학적으로 정확하면서도 각 복셀이 어떤 객체 인스턴스에 속하는지를 명확히 아는 풍부한 3D 시맨틱 맵을 점진적으로 구축하게 된다.

Voxblox++는 완전히 새로운 시스템이 아니라, 기존의 Voxblox 라이브러리를 확장하여 구현되었다.2 이는

Voxblox가 제공하는 효율적인 복셀 해싱, TSDF/ESDF 관리, ROS 통합 등의 장점을 그대로 계승하면서, 그 위에 시맨틱 레이어를 추가하는 현명한 전략이다.

소스코드는 주로 C++로 작성되었으며, ETH Zurich의 ASL(Autonomous Systems Lab)에서 개발하여 GitHub를 통해 오픈소스로 공개하였다.8 이 덕분에 많은 연구자들이

Voxblox++를 기반으로 다양한 연구를 수행할 수 있었다. 예를 들어, voxblox-plus-pro와 같은 파생 프로젝트는 Voxblox++의 2D 인식 부분을 최신 딥러닝 모델인 YOLOACT로 교체하여 성능을 개선하려는 시도를 보여준다.17

Voxblox++의 아키텍처는 2D 지능의 3D 세계로의 취약한 투영(The Brittle Projection of 2D Intelligence into a 3D World) 이라는 관점에서 해석될 수 있다. Voxblox++가 개발되던 시점에는 3D 포인트 클라우드를 직접 처리하는 3D 인식 기술보다, 이미지 기반의 2D 딥러닝 인식 기술이 훨씬 더 발전하고 성숙해 있었다. 따라서 Voxblox++의 설계자들은 이 강력한 2D 인식 능력을 최대한 활용하는 합리적인 선택을 했다. 즉, 2D 분할 결과를 깊이 정보와 결합하여 3D 공간으로 ‘리프팅(lifting)’하고, 이를 Voxblox의 정교한 기하학적 맵에 ‘덧칠’하는 방식을 채택한 것이다.1

하지만 이러한 설계는 구조적인 취약점을 내포하고 있다. 이 아키텍처는 2D 인식기가 만들어내는 모든 종류의 오류, 노이즈, 불확실성을 아무런 여과 없이 3D 맵으로 그대로 전파시키는 통로 역할을 한다. 2D 이미지 상에서의 작은 오분할(over/under-segmentation)이나 경계의 불확실성이 3D 공간으로 투영될 때는 기하학적 왜곡과 결합하여 훨씬 더 큰 오류로 증폭될 수 있다.15

Voxblox++는 3D 공간의 기하학적 일관성이나 객체의 물리적 제약 조건을 활용하여 2D 인식 단계의 오류를 수정하는 피드백 루프(feedback loop)가 부재하다. 결국, 전체 시스템의 성능 상한선이 전적으로 입력으로 사용되는 2D 인식기의 성능에 의해 결정되는 한계를 갖게 된다. 이 본질적인 문제는 다음 장에서 다룰 Voxblox++의 구체적인 한계점들의 근본적인 원인이 된다.

Voxblox++는 시맨틱 매핑 분야에서 중요한 진일보를 이뤘지만, 동시에 후속 연구들이 해결해야 할 명확한 기술적 한계들을 드러냈다. 이 장에서는 Voxblox++의 핵심적인 약점들을 심층적으로 분석하고, 이러한 한계가 발생하는 근본적인 원인을 탐구한다.

Voxblox++가 직면한 가장 심각한 문제 중 하나는 시맨틱 일관성(semantic consistency)의 부재이다. 시스템은 초기 2D-3D 투영 과정에서 발생하는 기하학적 과분할(geometric over-segmentation), 즉 하나의 객체가 여러 개의 작은 조각으로 나뉘는 문제를 해결하기 위해, 기하학적으로 인접한 3D 세그먼트들을 반복적으로 병합하는 전략을 사용한다.15

그러나 이 병합 과정에는 치명적인 결함이 있다. Voxblox++는 두 세그먼트를 병합할지 여부를 결정할 때, 그들의 시맨틱 레이블이 동일한지를 확인하는 강력한 메커니즘을 갖추고 있지 않다.16 그 결과, 단순히 공간상에서 가깝다는 이유만으로 의미론적으로는 전혀 다른 두 객체가 하나의 인스턴스로 잘못 합쳐지는 오류가 빈번하게 발생한다. 예를 들어, 벽에 붙어 있는 침대를 매핑하는 경우, 2D 분할의 작은 오류로 인해 벽의 일부가 침대의 일부로 잘못 인식될 수 있다.

Voxblox++는 이 잘못 인식된 벽 조각과 실제 침대 조각이 기하학적으로 가깝기 때문에, 두 세그먼트가 같은 객체라고 판단하고 병합해버린다.16 최종적으로 생성된 맵에는 벽을 침범한 기괴한 형태의 ‘침대’ 객체가 남게 된다. 이는 로봇이 객체의 정확한 형태와 경계를 알아야 하는 조작(manipulation)과 같은 작업에서 심각한 문제를 야기할 수 있다.

Voxblox++의 아키텍처는 2D 파놉틱 분할(panoptic segmentation) 결과에 전적으로 의존하기 때문에, 2D 인식 단계에서 발생하는 노이즈에 매우 취약하다.15 2D 분할 마스크의 작은 부정확성이 3D 공간으로 투영되면서 증폭되어, 최종 3D 맵의 품질을 크게 저하시킨다.

실제 실험 결과들은 Voxblox++가 특정 종류의 객체에 대해 체계적으로 오류를 범하는 경향을 보여준다. 예를 들어, 책장과 같이 복잡한 내부 구조를 가진 객체는 종종 여러 개의 분리된 객체로 잘못 인식되거나(과분할, over-segmentation), 일부가 누락되어 불완전하게 분할(미분할, under-segmentation)된다.16 반대로, 테이블이나 바닥과 같이 크고 평평한 객체는 표면의 작은 노이즈나 조명 변화로 인해 여러 조각으로 나뉘어 인식되는 경향이 있다.16 이러한 오류들은 근본적으로 2D 분할 마스크의 경계가 3D 객체의 실제 경계와 완벽하게 일치하지 않기 때문에 발생하며, Voxblox++는 이러한 불일치를 보정하거나 완화할 효과적인 메커니즘을 갖추고 있지 않다.

여러 프레임에 걸쳐 관찰된 3D 객체(또는 객체 조각)의 최종 시맨틱 레이블과 인스턴스 ID를 결정하는 과정에서도 Voxblox++는 단순하고 취약한 방식을 사용한다. Voxblox++는 ‘프레임 카운팅(frame counting)’이라는 기법을 사용하는데, 이는 특정 3D 세그먼트에 대해 여러 프레임에서 관찰된 레이블들 중 가장 빈번하게 나타난 레이블을 최종 레이블로 선택하는 방식이다.16

이 방식은 직관적이지만 다음과 같은 심각한 문제점들을 내포하고 있다.16

  1. 관점 차이 무시: 로봇의 시점이 바뀜에 따라 2D 분할의 정확도와 노이즈 수준은 크게 달라질 수 있다. 특정 각도에서는 매우 부정확한 예측이 나올 수 있는데, 프레임 카운팅 방식은 이러한 예측의 신뢰도 차이를 전혀 고려하지 않고 오직 빈도수만을 계산한다.
  2. 상관관계 무시: 각 3D 세그먼트의 레이블을 완전히 독립적으로 결정한다. 예를 들어, ‘테이블’로 레이블링된 세그먼트 바로 위에 있는 세그먼트는 ‘컵’일 확률이 높다는 식의 공간적, 의미론적 상관관계를 전혀 활용하지 않는다.
  3. 오류 전파 및 고착화: 만약 노이즈가 심한 2D 예측이 우연히 여러 프레임에 걸쳐 반복적으로 관찰된다면, 이 잘못된 예측이 다수결 원칙에 따라 최종 레이블로 확정되어 버린다. 한번 잘못된 레이블이 부여되면 이를 바로잡기가 매우 어렵다.

결과적으로, 프레임 카운팅 방식은 시시각각 변하는 관측의 질과 객체 간의 맥락 정보를 무시함으로써, 노이즈에 강건하지 못하고 종종 부정확한 시맨틱 맵을 생성하는 원인이 된다.

Voxblox++의 이러한 질적 한계는 정량적 평가에서도 명확하게 드러난다. Voxblox++의 단점들을 개선하기 위해 제안된 후속 연구들과의 비교 평가는 Voxblox++의 성능적 한계를 객관적으로 보여준다. 시맨틱 분할 및 인스턴스 분할의 정확도를 측정하는 주요 지표들, 예를 들어 mAP(mean Average Precision)나 PQ(Panoptic Quality) 등에서 Voxblox++는 최신 기법들에 비해 현저히 낮은 점수를 기록한다.16

특히 주목할 점은, 이러한 성능 격차가 실제 로봇 환경을 더 잘 모사하는 조건에서 더욱 커진다는 것이다. 연구실 환경에서 얻을 수 있는 완벽한 Ground Truth 궤적을 사용했을 때보다, 실제 SLAM 시스템이 추정하여 약간의 오차를 포함하는 궤적을 사용했을 때 Voxblox++의 성능 저하가 훨씬 더 심각하게 나타난다.15 SceneNN 데이터셋을 이용한 한 연구에서는 SLAM 추정 포즈를 사용했을 때, 제안된 방법이 Voxblox++보다 mAP50 기준으로 41.4 대 25.7이라는 압도적인 성능 차이를 보였다.16 이는

Voxblox++가 이상적인 조건에서는 어느 정도 작동하지만, 실제 로봇이 마주하는 불확실성과 노이즈가 존재하는 현실 세계에서는 그 성능이 급격히 저하됨을 시사한다.

이러한 Voxblox++의 한계들은 단일 알고리즘의 정교함 부족 문제를 넘어, 시스템 아키텍처 수준의 근본적인 문제에서 기인한다. 이는 피드백 없는 파이프라인의 필연적 실패(The Inevitable Failure of a Feed-forward Pipeline) 로 요약될 수 있다. Voxblox++의 전체 정보 흐름은 2D 인식 -->> 3D 투영 -->> 데이터 연관 -->> 맵 통합이라는 엄격한 단방향(feed-forward) 파이프라인을 따른다. 파이프라인의 후반부, 즉 3D 맵 레벨에서 생성된 고차원적인 정보(예: “이 객체는 기하학적으로 완결된 형태를 가져야 한다” 또는 “벽과 침대는 서로 다른 객체이므로 병합될 수 없다”)가 파이프라인의 전반부(2D 인식 또는 데이터 연관)로 다시 전달되어 초기 추정을 수정하거나 정제하는 피드백 루프(feedback loop) 가 존재하지 않는다.

예를 들어, 2D 인식기가 벽의 일부를 침대로 잘못 인식하는 오류가 발생했다고 가정해보자. 이 오류는 아무런 제지 없이 3D 공간으로 투영된다. 데이터 연관 및 통합 단계에서 Voxblox++는 이 잘못된 세그먼트가 기하학적으로 침대와 가깝다는 이유만으로 병합을 시도할 뿐, “벽과 침대는 시맨틱적으로 다르다”는 제약 조건을 활용하여 이 병합을 거부할 수 없다.16 3D 레벨에서 명백히 비상식적인 결과를 발견하더라도, 이를 초기 2D 인식 단계에 알려 “이 영역을 다시 확인하라”고 요청할 메커니즘이 부재한 것이다.

이러한 아키텍처적 한계는 왜 후속 연구들이 3D 공간상에서 객체들 간의 관계를 그래프(graph)로 모델링하고, 그래프 최적화(graph optimization)와 같은 기법을 통해 전역적인 일관성(global consistency)을 강제하는 방향으로 발전했는지를 명확하게 설명해준다.15

Voxblox++의 접근법이 “일단 3D로 올리고 보자”라면, 성공적인 후속 연구들은 “3D 공간의 맥락을 고려하여 의미가 맞는지 확인하며 통합하자”는, 보다 정교하고 양방향적인 접근법으로 전환한 것이다.

VoxbloxVoxblox++가 제시한 프레임워크와 그 명확한 한계는 역설적으로 3D 매핑 연구 커뮤니티에 풍부한 연구 주제를 제공하는 기폭제가 되었다. 이 장에서는 Voxblox 계열의 기술이 어떻게 다양한 방향으로 진화했는지, 그리고 Voxblox++의 단점을 극복하기 위해 어떤 대안적 접근법들이 등장했는지를 살펴본다. Voxblox에서 시작된 기술적 흐름이 속도, 정확도, 전역 일관성, 시맨틱 일관성 등 다양한 문제를 해결하기 위해 어떻게 분화하고 발전했는지를 한눈에 파악하기 위해 다음 표를 먼저 제시한다.

표 2: Voxblox 계열 프레임워크 비교

프레임워크 주요 목표 핵심 기술 처리 장치 주요 공헌
Voxblox 실시간 경로 계획을 위한 기하학적 맵 TSDF, 증분적 ESDF, Voxel Hashing CPU MAV를 위한 효율적인 CPU 기반 실시간 ESDF 맵 생성 5
Voxblox++ 객체 중심 시맨틱 매핑 기하학적-시맨틱 분할 융합, 데이터 연관 CPU Voxblox에 인스턴스 인지 시맨틱 레이어 추가 1
Voxfield ESDF 정확도 및 생성 속도 개선 비투영(Non-projective) TSDF, 완전 유클리드 거리 CPU Voxblox의 투영 거리 오차를 제거하여 ESDF 정확도 향상 12
nvblox 고해상도 매핑을 위한 GPU 가속 GPU 기반 병렬 TSDF/ESDF 통합 GPU Voxblox의 연산을 GPU로 가속하여 처리 속도를 수십 배 향상 12
Voxgraph 전역적 일관성을 갖춘 대규모 매핑 서브맵 기반 포즈 그래프 최적화 (PGO) CPU Voxblox 서브맵들을 이용해 전역적으로 일관된 대규모 맵 구축 19

Voxblox의 기하학적 표현 자체의 한계와 CPU 기반 처리의 성능 한계를 극복하려는 연구들이 활발히 진행되었다.

VoxbloxVoxblox++는 기본적으로 지역 맵(local map)을 생성하는 데 초점을 맞추고 있어, 로봇이 넓은 영역을 장시간 탐사할 때 발생하는 누적 오차(drift) 문제에 취약하다. 이 문제를 해결하기 위해 Voxblox 생태계는 전역 일관성(global consistency)을 확보하는 방향으로 확장되었다.

Voxblox++가 드러낸 가장 큰 약점인 시맨틱 일관성 부재 문제를 해결하기 위한 연구들이 다수 등장했다. 이 연구들의 공통적인 접근 방식은 3D 공간에서의 전역적인 맥락 정보를 활용하여 지역적인(per-frame) 인식 오류를 바로잡는 것이다.

한 주요 연구 흐름은 Voxblox++가 독립적으로 다루었던 3D 세그먼트(논문에서는 ‘슈퍼포인트(super-point)’로 지칭)들을 노드로 하는 그래프를 구축하고, 이 그래프 상에서 최적화를 수행하는 것이다.15 이 그래프의 엣지는 슈퍼포인트들 간의 공간적 인접성이나 의미론적 유사성과 같은 관계를 나타낸다. 예를 들어, “인접한 두 슈퍼포인트는 같은 인스턴스에 속할 가능성이 높다” 또는 “의자(chair) 슈퍼포인트는 테이블(table) 슈퍼포인트 근처에 나타날 가능성이 높다”와 같은 사전 지식을 제약 조건으로 모델링할 수 있다. 그 후, 그래프 최적화 알고리즘을 통해 모든 제약 조건을 가장 잘 만족시키는 방향으로 각 슈퍼포인트의 시맨틱 레이블과 인스턴스 ID를 전역적으로 조율하고 정제(refine)한다. 이 접근법은 Voxblox++의 단순한 프레임 카운팅 방식과 달리, 객체 간의 맥락 정보를 적극적으로 활용함으로써 잘못된 병합 및 분할 문제를 크게 개선하고, 훨씬 더 일관되고 정확한 시맨틱 맵을 생성할 수 있다.15

Voxblox++와 같은 초기 시맨틱 매핑 시스템들은 대부분 결정론적(deterministic)으로 작동한다. 즉, 2D 인식 결과가 주어지면 이를 ‘사실’로 받아들이고 맵에 통합하며, 그 예측이 얼마나 신뢰할 수 있는지에 대한 정보는 폐기된다. 이러한 한계를 극복하기 위해 매핑 과정의 불확실성을 명시적으로 모델링하고 정량화하려는 연구들이 등장했다.

이러한 진화 과정을 종합해 볼 때, VoxbloxVoxblox++문제 정의로서의 프레임워크(Framework as a Problem Definition) 라는 중요한 유산을 남겼다고 평가할 수 있다. 이들 프레임워크는 그 자체로 완벽하고 최종적인 솔루션이라기보다는, 로보틱스 매핑 커뮤니티가 앞으로 해결해야 할 명확한 문제들을 정의하고, 이를 검증할 수 있는 견고한 플랫폼 또는 벤치마크의 역할을 수행했다. Voxblox가 제시한 기하학적 매핑의 한계점들은 각각 Voxfield(ESDF 정확도 부족), nvblox(CPU 성능 한계), voxgraph(전역 일관성 부재)와 같은 후속 연구들의 탄생을 직접적으로 이끌었다.12 마찬가지로,

Voxblox++가 드러낸 시맨틱 매핑의 한계점들, 즉 시맨틱 일관성 부재와 불확실성 미고려 문제는 그래프 최적화 기반의 매핑 시스템과 Voxeland와 같은 확률적 매핑 시스템의 등장을 촉발했다.15 결국 성공적인 연구 프레임워크의 진정한 가치는 그것이 모든 문제를 해결하는 데 있는 것이 아니라, 커뮤니티가 다음 단계에 집중해야 할 도전 과제들을 명확하게 수면 위로 드러내고, 이를 해결하기 위한 연구의 로드맵을 제시하는 데 있음을 Voxblox 계열의 발전사는 명확히 보여준다.

본 보고서는 Voxblox++를 중심으로, 그 기술적 뿌리가 된 Voxblox부터 시작하여 시맨틱 매핑으로의 확장 과정, 그리고 그 과정에서 드러난 명백한 한계와 이를 극복하기 위한 후속 연구들의 발전 계보를 심층적으로 추적하고 분석했다.

Voxblox++의 기술사적 의의는, 실시간 기하학적 매핑의 대표 주자였던 Voxblox의 견고한 기반 위에 3D 공간에 객체 수준의 시맨틱 정보를 통합하려는 선구적인 시도였다는 점에서 찾을 수 있다. 이는 로봇 지능의 패러다임이 단순히 ‘어디로 갈 수 있는가(navigability)’의 문제를 넘어, 환경과 ‘무엇을 할 수 있는가(interactability)’의 문제로 나아가는 중요한 전환점에서 교량 역할을 수행했음을 의미한다. Voxblox++는 기하학과 시맨틱을 결합하는 통합 프레임워크를 구체적으로 제시하고 이를 오픈소스로 공개함으로써, 이후 수많은 후속 연구들이 등장할 수 있는 귀중한 발판을 마련했다는 점에서 큰 학술적, 실용적 공헌을 했다.2

그러나 Voxblox++는 동시에 명확한 한계를 통해 2D-to-3D 시맨틱 리프팅(lifting) 방식이 가진 근본적인 도전 과제들을 수면 위로 드러냈다. 3D 공간의 맥락을 고려하지 않는 세그먼트 병합으로 인한 시맨틱 일관성 부재, 2D 인식기의 오류를 그대로 증폭시키는 노이즈 취약성, 그리고 관측의 질과 객체 간의 상관관계를 무시하는 단순한 프레임 카운팅 기반 레이블링 방식Voxblox++가 강건하고 신뢰성 있는 시맨틱 맵을 생성하는 데 있어 넘어야 할 높은 장벽이었다.15 이러한 한계는 특정 알고리즘의 미흡함을 넘어, 3D 레벨의 정보가 2D 인식 단계로 피드백되지 않는 단방향 파이프라인이라는 아키텍처 수준의 문제에서 기인했다.

역설적이게도, Voxblox++가 명확하게 보여준 이러한 한계점들은 로보틱스 매핑 커뮤니티에 해결해야 할 다음 문제들을 제시하는 역할을 했다. Voxblox의 기하학적 부정확성과 성능 한계가 Voxfieldnvblox의 탄생을 이끌었듯이, Voxblox++의 시맨틱 일관성 부재는 3D 공간의 전역적 관계를 모델링하는 그래프 기반 최적화 기법의 발전을 촉진했다. 또한, Voxblox++의 결정론적 접근법의 한계는 Voxeland와 같이 불확실성을 정량적으로 다루는 확률적 매핑 프레임워크의 필요성을 부각시켰다. 이처럼 VoxbloxVoxblox++는 정답이 아닌, 더 나은 질문을 던진 프레임워크로서 그 유산을 남겼다.

미래의 3D 시맨틱 매핑 기술은 Voxblox++가 제시했던 방향성을 계승하되, 그 한계를 극복하는 방향으로 진화할 것이 자명하다. 이는 단순히 시맨틱 레이블을 맵에 추가하는 것을 넘어, 전역적 기하학 및 시맨틱 일관성 확보, 사람이나 다른 로봇과 같은 동적 객체에 대한 강건한 대응 능력, 센서 노이즈와 인식 오류를 포함하는 불확실성의 명시적 처리, 그리고 객체 간의 기능적, 물리적 관계를 이해하는 더 깊은 수준의 장면 이해(scene understanding)를 통합하는 방향으로 나아갈 것으로 전망된다.3

Voxblox++는 그 여정의 중요한 시작점 중 하나로 기억될 것이다.

  1. (PDF) Volumetric Instance-Aware Semantic Mapping and 3D Object Discovery, 8월 9, 2025에 액세스, https://www.researchgate.net/publication/331485448_Volumetric_Instance-Aware_Semantic_Mapping_and_3D_Object_Discovery
  2. Volumetric Instance-Aware Semantic Mapping and 3D Object Discovery - GitHub Pages, 8월 9, 2025에 액세스, https://jenjenchung.github.io/anthropomorphic/Papers/Grinvald2019volumetric.pdf
  3. Semantic Mapping for Mobile Robots in Indoor Scenes: A Survey - MDPI, 8월 9, 2025에 액세스, https://www.mdpi.com/2078-2489/12/2/92
  4. Autonomous Exploration and Semantic Updating of Large-Scale Indoor Environments with Mobile Robots - arXiv, 8월 9, 2025에 액세스, https://arxiv.org/html/2409.15493v2
  5. Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning - Helen Oleynikova, 8월 9, 2025에 액세스, https://helenol.github.io/publications/iros_2017_voxblox.pdf
  6. [1611.03631] Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning - arXiv, 8월 9, 2025에 액세스, https://arxiv.org/abs/1611.03631
  7. ethz-asl/voxblox: A library for flexible voxel-based mapping, mainly focusing on truncated and Euclidean signed distance fields. - GitHub, 8월 9, 2025에 액세스, https://github.com/ethz-asl/voxblox
  8. ethz-asl/voxblox-plusplus: A volumetric object-level semantic mapping framework. - GitHub, 8월 9, 2025에 액세스, https://github.com/ethz-asl/voxblox-plusplus
  9. Volumetric Instance-Aware Semantic Mapping and 3D Object Discovery - arXiv, 8월 9, 2025에 액세스, https://arxiv.org/abs/1903.00268
  10. Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning, 8월 9, 2025에 액세스, https://huggingface.co/papers/1611.03631
  11. Voxblox: Building 3D Signed Distance Fields for Planning - Research Collection - ETH Zürich, 8월 9, 2025에 액세스, https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/128028/eth-50485-01.pdf
  12. nvblox: GPU-Accelerated Incremental Signed Distance Field Mapping - arXiv, 8월 9, 2025에 액세스, https://arxiv.org/html/2311.00626v2
  13. Performance - voxblox documentation - Read the Docs, 8월 9, 2025에 액세스, https://voxblox.readthedocs.io/en/latest/pages/Performance.html
  14. VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data - MDPI, 8월 9, 2025에 액세스, https://www.mdpi.com/1424-8220/22/3/1296
  15. Volumetric Semantically Consistent 3D Panoptic Mapping - arXiv, 8월 9, 2025에 액세스, https://arxiv.org/html/2309.14737v2
  16. Volumetric Semantically Consistent 3D Panoptic Mapping, 8월 9, 2025에 액세스, https://arxiv.org/pdf/2309.14737
  17. DeepDuke/voxblox-plus-pro - GitHub, 8월 9, 2025에 액세스, https://github.com/DeepDuke/voxblox-plus-pro
  18. Voxfield: Non-Projective Signed Distance Fields for Online Planning and 3D Reconstruction, 8월 9, 2025에 액세스, https://www.ipb.uni-bonn.de/wp-content/papercite-data/pdf/pan2022iros.pdf
  19. ethz-asl/voxgraph: Voxblox-based Pose graph optimization - GitHub, 8월 9, 2025에 액세스, https://github.com/ethz-asl/voxgraph
  20. Voxfield: Non-Projective Signed Distance Fields for Online Planning and 3D Reconstruction - SciSpace, 8월 9, 2025에 액세스, https://scispace.com/pdf/voxfield-non-projective-signed-distance-fields-for-online-18jrivw0.pdf
  21. Voxfield: Non-Projective Signed Distance Fields for Online Planning and 3D Reconstruction, 8월 9, 2025에 액세스, https://www.researchgate.net/publication/366610904_Voxfield_Non-Projective_Signed_Distance_Fields_for_Online_Planning_and_3D_Reconstruction
  22. Mapping for online path planning and 3D reconstruction, 8월 9, 2025에 액세스, https://ethz.ch/content/dam/ethz/special-interest/baug/igp/photogrammetry-remote-sensing-dam/documents/pdf/Student_Theses/MA_YuePan.pdf
  23. Voxeland: Probabilistic Instance-Aware Semantic Mapping with Evidence-based Uncertainty Quantification* - arXiv, 8월 9, 2025에 액세스, https://arxiv.org/html/2411.08727v1
  24. Semantic Mapping in Indoor Embodied AI – A Comprehensive Survey and Future Directions, 8월 9, 2025에 액세스, https://arxiv.org/html/2501.05750v1
  25. Object-Level Semantic Map Construction for Dynamic Scenes - MDPI, 8월 9, 2025에 액세스, https://www.mdpi.com/2076-3417/11/2/645