Nvidiaは半導体製造から自動運転車開発に軸足を移している。NvidiaはAIで構成される自動運転車の試験走行を公開した。Googleなどは自動運転技術の一部をAIで実装するが、NvidiaはこれをすべてDeep Learningで処理する。AI自動運転車は人間の運転を見るだけでドライブテクニックを学ぶ。

出典: Nvidia
自律走行のデモ
Nvidiaは2016年9月、自動運転車が自律走行する模様をビデオで公開した (上の写真、右側手前の車両)。このクルマは「BB8」と命名され、テストコースや市街地で走行試験が実施された。クルマはハイウェーを自動運転で走行できる。ハイウェーは自動運転車にとって走りやすい場所である。しかし、クルマは路面にペイントされている車線が消えているところも自動走行できる。
道路というコンセプトを理解
自動運転車の多くはペイントを頼りにレーンをキープするが、BB8は道路というコンセプトを理解でき、車線が無くても人間のように運転できる。このためBB8は道路が舗装されていない砂利道でも走行できる。路肩は明確ではなく道路の両側には草が生えている。この状況でもクルマは道路の部分を認識して自律的に走行する。
ニュージャージー州で路上試験を展開
クルマは工事現場に差し掛かると、そこに設置されているロードコーンに従って走行する。ドライバーが搭乗しないでクルマが無人で走行するデモも示された。BB8はカリフォルニア州で運転技術を習得した。一方、路上試験は全てニュージャージー州で実施された。クルマは学習した運転技術を異なる州で使うことができることを示した。ちなみにNvidiaはカリフォルニア州では路上試験の認可を受けていない。
Deep Learningを使った運転技術
これに先立ちNvidiaは自動運転技術に関する論文「End to End Learning for Self-Driving Cars」を発表した。この論文でDeep Learningを使った運転技術を示した。自動運転システムは「DAVE-2」と呼ばれ、ニューラルネットワークで構成される。システムはクルマに搭載されているカメラの画像を読み込み、それを解析しステアリングを操作する。

出典: Nvidia
データ入力から出力までをニューラルネットワークで処理
システムの最大の特徴はデータ入力から出力までをニューラルネットワークで処理することだ。カメラのイメージをネットワークが読み込み、それを解析しステアリング操作を出力する。システムが自律的に運転技術を学ぶので、教育プロセスがシンプルになる。カメラで捉えた走行シーンとドライバーのステアリング操作が手本となり、ネットワークがこれを学ぶ。このため、道路に車線がペイントされていなくても人間のように走行できる。また、駐車場で走行路が明示されていなくても、クルマは走ることができる (上の写真)。
ドライバーの運転データを収集して教育
このためドライバーの運転データを収集しネットワークを教育する。具体的には、カメラで撮影したイメージとそれに同期したステアリング操作を収集する。収集した運転データでニューラルネットワークを教育する。ネットワークを構成するConvolutional Neural Network (CNN) にカメラの映像を入力し、ステアリング操作を出力する。この出力を人間のドライバーが運転したときのステアリング操作と比較する。差分を補正することでCNNは人間のドライバーに近づく。
クルマが遭遇するすべての条件を再現
教育データは様々な明るさの状況のもと、また、異なる天候で収集された。データの多くがニュージャージー州で収集された。道路の種別としては二車線道路、路肩にクルマが駐車している生活道路、トンネル内、舗装していない道路が対象となった。気象状況としては、晴れの日だけでなく、雨、霧、雪の条件で走行データが集められた。また、昼間だけでなく夜間の走行データが使われた。つまり、クルマが遭遇するすべての条件が再現された。テスト車両はLincoln MKZとFord Focusが使われた。
車載スーパーコンピューター
教育したネットワークを車載スーパーコンピューター「Drive PX 2」(下の写真)にインストールすると自動運転車が完成する。Drive PX 2は自動運転車向けのAI基盤で自動車メーカーや部品メーカーに提供される。Drive PXはカメラ、Lidar、レーダー、ソナーなどのセンサーで捉えた情報を処理し、クルマ周囲の状況を理解する。これはSensor Fusionと呼ばれ、上述のConvolutional Neural Networkで処理する。ただし、Nvidiaの自動運転車はセンサーとしてカメラだけを使っている。定番技術であるLidarを使わないため、アルゴリズム側で高度な手法が求められる。

出典: Nvidia
アルゴリズムの安全性を確認
システムを教育した後は、路上で試験する前にシミュレータでアルゴリズムを検証する。教育データを入力し、シミュレータでクルマが自動運転できる割合を計算する。このケースでは600秒の運転で10回運転を補正する必要があった。自動運転車がレーンの中心をそれると、仮想ドライバーが元に戻す操作をする。実際の路上試験ではHolmdelからAtlantic Highlands (ニュージャージー州) まで自動運転で走行し、その98%を自動運転モードで運行できた。
AIがルールを学習する
この手法は人間がアルゴリズムに走行のためのルールを教えるのではなく、CNNが画像からそれを読み取る。例えば、CNNはカーブしている道路のイメージを読むと、そこから運転に必要な道路の特徴を把握する (下の写真)。上段がカメラが捉えた画像で、下段がCNNが把握した道路の特徴 (Feature Maps) を示している。CNNは運転に必要な道路の境界部分を捉えていることが分かる。これは人間が教えたものではなくCNNが自律的に学習した成果だ。100時間程度の運転データでCNNを教育すると様々な環境で運転できるようになる。

出典: Mariusz Bojarski et al.
ルールベースの自動運転車
これに対して、自動運転車の多くは画像を解析しルールに従って特徴を抽出する。アルゴリズムは車線ペイントなど道路の特徴や周囲のオブジェクトを把握し、進行経路を計算し、実際にクルマを操作する。これらは事前にプログラムのロジックで定義される。クルマは常に想定外の事象に遭遇するので、それらをIF-THENでプログラミングする。この条件の複雑さ (Curse of Dimensionalityと呼ばれる) が自動運転やロボット開発のネックとなっている。
自動運転技術のロードマップ
Nvidiaの自動運転技術開発は始まったばかりで、次のステップはアルゴリズムの精度を改良する。現在98%を自動運転できるが、この精度を向上させる。また、アルゴリズムの精度をどう検証するかが大きな課題となる。実際に試験運転して精度を測定するだけでなく、これを検証するシステムが必要になる。更にAI自動運転車で問題が発生するとその原因探求が難しい。AIというブラックボックスが周囲の状況を把握し運転する。このため、CNNが把握しているイメージの可視化精度を上げる必要がある。実際にCNNが認識しているイメージを人間が見ることでAIのロジックを理解する。これを手掛かりに問題を解決しアルゴリズムを改良する。
自動運転車はAIアルゴリズムの勝負
NvidiaはDeep Learning向けハードウェアや開発環境を提供する。自動運転車を重点市場としてDrive PXなどをメーカーに提供する。更に、上述のDeep Learningを駆使したソフトウェアも自動運転車開発キットとして提供する。既に80社以上がNvidia技術を使っており、自動運転車のエコシステムが拡大している。多くのメーカーがNvidiaプラットフォームを採用する中、AIアルゴリズムが自動運転市場での勝ち組を決める。