Depth Quality メトリクス#
用語#
以下の表には、このトピックで使用される用語と頭字語が記載されています。
| 用語 | 説明 |
|---|---|
| ROI | Region of Interest |
| FOV | 視野 (FOV) |
| 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とは、測定された深度値が、オブジェクトと撮像デバイス間の実際の距離にどの程度一致しているかを示します。精度が高いということは、深度測定値が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 |
| 出力単位 | [%] |
空間精度#
精度が真のデプスからの体系的な偏差に関するものであるのに対し、空間精度はデプス測定の再現性に関連しています。空間精度は、平面ターゲット全体におけるデプスデータのノイズレベルを示します。空間精度の高いデプスデータは、同一シーン内の同一または類似の表面に対するデプス値の分散が小さくなります。空間精度を評価するには、既知または制御された位置にある基準平面の測定を行い、取得したデプス値のRMS誤差を計算し、それらを目標とする精度しきょくい値または仕様と比較します。
RMS誤差は距離または視差の単位で表すことができますが、デプスとノイズの結合を考慮すると、カメラと平面ターゲット間の距離で正規化し、パーセント(%)単位で表すこともできます。
| 項目 | 説明 |
|---|---|
| カテゴリ | 空間精度 |
| 目的/ゴール | 最適フィッティング平面に対するデプス値のノイズレベルを測定します。 |
| ターゲット | 基準平面/壁 |
| 解析済み画像 | デプス画像 |
| 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 |
| 出力単位 | [%] |
時間的精度#
時間的精度は、ROI内における時間経過に伴うデプス値の変動を測定します。デプス画像の品質は、その時間的安定性に基づいて評価できます。高品質のデプス画像は、時間経過に対してデプスが滑らかで安定している必要があります。この手法は、特定数(例えば30)のフレームにわたるデプス値の標準偏差(STD)として定義されます。時間的ノイズの定量化はピクセル単位で実行され、その後、指定された時間にわたる各ピクセルのSTDが計算されます。
| 項目 | 説明 |
|---|---|
| カテゴリ | デプスの時間的ノイズ |
| 目的/ゴール | 時間経過に伴うピクセルごとのデプス値の変動の度合いを測定します。 |
| ターゲット | 壁 |
| 解析済み画像 | N個の連続するデプス画像 |
| ROI | 例えば、81%のROIは、画像幅の90%に画像高さの90%を掛け合わせた値に相当します。 |
| 説明 | ピクセルごとの時間的ノイズは、N個の連続するフレームにわたる各ピクセルのデプス値のSTDを測定してSTDマトリックスを作成することにより定義されます。時間的ノイズは、ターゲット距離Zに対するパーセンテージとして表されるSTDマトリックスの中央値として定義されます。このメトリックでは、NaNおよびゼロのデプスデータは除外されます。 |
| 疑似コード | INPUT: N images of Depth_Image, GT LOOP for each of N Depth_Image to create Depth_Tensor ASSIGN Depth_Tensor = (Depth_Image,N) //dimension is (width,height,N) REMOVE all zeros from Depth_Tensor COMPUTE STD_Matrix = STD of Depth_Tensor(width,height,all) COMPUTE Median_STD = 50 % percentile value of STD_Matrix Output: 100 * Median_STD / Z |
| 出力値 | STDマトリックスの中央値を壁までの距離で割った値 |
| 出力単位 | [%] |
Fill Rate#
高品質なデプス画像は、領域を欠落させることなく、視野全体を均一にカバーする必要があります。Fill rateはデプス画像内の非ゼロピクセルの割合を測定し、デプスデータの網羅性を表します。Fill rateが高いということは、シーン内のほとんどのポイントが正常に取得されていることを示します。
| 項目 | 説明 |
|---|---|
| カテゴリ | 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 |
| 出力値 | 指定されたROI内の有効なピクセルの割合。 |
| 出力単位 | [%] |