(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-29
(45)【発行日】2024-03-08
(54)【発明の名称】時空間ポーズ/オブジェクトデータベース
(51)【国際特許分類】
G01C 21/26 20060101AFI20240301BHJP
G06N 3/02 20060101ALI20240301BHJP
G08G 1/00 20060101ALI20240301BHJP
G08G 1/09 20060101ALI20240301BHJP
B60W 30/095 20120101ALI20240301BHJP
【FI】
G01C21/26 A
G06N3/02
G08G1/00 A
G08G1/09 V
B60W30/095
(21)【出願番号】P 2022519837
(86)(22)【出願日】2020-10-05
(86)【国際出願番号】 US2020054278
(87)【国際公開番号】W WO2021158264
(87)【国際公開日】2021-08-12
【審査請求日】2022-05-20
(32)【優先日】2019-10-04
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】317015065
【氏名又は名称】ウェイモ エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ホワイト,ブランディン アレン
(72)【発明者】
【氏名】ティモフェイエフ,アレクセイ
【審査官】高島 壮基
(56)【参考文献】
【文献】特許第6257872(JP,B1)
【文献】米国特許出願公開第2018/0074200(US,A1)
【文献】米国特許出願公開第2019/0049950(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 30/00-60/00
G01C 21/00-21/36
G06N 3/02
G08G 1/00-99/00
G09B 29/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
環境内の
自律型車両の現在の地理的場所を判定することと、
前記環境内の複数の地理的場所の履歴データを維持するデータベースから、前記
自律型車両の前記現在の地理的場所の近くにある地理的場所の履歴データを取得することであって、各地理的場所の前記履歴データが、前記環境をナビゲートする複数の他の車両によってキャプチャされた前記地理的場所のセンサ読み取りから少なくとも部分的に生成された観察を含むことと、
前記取得された履歴データのエンベッディングを生成することと、
前記
自律型車両によって実行されるアクションを選択するポリシー意思決定システムへの入力として前記エンベッディングを提供することと、を含む、方法。
【請求項2】
前記現在の地理的場所が、前記環境に課せられたボクセルグリッドにおける特定のボクセルである、請求項1に記載の方法。
【請求項3】
前記現在の地理的場所の近くの前記地理的場所が、前記特定のボクセルと、前記特定のボクセルを取り囲む周囲のボクセルのセットと、を含む、請求項2に記載の方法。
【請求項4】
前記
自律型車両が、前記環境のシミュレートされたバージョンで使用されるシミュレートされた
自律型車両である、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記ポリシー意思決定システムが、最適化ベースのプランナである、請求項1~
4のいずれか一項に記載の方法。
【請求項6】
前記ポリシー意思決定システムが、機械学習されたニューラルネットワークプランナである、請求項1~
5のいずれか一項に記載の方法。
【請求項7】
前記エンベッディングを生成することが、
前記取得された履歴データの前記観察から統計を計算することと、
前記計算された統計から前記エンベッディングを生成することと、を含む、請求項
6に記載の方法。
【請求項8】
前記エンベッディングを生成することが、
エンベッディングニューラルネットワークを使用して前記取得した履歴データを処理して、履歴データエンベッディングを生成することと、
前記現在の地理的場所の近くにある各地理的場所について、前記地理的場所に対応する各履歴データエンベッディングを組み合わせて、前記地理的場所の地理的場所エンベッディングを生成することと、
前記地理的場所エンベッディングを組み合わせて、前記エンベッディングを生成することと、を含む、請求項
6または
7に記載の方法。
【請求項9】
前記履歴データの前記エンベッディングをポリシー意思決定システムに提供することが、前記履歴データの前記エンベッディングを前記ポリシー意思決定システムの弁別器への入力として提供することを含む、請求項1~
8のいずれか一項に記載の方法。
【請求項10】
各地理的場所の前記履歴データにおける各観察が、前記地理的場所が前記複数の他の車両のうちの1つの他の車両によって遭遇されたこと、およびオブジェクトが前記1つの他の車両のセンサによって前記地理的場所において検出されたかどうかを識別する、請求項1~
9のいずれか一項に記載の方法。
【請求項11】
オブジェクトが前記1つの他の車両の前記センサによって前記地理的場所において検出されたとき、前記観察が、前記検出されたオブジェクトの1つ以上の特性を識別し、前記1つ以上の特性が、前記オブジェクトの速度、前記オブジェクトの加速度、前記オブジェクトの進行方向、前記オブジェクトのオブジェクトタイプ、前記オブジェクトのサイズ、または前記オブジェクトの曲率情報のうちの1つ以上を含む、請求項
10に記載の方法。
【請求項12】
前記履歴データを取得することは、前記
自律型車両が前記現在の地理的場所にあるときに、前記環境の状態の1つ以上の特性が、前記環境の現在の状態の特性と一致するときに生成された履歴データのみを取得することを含む、請求項1~
11のいずれか一項に記載の方法。
【請求項13】
1つ以上のコンピュータと、前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに動作を実行させるように動作可能な命令を記憶する1つ以上の記憶デバイスと、を備えるシステムであって、前記動作が、
環境内の
自律型車両の現在の地理的場所を判定することと、
前記環境内の複数の地理的場所の履歴データを維持するデータベースから、前記
自律型車両の前記現在の地理的場所の近くにある地理的場所の履歴データを取得することであって、各地理的場所の前記履歴データが、前記環境をナビゲートする複数の他の車両によってキャプチャされた前記地理的場所のセンサ読み取りから少なくとも部分的に生成された観察を含むことと、
前記取得された履歴データのエンベッディングを生成することと、
前記
自律型車両によって実行されるアクションを選択するポリシー意思決定システムへの入力として前記エンベッディングを提供することと、を含む、システム。
【請求項14】
前記ポリシー意思決定システムが、最適化ベースのプランナである、請求項
13に記載のシステム。
【請求項15】
前記ポリシー意思決定システムが、機械学習されたニューラルネットワークプランナである、請求項
13または
14に記載のシステム。
【請求項16】
前記エンベッディングを生成することが、
エンベッディングニューラルネットワークを使用して前記取得された履歴データを処理して、履歴データエンベッディングを生成することと、
前記現在の地理的場所の近くにある各地理的場所について、前記地理的場所に対応する各履歴データエンベッディングを組み合わせて、前記地理的場所の地理的場所エンベッディングを生成することと、
前記地理的場所エンベッディングを組み合わせて、前記エンベッディングを生成することと、を含む、請求項
15に記載のシステム。
【請求項17】
複数のコンピュータによって実行されると、前記複数のコンピュータに動作を実行させるコンピュータプログラム命令で符号化された1つ以上の非一時的なコンピュータ記憶媒体であって、前記動作が、
環境内の
自律型車両の現在の地理的場所を判定することと、
前記環境内の複数の地理的場所の履歴データを維持するデータベースから、前記
自律型車両の前記現在の地理的場所の近くにある地理的場所の履歴データを取得することであって、各地理的場所の前記履歴データが、前記環境をナビゲートする複数の他の車両によってキャプチャされた前記地理的場所のセンサ読み取りから少なくとも部分的に生成された観察を含むことと、
前記取得された履歴データのエンベッディングを生成することと、
前記
自律型車両によって実行されるアクションを選択するポリシー意思決定システムへの入力として前記エンベッディングを提供することと、を含む、非一時的なコンピュータ記憶媒体。
【請求項18】
前記ポリシー意思決定システムが、最適化ベースのプランナである、請求項
17に記載の非一時的なコンピュータ記憶媒体。
【請求項19】
前記ポリシー意思決定システムが、機械学習されたニューラルネットワークプランナである、請求項
17または
18に記載の非一時的なコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、自律型車両に関する。
【背景技術】
【0002】
自律型車両は、自動運転する車、船舶、および航空機を含む。自律型車両は、様々な車載センサおよびコンピュータシステムを使用して近くのオブジェクトを検出し、その検出を使用して、制御およびナビゲーションの決定を行う。
【0003】
一部の自律型車両は、ニューラルネットワーク、他のタイプの機械学習モデル、または例えば、ポリシーを意思決定する、様々なタスクについて、その両方を実装する車載コンピュータシステムを有する。例えば、ニューラルネットワークが使用されて、入力センサデータを用いての自律型車両の次のアクションを選択できる。ニューラルネットワーク、略して、ネットワークは、複数の操作の層を使用して、1つ以上の入力から1つ以上の出力を予測する機械学習モデルである。ニューラルネットワークは、通常、入力層と出力層との間に位置する1つ以上の隠れ層を含む。各層の出力は、ネットワーク内の別の層、例えば、次の隠れ層または出力層への入力として使用される。
【0004】
ニューラルネットワークの各層は、層への入力に対して実行される1つ以上の変換操作を指定する。一部のニューラルネットワーク層は、ニューロンと称される操作を有する。各ニューロンは1つ以上の入力を受信し、別のニューラルネットワーク層で受信される出力を生成する。多くの場合、各ニューロンは、他のニューロンから入力を受信し、各ニューロンは、1つ以上の他のニューロンに出力を提供する。
【0005】
ニューラルネットワークのアーキテクチャは、ネットワークに含まれる層およびその特性、ならびにネットワークの各層のニューロンの接続方法を指定する。換言すれば、アーキテクチャは、他の層への入力としてどの層が出力を提供するか、出力がどのように提供されるかを指定する。
【0006】
各層の変換操作は、変換操作を実装するソフトウェアモジュールがインストールされたコンピュータによって実行される。したがって、操作を実行するとして説明されている層は、層の変換操作を実装するコンピュータが操作を実行することを意味する。
【0007】
各層は、層の一連のパラメータの現在の値を使用して1つ以上の出力を生成する。したがって、ニューラルネットワークをトレーニングすることは、入力に対する順方向パスの継続的な実行、勾配値の計算、および計算された勾配値を使用した各層のパラメータセットの現在の値の更新することを伴う。ニューラルネットワークがトレーニングされると、最終的なパラメータセットを使用して、生成システムで予測を行うことができる。
【発明の概要】
【0008】
本明細書では、例えば、自律型または半自律型車両である、エージェントが、それぞれの以前の時間ステップで、世界において同じ特定の地理的場所をナビゲートされる車両として、1つ以上の車両によってキャプチャされた履歴センサデータを使用することによって、世界における特定の地理的場所にいるときに、ポリシーをどのように意思決定するかを説明する。一旦、エージェントがトレーニングされると、システムは、車両に配備され、車両によって使用されて、自律型または半自律型の運転決定を行う。
【0009】
本明細書はまた、シミュレートされたエージェント、例えば車両のシミュレートされたバージョンが、同じ特定の実世界の地理的場所のシミュレーション内でポリシー意思決定を行うときに、特定の実世界の地理的場所に関連する履歴センサデータを使用する方法についても説明する。
【0010】
本明細書では、システムが実世界をナビゲートする車両によって生成された履歴センサデータをキュレートして、各履歴データをデータが生成されたそれぞれの実世界の場所に関連付ける方法についても説明する。システムは、1台以上の車両から照会できるクラウド上の履歴データを維持できる。
【0011】
本明細書に記載の主題の特定の実施形態は、以下の利点の1つ以上を実現するように実施することができる。
【0012】
特定の実世界の場所に関連付けられた履歴データを使用することにより、エージェントは、同じ特定の実世界の場所にいた他のエージェントの以前の経験を活用して、より正確なポリシー意思決定を行うことができる。エージェントは、他の場所には適用されない可能性のある特定の場所に固有の情報を活用できる。例えば、特定の四方向交差点での歩行者の行動は、他の場所、または他の四方向交差点での歩行者の行動とは大きく異なる場合がある。したがって、エージェントの特定の場所に関連付けられた履歴データを使用すると、異なる場所で生成されたデータが役に立たないか、誤解を招く可能性があるため、多くの異なる場所で生成された履歴データのより大きなコーパスを使用するよりも、エージェントのアクションを選択するのに役立つ可能性がある。
【0013】
履歴データを使用してシミュレートされたエージェントのポリシーを意思決定することにより、システムはシミュレートされたエージェントをより現実的にすることでシミュレーションを改善できる。システムは、既存のシナリオを拡張して、通常観察されるよりも多様で複雑なシミュレーションを作成することもできる。これにより、シミュレーションが改善され、実世界の自律型または半自律型車両の制御ソフトウェアのパフォーマンスをテストまたは別途改善することができる。
【0014】
本明細書の主題の1つ以上の実施形態の詳細を、添付の図面および以下の説明に記載する。主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から、明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図3】エージェントのアクションを選択するために履歴データを使用するための例示的なプロセスのフローチャートである。
【
図4】履歴データのエンベッティングを生成するための例示的なプロセスのフローチャートである。
【
図6】例示的なシミュレートされたボクセルグリッドの図である。
【
図7】履歴データをクエリするための例示的なプロセスのフローチャートである。
【
図8】シミュレートされたエージェントのアクションを選択するために履歴データを使用するための例示的なプロセスのフローチャートである。
【
図9】シミュレートされたエージェントの候補アクションを評価するために履歴データを使用するための例示的なプロセスのフローチャートである。
【
図10】シミュレートされたエージェントの候補アクションを識別するために履歴データを使用するための例示的なプロセスのフローチャートである。
【0016】
様々な図面の中の同様の参照番号および名称は、同様の要素を示す。
【発明を実施するための形態】
【0017】
本明細書は、例えば、自律型または半自律型車両またはシミュレートされた車両である、エージェントが、同じ特定の地理的場所をナビゲートされる車両として、1つ以上の車両によってキャプチャされた履歴センサデータを使用することによって、特定の地理的場所にいるときに、ポリシーをどのように意思決定するかを説明する。
【0018】
図1は、例示的なシステム100の図である。システム100は、車載システム110と、データベースシステム120とを含む。
【0019】
車載システム110は、車両102に車載配置されている。
図1の車両102は自動車として図示されているが、車載システム102は、任意の適切なタイプの車両に車載配置されることができる。車両102は、環境内をナビゲートするために完全自律型運転決定を判定および実行する完全自律型車両であり得る。車両102はまた、人間の運転者を支援するために予測を使用する半自律型車両であり得る。例えば、人間の運転者が別の車両と衝突しそうであることを予測が示す場合、車両102は、自律的にブレーキをかけることができる。
【0020】
車載システム110は、1つ以上のセンサシステム104を含む。センサシステム104は、電磁放射の反射を受信する構成要素の組み合わせ、例えば、レーザ光の反射を検出するライダシステム、電波の反射を検出するレーダシステム、および可視光の反射を検出するカメラシステムを含む。
【0021】
車両102のセンサシステム104または他の構成要素は、1つ以上のセンサからの1つ以上の生のセンサ測定値のグループを、例えば別の車両または歩行者のようなオブジェクトの測定値であるとして、分類することもできる。センサ測定値のグループは、キャプチャされているセンサ測定値の種類に応じて、様々な方式のいずれかで表すことができる。例えば、生のレーザセンサ測定値の各グループは、関連する運動学的情報を持つ境界ボックスとして表すことができるが、ここで境界ボックスは、オブジェクトを含む環境内の凸状領域である。関連する運動学的情報には、オブジェクトの速度、オブジェクトの加速度、オブジェクトの進行方向、またはオブジェクトのオブジェクトタイプのうちの1つ以上を含めることができる。本明細書では、これらの境界ボックスおよび関連する運動学的情報は「知覚」データと称される。
【0022】
知覚データの各部分は、実世界の地理的場所に関連付けられており、実世界の地理的場所は、知覚データが記録されたときに知覚データによって表されたオブジェクトによって占有される場所である。一般化されたタイプの場所(例えば、交差点)とは対照的に、各実世界の地理的場所は、世界の特定のポイント(例えば、マンハッタンのブロードウェイとウォール街の交差点)である。例えば、実際の地理的場所は、地球を複数のセルに分解する特定のセル、例えば、s2cell階層の特定のレベルにあるセルにすることができる。
【0023】
車両102のセンサシステム104または他の構成要素はまた、関連する知覚データとは無関係に、車両102が実世界の地理的場所を訪れたという事実を記録するデータを生成することができる。本明細書では、車両102が訪問する1つ以上の実世界の地理的場所を記録するデータは、「ポーズ」データと称される。車両102が実世界をナビゲートするとき、車両102は、知覚データおよびポーズデータの両方を含むセンサデータ118を継続的に生成し、センサデータ118をデータベースシステム120に提供する。いくつかの実装形態では、車両102は、「ログ」の形でセンサデータ118を提供する。ログは、知覚データまたはポーズデータのいずれかの単一の部分である。
【0024】
知覚ログの例としては、ブロードウェイストリートを横断する歩行者が検出されたスペースを囲むバウンディングボックスがあり、歩行者が時速3マイルの速度で歩いていることを詳細に示す運動学的情報が関連付けられている。ポーズログの例は、車両102がブロードウェイとウォールストリートの角にあったという識別であるかもしれない。
【0025】
データベースシステム120は、受信したログデータをログデータデータベース130に記憶するものであるが、ログデータデータベースは、データベースシステム120と通信している1つ以上の車両のフリート内の車両から受信したセンサデータのログを記憶する。
【0026】
データベースシステム120は、実世界の特定の地理的場所ごとにログデータをグループ化することができるので、異なる時間に異なる車両によって同じ地理的場所で収集されたログデータは、同じ地理的場所固有のグループ化に含まれる。そうするために、データベースシステム120は、ログデータデータベース130に記憶されたログデータを処理し、ログデータデータベース130内の各ログを、ログが生成されたときにログによって表されるオブジェクトがあった地理的場所に割り当てる。データベースシステム120は、地理的場所からログへのデータのこのマッピングを、地理的場所固有のスナップショットデータベース132に記憶する。地理的場所固有のスナップショットデータベース132は、所与の地理的場所について照会することができる。クエリに応答して、地理的場所固有のスナップショットデータベース132は、所与の地理的場所で生成された知覚および/またはポーズログデータを提供することができる。地理的場所固有のスナップショットデータベース132は、複数のデータベースのシステムであり得るか、またはそれは、より大きなデータベースの1つ以上のセクションであり得る。
【0027】
車載システム110はまた、車両102および地理的場所システム106のアクションを選択するポリシー意思決定システム112を含む。
【0028】
地理的場所システム106は、車両102の現在の地理的場所を繰り返し判定し、車両102の現在の地理的場所を含む地理的場所データ108を生成する。地理的場所システム106は、地理的場所データ108をポリシー意思決定システム112に送信する。
【0029】
ポリシー意思決定システム112は、地理的場所データ108を使用してクエリ154を生成し、クエリ154を地理的場所固有のスナップショットデータベース132に送信する。クエリ154は、車両102の現在の地理的場所を含み、現在の地理的場所およびオプションで1つ以上の周囲の地理的場所のデータを要求する。
【0030】
地理的場所固有のスナップショットデータベース132は、それが記憶するデータから履歴データ144を収集する。履歴データ144は、クエリ154に従って、現在の地理的場所、および任意選択で現在の地理的場所を取り巻く1つ以上の地理的場所に対応する知覚および/またはポーズログデータを含む。地理的場所固有のスナップショットデータベース132は、履歴データ144をポリシー意思決定システム112に送信する。
【0031】
いくつかの実装形態では、ポリシー意思決定システム112は、履歴データ144のエンベッティングを生成し、データをより使用可能な形式に変換する。エンベッティングとは、入力を表す、浮動小数点またはその他の数値のベクトルまたは行列など、順序付けられた数値の集合である。ポリシー意思決定システム112は、ポリシー意思決定を行うために履歴データ144のエンベッティングを処理する。
【0032】
いくつかの実装形態では、クエリ154はまた、履歴データ144が返されるために満たさなければならない1つ以上の条件を含むことができる。例えば、雨が降っている間に車両102がナビゲートしている場合、ポリシー意思決定システム112は、返される履歴データ144が雨が降っているときに収集されたデータのみを含まなければならないという条件をクエリ154に含めることができる。関心のある可能性のある条件の他の非限定的な例には、時刻、曜日、季節、交通状況、および他の気象条件が含まれ得る。これらの実装では、地理的場所固有のスナップショットデータベースは、必要なすべての条件を満たすデータのみを返す。
【0033】
いくつかの実装形態では、ログデータデータベース130内のログデータを処理して、地理的場所固有のスナップショットデータベース132に記憶されるデータを生成するために、データベースシステム120は、実世界に課される事前に確立されたボクセルグリッドを使用して、特定の地理的場所ごとにログデータをグループ化する。すなわち、データベースシステム120は、知覚またはポーズログに対応する地理的場所ごとに、確立されたボクセルグリッド内のどのボクセルがログを含むかを判定し、判定されたボクセルにログを割り当てる。各ボクセルは、実世界の対応する三次元空間を特徴付ける、ボックスなどの三次元凸形状である。ボクセルグリッドは、実世界の特定の領域のそのようなボクセルのグリッドであり、実世界のその領域内のすべての特定の地理的場所が正確に1つのボクセルに含まれる。これらの実装では、地理的場所固有のスナップショットデータベース132は、ボクセルごとにログをグループ化し、データベースが特定の地理的場所のクエリを受信すると、データベースは特定の地理的場所を含むボクセルを判定し、データベースはそのボクセルに対応するデータを返す。これらの実装では、ポリシー意思決定システム112が車両102の現在の地理的場所およびオプションで周囲の地理的場所のデータを要求すると、データベースは、車両102を含むボクセル、およびオプションで周囲のボクセルのデータを返すことができる。
【0034】
ポリシー意思決定システムが履歴データをエンベッティングし、そのエンベッティングを使用してポリシー意思決定を行うことができるプロセスは、
図3および
図4を参照して以下でより詳細に説明される。
【0035】
車両102が物理的な車両である必要はなく、したがって、車載システム110が車両102に物理的に搭載されている必要はない。
図1の上述の説明は、実世界の場所をシミュレートする環境で動作するシミュレートされたエージェントに等しく適用可能である。この実装では、車載システム110をクラウドに配置することができ、センサシステム104をシミュレートされたセンサシステムにすることができ、地理的場所システム106をシミュレートされた地理的場所システムにすることができ、シミュレートされた環境で動作するシミュレートされたエージェントについて、ポリシー意思決定システムがポリシーを決定することができる。シミュレートされた環境は、データベースシステム120が履歴データを有する実世界の場所のシミュレーションであり得る。シミュレートされた地理的場所システム106は、実世界の地理的場所に対応する地理的場所データ108を提供することができるので、ポリシー意思決定システム112は、実世界の地理的場所に対応する履歴データ144のためにクエリ154を送信し、あたかもシミュレートされたエージェントが、その実世界の地理的場所で動作していたかのように決定する。
【0036】
このようなシミュレートされた実装は、最終的に実世界の車両に導入される機械学習モデルをトレーニングするのに役立つ可能性がある。このようなシミュレートされた実装は、ソフトウェアが実世界の車両に展開される前にソフトウェアをテストして、ソフトウェアが希望どおりに機能することを確認するのにも役立つ可能性がある。
【0037】
図2は、例示的なボクセルグリッド200の図である。
【0038】
エージェント202は、グリッドの中央のボクセル(0,0)にある。エージェント202のポリシー意思決定システムは、エージェント202の地理的場所システムからエージェント202の現在の地理的場所(0,0)を受信し、現在の地理的場所およびオプションで、関心のある1つ以上の周囲の地理的場所で生成された履歴データについて地理的場所固有のスナップショットデータベースに問い合わせする。
図2に示す例では、関心のある地理的場所を含むボクセルは星でマークされており、両座標方向で-2座標から+2座標まで車両を囲んでいる。エージェント202のポリシー意思決定システムは、星で示される関心のあるボクセルとして指定されたものを除いて、他のボクセルの履歴データのクエリを送信しない。例えば、ボクセル(-3,-3)は、地理的場所固有のスナップショットデータベースへのクエリには含まれていない。
【0039】
ポリシー意思決定システムが地理的場所固有のスナップショットデータベースから所望の履歴データを受信すると、ポリシー意思決定システムはそのデータを使用してエージェント202のアクションを選択する。このプロセスは、
図3および
図4を参照して以下でより詳細に説明される。
【0040】
図3は、地理的場所固有のスナップショットデータベースを使用してエージェントのアクションを選択する例示的なプロセス300のフロー図である。便宜上、プロセス300は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、車載システム、例えば、本明細書に従って適切にプログラムされた
図1の車載システム110は、プロセス300を実行することができる。
【0041】
システムは、エージェントの現在の地理的場所を判定する(ステップ302)。いくつかの実装形態では、エージェントの現在の地理的場所を判定することは、エージェントの環境に課せられた所定のボクセルグリッドにおけるエージェントの現在のボクセルを判定することを含む。
【0042】
システムは、現在のボクセル、およびオプションで、エージェントの周囲のボクセルの履歴データを取得する(304)。例えば、システムは、地理的場所固有のスナップショットデータベースにクエリを提示できる。クエリは、関心のあるボクセルを識別できる。その後、システムは、地理的場所固有のスナップショットデータベースから照会されたデータを受信できる。いくつかの実装形態では、システムは、クエリに、エージェントの現在のボクセルおよび所定の数の周囲のボクセルを含み、周囲のボクセルは、エージェントの現在のボクセルを囲む所定の形態にある。例えば、システムには、ボクセルグリッドの3×3サブグリッドを形成する9つのボクセルを含めることができ、ここで、エージェントの現在のボクセルは、3×3サブグリッドの中央のボクセルである。
【0043】
システムは、履歴データのエンベッティングを生成する(ステップ306)。
【0044】
一部の実装では、システムは、履歴データに直接統計を計算することにより、履歴データのエンベッティングを生成する。例えば、システムは、エージェントがそのボクセルからセンサデータを取得した回数に比例して、特定のボクセルで周囲の車両が観察された時間の割合を計算できる。システムは、速度、進行方向、または知覚データに関連するその他の情報の分布に関する統計をさらに計算できる。システムは、個々のボクセルごとにこれらの統計の個々のセットを計算するか、複数のボクセルにわたるすべての履歴データのこれらの統計の結合されたセットを計算するか、または統計の個々のセットおよび統計の結合されたセットの両方を計算することができる。次に、システムは、計算された統計から履歴データの単一のエンベッティングを生成できる。例えば、システムが機械学習ニューラルネットワークプランナを使用してエージェントのアクションを選択する場合、システムは各ボクセルの計算された統計の各々をベクトルの要素として含め、そのベクトルをニューラルネットワークに提供できる。
【0045】
他のいくつかの実装形態では、システムは、1つ以上のエンベッティングニューラルネットワークを使用してデータを処理することによって、履歴データのエンベッティングを生成する。このプロセスは、
図4を参照して以下でより詳細に説明される。
【0046】
システムは、生成されたエンベッティングを処理して、エージェントのアクションを選択する(ステップ308)。
【0047】
一部の実装では、システムは機械学習されたニューラルネットワークプランナを使用してエージェントのアクションを選択する。これらの実装では、システムはニューラルネットワークへの入力としてエンベッティングを提供できる。
【0048】
他のいくつかの実装では、システムは、履歴データのエンベッティングを使用して、候補アクションを評価する弁別器への入力としてエンベッティングを提供することにより、ポリシーを選択する。弁別器は、提案されたアクションおよび/または次の状態を受け入れるか拒否するかのいずれかで、エージェントによって取られるべき提案されたアクション、エージェントの提案された次の状態、またはその両方を評価することができる。弁別器が機械学習ニューラルネットワーク弁別器である場合、弁別器は、提案されたアクションおよび/またはベクトル形式の次の状態、および任意選択で他の入力の中でベクトル形式の履歴データのエンベッティングを入力として取ることができる。いくつかの実装形態では、弁別器はスコアを出力し、スコアは、提案されたアクションおよび/または次の状態が現在の状態および履歴データを考慮して現実的または望ましい可能性を特徴付ける。他のいくつかの実装形態では、弁別器は、提案されたアクションおよび/または次の状態を受け入れるか拒否するかのいずれかのバイナリ決定を出力し、例えば、スコアが所定の閾値を満たし、提案されたアクションおよび/または別途次の状態を拒否する場合、提案されたアクションおよび/または次の状態を受け入れる。
【0049】
図4は、照会された履歴データのエンベッティングを生成するための例示的なプロセス400のフロー図である。便宜上、プロセス400は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、ポリシー意思決定システム、例えば、本明細書に従って適切にプログラムされた、
図1のポリシー意思決定システム112は、プロセス400を実行することができる。
【0050】
システムは、環境内のエージェントの現在および周囲のボクセルの履歴データを取得する(ステップ402)。システムは、データベース、例えば、
図1に示される地理的場所固有のスナップショットデータベース132から、履歴データの1つ以上のログを受信することができる。履歴データの各ログは、照会されたボクセルのそれぞれのボクセルに対応できる。
【0051】
システムは、第1のエンベッティングニューラルネットワークを使用してデータを処理し、履歴データにおける各ログの履歴データエンベッティングを生成する(ステップ404)。
【0052】
例えば、システムは履歴データの各ログについて初期エンベッティングを生成できる。特定の例として、履歴データのログには、i)環境内のオブジェクトの三次元バウンディングボックスを定義するデータ、およびii)環境内のオブジェクトの1つ以上のモーションパラメータ(例えば、速度、加速度、進行方向、場所などの1つ以上)を含むことができる。この例では、システムは、バウンディングボックスのパラメータを識別する要素とモーションパラメータを識別する要素を含む初期エンベッティングを生成できる。
【0053】
次に、システムは、ニューラルネットワークを使用して履歴データのログの初期エンベッティングを処理し、ログの履歴データエンベッティングを生成できる。例えば、システムは多層パーセプトロンを使用して初期エンベッティングを処理できる。
【0054】
一部の実装では、ログを処理してログの履歴データエンベッティングを生成する前に、システムは、ログが関連付けられている環境における場所からボクセルの中心位置を減算する。つまり、システムは、原点がボクセルの中心である座標系を使用してログを表す。したがって、照会されたすべてのボクセルにわたる各ログは、ログのボクセルの場所に関して正規化できる。そうすることで、システムが数値の精度を維持するのを助け、各ログのそれぞれの履歴データエンベッティングがボクセルグリッド全体で均一になるようにすることができる。
【0055】
いくつかの実装形態では、それぞれの異なる時点に対応する複数の異なるログを互いに関連付けることができる。例えば、ログはそれぞれの異なる時点で同じオブジェクトを表すことができる。いくつかのそのような実装では、システムは、関連するログのそれぞれの履歴エンベッティングをさらに処理して、複数のログの単一の結合された履歴エンベッティングを生成することができる。例えば、システムは、1つ以上の一次元畳み込みニューラルネットワーク層を含むニューラルネットワークを使用して、関連するログのそれぞれの履歴エンベッティングを処理できるが、各畳み込みニューラルネットワーク層は、時間次元の履歴エンベッティングにわたってフィルタを畳み込む。
【0056】
システムは、照会された各ボクセルについて、ボクセルに対応する各履歴データエンベッティングを組み合わせて、それぞれの地理的場所エンベッティングを生成する(ステップ406)。つまり、システムは、照会されたボクセルごとに1つの地理的場所エンベッティングを生成する。例えば、照会されたボクセルごとに、システムは第2のエンベッティングニューラルネットワークを使用して履歴データエンベッティングを組み合わせることができる。いくつかの実装形態では、第2のエンベッティングニューラルネットワークは、1つ以上の畳み込みニューラルネットワーク層と、それに続く、固定長ベクトルを生成する1つ以上の完全に接続された層を含む。
【0057】
システムは、照会されたすべてのボクセルの地理的場所エンベッティングを結合して、最終的なエンベッティングを生成する(ステップ408)。例えば、システムは地理的場所エンベッティングを連結して、最終的なエンベッティングを生成できる。別の例として、システムは、地理的場所エンベッティングの平均である最終的なエンベッティングを判定できる。別の例として、システムは、最大プーリング層または最小プーリング層を使用して地理的場所エンベッティングを処理できる。別の例として、地理的場所エンベッティングは、第3のエンベッティングニューラルネットワークを使用して結合される。
【0058】
システムが機械学習ニューラルネットワークプランナを使用する場合、システムはこの最終的なエンベッティングをポリシーニューラルネットワークに提供して、エージェントのアクションを選択する。一部の実装では、1つ以上のエンベッティングニューラルネットワークがポリシーニューラルネットワークと同時にトレーニングされる。例えば、トレーニングシステムは、ポリシーニューラルネットワークのエラーを1つ以上のエンベッティングニューラルネットワークにポリシーニューラルネットワークを介して逆方向伝播できる。エンベッティングニューラルネットワークをポリシーニューラルネットワークと共同でトレーニングすることにより、システムは、エンベッティングニューラルネットワークによって生成されたエンベッティングが、エージェントのアクションを選択する際にポリシーニューラルネットワークに役立つ入力履歴データの特性を表すようにすることができる。
【0059】
図5は、例示的なシステム500を示す図である。システム500は、1つ以上のサーバ524上に1つ以上のコンピュータプログラムとして実装されるシステムの例である。システム500は、シミュレートされたエージェントシステム502およびデータベースシステム520を含む。
【0060】
シミュレートされたエージェントシステム502は、クラウド上に配置され、車両に車載配置された車載システムのシミュレートされたバージョンである。
【0061】
シミュレートされたエージェントシステム502は、シミュレートされたセンサシステム504を含む。シミュレートされたセンサシステム504は、車両に車載が見られるセンサシステムをシミュレートする。シミュレートされたセンサシステム504は、車載センサシステムのセンサおよび構成要素によって生成されたであろうセンサ測定値を特徴付けるデータを受信する。シミュレートされたセンサシステム504またはシミュレートされたエージェントシステム502の他の構成要素は、1つ以上のセンサからの1つ以上のセンサ測定値のグループを特徴付けるデータを、あるオブジェクト、例えば、別の車両または歩行者の測定値として分類することができる。
【0062】
図1を参照して上で説明したように、データベースシステム520は、データベースシステム520と通信している1つ以上の車両のフリート内の車両から受信したセンサデータのログを特徴付けるログデータ536を記憶するログデータデータベース530を含む。ログデータ536は、知覚データおよびポーズデータの両方を含む。
【0063】
データベースシステム520は、実世界の特定の地理的場所ごとに、および観察された特定のオブジェクトごとに、ログデータ536をグループ化することができる。例えば、実世界で車両によって観察される所与のオブジェクトについて、データベースシステム520は、車両によって生成された所与のオブジェクトの知覚ログのシーケンス、例えば、所定の数の知覚ログのシーケンスをグループ化することができる。本明細書では、単一のオブジェクトを表す所定の数の知覚ログのシーケンスは、オブジェクトの「軌跡」と称される。データベースシステム120は、これらの軌跡を地理的場所固有の軌跡データベース534に記憶する。地理的場所固有の軌跡データベース534は、所与の地理的場所について照会され得、所与の地理的場所を含むすべての軌跡を提供することができる。
【0064】
例えば、車両が、所与のオブジェクトが地理的場所A、B、C、およびDにあるというセンサデータロギングをその順序でそれぞれの時点で生成し、データベースシステム520が3つの知覚ログのグループで軌跡を生成する場合、データベースシステム520は、第1の軌跡(A、B、C)および第2の軌跡(B、C、D)を生成し、これらの2つの軌跡を地理的場所固有の軌跡データベース534に記憶する。次に、地理的場所固有の軌跡データベース534は、地理的場所Bについて照会することができ、地理的場所Bは両方の軌跡にあるので、地理的場所固有の軌跡データベース534は、上記の両方の軌跡を返し得る。地理的場所固有のスナップショットデータベース534は、複数のデータベースのシステムであり得るか、またはそれは、より大きなデータベースの1つ以上のセクションであり得る。
【0065】
シミュレートされたエージェントシステム502はまた、シミュレートされた地理的場所システム506と、シミュレートされているエージェントのアクションを選択するシミュレートされたポリシー意思決定システム512とを含む。
【0066】
シミュレートされたエージェントシステム502が実世界をナビゲートする車両に車載配置された車載システムをシミュレートしているシミュレーション中、シミュレートされた地理的場所システム506は、シミュレートされたエージェントがシミュレートされた環境を介して、ナビゲートするときに、地理的場所データ508を生成しながら、シミュレートされたエージェントの現在のシミュレートされた地理的場所を繰り返し生成する。シミュレートされた地理的場所システム506は、地理的場所データ508をシミュレートされたポリシー意思決定システム512に送信する。
【0067】
シミュレートされたポリシー意思決定システム512は、地理的場所データ508を使用してクエリ554を生成し、クエリ554を地理的場所固有の軌跡データベース534に送信する。クエリ554は、シミュレートされたエージェントの現在のシミュレートされた地理的場所を識別し、現在のシミュレートされた地理的場所およびオプションで1つ以上の周囲の地理的場所のデータを要求する。
【0068】
地理的場所固有の軌跡データベース534は、それが記憶するデータから履歴軌跡544を収集する。履歴軌跡544は、現在シミュレートされた地理的場所を含む軌跡を含むことができる。いくつかの実装形態では、履歴軌跡544は、それらの軌跡が、現在のシミュレートされた地理的場所の後の次の地理的場所を決定するのに価値がないので、軌跡の最終的な地理的場所が現在のシミュレートされた地理的場所である軌跡を除外する。地理的場所固有の軌跡データベース534は、履歴軌跡544を、シミュレートされたポリシー意思決定システム512に送信する。シミュレートされたポリシー意思決定システム512は、履歴軌跡544を使用してポリシー意思決定を行う。
【0069】
いくつかの実装形態では、クエリ544は、シミュレートされたエージェントの1つ以上の以前にシミュレートされた地理的場所をさらに識別することができる。これらの実装では、返される履歴軌跡544は、シミュレートされたエージェントの以前のすべてのシミュレートされた地理的場所およびシミュレートされたエージェントの現在のシミュレートされた地理的場所を含む軌跡のみを含むことができ、その地理的場所は、履歴軌跡544において、シミュレートされたエージェントが地理的場所を訪問してシミュレートした順番と同じ順番である。このプロセスは、
図7を参照して以下でより詳細に説明される。
【0070】
図1を参照して上で説明したように、いくつかの実装形態では、クエリ554はまた、履歴軌跡544が返されるために満たさなければならない1つ以上の条件を識別することができる。例えば、シミュレートされた環境が雨の状態をシミュレートしている場合、シミュレートされたポリシー意思決定システムは、返される履歴軌跡544は雨が降っているときに収集されたデータのみを含まなければならないという条件をクエリ554に含めることができる。
【0071】
図1を参照して上で説明したように、いくつかの実装形態では、データベースシステム520は、地理的場所に記憶されるデータを生成するときに特定の地理的場所ごとにログデータをグループ化するために、特定の軌跡データベース534において実世界に課される事前に確立されたボクセルグリッドを使用する。
【0072】
シミュレートされたポリシー意思決定システムが履歴軌跡を使用してポリシー決定を行うことができるプロセスは、
図8~10を参照して以下でより詳細に説明される。
【0073】
図6は、例示的なシミュレートされたボクセルグリッド600を示す図である。
【0074】
シミュレートされたエージェント602は、グリッドの中央のボクセル(0,0)にある。シミュレートされたエージェント602のシミュレートされたポリシー意思決定システムは、シミュレートされたエージェント602のシミュレートされた地理的場所システムからシミュレートされたエージェント602の現在のシミュレートされた地理的場所(0,0)を受け取り、地理的場所固有の軌跡データベースに、現在シミュレートされた地理的場所(0,0)を含める。
【0075】
図6に示される例では、シミュレートされたポリシー意思決定システムは、3つの軌跡を受け取る。第1の軌跡は、第1の前の地理的場所620、現在のシミュレートされた地理的場所、および第1の後続の地理的場所622を含む。第2の軌跡は、第2の前の地理的場所640、現在のシミュレートされた地理的場所、および第2の後続の地理的場所642を含む。第3の軌跡は、第3の前の地理的場所660、現在のシミュレートされた地理的場所、および第3の後続の地理的場所662を含む。3つの軌跡の各々は、i)それぞれの前の地理的場所、ii)現在のシミュレートされた地理的場所、およびiii)それぞれの後続の地理的場所に対応する実世界の地理的場所をこの順序で訪問したそれぞれの車両によって生成された。
【0076】
シミュレートされたエージェント602のシミュレートされたポリシー意思決定システムが、地理的場所固有の軌跡データベースから3つの軌跡を特徴付けるデータを受信すると、シミュレートされたポリシー意思決定システムは、その軌跡を使用して、シミュレートされたエージェント602のアクションを選択することができる。このプロセスは、
図8~10を参照して以下でより詳細に説明される。
【0077】
図7は、シミュレートされたエージェントの現在のシミュレートされた地理的場所およびシミュレートされたエージェントの1つ以上の前のシミュレートされた地理的場所を使用して軌跡を照会するための例示的なプロセス700のフロー図である。便宜上、プロセス700は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、シミュレートされたエージェントシステム、例えば、本明細書に従って適切にプログラムされた、
図5のシミュレートされたエージェントシステム502は、プロセス700を実行することができる。
【0078】
システムは、シミュレートされたエージェントの現在のボクセルと、シミュレートされたエージェントによって占有されている1つ以上の前のボクセルとを判定する(ステップ702)。現在のボクセルは、シミュレートされたエージェントの現在のシミュレートされた地理的場所を特徴付ける。前のボクセルは、シミュレートされたエージェントのそれぞれの前のシミュレートされた地理的場所を特徴付ける。システムは、シミュレートされたエージェントが前のボクセルを占有した順序を判定することもできる。
【0079】
システムは、シミュレートされたエージェントの前のボクセルを同じ順序で含み、その後にシミュレートされたエージェントの現在のボクセルおよび次のボクセルが続く履歴軌跡を取得する(ステップ706)。各軌跡の次のボクセルは、軌跡内のシミュレートされたエージェントの現在のボクセルの後に来る軌跡内のボクセルである。次のボクセルは、車両がシミュレートされたエージェントの現在のボクセルを訪問した後、軌跡を特徴付けるデータを生成した、それぞれの車両が訪問した地理的場所を表す。
【0080】
システムは、シミュレートされたエージェントのシミュレートされたポリシー意思決定システムに履歴軌跡を提供する(ステップ708)。シミュレートされたポリシー意思決定システムは、軌跡を使用して、シミュレートされたエージェントの次のアクションを選択する。次のアクションを選択するための例示的なプロセスは、
図8~10を参照してより詳細に説明される。
【0081】
図8は、シミュレートされたエージェントの次のアクションを選択するための例示的なプロセス800のフロー図である。便宜上、プロセス800は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、シミュレートされたポリシー意思決定システム、例えば、本明細書に従って適切にプログラムされた、
図5のポリシー意思決定システム512は、プロセス800を実行することができる。
【0082】
システムは、地理的場所固有の軌跡データベースから履歴軌跡を受信する(ステップ802)。履歴軌跡にはそれぞれ、シミュレートされたエージェントの現在のボクセルと1つ以上の次のボクセルが含まれる。
【0083】
システムは、各軌跡から1つ以上の次のボクセルを抽出し、観察された次のボクセルにわたる分布を計算する(ステップ804)。例えば、軌跡ごとに、システムはシミュレートされたエージェントの現在のボクセルの直後にある次のボクセルを判定できる。次に、各判定された次のボクセルについて、すなわち、少なくとも1つの軌跡における次のボクセルである各ボクセルについて、システムは、判定された次のボクセルのグループにおいて次のボクセルが発生する相対頻度を判定することができる。したがって、各次のボクセルには、それぞれの次のボクセルを含む履歴軌跡の割合を特徴付ける関連する確率がある。
【0084】
システムは、観察された次のボクセルの分布から単一の次のボクセルをサンプリングする(ステップ806)。
【0085】
いくつかの実装では、システムは、次のボクセルの関連する確率に比例して次のボクセルをサンプリングする。
【0086】
他のいくつかの実装では、システムは、関連する確率が比較的低い次のボクセルからのみサンプリングする。比較的低い関連確率は、特定の閾値、例えば1%、5%、または10%を下回る関連確率である。閾値は、一般的な次のボクセル、例えば、関連する確率が40%の次のボクセルがサンプリングから除外されるように選択できる。このようにして、システムは、可能な方式、つまり、現実世界では観察されているが、一般的ではない方式で動作するシミュレートされたエージェントを含むシミュレーションを生成できる。したがって、シミュレーションを使用してトレーニングまたはテストされているソフトウェアは、実世界で観察される最も一般的な行動だけでなく、様々なトレーニング例にさらされる可能性がある。
【0087】
システムは、サンプリングされた次のボクセルに基づいて次のアクションを選択する(ステップ808)。一部の実装では、システムは、シミュレートされたエージェントが未来のタイムステップでサンプリングされた次のボクセルに移動する結果となるアクションを選択する。
【0088】
図9は、最適化ベースのプランナを使用してシミュレートされたエージェントの候補アクションを評価する例示的なプロセス900のフロー図である。便宜上、プロセス900は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、シミュレートされたポリシー意思決定システム、例えば、本明細書に従って適切にプログラムされた、
図5のポリシー意思決定システム512は、プロセス900を実行することができる。
【0089】
システムは、地理的場所固有の軌跡データベースから履歴軌跡を受信する(ステップ902)。履歴軌跡にはそれぞれ、シミュレートされたエージェントの現在のボクセルと1つ以上の次のボクセルが含まれる。
【0090】
システムは、各軌跡から1つ以上の次のボクセルを抽出し、観察された次のボクセルにわたる分布を計算する(ステップ904)。例えば、抽出された次のボクセルごとに、システムは、抽出された次のボクセルのグループ内で次のボクセルが発生する相対頻度を判定できる。したがって、次のボクセルごとに、システムは、それぞれの次のボクセルを含む履歴軌跡の割合を特徴付ける関連する確率を生成する。
【0091】
システムは、候補アクションおよび次の候補ボクセルを受信する(ステップ906)。候補アクションは、最適化ベースのプランナまたはシミュレートされたエージェントの他のシステムによって生成でき、シミュレートされたエージェントが実行する可能性のあるアクションを表す。次の候補ボクセルは、シミュレートされたエージェントが候補アクションを実行した場合にシミュレートされたエージェントが移動するボクセルである。
【0092】
システムは、次の候補ボクセルの尤度項を判定する(ステップ908)。いくつかの実装形態では、尤度項は、観察された次のボクセルにわたる分布における次の候補のボクセルの関連する確率に等しいか、より一般的にはそれに比例する。
【0093】
システムは、最適化ベースのプランナの目的関数に尤度項を含む(ステップ910)。目的関数は、最適化ベースのプランナによって最大化される関数である。いくつかの実装形態では、尤度項は、尤度項が増加するにつれて目的関数が増加するように、目的関数に含まれる。そのような実装では、目的関数は、それによって、観察された次のボクセルよりも分布に比較的高い関連確率を持つ次のボクセルをもたらすアクションに報酬を与える。このように、最適化ベースのプランナは、過去の軌跡で頻繁に観察されたアクションを選択する可能性が高くなる。
【0094】
いくつかの実装形態では、システムは、複数の候補アクションのそれぞれに対してプロセス900を実行し、次に、目的関数を最大化する候補アクションを選択する。
【0095】
図10は、シミュレートされたエージェントの次の候補アクションを識別する例示的なプロセス1000のフロー図である。便宜上、プロセス1000は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、シミュレートされたポリシー意思決定システム、例えば、本明細書に従って適切にプログラムされた、
図5のポリシー意思決定システム512は、プロセス1000を実行することができる。
【0096】
システムは、地理的場所固有の軌跡データベースから履歴軌跡を受信する(ステップ1002)。履歴軌跡にはそれぞれ、シミュレートされたエージェントの現在のボクセルと1つ以上の次のボクセルが含まれる。
【0097】
システムは、各軌跡から1つ以上の次のボクセルを抽出し、観察された次のボクセルにわたる分布を計算する(ステップ1004)。例えば、抽出された次のボクセルごとに、システムは、抽出された次のボクセルのグループ内で次のボクセルが発生する相対頻度を判定できる。したがって、各次のボクセルには、それぞれの次のボクセルを含む履歴軌跡の割合を特徴付ける関連する確率がある。
【0098】
システムは、候補アクションおよびそれぞれの次の候補ボクセルを受け取る(ステップ1006)。候補アクションは、シミュレートされたエージェントのポリシー意思決定システムによって生成でき、シミュレートされたエージェントが実行する可能性のあるアクションを表す。次の候補ボクセルは、シミュレートされたエージェントが候補アクションを実行した場合にシミュレートされたエージェントが移動するボクセルである。
【0099】
システムは、観察された次のボクセルの分布を、候補アクションと次の候補ボクセルの弁別器として使用する(1008)。言い換えると、システムは、観察された次のボクセルの分布を使用して、候補アクションに関連付けられた次の候補ボクセルがエージェントの現実的な次のボクセルであるかどうかを判定し、その判定に基づいて候補アクションを受け入れるか拒否する。いくつかの実装形態では、システムは、例えば、関連する確率が所定の閾値、例えば、0.1または0.05未満である場合、関連する次の候補ボクセルが、次の観察されたボクセルにわたる分布において比較的低い関連する確率を有する候補アクションを拒否する。特定の例として、システムは、関連付けられた次の候補ボクセルが抽出された次のボクセルのグループに表示される場合は候補アクションを受け入れ、関連付けられた次の候補ボクセルが抽出された次のボクセルのグループに表示されない場合は候補アクションを拒否できる。
【0100】
一部の実装では、システムが候補アクションを受け入れる場合、シミュレートされたエージェントが候補アクションを実行し、システムが候補アクションを受け入れない場合、エージェントのポリシー意思決定システムが新しい候補アクションを生成する。
【0101】
本明細書に記載の主題および機能的動作の実施形態は、デジタル電子回路内に、有形的に具現化されたコンピュータソフトウェアもしくはファームウェア内に、本明細書に開示された構造体およびそれらの構造上の等価物を含むコンピュータハードウェア内に、またはそれらのうちの1つ以上を組み合わせて、実装することができる。本明細書に記載の主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行するために、またはデータ処理装置の操作を制御するために有形の非一時的記憶媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはこれらのうちの1つ以上の組み合わせであってもよい。代替的に、またはさらに、プログラム命令は、人工的に生成された伝播信号、例えば、データ処理装置によって実行するために好適な受信装置に送信される情報を符号化するために生成される機械生成の電気、光、または電磁信号に符号化され得る。
【0102】
「データ処理装置」という用語は、データ処理ハードウェアを指し、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含し、それらには、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。装置はまた、例えば、GPUまたは別の種類の専用処理サブシステムなどの、既製もしくはカスタムメイドの並列処理サブシステムであってもよく、またはそれらをさらに含んでいてもよい。装置はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)などの専用論理回路であってもよく、またはそれをさらに含んでいてもよい。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の組み合わせを構成するコードを任意選択的に含むことができる。
【0103】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコード)とも称され得るか、または記載され得る、コンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、かつ独立型プログラム、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するために好適な他のユニットを含む任意の形態で導入することができる。プログラムは、ファイルシステム内のファイルに対応する場合もあるが、必ずしもそうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部、例えば、マークアップ言語文書に格納された1つ以上のスクリプト、当該プログラム専用の単一ファイル、または複数の調整ファイル、例えば、1つ以上のモジュール、サブプログラム、もしくはコードの一部を格納するファイルに格納することができる。コンピュータプログラムは、1つのコンピュータもしくは1つの場所に配置された複数のコンピュータ上で実行されるように展開されるか、または複数の場所に分散されて、データ通信ネットワークで相互接続することができる。
【0104】
1つ以上のコンピュータのシステムが特定の操作または動作を実行するように構成されているとは、システムが、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせをインストールしており、それらが動作中に、システムにその操作または動作を実行させることを意味する。1つ以上のコンピュータプログラムが特定の操作または動作を実行するように構成されているとは、1つ以上のプログラムが、データ処理装置によって実行されると、装置に操作または動作を行わせる命令を含むことを意味する。
【0105】
本明細書で使用される「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装の入出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなどの機能の符号化されたブロックであってもよい。各エンジンは、1つ以上のプロセッサと、コンピュータ可読媒体と、を含む、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の据え置き型もしくはポータブルデバイスなど、適切なタイプのコンピューティングデバイス上に実装することができる。さらに、2つ以上のエンジンは、同じコンピューティングデバイス上で、または異なるコンピューティングデバイス上で実装することができる。
【0106】
本明細書に記載のプロセスおよび論理フローは、1つ以上のプログラマブルコンピュータが1つ以上のコンピュータプログラムを実行して、入力データ上で動作し、かつ出力を生成することで機能を果たすことによって実行することができる。プロセスおよび論理フローはまた、FPGAもしくはASICなどの専用論理回路によって、または特定用途の論理回路と1つ以上のプログラムされたコンピュータとの組み合わせによって実行することができる。
【0107】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは専用のマイクロプロセッサあるいはその両方、または他の種類の中央処理装置に基づくことができる。概して、中央処理装置は、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を遂行または実行するための中央処理装置ならびに命令およびデータを格納するための1つ以上のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完されるか、またはその回路に組み込むことができる。概して、コンピュータはまた、例えば、磁気ディスク、光磁気ディスク、もしくは、光ディスクなど、データを格納するための1つ以上の大容量記憶デバイスを含むか、または、それらかとの間でデータを送受信するように動作可能に結合されることになる。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、例えばほんの数例を挙げると、携帯電話、電子手帳(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブなどに組み込むことができる。
【0108】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、不揮発性メモリ、媒体、およびメモリデバイスのあらゆる形態を含み、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたは取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。
【0109】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、コンピュータ上で実施することができ、コンピュータは、ユーザに情報を表示するための表示デバイス、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタ、ならびにキーボードおよびマウス、トラックボールなどのポインティングデバイス、またはユーザがコンピュータに入力を提供することができる存在感応ディスプレイもしくは他の表面を有する。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザが使用するデバイスにドキュメントを送信すること、およびそれから受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをスマートフォンなどのパーソナルデバイスに送信し、メッセージアプリケーションを実行し、代わりにユーザから応答メッセージを受信することにより、ユーザと対話することができる。
【0110】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、例えば、データサーバとして含むか、またはミドルウェアコンポーネントを、例えば、アプリケーションサーバとして含むか、またはフロントエンドコンポーネント、例えば、それらを経由してユーザが本明細書に記載の主題の実装形態と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有する、クライアントコンピュータを含む、コンピューティングシステム、あるいは1つ以上のかかるバックエンド、ミドルウェア、もしくはフロントエンドのコンポーネントの任意の組み合わせに実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットが含まれる。
【0111】
コンピューティングシステムには、クライアントとサーバとを含むことができる。クライアントおよびサーバは概して、互いにリモートであり、典型的には通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータで実行され、かつ互いにクライアントとサーバとの関係を有している、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、データ、例えば、HTMLページを、ユーザデバイスに、例えば、クライアントとして動作するデバイスと対話するユーザにデータを表示し、ユーザからのユーザ入力を受信する目的で、送信する。ユーザデバイスで生成されたデータは、例えば、ユーザ対話の結果は、デバイスからサーバで受信することができる。
【0112】
上記の実施形態に加えて、以下の実施形態も革新的である。
実施形態1は、方法であって、
環境内のエージェントの現在の地理的場所を判定することと、
環境内の複数の地理的場所の履歴データを維持するデータベースから、エージェントの現在の地理的場所の近くにある地理的場所の履歴データを取得することであって、各地理的場所の履歴データが、環境をナビゲートする車両によってキャプチャされた地理的場所のセンサ読み取りから少なくとも部分的に生成された観察を含む、取得することと、
取得された履歴データのエンベッティングを生成することと、
エージェントによって実行されるアクションを選択するポリシー意思決定システムへの入力としてエンベッティングを提供することと、を含む、方法である。
実施形態2は、現在の地理的場所が、環境に課せられたボクセルグリッドにおける特定のボクセルである、実施形態1に記載の方法である。
実施形態3は、現在の地理的場所の近くの地理的場所が、前記特定のボクセルと、前記特定のボクセルを取り囲む周囲のボクセルのセットとを含む、実施形態2に記載の方法である。
実施形態4は、エージェントが自律型車両である、実施形態1~3のいずれか1つに記載の方法である。
実施形態5は、エージェントが、環境のシミュレートされたバージョンで使用されるシミュレートされたエージェントである、実施形態1~3のいずれか1つに記載の方法である。
実施形態6は、ポリシー意思決定システムが、最適化ベースのプランナである、実施形態1~5のいずれか1つに記載の方法である。
実施形態7は、ポリシー意思決定システムが、機械学習されたニューラルネットワークプランナである、実施形態1~5のいずれか1つに記載の方法である。
実施形態8は、エンベッティングを生成することが、
取得された履歴データの観察から統計を計算することと、
計算された統計からエンベッティングを生成することと、を含む、実施形態7に記載の方法である。
実施形態9は、エンベッティングを生成することが、
エンベッティングニューラルネットワークを使用して取得した履歴データを処理して、履歴データエンベッティングを生成することと、
現在の地理的場所の近くにある各地理的場所について、地理的場所に対応する各履歴データエンベッティングを組み合わせて、地理的場所の地理的場所エンベッティングを生成することと、
地理的場所エンベッティングを組み合わせて、エンベッティングを生成することと、を含む、実施形態7または8に記載の方法である。
実施形態10は、履歴データのエンベッティングをポリシー意思決定システムに提供することが、履歴データのエンベッティングをポリシー意思決定システムの弁別器への入力として提供することを含む、実施形態1~9のいずれか1つに記載の方法である。
実施形態11は、各地理的場所の履歴データにおける各観察が、地理的場所が車両によって遭遇されたこと、およびオブジェクトが車両のセンサによって地理的場所において検出されたかどうかを識別する、実施形態1~10のいずれか1つに記載の方法である。
実施形態12は、オブジェクトが車両のセンサによって地理的場所において検出されたとき、観察が、検出されたオブジェクトの1つ以上の特性を識別し、1つ以上の特性が、オブジェクトの速度、オブジェクトの加速度、オブジェクトの進行方向、オブジェクトのオブジェクトタイプ、オブジェクトのサイズ、またはオブジェクトの曲率情報のうちの1つ以上を含む、実施形態11に記載の方法である。
実施形態13は、履歴データを取得することは、エージェントが現在の地理的場所にあるときに、環境の状態の1つ以上の特性が、環境の現在の状態の特性と一致するときに生成された履歴データのみを取得することを含む、実施形態1~12のいずれか1つに記載方法である。
実施形態14は、方法であって、
環境内のエージェントの現在の地理的場所を判定することと、
環境内の複数の地理的場所の履歴データを維持するデータベースから、エージェントの現在の地理的場所の履歴データを取得することであって、各地理的場所の履歴データが、環境をナビゲートする車両のセンサによって地理的場所で検出された1つ以上のオブジェクトの各々のそれぞれの観察を含み、各観察が、少なくとも(i)地理的場所にあったオブジェクト、および(ii)オブジェクトが地理的場所にあった後に移動した次の地理的場所を識別する、取得することと、
少なくとも部分的に履歴データに基づいて、エージェントの未来の軌跡を生成することと、を含む、方法である。
実施形態15は、エージェントが、環境のシミュレートされたバージョンで使用されるシミュレートされたエージェントである、実施形態14に記載の方法である。
実施形態16は、現在の地理的場所が、環境に課せられた確立されたボクセルグリッド内の特定のボクセルである、実施形態14または15のいずれか1つに記載の方法である。
実施形態17は、未来の軌跡を生成することが、
各それぞれの観察について、オブジェクトが地理的場所にいた後に移動した次の地理的場所を識別することと、
観察された次の地理的場所の分布を計算することと、を含む、実施形態14~16のいずれか1つに記載の方法である。
実施形態18は、未来の軌跡を生成することが、
観察された次の地理的場所にわたる分布から単一の次の地理的場所をサンプリングすることと、
未来の軌跡の次の場所として次の地理的場所を選択することと、を含む、実施形態17に記載の方法である。
実施形態19は、観察された次の地理的場所にわたる分布から単一の次の地理的場所をサンプリングすることが、比較的低い関連確率で観察された次の地理的場所からサンプリングすることを含む、実施形態18に記載の方法である。
実施形態20は、未来の軌跡を生成することが、
エージェントの未来の軌跡候補を取得することと、
観察された次の地理的場所の分布を使用して、候補の未来の軌跡がエージェントの現実的な未来の軌跡であるかどうかを判定することと、をさらに含む、実施形態17~19のいずれか1つに記載の方法。
実施形態21は、履歴データに少なくとも部分的に基づいてエージェントの将来の軌跡を生成することが、エージェントによって実行されるアクションを選択する最適化ベースのプランナを使用して未来の軌跡を生成して、目的関数を最適化することを含む、実施形態17~20のいずれか1つに記載の方法。
実施形態22は、目的関数が、未来の軌跡における次の地理的場所が履歴データに従ってどれほどありそうかを測定する第1の項を含み、最適化ベースのプランナが、観察された次の地理的場所にわたる分布に基づいて異なるアクションの第1の項の値を判定する、実施形態21に記載の方法。
実施形態23は、各観察が、(iii)オブジェクトが現在の地理的場所に移動する前にあった1つ以上の以前の地理的場所も識別し、履歴データを取得することが、エージェントの以前の地理的場所に一致する1つ以上の以前の地理的場所を識別する観察のみを取得することを含む、実施形態14~22のいずれか1つに記載の方法である。
実施形態24は、履歴データを取得することが、環境の状態の1つ以上の特性が、エージェントが現在の地理的場所にあるときに、環境の現在の状態の特性と一致するときに生成された履歴データのみを取得することを含む、実施形態14~23のいずれか1つに記載の方法である。
実施形態25は、1つ以上のコンピュータと、1つ以上のコンピュータによって実行されたとき、実施形態1~24のいずれか1つに記載される方法を1つ以上のコンピュータに実行させるように動作可能な命令を記憶する1つ以上の記憶デバイスと、を備える、システムである。
実施形態26は、コンピュータプログラムで符号化された1つ以上の非一時的なコンピュータ記憶媒体であり、プログラムが、データ処理装置によって実行されるときに、実施形態1~24のいずれか1つに記載の方法をデータ処理装置に実行させるように動作可能な命令を含む、コンピュータ記憶媒体である。
【0113】
本明細書は多くの特定の実装の詳細を含んでいるが、これらは、いずれかの発明の範囲、または請求され得る事項の範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有の特徴に関する説明として解釈されるべきである。別個の実施形態の文脈で本明細書に記載された特定の特徴を、単一の実施形態で組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で、別個に、または任意の好適な部分組み合わせで実装することもできる。さらに、特徴は、特定の組み合わせで作用するものとして上記に説明され、当初はそのように特許請求されることさえあるが、場合によっては、特許請求された組み合わせからの1つ以上の特徴が、その組み合わせから削除される可能性もあり、特許請求された組み合わせが、部分組み合わせまたは部分組み合わせの変形を対象とすることもある。
【0114】
同様に、動作が特定の順序で図面に描写されているが、これは、所望の結果を達成するために、かかる動作がその示された特定の順序、もしくは一連の順序で実行されるべきであること、または例証したすべての動作が実行されるべきであることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上記の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてかかる分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品内に共に一体化され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0115】
主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内に存在する。例えば、特許請求の範囲に列挙された動作は、異なる順序で実行することができ、望ましい結果を依然として達成することができる。一例として、添付の図に描写されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または連続した順序を必要としない。特定の場合によっては、マルチタスクおよび並列処理が有利なことがある。