コンテンツにスキップ

Algorithms

教材への理解を深めるために、理解しておくと良いアルゴリズムについて紹介します。興味を惹かれる論文があれば、Sample NodeのDesignを参考にして、ROS Nodeを作成してみてください。

前提知識

  • 機械学習、深層学習の知識
    • MLP, CNN, Transformer等の用語について理解している方を対象とします。

ALVINN

  • 1980年代に発表された、深層学習による自動運転手法です。
  • 当時の計算能力は非常に限られていたため、たった3層の全結合型Neural Networkが使われていました。
  • 論文: An Autonomous Land Vehicle In a Neural Network

ALVINN

引用元: https://jmvidal.cse.sc.edu/talks/ann/alvinn2.gif

DAVE-2

  • 2016年にNVIDIAから発表された手法で、CNNを用いています。
  • ALVINNよりも計算機が強力になったものの、5層のconvolution layerと3層の全結合層からなる、コンパクトな構成でした。
  • 論文: End to End Learning for Self-Driving Cars
  • 本リポジトリでの学習・デプロイ手順: Develop: PilotNet

DAVE-2 Architecture

引用元: https://figures.semanticscholar.org/0e3cc46583217ec81e87045a4f9ae3478a008227/3-Figure2-1.png

UniAD

  • CVPR2023でOpenDriveLabから発表された手法で、画像を入力とし、trajectory(waypoints)を出力します。現在幅広く使われている、センサが入力、trajectoryが出力となる自動運転手法の基礎となっています。
  • "Query based"と呼ばれる方法で、各module間をつなぐ手法を採用。
  • 複数の画像を、BEVFormerと呼ばれる手法で処理し、BEV特徴量(Bird-eye-view, 鳥瞰図のように交通環境を上から見たときの特徴量)を取得します。
  • Map情報はRasterで表現しており、かなり推論が遅いです(A100で1~4 FPS)
  • 論文: Planning-oriented Autonomous Driving
  • code

UniAD

引用元: https://opendrivelab.com/assets/publication/uniad.jpg

UniAD-poster

引用元: https://github.com/OpenDriveLab/UniAD/blob/v2.0/sources/cvpr23_uniad_poster.png?raw=true

VAD

VAD Architecture

引用元: https://raw.githubusercontent.com/hustvl/VAD/main/assets/arch.png

Sample ROS NodeではVAD-tinyと呼ばれるmodelを使用しています。

TinyLiDARNet

  • F1TENTHにて使用された手法です。
  • 2D LiDARのデータから、速度とステアリング角を推定します。
    • input: 長さ1081の1次元配列。2D LiDARで得られたxy平面上の距離を格納。
    • output: Speed, Steering Angle
  • 5層のconvolution, 4層のFully-connectedから構成されており、非常にシンプルなモデルです。そのため、1万sampleを使った学習がNVIDIA Jetson Xavier NXにて4分で終了し、int8量子化したmodelがESP32-S3にて16msで動くなど、かなり軽量です。
  • static obstacleしか含んでいないデータセットで学習させたにも関わらず、他の車のovertakeを実行できたり、実データで学習したモデルをシミュレータ上で評価しても(Real2Sim)高い走破性を誇る(論文 Table. Ⅱ)など、性能も安定しています。

  • 論文: TinyLidarNet: 2D LiDAR-based End-to-End Deep Learning Model for F1TENTH Autonomous Racing

  • code
  • 本リポジトリでの学習・デプロイ手順: Develop: TinyLiDARNet

TinyLidarNet Architecture

引用元: https://github.com/CSL-KU/TinyLidarNet

強化学習 (Reinforcement Learning)

  • ここまで紹介した手法はいずれも人間の運転データ(教師データ)を模倣する模倣学習(Imitation Learning)ですが、強化学習は教師データを使わず、環境との相互作用によって得られる報酬信号から方策を学習します。

Soft Actor-Critic

  • 期待報酬に加えて方策のエントロピー(行動のランダム性)も同時に最大化する、最大エントロピー強化学習の枠組みに基づく手法です。エントロピーを高く保つことで探索と活用のバランスを自動的に取ります。
  • Off-policyなactor-critic法で、過去の経験をリプレイバッファに蓄積して再利用できるため、on-policy法に比べてサンプル効率が高いのが特徴です。
  • Q関数の過大評価を抑えるため、2つのQ NetworkのうちQ値が小さい方を採用するtwin Q-networkを使用します。
  • 報酬のスケールに応じて手動調整が必要だった温度パラメータα(エントロピー項の重み)を、学習中に自動調整する仕組みを備えています。
  • 連続値の行動空間を前提に設計されており、ステアリング角やアクセル・ブレーキ量のような連続値制御と相性が良い手法です。
  • 論文: Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
  • 論文(拡張版): Soft Actor-Critic Algorithms and Applications
  • 実装: stable-baselines3 SAC
  • 本リポジトリでの学習手順: Develop: Soft Actor-Critic

VLM based planner

  • 言語モデルを使用したPlannerも多数登場しています。いくつか例を紹介します。

EMMA

  • Geminiを自動運転データでfine-tuningして使用しています。
  • 道路上にカバンやハシゴが落ちていたら避ける軌道を出力し、路上にリスがいたらslow downするなど、long-tail driving scenario(珍しいシナリオ)に対応できるとの結果が得られています。
  • 論文: EMMA: End-to-End Multimodal Model for Autonomous Driving

OmniDrive

OmniDrive Poster

引用元: https://cvpr.thecvf.com/media/PosterPDFs/CVPR%202025/34693.png?t=1748858551.4455686

S4-Driver

S4-Driver Poster

引用元: https://cvpr.thecvf.com/media/PosterPDFs/CVPR%202025/32619.png?t=1748995327.7679746

VLM + BEVのhybrid planner

  • UniAD, VADのようなBEV特徴量を用いたPlannerと、VLMとを統合したPlannerも提案されています。

DriveVLM

  • "Fast&Slow"と呼ばれる、「VLMによる遅い推論」と「VADのようなmodelによる速い推論」を組み合わせたmodelです。
  • 「草木が落ちているような状況で回避軌道を生成できる」「警察の手でのジェスチャーに対応した軌道を生成できる」といった、long-tail driving scenario(珍しいシナリオ)に対応できるとの結果が得られています。
  • 論文: DriveVLM: The Convergence of Autonomous Driving and Large Vision-Language Models
  • youtube link

DriveVLM Pipeline

引用元: https://tsinghua-mars-lab.github.io/DriveVLM/images/pipeline.png

Senna

Senna

引用元: https://github.com/hustvl/Senna/raw/main/assets/teaser.png