콘텐츠로 바로 가기
STAGING SERVER
DEVELOPMENT SERVER

Depth Quality Metrics#

이 항목에서는 깊이 품질을 평가하는 데 사용되는 지표에 대해 설명합니다.

Terminology#

아래 표에는 이 항목에 나타나는 용어와 약어가 나열되어 있습니다.

용어 설명
ROI Region of Interest
FOV 시야(Field of View)
GT Ground Truth
RMS Root of Mean Square
STD Standard Deviation

Quality Metrics#

깊이 품질 평가는 깊이 데이터의 다양한 측면을 수치화하고 이를 원하는 성능 기준 또는 Ground Truth 측정값과 비교하는 작업을 포함합니다. 정량적 깊이 품질 평가를 위한 몇 가지 일반적인 지표는 다음과 같습니다.

  • Depth accuracy는 깊이 데이터의 중앙값 편차를 계산하여 절대 오차를 평가합니다.
  • Spatial precision은 깊이 데이터의 root mean square error를 계산하여 공간 노이즈를 평가합니다.
  • Temporal precision은 시간에 따른 깊이 값의 균일성을 평가합니다.
  • Fill Rate는 이미지 전체에서 유효한 깊이 픽셀의 백분율을 평가합니다.

정량적 지표를 활용하려면 깊이 데이터 Quality에 대한 철저한 이해와 면밀한 평가가 필수적입니다. 깊이 센서의 기능과 한계를 정확히 평가하고 특정 애플리케이션이나 시나리오에 대한 적합성을 판단하려면 통제되고 포괄적인 테스트 환경을 구축하는 것이 중요합니다.

깊이 Quality 평가의 일관성을 유지하려면 복잡하고 통제되지 않은 실제 시나리오를 피하고, 균일한 난반사 특성을 지닌 고반사율의 평면 표면을 사용하는 것이 좋습니다. 이는 캡처 장비에서 알려진 거리에 배치되는 평면형 기준 타겟을 의미하며 평가를 위한 필수 벤치마크 역할을 합니다. 이러한 조건을 사용할 수 없는 경우, 평평한 벽면이나 화이트보드도 적절한 테스트 타겟으로 사용할 수 있습니다. 각 지표는 카메라의 FOV 내에서 원하는 ROI에 대해 계산될 수 있습니다.

깊이 Quality 평가를 위한 기준 평면

Depth Accuracy#

Depth accuracy는 측정된 깊이 값이 객체와 캡처 장치 사이의 실제 거리에 얼마나 부합하는지를 나타냅니다. 정확도가 높다는 것은 깊이 측정값이 GT와 밀접하게 일치하여 거리 추정의 오차가 최소화됨을 의미합니다. 앞에서 언급한 바와 같이, 평가를 위한 깊이 데이터의 GT를 단순화하기 위해 센서에서 알려진 거리에 위치한 기준 평면을 사용하는 것이 권장되며, 평면과 센서 사이의 거리는 레이저 거리 측정기나 줄자 같은 일반적인 측정 도구를 사용하여 정밀하게 결정할 수 있습니다.

항목 설명
범주 Depth accuracy
목적/골 GT에 대한 지정된 ROI 내 깊이 이미지의 정확도를 측정합니다.
타겟 기준 평면\벽
분석된 이미지 깊이 이미지
ROI 예를 들어, 81% ROI는 이미지 너비의 90%와 이미지 높이의 90%를 곱한 것에 해당합니다.
설명 이 측정 항목은 카메라 배치로 인한 오류를 제외하고 단일 프레임 깊이 이미지에서 GT에 대한 픽셀별 깊이 정확도를 측정합니다. GT는 깊이 원점에서 기준 타겟까지의 거리를 측정하여 얻습니다. 깊이 정확도는 다음 공식을 사용하여 계산할 수 있습니다: Depth_accuracy_Signed = Median(CP_Length – GT + PP_Dist)
여기서 CP_Dist는 깊이 원점과 GT 측정 방향을 따라 피팅된 평면 사이의 실제 길이를 나타내며, PP_Dist는 포인트 클라우드에서 피팅된 평면까지의 픽셀별 거리를 나타냅니다.
의사 코드 INPUT: Depth_Image, GT
REMOVE all zeros in Depth_Image
COMPUTE Point_Cloud (X,Y,Z matrix) from Depth_Image
COMPUTE Fitted_Plane to Point_Cloud
REMOVE outliers: all Z values that below percentile 0.5 % and above percentile 99.5 %
COMPUTE the actual length between the depth origin and the Fitted_Plane along the GT vector as CP_Dist
COMPUTE distance of all points to the Fitted_Plane as PP_Dist
COMPUTE Depth_Error = CP_Dist – GT + PP_Dist
COMPUTE Median_Value = 50 % percentile value of Depth_Error
OUPUT: Depth_accuracy_Signed = 100 * Median_Value / GT
출력 값 Depth_accuracy_signed
출력 단위 [%]

Spatial Precision#

정확도가 실제 깊이에서의 체계적인 편차와 관련된 것인 반면, 공간 정밀도는 깊이 측정값의 일관성과 관련이 있습니다. 공간 정밀도는 평면 타겟 전반에 걸쳐 깊이 데이터의 노이즈 수준을 나타냅니다. 공간 정밀도가 높은 깊이 데이터는 동일한 장면 내의 동일하거나 유사한 표면에 대해 깊이 값의 분산이 낮습니다. 공간 정밀도를 평가하려면 알려지거나 제어된 위치에서 기준 평면의 측정을 수행하고, 얻은 깊이 값의 RMS 오차를 계산한 다음, 이를 원하는 정밀도 임계값 또는 사양과 비교할 수 있습니다.

RMS 오차는 거리 또는 디시밀러리티(disparity) 단위로 표현할 수 있지만, 깊이와 노이즈 간의 결합을 고려할 때 카메라와 평면 타겟 사이의 거리로 정규화하여 백분율(%) 단위로 나타낼 수 있습니다.

항목 설명
범주 공간 정밀도
목적/골 최적합 평면을 기준으로 깊이 값의 노이즈 수준을 측정합니다.
타겟 기준 평면/벽
분석된 이미지 깊이 이미지
ROI 예를 들어, 81% ROI는 이미지 너비의 90%와 이미지 높이의 90%를 곱한 것에 해당합니다.
설명 각 유효 픽셀에서 최적합 평면까지의 거리의 RMS를 계산하고, 이를 광학 중심에서 평면까지의 거리로 정규화하며, RMS 오차 출력은 백분율로 표현됩니다.
의사 코드 INPUT: Depth_Image
REMOVE all zeros in Depth_Image
COMPUTE Point_Cloud (X,Y,Z matrix) from Depth_Image
COMPUTE Fitted_Plane to Point_Cloud
REMOVE outliers: all Z values that below percentile 0.5 % and above percentile 99.5 %
COMPUTE distance between the depth origin and the Fitted_Plane as CP_Dist
COMPUTE distance of all points to the Fitted_Plane as PP_Dist
COMPUTE RMSE = RootMeanSquare of PP_Dist
OUPUT: Spatial_precision = 100 * RMSE / CP_Dist
출력 값 Spatial_precision
출력 단위 [%]

Temporal Precision#

시간적 정밀도는 ROI 내에서 시간에 따른 깊이 값의 변화를 측정합니다. 깊이 이미지의 Quality은 시간적 일관성을 바탕으로 평가할 수 있습니다. 고품질 깊이 이미지는 시간에 따라 부드럽고 안정적인 깊이를 유지해야 합니다. 이 방법은 특정 프레임 수(예: 30)에 걸친 깊이 값의 표준편차(STD)로 정의됩니다. 시간적 노이즈의 정량화는 픽셀별로 수행된 후, 지정된 시간에 걸쳐 각 픽셀의 표준편차를 계산하는 방식으로 진행됩니다.

항목 설명
범주 깊이 시간적 노이즈
목적/골 시간에 따른 픽셀당 깊이 값의 변화 정도를 측정합니다.
타겟 벽
분석된 이미지 N개의 연속 깊이 이미지
ROI 예를 들어, 81% ROI는 이미지 너비의 90%와 이미지 높이의 90%를 곱한 것에 해당합니다.
설명 픽셀별 시간적 노이즈(Temporal Noise)는 N개의 연속 프레임에 걸쳐 각 픽셀의 깊이 값에 대한 표준 편차(STD)를 측정하여 STD 행렬을 생성하는 방식으로 정의됩니다. 시간적 노이즈는 STD 행렬의 중앙값을 목표 거리 Z에 대한 백분율로 나타낸 것입니다. 이 측정 항목은 NaN 및 0인 깊이 데이터를 제외합니다.
의사 코드 입력: Depth_Image의 N개 이미지, GT
Depth_Tensor를 생성하기 위해 각 N개의 Depth_Image에 대해 루프 실행
Depth_Tensor = (Depth_Image,N) 할당 (차원은 (width,height,N))
Depth_Tensor에서 모든 0 제거
STD_Matrix = Depth_Tensor의 표준 편차(width,height,all) 계산
Median_STD = STD_Matrix의 50% 백분위수 값 계산
출력: 100 * Median_STD / Z
출력 값 벽면까지의 거리로 나눈 STD 행렬의 중앙값
출력 단위 [%]

Fill Rate#

고품질의 깊이 이미지는 누락된 영역 없이 시야(field of view) 전체를 균일하게 커버해야 합니다. Fill rate는 깊이 이미지에서 0이 아닌 팩셀의 비율을 측정하여 깊이 커버리지를 나타냅니다. 높은 Fill rate는 대부분의 씬 포인트가 성공적으로 캡처되었음을 나타냅니다.

항목 설명
범주 Fill rate
목적/골 지정된 ROI 내의 유효한 깊이 값 비율을 측정합니다.
타겟 기준 평면/벽
분석된 이미지 깊이 이미지
ROI 예를 들어, 81% ROI는 이미지 너비의 90%와 이미지 높이의 90%를 곱한 것에 해당합니다.
설명 지정된 ROI 내의 모든 픽셀에 대한 유효한 깊이 값을 가진 픽셀의 비율을 계산합니다.
의사 코드 입력: Depth_Image
Total_Num = size(Depth_Image) 계산
Valid_Image = Depth_Image 할당
Valid_Image에서 모든 0 제거
Valid_Num = size(Valid_Image) 계산
Fill_Rate = 100 * Valid_Num / Total_Num 계산
출력 Fill_Rate
출력 값 지정된 ROI 내의 유효한 픽셀 비율입니다.
출력 단위 [%]