matomEmotam

読んだ論文のまとめ


Project maintained by KohMat Hosted on GitHub Pages — Theme by mattgraham

[日本語まとめ] Jointly learnable behavior and trajectory planning for self-driving vehicles

Abbas Sadat, Mengye Ren, Andrei Pokrovsky, Yen-Chen Lin, Ersin Yumer, Raquel Urtasun

どんなもの?

現代の自動運転車のモーションプランナーは認識と予測から目的を達成するためにcoarse trajectoryを計画するbehavior planningとcoarse trajectoryをキネマティクスや環境の拘束条件に従って滑らかな軌道に変えるtrajectory planningの2つのモジュールで構成される。自動運転はこの2つのモジュールが協調して動くことでその性能を発揮するが、behavior planningとtrajectory planningは個別に設計され、ほとんど手動で時間をかけてそのパラメーターが最適化されてきた。したがって一方の変更が他方のプランナーに悪影響を与える可能性がある。この悪影響を防ぐため、behavior planningとtrajectory planningが同じ目的関数を共有するモーションプランナーを提案する。用いる目的関数は解釈可能かつ学習可能なパラメーターをもち、End-to-endで学習することができる。

先行研究と比べてどこがすごい?何を解決したか?

手法は?

提案するモーションプランナーは次の目的関数\(f(\cdot)\)をを使って安全かつ快適に目的地へ向かうbehavior\(b^{*}\)とtrajectory\(\tau^{*}\)を計算する。

\[b^{*}, \tau^{*} = \underset{b \in \mathcal{B}(\mathcal{W}), \tau \in \mathcal{T}(b)}{f(\tau, b, \mathcal{W}; \mathbf{w})}\] \[f(\tau, b, \mathcal{W}; \mathbf{w}) = \mathbf{w}^{\top} \mathbf{c}(\tau, b, \mathcal{W})\]

behavior\(b\)は左と右のレーン境界線、走行する経路、各時刻で自動運転車両の前後左右で障害物が存在するかどうかを示す値で構成される。trajectory\(\tau\)は車両の状態\(\mathbf{X}\)で構成されるシークエンスである。車両の状態は車両の位置\(\mathbf{x}\)、ヘディング\(\theta\)、速度\(v\)、加速度\(a\)、曲率\(\kappa\)、曲率の微分\(\dot{\kappa}\)で構成される。その他、\(\mathcal{W}\)はモーションプランナーの上流のモジュールからの入力であり、自動運転車両の状態、マップ、検出した物体、そしてその物体の予測経路とその経路をとる確率で構成される。\(\mathcal{B}(\mathcal{W})\)は\(\mathcal{W}\)を条件に現在実行できるbehaviorの集合、\(\mathcal{T}(b)\)はbehaviorを実現できる自動運転車両の詳細なtrajectoryの集合、\(\mathbf{w}\)は学習可能なパラメータである。

\(\mathbf{c}(\tau, b, \mathcal{W})\)は7分類、合計30個のサブコストで構成されるコストである。

Behavioral PlannerとTrajectory Planner

提案手法のbehavioral plannerはサンプルベースのプランナーである。このbehavioral plannerは次の図に示すように複数の経路を生成し、目的関数\(f(\cdot)\)で評価し、最も低い値を示すbehavior\(b^{*}\)とtrajectory\(\tau^{*}\)を出力する。

trajectory_samples

提案手法のtrajectory Plannerは最適化ベースのプランナーである。このtrajectory Plannerはbehavioral plannerで計算されたbehavior\(b^{*}\)とcoarse trajectory\(\tau^{*}\)に従うようにダイナミクスモデルを使い滑らかな軌道\(\tau^{(T)}(u)\)を計算する。\(u\)はダイナミクスモデルの制御変数、\(\tau^{(T)}(u)\)はその制御変数とダイナミクスモデルによって実現された軌道である。具体的なTrajectory Plannerのアルゴリズムを次に示す。

  1. カーブフィッティングでcoarse trajectoryを実現する軌道を求める

    \[\hat{u} = \overset{N}{\underset{i=1}\sum} c_{\mathbf{x}(u)}+ \lambda_{\theta}\overset{N}{\underset{i=1}\sum}c_{\theta}(u)_t+\lambda_{\text{dyn}}c_{\text{dyn}}\]

    \(c_{\mathbf{x}}\)はcoarse trajectoryと滑らかな軌道の各点の距離、\(c_{\theta}\)はcoarse trajectoryと滑らかな軌道の各点のヘディング誤差である。

  2. ステップ1で求めた軌道を初期値として目的関数\(f(\cdot)\)を最小化するように軌道を修正する

    \[u^* = \underset{u}{\text{argmin}}f(\tau^{(T)}(u), b^*, \mathcal{W}; \mathbf{w})\]

学習

次に示すmax-margin損失\(\mathcal{L}_M\)と模倣学習による損失\(\mathcal{L}_I\)からなる損失関数\(\mathcal{L}\)を使って目的関数のパラメータ\(\mathbf{w}\)を訓練する。

\[\mathcal{L}(\mathbf{w}) = \frac{\lambda_{\mathbf{w}}}{2} ||\mathbf{w}||_2^2+ \lambda_M\mathcal{L}_M + \lambda_I\mathcal{L}_I\]

\(\lambda_M\)と\(\lambda_I\)は2つの損失のバランスを取るハイパーパラメーターである。max-margin損失\(\mathcal{L}_M\)はコスト自体は低いが人間の行動\(\tau_h\)および走行軌道\(b_h\)と異なる行動と軌道にペナルティをかけるコストである。Behavioral plannerの出力を使って計算する。この損失を使うことで人間の行動\(\tau_h\)および走行軌道\(b_h\)がその他の軌道に対して最も低くするようにパラメータ\(\mathbf{w}\)を学習する。

\[\mathcal{L}_M(\mathbf{w}) = \frac{1}{N}\overset{N}{\underset{i=1}\sum} \{ f(\tau_{h,i}, b_{h,i}, \mathcal{W}_i; \mathbf{w})+ \underset{b \in \mathcal{B}(\mathcal{W}), \tau \in \mathcal{T}(b)}{\max}\{ \Delta(\tau_{h,i}, b_{h,i}, \tau, b) - f(\tau, b, \mathcal{W}; \mathbf{w}) \} \}\]

ただし\(\Delta(\tau_{h,i}, b_{h,i}, \tau, b)\)は\(\tau, b\)のペアの非類似度を測定するタスク損失である。走行軌道のL1誤差と行動の誤差で構成される。

模倣学習による損失\(\mathcal{L}_I\)は位置の誤差を減衰するためのファクター\(\gamma\)を使って次式で表される。Trajectory plannerの出力を使って計算する。

\[\mathcal{L}_I(\mathbf{w}) = \frac{1}{2N} \overset{N}{\underset{i=1}\sum} \overset{T}{\underset{t=1}\sum} \gamma^t ||x_t^* - x_{h,t}||_2^2\]

次に示す図が学習のアルゴリズムである。

learning_algorithm

Behavioral plannerとtrajectory plannerはその計算に目的関数\(f(\cdot)\)を使うが、それぞれサンプルベースと最適化ベースの異なる方法により出力が計算される。したがってアルゴリズムに示すように損失の勾配の計算を分けて行う。また勾配の更新にexponentiated gradient descentを使う。

どうやって有効だと検証した?

現実世界で人間の運転を記録したデータセットManual Driveを使って提案手法の有効性を確かめた。評価方法として次のメトリックを用いた。

  1. 軌道のL2誤差の平均:人間の運転との類似度を測る
  2. 平均Jerkと横方向の加速度:運転の快適性を測る
  3. Spatiotemporal overlap:障害物との時空間的な重なりを測定することで良い運転の指標を測る
  4. その他、走行速度やルートの進捗度、人間と比較して異なる行動を選択するシナリオの割合

ベースラインとして次の2つを用意した。

また提案手法として次の3つを用意した。

次の表が比較結果である。

result1

result2

モデル\(\mathbf{w}_b^t\)が最も良い結果を示した。

Ablation Study

提案手法の有効性を確かめるため、Ablation Studyを行った。

次の表が比較結果である。

ablation_study1

ablation_study2

表3より、提案手法がL2メトリックで最も良いことから、模倣損失を使うことによる有効性を示している。またB+Mと比べてB+M+JもしくはB+M+J+Iがjerkと横加速度の観点で良い結果であることから、同じ目的関数を共有する有効性を示している。表4よりB+M+J+Iがもっとも低いSpatiotemporal overlapである。以上より提案手法が人間の行動を模倣し、安全かつスムーズな軌道を作成していることがわかる。

課題は?議論はある?

さらなる性能向上のため、提案手法のモーションプランナーに認識モジュールを加えてEnd-to−Endで訓練する方法を考えている。

次に読むべき論文は?

LookOut: Diverse Multi-Future Prediction and Planning for Self-Driving

個人的メモ