🗽

第3世代の自動運転@CVPR2024

2024/07/01に公開

はじめに

Turing 生成AIチームの佐々木 (kento_sasaki1)です。生成AIチームでは、完全自動運転の実現に向けてマルチモーダル基盤モデルの開発に取り組んでいます。

先日、6月17日から6月21日にシアトルで開催されたコンピュータビジョン・機械学習系のトップカンファレンスCVPR 2024に参加し、Vision Language Model (VLM)のワークショップThe 3rd Workshop on Computer Vision in the Wildにて日本語VLM評価ベンチマークHeron-Benchの発表を行いました。

Heron-Benchについては、以前テックブログを公開していますのでぜひご覧ください。

https://zenn.dev/turing_motors/articles/8e913f46374ede

CVPR 2024では、End-to-Endの自動運転やLLM (Large Language Model), VLM (Vision Language Model), World Modelを自動運転に活用する手法が多く発表されました。本記事では、その中から個人的に気になる5本の論文を抜粋して紹介します。

第3世代の自動運転@CVPR2024

自動運転は、高速道路などの制限区間においてハンズフリーが可能な技術が既に市場で提供されています。そこで2024年の現時点では、より複雑な一般道における「ロングテール」の運転環境にどのように対応するのか、が問題となっています。例えば、一般道では下図の工事現場のシチュエーションのように、臨時標識、交通指導員の指示、信号機、対向車などを考慮した高度な判断能力が求められ、こうした場面が様々なケースで存在します。

そこで、最近では既に様々な領域においてブレイクスルーを起こしているLLM , VLMなどの基盤モデルを用いて運転環境の状況理解を目指す手法が色々と提案されています。

Lincan Liらによるサーベイ論文では、自動運転のためのオープンソースデータセットについて「2024年は自動運転データセットの第3世代を迎えており、VLM, LLM, 生成AIを活用してコーナーケースの問題に取り組んでいる」という内容が述べられています。

CVPR 2024では、VLADR:Vision and Language for Autonomous Driving and Roboticsワークショップや中国の研究機関OpenDriveLabFoundation Models for Autonomous Systemsワークショップと併せてAutonomous Grand Challengeというコンペを開催しています。また、イギリスに本社を置き、End-to-End自動運転の研究開発を行っているWayveは、ワークショップに7件の登壇をしています。

https://x.com/alexgkendall/status/1803507519190606202
Wayve Tutorialは、ご覧のとおり超満員でした。最前列で参加していたのですが、途中から会場は酸欠気味でした。

前置きが長くなりましたが、ここから論文紹介をします。断りのない限り該当論文から図を引用しています。また、補足の文献は該当箇所にリンクのみを貼っています。

DriveLM: Driving with Graph Visual Question Answering

こちらは中国 OpenDriveLabの研究成果であり、VLADR: Vision and Language for Autonomous Driving and Robotics Workshopの口頭発表に選ばれました。arXivは2023年12月に公開されており、既に広く認知を集めていました。

DriveLMは、運転の状況理解のためにGraph Visual Question Answering (GVQA)タスクを提案し、DriveLM-Data データセットとDriveLM-Agentモデルの構築、そして評価を行っています。GVQAは、複数のオブジェクトの相互作用や各オブジェクトの将来の動作を予測し、それに基づいて自車の安全な動作を計画するタスクです。このタスクでは、以下のような質問と回答のペアで構成され、これらの依存関係をグラフ構造として表します。これらQAペアのグラフ構造は運転手が行っている意思決定プロセスを模倣しています。

Perception

質問: What are the objects worth noting in the current scenario? (現在のシナリオで注目すべきオブジェクトは何でしょうか?)
回答: There is a van, a sedan and a pedestrian in front of the ego car. (自車の前にバン、セダン、歩行者がいます。)

Prediction

質問: What might the van, the sedan and the pedestrian move in the future? (これらのオブジェクトが将来どのように移動する可能性がありますか?)
回答: Those objects may move to the right lane, cross the ped-crossing, etc.. (これらのオブジェクトは右車線に移動するか、横断歩道を渡る可能性があります。)

Planning

質問: What are the safe actions of the ego car considering those objects? (これらのオブジェクトを考慮した場合、自車の安全な行動は何でしょうか?)
回答: The ego car should wait for the pedestrian and the sedan, then turn right. (自車は歩行者とセダンを待ってから右折すべきです。)

DriveLMのデモ動画はこちらからご覧になれます。
https://youtu.be/r6azXZ-axBE?feature=shared

DriveLM-Dataデータセット

GVQAタスクを行うためにDriveLM-Dataデータセットを構築します。DriveLM-Dataは、nuScenesを用いたDriveLM-nuScenesとCARLAを用いたDriveLM-CARLAから構成されます。

DriveLM-nuScenes

DriveLM-Scenesは、(1) ビデオクリップからキーフレームを選択 (2) キーフレーム内の重要なオブジェクトを選択 (3) キーオブジェクトに対してフレームレベルのPerception, Prediction, PlanningのQAを付与を行います。Perception QAの一部はnuScenesおよびOpenLane-V2のGround Truthラベルを用いて自動生成されますが、残りは人手アノテーションが行われています。アノテーションの品質を確保するために、厳密な品質チェックが複数回にわたって行われます。

DriveLM-CARLA

自動運転シミュレータCARLAを使用し、エキスパートモデルを用いてデータを収集します。都市部、住宅地、農村部のルートを設定し、これらのルートにおいて必要なセンサーデータを収集します。オブジェクトやシーンについてGVQA形式でQAペアを生成します。データとラベルは20FPSで生成され、ルートとシナリオを定義すれば自動的にデータ生成が可能になっているため、スケーラビリティがあります。最終的に、3.7M以上のQAペアを生成します。

DriveLM-Agentモデル

上記のDriveLM-Data データセットを用いて、DriveLM-Agentモデルを構築します。DriveLM-AgentはBLIP-2をベースモデルとし、質問に対して回答を生成するようにLoRAでファインチューニングします。子QAペアの学習には親QAペアがコンテキストとして使用されます。例えば、P2 (Prediction)はP1 (Perception)のQAペアがコンテキストとして使用されます。

推論では、P1 (Perception), P2 (Prediction), P3 (Planning), B (Behavior), M (Motion)が順に予測されます。Trajectory (軌跡)は256の離散空間で離散化し、言語モデルの語彙内の一意のトークンに対応して表されます。これにより、言語モデルのNext Token Predicitonの枠組みでTrajectoryの予測も行うことができます。

Generalized Predictive Model for Autonomous Driving

こちらもOpenDriveLabによる研究成果です。CVPR 2024のHighlight (本会議 top 3.6%)に選ばれました。この研究では、ウェブから大量の走行動画を収集しOpenDV-2Kデータセットを作成し、このデータセットを用いて自動運転のVideo Prediction Modelを構築しています。
Overview of the GenAD paradigm

OpneDV-2K

40カ国以上、244都市以上を対象とし、YouTubeから走行動画を収集し、これらに対してキュレーションを行うことで2,000時間を超える大規模な走行動画のデータセットを作成しています。また、これに7つの公開データセットを加えています。下図のように多様な地域・天候における走行動画が含まれています。

OpenDV-2K

各フレームには、コマンド, コンテキストの2種類のテキストアノテーションを付与しています。コマンドはHonda-HDD-Actionデータセットを使って学習したビデオ分類器で14種類のラベルを4秒間の動画に対してつけた上で、それぞれのカテゴリを複数の自然文の表現にマッピングしています。コマンドには、forwardやintersection passing, left turnなどがあります。

コンテキストはBLIP-2を用いて各フレームの主なオブジェクトとシナリオについて記述しています。例えば、”A car driving down a city street at night.”のようなキャプションが付与されます。

OpenDV-YouTubeの走行画像とキャプションは、HuggingFaceのデータセットで公開されているため、こちらをご覧ください。
https://huggingface.co/datasets/OpenDriveLab/OpenDV-YouTube-Language

GenAD

GenADはOpenDV-2Kデータセットを用いて学習したVideo Prediction Modelです。Stage 1. Image Domain TransferとStage 2. Video Prediction Pre-Trainingの学習を行います。Stage 1. のImage Domain Transferでは、Text-to-Imageのモデル(Stable Diffusion XL)を運転ドメインにファインチューニングします。この段階では、Stable Diffusion XLのテキストエンコーダとオートエンコーダは固定され、UNetのパラメータのみ学習します。Stage 2.では、Video Predictionの事前学習を行います。この段階では、過去のフレームとテキスト条件を入力とし、未来のフレームをノイズのある状態から復元するように学習します。これにより、モデルは過去の情報に基づいて一貫した未来の予測を行う能力を獲得します。

Framework of GenAD

GenADは、既存の動画生成モデルと比較し、ゼロショット性能とFidelity (FID), Video Coherence (FVD)の両方の評価指標で優れた結果を示しました。GenADは、「ゆっくりと交差点で進む」、「右折する」などのテキスト条件に基づいて、未来のフレームを生成することもできます。

CarLLaVA: Vision language models for camera-only closed-loop driving

CarLLaVAは、カメラ画像のみをVision Language Modelで処理することでCARLAシミュレータで自動運転を実現した手法であり、これまでのState-of-Art手法を458%上回る驚異的な結果を残しました。OpenDriveLab主催のAutonomous Grand Challenge CARLA Autonomous Driving Challenge TrackのInnovation Award, Outstanding Championに選ばれ、Technical Reportとして公開されています。

CARLA Autonomous Challenge 2.0は、自動運転シミュレータCARLAにおいてClosed-Loop評価を行うコンペティションです。CARLA Leaderboard 1.0の上位手法のほとんどは高価なLiDARセンサーに依存していました。一方のCarLLaVAは容易に取得可能なカメラ画像のみを用い、アノテーションラベルも必要とせず、VLMを用いて運転を行います。

デモ動画はYouTubeで公開されています。CARLA Autonomous Challenge 2.0では、予め指定された中間目標点を通過するほか、雨や日没、住宅街、高速道路、工事現場など多様な環境での走行が求められます。

https://youtu.be/E1nsEgcHRuc

CarLLaVAは、LLaVA-NeXTのVision EncoderとLLaMAアーキテクチャをbackboneとして使用しています。走行画像に加えてGPS、Ego Speedが入力情報として使用されます。これらはそれぞれMLP層を通してllamaに入力されます。交差点における信号機や歩行者の認識においてデフォルトのVision Encoderは不十分であったたということから、336 x 336ピクセルのバッチに分割し、それぞれエンコードして入力することで高解像度対応しています。Path queriesとWP queriesをそれぞれ用意し、これらを予測するように学習を行います。

結果は以下の表のとおりです。センサーは、L: Lindar, C: Camera, R: Radar, M: Mapを表します。また、ラベルはOD: Object Detection (3D position and pose), IS: Instant Segmentation, SS: Semantic Segmentation, D: Depth, BS: BEV semanticsを表します。CarLLaVAはLidar、Map、3D物体検出、セマンティックセグメンテーションなどを必要とせずにカメラのみで従来手法を上回っています。スケーラブルなカメラ入力のみを用いて大幅な改善が見られ、自動運転にVLMを用いることができる可能性を示唆する結果です。

LaMPilot: An Open Benchmark Dataset for Autonomous Driving with Language Model Programs

この研究では、「前の車を追い越して」のように自然言語の指示をLLMが解釈し、自動運転システムがプランニングするためのフレームワークLaMPilotを提案しています。具体的には、運転ポリシーとしてプログラムコードを生成し、それを古典的なプランナーやコントローラーで実行するというアプローチを取っています。これは、ロボットポリシーコードを作成するためにコードLLMsを利用するCode as Policyを参考にしています。

LaMPilot

下図に示すように、LaMPilotはAPI documentation (A), human instruction (I), driving context (C)を入力として受け取ります。これらは全て自然言語として与えられます。これら入力をもとに、CoT (Chain-of-Thought)推論を行い、policy code (P)を作成します。

An overview of the LaMPilot framework

APIは、主に4つのタイプを用意しています。

  • Ego APIs: エゴ車両のステータスに関する情報を提供する
  • Perception APIs: オブジェクトや車線の検出など、周囲の環境に関する情報を取得する
  • Navigation APIs: 目標の目的地に基づいたルート計画機能を提供する
  • Control APIs: LLMが生成したコードを車両の低レベル制御信号に変換する

具体的には、以下のようなAPI Docs, Instruction, Driving Contextが与えられ、Chain-of-Thoughts推論が行われます。

API Docs (A)

あなたは指定された自動運転タスクを完了するためのPythonコードを書く手助けをするアシスタントです。以下は使用できるAPIです:...(省略)

Instruction (I)

前方の車を右車線を使って追い越してください。

Driving Context (C)

私の現在の速度は31.1 m/sです。私は2車線の高速道路を走行しており、右から2番目の車線にいます。私の車線の前方44.9メートルに、31.1 m/sで走行している車があります。

Chain-of-Thought Reasoning (R)

  1. 右車線が利用可能かどうかを確認する
  2. 現在の車線の前方100メートル以内に車両があるかどうかを確認する
  3. もしそうであれば、右車線に入るのが安全かどうかを確認する
  4. 右車線に入るのが安全であれば、エゴ車両の目標車線を右車線に設定する
  5. 目標車両との距離を監視する
  6. 目標車両がまだエゴ車両の前にいる場合、エゴ車両の目標速度を目標車両の速度の1.5倍に設定して追い越す
  7. 目標車両がエゴ車両の前にいなくなるまで、ステップ5-6を繰り返す
def overtake_using_right_lane():
    ego_vehicle = get_ego_vehicle()
    current_lane = get_lane_of(ego_vehicle)
    right_lane = get_right_lane(ego_vehicle)
    target_vehicle = detect_front_vehicle_in(current_lane)
    
    if right_lane is None:
        say("There is no right lane to change into.")
        return

    if target_vehicle is None:
        say("There is no vehicle in front of me.")
        return

    # Check if it is safe to enter the right lane
    while True:
        if is_safe_enter(right_lane):
            set_target_lane(right_lane)
            break
        yield autopilot()

    # Monitor the distance to the target vehicle
    while True:
        distance_to_target = get_distance_between_vehicles(ego_vehicle, target_vehicle)
        if distance_to_target < 0: # The target vehicle is still in front of the ego vehicle
            set_target_speed(get_speed_of(target_vehicle) * 1.5)
            yield autopilot()
        else:
            break

LaMPilot-Bench

この研究では、LLMベースのエージェントの指示追従能力を評価するためのLaMPilot-Benchというベンチマークも提案しています。データセットは、車線変更、追い越し、ルート計画などを含む4,900のアノテーション付き交通シーンで構成されています。このうち500サンプルはテストセットとして使用されます。評価指標としては、以下の3つが用いられます。

  • 衝突までの時間(Time-to-collision: TTC): 車両が安全な距離を保ち、衝突を回避する能力を測定する
  • 速度の分散(Speed variance: SV): エゴ車両の速度標準偏差を測定し、安全な速度の維持を評価する
  • 時間効率(Time Efficiency: TE): ポリシーが事前に定義された時間制限内でタスクを完了する能力を評価する

実験では、複数のLLMs(GPT-4, GPT-4 Turbo, PaLM 2, Llama 2など)をzero-shot, few-shot, human-in-the-loopの設定で評価し、few-shotとhuman-in-the-loopのアプローチによってLaMPilot-Benchのスコアが改善することを示しています。

Driving into the Future: Multiview Visual Forecasting and Planning with World Model for Autonomous Driving

Multiviewの動画生成を行い、自動運転システムが周囲の環境をより正確に把握し、将来のシナリオを予測できるようにする世界モデルDriveWMを提案しています。

Multiview visual forecasting and planning by world model

例えば、DriveLMは上図のように時刻Tにおいて、T + Kの時点で複数の未来を想像し、Tの時点で直進することが安全であると判断します。その後、T + 2Kの時点での想像に基づき、自車が前方の車に近づきすぎると判断し、安全に追い越すために左車線に変更する決定を行うことができます。

Overview of proposed framework

図における(a) Overall Training/Inference Pipelineは、文字どおりDriveWMの学習と推論のパイプラインを示しています。ノイズのある画像zTz_Tがクリーンな画像z0 に変換される拡散過程がUNetブロック内で行われます。このUNetブロックは、空間的特徴を捉えるSpatial Conv (空間畳み込み)と時間的特徴を捉えるTemp Conv (時間畳み込み)、および異なるビュー間で情報を交換するView Attentionから構成されます。各フレームごとにクロスアテンションが適用され、生成されたビデオは最終的にVAEを通じてエンコードおよびデコードされます。このプロセスを通じて、高品質で一貫性のあるマルチビューの動画が生成されます。

(b) Unified Conditionsは、ビデオ生成のための条件設定方法を示しています。ここでは、初期のコンテキスト画像、バウンディングボックス、地図情報が入力として使用されます。これらの初期条件は、各フレームに対するアクションシーケンスとともに使用され、Nフレームにわたって繰り返されます。アクションシーケンスには、車両の動きや操縦情報が含まれます。

(c) Probabilistic Graph of Factorized Multiview Generationは、複数の視点からの映像や画像を生成する際に、それぞれの視点間で一貫性を保ちながら効率的に生成する手法について表しています。ここでは、時刻 tにおける各ビューのビデオクリップを生成します。参照ビューが既存のビューをもとに新しいビューを生成するため、一貫性が保たれるようになっています。

以下の図は、実際に生成されたマルチビューです。それぞれ、上はFactorized Multiview Generationを用いていない場合、下はFactorized Multiview Generationを用いた場合のマルチビューを示しています。上のマルチビューはバスや自動車の繋ぎ目を見ると、一貫性がないことが分かります。一方で、下のマルチビューは特にバスのフロント部分を見ると分かりやすいですが、一貫性が保たれています。

このようにDriveWMは、将来のシナリオをマルチビューで生成することができます。生成されたシナリオは、他の車両や障害物との距離、車線中央からの逸脱などの観点で評価します。そして、最終的にこれらの評価結果に基づいて最も安全で効率的な走行経路を選択します。

おわりに

本記事では、CVPR 2024で発表された「第3世代の自動運転」に関する論文を紹介しました。自動運転技術は日進月歩で進化しており、大変注目されています。会場ではその熱気がひしひしと感じられました。

チューリングは、自社開発のマルチモーダル生成AI「Heron」を活用し、実際の走行データにない状況にも倫理的に対応できるシステムを構築しています。これにより、ルールベースでは到達が困難なレベル5の完全自動運転の実現を目指しています。

本日、総額45.38億円の資金調達し、プレシリーズAラウンドを完了しました。Heron専用の計算基盤として2024年秋の稼働開始を予定している大規模GPUクラスタ「Gaggle Cluster」の構築や、2025年に人間の介入なしで都内を30分間走行できる自動運転システムを開発するプロジェクト「Tokyo30」を実行していきます。一緒に大きな挑戦をするメンバーを募集しています。


チューリング、X&KSKなどから15億円の資金調達を実施
総額45億円の調達でプレシリーズAラウンドを完了

CVPR 2024ギャラリー


参考文献

[1] Chonghao Sima, Katrin Renz, Kashyap Chitta, Li Chen, Hanxue Zhang, Chengen Xie, Jens Beißwenger, Ping Luo, Andreas Geiger, Hongyang Li. DriveLM: Driving with Graph Visual Question Answering. In CVPR, 2024. [OpenReview]

[2] Jiazhi Yang*, Shenyuan Gao*, Yihang Qiu, Li Chen*, Tianyu Li, Bo Dai, Kashyap Chitta, Penghao Wu, Jia Zeng, Ping Luo, Jun Zhang, Andreas Geiger, YuQiao, Hongyang Li. Generalized Predictive Model for Autonomous Driving. In CVPR, 2024. (* equal contribution) [CVF Open Acess]

[3] Katrin Renz, Long Chen, Ana-Maria Marcu, Jan Hünermann, Benoit Hanotte, Alice Karnsund, Jamie Shotton, Elahe Arani, Oleg Sinavski. CarLLaVA: Vision language models for camera-only closed-loop driving. arXiv preprint: arXiv:2406.10165, 2024. [arXiv]

[4] Yunsheng Ma*, Can Cui*, Xu Cao*, Wenqian Ye, Peiran Liu, Juanwu Lu, Amr Abdelraouf, Rohit Gupta, Kyungtae Han, Aniket Bera, James M. Rehg, Ziran Wang. LaMPilot: An Open Benchmark Dataset for Autonomous Driving with Language Model Programs. In CVPR 2024. (* equal contribution) [CVF Open Access]

[5] Yuqi Wang*, Jiawei He*, Lue Fan*, Hongxin Li*, Yuntao Chen, Zhaoxiang Zhang. Driving into the Future: Multiview Visual Forecasting and Planning with World Model for Autonomous Driving. In CVPR, 2024. (* equal contribution) [CVF Open Access]

Appendix

チューリングオープンオフィス@大崎を7/12 (金)と8/5 (月)に開催します。お気軽に以下のリンクからお申込みください。
https://turing.connpass.com/event/321473/
https://turing.connpass.com/event/323506/

また、第61回コンピュータビジョン勉強会@関東(後編)では、Generalized Predictive Model for Autonomous Drivingについて、より詳細に紹介します。
https://kantocv.connpass.com/event/321175/

そのほか、関連資料のリンク一覧です。

Tech Blog - Turing

Discussion