1 of 29

SimLingo: Vision-Only Closed-Loop Autonomous Driving with Language-Action Alignment

第64回 コンピュータビジョン勉強会@関東(後編)

@caprest

1

※本資料/本発言に含まれる意見や見解は、私個人のものであり、所属する組織の立場や方針を代表・代弁するものではありません。

※資料中の引用は特に言及がない限り当該中の論文から行っています

2 of 29

書誌情報

  • 著者
    • Katrin Renz, Long Chen, Elahe Arani
  • Wayveでのインターン中の結果がpublishされたもの
    • wayve はカメラオンリーE2E自動運転で有名

2

3 of 29

ざっくりいうと

  1. カメラのみの入力+VLAを使った自動運転モデルの研究
  2. Closed Loop SImulation を使った検証でより実践的な結果を残したもの
  3. 手法としてはデータの工夫がメイン
    1. Action Dreaming
    2. Data Bucketを使った戦略

3

4 of 29

背景:カメラオンリー地図レス自動運転

LiDARや地図を使わない自動運転

  • 伝統的な自動運転はLiDAR に依存
    • レーザーを使ってDepthを測定し、三次元空間をロバストに測定
    • 夜間でも安定した性能を出すことができる
  • LiDAR
    • ❌カメラに比べ高価格
    • ❌可動部品の多さ=故障率の高さ
  • カメラ
    • かつてはDepth推定の難しさから3次元アプリケーションをまともに動かせなかった
    • 動画生成などが容易になってきていることも追い風に
    • データ管理や生成が楽(既存圧縮転送技術、フォトリアリスティックなシミュレーション)
    • 人にAlignしている
    • ただし夜間・逆光など極端に性能が落ちるシチュエーションあり。完全に人の監視がなくなったときの安全性に議論は残っている

4

5 of 29

背景:Closed-loop VS Open-loop 自動運転

モデルの出力で入力が変化するのがClosed-loop, 変化しないのが Open-loop

  • Open-loop は記録された運転軌跡への追従などを評価指標にする
    • 車を走らせればデータを作れる
    • 評価としての正しさは微妙
  • Closed-loop はシミュレーターを構築する必要がある
    • そもそもsimulator を構築するのが大変
      • マルチモダリティなどになればさらに難しい
    • そしてsimulationの正しさも難しい
      • 他車の振る舞いを完璧にモデル化できるなら自車の振る舞いも自ずと明らかなのでは?

5

6 of 29

問題設定

  • CARLAというシミュレーターでの自動運転
    • 指定された地図上の目標地点に到達するタスク
      • 多様な環境:雨・霧・夜
      • 多様な設定 : highway、市街地、田舎
      • 多様なシナリオ:歩行者の侵入、駐車場を出る、unprotected turn、車の開いたドアを避ける
  • VQA
    • “What should the ego vehicle do next and why? のような質問に答える

6

7 of 29

モデルの入力は?

カメラ画像・自車速度・ナビゲーション指示・タスクプロンプトで構成されるプロンプト

“〈image features〉 Current speed: 〈v〉m/s. Command: 〈nav. features enav〉. 〈task prompt ptask〉.”

  • カメラ画像 (フロント画像のみ)
  • ナビゲーション情報
    • 言語指示
      • e.g) 左に曲がる
  • 自車の速度
  • タスクプロンプト
    • 以下の四種類のいずれか
      • (1) 軌跡予測
      • (2) コメンタリー+軌跡予測
      • (3) VQA+ Driving
      • (4) Action Dreaming

7

8 of 29

モデルの出力は?

二種類の座標値とCommentary

  • 0.25秒ごとの目標地点座標値
  • 時間と関係ない1mごとの目標地点座標値
    • これを入れることで、カーブ障害物回避や静止時の動作が改善
  • 制御自体はPIDで最終的なステア角とアクセルを決めている
  • 最終的な出力は差分として表現
  • 最終的なモデルの推論時には”Commentary”が常に出力される
    • いわゆるCoTをやっていることに相当

8

9 of 29

モデルアーキテクチャ

基本はInternVL2-1Bを使用

  • InternViT-300M
  • Qwen2-0.5B-Instruct (LLM)

9

10 of 29

画像入力部分はどうなっている?

自動運転に必要な高解像度に対応するためのテクニックが入っている

  • 高解像度に対応するために、画像を448x448のタイルに分割して入力している
    • 高解像度は自動運転に必須
      • 例えば信号とかはFullHDでも数ピクセルになっていることも…
  • 一枚の画像は 256のvisual tokenに変換される
  • Pixel Unshuffleという手法を使って画像サイズを下げ、Attentionによって二次関数的に増える計算量を防いでいる

10

11 of 29

言語入力/出力部分は?

指示をトークンに変換、一般的なVLM構成+座標値のMLP+learnable token

  • 目標位置を座標で指定するとき(TP)は MLPで2 tokenに変換
  • 言語指示を与えるとき(HLC)はそのまま言語のトークンにする
  • AutoRegressiveにトークンを生成
  • 座標値はMLPで出力

11

12 of 29

学習方法は?

LLM部分のみLoRA、他はフルトレーニング

  • 学習設定
    • AdamW: weight decay 0.1
    • learning rate 3e-5
    • cosine annealing schedule 14epoch
    • 8xA100 80GB GPUs
  • DeepSpeed v2 を実装に使っている
  • LoRAはすべての linear layersに適用
  • DataAugumentationに TransFuser++ のものを採用
    • shift/rotationは強くした

12

13 of 29

どのようなSupervisionを与える?

データセットの構成に工夫を加えている

  • waypoint はsmooth L1 loss token予測はcross entropy lossという標準的ロス構成 (L2ロスだと学習が不安定になったらしい)
  • Action Dreaming
  • Data Buckets
    • 面白い運転状況を集めて分類、一定の確率でサンプリングする
      • 加減速量が大きいもの・曲がり方が大きいもの
      • 異なる方向から接近する車両
      • 一時停止標識、赤信号、歩行者
      • 障害物回避

13

14 of 29

Action Dreamingとは

実際には取らないような軌道指示と軌道のGTを与えるデータ拡張

  • 実際に取るような軌道ばかり学習しているとプロンプトに対する追従性が下がる
    • センサー入力だけで軌道(=promptや指示)がある程度予測できてしまうから
      • 実際に取らないような軌道も学習データに加えることでプロンプトを無視しないように学習
  • 実行時はDreamingフラグを切ることで、危険なプロンプトに従わないように調整
  • 軌道は open loop的に生成する
    • world-on-rails仮定を置く
    • 物理モデルに基づいたヒューリスティックスで軌道を生成

14

15 of 29

運転のGTデータはどうやって集めた?

オラクル情報にアクセスできる「特権的」なルールベース運転モデルを使い収集

  • PDM-Liteというモデルを使っている
    • TransFuser の訓練ルートをCARLA LB 2.0向けに変換したもの
    • その他CARLAの学習用Townを粒度を揃える加工をした上で理由
  • VQA用にはDriveLMと同様のヒューリスティクスを使って生成
    • 足りないものは独自にオラクルから生成

15

16 of 29

Evaluation

  1. CARLA v2 Leaderboard
  2. Bench2Drive
  3. VQA

16

17 of 29

CARLA Leaderboard v2

  • オープンソースシミュレーター上での自動運転チャレンジ
  • 長いルートの導入・新規タウンの追加 7-10km
    • v1 の1km程度から大幅に延長
  • シナリオを大幅拡充
  • 評価指標の拡張
    • 緊急車両・速度未達などの交通違反が評価されるように

17

18 of 29

結果: CARLA v2

カメラオンリーにもかかわらずトップクラスの結果

  • DS: driving score ルート走破率と違反ペナルティをかけ合わせたもの
  • RC: route completion : ルート走破率
  • IS: infraction penalty: 違反係数の積

18

19 of 29

結果:Bench2Drive

Bench2DriveではSoTA

19

20 of 29

結果: VQA

雨、夜などの条件でも正しくVQAに成功している

20

21 of 29

結果:Action Dreaming

  • 安全でない運転軌跡も生成できる

21

22 of 29

結果:HLCでもTP同等の精度を確保

HLC (high-level language command:言語指示) TP(target point: 座標値)

22

23 of 29

結果:補助タスクの効果は限定的かも?

23

24 of 29

結果:vanilla VLMよりもVQA性能は当然向上

24

25 of 29

エッジで動くのか?

動かしてはいない。

  • 評価はSimLingo-BASEというもので行っている
    • LLM部分LLaMAの50Mパラメーターのものに変えたもので行っている。
    • image encoder 部分は Clip-ViTを使っている
    • commentaryはオフに設定。
  • 1Bモデルは比較的LLMのとしては軽量な方

25

26 of 29

Limitation

  • SimLingoはCARLAで LB2.0で評価されていない
    • リーダーボードが閉じてしまっていたため
    • ベンチマーク的にはbaseとそうでないもので大幅にパラメーター数が上がっているので運転性能にあまり大きな差がない 🤔
  • Simulatorと現実のギャップはやはりあるのでは?
    • センサーレベル:雨・夜ノイズが少ないように見える
    • エージェントレベル:車両の物理モデルは難しい
  • マルチカメラにしないのはおそらくマルチカメラにすると精度が落ちるからでは
    • VLM はインターネット上から学んでおり、サイドカメラなどの学習が不十分なのではないだろうか
    • VLMは三次元理解がまだ弱い

26

27 of 29

VLAは本当に使う価値があるのか?

VLMを使うモチベーションは「常識」の導入だが、思ったよりまだ常識がない

27

28 of 29

GPT5 VS 天下一品

cherry pick 気味だがGPT5 は天下一品がstop signでないと認識してくれなさそう

28

画像:https://ikikuru.com/entertainment/22551/

29 of 29

まとめ

  • Action Dreamingのようなデータセットの多様性を増やす方策によってVLAのベースの自動運転性能が大幅に改善
  • VLAによって自動運転も解けそうな気配がでてきている
  • とはいえlimitationも多い
    • マルチカメラフュージョン
    • 空間理解
  • すぐに実用レベルとは言えないが今後の急速な発展に期待

29