(アーカイブ予定)完全自動運転の実現にむけて
はじめに
人間の「目」にあたるセンサ情報を 「頭」としてのAIがどのように理解・判断していく必要があるかについて説明します。特に、自動運転の目標である「完全自動運転」にはどのようなアプローチが必要と我々が考えているかについて紹介していきます。
自動運転の定義
今や運転支援、自動運転技術は新たに生産される車には欠かせない機能の一つとして急速に普及しています。例えば自動ブレーキは93.7%、レーンキープアシストは35.6%、車間距離維持(ACC: Adaptive Cruise Control)は24.8%の新車乗用車に搭載されており、ここ数年でさらにその割合は高くなっています(自動車の高度化に関する動向について 国土交通省)。
このような運転支援・自動運転技術にはいくつかの分類があります。SAE(米国自動車技術協会)が定めた自動運転レベルが最も主流な基準として扱われています。レベル0~5まで、六段階で運転の主体および自動化の内容ごとに分類されています。
Level | 運転の主体 | 自動化の内容 |
Lv0 | 人間 | 自動化なし |
Lv1 | 人間 | アクセル/ブレーキ or ハンドル操作が部分的に自動化 |
Lv2 | 人間 | アクセル/ブレーキ and ハンドル操作が部分的に自動化 |
Lv3 | システム | 特定の条件/領域下で運転操作を代替(要ドライバー) |
Lv4 | システム | 特定の条件/領域下で運転操作を代替(ドライバー不要) |
Lv5 | システム | 運転操作の**全部**を代替(条件なし=完全自動運転) |

現在、市販車の多くで先進運転支援システム(ADAS)と呼ばれるものはレベル2相当で、ドライバーに責任があるものの、車の動きを自動的に制御する機能になります。運転の主体(責任)がシステムとなるレベル3以上では、市販車ではHondaが発売している他、アメリカ・中国では運転席が無人の状態(レベル4)の公道走行試験が進められています。
一方レベル5、いわゆる完全自動運転については、まだ実現できている企業はありません。レベル4までの自動運転と異なり、走行区域や条件を限定せず、運転に必要な操作を全て行う必要があります。では「全て」とはどこまでやる必要があるのでしょうか?
タクシードライバーの思考実験
ここで一つの思考実験として、運転席に黒塗りの仕切り板があり、ドライバーが見えないタクシーを考えてみましょう。乗り込んだ客が、その挙動が人間なのかAIなのか判断する、というものです。もしどちらかを明確に判断できないならば、自動運転としては「全て」の操作を人間の代わりに実施できているといえそうです。

いわばチューリング・テストの自動車版ともいうべきテストです。これは極端な例ですが、完全自動運転では、人間が運転に一切関与せず目的地まで適切に運転する必要があるります。そのため、このようにタクシーの運転手ができる操作は全て出来なければならないことを意味します。
自動車の運転では、単に先行車両や歩行者にぶつからないように停まる、車線を逸脱しないようにハンドルを切る以外にも、人間が無意識的に行っている複雑な判断や操作が多くあります。例えば、急な道路工事の交通整理員の手信号や「迂回してください」といった指示に従い、適切に運転をするためにはどのようなシステムが必要になるかを考えてみてください。
完全自動運転の困難さと必要なもの

ソフトウェア開発において、プロジェクトの「複雑さ」の要因を説明するためにStacey Matrixが用いられます。縦軸が何をつくるか(What)、横軸がどうやってつくるか(How)を意味しています。複雑さが少ない方から、Simple, Complicated, Complex そしてChaoticというように分類されます。
現在開発・実装されているLv2~Lv4の自動運転システムは、おそらくComplicatedないしComplexに分類されるのに対し、Lv5自動運転はChaoticの領域であると我々は考えています。つまり、通常の開発手法では扱えないということを意味します。
例えば、カリフォルニアで運用されている無人タクシーが道路を占拠するという事件がありました。このケースでは開発会社の人間が直接問題の対応にあたったとのことですが、完全自動運転車は、条件や地域、そして数が限定されておらず、他の人間との関わりを自律的に解決できる必要があるため、要求される機能レベルが飛躍的に高くなります。
繰り返しになりますが、完全自動運転ではドライバーの操作を「全て」代替することが求められます。このような場合、おそらく現在開発されている自動運転技術の延長にはないのではないかと我々は考えています。この問題を解決するためには、今の自動運転になく、人間が(暗黙的に)できていることはなにかを考えることが大切です。
機能、学習、モデル、システム

TURINGでは、この完全自動運転の開発の複雑さを緩和するために、「何を」を示すことで、開発可能な領域に持ってくることを意識しています。そのためにTURINGでは完全自動運転AIの実現のため、「4つの機能、3つの学習、2つのモデル、1つのシステム」が必要だと考えています。
機能1: 解釈する

運転中、一方通行の標識を見落としたり、補助標識(「〇〇を除く」といったもの)で意味を取り違えた経験がある人も多いかと思います。例えば上の画像の例では、「5月~11月の土日祝9~17時は観光用馬車を除く車両通行止め」「大型貨物自動車・大型乗用自動車等通行止め」「5月~11月の月~金曜9~17時は観光用馬車を除き一方通行」という意味になります。このように、組み合わせが限定的な道路標識だけでも、人間でも一見して理解するのが難しいケースがしばしばあります。
この他にも、人間は無意識のうちに、大量の情報を周囲から読み取っています。
- 信号、道路標示、標識、看板
- 周囲の車・歩行者の行動
- 交通誘導員、機械式ゲートの案内

こういった情報の中には、単純な画像認識のみでなく、自然言語処理やコンテキストの理解が必要になってくるものも存在します。走行する地域・条件が限定されない完全自動運転では、このようなケースに全て対応する必要があります。そのため、インターフェースとして画像のみでなく、自然言語処理を含めて周囲の状況を適切に「解釈する」ことが第一に必要な機能になります。
機能2: 想像する

「解釈する」のはあくまで対象が「みえている」(=センサで感知できる)ものに限られます。一方で、人間は「みえていない」ものを絶えず予測しながら、不完全情報に基づきリスク評価を行っています。これが完全自動運転で必要な2つ目の「想像する」という機能です。
- 見通しの悪い&信号のない交差点
- 夜の住宅街・夕方の小学校の近く
- 大型施設の駐車場
といった状況では、多くの人は視界に映っていない車両や歩行者を想定し、普段より慎重に運転することができます。こういった環境では、多くの人は事故を経験せずとも、事故を未然に回避することが可能です。これは、どのような行動をすると危険かという知識を自動車外で獲得・一般化しており、なぜ怖いかを知っているためです。
無数にある交通状況に対応するために、完全自動運転のシステムにおいても、こういった知識を獲得し、リスクを想像していかなくてはなりません。
機能3: 決断する

「解釈する」「想像する」という2つの機能はあくまで外部の情報を処理する受動的なものになります。運転では、これらの情報に基づき「どのように操作するか」を決定していきます。
- 加速・減速のタイミング
- 車線変更・右左折のタイミング
- 移動ルートの選択
車の運転の操作は基本的にはアクセル・ブレーキ・ハンドルのみで完結しますが、その操作量やタイミングによって、安全性や乗り心地は大きく変化します。また、個別の道路状況だけでなく、移動経路や駐停車を含めた全体の運行計画も考慮しなければなりません。
一方で、道路状況の複雑性・多様性に対して、自動運転システムの開発者が個別にルールを定めるのは限界があるのも事実です。そのため、こういった「決定する」という機能のアルゴリズムについても、AI自身が学習していく必要があると考えています。自動運転システムが事故を起こしたとき、なぜそのような判断に至ったかの説明も、人間と同じようにできなければなりません。
機能4: 交渉する

ここまでの3つの機能は、運転主体が単独で行うことができます。しかし、人間は無意識のうちに周囲の車両・歩行者と強調して操作を行っています。このような何気ない「交渉」は例えば
- 右折や車線変更・合流時に周囲の車に合わせる
- 挙動(ウィンカー・動作)から相手の意図を汲む
- 自分の動作意思を相手に伝える
ということが含まれます。このようなコミュニケーションにおいて、人間はアクセル・ブレーキ・ハンドル・ウィンカーなどの単純な操作の組み合わせで、驚くほど多彩な意思伝達を行っています。
また、このような運転主体同士の交渉は、運転する地域や時代によっても異なるなど、自然言語のように多彩な様式を理解して使いこなす必要があります。

学習1: マルチモーダル学習
ここまで「解釈」「想像」「決断」「交渉」の4つの機能について説明してきました。これらの機能を獲得するために必要なキーとなる学習手法について見ていきたいと思います。
一つ目の学習手法は「マルチモーダル学習」と呼ばれるものです。「マルチモーダル」とは、複数(multi-)のインターフェース様式(modal)を備えていることを意味します。TURINGではカメラを中心とした画像による運転システムの開発を行っていますが、完全自動運転にむけては乗客とのコミュニケーションや救急車や踏切の警笛音、あるいは交通誘導員の口頭による指示など、音声や自然言語による入力も必要になってくると考えられます。
また、カメラセンサだけでも、一つのカメラで正面の映像を取得するだけでなく、前後左右、あるいは遠近における多様な画角で周囲の情報を認知することが必要になってきます。

さらに、運転以外の多様な事前知識の学習においては、画像と自然言語の両方の入力を同時に受け取る方が効率がよくなります。このように、映像・音声・テキスト・3次元センサ情報などを入力・出力し、統合的に学習することができるマルチモーダル学習は研究が進んでおり、自動運転システムの制御においても重要になっていくと考えています。
また、自動運転車両の開発において、カメラの位置・個数・画角や追加のセンサ(レーダー、マイク、GNNS、IMU)などの仕様が定まっていないケースが多く、任意の可変長の入力ソースに対応することも開発上重要となってきます。

学習2: Vision-Language学習
見て聞く話すだけでよいか? → それぞれのソースで共通した潜在空間が必要
画像処理と自然言語処理の融合学習
Text to Image, 画像注釈, 画像付きQA
画像・自然言語で共通した潜在空間が必要
運転は視覚情報が基本だが、記号や自然言語にあふれている
アラビア語圏に行って運転できるか?
画像→自然言語、自然言語→画像の双方向のタスク
運転者のインターフェースは自然言語・画像の双方である必要がある
不特定多数の乗客とのインターフェースは自然言語
運転外の事前知識の学習にも視覚情報と自然言語の両方が望ましい
学習3: 強化学習
統合的な認知ができればよい?→ 不確定・未知の状況に対応させる必要
全ての道、条件のデータを取ることは現実的ではない
道路の状況は変わり、厳密に同じ状況は二度と現れない
過去の「経験」を学習し、複雑な状況でも判断できるようにする
強化学習:静的なデータセットに依存せず、環境でトライアル&エラーで行動選択を汎化させる
ゲーム分野では人間を大きく上回る成果
正解ラベルではなく、環境における方策と価値を学習する
運転環境をシミュレーションするのは難しく、サンプリング効率が悪い
潜在空間での試行や、環境自体を内部モデル化する(世界モデル)
navigator-driverモデル
ナビゲーター:ラリーなどの自動車競技でドライバーの横で走行の手助けをする
ドライバーは「走ること」だけに専念、その他はナビゲーターが全て受け持つ
driverモデル:カメラ・レーダーなどの物理センサを中心とした認知・推論を高速に行う軽量モデル。自然言語処理や複雑な判断はせず、navigatorの指示に従う
navigatorモデル:映像だけでなく、音声も含めた認知・意思決定を行う大規模モデル。人間の自然言語による命令の解釈や背景知識に基づく総合的な判断を行い、driverに伝える
速い反応が要求されるdrivingと複雑な判断が要求されるnavigationを分離する戦略
完全自動運転「車」としてのシステム
完全自動運転は問題を一人で解決できなくてはならない
→ 基本的には独立して稼働するシステムが必要
外部のネットワークやシステムがなくても機能する
ハードウェア上の制約をどうクリアするか
デバイス間、モデル間の通信が統合的に制御されている
信頼性・安全性・堅牢性を担保する
ハードウェア(車体)との融合したシステムが必要となる
今後に向けて
いろいろ頑張るぞい