自動運転技術「Baidu Apollo」とは、オープンソースの手法でクルマを開発

Baiduは2017年から自動運転技術「Apollo」を公開している。Apolloはソフトウェアとハードウェアから構成され、通常のクルマにこれらを搭載して自動運転車を開発する (下の写真)。ソフトウェアやデータが公開されており、中国で自動運転車開発ラッシュが始まった。

出典: Baidu

Apollo開発環境

Apolloは自動運転車の開発環境を提供するもので四階層から構成される。「Cloud Service」は文字通りクラウドサービスで、ここでシミュレーション環境など基幹機能が提供される。「Apollo Open Software Stack」は自動運転ソフトウェアで、これらがオープンソースとして公開されている。「Reference Hardware Platform」はクルマに搭載する標準プロセッサやセンサーなどを定義する。「Reference Vehicle Platform」はベース車両を定義したもので、ここにApolloを搭載し自動運転車を生成する。

ソフトウェアモジュール

Apolloソフトウエアは次の三つのモジュールから構成さる。Localization (位置決定)、Perception (オブジェクト把握)、Planning (走行経路算出) で、これらが自動走行の基礎技術を提供する。企業はこれらのモジュールを使い製品を開発する。また、これらのモジュールを改造して、企業独自の製品に仕立てることもできる。

Localization

このモジュールは作成されたHDマップを参照し、GPSとIMU (Inertial measurement unit、慣性計測装置) を使い、高精度でクルマの位置を決定する。

Perception

このモジュールはクルマ周囲のオブジェクトを把握する機能を持つ。クルマに搭載されたセンサー (Lidar、カメラ、レーダー) が捉えたデータを解析し、オブジェクトの種別、位置、移動速度、進行方向を特定する。ここでDeep Learningの技法が使われている。アルゴリズムはタグ付きのデータで教育されており、高精度でオブジェクトを判定できる。

Perceptionは二つのモジュールから構成される。「Obstacle Perception」はLidarとレーダーで捉えたデータを解析し障害物を特定する (下の写真)。LidarのデータはConvolutional Neural Networkで解析し、オブジェクトの特性を把握する。「Traffic Light Perception」は信号機を把握する。3Dマップにおける信号機の位置を参照し、カメラで捉えたイメージからその場所を特定し、信号機の色を把握する。

出典: Baidu

Planning

このモジュールはリアルタイムで周囲の交通の状態を把握し、最適な進行ルートを算定する (下の写真)。まず、周囲のオブジェクトの移動方向を推定し、次に、オブジェクトに特有な挙動を把握し (クルマや自転車など)、最後に、最適な進行経路を算出する。このモジュールはアクセスが制限された道路 (高速道路のように進入が制限された道路) で使うことができる。また、昼間だけでなく夜間にも使うことができる。

出典: Baidu

Simulation

Baiduは自動運転技術開発のためにシミュレーション環境を提供している。この環境はMicrosoft Azureの上に構築され、開発に必要な次のモジュールを提供する。

  • Scenarios:シミュレーションの条件を変え異なるシナリオを生成する。道路のタイプ、路上の障害物、運転方法、信号機能状態を変えることができ、異なる環境を作り出す。
  • Execution Models:上述のシナリオを使い、開発した自動運転モジュールを実行し、その機能を検証する。
  • Automatic Grading System:試験した自動運転モジュールの完成度を評価する。衝突検知、信号認識、速度制限などの試験ができ、合格か不合格化をシステムが判定する。
  • 3D Visualization:路上におけるクルマの走行状態を可視化してモニターに表示する。

Scenarios

上述の通りシミュレータは様々なシナリオを取り揃えている。信号機のある道を直進 (Go Straight w/ Lights)するというシナリオや、信号機のある交差点を左折 (Turn Left (Intersection w/ Lights) するシナリオ (下の写真) など、100種類のシナリオが用意されている。エンジニアは開発した自動運転車を様々なシナリオで走行させアルゴリズムを検証する。

出典: Baidu

自動運転技術API

開発者はApolloが提供するAPI (自動運転機能のライブラリ) を使って自動運転車アルゴリズムを開発する。各メーカーはこれらAPIを使って自動運転車を開発する。また、公開されているソフトウェアを改造して、独自の機能を持つ自動運転車を開発することもできる。上述の通り、開発したアルゴリズムを様々なシナリオで試験して、アルゴリズム実行結果 (合格・不合格) を判定する手順となる。

多種類のデータ

自動運転アルゴリズム開発や研究のために、多種類のデータが公開されている。開発者や研究者はこれらのデータを使ってアルゴリズムの教育や研究を実施できる。公開されているデータの種類はSimulation Scenario Data (シナリオ)、Annotation Data (タグ付きデータ)、Demonstration Data (デモ向けデータ)などである。

Lidar Point Cloud

Annotation Dataの中にLidarが捉えたデータ (Lidar Point Cloud) がある (下の写真)。クルマ周囲のオブジェクトはこのLidar Point Cloudを解析して判定する。Lidarが捉えたオブジェクトは種別ごとにタグ付けされ、これらデータが公開されている。データは、歩行者、自動車、自転車、その他など区分され、合計で2万フレームが公開されている。1万枚はアルゴリズム教育のために、1万枚はアルゴリズム試験のために使うことを想定している。

出典: Baidu

Baiduが勢力を拡大

このように中国ではBaiduが主導するApolloが大きく勢力を拡大している。Baiduが自動運転技術のAI開発を担い、その他の技術は参加企業が共同で開発する体制となる。ApolloプロジェクトにはVelodyne (Lidarセンサー) やNvidia (車載プロセッサ) やTomTom (マップ技術) など、自動運転車のキーコンポーネントを提供するベンダーが参加している。世界の自動運転車開発は米国、欧州、中国の三極体制に向かいつつある。