
LiDARは過去の動きを記憶し、未来を予測する――上海交通大学など、三次元移動予測の誤差を最大71.6%削減
[メンバーシップ限定]自動運転AIにとって、周囲の車両や歩行者が現在どこにいるかを認識することと、それらが次にどう動くかを予測することは異なる問題である。
中国・上海交通大学、英国ケンブリッジ大学、オランダ・トゥウェンテ大学、英国ウォーリック大学の共同研究チームは2026年10月7日、LiDAR点群の動きを継続的に記憶し、現在の三次元移動推定と将来予測を同時に改善する「MESSENGER」を発表した。
最大の成果は、長い時間にわたる未来予測である。従来のGenFlow3Dと比較し、nuScenesで71.6%、Argoverse 2で67.7%、三次元移動予測の誤差を削減した。
ただし、これは車両の将来位置や事故発生率を直接予測した結果ではない。LiDAR点群の各点が、三次元空間をどのように移動するかというScene Flowの予測精度である。
自動運転AIは「物体がある場所」だけでは判断できない
自動運転車は、カメラやLiDARを利用して、周囲の道路環境を認識する。
前方に車両がある。右側に歩行者がいる。左側から自転車が近づいている。
こうした物体の位置を認識することは、Perceptionの基本的な役割である。
しかし、実際の走行判断には、それだけでは不十分である。
前方車両が同じ速度で走っているのか、減速しているのか。歩行者が停止しているのか、横断を始めようとしているのか。
これらを理解するには、時間の経過に伴う三次元空間の変化を捉える必要がある。
従来は、物体検出や追跡によって、車両や歩行者の位置と移動速度を推定する方法が広く利用されてきた。
一方、今回のMESSENGERが対象とするのは、物体単位の移動ではなく、三次元点群の各点の移動である。
これはScene Flowと呼ばれる。
Scene Flowは、LiDARなどで観測された三次元空間の動きを、点ごとの移動ベクトルとして表現する技術である。
MESSENGERは、このScene Flowを過去の複数時点にわたって記憶し、現在の移動推定と将来の移動予測へ利用する。
Scene Flowとは何か――物体検出とは異なる三次元の動き
LiDARは、レーザー光を利用して周囲の物体までの距離を測定し、三次元点群を生成する。
例えば、前方を走る車両をLiDARで観測すると、車体の表面に対応する多数の三次元点が得られる。
次の時点で再び観測すると、それらの点の位置が変化する。
Scene Flowは、この変化を三次元の移動ベクトルとして推定する。
例えば、ある点が前方へ0.5m、右方向へ0.1m移動したと推定する。
こうした移動量を多数の点について求めることで、三次元空間全体の運動を表現する。
ここで重要なのは、必ずしも「これは乗用車」「これは歩行者」と分類する必要がないことである。
Scene Flowは、物体の種類よりも、観測された三次元点がどのように動いたかを扱う。
そのため、車両や歩行者だけでなく、周囲のさまざまな動きに対応できる可能性がある。
ただし、点群の移動ベクトルを正しく推定することと、物体全体の将来行動を理解することは同じではない。
歩行者が横断する意図を持っているのか、車両が次の交差点で右折するのかといった高次の行動判断は、Scene Flowだけで直接解決できる問題ではない。
従来のScene Flowは、直前の二つのフレームに依存
従来のScene Flow推定では、連続する二つの点群フレームを比較する方法が広く利用されてきた。
例えば、時刻Aの点群と時刻Bの点群を入力し、それぞれの点がどのように移動したかを推定する。
この方法は、短時間の移動推定には有効である。
しかし、二つのフレームだけでは、過去から続く運動の傾向を十分に理解できない。
例えば、前方車両が一定速度で走っていた後、徐々に減速し始めた場合を考える。
直前の二つのフレームだけでは、現在の移動量を推定できても、それ以前から減速が続いているのかを十分に捉えられない可能性がある。
また、LiDARには遮蔽の問題もある。
車両の背後に歩行者が隠れたり、大型車の陰から別の車両が現れたりすると、連続する点群の対応関係が不明確になる。
こうした場面では、過去の運動情報を利用することが有効になる可能性がある。
そこで、複数フレームをまとめて入力する研究が進んできた。
しかし、入力するフレーム数が増えるほど、計算量やGPUメモリー使用量が大きくなる問題がある。
MESSENGERは、この問題に対して、過去の点群をすべて繰り返し処理するのではなく、必要な運動情報を記憶する方式を採用した。
過去の動きを記憶する「Memory Buffer」
MESSENGERの中心となるのが、Memory Bufferである。
このメモリーには、過去のScene Flow推定結果と、AI内部の運動特徴が保存される。
具体的には、二種類の情報を利用する。
一つは、過去の三次元移動ベクトルである。
もう一つは、GRUによって生成された内部状態である。
前者は、過去に各点がどの方向へ、どれだけ移動したと推定されたかを表す。
後者は、その運動の傾向をAI内部の特徴として保持する。
MESSENGERは、新しいLiDARフレームが届くたびに、これらの過去情報を参照する。
そして、過去の動きから現在の移動量を予測する。
その後、新しく観測された点群を利用して予測結果を補正する。
補正後の移動情報は、再びメモリーへ保存される。
こうして、過去の運動情報を継続的に更新する。
今回の実験では、メモリーに保存する履歴の長さを6フレームに設定した。
古い情報は順番に破棄し、新しい情報へ入れ替える。
そのため、過去の全フレームを無制限に保存する必要はない。
未来を予測してから、現在の観測で補正する
MESSENGERの特徴は、過去の情報を単に現在の推定へ追加するだけではないことである。
研究チームは、Next-Frame Forecastingという仕組みを採用した。
これは、過去の運動情報から次の時点の動きを予測する方式である。
例えば、ある車両の表面に対応する点が、過去の複数時点で一定方向へ移動していたとする。
MESSENGERは、その履歴を利用して、次の時点でもどのような移動が起きるかを予測する。
そして、実際に新しいLiDAR点群が届いたら、その観測情報と予測結果を照合する。
予測と観測が一致していれば、過去の運動傾向を引き続き利用できる。
一方、予測と観測が大きく異なれば、過去の運動情報を修正する必要がある。
この処理をフレームごとに繰り返す。
重要なのは、AIが毎回ゼロから移動量を推定するのではないことである。
過去の運動から次の動きを予測し、新しい観測によって補正する。
この仕組みが、現在のScene Flow推定と未来予測の両方を改善する基盤になっている。
Transformerで、どの過去情報を利用するか選ぶ
メモリーに複数時点の運動情報が保存されていても、それらがすべて同じように重要とは限らない。
例えば、直前の移動情報は、現在の動きと強く関係する可能性がある。
一方、少し前の情報は、現在の動きとは異なる場合がある。
MESSENGERは、TransformerのCross-Attentionを利用して、複数時点のメモリーから必要な情報を取り出す。
直近の内部状態を基準に、過去の内部状態や移動ベクトルとの関係を計算する。
そして、現在の移動推定に役立つ情報を統合する。
ここで、過去のScene Flowだけでなく、内部状態も利用することが重要である。
Scene Flowは、点ごとの具体的な移動量を表す。
内部状態は、それまでの運動の特徴をより抽象的に表現する。
両者を組み合わせることで、単純な速度の延長だけでは捉えにくい運動の変化も学習する。
ただし、過去の情報を利用するだけでは、別の問題が発生する。
それが、過去の予測誤差の蓄積である。