Depth Quality 지표#
용어#
아래 표에는 이 항목에 나타나는 용어와 약어가 나열되어 있습니다.
| 용어 | 설명 |
|---|---|
| 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은 깊이 데이터의 제곱 평균 제곱근 오차를 계산하여 공간 노이즈를 평가합니다.
- Temporal precision은 시간에 따른 깊이 값의 균일성을 평가합니다.
- Fill Rate는 이미지 전체에서 유효한 깊이 픽셀의 백분율을 평가합니다.
정량적 메트릭을 활용하려면 깊이 데이터 품질에 대한 철저한 이해와 꼼꼼한 평가가 필요합니다. 제어되고 포괄적인 테스트 환경을 구축하는 것은 깊이 센서의 기능과 한계를 정확히 평가하고 특정 애플리케이션이나 시나리오에 대한 적합성을 결정하는 데 중요합니다.
깊이 품질 평가의 일관성을 유지하기 위해 복잡하고 제어되지 않는 실제 시나리오를 피하고, 균일한 난반사 특성을 가진 고반사율 평면을 사용하는 것이 좋습니다. 이는 캡처 장치에서 알려진 거리에 배치되는 평면 기준 타겟을 의미하며 평가를 위한 필수 벤치마크 역할을 합니다. 이러한 조건을 사용할 수 없는 경우 평평한 벽면이나 화이트보드도 적절한 테스트 타겟으로 사용할 수 있습니다. 각 메트릭은 카메라의 FOV 내에서 원하는 ROI에 대해 계산할 수 있습니다.

Depth Accuracy#
Depth accuracy는 측정된 깊이 값이 객체와 캡처 장치 사이의 실제 거리에 대응하는 정도를 나타냅니다. 정확도가 높다는 것은 깊이 측정값이 GT와 밀접하게 일치하여 거리 추정의 오차를 최소화함을 의미합니다. 앞서 언급했듯이, 평가를 위한 깊이 데이터의 GT를 단순화하기 위해 센서에서 알려진 거리에 배치된 기준 평면을 권장하며, 평면과 센서 사이의 거리는 레이저 거리 측정기나 줄자 같은 일반적인 측정 도구를 사용하여 정확하게 결정할 수 있습니다.
| 항목 | 설명 |
|---|---|
| Category | 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는 피팅된 평면에 대한 포인트 클라우드의 픽셀별 거리를 나타냅니다. |
| 의사 코드 | 입력: Depth_Image, GT Depth_Image의 모든 0 제거 Depth_Image에서 Point_Cloud(X,Y,Z 매트릭스) 계산 Point_Cloud에 대한 Fitted_Plane 계산 이상값 제거: 0.5 % 백분위수 미만 및 99.5 % 백분위수를 초과하는 모든 Z 값 GT 벡터를 따라 심도 원점과 Fitted_Plane 사이의 실제 길이를 CP_Dist로 계산 Fitted_Plane에 대한 모든 포인트의 거리를 PP_Dist로 계산 Depth_Error = CP_Dist – GT + PP_Dist 계산 Median_Value = Depth_Error의 50 % 백분위수 값 계산 출력: Depth_accuracy_Signed = 100 * Median_Value / GT |
| Output Value | Depth_accuracy_signed |
| 출력 단위 | [%] |
Spatial Precision#
정확도가 실제 심도와의 체계적인 편차와 관련된 것인 반면, 공간 정밀도는 심도 측정의 일관성과 관련이 있습니다. 공간 정밀도는 평면 타겟 전반에 걸쳐 심도 데이터의 노이즈 수준을 나타냅니다. 공간 정밀도가 높은 심도 데이터는 동일한 장면 내의 동일하거나 유사한 표면에 대해 심도 값의 분산이 낮습니다. 공간 정밀도를 평가하려면 알려지거나 제어된 위치에서 기준 평면의리 측정을 수행하고, 얻어진 심도 값의 RMS 오차를 계산한 후 이를 원하는 정밀도 임계값 또는 사양과 비교할 수 있습니다.
RMS 오차는 거리 또는 시차 단위로 표현할 수 있으나, 심도와 노이즈 간의 결합을 고려할 때 카메라와 평면 타겟 간의 거리로 정규화하여 백분율(%) 단위로 나타낼 수 있습니다.
| 항목 | 설명 |
|---|---|
| Category | 공간 정밀도 |
| 목적/목표 | 최적합 평면을 기준으로 심도 값의 노이즈 수준을 측정합니다. |
| 타겟 | 기준 평면/벽 |
| 분석된 이미지 | 심도 이미지 |
| ROI | 예를 들어, 81 % ROI는 이미지 너비의 90 %와 이미지 높이의 90 %를 곱한 값에 해당합니다. |
| 설명 | 각 유효 픽셀에서 최적합 평면까지의 거리의 RMS를 계산하고, 광학 중심에서 평면까지의 거리로 정규화하여 RMS 오차 출력을 백분율로 나타냅니다. |
| 의사 코드 | 입력: Depth_Image Depth_Image의 모든 0 제거 Depth_Image에서 Point_Cloud(X,Y,Z 매트릭스) 계산 Point_Cloud에 대한 Fitted_Plane 계산 이상값 제거: 0.5 % 백분위수 미만 및 99.5 % 백분위수를 초과하는 모든 Z 값 심도 원점과 Fitted_Plane 사이의 거리를 CP_Dist로 계산 Fitted_Plane에 대한 모든 포인트의 거리를 PP_Dist로 계산 RMSE = PP_Dist의 RootMeanSquare 계산 출력: Spatial_precision = 100 * RMSE / CP_Dist |
| Output Value | Spatial_precision |
| 출력 단위 | [%] |
Temporal Precision#
시간 정밀도는 ROI 내에서 시간에 따른 심도 값의 변동을 측정합니다. 심도 이미지의 품질은 시간적 일관성을 기준으로 평가할 수 있습니다. 고품질 심도 이미지는 시간에 따라 부드럽고 안정적인 심도를 유지해야 합니다. 이 방법은 특정 프레임 수(예: 30개)에 걸쳐 심도 값의 STD로 정의됩니다. 시간적 노이즈의 정량화는 픽셀별로 수행된 다음, 지정된 시간에 걸쳐 각 픽셀의 STD를 계산하여 진행됩니다.
| 항목 | 설명 |
|---|---|
| Category | 심도 시간 노이즈 |
| 목적/목표 | 시간에 따른 픽셀당 심도 값의 변동 정도를 측정합니다. |
| 타겟 | 벽 |
| 분석된 이미지 | N개의 순차적인 심도 이미지 |
| ROI | 예를 들어, 81 % ROI는 이미지 너비의 90 %와 이미지 높이의 90 %를 곱한 값에 해당합니다. |
| 설명 | 픽셀별 시간 노이즈는 N개의 연속 프레임에 걸쳐 각 픽셀의 심도 값에 대한 STD를 측정하여 STD 매트릭스를 생성하는 방식으로 정의됩니다. 시간 노이즈는 대상 거리 Z에 대한 백분율로서 STD 매트릭스의 중앙값으로 정의됩니다. 이 측정 항목은 NaN 및 0 심도 데이터를 제외합니다. |
| 의사 코드 | 입력: N개의 Depth_Image 이미지, GT Depth_Tensor를 생성하기 위해 각 N개의 Depth_Image에 대해 루프 실행 Depth_Tensor = (Depth_Image,N) 할당 //차원은 (width,height,N) Depth_Tensor에서 모든 0 제거 STD_Matrix = Depth_Tensor(width,height,all)의 STD 계산 Median_STD = STD_Matrix의 50 % 백분위수 값 계산 출력: 100 * Median_STD / Z |
| Output Value | STD 매트릭스의 중앙값을 벽까지의 거리로 나눈 값 |
| 출력 단위 | [%] |
Fill Rate#
고품질의 깊이 이미지는 누락된 영역 없이 시야 전체를 균일하게 커버해야 합니다. Fill rate는 깊이 이미지에서 0이 아닌 픽셀의 비율을 측정하여 깊이 커버리지를 나타냅니다. 높은 Fill rate는 대부분의 장면 포인트가 성공적으로 캡처되었음을 나타냅니다.
| 항목 | 설명 |
|---|---|
| Category | Fill rate |
| 목적/목표 | 지정된 ROI 내에서 유효한 깊이 값의 비율을 측정합니다. |
| 타겟 | 기준 평면/벽 |
| 분석된 이미지 | 심도 이미지 |
| ROI | 예를 들어, 81 % ROI는 이미지 너비의 90 %와 이미지 높이의 90 %를 곱한 값에 해당합니다. |
| 설명 | 지정된 ROI 내의 모든 픽셀에 대한 유효한 깊이 값을 가진 픽셀의 비율을 계산합니다. |
| 의사 코드 | INPUT: Depth_Image COMPUTE Total_Num = size(Depth_Image) ASSIGN Valid_Image = Depth_Image REMOVE all zeros from Valid_Image COMPUTE Valid_Num = size(Valid_Image) COMPUTE Fill_Rate = 100 * Valid_Num / Total_Num Output Fill_Rate |
| Output Value | 지정된 ROI 내의 유효한 픽셀 비율입니다. |
| 출력 단위 | [%] |