깊이 추정은 컴퓨터 비전과 로봇 공학에서 중요한 과제로, 장면에서 객체까지의 거리를 파악하는 기술입니다. 다양하게 활용되며 연구되고 있으며, 실 세계를 이해하는데 근간이 되는 기술이기 때문에 정리할 필요가 있어 이렇게 글을 쓰게 되었습니다. (본인 공부 및 기록용)😁

깊이 추정(Depth Estimation)이란?

깊이 추정은 보는 주체와 객체까지의 거리를 파악하는 기술입니다. 이러한 정보는 자율주행, 3D 모델링, 증강 현실 등 다양한 분야에서 이용되고 있습니다.

깊이 추정 방법

깊이 추정 방법에는 다양한 센서들을 활용해 다양한 방법들이 존재하며 본 글에서는 간략하게 설명하고 이후 자세히 다룰 예정입니다. 링크 또한 참조할 예정.

1. 전통적인 방법

사람이 객체의 거리와 3차원 정보를 얻는 것과 비슷한 원리로, 기하학적 원리와 알고리즘에 기반합니다.

1-1. 삼각 측량(Triangulation)

Triangulation Example Figure 1: Triangulation example 출처

1-2. SfM(Structure from Motion)

my github SfM project

1-3. Optical Flow

2. Lidar를 사용하는 방법

Lidar(Light Detection and Ranging)레이저 빔을 사용하여 돌아올 때 정보를 통해 환경의 깊이 정보를 측정하는 기술입니다. 이 방법은 비용이 비싸지만, 다양한 환경에서도 간단하면서도 높은 정확도와 해상도를 제공합니다.

monocular with lidar point Example

Figure 4: monocular with lidar point example 출처

3. 단안 카메라를 사용하는 방법

단안 카메라(Monocular)를 사용하는 깊이 추정은 하나의 이미지에서 깊이 정보를 추출하는 방법입니다. 일반적인 카메라로도 가능하지만 실 산업에 적용하기에는 성능이 아직 부족하다는 단점이 있습니다.

3-1. 기계 학습 기반 방법

4. 스테레오 카메라를 사용하는 방법

두 개의 카메라를 사용하여 깊이 정보를 추정하는 방법입니다. 인간의 두 눈으로 깊이를 인식하는 방식과 유사합니다. 하지만 시간이 지날 수록 카메라 간의 calibration 정보가 바뀔 수 있다는 큰 단점이 존재합니다.

4-1. 스테레오 매칭

4-2. 에피폴라 기하학 (epipolar geometry)

4-3. 스테레오 비전 알고리즘

Block Matching Example Figure 5: Block Matching example 출처

5. 다중 카메라 시스템

응용 분야

이것저것 공부하면서 관련 내용에 대해 계속 추가할 예정입니다. 궁금한 것들이나 추가 및 수정했으면 좋겠는 거 말해주시면 좋을 거 같아요. 좋은 하루 보내시길 바래요 :)