検索
連載

自動車を制御するロボットの思考と行動の仕組み――Google Carが現実世界を認識する際の3つのアルゴリズムと実用化への課題Google Carの自動運転技術大解剖(2)(3/3 ページ)

本連載では、公開情報を基に主にソフトウエア(AI、アルゴリズム)の観点でGoogle Carの仕組みを解説していきます。今回は、制御AIの思考と行動のサイクル、位置推定の考え方「Markov Localization」における3つのアルゴリズムと、その使い分け、現実世界の認識における課題などについて。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

位置推定の考え方「Markov Localization」における3つのアルゴリズムと、その使い分け

 Markov Localizationのコンセプトを実現するアルゴリズムには、いくつかのバリエーションがあります。

Grid Localization(Histogram Filter Localization)

 x座標を等間隔に細かな区画(grid)に分け、1つ1つの区画に対しロボットの存在確率を計算する方法です。Markov Localizationを素直に適用したもので、大変分かりやすいです。しかし、この方法は1つの区画を小さくして解像度を上げ、区画の数を多くした場合は手に負えなくなるほど計算時間がかかります。


Grid Localization

Kalman Filter Localization

 ロボットの存在確率の分布を無理やり正規分布で表現した方法です。Grid Localizationのようにx座標を区画に分ける必要がなくなる一方、本来の確率分布が正規分布では表現できないため、どうしても近似表現となります。

 例えば、通常ロボットの確率分布は複数の山を持ちますが、正規分布には山が1つしか存在しないため、最も高い山以外は無視することになります。このような大胆な近似を行うため、かなり大ざっぱにはなりますが、計算は高速です。


Kalman Filter Localization

Monte Carlo Localization(Particle Filter Localization)

 ロボットの存在確率を数百から数千の粒子(particle)の粗密で表現する方法です。

 この方法は、直観的には、ロボットの分身(particle)を1000個ぐらい作って、それを別々に動かすといったイメージの方法です。この個別に動いている分身の中から、センサーの測定結果とかけ離れた、あり得ない車を消していきます。一方で、消した車と同じ数だけ、センサーの測定結果と合致しているものを優先的に分裂させることで分身を産みます。

 このような再生と淘汰を繰り返すことで、存在確率の高いx座標にはたくさんのparticleが集まってきます。たくさんのparticleが集まっていることは、そこにロボットが居る確率が高いことを意味します。

 1つの確率の山しか持てないKalman Filter Localizationとは違い、複数の場所に確率の山を作ることが可能な上、用いるparticleの数を調整することで、計算の正確さと計算速度のトレードオフをすることが可能です。

 例えば、計算が荒くなることを承知で計算速度を上げたければparticleの数を少なくし、計算が遅くなったとしても、より解像度の高い計算結果が欲しければparticleの数を増やします。プログラミングが楽であることもMonte Carlo Localizationの特徴です。


Monte Carlo Localization

3種類のアルゴリズムの使い分け

 Google Carは上記の3種類のアルゴリズムを用途によって使い分けています。

 例えば走行レーン内における左右の位置推定には1次元のGrid Localizationを使用したり、既知の地図上における自分の居場所の推定と、他の車の位置のトラッキングにはMonte Carlo Localizationを使用したりといった具合です。

 また、DARPA Grand ChallengeのStanleyとDARPA Urban ChallengeのJuniorでも、使用するアルゴリズムが変わっています。これらのアルゴリズムの元のコンセプトは同じなのですが、それぞれ一長一短あり、用途によって使い分ける必要があります。

実用化に向けた現実世界の認識における課題――ディープラーニングが鍵

 以上が「Probabilistic Robotics」の成果によって改善された、ロボットの認識能力の向上の説明です。現実世界と仮想世界の橋渡しをする中で発生する不確実性を、確率分布を用いてうまくつないでいることが直観的に理解できれば幸いです。

 このような枠組みが、なぜうまく機能するかについて補足すると、「Probabilistic Robotics」を使うロボットは、「自分が何らかのアクションをした後の未来が、どうなっているか」を前もって予測し、その予測がセンサー情報とどれほど合致しているかを見ているためと言えるかもしれません。

 ロボットが立てる直近の未来予測がセンサー情報とよく合致している場合、確率分布のピークがとてもはっきりとし、自信を持って「自分は、ここに居る」と算出できます。一方で、ロボットが立てる直近の未来予測がセンサー情報と合致しなくなった瞬間、確率分布はピークのない、あやふやな分布になります。このような状況になったとき、ロボットは自分がどこに存在しているのか自信を失うでしょう。

 さて、「Probabilistic Robotics」を導入することでGoogle Carの認識能力は以前に比べて格段に改善されていますが、これで十分かという問題が残っています。これについては、さまざまな意見が存在します。

 例えば、道路上に落ちているビニール袋をGoogle Carが見て、それを岩のような避けなければならない障害物なのか、柔らかなものなので踏んでしまって大丈夫なのかを認識することには「Probabilistic Robotics」は役に立ちそうにありません。このような認識には、現在大きな盛り上がりを見せているディープラーニングによる画像認識を導入する必要がありそうです。

 また、人による交通整理が行われている所にGoogle Carが遭遇した場合、交通整理をしている人のジェスチャや声掛けを適切に認識する必要もあります。Google Carには、人のジェスチャを適切に判断する能力が備わっていますが、この能力は「Kinect」を用いたジェスチャの解釈と同レベルと言っていいでしょう。比較的うまく認識するとはいえ、「車の動作を決定するほど信頼してよいのか」といった状況です。

 このような認識をGoogle Carがきちんとできるのかというと、「現在のAIには人間ほどの認識能力はない」と言わざるを得ません。Google Carの完成度は現実世界の認識能力に懸かっています。Google Carが人間と同程度の運転技術を身に付けるためには、人間と同程度の認識能力を得る必要があります。現在のAIの研究では、人間と同程度の認識能力をコンピューターが持てるように努力を続けている状態ですが、現状はこの程度と言っていいでしょう。

 ディープラーニングなどの近年のブレイクスルーにより、もしかすると急激に研究が進み、短期間で人間と遜色のないレベルの認識能力に達する可能性もありますが、今はその途上にあります。

次回は、「行動計画の立案」「計画した動作の実行」について

 さて、Google Carを理解するための大きな山場である、現実世界の認識に関しては以上で終了です。次回は、コンピューターが得意とする【2】「行動計画の立案」や【3】「計画した動作の実行」について説明します。

筆者紹介

近棟 稔(ちかむね みのる)

ウルシステムズ マネージングコンサルタント

ITアーキテクトとして一貫して技術的な課題解決のための仕事を手掛ける。製造業を中心に多数の基幹システムの設計、構築を担当してきた。

Enterprise Geeks」でもLispインタープリターの記事を執筆中。

ここ数年は、人工知能の中でもニューラルネットワークの新しい潮流に強い関心を持っている。

主な著書

J2EEパターン第2版』(日経BP社刊、共著)


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る