3D Computer Vision: SFM, SLAM, MVS 개념과 응용

조회수: -

Published:

1. 3D Computer Vision이란?

3D Computer Vision은 컴퓨터가 3차원 공간에서 사물을 인식하고 이해할 수 있게 하는 기술이다. 간단히 말해, 2D 이미지나 비디오 데이터를 분석하여 3D 정보를 복원하거나 활용하는 분야를 의미한다. 이 기술은 공간 컴퓨팅(Spatial Computing)3D Reconstruction(3D 복원)과 밀접한 관련이 있다. 공간 컴퓨팅은 현실 세계와 디지털 세계를 결합하여 공간 정보를 처리하고 활용하는 기술로, AR이나 VR 환경에서 실시간으로 공간 속에서 상호작용을 가능하게 만든다. 또한, 3D Reconstruction은 2D 이미지나 센서 데이터를 기반으로 장면이나 물체의 정밀한 3D 모델을 생성하는 과정을 말하며, 3D Computer Vision이 이를 가능하게 하는 핵심 기술이다.

3D Computer Vision은 자율주행, AR, VR, 로봇공학, 영화 및 게임 산업, 그리고 의료 영상 등 다양한 분야에서 널리 활용되고 있다. 자율주행 자동차는 LiDAR와 카메라 같은 센서를 통해 주변 환경의 3D 맵을 생성하고, 이를 기반으로 장애물을 회피하며 경로를 계획한다. AR/VR 기기는 사용자 주변의 3D 환경을 이해하고, 가상 객체를 자연스럽게 배치함으로써 더욱 몰입감 있는 경험을 제공한다. 로봇공학에서는 로봇이 3D 맵을 기반으로 경로를 계획하고 물체를 인식해 작업을 수행하도록 돕는다. 또한, 영화와 게임 산업에서는 실제 장소를 3D로 스캔하여 가상 환경을 생성하거나 배경으로 활용하고, 의료 영상에서는 CT, MRI 같은 데이터를 분석해 신체 내부의 3D 구조를 복원하고 진단에 활용한다.

이 기술을 이해하려면 몇 가지 기초 개념이 중요하다. 우선, 기하학적 기초가 필수적이다. 점, 선, 평면, 벡터와 같은 기본적인 기하학 지식을 이해해야 하며, 특히 Projective Geometry은 핵심 개념이다. 또한, 핀홀 카메라 모델이나 렌즈 왜곡과 같은 카메라 모델을 이해해 카메라가 이미지를 캡처하는 방식을 알아야 한다. 행렬과 선형대수학의 기초도 중요한데, 이는 카메라 변환 행렬 등을 다룰 때 필요하다. 마지막으로, Feature Extraction이나 Edge Detection과 같은 영상 처리 기술도 필수적이다.

이러한 3D Computer Vision을 가능하게 하는 핵심 기술에는 SFM (Structure from Motion), SLAM (Simultaneous Localization and Mapping), MVS (Multi-View Stereo)와 같은 개념들이 있다. 이 글에서는 이 세 가지 기술의 원리와 사용 사례를 간단히 살펴본다.


2. Structure from Motion (SFM)

2.1. SFM의 정의와 원리

SFM은 움직이는 카메라(또는 여러 각도에서 찍은 정적인 이미지)를 사용하여 3D 구조를 복원하는 기술이다. 예를 들어, 여행 중에 찍은 여러 장의 사진으로 랜드마크의 3D 모델을 만들어 본 적이 있다면, 그 과정에서 SFM이 활용되었을 가능성이 높다.

SFM의 핵심 원리는 여러 이미지에서 동일한 물체를 관찰하고, 이를 통해 특징점의 위치와 카메라 궤적을 동시에 계산하는 데 있다. 구체적인 과정은 다음과 같이 이루어진다.

  1. Feature Extraction: SFM의 첫 번째 단계는 특징점 추출이다. SIFT(Scale-Invariant Feature Transform), ORB(Oriented FAST and Rotated BRIEF)와 같은 알고리즘을 사용하여 각 이미지에서 특징점을 식별한다. 특징점은 이미지에서 눈에 띄는 부분, 예를 들어 벽의 모서리, 창문, 문 등의 디테일한 요소로, 이후 여러 이미지에서 동일한 점을 매칭하는 데 사용된다.

  2. Feature Matching: 추출된 특징점을 기반으로 서로 다른 이미지에서 동일한 특징점을 매칭하는 과정이다. 여기서 RANSAC(Random Sample Consensus)과 같은 기법을 활용하여 이상치(outlier)를 제거한다. 이는 잘못된 매칭을 줄이고, 더 신뢰할 수 있는 데이터 매칭을 보장한다. 이 과정은 SFM의 초기 단계에서 데이터의 품질을 결정짓는 중요한 역할을 한다.

  3. Triangulation: 매칭된 특징점 쌍과 카메라의 투영 행렬을 활용해 3D 공간에서 특징점의 위치를 계산하는 단계이다. 이 과정에서는 두 이미지에서 같은 점을 관찰한 정보를 바탕으로 삼각측량을 통해 해당 점이 3D 공간의 어느 위치에 있는지 결정한다. 이를 통해 초기 3D 포인트 클라우드를 생성할 수 있다.

  4. PnP(Perspective-n-Point): 이미지와 계산된 3D 점 사이의 대응 관계를 분석해 카메라의 자세(위치와 방향)를 추정하는 과정이다. 이 단계는 각 이미지에 대해 카메라가 공간 내에서 정확히 어떤 위치에 있었는지를 정밀히 계산하는 데 사용된다. PnP 알고리즘은 이러한 매핑 작업에서 필수적이며, SFM의 결과물을 정교하게 만든다.

  5. Bundle Adjustment: 마지막으로, 3D 포인트의 위치와 카메라 궤적을 동시에 최적화하는 단계이다. 이 단계에서는 모든 입력 데이터를 종합적으로 분석하여 전체적인 에러를 최소화하고, 더 정확한 3D 모델과 카메라 궤적을 계산한다. 번들 조정은 계산량이 많지만, SFM의 최종 결과의 품질을 높이는 데 핵심적인 역할을 한다.

이 전체 과정에서 입력으로는 여러 장의 2D 이미지가 필요하며, 카메라의 내부 파라미터(intrinsic parameters)가 주어지면 더 정확한 복원이 가능하다. 만약 내부 파라미터가 주어지지 않더라도, SFM은 self-calibration 과정을 통해 이를 추정할 수 있다. 출력으로는 3D 공간의 sparse point cloud와 카메라의 외부 파라미터(extrinsic parameters)가 생성된다. 이를 통해 실제 세계를 3차원으로 복원할 수 있는 기반이 마련된다.

2.2. SFM의 사용 사례

SFM은 여러 이미지에서 카메라 움직임과 장면의 3D 구조를 복원하며, 다양한 분야에서 활용된다. SFM은문화유산 복원, 게임/영화 제작, 드론을 이용한 지형 매핑 등에서 초기 3D 구조를 생성하는 데 사용된다. 특히, MVS와 결합해 고해상도의 밀집된 3D 모델을 만드는 데 중요한 기반을 제공한다.

3. Simultaneous Localization and Mapping (SLAM)

3.1. SLAM의 정의와 원리

SLAM은 이름에서 알 수 있듯이, 동시에 공간을 매핑(Map)하고 자신(로봇 또는 카메라)의 위치(Localization)를 추적하는 기술이다. 이 기술은 이동하는 로봇, 자율주행 자동차, AR 장치 등에서 매우 중요한 역할을 한다. SLAM은 주변 환경을 인식하고 이해하며, 이를 바탕으로 로봇이나 장치가 실시간으로 자신의 위치를 파악할 수 있게 해준다.

SLAM의 핵심 작업은 크게 네 가지로 나뉩니다.

  1. 센서 데이터 수집: SLAM 시스템은 다양한 센서 데이터를 활용한다. 카메라(모노, 스테레오), 라이다(LiDAR), IMU(관성 측정 장치) 등에서 수집된 데이터를 통해 환경 정보를 받는다. 예를 들어, 카메라는 시각 정보를 제공하고, 라이다는 고정밀 거리 데이터를, IMU는 가속도와 회전 정보를 제공한다. 이러한 데이터들은 SLAM의 입력으로 활용된다.

  2. Feature Matching: 수집된 센서 데이터를 기반으로 환경에서 특징점을 추출하고 3D 맵을 생성하는 과정이다. 여기서 SFM과 비슷한 방식으로 특징점을 추출하고 매칭한다. 이러한 특징점들은 주변의 물체, 벽, 장애물과 같은 환경 요소를 나타내며, 이를 통해 초기 맵을 형성한다.

  3. Localization: 생성된 맵을 참조하여 로봇이나 장치가 현재 환경에서 어디에 있는지를 실시간으로 추적한다. 이 과정에서는 센서 데이터와 맵 데이터 간의 일치를 비교하여 위치를 계산한다. 카메라와 IMU 데이터를 융합한 Visual-Inertial Odometry(VIO) 같은 기법이 자주 사용된다.

  4. Map Updating: 장치가 새로운 환경 정보를 발견하면 기존 맵에 이를 반영한다. 예를 들어, 방 안의 가구가 새롭게 추가되었거나, 이동 중 새로운 장애물이 나타난 경우 맵을 수정하거나 확장한다. 이는 SLAM 시스템이 동적으로 변화하는 환경에서도 신뢰성을 유지하게 해준다.

3.2. SLAM의 종류

  • Visual SLAM (vSLAM): 카메라를 기반으로 SLAM을 수행하는 방식이다. 카메라는 저렴하고 가볍기 때문에 모바일 기기나 드론 등에 자주 사용된다. Visual SLAM은 조명 조건이나 환경의 텍스처가 부족할 때 성능이 떨어질 수 있다는 한계가 있지만, 이를 보완하기 위해 IMU 같은 추가 센서를 결합하기도 한다.

  • LiDAR SLAM: 라이다(LiDAR) 센서를 사용하여 SLAM을 수행하는 방식이다. 라이다는 고정밀 거리 데이터를 제공하므로 매우 정확한 맵핑이 가능하다. 그러나 라이다 센서는 고가의 장비라는 점에서 비용적인 부담이 크다는 단점이 있다. 자율주행 자동차와 같은 고정밀 작업에 주로 사용된다.

3.3. SLAM의 입력과 출력

  • Input : 카메라 이미지, 라이다 데이터, IMU 데이터를 포함한 다양한 센서 데이터
  • Output
    • Map: 주변 환경의 2D 또는 3D 맵을 생성한다. 이 맵은 로봇이나 장치가 경로를 계획하고 장애물을 회피하는 데 사용된다.
    • Position: 로봇이나 장치의 현재 위치와 방향(자세)을 추정한다. 이를 통해 장치가 환경에서 정확히 어디에 있는지 알 수 있다.

3.4. SLAM의 응용 분야

자율주행 자동차는 SLAM을 통해 도로와 주변 환경을 실시간으로 인식하고, 자신의 위치를 정확히 추적하여 안전한 경로를 계획한다. 이러한 기능은 차량이 복잡한 교통 상황에서도 안정적으로 주행할 수 있도록 돕는다. 로봇 공학에서도 SLAM은 필수적인 기술로, 창고나 공장에서 로봇이 지정된 경로를 따라 이동하거나 장애물을 회피하며 효율적으로 작업을 수행할 수 있게 해준다. AR 기술에서도 SLAM은 중요한 역할을 한다. AR 장치는 SLAM을 사용해 사용자의 주변 환경을 매핑하고, 이를 기반으로 가상 객체를 물리적 공간에 배치하거나 상호작용할 수 있도록 지원한다.

4. Multi-View Stereo (MVS)

4.1 MVS의 정의와 원리

MVS(Multi-View Stereo)는 SFM(Structure from Motion)과 밀접한 연관이 있는 기술로, SFM의 결과물을 입력으로 받아 더 정밀한 3D 모델을 생성하는 데 초점을 둔 기술이다. 두 기술은 모두 다중 이미지를 활용하여 3D 구조를 복원하지만, 주요 차이점은 결과물의 정밀도와 초점에 있다. SFM은 카메라의 위치와 장면의 특징점을 복원해 비교적 spare한 3D 모델을 생성하는 데 초점을 맞추는 반면, MVS는 이를 기반으로 dense한 3D 모델을 생성한다.

MVS는 여러 시점에서 촬영된 이미지를 분석하여 동일한 물체의 다양한 각도를 종합적으로 활용하며, 픽셀 단위의 깊이 정보를 복원한다. SFM이 카메라 궤적과 초기 3D 구조를 제공한다면, MVS는 이 데이터를 입력으로 받아 더 세밀한 depth map과 정확한 3D 구조를 생성하는 역할을 한다.

MVS의 주요 과정은 다음과 같다.

  1. Camera Calibration: SFM의 결과물로 생성된 카메라의 내부 파라미터(초점 거리, 렌즈 왜곡 등)와 외부 파라미터(카메라 위치와 방향)를 활용해, 정확한 투영 행렬을 설정한다. 이는 깊이 정보를 추정하기 위한 준비 작업이다.

  2. Depth Estimation: 다중 이미지의 시점 차이를 분석하여 픽셀 단위의 깊이 정보를 계산한다. Stereo Matching 기법이 사용되며, 각 픽셀의 시차(disparity)를 기반으로 depth map을 생성한다. 이 단계는 MVS의 핵심으로, 정확하고 밀집된 깊이 정보를 얻는 것이 목표이다.

  3. 3D Point Cloud Generation: 추정된 깊이 맵을 여러 시점에서 결합하여 밀집된 3D dense point cloud를 생성한다. 이 포인트 클라우드는 물체의 표면을 자세히 나타내며, 고해상도의 3D 모델을 생성하는 기초가 된다.

  4. Mesh Generation & Texture Mapping: 포인트 클라우드를 바탕으로 삼각형 메시(mesh)를 생성하고, 원본 이미지의 색상 데이터를 텍스처로 매핑하여 현실감 있는 3D 모델을 완성한다.

MVS는 SFM에서 생성된 sparse 모델을 보완하고, 이를 정밀하게 세부화하는 데 사용된다. 두 기술은 독립적으로 사용할 수도 있지만, 일반적으로 SFM이 초기 단계의 데이터를 제공하고, MVS가 이를 세밀하게 다듬는 방식으로 상호보완적으로 사용된다.

4.2 MVS의 사용 사례

MVS는 높은 정밀도가 요구되는 다양한 분야에서 활용된다. 건축 및 도시 계획에서는 드론이나 항공 촬영을 통해 수집한 다중 이미지를 이용하여 건물과 도시의 정밀한 3D 모델을 생성한다. 이를 통해 도시 개발을 시뮬레이션하거나 건축 설계를 최적화할 수 있다. 의료 영상에서는 CT나 MRI 데이터를 바탕으로 장기의 3D 구조를 복원하여 수술 계획과 진단에 활용된다. 예를 들어, 심장, 간, 뇌 등 복잡한 구조를 가진 장기를 3D로 모델링하여 의료진이 더 정확하고 효율적인 치료를 제공할 수 있도록 돕는다.

MVS는 SFM과 함께 동작하며, 특히 세밀한 3D 데이터를 필요로 하는 응용 분야에서 필수적인 기술로 사용되고 있다.

5. SFM, SLAM, MVS의 차이점과 공통점

기술주요 목적입력 데이터출력 데이터특징
SFM3D 구조 복원다중 이미지, (선택적으로) 카메라 내부 파라미터카메라 외부 파라미터, sparse 3D 포인트 클라우드카메라 움직임 기반, 초기 3D 복원 단계
SLAM위치 추적 + 맵 생성실시간 센서 데이터(카메라, 라이다, IMU 등)현재 위치, 실시간 업데이트 맵실시간 처리, 순차적 데이터 처리
MVS정밀한 3D 모델 생성다중 이미지, 카메라 내부 파라미터, 카메라 외부 파라미터(SFM 결과)Dense 3D 포인트 클라우드, Mesh & texture픽셀 단위 깊이 정보 복원, 고정밀 모델링
  • SFM (Structure from Motion) SFM은 주어진 여러 이미지에서 카메라의 움직임과 특징점들을 분석해 3D 구조를 복원하는 기술이다. SFM은 대량의 이미지를 한꺼번에 처리하는 방식으로, 입력으로는 다중 이미지와 카메라 내부 파라미터(초점 거리, 렌즈 왜곡 정보 등)가 필요하다. 출력으로는 카메라 외부 파라미터와 sparse한 3D 포인트 클라우드를 생성한다. 다만, SFM은 많은 계산이 필요하기 때문에 실시간 처리에는 적합하지 않다. 대신 여행 사진이나 문화유산 복원 등, 처리 시간이 길어도 되는 응용 분야에서 사용된다.

  • SLAM (Simultaneous Localization and Mapping) SLAM은 실시간으로 주변 환경을 매핑하고, 동시에 자신의 위치를 추적하는 기술이다. 입력으로는 실시간으로 들어오는 센서 데이터(예: 카메라 이미지, 라이다 거리 데이터, IMU 측정값 등)가 필요하며, 출력으로는 현재 위치와 실시간으로 업데이트되는 맵을 제공한다. SLAM은 순차적으로 데이터를 처리하며, 빠른 처리 속도를 요구하기 때문에 최적화된 알고리즘을 사용한다. 이는 자율주행, 로봇 공학, AR과 같이 실시간성이 중요한 분야에서 널리 활용된다.

  • MVS (Multi-View Stereo) MVS는 SFM의 결과물을 기반으로, 더 세밀한 3D 모델을 만드는 데 초점을 맞춘 기술이다. 입력으로는 다중 이미지와 SFM에서 생성된 초기 카메라 외부 파라미터와 sparse한 3D 포인트 클라우드가 필요하며, 출력으로는 dense한 3D 포인트 클라우드와 삼각형 메시(mesh), 그리고 텍스처 맵이 생성된다. 픽셀 단위의 깊이 정보를 복원하기 때문에 계산량이 많고, 처리 속도는 느리지만 매우 정밀한 3D 모델이 만들어진다. MVS는 건축, 도시 계획, 영화 VFX와 같은 고해상도 모델링이 필요한 분야에서 주로 사용된다.

세 기술 모두 3D Computer Vision의 중요한 구성 요소로, 서로 보완적으로 사용되기도 한다. 먼저, SFM은 카메라의 궤적과 초기 3D 구조를 추정하는 역할을 한다. 이를 기반으로 MVS는 더 밀집된 3D 모델을 생성한다. 반면, SLAM은 실시간 처리에 중점을 두고 있어, SFM이나 MVS보다 훨씬 빠르게 데이터를 처리하며 이동 중 환경을 이해하고 실시간으로 업데이트하는 데 적합하다. 예를 들어, SLAM을 사용해 로봇이 실시간으로 주변 환경을 매핑하면서 이동할 수 있고, 이후 SFM과 MVS를 활용해 더 정밀한 3D 구조를 복원할 수 있다.


3D Computer Vision의 핵심 기술인 SFM, SLAM, MVS에 대해 간단히 정리해봤다. 각 기술은 고유한 특징과 강점을 가지고 있고, 자율주행, 로봇 공학, AR/VR 등 다양한 분야에서 중요한 역할을 하고 있다.