概要
距離推論技術は、自動運転やロボティクス、AR/VRなどの分野で高い精度が求められますが、
従来の手法には大きな課題がありました。たとえば、距離測定において主流のLiDARは非常に高価で、設置場所に厳しい制約があるため、実用化の際のコスト面や環境適応性が大きな問題となっています。また、ステレオカメラも複数のカメラ間の精密なキャリブレーションが必要で、照明条件などの変動に弱いというデメリットが指摘されています。
こうした背景の中、近年、MiDASをはじめとするAIを活用した単眼距離推論アルゴリズムが注目を集めています。しかし、単眼距離推論技術においても、距離推論の精度向上は常に大きな課題となっており、特に絶対距離の算出は従来のアプローチでは十分な精度が得られにくい状況でした。
当社は、このような課題を解決するために、Toyota Research Institute(以下TRI)の単眼距離推論技術に着目し、USBカメラ1台を用いて安価かつ設置場所の制約が低いシステムの実現を目指しました。
独自に絶対距離付きのデータセットを作成し、このデータを用いて学習と精度検証を行った結果、従来の技術に比べて有望な精度が確認されました。特に、従来技術の欠点であった絶対距離推論の精度向上に成功し、実用への可能性を示唆するものとなりました。
この記事の内容に関しては、TRIが開発したAIモデルを基にしています。
詳細については以下のリンク「Monocular Depth in the Real World」をご参照ください。
使用したAIモデルについて
本距離推論技術は、LiDARなどによる距離データを学習の教師データとして扱うことなく高精度な距離推論を目指すものですが、
(技術についての詳細は Monocular Depth in the Real World の記事をご確認ください)
今回はその前段として、まずは推論精度を最大化することを目指し、 LiDARとカメラを組み合わせた"教師データ作成用システム"を独自に用意し、教師データの作成から学習、推論までを行いました。
また、入力画像に対する距離推論の出力は各ピクセルに対する、距離情報(絶対距離)です。
実際のユースケースを考えると、この距離情報を使用してある障害物までの距離を算出するなど、
"ピクセル"単位の距離からオブジェクトなどの"ある領域"単位での距離という情報として算出することでより実際に活用がしやすい形になるのではといった想定のもと、
物体検出(物体に対する矩形領域検出)と組み合わせることで、”各物体に対する距離”の情報が提示できるデモシステムを目指し、開発をしました。
なお、今回は物体検出モデルにYoloのv7を使用しました。
手順と構成
手順
- カメラ+LiDARを用いて、現場にて教師データを作成
- 学習
- 距離推論
- 推論結果

各フェーズの入出力
教師データ作成
- 入力
- LiDARによる距離データ
- カメラによる画像データ
- 出力
- 画像データとLiDARデータが時刻同期されたデータセット
学習
- 入力
- 画像データとLiDARデータが時刻同期されたデータセット
- 出力
- 学習モデル
距離推論
- 入力
- 学習モデル
- LiDARによる距離データ ※精度測定用
- カメラ(またはファイル)による画像データ
- 出力
- 各ピクセルに対する距離情報
- 各オブジェクトに対する距離情報(絶対値)
教師データ作成用システム
当社の教師データ作成システムは、単眼カメラとLiDARを組み合わせて使用しています。LiDARによって取得した距離情報を、カメラ画像の各画素に対応させることで教師データを作成します。この手法により、カメラ画像の各画素が示す位置における正確な距離データを得ることができます。
カメラとLiDARのデータを統合して利用する際に、正確なキャリブレーションが非常に重要です。市販のキャリブレーションツールを活用することで、キャリブレーションプロセスを効率化し、高精度な結果を得ています。

当社ではユースケースに応じてLiDARやカメラの選定、筐体の作成、LiDARとカメラのキャリブレーションを行い、教師データ作成用システムを構築することが可能です。
推論処理フロー

推論結果の例
屋外の交差点に対して、歩道橋の上から撮影・データ作成したシーンを代表例としてご紹介します。
10メートル毎に、バウンディングボックスの色を変えて表示するようにしています。
- クラス(人、車など)による色の区別ではないことにご注意ください。
推論精度
上記の結果に対する距離推論の精度は、以下のとおりです。
Metric | Value |
---|---|
Mean Error (ME) | 0.03 m |
Mean Absolute Error (MAE) | 0.12 m |
Root Mean Squared Error (RMSE) | 0.31 m |
Absolute Relative Difference (abs_rel) | 0.01 |
Squared Relative Difference (sqr_rel) | 0.00 |
RMSE Log (rmse_log) | 0.02 |
Accuracy a1 | 99.88% |
Accuracy a2 | 100.00% |
Accuracy a3 | 100.00% |
各指標の説明







評価
それぞれ、最終的な利用ケースの求める基準によって許容範囲は変わりますが、
- Mean Error (ME) = 0.03 m
符号つきの平均誤差が非常に小さいため、全体的に過大評価・過小評価のバイアスがほとんどないと考えられます。 - Mean Absolute Error (MAE) = 0.12 m
平均誤差の絶対値が0.12 mということです。
距離レンジや使用シーンにもよりますが、絶対的な誤差として 10cm 前後に収まります。 - Root Mean Squared Error (RMSE) = 0.31 m
大きな誤差をより強く反映するRMSEでも0.31 mに留まっています。
MAEよりも少し大きいのは当然ですが、こちらも小さめの値といえます。
極端に大きな誤差(異常値)はあまり発生していないと推測できます。 - Absolute Relative Difference (abs_rel) = 0.01
相対誤差が平均1%というのは、非常に高精度を示します。
例えば、実際の距離が10 mなら、誤差は平均0.1 m程度という計算になります。 - Squared Relative Difference (sqr_rel) = 0.00
二乗相対誤差がほとんど0ということは、距離が大きな場合でも誤差がきわめて少ないことを表します。
abs_relと組み合わせて、距離の大小にかかわらず推論精度が高いと考えられます。 - RMSE Log (rmse_log) = 0.02
ログスケールで見ても誤差がわずかということは、短距離から長距離まで相対的にきわめて安定していることを示唆します。
遠方ほど誤差が大きくなりがちな距離推論で、この値が小さいのは好ましい傾向です。 - Accuracy a1 = 99.88%, a2 = 100.00%, a3 = 100.00%
a1(1.25倍以内)で約99.88%に達しているのは極めて高い精度の証拠です。
a2, a3が100%を記録している点から、やや緩い基準ではすべての画素が「誤差許容範囲内」に入っていると解釈できます。
推論速度
エッジ対応検討
実際の利用ケースを考えると、必ずしもデスクトップPCを現場に置ける環境ではないことや、
価格面でもエッジデバイスとしての利用が想定されます。
そこで、以下のデバイスで同じアプリを動作させ、速度を測定しました。
- Jetson AGX Orin
- Jetson Orin NX
- Jetson Orin Nano
また、そのとき高速化される手段として代表的なモデルのTensorRT化をしたモデルでも測定を行った。
- 測定モデル
- TensorRTなし(FP32)
- TensorRTあり(FP16)
- 測定条件
- USBカメラを使用 (解像度640x480, 30 FPS)
- 画像読み込みから描画までを含めたFPSを計測
- フレームレートは物体検出で検出される対象物の数によって変化するため、0個に固定
測定結果
TensorRTあり(FP16) | TensorRTなし(FP32) | |
---|---|---|
Jetson AGX Orin |
AVG: 15.0 (MAX: 21.1) |
AVG: 7.5 (MAX: 7.9) |
Jetson Orin NX |
AVG: 8.7 (MAX: 9.1) |
AVG: 3.6 (MAX: 3.7) |
Jetson Orin Nano |
AVG: 6.3 (MAX: 6.4) |
AVG: 2.5 (MAX: 2.5) |
ちなみに、学習に使用しているデスクトップPC(GPU: NVIDIA RTX6000 Ada)
では、FP32のモデルのときに50FPS程度で動作しています。
モデルの軽量化に対する精度評価
本検証では、Jetson AGX Orinを用いた距離推論モデルに対して、モデルのデータ精度を変えて推論精度の劣化度合いを評価を行った結果を記載します。
- 使用したモデルの精度
- FP32
- TensorRT(FP16)
- TensorRT(INT8)
- 対象データに関して
事前に撮影したオフィス内シーンに対する距離推論を、各データ精度にて実施しました。
(映像はプライバシー保護の観点で掲載はしておりません)
- FP32
Metric Value Mean Error (ME) -0.05 m Mean Absolute Error (MAE) 0.20 m Root Mean Squared Error (RMSE) 0.69 m Absolute Relative Difference (abs_rel) 0.05 Squared Relative Difference (sqr_rel) 0.06 RMSE Log (rmse_log) 0.13 Accuracy a1 95.97% Accuracy a2 98.19% Accuracy a3 99.10% - TensorRT(FP16)
Metric Value Mean Error (ME) -0.25 m Mean Absolute Error (MAE) 0.42 m Root Mean Squared Error (RMSE) 0.98 m Absolute Relative Difference (abs_rel) 0.13 Squared Relative Difference (sqr_rel) 0.17 RMSE Log (rmse_log) 0.21 Accuracy a1 89.64% Accuracy a2 96.46% Accuracy a3 98.14% - TensorRT(INT8)
Metric Value Mean Error (ME) -0.89 m Mean Absolute Error (MAE) 1.25 m Root Mean Squared Error (RMSE) 3.70 m Absolute Relative Difference (abs_rel) 0.26 Squared Relative Difference (sqr_rel) 0.79 RMSE Log (rmse_log) 0.43 Accuracy a1 70.45% Accuracy a2 87.59% Accuracy a3 94.10%
考察
- Mean Error (ME): FP32 で -0.05 m に対し、FP16 では -0.25 m と、オフセットが大きい
- Mean Absolute Error (MAE): FP32 で 0.20 m に対し、FP16 では 0.42 m と、2 倍程度の誤差
-
abs_rel: FP32 が 0.05、FP16 は 0.13 と大きく上昇
Accuracy a1: FP32 が 95.97% に対して FP16 は 89.64% - FP16 化に伴う数値精度の低下と、TensorRT による最適化プロセスが誤差を大きくしている可能性があります。ただし、a2, a3 などの指標ではいずれも 96%以上となっており、絶対的にはある程度高い精度を維持しています。
- 本来は同じデータに対する速度と精度の比較をすることが望ましいですが、
現時点ではそれぞれ個別の比較となっていることにご注意ください。
結論
TRIの単眼距離推論技術を基に独自に絶対距離付きのデータセットを作成して学習を行い、物体検出技術と組み合わせることで特定の物体に対する絶対距離を高い精度で推論するアプリケーションを開発しました。
また、デスクトップPCのみならずJetson NXなどのエッジデバイス上でも同アプリケーションを動作させることにも成功し、安価かつ設置場所の制約の低い、実用的なソリューションとして期待されるものとなりました。
- どの程度誤差が生じるかは利用シーンの条件によって異なります。
さいごに
今回の単眼距離推論技術の詳細へのご興味や、導入アプリケーションアイディアをお持ちの方は、
ページ内のお問い合わせボタンよりお気軽にお問い合わせください!