Depth Cameras
Depth Camera는 3차원 공간에서 object와의 거리를 측정할 수 있는 카메라를 가르킴.
- CV 등에서는 카메라와 객체간의 거리를 depth라고 부름.
Active 방식과 Passive 방식으로 크게 나뉘어지나, 오늘날에는 두가지 방식이 융합된 형태들도 많이 사용됨.
Active 방식
원리:
- 외부에서 인위적으로 빛 (IR or EV)이나 신호를 project(투사)하여 depth를 측정.
기술:
- Structured Light
- Time of Flight (ToF)
- LIght Detection And Ranges (LIDAR).
장점:
- 어두운 환경에서도 잘 작동.
- Texture(텍스처)가 부족한 표면에서도 신뢰성 있는 깊이 정보를 제공.
단점:
- 외부 빛(특히 강한 햇빛 등)에 민감하여 성능이 저하될 수 있음.
- 자연광에는 다양한 주파수의 빛이 있기 때문에, IR을 사용하는 경우 자연광에 포함된 IR이 강할 경우 문제가 됨.
- 다른 강한 광원(자연광, 주변광)이 있을 경우, depth 측정을 위한 빛 또는 신호를 보다 강하게 출력해야 함.
- 추가적인 하드웨어(프로젝터, 레이저 등)가 필요하여 비용이 증가할 수 있음.
Passive 방식
원리:
- 환경의 자연광 또는 주변광을 이용하여 depth를 추출.
- 두 개 이상의 카메라를 사용하여 객체를 다른 각도에서 촬영하고,
- 두 이미지 간의 disparity(차이)를 분석하여 깊이를 계산.
기술:
- Stereo Vision
- Multi-view Stereo
장점:
- 추가적인 광원이나 프로젝터가 필요하지 않아 하드웨어가 단순하고 비용이 적게 드는 편.
- 실외 환경에서도 잘 작동.
단점:
- 어두운 환경에서는 성능이 저하.
- texture가 부족한 표면에서는 대응점 찾기가 어려워 정확도가 떨어질 수 있음.
주요 Depth Camera Methods
현재 주요 Depth Camera는 다음과 같이 나누어짐.
- ToF (Time of Flight) 카메라:
- ToF 카메라는 빛 (또는 초음파)을 발사하고, 그 빛(또는 초음파)이 객체에 반사되어 돌아오는 시간을 측정하여 거리를 계산.
- 이 기술은 빠른 속도로 깊이 데이터를 얻을 수 있어 다양한 응용 분야에서 사용됨.
- IR, Ultrasound, LASER 등을 사용할 수 있는데, 이 중에서 LASER의 경우엔 LIDAR라고 칭함.
- IR을 사용시 환경광이 강하면 취약함.
- 또한 ToF방식의 경우 일반적으로 dense depth map을 산출하나, LIDAR는 sparse point cloud 형태로 결과를 내놓음.
- 대표적 사용제품
- Azure Kinect: Azuer Cloud의 vision service와 연동됨. IR기반(940nm)의 ToF.
- 일부 스마트폰의 ToF센서
- Structured Light 카메라:
- 이 기술은 미리 정의된 패턴의 빛(보통 dots, lines, grid 등)을 object에 projection(투사)하고 해당 패턴을 카메라로 촬영하여 depth를 추출: 크게 다음의 2가지 방식 중 하나임.
- 1개 이상의 카메라로 해당 패턴이 object 상에서 맺힌 image를 통해 depth를 계산.
- 2024.07.18 - [Programming/DIP] - [CV] Depth Camera (or Active Sensor): Structured Light
- 이 방식의 경우, 하나의 카메라만으로도 depth를 추출할 수 있음.
- 쉽게 생각하면, Passive Stereo에서 하나의 카메라를 projector로 변경한 경우임.
- 주요 상용제품:
- Microsoft Kinect v1: 초기 모델로, 하나의 RGB 카메라와 IR 프로젝터를 사용.
- Intel RealSense Depth Camera D415: Intel의 RealSense 시리즈 중 하나로, 하나의 카메라와 구조화된 광원을 사용.
- Apple TrueDepth: 적외선(IR) 프로젝터, 적외선(IR) 카메라, 그리고 일반 카메라로 구성됨. IR 프로젝터는 수천 개의 점 패턴을 얼굴에 투사하고 IR 카메라는 이 점 패턴이 얼굴에 투사된 후 왜곡된 모습을 촬영.이후 왜곡된 점 패턴의 위치를 분석하여 얼굴의 depth 정보를 계산함.
- projector가 투영하는 패턴을 2개의 카메라로 얻고 Stereo Vision 방식으로 depth를 계산.
- Active Stereo Vision 이라고도 불림.
- 반드시 2대 이상의 카메라가 필요함.
- 주요 상용제품:
- Microsoft Kinect v2: Kinect v1의 후속 모델로, 두 개의 IR 카메라와 하나의 IR 프로젝터를 사용하여 더욱 정밀한 depth를 추출.
- Intel RealSense Depth Camera D435: 두 개의 IR 카메라와 구조화된 광원을 사용.
- 1개 이상의 카메라로 해당 패턴이 object 상에서 맺힌 image를 통해 depth를 계산.
- 이 기술은 미리 정의된 패턴의 빛(보통 dots, lines, grid 등)을 object에 projection(투사)하고 해당 패턴을 카메라로 촬영하여 depth를 추출: 크게 다음의 2가지 방식 중 하나임.
- Stereo Vision 카메라:
- 두 개 이상의 카메라를 사용하여 객체를 서로 다른 pose에서 촬영하고,
- 이들 이미지를 비교하여 depth를 추출.
- 인간의 시각 시스템과 유사한 방식임.
- Passive Methods 에서 주로 사용되나, Active Methods에서도 사용됨.
- LIDAR (Light Detection and Ranging):
- 빛(Laser)를 사용하여 Object에 Laser을 반사시키고, 그 반사 시간을 측정하여 거리를 계산.
- 어느 부분에서는 ToF와 매우 유사하나, LIDAR의 경우 보다 긴 거리(다른 depth camera에 비해)에서 정확한 depth를 얻는데 이용됨.
- 다른 기술들보다 정확한 depth를 얻어내지만,
- sparse point cloud 를 얻어낸다는 차이점 있음 (다른 기술들은 dense depth map을 제공)
- Radio Wave ($\lambda$가 cm~m)를 사용하는 경우엔 RADAR (RAdio Detection And Ranging)라고 불림.
- LIDAR의 경우 파장이 수백 nm~ 수 마이크로미터 수준.
- RADAR는 수 km이상의 긴 거리를 측정하지만 LIDAR에 비해 낮은 정밀도를 보임.
- LIDAR는 mm~cm 수준의 정밀도에 수백 미터의 거리 측정이 가능.
- Point Cloud로 데이터가 얻어진다는 차이점을 가짐.
- LIDAR는 매우 높은 정확도를 제공하며, 자율 주행 차량 및 지형 측량 등에 많이 사용됨.
- 공간해상도는 떨어지는 편임.
- 주요 상용 제품:
- Velodyne Puck: 초당 30만개 점을 측정. 깊이 범위가 100m.
- Multi-baseline Stereo:
- 여러 개의 카메라를 사용하여 depth를 더 정확하게 계산하는 방식.
- 다수의 카메라 이미지를 기반으로 더 정밀한 깊이 맵을 생성할 수 있음.
같이 보면 좋은 자료들
2024.06.29 - [Programming/DIP] - [CV] Stereo Vision: Stereo Matching, Triangulation, Depth Map
https://post.naver.com/viewer/postView.naver?volumeNo=34539362&memberNo=44390391
'Programming > DIP' 카테고리의 다른 글
[CV] Motion Field vs. Optical Flow (0) | 2024.07.18 |
---|---|
[CV] Depth Camera (or Active Sensor): Structured Light (1) | 2024.07.18 |
[CV] Hartley’s Normalization (1) | 2024.07.17 |
[CV] 8-point algorithm: Fundamental Matrix (0) | 2024.07.17 |
[CV] Stereo Calibration or Stereo Camera Calibration (0) | 2024.07.16 |