Azure Kinect DK 깊이 카메라
이 페이지에서는 Azure Kinect DK에서 깊이 카메라를 사용하는 방법을 다룹니다. 깊이 카메라는 두 카메라 중 두 번째입니다. 이전 섹션에서 다루었던 대로 다른 카메라는 RGB 카메라입니다.
작동 원리
Azure Kinect DK 깊이 카메라는 AMCW(Amplitude Modulated Continuous Wave) ToF(Time-of-Flight) 원리를 구현합니다. 카메라는 NIR(근거리 IR) 스펙트럼에서 변조된 조명을 장면에 캐스팅합니다. 그런 다음 빛이 카메라에서 장면까지 갔다가 돌아오는 데 걸리는 시간의 간접 측정값을 기록합니다.
이러한 측정값은 깊이 맵을 생성하기 위해 처리됩니다. 깊이 맵은 이미지의 모든 픽셀에 대한 Z 좌표 값의 집합이며 밀리미터 단위로 측정됩니다.
또한 깊이 맵과 함께 소위 선명한 IR 읽기를 얻을 수 있습니다. 선명한 IR 읽기의 픽셀 값은 장면에서 돌아오는 조명의 양에 비례합니다. 이 이미지는 보통의 IR 이미지와 유사해 보입니다. 아래 그림은 깊이 맵 예(왼쪽) 및 해당 선명한 IR 이미지(오른쪽)를 보여 줍니다.
주요 특징
깊이 카메라의 기술적 특징은 다음과 같습니다.
- 더 높은 변조 주파수와 깊이 정밀도를 가능하게 하는 고급 픽셀 기술이 적용된 1메가 픽셀 ToF 이미징 칩.
- 좁고 넓은 FoV(시야) 깊이 모드를 사용 가능하게 하는 두 개의 NIR 레이저 다이오드
- 세계에서 가장 작은 ToF 픽셀(3.5μmx3.5μm)
- 근거리 및 원거리 개체의 깨끗한 캡처가 가능한 넓은 동적 범위 기능을 사용 가능하게 하는 자동 픽셀별 게인 선택
- 태양광에서 개선된 성능을 가능하게 하는 글로벌 셔터
- 칩, 레이저 및 전원 공급 변형이 있는 경우도 강력한 정확도를 가능하게 하는 다단계 깊이 계산법
- 낮은 계통오차 및 임의오차
깊이 카메라는 원시 변조 IR 이미지를 호스트 PC로 전송합니다. PC에서 GPU 가속화된 깊이 엔진 소프트웨어가 원시 신호를 깊이 맵으로 변환합니다. 깊이 카메라는 여러 가지 모드를 지원합니다. 좁은 FoV(시야) 모드는 X 및 Y 차원에 더 작은 익스텐트가 있지만 Z 차원에는 더 큰 익스텐트가 있는 장면에 적합합니다. 장면에 많은 X 및 Y 익스텐트가 있지만 Z 범위가 더 작은 경우 넓은 FoV 모드가 더 잘 맞습니다.
깊이 카메라는 2x2 범주화 모드를 지원하여 해당 비범주화 모드에 비해 Z 범위를 확장합니다. 범주화를 수행하면 이미지 해상도가 낮아집니다. 모든 모드는 최대 15fps의 프레임 속도로 실행되는 1MP(메가픽셀) 모드를 제외하고 최대 30fps(초당 프레임)로 실행할 수 있습니다. 깊이 카메라도 패시브 IR 모드를 제공합니다. 이 모드에서는 카메라의 일루미네이터가 활성화되어 있지 않고 주변의 조명만 관찰됩니다.
카메라 성능
카메라의 성능은 계통오차 및 임의오차로 측정됩니다.
계통오차
계통오차는 노이즈 제거 후에 측정된 깊이와 올바른(실측) 깊이 간의 차이로 정의됩니다. 깊이 노이즈를 최대한 제거하기 위해 정적 장면의 여러 프레임에 대한 시간 평균을 계산합니다. 보다 정확하게 계통오차는 다음과 같이 정의됩니다.
여기에서 dt는 시간 t에서의 측정 깊이를 표시하고, N은 평균 프로시저에서 사용되는 프레임의 개수이며, dgt는 실측 깊이입니다.
깊이 카메라의 계통오차 규격은 MPI(다중 경로 간섭)를 제외합니다. MPI는 하나의 센서 픽셀이 둘 이상의 개체에서 반사되는 빛을 통합하는 경우에 발생합니다. MPI는 나중에 소개할 깊이 무효화와 함께 더 높은 변조 주파수를 사용하는 깊이 카메라에서는 부분적으로 완화됩니다.
임의오차
카메라를 움직이지 않고 동일한 개체의 이미지를 100개 찍는다고 가정해 보겠습니다. 개체의 깊이는 100개의 이미지 각각에서 약간씩 다를 것입니다. 이러한 차이는 샷 소음에 의해 발생합니다. 샷 소음은 시간에 따라 임의 요인에 의해 변하는 센서에 부딪히는 광자의 개수입니다. 정적 장면에서의 이 임의오차를 시간에 따른 깊이의 표준 편차로 정의하고 다음과 같이 계산합니다.
여기에서 N은 깊이 측정값의 개수를 표시하고, dt는 시간 t에서의 깊이 측정값을 나타내며, d는 모든 깊이 측정값 dt에 대해 계산된 평균값을 나타냅니다.
무효화
특정 상황에서 깊이 카메라는 일부 픽셀에 대해 올바른 값을 제공하지 않을 수 있습니다. 이러한 상황에서 깊이 픽셀은 무효화됩니다. 유효하지 않은 픽셀은 깊이 값이 0인 것으로 표시됩니다. 깊이 엔진이 올바른 값을 생성할 수 없는 이유는 다음과 같습니다.
- 활성 IR 조명 마스크의 바깥쪽에 있을 때
- 포화된 IR 신호
- 낮은 IR 신호
- 필터 이상값
- 다중 경로 간섭
조명 마스크
픽셀은 활성 IR 조명 마스크의 바깥쪽에 있을 때 무효화됩니다. 깊이 계산에 이러한 픽셀의 신호를 사용하지 않는 것이 좋습니다. 아래 그림에서는 조명 마스크로 인한 무효화의 예를 보여 줍니다. 무효화된 픽셀은 넓은 FoV 모드(왼쪽)의 원 및 좁은 FoV 모드의 육각형(오른쪽) 바깥쪽에 있는 검정색 픽셀입니다.
신호 강도
픽셀은 포화된 IR 신호를 포함할 때 무효화됩니다. 픽셀이 포화되어 있을 때 단계 정보가 손실됩니다. 아래 이미지는 포화된 IR 신호에 의한 무효화 예를 보여 줍니다. 깊이 및 IR 이미지 둘 다에서 픽셀 예를 가리키는 화살표를 참조하세요.
또한 IR 신호가 깊이를 생성할 만큼 강하지 않을 때 무효화가 발생할 수 있습니다. 아래 그림은 낮은 IR 신호에 의한 무효화 예를 보여 줍니다. 깊이 및 IR 이미지 둘 다에서 픽셀 예를 가리키는 화살표를 참조하세요.
모호한 깊이
또한 장면에 있는 둘 이상의 개체로부터 신호를 받은 경우 픽셀이 무효화될 수 있습니다. 이러한 종류의 무효화를 볼 수 있는 일반적인 경우는 모서리에 있습니다. 장면의 기하 도형 때문에 카메라의 IR 빛이 한 벽에서 다른 벽으로 반사되었습니다. 이런 반사된 빛이 픽셀의 측정된 깊이에 모호성을 유발합니다. 깊이 알고리즘의 필터는 이러한 모호한 신호를 감지하여 픽셀을 무효화합니다.
아래 그림은 다중 경로 감지에 의한 무효화 예를 보여 줍니다. 또한 한 카메라의 보기(위쪽 행)에서 무효화된 동일한 노출 영역이 다른 카메라의 보기(아래쪽 행)에서 다시 나타나는 방식을 확인할 수 있습니다. 이 이미지는 한 관점에서 무효화된 표면이 다른 관점에서 표시될 수 있음을 보여 줍니다.
다중 경로의 또 다른 일반적인 경우는 전경 및 배경(예: 개체 가장자리 주위)으로부터 혼합된 신호를 포함하는 픽셀입니다. 빠른 동작 중에 가장자리 주위로 무효화된 픽셀이 더 많이 표시될 수 있습니다. 추가적으로 무효화된 픽셀은 원시 깊이 캡처의 노출 간격 때문에 생깁니다.