XREAL
Vision
💡

XR 디바이스가 세상을 이해하는 방법

개요

여러분은 XR 디바이스로 게임이나 다양한 콘텐츠를 즐기면서, 이 기기들이 어떻게 내 주변 환경을 인식하고, 움직임에 맞춰 화면을 자연스럽게 조정하는지 궁금해 해 보신 적 있으신가요? 예를 들어, AR 글래스를 쓰고 방 안을 걸어다니며 가상 오브젝트와 상호작용하거나, MR 헤드셋의 패스쓰루 모드를 통해 현실 공간을 보면서 가상 환경을 덧씌운 채 고개를 돌려 주변을 탐색하는 장면을 떠올려 보세요. 이러한 것들은 어떻게 가능한 것 일까요?
이를 가능하게 하는 기저에는 XR 디바이스의 3차원 공간 인지 기술이 있습니다. 이 기술의 두 가지 핵심 요소는 다음과 같습니다:
1.
깊이 카메라 (Depth Camera): 깊이 카메라는 주변의 거리와 구조를 측정하여 XR 디바이스가 3차원 공간을 정확하게 인식할 수 있게 도와줍니다. 덕분에 가상 객체를 현실 세계의 특정 위치에 정확히 배치하거나, 실제 환경의 깊이 정보를 활용해 상호작용하는 것도 가능합니다. 예를 들어, AR 글래스를 쓰고 책상 위에 가상의 3D 모델을 올려놓고 조작할 수 있는 것이죠.
2.
VIO (Visual-Inertial Odometry): VIO는 카메라로 얻은 시각 정보와 IMU(관성 측정 장치) 데이터를 결합하여, 실시간으로 사용자의 위치와 움직임을 정밀하게 추정하는 기술입니다. 덕분에 사용자가 이동하거나 고개를 돌릴 때 디바이스가 그에 맞춰 가상 환경의 화면을 자연스럽게 조정해 줍니다. 게임 속에서 플레이어가 고개를 돌리거나 걸어다닐 때 화면이 즉각적으로 반응하는 것도 VIO 덕분이죠.
이 칼럼에서는 XR 디바이스의 핵심 기술인 '깊이 카메라'와 'VIO'를 중심으로, 어떻게 현실 세계와 가상 콘텐츠를 매끄럽게 통합해 몰입감 있는 경험을 제공하는지 살펴보겠습니다.

깊이 카메라 (Depth Camera)

깊이 카메라의 원리와 기술적 배경

깊이 카메라는 XR 디바이스에서 매우 중요한 역할을 하며, 현실 공간을 3차원적으로 이해하도록 돕습니다. 깊이 카메라의 작동 원리는 크게 패시브 스테레오(Passive Stereo), 액티브 스테레오(Active Stereo), 구조화 광(Structured Light), ToF(Time of Flight) 방식으로 나뉩니다. 각 방식은 장단점이 다르며, 다양한 XR 디바이스에서 목적에 맞게 활용됩니다.

깊이 카메라의 다양한 방식

패시브 스테레오(Passive Stereo)

패시브 스테레오 방식은 주변의 자연광을 이용하여 두 카메라 간의 시차(Disparity)를 분석해 거리 정보를 추출하는 방식입니다. 이 방식은 외부 조명이 충분할 때 높은 성능을 보이며, 조명 장치를 추가할 필요가 없어 구현 비용이 낮은 편입니다. 하지만 어두운 환경이나 텍스처가 적은 평면에서는 시차 정보를 얻기 어려워 정확도가 떨어질 수 있다는 단점이 있습니다.

액티브 스테레오(Active Stereo)

액티브 스테레오 방식은 적외선 패턴을 물체에 투사하여 두 카메라가 시차를 계산하는 방식입니다. 어두운 환경에서도 깊이 정보를 정확하게 얻을 수 있어 패시브 스테레오의 한계를 보완합니다. 또한 규칙적인 패턴을 투사하기 때문에 텍스처가 부족한 표면에서도 안정적으로 시차를 계산할 수 있습니다. 다만, 적외선 프로젝터가 필요하여 장치의 복잡성과 비용이 증가하는 단점이 있습니다. 이 방식은 패시브 스테레오에 비해 높은 정밀도를 가진 깊이값을 얻을 수 있기 때문에 XR 디바이스에서 주로 사용되는 방식입니다.
위 그림은 패시브 스테레오와 액티브 스테레오의 차이를 보여주는 그림입니다. 패시브 스테레오(a)의 경우 어두운 환경에서 시차정보를 얻기 어렵기 때문에 (c)와 같이 낮은 품질의 깊이 값이 얻어집니다. 반면에 액티브 스테레오는 (b)에서와 같이 적외선 패턴을 투사하여 두 카메라에서 이를 기반으로 시차를 계산하기 때문에 (d)와 같이 안정적으로 깊이값을 얻을 수 있습니다.

구조화 광(Structured Light)

구조화 광 방식은 위 그림과 같이 적외선 프로젝터가 특정 패턴(주로 격자 무늬)을 물체에 투사하고, 카메라가 변형된 패턴을 촬영하여 거리 정보를 추출합니다. 이 방식은 패턴의 왜곡 정도를 분석하여 물체와의 거리를 계산하기 때문에, 매우 정밀한 깊이 측정이 가능합니다. 특히 고정밀도를 요구하는 제조 및 의료 분야(제품 검사 및 의료용 3D 스캐너)에서 많이 사용됩니다. 다만, 빛이 잘 반사되지 않는 표면이나 반사율이 높은 표면에서는 패턴이 제대로 반사되지 않아 정확한 깊이 정보를 얻기 어려울 수 있고, 거리가 멀면 특정 패턴이 옅어지기 때문에 측정 가능 거리가 비교적 짧기 때문에 XR 기기에 주로 이용되는 방식은 아닙니다.

ToF(Time of Flight)

ToF 방식은 적외선 빛을 물체에 발사한 후, 반사되어 돌아오는 시간을 측정하여 거리 정보를 계산하는 방식입니다. 빛이 왕복하는 데 걸리는 시간을 측정하기 때문에 매우 빠르게 거리 정보를 얻을 수 있어 반응 속도가 중요시되는 XR 디바이스에서 자주 사용됩니다. ToF 방식은 외부 조명에 영향을 적게 받고, 거리 측정 범위가 넓다는 장점이 있지만, 장비의 복잡성과 비용이 다소 높은 편입니다.

학습 기반의 스테레오 비전: Neural Stereo

최근에는 뉴럴 스테레오(Neural Stereo), 즉 학습 기반의 스테레오 비전 알고리즘이 주목받고 있습니다. 이 방식은 딥러닝 모델을 활용해 두 이미지 간의 복잡한 시차 관계를 학습하고 예측하여 더 정밀한 깊이 정보를 생성합니다. 뉴럴 스테레오 방식은 방대한 양의 데이터로 학습되어 다양한 환경에서 고도의 정확도를 제공하며, 일반적인 스테레오 비전 방식으로는 어려운 얇은 객체나 복잡한 표면도 효과적으로 인식할 수 있습니다.
뉴럴 스테레오 방식에는 다음과 같은 기술 요소들이 포함됩니다:
딥러닝 기반의 시차 추정 모델: CNN(Convolutional Neural Network) 등의 딥러닝 모델을 사용해 이미지 간의 시차를 예측합니다. 이러한 모델은 수천, 수만 개의 데이터셋으로 학습되어 다양한 환경에서 정확한 시차 정보를 제공합니다.
비정형 환경에 대한 적응성: 뉴럴 스테레오 방식은 복잡한 표면, 얇은 객체, 또는 텍스처가 거의 없는 장면에서도 정밀한 깊이 추정을 가능하게 해 주며, 기존 스테레오 방식의 한계를 극복합니다.
뉴럴 스테레오 방식은 위 그림과 같이 정밀한 깊이값을 제공할 수 있지만 높은 GPU 성능을 요구하기 때문에 아직까지는 XR 디바이스 등에 사용되기에는 무리가 있습니다.

XR 디바이스에서 깊이 카메라의 활용

XR 디바이스에서 깊이 카메라의 중요한 역할 중 하나는 현실 공간의 3차원 인식입니다. 이를 통해 사용자가 주변 환경과 가상 콘텐츠를 자연스럽게 연결할 수 있도록 할 수 있죠. 예를 들어, 사용자가 AR 글래스를 착용하고 책상 위에 가상의 3D 모델을 배치하고 싶다고 할 때를 상상해보세요. 깊이 카메라는 책상의 위치와 높이를 정확히 파악하여 가상 모델이 마치 실제 책상 위에 놓인 것처럼 자연스럽게 그 위치에 고정되도록 합니다. 이렇게 하면 사용자는 가상의 객체가 현실의 일부인 것처럼 느끼게 되어 그렇지 않을때와 비교하여 더 몰입감 있는 경험을 할 수 있습니다.
또 다른 예로 깊이 카메라는 벽과 가구를 인식하여 가상 객체가 실제 물체 뒤에 가려지도록 하는 오클루전(occlusion) 효과를 만들어 낼 수도 있습니다. 예를 들어, 방 안에 가상의 동물이 있다고 할 때, 깊이 카메라는 동물의 위치와 벽의 위치를 인식하여 동물이 벽 뒤로 이동하면 실제로 벽에 가려지도록 표현할 수 있습니다. 이처럼 가상 객체가 현실 공간의 물체와 자연스럽게 상호작용하게 되어 더욱 생생한 XR 경험이 가능해집니다.
사용자와의 상호작용에도 또한 깊이 카메라가 이용됩니다. 예를 들어, 사용자가 손을 들어 가상의 버튼을 누르려고 하면, 깊이 카메라는 손의 위치를 실시간으로 추적하여 버튼이 정확히 그 동작에 반응하도록 도와줍니다. 더 나아가, 사용자가 가상 객체에 가까이 다가가거나 멀어질 때도 깊이 카메라는 거리 변화를 감지하여 가상 객체의 크기나 위치를 자동으로 조정합니다. 이를 통해 사용자는 현실과 유사한 상호작용을 경험하며, XR 디바이스와의 연결이 훨씬 더 직관적으로 느껴질 수 있습니다.
이러한 응용을 통해 깊이 카메라는 XR 디바이스가 현실과 가상 환경을 매끄럽게 연결하고, 사용자가 몰입감 있는 경험을 할 수 있도록 중요한 역할을 수행합니다. 이를 통해 사용자들은 가상 객체와의 상호작용에서 더욱 자연스럽고 직관적인 경험을 즐길 수 있으며, 좀 더 몰입감 있는 경험을 제공하는 데 기여하고 있습니다.

VIO (Visual-Inertial Odometry)

VIO의 역할과 그 원리

VIO는 사용자와 가상 객체 간의 상호작용을 원활하게 만들기 위해 매우 중요한 기술입니다. 예를 들어, 위 그림처럼 사용자가 XR 디바이스를 착용하고 방 안을 돌아다닐 때, VIO는 사용자의 머리 위치와 방향의 6자유도 자세를 계속해서 추적합니다. 이렇게 하면 사용자가 가상 물체를 바라보거나 그 주위를 돌아볼 때, 가상 물체가 항상 정확한 위치에 나타나게 됩니다.
이 과정에서 VIO는 두 가지 중요한 정보를 사용합니다. 첫째, 카메라가 찍은 이미지 데이터입니다. 이 데이터는 주변의 물체와 공간에 대한 정보를 제공합니다. 둘째, IMU라는 장치에서 얻은 관성 데이터입니다. IMU는 사용자가 얼마나 빠르게 움직이고 있는지, 어떤 방향으로 회전하고 있는지를 측정합니다.
이 두 가지 정보가 함께 작용하여, VIO는 사용자의 위치와 움직임을 매우 정확하게 계산할 수 있습니다. 이렇게 계산된 위치는 가상 객체가 현실의 물체와 자연스럽게 상호작용할 수 있도록 도와줍니다. 이 과정을 쉽게 이해하기 위해, 단계별로 설명해 보겠습니다.
카메라가 보는 장면 분석
카메라는 매초 약 30장의 이미지를 찍습니다. 이때 VIO는 각 이미지에서 방 안의 고정된 특징을 찾습니다. 예를 들어, 방 안의 벽 모서리, 가구의 모서리 등 눈에 띄는 점들을 특징으로 잡아내죠. 그리고 이러한 특징이 시간에 따라 어떻게 움직이는지 추적합니다. 이렇게 하면, 카메라는 "내가 이 방 안에서 어디로 움직이고 있는지"에 대한 정보를 어느 정도 알 수 있습니다. 하지만 이미지 한 장이 찍히고 다음 이미지가 찍히기까지의 짧은 시간 동안에는 작은 움직임이 포착되지 않을 수 있습니다.
IMU의 빠른 측정으로 보완
여기서 IMU가 등장합니다. IMU는 카메라와 달리 초당 100회 이상 데이터를 수집할 수 있어, 미세한 움직임까지 실시간으로 감지합니다. 예를 들어, 사용자가 카메라 이미지가 찍히기 전 아주 짧은 순간에 고개를 돌리거나 몸을 움직였다고 해봅시다. IMU는 그 움직임을 정확히 기록하여, 두 이미지 간의 "간극"을 메워 줍니다. 이렇게 하면 카메라와 IMU가 협력하여 더 부드럽고 정확한 움직임 추적이 가능해집니다.
두 데이터의 결합으로 정확한 위치 계산
이제 VIO는 카메라와 IMU에서 얻은 정보를 결합하여 사용자의 정확한 위치와 방향을 계산합니다. 카메라가 찾은 특징점의 이동 경로와 IMU의 세밀한 움직임 데이터를 종합함으로써, 실시간으로 사용자의 위치를 더욱 정확하게 파악하게 됩니다. 예를 들어, 사용자가 방 한가운데에서 서서 천천히 고개를 돌린다고 할 때, VIO는 이 움직임을 정확하게 반영하여 가상 객체가 올바른 위치에 머물도록 만들어 줍니다.

구현의 어려움과 기술적 한계

이처럼 VIO는 카메라와 IMU 데이터를 결합해 사용자의 움직임을 추적하지만, 실제 알고리즘은 여기서 설명한 것보다 훨씬 복잡하고 기술적으로도 매우 까다롭습니다. 위 그림은 대표적인 VIO 알고리즘 중 하나인 VINS-Mono의 알고리즘 개요인데요, 이 알고리즘의 핵심은 이미지와 IMU 데이터를 결합해 시간 동기화하고, 연속적으로 특징 점 추적을 수행하여 일관성 있는 3D 위치 추정을 해낸다는 점입니다. 하지만 이 과정에서는 수많은 수학적 연산과 정교한 최적화가 필요하며, 방대한 계산량을 실시간으로 처리해야 하기 때문에 높은 기술력이 요구됩니다.
또한 XR 디바이스에서 사용되는 IMU는 상대적으로 저렴한 부품으로 구성되는 경우가 많아 노이즈가 심하고, 정확도가 떨어질 수 있다는 문제가 있습니다. 저가형 IMU에서는 작은 움직임이나 진동에 의한 오차가 쉽게 발생하기 때문에, 이를 필터링하고 보정하는 추가 작업이 필요합니다. 예를 들어, VINS-Mono 알고리즘은 IMU의 데이터를 기반으로 노이즈 필터링재보정을 수행하여 최대한 정확한 위치 추정을 제공합니다. 하지만 이런 과정은 계산량을 더 늘리며 알고리즘을 더욱 복잡하게 만들죠.
그럼에도 불구하고, XR 디바이스에서 보다 정밀하고 안정적인 VIO 성능을 구현하기 위한 연구와 기술 발전은 지속되고 있습니다. 저가형 IMU의 한계를 극복하고, VINS-Mono와 같은 알고리즘의 계산량을 최적화하기 위해 여러 연구자와 엔지니어들이 끊임없이 노력하고 있습니다. 새로운 필터링 기술, 효율적인 최적화 기법, 더 나은 센서 융합 전략 등을 통해 실시간으로 동작하면서도 정확도를 유지하는 VIO 시스템을 목표로 다양한 접근이 시도되고 있죠. 이러한 발전은 XR 디바이스가 점차 더 많은 환경과 상황에서 자연스럽고 몰입감 있는 사용자 경험을 제공할 수 있도록 돕고 있습니다.

결론

이번 칼럼에서는 XR 디바이스의 핵심 기술인 깊이 카메라와 VIO(Visual-Inertial Odometry)가 어떻게 현실 공간을 인식하고 사용자 움직임에 맞춰 가상 객체와 자연스럽게 상호작용하는지에 대해 살펴보았습니다. 이러한 기술 덕분에 XR 디바이스는 사용자가 이동하거나 고개를 돌릴 때 즉각적으로 반응하여, 가상 환경과의 몰입감을 한층 높일 수 있습니다. 그러나 이와 같은 상호작용을 실현하기 위해서는 복잡한 기술적 요소들이 요구되며, XR 디바이스의 상용화 과정에서도 여전히 해결해야 할 여러 도전 과제가 남아 있습니다. 이러한 도전과제를 해결하고 한층 더 높은 몰입감을 제공하기 위해 많은 연구자와 엔지니어들이 저가형 센서의 한계를 극복하고 실시간 데이터 처리를 안정적으로 수행할 수 있는 알고리즘과 하드웨어 솔루션을 개발하고 있습니다. 이러한 혁신적인 접근은 앞으로 더 다양한 환경과 상황에서 XR 디바이스가 사용자 위치를 정확히 추적하고, 자연스러운 상호작용을 가능하게 할 것으로 기대됩니다.
결국, 이처럼 복잡하고 도전적인 기술적 요구에도 불구하고 XR 디바이스는 점차 더 정밀하고 신뢰성 있는 몰입형 경험을 제공하는 방향으로 발전하고 있습니다. 깊이 카메라와 VIO는 그 중심에서 핵심적인 역할을 하며, 이 두 기술은 XR 디바이스가 현실과 가상을 매끄럽게 연결하고, 다양한 분야에서 활용될 수 있는 기틀을 마련해 줍니다.
[작성자: XREAL 최승원]

참고 자료

[1] Sarbolandi, Hamed; Lefloch, Damien; Kolb, Andreas. "Kinect range sensing: Structured-light versus Time-of-Flight Kinect," Computer Vision and Image Understanding, vol. 139, 2015, pp. 1-20.
[2] Van Krevelen, D.W.F.; Poelman, R. "A Survey of Augmented Reality Technologies, Applications and Limitations," International Journal of Virtual Reality, vol. 9, no. 2, 2010, pp. 1-20.
[3] Azzam, Rana & Taha, Tarek & Huang, Shoudong & Zweiri, Yahya. (2020). Feature-based visual simultaneous localization and mapping: a survey. SN Applied Sciences. 2. 10.1007/s42452-020-2001-3.
[4] Qin, Tong, et al. "VINS-Mono: A robust and versatile monocular visual-inertial state estimator." IEEE Transactions on Robotics 34.4 (2018): 1004-1020.