本開示の実施形態は全体として自動運転車両の動作に関するものである。より具体的には、本開示の実施形態は自動運転車両の制御において機械学習アルゴリズムを用いて意思決定を行うことに関するものである。
自動運転モード(例えば、無人運転)で走行する車両は、乗員、特に運転手を一部の運転に関する責任から解放することができる。自動運転モードで操作する場合、車両は車載センサーを用いて様々な位置までナビゲートされ、ヒューマンマシンインタラクションが最も少ない場合、又は乗員がいない場合などに車両を走行させることが可能となる。
周囲のオブジェクトに関する意思決定は、自動運転技術における重要な部分の1つである。1つの意思決定は、自動運転車両(ADV)の周囲環境における移動オブジェクトに対する譲り/追い越しの決定であり、該移動オブジェクトのルートはADVの計画ルートと交わる。譲り/追い越しの決定は、オブジェクトのルートとADVのルートとの間の交差点における交差時間に基づいて限定される。オブジェクトがADVの前に交差点に到達する場合、ADVはオブジェクトに「譲った」ことになる。一方、ADVがオブジェクトの前に交差点に到達する場合、ADVはオブジェクトを「追い越した」ことになる。
機械学習に基づく意思決定は、手作業でラベル付けされたデータを用いてトレーニングする必要があるため通常困難である。また、各々のオブジェクトに対して繰り返す方法で意思決定を行う必要があるため時間もかかる。
本開示の実施形態は添付図面の各図において限定的なものではなく例示的な形態で示されており、添付図面における同じ参照符号は類似要素を示す。
一実施形態に係るネットワーク化システムを示すブロック図である。
一実施形態に係る自動運転車両の一例を示すブロック図である。
一実施形態に係る自動運転車両に併用される感知・計画システムの一例を示すブロック図である。
一実施形態に係る自動運転車両に併用される感知・計画システムの一例を示すブロック図である。
一実施形態に係る畳み込みニューラルネットワーク(CNN)内の様々な層を示す図である。
一実施形態に係るディープニューラルネットワークのトレーニング及びデプロイメントを示す図である。
一実施形態に係るデータ処理アーキテクチャを示すブロック図である。
一実施形態に係る譲り/追い越しの決定を用いてトレーニングデータを自動的にラベル付けするための例示的な方法を示す図である。
一実施形態に係るデータの例示的な視覚表現を示す図である。
一実施形態に係るデータの例示的な視覚表現を示す図である。
一実施形態に係る自動運転車両(ADV)の操作中に機械学習により意思決定を行うための例示的な方法を示すフローチャートである。
一実施形態に係るデータ処理システムを示すブロック図である。
本開示の様々な実施形態と態様は、以下で論述される詳細を参照しながら記載され、添付図面が様々な実施形態を説明する。下記説明及び添付図面は本開示を説明するためのものであり、本開示を限定するものとして解釈されてはいけない。多くの具体的な詳細は本開示の様々な実施形態に対する全面的な理解を提供するために記載される。しかしながら、特定の場合において、本開示の実施形態に対する簡潔な論述を提供するために、公知又は通常の詳細は記載されないことがある。
本明細書において、「一実施形態」又は「実施形態」の記載は、当該実施形態に記載されている特定の特徴、構成又は特性を組み合わせて本開示の少なくとも一つの実施形態に含むことができることを意味する。「一実施形態において」は、本明細書において複数のところに出ているが、全て同一の実施形態を意味するものではない。
一実施形態では、自動運転車両(ADV)を動作させるときに機械学習により意思決定を行うための方法、装置、及びシステムが提供される。少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、ADVの周辺環境における1つまたは複数のオブジェクトに対して1つまたは複数の譲り/追い越しの決定を行い、第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものである。その後、ADVの動作を制御するために、少なくとも部分的に譲り/追い越しの決定に基づいて運転信号を生成する。
一実施形態では、1つ又は複数のオブジェクトは自動車、自転車、及び/又は歩行者を含む。第1ニューラルネットワークは多層パーセプトロンであり、第2ニューラルネットワークは畳み込みニューラルネットワーク(CNN)であり、第3ニューラルネットワークは全結合ネットワークである。
一実施形態において、第1ニューラルネットワークは、1つまたは複数の以前の計画周期から1つまたは複数のオブジェクトの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴を出力として生成し、第2ニューラルネットワークは、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報の両方を符号化したデータを出力として生成し、第3ニューラルネットワークは、符号化されたデータおよびADVの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの各々に対する決定を含む1つまたは複数の譲り/追い越しの決定を出力として生成する。
一実施形態において、1つまたは複数のオブジェクトの履歴特徴は、位置、速度または加速度のうちの1つ以上を含む。地図情報は高精細地図に由来するものであり、車線特徴成分、交通信号成分、静的オブジェクト成分または、一般地図情報成分のうちの1つ以上を含む。
一実施形態において、ADVの矩形感知領域のグリッド細分化に基づいて、関連付けられたブロック情報で1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報をラベル付けし、該グリッド細分化は、ADVの矩形感知領域をグリッドに基づいて複数の均一なサイズの矩形ブロックに細分化することを含む。
一実施形態において、符号化されたデータおよびADVの履歴特徴は、第3ニューラルネットワークにフィードされる前に直列接続(concatenate)される。トレーニングデータセットは、以前記録された、譲り/追い越しの決定で自動的にラベル付けされた運転及びオブジェクト感知データを含む。
図1は、本開示の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1を参照すると、ネットワーク構成100は、ネットワーク102を介して1つまたは複数のサーバ103〜104に通信可能に接続される自動運転車両101を含む。1台の自動運転車両が示されているが、複数の自動運転車両がネットワーク102を介して互いにおよび/またはサーバ103〜104に接続されてもよい。ネットワーク102は、有線または無線のローカルエリアネットワーク(LAN)、インターネットなどのような広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワークまたはそれらの組み合わせなど任意の種類のネットワークであってもよい。サーバ103〜104は、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバまたはそれらの組み合わせなど、任意のタイプのサーバまたはサーバクラスタであってもよい。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・関心地点(MPOI)サーバまたは位置サーバなどであってもよい。
自動運転車両とは、車両が運転者からの入力が非常に少ないまたはない場合でもナビゲーションして環境を通過するように、自律運転モードに構成することができる車両のことである。このような自動運転車両は、車両走行環境に関連する情報を検出するように構成された1つまたは複数のセンサを有するセンサシステムを備えてもよい。前記車両およびそれに関連するコントローラは、検出された情報を用いてナビゲーションして前記環境を通過できる。自動運転車両101は、手動モード、完全自律運転モード、又は部分自律運転モードで走行することができる。
一実施形態では、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、インフォテインメントシステム114及びセンサシステム115を含むが、これらに限定されない。自動運転車両101には、一般車両に備えられているいくつかの一般的な構成要素、例えば、エンジン、車輪、ステアリングホイール、変速機などが更に備えられてもよく、前記構成要素は、車両制御システム111及び/又は感知・計画システム110により複数種の通信信号及び/又はコマンド、例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどを使用して制御可能である。
構成要素110〜115は、インターコネクタ、バス、ネットワーク又はこれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションにおいてマイクロコントローラ及びデバイスが互いに通信できるように許容された車両バス規格である。それは、もともとは自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
以下図2を参照すると、一実施形態では、センサシステム115は、一つ以上のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダユニット214並びに光検出・測距(LIDAR)ユニット215を含むが、これらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように操作可能な送受信機を含んでもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置及び方位変化を感知することができる。レーダユニット214は、無線信号を用いて自動運転車両のローカル環境におけるオブジェクトを感知するシステムを表してもよい。いくつかの実施形態において、オブジェクトを感知することに加えて、レーダユニット214は、更にオブジェクトの速度及び/又は進行方向を感知することもできる。LIDARユニット215は、自動運転車両が位置する環境におけるオブジェクトをレーザで感知することができる。他のシステム構成要素に加えて、LIDARユニット215は、更に一つ以上のレーザ光源、レーザスキャナ及び一つ以上の検出器を含んでもよい。カメラ211は、自動運転車両の周囲環境における画像を取り込むための一つ以上の装置を含んでもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームにカメラを取り付けることによって、機械的に移動可能なものであってもよい。
センサシステム115は更に他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ(例えば、マイクロホン)を含んでもよい。オーディオセンサは、自動運転車両の周囲の環境から音声を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイールの操舵角、車両の車輪の転舵角又はこれらの組み合わせを感知するように構成されてもよい。スロットルセンサ及びブレーキセンサはそれぞれ車両のスロットル位置及びブレーキ位置を感知する。ある場合に、スロットルセンサ及びブレーキセンサは集積型スロットル/ブレーキセンサとして統合されてもよい。
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットともいう)及びブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は、モータ又はエンジンの速度を制御するために用いられ、モータ又はエンジンの速度によって更に車両の速度及び加速度を制御する。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、図2に示された構成要素は、ハードウェア、ソフトウェア又はこれらの組み合わせで実施することができる。
再び図1を参照し、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム112は、直接又は通信ネットワークを介して一つ以上の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用して、例えばWiFiを(登録商標)使用して他の構成要素又はシステムと通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内で実施された周辺装置の部分、例えば、キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含んでもよい。
自動運転車両101の機能のうちの一部又は全部は、特に自動運転モードで操作する場合に、感知・計画システム110により制御されるか、又は管理されることができる。感知・計画システム110は、センサシステム115、制御システム111、無線通信システム112及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までの路線又は経路を計画した後に、計画及び制御情報に基づいて車両101を運転するために、必要なハードウェア(例えば、プロセッサ、メモリ、記憶デバイス)並びにソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含む。場合に応じて、感知・計画システム110は車両制御システム111と一体に集積されてもよい。
例えば、乗員であるユーザは、例えば、ユーザインターフェースを介して行程の出発地位置及び目的地を指定することができる。感知・計画システム110は行程関連データを取得する。例えば、感知・計画システム110は、MPOIサーバから位置及びルート情報を取得することができる、前記MPOIサーバは、サーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及びある位置のPOIを提供する。場合に応じて、このような位置及びMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされてもよい。
自動運転車両101がルートに沿って移動している場合に、感知・計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得することもできる。なお、サーバ103〜104は第三者エンティティにより操作させることができる。場合に応じて、サーバ103〜104の機能は、感知・計画システム110と一体に集積されてもよい。リアルタイム交通情報、MPOI情報及び位置情報、並びにセンサシステム115によって検出されたか又は感知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知・計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって、車両101を運転することができる。
サーバ103は、様々なクライアントに対してデータ解析サービスを実行するためのデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを含む。データコレクタ121は、いろんな車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発した運転命令(例えば、スロットルコマンド、ブレーキコマンド、ステアリングコマンド)及び車両のセンサによって異なる時点で取得された車両の応答(例えば、速度、加速、減速、方向)を指示する情報を含む。運転統計データ123はさらに、異なる時点における運転環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、天気状況などを含んでもよい。
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的に応じてルールセット、アルゴリズム及び/又は予測モデル124を生成するか又はトレーニングする。一実施形態において、ADVを動作させるための譲り/追い越しの意思決定を行うために、アルゴリズム124はニューラルネットワークに基づくデータ処理アーキテクチャを含んでもよい。
次に、アルゴリズム124は、自動運転の間にリアルタイムで使用するために、ADVにアップロードすることができる。
図3A〜図3Bは、一実施形態に係る自動運転車両に併用される感知・計画システムの一例を示すブロック図である。システム300は、図1の自動運転車両101の一部として実現されてもよく、感知・計画システム110、制御システム111及びセンサシステム115を含むが、これらに限定されない。図3A〜図3Bを参照すると、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、ルーティングモジュール307及び機械学習モジュール308を含むが、これらに限定されない。
モジュール301〜308のうちの一部又は全部は、ソフトウェア、ハードウェア又はこれらの組み合わせで実現されてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、且つ一つ以上のプロセッサ(図示せず)により実行されてもよい。注意すべきことは、これらのモジュールのうちの一部又は全部は、図2の車両制御システム111の一部又は全部のモジュールに通信可能に接続されるか、又はそれらと一体に統合されてもよい。モジュール301〜308のうちの一部は集積モジュールとして一体に統合されてもよい。
測位モジュール301は、(例えば、GPSユニット212を利用して)自動運転車両300の現在の位置を確定するとともに、ユーザの行程又はルートに関連するあらゆるデータを管理する。測位モジュール301(地図及びルーティングモジュールともいう)は、ユーザの行程又はルートに関連するあらゆるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして行程の出発位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300における地図・ルート情報311のような他の構成要素と通信して、行程関連データを取得する。例えば、測位モジュール301は、位置サーバ並びに地図・POI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及び特定位置のPOIを提供し、これらは地図及びルート情報311の一部としてキャッシュされ得る。自動運転車両300がルートに沿って移動するとき、測位モジュール301も交通情報システム又はサーバからリアルタイム交通情報を取得することもできる。
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を決定する。感知情報は、一般の運転手が運転手により運転されている車両の周囲において感知すべきものを示すことができる。感知は、例えば、オブジェクト形式を採用した車線構成、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含むことができる。車線構成は、例えば、車線の形状(例えば、直線または湾曲)、車線の幅、道路内の車線数、一方向または二方向車線、合流または分岐車線、退出車線などのような、1つまたは複数の車線を記述する情報を含む。
感知モジュール302は、一つ以上のカメラにより収集された画像を処理、解析して、自動運転車両の環境におけるオブジェクト及び/又は特徴を認識するために、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び/又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図を描画し、オブジェクトを追跡し、及びオブジェクトの速度を推定することなどができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサにより提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
各オブジェクトに対して、予測モジュール303は、様々な場合にオブジェクトがどのように挙動するかを予測する。予測は、地図/ルート情報311と交通ルール312のセットに応じて、該時点において運転環境が感知された感知データに基づいて実行される。例えば、オブジェクトが反対方向における車両で、且つ現在の運転環境に交差点が含まれている場合に、予測モジュール303は車両が直進するか又は曲がるかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があり得ることを予測することができる。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することができる。
各オブジェクトに対して、決定モジュール304はオブジェクトをどのように対応するかを決定する。例えば、特定のオブジェクト(例えば、交差のルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、曲がり角)について、決定モジュール304は前記オブジェクトと遭遇するときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルール又は運転ルール312のルールセットに基づいてこのような決定を行うことができ、前記ルールセットは永続性記憶装置352に格納されてもよい。
ルーティングモジュール307は、出発地点から目的地点までの一つ以上のルート又は経路を提供するように構成される。例えば、ユーザから受け取った出発位置から目的地位置までの所定の行程に対して、ルーティングモジュール307は地図・ルート情報311を取得して、出発位置から目的地位置に到着する全ての可能なルート又は経路を決定する。決定された出発地から目的地に到着するルート毎に、ルーティングモジュール307は地形図の形式で基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況のような全ての干渉を受けない理想的なルート又は経路を指す。即ち、路上に他の車両、歩行者又は障害物がなければ、ADVは基準線に完全に又は緊密に従うべきである。そして、地形図が決定モジュール304及び/又は計画モジュール305に提供される。決定モジュール304及び/又は計画モジュール305は全ての可能なルートを検査して他のモジュールから提供された他のデータ、例えば測位モジュール301からの交通状況、感知モジュール302により感知された運転環境及び予測モジュール303により予測された交通状況に基づいて最適ルートのうちの一つを選択し修正する。ADVを制御するための実際のルート又は経路は、その時点における特定運転環境によって、ルーティングモジュール307から提供された基準線に近接するか又は異なっていてもよい。
計画モジュール305は、感知されたオブジェクトのそれぞれに対する決定に基づいて、ルーティングモジュール307により提供された基準線を基準にして、自動運転車両のために経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は曲がり角)を計画する。言い換えれば、所定のオブジェクトについて、決定モジュール304は当該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、所定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くかを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くかそれとも右側から追い抜くかを決定することができる。計画及び制御データは計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300が30マイル/時間(mph)の速度で10メートル移動し、その後25mphの速度で右側車線に変更するように指示することができる。
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより限定されたルート又は経路に応じて適当なコマンド又は信号を車両制御システム111に送信することにより自動運転車両を制御しながら運転する。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両構成又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1の点から第2の点まで運転するのに十分な情報を含む。
一実施形態では、計画段階は、例えば、時間間隔が100ミリ秒(ms)の周期など、複数の計画周期(運転周期ともいう)で実行される。計画周期又は運転周期のそれぞれについて、計画データ及び制御データに基づいて一つ以上の制御コマンドが発信される。すなわち、100msごとに、計画モジュール305は、例えば、目標位置及びADVが目標位置に到着するのに必要な時間を含む次のルート区間又は経路区間を計画する。あるいは、計画モジュール305は更に具体的な速度、方向及び/又は操舵角などを指定することもできる。一実施形態では、計画モジュール305は、(例えば、5秒など)次の所定期間のためにルート区間又は経路区間を計画する。各計画周期について、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。次に、制御モジュール306は、現在の周期の計画データ及び制御データに基づいて、一つ以上の制御コマンド(例えば、スロットルコマンド、ブレーキコマンド、ステアリング制御コマンド)を生成する。
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の運転経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能を具備することができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行するとともに、感知された障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を経由して行われたユーザ入力に応じて設定されることができる。ナビゲーションシステムは、自動運転車両が走行していると同時に運転経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための運転経路を決定するために、GPSシステム及び一つ以上の地図からのデータをマージすることができる。
機械学習モジュール308は、ニューラルネットワーク又は予測モデル313などの機械学習技術を用いてデータ処理アーキテクチャを実現し、機械学習技術は既知のデータに基づいて予測を生成し、又は決定を行うために使用され得る。
機械学習アルゴリズムは、データの集合に基づいて学習を行うことができるアルゴリズムである。機械学習アルゴリズムの実施形態は、データセット内の高度な抽象化概念をモデル化するように設計されてもよい。例えば、画像認識アルゴリズムは、所与の入力が幾つかのカテゴリーのどちらに属するかを決定するために使用され、回帰アルゴリズムは、所与の入力の値を出力することができ、パターン認識アルゴリズムは翻訳テキストを生成するか、又はテキストを音声に読み上げるか、及び/又は音声認識を行うことができる。
例示的な種類の機械学習アルゴリズムはニューラルネットワークである。多くの種類のニューラルネットワークが存在し、単純型ニューラルネットワークはフィードフォワードネットワークである。フィードフォワードネットワークは、ノードが層の形態で配列される非循環グラフとして実施され得る。一般に、フィードフォワードネットワークトポロジは、少なくとも1つの隠れ層によって分離された入力層及び出力層を含む。隠れ層は、入力層によって受信された入力を、出力層における出力の生成に利用可能な表現に変換する。ネットワークノードは、エッジを介して隣接する層のノードに完全に接続されるが、各層内のノード間にエッジは存在しない。フィードフォワードネットワークの入力層のノードで受信されたデータは、各層を接続するエッジの各々に関連する係数(「重み」)に基づいてネットワーク内の連続する層の各々のノードの状態を計算する活性化関数を介して出力層のノードに伝播(すなわち、「フィードフォワード」)する。ニューラルネットワークアルゴリズムからの出力は、実行されているアルゴリズムによって表される特定のモデルに応じて、様々な形態を取り得る。
機械学習アルゴリズムが特定の問題のモデル化に使用可能になる前に、トレーニングデータセットを使用してアルゴリズムをトレーニングする。ニューラルネットワークをトレーニングすることは、ネットワークトポロジを選択することと、ネットワークによってモデル化された問題を表すトレーニングデータセットを使用することと、ネットワークモデルがトレーニングデータセットのすべてのインスタンスに対して最小誤差で実行されるまで重みを調整することとを含む。例えば、ニューラルネットワークのための教師あり学習プロセスの間、トレーニングデータセット内のインスタンスを表す入力に応答してネットワークによって生成された出力を、そのインスタンスに対して「正しい」とラベル付けされた出力と比較し、該出力とラベル付けされた出力との間の差を表す誤差信号を計算し、誤差信号がネットワーク層を通じて逆方向に伝搬されるときに該誤差を最小化するように接続に関連付けられた重みを調整する。該ネットワークは、トレーニングデータセットのインスタンスから生成された出力の各々の誤差が最小化されたときに「トレーニング済み」であると考えられる。
ニューラルネットワークは、グラフ関係を有する機能ネットワークに要約され得る。当該技術分野で周知のように、機械学習で使用される様々な種類のニューラルネットワークの実施形態が存在する。前述のように、例示的なタイプのニューラルネットワークは、フィードフォワードネットワークである。
第2の例示的なタイプのニューラルネットワークは、畳み込みニューラルネットワーク(CNN)である。CNNは、画像データなどの既知の格子状トポロジーを有するデータを処理するための専用フィードフォワードニューラルネットワークである。したがって、CNNは通常、視覚および画像認識アプリケーションを計算するために使用されるが、自動運転車両の背景における音声、言語処理および意思決定など、他のタイプのパターン認識のためにも使用され得る。CNN入力層内のノードは、「フィルタ」(網膜に見られる受容域に啓示が与えられた特徴検出器)のセットに編成され、各セットのフィルタの出力はネットワークの連続層内のノードに伝播する。CNNの計算は、該フィルタの出力を生成するために、各フィルタに畳み込み数学演算を適用することを含む。畳み込みは、2つの元の関数のうちの1つの修正バージョンとしての第3の関数を生成するために、2つの関数によって実行される特別タイプの数学演算である。畳み込みのネットワーク用語では、畳み込みの第1の関数は入力と呼ばれ、第2の関数は畳み込みカーネルと呼ばれる。出力は特徴マップと呼ばれる。例えば、畳み込み層への入力は、入力画像の様々な色成分を定義する多次元データ配列であり得る。畳み込みカーネルは、ニューラルネットワークのためのトレーニングプロセスによってパラメータが調整される多次元パラメータアレイであり得る。
上述したニューラルネットワークの例は、ディープラーニングを行うために使用され得る。ディープラーニングはディープニューラルネットワークを用いた機械学習である。1つの隠れ層のみを含む浅層ニューラルネットワークと比較して、ディープラーニングに用いられるディープニューラルネットワークは、複数の隠れ層からなる人工ニューラルネットワークである。より深い層のニューラルネットワークは通常トレーニングのためにより高密度の計算を必要とする。しかし、ネットワークの追加の隠れ層は、浅層機械学習技術と比較して出力誤差の低減をもたらすマルチステップパターン認識を可能にする。
ディープラーニングのためのディープニューラルネットワークは通常、特徴認識を実行するための、バックエンドネットワークに結合されたフロントエンドネットワークを含み、バックエンドネットワークは、モデルに提供された特徴表現に基づいて動作(例えば、オブジェクト分類、音声認識、意思決定など)を実行できる数学モデルを表す。ディープラーニングは、モデルのための人手による特徴工学を実行する必要のない機械学習を実行することができる。一方、ディープニューラルネットワークは、入力データ内の統計的構造または相関性に基づいて特徴を学習することができる。学習された特徴は、検出された特徴を出力にマッピングすることができる数学モデルに提供され得る。ネットワークによって使用される数学モデルは、通常、実行される特定のタスクの専用であり、異なるモデルを使用して異なるタスクが実行される。
ニューラルネットワークが構築されると、学習モデルは、ネットワークに適用されて、特定のタスクを実行するようにネットワークをトレーニングする。学習モデルは、ネットワークの出力誤差を低減するためにモデル内の重みをどのように調整するかを記述する。誤差の逆伝搬は、ニューラルネットワークをトレーニングするための一般的な方法である。入力ベクトルは、処理のためにネットワークに提示される。損失関数を用いて、ネットワークの出力を所望の出力と比較し、出力層のニューロンの各々の誤差値を計算する。各ニューロンが関連する誤差値を有するまで、誤差値は逆伝搬され、該誤差値は元の出力へのその寄与を大まかに表す。そして、確率的勾配降下法などのアルゴリズムを用いて、これらの誤差からネットワークを学習させてニューラルネットワークの重みを更新することができる。
図4は一実施形態に係る畳み込みニューラルネットワーク(CNN)内の様々な層を示す略図400である。入力402は、複数の成分を含み得る。例えば、画像処理モデル化のための例示的なCNNは、入力画像の赤、緑、及び青(RGB)成分を記述する入力402を受信することができる。入力402は、複数の畳み込み層(例えば、畳み込み層404、畳み込み層406)によって処理されてもよい。場合によって、複数の畳み込み層からの出力は全結合層408のセットによって処理され得る。フィードフォワードネットワークに関して前述したように、全結合層のニューロンは、以前の層のすべての活性化された完全結合を有する。全結合層408からの出力は、ネットワークから出力結果を生成するために使用され得る。全結合層408内の活性化は、畳み込みではなく行列乗算を使用して計算され得る。全てのCNN実施形態が全結合層408を使用するわけではない。例えば、いくつかの実施形態において、畳み込み層406はCNNの出力を生成し得る。
畳み込み層は、全結合層408に見られる従来のニューラルネットワーク構成とは異なり、疎に結合される。従来のニューラルネットワーク層は、各出力ユニットが各入力ユニットと相互作用するように、完全に結合される。しかし、図示のように、領域の畳み込みの出力は、領域内の各ノードの対応する状態値の代わりに後続層のノードに入力されるので、畳み込み層は疎に結合される。畳み込み層に関連するカーネルは、畳み込み演算を実行し、その出力は次の層に送られる。畳み込み層内で実行される次元縮小は、大型入力(例えば、大型画像)を処理するためにCNNがスケーリングされることを可能にする一態様である。
図5は一実施形態によるディープニューラルネットワークのトレーニング及びデプロイメントを示す略図500である。特定のネットワークがタスクのために構築されると、ニューラルネットワークは、トレーニングデータセット502を使用してトレーニングされる。トレーニングプロセスに様々なトレーニングフレームワーク504が開発されている。トレーニングフレームワーク504は、トレーニングされていないニューラルネットワーク506にフックされ、トレーニングされていないニューラルネットワークがトレーニング済みニューラルネットワーク508を生成するようにトレーニングされることができる。
トレーニングプロセスを開始するために、初期重みは、ランダムにまたはディープビリーフネットワーク(deep belief network)を用いた事前トレーニングによって選択され得る。そして、トレーニング周期は教師ありまたは教師なしの方式で行われる。
教師あり学習は、例えば、トレーニングデータセット502が入力の所望の出力と対になった入力を含む場合、またはトレーニングデータセットが既知の出力を有する入力を含み、ニューラルネットワークの出力が手動で等級分けされる場合などに、トレーニングが仲介動作として行われる学習方法である。ネットワークは、入力を処理し、得られた出力を、予想されるまたは希望される出力のセットと比較する。そして、誤差はシステムを通じて伝搬されてくる。トレーニングフレーム504は、トレーニングされていないニューラルネットワーク506の重みを調整、制御することができる。トレーニングフレーム504は、既知の入力データに基づいて正解を生成するのに適したモデルに向けて、トレーニングされていないニューラルネットワーク506が収束する度合いを監視するためのツールを提供することができる。ニューラルネットワークによって生成された出力を改良するようにネットワークの重みを調整するとき、トレーニングプロセスが繰り返し行われる。ニューラルネットワークが、トレーニング済みニューラルネットワーク508に関連付けられる統計的要求精度に達するまで、トレーニングプロセスは継続され得る。次いで、トレーニング済みニューラルネットワーク508は、任意の数の機械学習動作を実現するためにデプロイメントされ得る。
教師なし学習は、ネットワークが、ラベル付けされていないデータを使用して、自分をトレーニングすることを試みる学習方法である。したがって、教師なし学習の場合、トレーニングデータセット502は、関連する出力データを全く含まない入力データを含む。トレーニングされていないニューラルネットワーク506は、ラベル付けされていない入力内のグループを学習し、各入力がデータセット全体とどのように関連するかを決定し得る。教師なしトレーニングは、データ次元を減少させるのに役立つ動作を実行することができるトレーニング済みニューラルネットワーク507である自己組織化マップを生成するために使用され得る。また、教師なし学習は、異常検出を実行するためにも使用され得、これは、入力データセット内のデータの正常なパターンから逸脱するデータポイントを識別することを可能にする。
図6を参照すると、一実施形態によるデータ処理アーキテクチャ600を示すブロック図が示されている。ADVによって検出された感知領域内のオブジェクトの履歴特徴602は、第1ニューラルネットワーク604にフィードされる。該オブジェクトは自動車、自転車、歩行者などを含み得る。オブジェクトの履歴特徴は、複数の以前の計画周期(例えば、10の以前の計画周期)における位置(例えば、座標)、速度(大きさ及び方向)、加速度(大きさ及び方向)などを含み得るが、これらに限定されない。第1ニューラルネットワーク604にフィードされる前に、オブジェクト履歴特徴は一緒に直列接続されてオブジェクト特徴リストを形成し得る。第1ニューラルネットワーク604は、すべてのオブジェクトの同じパラメータ(重み)を共有する多層パーセプトロンなどの全結合ネットワークであり得る。
第1ニューラルネットワーク604の出力は、少数(例えば、1〜3)の抽出されたオブジェクト履歴特徴606を含み、第2ニューラルネットワーク610の入力のオブジェクト成分606となるように構成され得る。オブジェクト成分606は、地図情報成分608とともに第2ニューラルネットワーク610にフィードされる。地図情報成分608は、地図・ルート情報311(例えば、高精細地図)に基づいて生成され、感知領域に対する車線特徴成分、交通信号成分、静的オブジェクト成分、及び一般地図情報成分などを含み得るが、これらに限定されない。
一実施形態では、感知領域は矩形領域であってもよく、グリッドに基づいて、複数の同サイズの矩形ブロックにさらに細分化されてもよい。感知領域は、ADVの感知範囲にほぼ対応し得る。例えば、感知領域は、100メートルの長さ及び40メートルの幅を有してもよい。感知領域を構成するブロックのサイズは、経験的に選択されてもよく、一実施形態では、各ブロックが一度に1つ以下のオブジェクトを含み得るように選択されてもよい。例えば、ブロックが2m×2mであってもよい。
第2ニューラルネットワーク610にフィードされる前に、オブジェクト成分606および地図情報成分608は、グリッド細分化に基づいてラベル付けされ得る。言い換えれば、抽出されたオブジェクトの履歴特徴および地図情報(車線、交通信号、静的オブジェクトなど)は、それらに関連付けられたブロックでラベル付けされてもよい。したがって、上述したように、オブジェクト成分606および地図情報成分608を含む第2ニューラルネットワーク610の入力の様々な成分は、グリッドに基づいて互いに整列された積み重ねレイヤとして視覚化され得る。
第2ニューラルネットワーク610はCNNであり得、1つ以上のオブジェクトの抽出された履歴特徴および地図情報の両方を符号化した符号化データ612を出力するように構成され得る。第3ニューラルネットワーク616にフィードされる前に、符号化データ612は、複数の以前の計画周期(例えば、10の以前の計画周期)からのADVの履歴特徴614(例えば、位置、速度、加速度)と直列接続され得る。次いで、第3ニューラルネットワーク616は、各々が1つの決定に対応する1つ以上のオブジェクトに対する1つ以上の譲り/追い越しの決定618を生成する。
第1ニューラルネットワーク604、第2ニューラルネットワーク610、及び第3ニューラルネットワーク616は、ADV動作の予測のために使用され得る前に、運転(例えば、人間の運転)及びオブジェクト挙動グラウンドトゥルースデータ(object behavior ground truth data)並びに地図情報を含むトレーニングデータセットを用いてトレーニングされる必要があることを理解されたい。トレーニングに用いられる前に、トレーニングデータセットは、対象車両と異なるオブジェクトとが交差点(対象車両の経路と移動オブジェクトの経路とが交差する点)に到達する時点に基づいて実際に行われる譲り/追い越しの決定で自動的にラベル付けされてもよい。対象車両の前にオブジェクトが交差点に到達する場合、関連する決定は「譲り」としてラベル付けされる。オブジェクトの前に対象車両が交差点に到達する場合、関連する決定は「追い越し」としてラベル付けされる。対象車両の経路とオブジェクトの経路とが交わらない場合、関連する決定は「未知」としてラベル付けされる。
図7を参照し、一実施形態に係る、譲り/追い越しの決定を用いてトレーニングデータを自動的にラベル付けするための例示的な方法を示す図である。対象車両702の経路704は、第1の移動オブジェクト712の経路714と交差点710で交差し、第2の移動オブジェクト722の経路724と交差点720で交差する。交差点710、720に対する対象車両702の到着時刻は、移動オブジェクト712、722がそれぞれの交差点に到着する時刻と比較され得る。対象車両の前に移動オブジェクトが交差点に到達する場合、関連する決定は「譲り」としてラベル付けされる。移動オブジェクトの前に対象車両が交差点に到達する場合、関連する決定は「追い越し」としてラベル付けされる。対象車両の経路と移動オブジェクトの経路とが交わらない場合、関連する決定は「未知」としてラベル付けされる。
図8Aおよび図8Bを参照し、一実施形態によるデータの例示的な視覚表現を示す略図800A、略図800Bである。図8A及び8Bは、説明のためのものにすぎず、示される要素(例えば、ブロック、レイヤ、オブジェクトなど)の数は、本開示を限定しないことを理解されたい。図8Aは、ADVの矩形感知及び予測領域800Aを示し、この領域800Aは、グリッドに基づいて等しいサイズの矩形ブロックに細分される。図8Bは、第2のニューラルネットワークの地図情報成分606およびオブジェクト成分608にフィードされる視覚表現700Bを示す。前述のように、地図情報成分606及びオブジェクト成分608は、グリッドに基づいて整列される。地図情報成分(レイヤ)606は、例えば、車線特徴成分(レイヤ)、交通信号成分(レイヤ)、静的オブジェクト成分(レイヤ)、又は、一般地図情報成分(レイヤ)のうちの1つ以上を含み得る。同じブロックに関連付けられたオブジェクト成分608は、同じオブジェクトに関連付けられた抽出されたオブジェクト履歴特徴を含むことが理解される。
図9を参照し、一実施形態による、自動運転車両(ADV)の操作中に機械学習により意思決定を行うための例示的な方法900を示すフローチャートである。方法900は、ハードウェア、ソフトウェア、又は両方の組み合わせ(例えば、図10のシステム1500)において実施されてもよい。ブロック910において、少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、ADVの周辺環境における1つまたは複数のオブジェクトについて1つまたは複数の譲り/追い越しの決定を行い、第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものである。ブロック920では、ADVの動作を制御するために、少なくとも部分的に譲り/追い越しの決定に基づいて、運転信号を生成する。
一実施形態では、該1つ又は複数のオブジェクトはADVの感知領域における自動車、自転車、及び/又は歩行者を含む。第1ニューラルネットワークは、多層パーセプトロンである。第2ニューラルネットワークは畳み込みニューラルネットワーク(CNN)である。また、第3ニューラルネットワークは全結合ネットワークである。
一実施形態では、第1ニューラルネットワークは、1つまたは複数の以前の計画周期から1つまたは複数のオブジェクトの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴を出力として生成する。第2ニューラルネットワークは、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報の両方を符号化したデータを出力として生成する。また、第3ニューラルネットワークは、符号化されたデータおよびADVの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの各々についての決定を含む1つまたは複数の譲り/追い越しの決定を出力として生成する。
一実施形態では、1つまたは複数のオブジェクトの履歴特徴は、位置、速度または加速度のうちの1つ以上を含み、地図情報は、高精細地図に由来するものであり、車線特徴成分、交通信号成分、静的オブジェクト成分または、一般地図情報成分のうちの1つ以上を含む。
一実施形態において、ADVの矩形感知領域のグリッド細分化に基づいて、関連付けられたブロック情報で1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報をラベル付けし、該グリッド細分化は、ADVの矩形感知領域をグリッドに基づいて複数の均一なサイズの矩形ブロックに細分化することを含む。
上記の構成要素の一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせにより実現できることを理解されたい。例えば、このような構成要素は、永続性記憶装置にインストールされ且つ格納されたソフトウェアとして実現でき、前記ソフトウェアは、プロセッサ(図示せず)でメモリにロードされ且つ実行されることにより、本出願の全体にわたって説明されるプロセスまたは動作を実行する。選択的に、このような構成要素は専用ハードウェア(例えば、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタルシグナルプロセッサ(DSP)またはフィールドプログラマブルゲートアレイ(FPGA))にプログラミングされまたは埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは対応するドライバーおよび/またはオペレーティングシステムによってアプリケーションからアクセスできる。また、このような構成要素は、プロセッサまたはプロセッサコアにおける特定ハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が1つまたは複数の特定命令によってアクセスされる命令セットの一部となる。
図10は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセスまたは方法のいずれかを実行する上記任意のデータ処理システム、例えば、図1の感知・計画システム110またはサーバ103〜104のいずれかを示してもよい。システム1500は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイスまたは回路基板(例えば、コンピュータシステムのマザーボードまたはアドインカード)に適用された他のモジュールまたは他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現できる。
さらに、システム1500は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素を要してもよいことを理解すべきであり、また、他の実現形態において示される構成要素が異なる構成を有してもよいことを理解すべきである。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーミングデバイス、ネットワークルータまたはハブ、無線アクセスポイント(AP)またはリピーター、セットトップボックスまたはそれらの組み合わせを示してもよい。また、単一の機械またはシステムのみを示したが、用語「機械」または「システム」は、さらに、独立または共同で1つ(または複数)の命令セットを実行することにより本明細書に説明される任意の1種または複数種の方法を実行する機械またはシステムの任意の組み合わせも含まれることを理解すべきである。
一実施形態において、システム1500は、バスまたはインターコネクト1510によって接続されたプロセッサ1501、メモリ1503およびデバイス1505〜1508を備える。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサであってもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような1つまたは複数の汎用プロセッサであってもよい。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサまたは他の命令セットを実現するプロセッサまたは命令セットの組み合わせを実現するプロセッサであってもよい。プロセッサ1501は、さらに、特定用途向け集積回路(ASIC)、セルラーまたはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような1つまたは複数の専用プロセッサ、あるいは命令処理可能な任意の他のタイプのロジックであってもよい。
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種構成要素と通信するための主処理ユニットおよび中央ハブとして機能できる。このようなプロセッサは、システムオンチップ(SoC)として実現できる。プロセッサ1501は、本明細書で説明される操作およびステップを実行するためのコマンドを実行するように構成される。システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含み、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサおよび/または表示装置を備えてもよい。
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一実施形態において複数のメモリ装置によって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)または他のタイプの記憶装置のような1つまたは複数の揮発性記憶(またはメモリ)装置を備えてもよい。メモリ1503は、プロセッサ1501または任意の他の装置により実行される命令シーケンスを含む情報を格納できる。例えば、複数種のオペレーティングシステム、デバイスドライバー、ファームウェア(例えば、基本入出力システムまたはBIOS)および/またはアプリケーションの実行可能なコードおよび/またはデータはメモリ1503にロードされてもよく、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMac OS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、Linux(登録商標)、Unix(登録商標)または他のリアルタイムまたは組み込みオペレーティングシステムのような任意のタイプのオペレーティングシステムであってもよい。
システム1500は、さらに、ネットワークインターフェースデバイス1505、任意選択入力デバイス1506、および他の任意選択I/Oデバイス1507を含むことができる。ネットワークインターフェースデバイス1505は、無線送受信機および/またはネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)または他の無線周波数(RF)送受信機またはそれらの組み合わせであってもよい。NICはイーサネット(登録商標)カードであってもよい。
入力デバイス1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と一体化されてもよい)、ポインタデバイス(例えばスタイラス)および/またはキーボード(例えば、物理キーボードまたはタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力デバイス1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、複数種のタッチ感応技術(コンデンサ、抵抗、赤外線および表面弾性波の技術を含むが、それらに限定されない)のいずれかおよび他の近接センサアレイまたはタッチスクリーンとの1つまたは複数の接触点を確定するための他の素子を用いてその接触、移動または中断を検出できる。
I/Oデバイス1507は音声装置を備えてもよい。音声装置は、スピーカおよび/またはマイクロホンを含んでもよく、それにより音声認識、音声複製、デジタル記録および/または電話機能のような音声サポートの機能を促進する。他のI/Oデバイス1507は、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのようなモーションセンサ)またはそれらの組み合わせをさらに備えてもよい。デバイス1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真およびビデオ断片の記録)を促進するための電荷結合素子(CCD)または相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によってインターコネクタ1510に接続されてもよく、キーボードまたはサーマルセンサのような他のデバイスは、埋め込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定構成または設計により決められる。
データ、アプリケーション、1つまたは複数のオペレーティングシステム等のような情報の永続性記憶を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステートデバイス(SSD)によって実現できる。しかし、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)で実現されてもよく、より小さい容量のSSD記憶装置は、SSDキャッシュとして停電イベント期間にコンテキスト状態および他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現できる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。
このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOSおよび他のファームウェアを備える。
記憶デバイス1508は、任意の1種または複数種の本明細書に記載の方法または機能を具現化する1つまたは複数の命令セットまたはソフトウェア(例えば、モジュール、ユニットおよび/またはロジック1528)が格納されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体またはコンピュータ可読媒体とも呼ばれる)を備えてもよい。処理モジュール/ユニット/ロジック1528は、計画モジュール305、制御モジュール306及び機械学習モジュール308のような上記構成要素のいずれかを示してもよい。処理ジュール/ユニット/ロジック1528は、さらにデータ処理システム1500、メモリ1503、及びプロセッサ1501により実行される期間にメモリ1503内および/またはプロセッサ1501内に完全または少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503およびプロセッサ1501も、機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェースデバイス1505を経由して送受信されてもよい。
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に格納してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記1つまたは複数の命令セットが格納される単一の媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連するキャッシュおよびサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらに命令セットを格納または符号化できる任意の媒体を備えることを理解すべきであり、前記命令セットは、機械により実行され且つ前記機械に本出願の任意の1種または複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学媒体および磁気媒体または任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素および他の特徴は、ディスクリートハードウェアコンポーネントとして実現されてもよくまたはハードウェアコンポーネント(例えば、ASICS、FPGA、DSPまたは類似のデバイス)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイス内のファームウェアまたは機能性回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスおよびソフトウェアコンポーネントの任意の組み合わせで実現されてもよい。
システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素を相互接続させる任意の特定のアーキテクチャ又は方法を表すことは意図されていないことに留意されたい。それは、このような詳細が本出願の実施形態とは密接な関係がないからである。また、より少ない構成要素またはより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバおよび/または他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムおよび記号表現で示される。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書において、アルゴリズムは、通常、所望の結果につながる首尾一貫した操作列と考えられる。これらの操作とは、物理量に対して物理的操作を行う必要となるステップを指す。
ただし、これらの用語および類似の用語の全ては、いずれも適切な物理量に関連付けられ、これらの量を標識しやすくするためのものに過ぎない。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステムまたは類似の電子式計算装置の動作および処理であり、前記コンピュータシステムまたは電子式計算装置は、コンピュータシステムのレジスタおよびメモリに物理(例えば、電子)量として示されたデータを制御するとともに、前記データをコンピュータシステムメモリまたはレジスタまたは他のこのような情報記憶装置、伝送または表示装置内において類似に物理量として示される他のデータに変換する。
本開示の実施形態は、さらに本明細書における操作を実行するための装置に関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形態で情報を格納する任意のメカニズムを備える。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス)を備える。
上記図面に示されるプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化されるもの)、または両方の組み合わせを含む処理ロジックにより実行されてもよい。前記プロセスまたは方法は、本明細書において特定の順序に応じて説明されたが、前記操作の一部は、異なる順序に応じて実行されてもよいことを理解されたい。また、一部の操作は順番ではなく並行に実行されてもよい。
本開示の実施形態は、いずれかの特定のプログラミング言語を参照することなく記載されている。複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
以上の明細書では、本開示の具体的な例示的な実施形態を参照しながら説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨および範囲を逸脱しない限り、本開示に対し様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書および図面を理解すべきである。
本開示の実施形態は全体として自動運転車両の動作に関するものである。より具体的には、本開示の実施形態は自動運転車両の制御において機械学習アルゴリズムを用いて意思決定を行うことに関するものである。
自動運転モード(例えば、無人運転)で走行する車両は、乗員、特に運転手を一部の運転に関する責任から解放することができる。自動運転モードで操作する場合、車両は車載センサーを用いて様々な位置までナビゲートされ、ヒューマンマシンインタラクションが最も少ない場合、又は乗員がいない場合などに車両を走行させることが可能となる。
周囲のオブジェクトに関する意思決定は、自動運転技術における重要な部分の1つである。1つの意思決定は、自動運転車両(ADV)の周囲環境における移動オブジェクトに対する譲り/追い越しの決定であり、該移動オブジェクトのルートはADVの計画ルートと交わる。譲り/追い越しの決定は、オブジェクトのルートとADVのルートとの間の交差点における交差時間に基づいて限定される。オブジェクトがADVの前に交差点に到達する場合、ADVはオブジェクトに「譲った」ことになる。一方、ADVがオブジェクトの前に交差点に到達する場合、ADVはオブジェクトを「追い越した」ことになる。
機械学習に基づく意思決定は、手作業でラベル付けされたデータを用いてトレーニングする必要があるため通常困難である。また、各々のオブジェクトに対して繰り返す方法で意思決定を行う必要があるため時間もかかる。
本開示の一態様によれば、自動運転車両の動作において機械学習により意思決定を行うためのコンピュータによって実施される方法であって、少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、前記自動運転車両の周辺環境における1つまたは複数のオブジェクトに対して1つまたは複数の譲り/追い越しの決定を行うステップであって、前記第1ニューラルネットワーク、前記第2ニューラルネットワークおよび前記第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものであるステップと、前記自動運転車両の動作を制御するために、少なくとも部分的に譲り/追い越しの決定に基づいて運転信号を生成するステップとを含むコンピュータによって実施される方法が提供される。
本開示の別の一態様によれば、指令が格納されている非一時的な機械可読媒体であって、前記指令はプロセッサにより実行されるときに、自動運転車両の操作中に機械学習により意思決定を行うための動作を前記プロセッサに実行させ、前記動作は、少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、前記自動運転車両の周辺環境における1つまたは複数のオブジェクトに対して1つまたは複数の譲り/追い越しの決定を行うステップであって、前記第1ニューラルネットワーク、前記第2ニューラルネットワークおよび前記第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものであるステップと、前記自動運転車両の動作を制御するために、少なくとも部分的に譲り/追い越しの決定に基づいて運転信号を生成するステップとを含む非一時的な機械可読媒体が提供される。
本開示のさらなる一態様によれば、プロセッサと、指令を格納するために、前記プロセッサに接続されたメモリとを備えるデータ処理システムであって、前記指令は前記プロセッサによって実行されると、自動運転車両の操作中に機械学習により意思決定を行うための動作を前記プロセッサに実行させ、前記動作は、少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、前記ADVの周辺環境における1つまたは複数のオブジェクトに対して1つまたは複数の譲り/追い越しの決定を行うステップであって、前記第1ニューラルネットワーク、前記第2ニューラルネットワークおよび前記第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものであるステップと、前記自動運転車両の動作を制御するために、少なくとも部分的に前記譲り/追い越しの決定に基づいて運転信号を生成するステップとを含むデータ処理システムが提供される。
本開示の実施形態は添付図面の各図において限定的なものではなく例示的な形態で示されており、添付図面における同じ参照符号は類似要素を示す。
一実施形態に係るネットワーク化システムを示すブロック図である。
一実施形態に係る自動運転車両の一例を示すブロック図である。
一実施形態に係る自動運転車両に併用される感知・計画システムの一例を示すブロック図である。
一実施形態に係る自動運転車両に併用される感知・計画システムの一例を示すブロック図である。
一実施形態に係る畳み込みニューラルネットワーク(CNN)内の様々な層を示す図である。
一実施形態に係るディープニューラルネットワークのトレーニング及びデプロイメントを示す図である。
一実施形態に係るデータ処理アーキテクチャを示すブロック図である。
一実施形態に係る譲り/追い越しの決定を用いてトレーニングデータを自動的にラベル付けするための例示的な方法を示す図である。
一実施形態に係るデータの例示的な視覚表現を示す図である。
一実施形態に係るデータの例示的な視覚表現を示す図である。
一実施形態に係る自動運転車両(ADV)の操作中に機械学習により意思決定を行うための例示的な方法を示すフローチャートである。
一実施形態に係るデータ処理システムを示すブロック図である。
本開示の様々な実施形態と態様は、以下で論述される詳細を参照しながら記載され、添付図面が様々な実施形態を説明する。下記説明及び添付図面は本開示を説明するためのものであり、本開示を限定するものとして解釈されてはいけない。多くの具体的な詳細は本開示の様々な実施形態に対する全面的な理解を提供するために記載される。しかしながら、特定の場合において、本開示の実施形態に対する簡潔な論述を提供するために、公知又は通常の詳細は記載されないことがある。
本明細書において、「一実施形態」又は「実施形態」の記載は、当該実施形態に記載されている特定の特徴、構成又は特性を組み合わせて本開示の少なくとも一つの実施形態に含むことができることを意味する。「一実施形態において」は、本明細書において複数のところに出ているが、全て同一の実施形態を意味するものではない。
一実施形態では、自動運転車両(ADV)を動作させるときに機械学習により意思決定を行うための方法、装置、及びシステムが提供される。少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、ADVの周辺環境における1つまたは複数のオブジェクトに対して1つまたは複数の譲り/追い越しの決定を行い、第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものである。その後、ADVの動作を制御するために、少なくとも部分的に譲り/追い越しの決定に基づいて運転信号を生成する。
一実施形態では、1つ又は複数のオブジェクトは自動車、自転車、及び/又は歩行者を含む。第1ニューラルネットワークは多層パーセプトロンであり、第2ニューラルネットワークは畳み込みニューラルネットワーク(CNN)であり、第3ニューラルネットワークは全結合ネットワークである。
一実施形態において、第1ニューラルネットワークは、1つまたは複数の以前の計画周期から1つまたは複数のオブジェクトの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴を出力として生成し、第2ニューラルネットワークは、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報の両方を符号化したデータを出力として生成し、第3ニューラルネットワークは、符号化されたデータおよびADVの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの各々に対する決定を含む1つまたは複数の譲り/追い越しの決定を出力として生成する。
一実施形態において、1つまたは複数のオブジェクトの履歴特徴は、位置、速度または加速度のうちの1つ以上を含む。地図情報は高精細地図に由来するものであり、車線特徴成分、交通信号成分、静的オブジェクト成分または、一般地図情報成分のうちの1つ以上を含む。
一実施形態において、ADVの矩形感知領域のグリッド細分化に基づいて、関連付けられたブロック情報で1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報をラベル付けし、該グリッド細分化は、ADVの矩形感知領域をグリッドに基づいて複数の均一なサイズの矩形ブロックに細分化することを含む。
一実施形態において、符号化されたデータおよびADVの履歴特徴は、第3ニューラルネットワークにフィードされる前に直列接続(concatenate)される。トレーニングデータセットは、以前記録された、譲り/追い越しの決定で自動的にラベル付けされた運転及びオブジェクト感知データを含む。
図1は、本開示の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1を参照すると、ネットワーク構成100は、ネットワーク102を介して1つまたは複数のサーバ103〜104に通信可能に接続される自動運転車両101を含む。1台の自動運転車両が示されているが、複数の自動運転車両がネットワーク102を介して互いにおよび/またはサーバ103〜104に接続されてもよい。ネットワーク102は、有線または無線のローカルエリアネットワーク(LAN)、インターネットなどのような広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワークまたはそれらの組み合わせなど任意の種類のネットワークであってもよい。サーバ103〜104は、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバまたはそれらの組み合わせなど、任意のタイプのサーバまたはサーバクラスタであってもよい。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・関心地点(MPOI)サーバまたは位置サーバなどであってもよい。
自動運転車両とは、車両が運転者からの入力が非常に少ないまたはない場合でもナビゲーションして環境を通過するように、自律運転モードに構成することができる車両のことである。このような自動運転車両は、車両走行環境に関連する情報を検出するように構成された1つまたは複数のセンサを有するセンサシステムを備えてもよい。前記車両およびそれに関連するコントローラは、検出された情報を用いてナビゲーションして前記環境を通過できる。自動運転車両101は、手動モード、完全自律運転モード、又は部分自律運転モードで走行することができる。
一実施形態では、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、インフォテインメントシステム(図示せず)及びセンサシステム115を含むが、これらに限定されない。自動運転車両101には、一般車両に備えられているいくつかの一般的な構成要素、例えば、エンジン、車輪、ステアリングホイール、変速機などが更に備えられてもよく、前記構成要素は、車両制御システム111及び/又は感知・計画システム110により複数種の通信信号及び/又はコマンド、例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどを使用して制御可能である。
構成要素110〜115は、インターコネクタ、バス、ネットワーク又はこれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションにおいてマイクロコントローラ及びデバイスが互いに通信できるように許容された車両バス規格である。それは、もともとは自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
以下図2を参照すると、一実施形態では、センサシステム115は、一つ以上のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダユニット214並びに光検出・測距(LIDAR)ユニット215を含むが、これらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように操作可能な送受信機を含んでもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置及び方位変化を感知することができる。レーダユニット214は、無線信号を用いて自動運転車両のローカル環境におけるオブジェクトを感知するシステムを表してもよい。いくつかの実施形態において、オブジェクトを感知することに加えて、レーダユニット214は、更にオブジェクトの速度及び/又は進行方向を感知することもできる。LIDARユニット215は、自動運転車両が位置する環境におけるオブジェクトをレーザで感知することができる。他のシステム構成要素に加えて、LIDARユニット215は、更に一つ以上のレーザ光源、レーザスキャナ及び一つ以上の検出器を含んでもよい。カメラ211は、自動運転車両の周囲環境における画像を取り込むための一つ以上の装置を含んでもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームにカメラを取り付けることによって、機械的に移動可能なものであってもよい。
センサシステム115は更に他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ(例えば、マイクロホン)を含んでもよい。オーディオセンサは、自動運転車両の周囲の環境から音声を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイールの操舵角、車両の車輪の転舵角又はこれらの組み合わせを感知するように構成されてもよい。スロットルセンサ及びブレーキセンサはそれぞれ車両のスロットル位置及びブレーキ位置を感知する。ある場合に、スロットルセンサ及びブレーキセンサは集積型スロットル/ブレーキセンサとして統合されてもよい。
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットともいう)及びブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は、モータ又はエンジンの速度を制御するために用いられ、モータ又はエンジンの速度によって更に車両の速度及び加速度を制御する。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、図2に示された構成要素は、ハードウェア、ソフトウェア又はこれらの組み合わせで実施することができる。
再び図1を参照し、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム112は、直接又は通信ネットワークを介して一つ以上の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用して、例えばWiFiを(登録商標)使用して他の構成要素又はシステムと通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内で実施された周辺装置の部分、例えば、キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含んでもよい。
自動運転車両101の機能のうちの一部又は全部は、特に自動運転モードで操作する場合に、感知・計画システム110により制御されるか、又は管理されることができる。感知・計画システム110は、センサシステム115、制御システム111、無線通信システム112及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までの路線又は経路を計画した後に、計画及び制御情報に基づいて車両101を運転するために、必要なハードウェア(例えば、プロセッサ、メモリ、記憶デバイス)並びにソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含む。場合に応じて、感知・計画システム110は車両制御システム111と一体に集積されてもよい。
例えば、乗員であるユーザは、例えば、ユーザインターフェースを介して行程の出発地位置及び目的地を指定することができる。感知・計画システム110は行程関連データを取得する。例えば、感知・計画システム110は、MPOIサーバから位置及びルート情報を取得することができる、前記MPOIサーバは、サーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及びある位置のPOIを提供する。場合に応じて、このような位置及びMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされてもよい。
自動運転車両101がルートに沿って移動している場合に、感知・計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得することもできる。なお、サーバ103〜104は第三者エンティティにより操作させることができる。場合に応じて、サーバ103〜104の機能は、感知・計画システム110と一体に集積されてもよい。リアルタイム交通情報、MPOI情報及び位置情報、並びにセンサシステム115によって検出されたか又は感知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知・計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって、車両101を運転することができる。
サーバ103は、様々なクライアントに対してデータ解析サービスを実行するためのデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを含む。データコレクタ121は、いろんな車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発した運転命令(例えば、スロットルコマンド、ブレーキコマンド、ステアリングコマンド)及び車両のセンサによって異なる時点で取得された車両の応答(例えば、速度、加速、減速、方向)を指示する情報を含む。運転統計データ123はさらに、異なる時点における運転環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、天気状況などを含んでもよい。
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的に応じてルールセット、アルゴリズム及び/又は予測モデル124を生成するか又はトレーニングする。一実施形態において、ADVを動作させるための譲り/追い越しの意思決定を行うために、アルゴリズム124はニューラルネットワークに基づくデータ処理アーキテクチャを含んでもよい。
次に、アルゴリズム124は、自動運転の間にリアルタイムで使用するために、ADVにアップロードすることができる。
図3A〜図3Bは、一実施形態に係る自動運転車両に併用される感知・計画システムの一例を示すブロック図である。システム300は、図1の自動運転車両101の一部として実現されてもよく、感知・計画システム110、制御システム111及びセンサシステム115を含むが、これらに限定されない。図3A〜図3Bを参照すると、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、ルーティングモジュール307及び機械学習モジュール308を含むが、これらに限定されない。
モジュール301〜308のうちの一部又は全部は、ソフトウェア、ハードウェア又はこれらの組み合わせで実現されてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、且つ一つ以上のプロセッサ(図示せず)により実行されてもよい。注意すべきことは、これらのモジュールのうちの一部又は全部は、図2の車両制御システム111の一部又は全部のモジュールに通信可能に接続されるか、又はそれらと一体に統合されてもよい。モジュール301〜308のうちの一部は集積モジュールとして一体に統合されてもよい。
測位モジュール301は、(例えば、GPSユニット212を利用して)自動運転車両300の現在の位置を確定するとともに、ユーザの行程又はルートに関連するあらゆるデータを管理する。測位モジュール301(地図及びルーティングモジュールともいう)は、ユーザの行程又はルートに関連するあらゆるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして行程の出発位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300における地図・ルート情報311のような他の構成要素と通信して、行程関連データを取得する。例えば、測位モジュール301は、位置サーバ並びに地図・POI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及び特定位置のPOIを提供し、これらは地図及びルート情報311の一部としてキャッシュされ得る。自動運転車両300がルートに沿って移動するとき、測位モジュール301も交通情報システム又はサーバからリアルタイム交通情報を取得することもできる。
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を決定する。感知情報は、一般の運転手が運転手により運転されている車両の周囲において感知すべきものを示すことができる。感知は、例えば、オブジェクト形式を採用した車線構成、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含むことができる。車線構成は、例えば、車線の形状(例えば、直線または湾曲)、車線の幅、道路内の車線数、一方向または二方向車線、合流または分岐車線、退出車線などのような、1つまたは複数の車線を記述する情報を含む。
感知モジュール302は、一つ以上のカメラにより収集された画像を処理、解析して、自動運転車両の環境におけるオブジェクト及び/又は特徴を認識するために、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び/又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図を描画し、オブジェクトを追跡し、及びオブジェクトの速度を推定することなどができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサにより提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
各オブジェクトに対して、予測モジュール303は、様々な場合にオブジェクトがどのように挙動するかを予測する。予測は、地図/ルート情報311と交通ルール312のセットに応じて、該時点において運転環境が感知された感知データに基づいて実行される。例えば、オブジェクトが反対方向における車両で、且つ現在の運転環境に交差点が含まれている場合に、予測モジュール303は車両が直進するか又は曲がるかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があり得ることを予測することができる。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することができる。
各オブジェクトに対して、決定モジュール304はオブジェクトをどのように対応するかを決定する。例えば、特定のオブジェクト(例えば、交差のルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、曲がり角)について、決定モジュール304は前記オブジェクトと遭遇するときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルール又は運転ルール312のルールセットに基づいてこのような決定を行うことができ、前記ルールセットは永続性記憶装置352に格納されてもよい。
ルーティングモジュール307は、出発地点から目的地点までの一つ以上のルート又は経路を提供するように構成される。例えば、ユーザから受け取った出発位置から目的地位置までの所定の行程に対して、ルーティングモジュール307は地図・ルート情報311を取得して、出発位置から目的地位置に到着する全ての可能なルート又は経路を決定する。決定された出発地から目的地に到着するルート毎に、ルーティングモジュール307は地形図の形式で基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況のような全ての干渉を受けない理想的なルート又は経路を指す。即ち、路上に他の車両、歩行者又は障害物がなければ、ADVは基準線に完全に又は緊密に従うべきである。そして、地形図が決定モジュール304及び/又は計画モジュール305に提供される。決定モジュール304及び/又は計画モジュール305は全ての可能なルートを検査して他のモジュールから提供された他のデータ、例えば測位モジュール301からの交通状況、感知モジュール302により感知された運転環境及び予測モジュール303により予測された交通状況に基づいて最適ルートのうちの一つを選択し修正する。ADVを制御するための実際のルート又は経路は、その時点における特定運転環境によって、ルーティングモジュール307から提供された基準線に近接するか又は異なっていてもよい。
計画モジュール305は、感知されたオブジェクトのそれぞれに対する決定に基づいて、ルーティングモジュール307により提供された基準線を基準にして、自動運転車両のために経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は曲がり角)を計画する。言い換えれば、所定のオブジェクトについて、決定モジュール304は当該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、所定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くかを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くかそれとも右側から追い抜くかを決定することができる。計画及び制御データは計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300が30マイル/時間(mph)の速度で10メートル移動し、その後25mphの速度で右側車線に変更するように指示することができる。
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより限定されたルート又は経路に応じて適当なコマンド又は信号を車両制御システム111に送信することにより自動運転車両を制御しながら運転する。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両構成又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1の点から第2の点まで運転するのに十分な情報を含む。
一実施形態では、計画段階は、例えば、時間間隔が100ミリ秒(ms)の周期など、複数の計画周期(運転周期ともいう)で実行される。計画周期又は運転周期のそれぞれについて、計画データ及び制御データに基づいて一つ以上の制御コマンドが発信される。すなわち、100msごとに、計画モジュール305は、例えば、目標位置及びADVが目標位置に到着するのに必要な時間を含む次のルート区間又は経路区間を計画する。あるいは、計画モジュール305は更に具体的な速度、方向及び/又は操舵角などを指定することもできる。一実施形態では、計画モジュール305は、(例えば、5秒など)次の所定期間のためにルート区間又は経路区間を計画する。各計画周期について、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。次に、制御モジュール306は、現在の周期の計画データ及び制御データに基づいて、一つ以上の制御コマンド(例えば、スロットルコマンド、ブレーキコマンド、ステアリング制御コマンド)を生成する。
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の運転経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能を具備することができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行するとともに、感知された障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を経由して行われたユーザ入力に応じて設定されることができる。ナビゲーションシステムは、自動運転車両が走行していると同時に運転経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための運転経路を決定するために、GPSシステム及び一つ以上の地図からのデータをマージすることができる。
機械学習モジュール308は、ニューラルネットワーク又は予測モデル303などの機械学習技術を用いてデータ処理アーキテクチャを実現し、機械学習技術は既知のデータに基づいて予測を生成し、又は決定を行うために使用され得る。
機械学習アルゴリズムは、データの集合に基づいて学習を行うことができるアルゴリズムである。機械学習アルゴリズムの実施形態は、データセット内の高度な抽象化概念をモデル化するように設計されてもよい。例えば、画像認識アルゴリズムは、所与の入力が幾つかのカテゴリーのどちらに属するかを決定するために使用され、回帰アルゴリズムは、所与の入力の値を出力することができ、パターン認識アルゴリズムは翻訳テキストを生成するか、又はテキストを音声に読み上げるか、及び/又は音声認識を行うことができる。
例示的な種類の機械学習アルゴリズムはニューラルネットワークである。多くの種類のニューラルネットワークが存在し、単純型ニューラルネットワークはフィードフォワードネットワークである。フィードフォワードネットワークは、ノードが層の形態で配列される非循環グラフとして実施され得る。一般に、フィードフォワードネットワークトポロジは、少なくとも1つの隠れ層によって分離された入力層及び出力層を含む。隠れ層は、入力層によって受信された入力を、出力層における出力の生成に利用可能な表現に変換する。ネットワークノードは、エッジを介して隣接する層のノードに完全に接続されるが、各層内のノード間にエッジは存在しない。フィードフォワードネットワークの入力層のノードで受信されたデータは、各層を接続するエッジの各々に関連する係数(「重み」)に基づいてネットワーク内の連続する層の各々のノードの状態を計算する活性化関数を介して出力層のノードに伝播(すなわち、「フィードフォワード」)する。ニューラルネットワークアルゴリズムからの出力は、実行されているアルゴリズムによって表される特定のモデルに応じて、様々な形態を取り得る。
機械学習アルゴリズムが特定の問題のモデル化に使用可能になる前に、トレーニングデータセットを使用してアルゴリズムをトレーニングする。ニューラルネットワークをトレーニングすることは、ネットワークトポロジを選択することと、ネットワークによってモデル化された問題を表すトレーニングデータセットを使用することと、ネットワークモデルがトレーニングデータセットのすべてのインスタンスに対して最小誤差で実行されるまで重みを調整することとを含む。例えば、ニューラルネットワークのための教師あり学習プロセスの間、トレーニングデータセット内のインスタンスを表す入力に応答してネットワークによって生成された出力を、そのインスタンスに対して「正しい」とラベル付けされた出力と比較し、該出力とラベル付けされた出力との間の差を表す誤差信号を計算し、誤差信号がネットワーク層を通じて逆方向に伝搬されるときに該誤差を最小化するように接続に関連付けられた重みを調整する。該ネットワークは、トレーニングデータセットのインスタンスから生成された出力の各々の誤差が最小化されたときに「トレーニング済み」であると考えられる。
ニューラルネットワークは、グラフ関係を有する機能ネットワークに要約され得る。当該技術分野で周知のように、機械学習で使用される様々な種類のニューラルネットワークの実施形態が存在する。前述のように、例示的なタイプのニューラルネットワークは、フィードフォワードネットワークである。
第2の例示的なタイプのニューラルネットワークは、畳み込みニューラルネットワーク(CNN)である。CNNは、画像データなどの既知の格子状トポロジーを有するデータを処理するための専用フィードフォワードニューラルネットワークである。したがって、CNNは通常、視覚および画像認識アプリケーションを計算するために使用されるが、自動運転車両の背景における音声、言語処理および意思決定など、他のタイプのパターン認識のためにも使用され得る。CNN入力層内のノードは、「フィルタ」(網膜に見られる受容域に啓示が与えられた特徴検出器)のセットに編成され、各セットのフィルタの出力はネットワークの連続層内のノードに伝播する。CNNの計算は、該フィルタの出力を生成するために、各フィルタに畳み込み数学演算を適用することを含む。畳み込みは、2つの元の関数のうちの1つの修正バージョンとしての第3の関数を生成するために、2つの関数によって実行される特別タイプの数学演算である。畳み込みのネットワーク用語では、畳み込みの第1の関数は入力と呼ばれ、第2の関数は畳み込みカーネルと呼ばれる。出力は特徴マップと呼ばれる。例えば、畳み込み層への入力は、入力画像の様々な色成分を定義する多次元データ配列であり得る。畳み込みカーネルは、ニューラルネットワークのためのトレーニングプロセスによってパラメータが調整される多次元パラメータアレイであり得る。
上述したニューラルネットワークの例は、ディープラーニングを行うために使用され得る。ディープラーニングはディープニューラルネットワークを用いた機械学習である。1つの隠れ層のみを含む浅層ニューラルネットワークと比較して、ディープラーニングに用いられるディープニューラルネットワークは、複数の隠れ層からなる人工ニューラルネットワークである。より深い層のニューラルネットワークは通常トレーニングのためにより高密度の計算を必要とする。しかし、ネットワークの追加の隠れ層は、浅層機械学習技術と比較して出力誤差の低減をもたらすマルチステップパターン認識を可能にする。
ディープラーニングのためのディープニューラルネットワークは通常、特徴認識を実行するための、バックエンドネットワークに結合されたフロントエンドネットワークを含み、バックエンドネットワークは、モデルに提供された特徴表現に基づいて動作(例えば、オブジェクト分類、音声認識、意思決定など)を実行できる数学モデルを表す。ディープラーニングは、モデルのための人手による特徴工学を実行する必要のない機械学習を実行することができる。一方、ディープニューラルネットワークは、入力データ内の統計的構造または相関性に基づいて特徴を学習することができる。学習された特徴は、検出された特徴を出力にマッピングすることができる数学モデルに提供され得る。ネットワークによって使用される数学モデルは、通常、実行される特定のタスクの専用であり、異なるモデルを使用して異なるタスクが実行される。
ニューラルネットワークが構築されると、学習モデルは、ネットワークに適用されて、特定のタスクを実行するようにネットワークをトレーニングする。学習モデルは、ネットワークの出力誤差を低減するためにモデル内の重みをどのように調整するかを記述する。誤差の逆伝搬は、ニューラルネットワークをトレーニングするための一般的な方法である。入力ベクトルは、処理のためにネットワークに提示される。損失関数を用いて、ネットワークの出力を所望の出力と比較し、出力層のニューロンの各々の誤差値を計算する。各ニューロンが関連する誤差値を有するまで、誤差値は逆伝搬され、該誤差値は元の出力へのその寄与を大まかに表す。そして、確率的勾配降下法などのアルゴリズムを用いて、これらの誤差からネットワークを学習させてニューラルネットワークの重みを更新することができる。
図4は一実施形態に係る畳み込みニューラルネットワーク(CNN)内の様々な層を示す略図400である。入力402は、複数の成分を含み得る。例えば、画像処理モデル化のための例示的なCNNは、入力画像の赤、緑、及び青(RGB)成分を記述する入力402を受信することができる。入力402は、複数の畳み込み層(例えば、畳み込み層404、畳み込み層406)によって処理されてもよい。場合によって、複数の畳み込み層からの出力は全結合層408のセットによって処理され得る。フィードフォワードネットワークに関して前述したように、全結合層のニューロンは、以前の層のすべての活性化された完全結合を有する。全結合層408からの出力は、ネットワークから出力結果を生成するために使用され得る。全結合層408内の活性化は、畳み込みではなく行列乗算を使用して計算され得る。全てのCNN実施形態が全結合層408を使用するわけではない。例えば、いくつかの実施形態において、畳み込み層406はCNNの出力を生成し得る。
畳み込み層は、全結合層408に見られる従来のニューラルネットワーク構成とは異なり、疎に結合される。従来のニューラルネットワーク層は、各出力ユニットが各入力ユニットと相互作用するように、完全に結合される。しかし、図示のように、領域の畳み込みの出力は、領域内の各ノードの対応する状態値の代わりに後続層のノードに入力されるので、畳み込み層は疎に結合される。畳み込み層に関連するカーネルは、畳み込み演算を実行し、その出力は次の層に送られる。畳み込み層内で実行される次元縮小は、大型入力(例えば、大型画像)を処理するためにCNNがスケーリングされることを可能にする一態様である。
図5は一実施形態によるディープニューラルネットワークのトレーニング及びデプロイメントを示す略図500である。特定のネットワークがタスクのために構築されると、ニューラルネットワークは、トレーニングデータセット502を使用してトレーニングされる。トレーニングプロセスに様々なトレーニングフレームワーク504が開発されている。トレーニングフレームワーク504は、トレーニングされていないニューラルネットワーク506にフックされ、トレーニングされていないニューラルネットワーク506がトレーニング済みニューラルネットワーク508を生成するようにトレーニングされることができる。
トレーニングプロセスを開始するために、初期重みは、ランダムにまたはディープビリーフネットワーク(deep belief network)を用いた事前トレーニングによって選択され得る。そして、トレーニング周期は教師ありまたは教師なしの方式で行われる。
教師あり学習は、例えば、トレーニングデータセット502が入力の所望の出力と対になった入力を含む場合、またはトレーニングデータセット502が既知の出力を有する入力を含み、ニューラルネットワークの出力が手動で等級分けされる場合などに、トレーニングが仲介動作として行われる学習方法である。ネットワークは、入力を処理し、得られた出力を、予想されるまたは希望される出力のセットと比較する。そして、誤差はシステムを通じて伝搬されてくる。トレーニングフレーム504は、トレーニングされていないニューラルネットワーク506の重みを調整、制御することができる。トレーニングフレーム504は、既知の入力データに基づいて正解を生成するのに適したモデルに向けて、トレーニングされていないニューラルネットワーク506が収束する度合いを監視するためのツールを提供することができる。ニューラルネットワークによって生成された出力を改良するようにネットワークの重みを調整するとき、トレーニングプロセスが繰り返し行われる。ニューラルネットワークが、トレーニング済みニューラルネットワーク508に関連付けられる統計的要求精度に達するまで、トレーニングプロセスは継続され得る。次いで、トレーニング済みニューラルネットワーク508は、任意の数の機械学習動作を実現するためにデプロイメントされ得る。
教師なし学習は、ネットワークが、ラベル付けされていないデータを使用して、自分をトレーニングすることを試みる学習方法である。したがって、教師なし学習の場合、トレーニングデータセット502は、関連する出力データを全く含まない入力データを含む。トレーニングされていないニューラルネットワーク506は、ラベル付けされていない入力内のグループを学習し、各入力がデータセット全体とどのように関連するかを決定し得る。教師なしトレーニングは、データ次元を減少させるのに役立つ動作を実行することができるトレーニング済みニューラルネットワーク508である自己組織化マップを生成するために使用され得る。また、教師なし学習は、異常検出を実行するためにも使用され得、これは、入力データセット内のデータの正常なパターンから逸脱するデータポイントを識別することを可能にする。
図6を参照すると、一実施形態によるデータ処理アーキテクチャ600を示すブロック図が示されている。ADVによって検出された感知領域内のオブジェクトの履歴特徴602は、第1ニューラルネットワーク604にフィードされる。該オブジェクトは自動車、自転車、歩行者などを含み得る。オブジェクトの履歴特徴は、複数の以前の計画周期(例えば、10の以前の計画周期)における位置(例えば、座標)、速度(大きさ及び方向)、加速度(大きさ及び方向)などを含み得るが、これらに限定されない。第1ニューラルネットワーク604にフィードされる前に、オブジェクト履歴特徴は一緒に直列接続されてオブジェクト特徴リストを形成し得る。第1ニューラルネットワーク604は、すべてのオブジェクトの同じパラメータ(重み)を共有する多層パーセプトロンなどの全結合ネットワークであり得る。
第1ニューラルネットワーク604の出力は、少数(例えば、1〜3)の抽出されたオブジェクト履歴特徴606を含み、第2ニューラルネットワーク610の入力のオブジェクト成分606となるように構成され得る。オブジェクト成分606は、地図情報成分608とともに第2ニューラルネットワーク610にフィードされる。地図情報成分608は、地図・ルート情報311(例えば、高精細地図)に基づいて生成され、感知領域に対する車線特徴成分、交通信号成分、静的オブジェクト成分、及び一般地図情報成分などを含み得るが、これらに限定されない。
一実施形態では、感知領域は矩形領域であってもよく、グリッドに基づいて、複数の同サイズの矩形ブロックにさらに細分化されてもよい。感知領域は、ADVの感知範囲にほぼ対応し得る。例えば、感知領域は、100メートルの長さ及び40メートルの幅を有してもよい。感知領域を構成するブロックのサイズは、経験的に選択されてもよく、一実施形態では、各ブロックが一度に1つ以下のオブジェクトを含み得るように選択されてもよい。例えば、ブロックが2m×2mであってもよい。
第2ニューラルネットワーク610にフィードされる前に、オブジェクト成分606および地図情報成分608は、グリッド細分化に基づいてラベル付けされ得る。言い換えれば、抽出されたオブジェクトの履歴特徴および地図情報(車線、交通信号、静的オブジェクトなど)は、それらに関連付けられたブロックでラベル付けされてもよい。したがって、上述したように、オブジェクト成分606および地図情報成分608を含む第2ニューラルネットワーク610の入力の様々な成分は、グリッドに基づいて互いに整列された積み重ねレイヤとして視覚化され得る。
第2ニューラルネットワーク610はCNNであり得、1つ以上のオブジェクトの抽出された履歴特徴および地図情報の両方を符号化した符号化データ612を出力するように構成され得る。第3ニューラルネットワーク616にフィードされる前に、符号化データ612は、複数の以前の計画周期(例えば、10の以前の計画周期)からのADVの履歴特徴614(例えば、位置、速度、加速度)と直列接続され得る。次いで、第3ニューラルネットワーク616は、各々が1つの決定に対応する1つ以上のオブジェクトに対する1つ以上の譲り/追い越しの決定618を生成する。
第1ニューラルネットワーク604、第2ニューラルネットワーク610、及び第3ニューラルネットワーク616は、ADV動作の予測のために使用され得る前に、運転(例えば、人間の運転)及びオブジェクト挙動グラウンドトゥルースデータ(object behavior ground truth data)並びに地図情報を含むトレーニングデータセットを用いてトレーニングされる必要があることを理解されたい。トレーニングに用いられる前に、トレーニングデータセットは、対象車両と異なるオブジェクトとが交差点(対象車両の経路と移動オブジェクトの経路とが交差する点)に到達する時点に基づいて実際に行われる譲り/追い越しの決定で自動的にラベル付けされてもよい。対象車両の前にオブジェクトが交差点に到達する場合、関連する決定は「譲り」としてラベル付けされる。オブジェクトの前に対象車両が交差点に到達する場合、関連する決定は「追い越し」としてラベル付けされる。対象車両の経路とオブジェクトの経路とが交わらない場合、関連する決定は「未知」としてラベル付けされる。
図7を参照し、一実施形態に係る、譲り/追い越しの決定を用いてトレーニングデータを自動的にラベル付けするための例示的な方法を示す図である。対象車両702の経路704は、第1の移動オブジェクト712の経路714と交差点710で交差し、第2の移動オブジェクト722の経路724と交差点720で交差する。交差点710、720に対する対象車両702の到着時刻は、移動オブジェクト712、722がそれぞれの交差点に到着する時刻と比較され得る。対象車両の前に移動オブジェクトが交差点に到達する場合、関連する決定は「譲り」としてラベル付けされる。移動オブジェクトの前に対象車両が交差点に到達する場合、関連する決定は「追い越し」としてラベル付けされる。対象車両の経路と移動オブジェクトの経路とが交わらない場合、関連する決定は「未知」としてラベル付けされる。
図8Aおよび図8Bを参照し、一実施形態によるデータの例示的な視覚表現を示す略図800A、略図800Bである。図8A及び8Bは、説明のためのものにすぎず、示される要素(例えば、ブロック、レイヤ、オブジェクトなど)の数は、本開示を限定しないことを理解されたい。図8Aは、ADVの矩形感知及び予測領域800Aを示し、この領域800Aは、グリッドに基づいて等しいサイズの矩形ブロックに細分される。図8Bは、第2のニューラルネットワーク610の地図情報成分608およびオブジェクト成分606にフィードされる視覚表現700Bを示す。前述のように、地図情報成分608及びオブジェクト成分606は、グリッドに基づいて整列される。地図情報成分(レイヤ)608は、例えば、車線特徴成分(レイヤ)、交通信号成分(レイヤ)、静的オブジェクト成分(レイヤ)、又は、一般地図情報成分(レイヤ)のうちの1つ以上を含み得る。同じブロックに関連付けられたオブジェクト成分606は、同じオブジェクトに関連付けられた抽出されたオブジェクト履歴特徴を含むことが理解される。
図9を参照し、一実施形態による、自動運転車両(ADV)の操作中に機械学習により意思決定を行うための例示的な方法900を示すフローチャートである。方法900は、ハードウェア、ソフトウェア、又は両方の組み合わせ(例えば、図10のシステム1500)において実施されてもよい。ブロック910において、少なくとも第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークを含むデータ処理アーキテクチャを使用して、ADVの周辺環境における1つまたは複数のオブジェクトについて1つまたは複数の譲り/追い越しの決定を行い、第1ニューラルネットワーク、第2ニューラルネットワークおよび第3ニューラルネットワークは、トレーニングデータセットでトレーニングされたものである。ブロック920では、ADVの動作を制御するために、少なくとも部分的に譲り/追い越しの決定に基づいて、運転信号を生成する。
一実施形態では、該1つ又は複数のオブジェクトはADVの感知領域における自動車、自転車、及び/又は歩行者を含む。第1ニューラルネットワークは、多層パーセプトロンである。第2ニューラルネットワークは畳み込みニューラルネットワーク(CNN)である。また、第3ニューラルネットワークは全結合ネットワークである。
一実施形態では、第1ニューラルネットワークは、1つまたは複数の以前の計画周期から1つまたは複数のオブジェクトの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴を出力として生成する。第2ニューラルネットワークは、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報を入力として受信し、1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報の両方を符号化したデータを出力として生成する。また、第3ニューラルネットワークは、符号化されたデータおよびADVの履歴特徴を入力として受信し、1つまたは複数のオブジェクトの各々についての決定を含む1つまたは複数の譲り/追い越しの決定を出力として生成する。
一実施形態では、1つまたは複数のオブジェクトの履歴特徴は、位置、速度または加速度のうちの1つ以上を含み、地図情報は、高精細地図に由来するものであり、車線特徴成分、交通信号成分、静的オブジェクト成分または、一般地図情報成分のうちの1つ以上を含む。
一実施形態において、ADVの矩形感知領域のグリッド細分化に基づいて、関連付けられたブロック情報で1つまたは複数のオブジェクトの抽出された履歴特徴及び地図情報をラベル付けし、該グリッド細分化は、ADVの矩形感知領域をグリッドに基づいて複数の均一なサイズの矩形ブロックに細分化することを含む。
上記の構成要素の一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせにより実現できることを理解されたい。例えば、このような構成要素は、永続性記憶装置にインストールされ且つ格納されたソフトウェアとして実現でき、前記ソフトウェアは、プロセッサ(図示せず)でメモリにロードされ且つ実行されることにより、本出願の全体にわたって説明されるプロセスまたは動作を実行する。選択的に、このような構成要素は専用ハードウェア(例えば、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタルシグナルプロセッサ(DSP)またはフィールドプログラマブルゲートアレイ(FPGA))にプログラミングされまたは埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは対応するドライバーおよび/またはオペレーティングシステムによってアプリケーションからアクセスできる。また、このような構成要素は、プロセッサまたはプロセッサコアにおける特定ハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が1つまたは複数の特定命令によってアクセスされる命令セットの一部となる。
図10は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセスまたは方法のいずれかを実行する上記任意のデータ処理システム、例えば、図1の感知・計画システム110またはサーバ103〜104のいずれかを示してもよい。システム1500は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイスまたは回路基板(例えば、コンピュータシステムのマザーボードまたはアドインカード)に適用された他のモジュールまたは他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現できる。
さらに、システム1500は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素を要してもよいことを理解すべきであり、また、他の実現形態において示される構成要素が異なる構成を有してもよいことを理解すべきである。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーミングデバイス、ネットワークルータまたはハブ、無線アクセスポイント(AP)またはリピーター、セットトップボックスまたはそれらの組み合わせを示してもよい。また、単一の機械またはシステムのみを示したが、用語「機械」または「システム」は、さらに、独立または共同で1つ(または複数)の命令セットを実行することにより本明細書に説明される任意の1種または複数種の方法を実行する機械またはシステムの任意の組み合わせも含まれることを理解すべきである。
一実施形態において、システム1500は、バスまたはインターコネクト1510によって接続されたプロセッサ1501、メモリ1503およびデバイス1505〜1508を備える。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサであってもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような1つまたは複数の汎用プロセッサであってもよい。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサまたは他の命令セットを実現するプロセッサまたは命令セットの組み合わせを実現するプロセッサであってもよい。プロセッサ1501は、さらに、特定用途向け集積回路(ASIC)、セルラーまたはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような1つまたは複数の専用プロセッサ、あるいは命令処理可能な任意の他のタイプのロジックであってもよい。
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種構成要素と通信するための主処理ユニットおよび中央ハブとして機能できる。このようなプロセッサは、システムオンチップ(SoC)として実現できる。プロセッサ1501は、本明細書で説明される操作およびステップを実行するためのコマンドを実行するように構成される。システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含み、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサおよび/または表示装置を備えてもよい。
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一実施形態において複数のメモリ装置によって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)または他のタイプの記憶装置のような1つまたは複数の揮発性記憶(またはメモリ)装置を備えてもよい。メモリ1503は、プロセッサ1501または任意の他の装置により実行される命令シーケンスを含む情報を格納できる。例えば、複数種のオペレーティングシステム、デバイスドライバー、ファームウェア(例えば、基本入出力システムまたはBIOS)および/またはアプリケーションの実行可能なコードおよび/またはデータはメモリ1503にロードされてもよく、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMac OS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、Linux(登録商標)、Unix(登録商標)または他のリアルタイムまたは組み込みオペレーティングシステムのような任意のタイプのオペレーティングシステムであってもよい。
システム1500は、さらに、ネットワークインターフェースデバイス1505、任意選択入力デバイス1506、および他の任意選択I/Oデバイス1507を含むことができる。ネットワークインターフェースデバイス1505は、無線送受信機および/またはネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)または他の無線周波数(RF)送受信機またはそれらの組み合わせであってもよい。NICはイーサネット(登録商標)カードであってもよい。
入力デバイス1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と一体化されてもよい)、ポインタデバイス(例えばスタイラス)および/またはキーボード(例えば、物理キーボードまたはタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力デバイス1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、複数種のタッチ感応技術(コンデンサ、抵抗、赤外線および表面弾性波の技術を含むが、それらに限定されない)のいずれかおよび他の近接センサアレイまたはタッチスクリーンとの1つまたは複数の接触点を確定するための他の素子を用いてその接触、移動または中断を検出できる。
I/Oデバイス1507は音声装置を備えてもよい。音声装置は、スピーカおよび/またはマイクロホンを含んでもよく、それにより音声認識、音声複製、デジタル記録および/または電話機能のような音声サポートの機能を促進する。他のI/Oデバイス1507は、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのようなモーションセンサ)またはそれらの組み合わせをさらに備えてもよい。デバイス1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真およびビデオ断片の記録)を促進するための電荷結合素子(CCD)または相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によってインターコネクタ1510に接続されてもよく、キーボードまたはサーマルセンサのような他のデバイスは、埋め込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定構成または設計により決められる。
データ、アプリケーション、1つまたは複数のオペレーティングシステム等のような情報の永続性記憶を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステートデバイス(SSD)によって実現できる。しかし、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)で実現されてもよく、より小さい容量のSSD記憶装置は、SSDキャッシュとして停電イベント期間にコンテキスト状態および他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現できる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。
このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOSおよび他のファームウェアを備える。
記憶デバイス1508は、任意の1種または複数種の本明細書に記載の方法または機能を具現化する1つまたは複数の命令セットまたはソフトウェア(例えば、モジュール、ユニットおよび/またはロジック1528)が格納されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体またはコンピュータ可読媒体とも呼ばれる)を備えてもよい。処理モジュール/ユニット/ロジック1528は、計画モジュール305、制御モジュール306及び機械学習モジュール308のような上記構成要素のいずれかを示してもよい。処理ジュール/ユニット/ロジック1528は、さらにデータ処理システム1500、メモリ1503、及びプロセッサ1501により実行される期間にメモリ1503内および/またはプロセッサ1501内に完全または少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503およびプロセッサ1501も、機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェースデバイス1505を経由して送受信されてもよい。
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に格納してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記1つまたは複数の命令セットが格納される単一の媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連するキャッシュおよびサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらに命令セットを格納または符号化できる任意の媒体を備えることを理解すべきであり、前記命令セットは、機械により実行され且つ前記機械に本出願の任意の1種または複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学媒体および磁気媒体または任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素および他の特徴は、ディスクリートハードウェアコンポーネントとして実現されてもよくまたはハードウェアコンポーネント(例えば、ASICS、FPGA、DSPまたは類似のデバイス)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイス内のファームウェアまたは機能性回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスおよびソフトウェアコンポーネントの任意の組み合わせで実現されてもよい。
システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素を相互接続させる任意の特定のアーキテクチャ又は方法を表すことは意図されていないことに留意されたい。それは、このような詳細が本出願の実施形態とは密接な関係がないからである。また、より少ない構成要素またはより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバおよび/または他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムおよび記号表現で示される。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書において、アルゴリズムは、通常、所望の結果につながる首尾一貫した操作列と考えられる。これらの操作とは、物理量に対して物理的操作を行う必要となるステップを指す。
ただし、これらの用語および類似の用語の全ては、いずれも適切な物理量に関連付けられ、これらの量を標識しやすくするためのものに過ぎない。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステムまたは類似の電子式計算装置の動作および処理であり、前記コンピュータシステムまたは電子式計算装置は、コンピュータシステムのレジスタおよびメモリに物理(例えば、電子)量として示されたデータを制御するとともに、前記データをコンピュータシステムメモリまたはレジスタまたは他のこのような情報記憶装置、伝送または表示装置内において類似に物理量として示される他のデータに変換する。
本開示の実施形態は、さらに本明細書における操作を実行するための装置に関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形態で情報を格納する任意のメカニズムを備える。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス)を備える。
上記図面に示されるプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化されるもの)、または両方の組み合わせを含む処理ロジックにより実行されてもよい。前記プロセスまたは方法は、本明細書において特定の順序に応じて説明されたが、前記操作の一部は、異なる順序に応じて実行されてもよいことを理解されたい。また、一部の操作は順番ではなく並行に実行されてもよい。
本開示の実施形態は、いずれかの特定のプログラミング言語を参照することなく記載されている。複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
以上の明細書では、本開示の具体的な例示的な実施形態を参照しながら説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨および範囲を逸脱しない限り、本開示に対し様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書および図面を理解すべきである。