レーダーとライダー(LIDAR)のデータを用いてトレーニングされたディープ ニューラルネットワークが、2 次元画像から 3 次元の距離を予測
原則として「物体との距離を判断できないなら運転すべきでない」と言うのは簡単です。しかし問題は、距離を判断することが言うほど簡単ではないということです。
むろん、私たち人間は解像度の高い、緊密に連動した 2 つの視覚センサーである「目」を持ち、脳内で立体視処理を行うことで距離を測ることができます。
それに対して、人間の目のように 2 台のカメラを用いた立体視システムを自動運転車に搭載する場合は、デリケートな問題が発生します。カメラの連動が少しでもうまくいかないと、いわゆる「タイミングのずれ」が生じ、距離を正確に推定できなくなるためです。
NVIDIA が、1 台のカメラから得たデータで物体までの距離の検知を行うのはこうした理由からです。とはいえ、カメラを 1 台しか使わないと、それはそれで一連の課題が生じます。
ディープ ニューラルネットワークが登場するまでは、1 台のカメラから得た画像を基に物体までの距離を計算する方法として、地面が平らであることを前提とするものが一般的でした。この前提の下、カメラ画像の 2 次元情報を用いて 3 次元の世界をモデル化していたのです。その場合、基準となる車両から物体までの距離を予測するのに光学ジオメトリを使うことになります。
しかし現実世界では、この方法が常にうまくいくわけではありません。進路に勾配があれば、地面が平らでないという理由だけで計算が狂ってしまいます。
誤った予測は、誤った結果につながる可能性があります。自動クルーズ コントロールや、車線変更時の安全確認、車線変更の実行などはすべて、距離の正確な測定を頼りにしたものだからです。
たとえば、距離を過大評価 (実際よりも物体までの距離が遠いと判断) してしまうと、自動クルーズ コントロールが作動しなかったり、最悪の場合自動緊急ブレーキが作動しないという事態を招きかねません。
また、障害物が実際よりも近くにあると誤って判断してしまっても、クルーズ コントロールや緊急ブレーキが必要ない場面で作動するといった、別の不具合を招くことが考えられます。
ディープラーニングで距離を予測
NVIDIA では、距離を正確に予測するために畳み込みニューラルネットワークと 1 台のフロント カメラから得たデータを使います。このディープ ニューラルネットワークは、レーダーとライダーのセンサー データをグラウンド トゥルース情報として用いることで、物体までの距離を予測するトレーニングが行われています。エンジニアはこの情報が正確であることを知っています。レーダーとライダーから送信された信号を直接反映することで、道路のトポロジにかかわらず物体までの厳密な距離情報が得られるからです。
地面が平らであるという前提に頼るのではなく、レーダーとライダーのデータに基づいてニューラルネットワークのトレーニングを行うことで、車両が坂道を上ったり下ったりしている場合でも、ディープ ニューラルネットワークが物体までの距離を 1 台のカメラから予測できるようにしました。
このトレーニングでは、グラウンド トゥルース データの作成とエンコードを行うパイプラインが自動化されています。したがって、手作業でのデータへのラベル付けがボトルネックとなることなく、センサーから収集されるデータを最大限利用してディープ ニューラルネットワークのトレーニングを行うことができます。
NVIDIA では、縦方向 (加速・減速) と横方向 (操舵) の制御を行うために、ディープ ニューラルネットワークによる物体までの距離予測と、物体検知やカメラによる追跡を組み合わせて利用しています。ディープ ニューラルネットワークを用いた物体までの距離の計算について、詳しくは NVIDIA DRIVE Networks のページをご覧ください。