カメラ画像から深度を推定するモデルは多数公開されています。それらが実際にLiDAR点群の密化に使えるのかを、同一データで比較しました。評価はLiDAR点を50/50に分割し、片方で作った深度でもう片方を予測する leave-one-out RMSE です。
| 順位 | 手法 | 合わせ方 | RMSE | 誤差10cm未満の割合 |
|---|---|---|---|---|
| 1 | LiDAR点の古典的補間 | — | 0.482 m | 88.2% |
| 2 | 古典補間+RGBガイデッドフィルタ | — | 0.485 m | 86.8% |
| 3 | DPT-Large | RANSAC / アフィン | 1.035 m | 21.4% |
| 4 | DPT-Large | 対数 | 1.039 m | 23.9% |
| 5 | Apple DepthPro | べき乗則 | 1.041 m | — |
| 6 | ZoeDepth | 対数 | 1.049 m | 21.3% |
| 7 | Distill-Any-Depth | アフィン | 1.057 m | 26.8% |
| 8 | Depth Anything V2 Small | 対数 | 1.058 m | 23.2% |
| 9 | GLPN | RANSAC | 1.097 m | 17.8% |
| 10 | PromptDA | 対数 | 1.156 m | 6.5% |
この時点での結論は「ニューラル深度は使い物にならない」でした。どのモデルもLiDAR点をそのまま補間するだけの古典手法の半分以下の精度しか出せていません。
上の表で使っていたのは、単眼深度をLiDARに合わせるための単純な変換(アフィン・対数・べき乗則・RANSAC)です。これをガウス過程回帰(Random Fourier Features による近似、n=20,000)に置き換えたところ、結果が反転しました。
| 手法 | RMSE | 備考 |
|---|---|---|
| LiDAR自身の測定ばらつき(理論下限) | 約 0.401 m | これ以上は手法では改善しない |
| Depth Anything V2 + GPR-RFF(n=20k, ls=12) | 0.4554 m | 最良 |
| 古典補間(同一条件・split=0.5) | 0.4817 m | 最良手法が2.6cm上回った |
| Depth Anything V2 + アフィン/対数 | 1.03〜1.06 m | 同じモデルでも合わせ方でここまで変わる |
再現の役に立つよう、探索の実測値も出しておきます。
| パラメータ | 値 | RMSE | 所見 |
|---|---|---|---|
| 長さスケール ls | 10 | 0.4764 m | 空間変化を追いすぎて汎化が悪い |
| 11 | 0.4574 m | −19.0mm の大改善 | |
| 12 | 0.4554 m | 最適点 | |
| 13 | 0.4568 m | +1.4mm と反転して悪化 | |
| RFF次元 n | 15,000 | 0.4594 m | |
| 20,000 | 0.4554 m | 最適点 | |
| 25,000 | 0.4615 m | 共役勾配法へ切り替わり悪化 | |
| 30,000 | 0.4574 m | n=20kには及ばず |
正則化係数αは実効値0.14〜1.6の広い範囲でRMSE差0.5mm未満のプラトーでした。つまりαの調整に時間をかける意味はなく、長さスケールの選択が支配的です。この環境では ls=12(12m相当)が最適で、これは計測空間の特性的なスケールと解釈できます。
正しくは、LiDAR点を分割して片方でもう片方を予測する leave-one-out 評価を使います。当社ではこの取り違えに気づくまで、実際に偽の改善を追いかけていました。同じ落とし穴に落ちる人が減るよう記録しておきます。
LiDARとカメラの相対位置・姿勢(外部パラメータ)は、通常チェッカーボードを撮って求めます。これを board なしで詰められるかを試しました。
| やったこと | カメラ画角内への投影率 | 判定 |
|---|---|---|
| 単位行列(初期値) | 0.3% | 失敗 |
| エッジ整合+相互情報量の自動探索 | 0.4% | 失敗(局所最適に収束) |
| 物理制約つき10万サンプルのランダム探索 | 0.3% | 失敗 |
| 12方向の基底回転テストで象限を特定 → 局所最適化 | 21.6% | 成功 |
広い空間をランダムに探すより、基底となる向きを先に離散的に当ててから局所最適化する方が確実でした。その後のターゲットレス精緻化で、投影エッジ誤差の平均を 39.15px → 20.15px(約48.5%改善)まで詰めています。
意外に知られていませんが、静止して撮る限り、カメラで実際に色が付くのは点群のごく一部です。当社の計測では、カメラ画角に入る点は全体の6〜21%程度でした。残りは反射強度によるグレースケールや、平面の延長で埋めることになります。
また、カメラと点群を突き合わせた欠損分析では、欠損率19.6%のうち鏡面金属が12%、近接したソファが14%、遠方が6%を占めていました。素材と距離で明確に傾向が出ます。
被覆率を上げる現実的な方法は一つで、パンしながら並進して多視点で撮り、多フレームを融合することです。静止撮影では被覆はほとんど増えません。
ここに書いた数値は、すべて特定の1環境(Livox MID-360・室内・309フレーム・未校正のカメラ)での実測です。一般的なベンチマークではありません。とくに深度モデルの順位は、カメラの内部パラメータが未確定であることの影響を受けている可能性があります。
それでも公開する理由は、「合わせ方がモデルより効く」「レンダリングPSNRは偽指標」「ターゲットレス校正の限界」の3点は、環境によらず再現する性質の知見だと考えるからです。同じ課題に取り組む方の時間の節約になれば幸いです。
Q. 単眼深度推定モデルはLiDARの代わりになりますか
そのままでは代わりになりません。アフィン変換や対数変換で合わせた場合のRMSEは1.03〜1.16mで、LiDAR点を古典補間した0.48mに大きく劣ります。ただし合わせ方をガウス過程回帰に変えると0.455mまで改善し、古典補間を2.6cm上回りました。
Q. LiDAR点群の深度精度はどこまで上げられますか
LiDAR自身の測定ばらつきが下限になります。当社の環境では約0.401mで、最良手法0.455mはそこまで5.4cmでした。ここから先は手法ではなくセンサーか計測条件の問題です。
Q. 点群の色付けをレンダリングPSNRで評価してよいですか
いけません。66〜70dBという値が出ますが、99.8%が自己投影アーティファクトです。leave-one-out評価を使ってください。
Q. GNSSが使えない場所でも点群は取れますか
取れます。LiDARによる自己位置推定(SLAM)を使えば、屋内・地下・橋梁下など衛星の電波が届かない環境でも計測できます。当社の非GNSSドローン開発はこの技術を前提にしています。
株式会社revotは、非GNSS環境での自律飛行ドローン、LiDARによる三次元計測、およびそれらを組み込んだシステムの開発を行っています。計測・点群処理・センサーフュージョンの受託開発のご相談を受け付けています。
お問い合わせ / ドローン開発 / アプリ・システム開発