IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウェイモ エルエルシーの特許一覧

特許7459224アンカー軌道を使用したエージェント軌道予測
<>
  • 特許-アンカー軌道を使用したエージェント軌道予測 図1
  • 特許-アンカー軌道を使用したエージェント軌道予測 図2
  • 特許-アンカー軌道を使用したエージェント軌道予測 図3
  • 特許-アンカー軌道を使用したエージェント軌道予測 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-22
(45)【発行日】2024-04-01
(54)【発明の名称】アンカー軌道を使用したエージェント軌道予測
(51)【国際特許分類】
   G06V 20/56 20220101AFI20240325BHJP
【FI】
G06V20/56
【請求項の数】 15
(21)【出願番号】P 2022500054
(86)(22)【出願日】2020-07-02
(65)【公表番号】
(43)【公表日】2022-09-07
(86)【国際出願番号】 US2020040682
(87)【国際公開番号】W WO2021003379
(87)【国際公開日】2021-01-07
【審査請求日】2022-02-25
(31)【優先権主張番号】62/870,399
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】317015065
【氏名又は名称】ウェイモ エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】チャイ,ユーニン
(72)【発明者】
【氏名】サップ,ベンジャミン
(72)【発明者】
【氏名】バンサール,マヤンク
(72)【発明者】
【氏名】アングエロフ,ドラゴミール
【審査官】伊知地 和之
(56)【参考文献】
【文献】米国特許出願公開第2019/0072973(US,A1)
【文献】特許第4062353(JP,B1)
【文献】国際公開第2019/104112(WO,A1)
【文献】国際公開第2019/020103(WO,A1)
【文献】特開2017-211691(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 20/56
(57)【特許請求の範囲】
【請求項1】
1つ以上のデータ処理装置によって実行される方法であって、
現在の時点までの環境における車両の近傍のエージェントを特徴付ける埋め込みを取得することと、
軌道予測ニューラルネットワークを使用して前記埋め込みを処理して、前記現在の時点の後の前記エージェントの将来の軌道を特徴付ける軌道予測出力を生成することであって、
前記軌道予測出力が、前記エージェントの前記将来の軌道と、複数の既定のアンカー軌道の各々との予測類似度を特徴付けるデータを含み、前記複数の既定のアンカー軌道は、前記エージェントの以前の軌道を特徴付けるデータまたは前記環境内の現在のシーンに関する他の情報から独立しており、
各アンカー軌道が、前記エージェントの可能な将来の軌道を特徴付け、各々がそれぞれの将来の時点での前記エージェントの可能な位置に対応する、前記環境内の複数のウェイポイント空間的場所のシーケンスを指定するデータを含、生成することと、
前記軌道予測出力を前記車両の計画システムに提供して、前記車両の将来の軌道を計画する計画決定を生成することと、を含む、方法。
【請求項2】
前記軌道予測出力が、前記複数のアンカー軌道の各々について、
前記アンカー軌道の各ウェイポイント空間的場所について、前記エージェントが前記ウェイポイント空間的場所に対応する前記将来の時点で前記ウェイポイント空間的場所の近傍のそれぞれの空間的位置を占めるそれぞれの可能性を定義する、前記ウェイポイント空間的場所に依存する確率分布を特徴付けるデータをさらに含む、請求項1に記載の方法。
【請求項3】
前記ウェイポイント空間的場所に依存する前記確率分布を特徴付ける前記データが、前記ウェイポイント空間的場所に依存するパラメトリック確率分布のパラメータを定義するデータを含む、請求項に記載の方法。
【請求項4】
前記ウェイポイント空間的場所に依存する前記パラメトリック確率分布が、正規確率分布であり、前記正規確率分布の前記パラメータを定義する前記データが、(i)前記ウェイポイント空間的場所からの前記正規確率分布の平均のオフセットを指定するオフセットパラメータ、および(ii)前記正規確率分布の共分散パラメータを含む、請求項に記載の方法。
【請求項5】
前記軌道予測ニューラルネットワークが、1つ以上の畳み込みニューラルネットワーク層を含む、請求項1~のいずれか一項に記載の方法。
【請求項6】
前記軌道予測ニューラルネットワークが、1つ以上の再帰型ニューラルネットワーク層を含む、請求項1~のいずれか一項に記載の方法。
【請求項7】
前記現在の時点までの前記環境における前記車両の近傍の前記エージェントを特徴付ける前記埋め込みを取得することが、
埋め込みニューラルネットワークを使用して、前記現在の時点までの前記環境内の前記エージェントの以前の軌道を特徴付ける埋め込みニューラルネットワーク入力を処理して、埋め込みニューラルネットワーク出力を生成することと、
前記エージェントに対応する前記埋め込みニューラルネットワーク出力の部分をクロップすることと、
前記埋め込みニューラルネットワーク出力のクロップされた前記部分に基づいて、前記エージェントを特徴付ける前記埋め込みを判定することと、を含む、請求項1~のいずれか一項に記載の方法。
【請求項8】
前記埋め込みニューラルネットワーク入力が、前記現在の時点までの前記環境内の1つ以上の他のエージェントの軌道をさらに特徴付ける、請求項に記載の方法。
【請求項9】
前記埋め込みニューラルネットワーク入力が、(i)信号機状態を含む前記環境の動的な特徴、ならびに(ii)車線の接続性、車線の種類、一端停止線、および制限速度のうちの1つ以上を含む、前記環境の静的な特徴をさらに特徴付ける、請求項またはに記載の方法。
【請求項10】
前記埋め込みニューラルネットワーク入力および前記埋め込みニューラルネットワーク出力が各々、トップダウンの視点から前記環境を特徴付けるそれぞれの三次元データ表現を含む、請求項のいずれか一項に記載の方法。
【請求項11】
前記埋め込みニューラルネットワークが、1つ以上の畳み込みニューラルネットワーク層を含む、請求項10のいずれか一項に記載の方法。
【請求項12】
前記埋め込みニューラルネットワーク出力の前記クロップされた部分に基づいて前記エージェントを特徴付ける前記埋め込みを判定することが、
前記埋め込みニューラルネットワーク出力の前記クロップされた部分をエージェント中心の座標系に対して回転させることを含む、請求項11のいずれか一項に記載の方法。
【請求項13】
前記アンカー軌道を既定することが、エージェント軌道のトレーニングセットからのエージェント軌道をクラスタ化することを含む、請求項に記載の方法。
【請求項14】
システムであって、
1つ以上のコンピュータと、
前記1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに、請求項1~13のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を記憶している1つ以上の記憶デバイスと、を備える、システム。
【請求項15】
1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに、請求項1~13のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を記憶している、1つ以上の非一時的コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、環境内のエージェントの将来の軌道を予測することに関する。
【背景技術】
【0002】
環境は実世界の環境であり得、エージェントは、例えば、環境内の車両であり得る。エージェントの将来の軌道を予測することは、自律型車両などによる運動計画に必要なタスクである。
【0003】
自律型車両は、自動運転する車、船舶、および航空機を含む。自律型車両は、様々な車載センサおよびコンピュータシステムを使用して近くの物体を検出し、その検出を使用して制御およびナビゲーション決定を行う。
【0004】
一部の自律型車両は、ニューラルネットワーク、他のタイプの機械学習モデル、またはその両方を様々な予測タスク、例えば、画像内の物体分類のために実装する車載コンピュータシステムを有する。例えば、ニューラルネットワークを使用して、車載カメラで撮像された画像が近くの車の画像である可能性が高いと判定することができる。ニューラルネットワーク、略して、ネットワークは、複数の操作の層を使用して、1つ以上の入力から1つ以上の出力を予測する機械学習モデルである。ニューラルネットワークは、通常、入力層と出力層との間に位置する1つ以上の隠れ層を含む。各層の出力は、ネットワーク内の別の層、例えば、次の隠れ層または出力層への入力として使用される。
【0005】
ニューラルネットワークの各層は、層への入力に対して実行される1つ以上の変換操作を指定する。一部のニューラルネットワーク層は、ニューロンと称される操作を有する。各ニューロンは1つ以上の入力を受信し、別のニューラルネットワーク層で受信される出力を生成する。多くの場合、各ニューロンは、他のニューロンから入力を受信し、各ニューロンは1つ以上の他のニューロンに出力を提供する。
【0006】
ニューラルネットワークのアーキテクチャは、ネットワークに含まれる層およびその特性、ならびにネットワークの各層のニューロンの接続方法を指定する。換言すれば、アーキテクチャは、どの層がそれらの出力をどの他の層への入力として提供するか、およびどのようにその出力を提供するかを指定する。
【0007】
各層の変換操作は、変換操作を実装するソフトウェアモジュールがインストールされたコンピュータによって実行される。したがって、操作を実行するとして記述されている層は、層の変換操作を実装するコンピュータが操作を実行することを意味する。
【0008】
各層は、層のパラメータセットの現在の値を使用して1つ以上の出力を生成する。したがって、ニューラルネットワークをトレーニングすることは、継続的に、入力に対する順方向パスの実行、勾配値の計算、および計算された勾配値を使用した、例えば、勾配降下を使用した各層のパラメータセットの現在の値の更新を伴う。ニューラルネットワークがトレーニングされると、最終的なパラメータセットを使用して、生成システムで予測を行うことができる。
【発明の概要】
【0009】
本明細書は、概して、環境内のエージェントの将来の軌道を予測する、1つ以上の場所にある1つ以上のコンピュータ上のコンピュータプログラムとして実装されるシステムを説明する。
【0010】
第1の態様によれば、環境内の車両の近傍のエージェントの将来の軌道を予測するためのシステムが提供される。システムは、エージェントを特徴付ける埋め込みを取得し、軌道予測ニューラルネットワークを使用して埋め込みを処理して、現在の時点の後のエージェントの将来の軌道を特徴付ける軌道予測出力を生成する。軌道予測出力は、エージェントの将来の軌道と、複数のアンカー軌道の各々との予測類似度を特徴付けるデータを含む。各アンカー軌道は、エージェントの可能な将来の軌道を特徴付け、各々がそれぞれの将来の時点に対応する、環境内の複数のウェイポイント空間的場所のシーケンスを指定するデータを含む。システムは、車両の計画システムに軌道予測出力を提供して、車両の将来の軌道を計画する計画決定を生成する。
【0011】
本明細書に記載の主題は、特定の実施形態において、以下の利点のうちの1つ以上を実現するように実施することができる。
【0012】
本明細書において説明されているシステムは、エージェントの将来の軌道と、複数の「アンカー」軌道の各々との予測類似度を特徴付ける軌道予測出力を生成することができる。各アンカー軌道は、例えば、Uターンの実行、車線変更、または停止など、エージェントの可能性のある高レベルの意図に暗黙的に対応する。各アンカー軌道について、軌道予測出力は、エージェントがアンカー軌道に対応する意図をどのように実行することができるかの不確実性をさらに特徴付けることができる。
【0013】
システムは、ニューラルネットワークモデルを通じた1回の順方向パスを使用して、エージェントの軌道予測出力を効率的に生成することができ、軌道予測出力は、例えば、確率分布パラメータのセットによってコンパクトに表すことができる。対照的に、一部の従来の軌道予測システムは、本明細書で説明されるシステムによって生成される軌道予測出力を表すために必要なパラメータの数よりも数桁大きいパラメータの数によって表される出力を生成する。さらに、一部の従来の軌道システムは、単一の軌道予測出力を生成するのではなく、エージェントの複数の異なる可能な将来の軌道を特徴付ける出力を繰り返し生成する。したがって、本明細書において説明されるシステムは、単一のコンパクトな軌道予測出力を生成することにより、消費する計算リソース(例えば、メモリリソース)を、一部の従来の軌道予測システムよりも少なくすることができる。
【0014】
本明細書において説明されているシステムは、一部の従来の軌道予測システムよりも正確にエージェントの将来の軌道を特徴付ける軌道予測出力を生成することができる。例えば、エージェントの将来の軌道に固有の不確実性を特徴付けることにより、システムは、エージェントの単一の最も可能性の高い将来の軌道を予測する一部の従来のシステムよりも正確に軌道予測出力を生成することができる。別の例として、可能な将来の軌道の分布のモードを捕捉するアンカー軌道のセットに基づいて軌道予測出力を生成することにより、システムは、一部の従来のシステムで経験されるような「モード崩壊」を回避することができる。モード崩壊を経験する従来のシステムは、エージェントの将来の軌道の単一の決定論的推定とほとんど異ならない、エージェントの複数の予測される将来の軌道を生成することができる。
【0015】
本明細書の主題の1つ以上の実施形態の詳細を、添付の図面および以下の説明に記載する。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から、明らかになるであろう。
【図面の簡単な説明】
【0016】
図1】例示的なシステムの図である。
図2】エージェントの軌道予測の生成の図である。
図3】軌道予測出力を生成するための例示的なプロセスの流れ図である。
図4】軌道予測システムをトレーニングするための例示的なプロセスの流れ図である。
【0017】
様々な図面の中の同様の参照番号および名称は、同様の要素を示す。
【発明を実施するための形態】
【0018】
本明細書は、自律型車両または半自律型車両などの車両が、本明細書において「軌道予測システム」と称される、トレーニングされた機械学習モデルを使用して、環境内の車両の近傍の1つ以上の周囲のエージェントの各々の、それぞれの軌道予測出力をどのように生成することができるかを説明する。
【0019】
本明細書では、「周囲のエージェント」は、一般性を失うことなく、車両、自転車、歩行者、船舶、ドローン、または環境内の任意の他の移動物体を指すことができる。
【0020】
本明細書では、車両によって生成されたトレーニング例を使用して、軌道予測システムを効果的にトレーニングし、どのように正確かつ確実に予測を行うことができるかについても説明する。
【0021】
図1は、例示的なシステム100の図である。システム100は、車載システム110と、トレーニングシステム120と、を含む。
【0022】
車載システム110は、車両102に車載されて配置されている。図1の車両102は自動車として図示されているが、車載システム102は、任意の適切なタイプの車両に車載して配置することができる。車両102は、環境内をナビゲートするために完全自律型運転決定を判定および実行する完全自律型車両であり得る。車両102はまた、人間の運転者を支援するために予測を使用する半自律型車両であり得る。例えば、人間の運転者が別の車両と衝突しそうであることを予測が示す場合、車両102は、自律的にブレーキをかけることができる。
【0023】
車載システム110は、1つ以上のセンササブシステム130を含む。センササブシステム130は、電磁放射の反射を受信する構成要素の組み合わせ、例えば、レーザ光の反射を検出するライダシステム、無線波の反射を検出するレーダシステム、および可視光の反射を検出するカメラシステムを含む。
【0024】
所与のセンサによって生成されたセンサデータは、概して、反射された放射の距離、方向、および強度を示す。例えば、センサは、特定の方向に電磁放射の1つ以上のパルスを送信することができ、反射の強度と反射が受信された時間を測定することができる。距離は、パルスとそれに対応する反射の間にかかった時間を判定することによって計算することができる。センサは、角度、方位角、またはその両方で特定の空間を継続的に掃引することができる。例えば、方位角での掃引は、センサが同じ視線に沿った複数の物体を検出することを可能にし得る。
【0025】
車両102のセンササブシステム130または他の構成要素はまた、1つ以上のセンサからの1つ以上の生のセンサ測定値のグループを、別のエージェントの測度であるとして分類することもできる。センサ測定値のグループは、捕捉されているセンサ測定値の種類に応じて、様々な方法のいずれかで表すことができる。例えば、生のレーザセンサ測定値の各グループは、3次元の点群として表すことができ、各点が、強度と、特定の二次元または三次元座標空間内の位置と、を有する。いくつかの実装態様では、位置は、範囲と標高とのペアとして表される。カメラセンサ測定値の各グループは、画像パッチ、例えば、RGB画像パッチとして表すことができる。
【0026】
センササブシステム130が、生のセンサ測定値の1つ以上のグループをそれぞれの他のエージェントの測度として分類すると、センササブシステム130は、生のセンサ測定値を生データ132のセットにコンパイルし、生データ132をデータ表現システム140に送信することができる。
【0027】
同じく車両102に車載されているデータ表現システム140は、センサシステム130から生のセンサデータ132を受信し、シーンデータ142を生成する。シーンデータ142は、現在の時点での車両102を取り巻く環境の現在の状態を特徴付ける。
【0028】
例えば、シーンデータは、環境内のすべての周囲のエージェントについて、現在の時点での現在の状態、および、1つ以上のそれぞれの以前の時点での以前の状態を特徴付けることができる。換言すれば、シーンデータは、環境内のすべての周囲のエージェントについての、現在の時点までの環境内のエージェントの以前の軌道を特徴付けるデータを含むことができる。ある時点でのエージェントの状態は、その時点でのエージェントの場所、および、任意選択的に、その時点での運動パラメータの所定のセットの値を含むことができる。特定の例として、運動パラメータは、エージェントの進行方向、エージェントの速度、および/またはエージェントの加速度を含むことができる。いくつかの実装態様では、シーンデータはまた、現在の時点での車両の現在の状態、および、1つ以上のそれぞれの以前の時点での車両の以前の状態を特徴付けるデータも含む。一部の実装態様では、シーンデータは、環境の特徴を特徴付けるデータも含む。これらの特徴は、(i)現在の時点での、例えば、信号機の状態などの環境の動的な特徴、(ii)例えば、車線の接続性、車線の種類、一端停止線、制限速度などのうちの1つ以上を特徴付ける道路グラフデータなどの環境の静的な特徴、または(iii)両方を含むことができる。
【0029】
特定の例として、シーンデータは、トップダウンの視点から環境を特徴付ける三次元データ表現とすることができる。換言すれば、シーンデータは、その時点での環境内の周囲のエージェントの描写を含む、各時点についての環境の1つ以上のトップダウンレンダリング画像を含むことができる。例えば、シーンデータは、各時点の環境の単一のトップダウンレンダリング画像を含むことができ、所与の時点のトップダウンレンダリング画像では、周囲のエージェントは、所与の時点でのそれらの場所および動きに基づいて、トップダウンレンダリング画像内の境界ボックスとして描写することができる。境界ボックスは、それぞれの物体の境界またはエッジを識別する画像内のピクセルのボックスである。いくつかの実装態様では、トップダウンレンダリング画像はまた、現在の時点での道路車線および他の道路グラフ特徴または環境の他の機能を描写するための追加のレンダリング画像も含む。
【0030】
データ表現システム140は、同じく車両102に車載されている軌道予測システム150にシーンデータ142を提供する。
【0031】
軌道予測システム150は、シーンデータ142を処理して、周囲のエージェントのうちの1つ以上の各々について、それぞれの軌道予測出力152を生成する。所与のエージェントの軌道予測出力152は、現在の時点の後のエージェントの将来の軌道を特徴付ける。
【0032】
より詳細には、所与のエージェントの軌道予測出力152は、エージェントの将来の軌道と、複数のアンカー軌道の各々との予測類似度を特徴付けるデータを含む。各アンカー軌道は、現在の時点の後のエージェントの異なる可能な将来の軌道を特徴付け、各々が、将来の時点の後であるそれぞれの将来の時点でのエージェントの可能な位置に対応する環境内の複数のウェイポイント空間的場所のシーケンスを指定するデータを含む。換言すれば、各アンカー軌道は、現在の時点の後に周囲のエージェントが通過し得る、環境内のウェイポイント場所の異なるシーケンスを識別する。
【0033】
軌道予測出力の生成については、図2および図3を参照して下記により詳細に説明する。
【0034】
車載システム110はまた、計画システム160も含む。計画システム160は、例えば、車両102が将来通る経路を特徴付ける計画車両経路を生成することによって、車両102の自律的または半自律的な運転決定を行うことができる。
【0035】
車載システム100は、軌道予測システム150によって生成された軌道予測出力152を、例えば、計画システム160および/またはユーザインターフェースシステム165などの、車両102の他の1つ以上の車載システムに提供することができる。
【0036】
計画システム160が軌道予測出力152を受信すると、計画システム160は、軌道予測出力152を使用して、車両の将来の軌道を計画する計画決定を生成する、すなわち、新しい計画車両経路を生成することができる。例えば、軌道予測出力152は、特定の周囲のエージェントが特定の将来の時点で車両102の前に割り込み、潜在的に衝突を引き起こす可能性があるという予測を含み得る。この例では、計画システム160は、潜在的な衝突を回避する新しい計画車両経路を生成し、例えば、車両のステアリングを自律的に制御することによって、車両102を新しい計画経路に従わせ、潜在的な衝突を回避することができる。
【0037】
ユーザインターフェースシステム165が軌道予測出力152を受信すると、ユーザインターフェースシステム165は、軌道予測出力152を使用して、運転者が車両102を安全に操作するのを支援するための情報を、車両102の運転者に提示することができる。ユーザインターフェースシステム165は、任意の適切な手段によって、例えば、車両102のスピーカシステムを通じて送信されるオーディオメッセージによって、またはエージェント内の視覚的表示システム(例えば、車両102のダッシュボード上のLCDディスプレイ)に表示される警告によって、エージェント102の運転者に情報を提示することができる。特定の例では、軌道予測出力152は、特定の周囲のエージェントが車両102の前に割り込み、潜在的に衝突を引き起こす可能性があるという予測を含み得る。この例では、ユーザインターフェースシステム165は、衝突を回避するために車両102の軌道を調整するように指示する警告メッセージを車両102の運転者に提示するか、または特定の周囲のエージェントと衝突する可能性があることを車両102の運転者に通知することができる。
【0038】
軌道予測出力152を生成するために、軌道予測システム150は、トレーニングシステム120内の軌道予測モデルパラメータストア190から取得される、トレーニングされたパラメータ値195、すなわち、軌道予測システム150のトレーニングされたモデルパラメータ値を使用することができる。
【0039】
トレーニングシステム120は、通常、1つ以上の場所に数百または数千のコンピュータを有する分散型コンピューティングシステムであり得るデータセンタ124内でホストされる。
【0040】
トレーニングシステム120は、軌道予測システムをトレーニングするために、すなわち、軌道予測システム150のトレーニングされたパラメータ値195を判定するために使用されるすべてのトレーニングデータを記憶するトレーニングデータストア170を含む。トレーニングデータストア170は、実世界で動作するエージェントから生のトレーニング例を受信する。例えば、トレーニングデータストア170は、車両102およびトレーニングシステム120と通信している1つ以上の他のエージェントから生のトレーニング例155を受信することができる。生のトレーニング例155は、トレーニングシステム120によって処理されて、新しいトレーニング例を生成することができる。生のトレーニング例155は、新しいトレーニング例の入力として使用することができるシーンデータ、すなわち、シーンデータ142のようなシーンデータを含むことができる。生のトレーニング例155はまた、1つ以上の将来の時点での車両102を取り巻く環境の状態を特徴付ける結果データを含むことができる。この結果データを使用して、シーンデータによって特徴付けられる時点での車両の近傍の1つ以上のエージェントのグラウンドトゥルース軌道を生成することができる。各グラウンドトゥルース軌道は、将来の時点で対応するエージェントが通過する実際の軌道(結果データから導出されるもの)を識別する。例えば、グラウンドトゥルース軌道は、エージェントが複数の将来の時点の各々で移動するエージェント中心の座標系の空間的場所を識別することができる。
【0041】
トレーニングデータストア170は、同じくトレーニングシステム120においてホストされるトレーニングエンジン180にトレーニング例175を提供する。トレーニングエンジン180は、トレーニング例175を使用して、軌道予測システム150によって使用されるモデルパラメータを更新し、更新されたモデルパラメータ185を軌道予測モデルパラメータストア190に提供する。軌道予測システム150のパラメータ値が完全にトレーニングされると、トレーニングシステム120は、例えば、有線またはワイヤレス接続を介して、トレーニングされたパラメータ値195を軌道予測システム150に送信することができる。
【0042】
軌道予測システム150のトレーニングは、図4を参照して下記により詳細に説明される。
【0043】
図2は、埋め込みニューラルネットワーク210および軌道予測ニューラルネットワーク220を使用した、車両の近傍のエージェントの軌道予測の生成の図である。例えば、ニューラルネットワークは、車両に車載された軌道予測システム、例えば、図1に描写される軌道予測システム150の一部とすることができる。
【0044】
埋め込みニューラルネットワーク210は、車両を取り巻く環境の現在の状態を特徴付ける入力シーンデータ202(埋め込みニューラルネットワーク入力とも称される)を受信する。
【0045】
埋め込みニューラルネットワーク210は、シーンデータ202を処理して、シーン内の個々のエージェントの状態およびエージェント間の相互作用を符号化するシーン特徴212を出力として生成するフィードフォワードニューラルネットワークである。シーン特徴212は、埋め込みニューラルネットワーク出力とも称される。
【0046】
例えば、シーンデータ202がトップダウンの視点から環境を特徴付ける三次元データ表現である場合、埋め込みニューラルネットワーク210は、畳み込みニューラルネットワーク、すなわち、1つ以上の畳み込みニューラルネットワーク層を含むニューラルネットワークであり得、シーン特徴212もまた、トップダウンの視点から環境を特徴付ける三次元データ表現であり得る。例えば、シーンデータ202およびシーン特徴212は、同じ空間解像度を有することができるが、シーン特徴212は、より多数の深度チャネルを有することができる。別の例として、シーンデータ202およびシーン特徴212は、異なる空間解像度を有することができ、シーン特徴212は、より多数の深度チャネルを有する。特定の例として、埋め込みニューラルネットワーク210は、ブロックの入力からの残りの接続が各々に後続する畳み込みニューラルネットワーク層の複数のブロックを含むResNetアーキテクチャを有することができる。
【0047】
次に、システムは、シーン特徴212から、軌道予測が生成されるべきである車両の近傍の各エージェントのそれぞれの埋め込みを生成することができる。エージェントの埋め込みは、現在の時点までのエージェントを特徴付ける。
【0048】
エージェントの埋め込みを生成するために、システムは、シーン特徴212からの「指向性クロップ」214を実行する。特に、システムは、エージェントに対応するシーン特徴212の部分をクロップし、シーン特徴212のクロップされた部分に基づいて、エージェントを特徴付ける埋め込みを判定する。所与のエージェントに対応するシーン特徴212の部分は、例えば、シーン特徴212内のエージェントの場所を中心とするシーン特徴212の固定サイズ部分であり得る。より詳細には、システムはシーン特徴212のクロップされた部分をエージェント中心の座標系に対して回転させて埋め込みを生成するため、クロップは「指向性」クロップと称される。例えば、システムは微分可能双線形ワーピングを使用してこの回転を実行することができる。
【0049】
関心のあるすべてのエージェントのすべての埋め込みは、シーン特徴212から生成されるため、システムは、埋め込みニューラルネットワーク210を通る単一の順方向パスのみを使用して、関心のあるすべてのエージェントの埋め込みを生成することができる。すなわち、所与のエージェントの埋め込みニューラルネットワーク入力は、所与のエージェントを特徴付けるだけでなく、現在の時点までの環境内の他の1つ以上のエージェントの軌道もさらに特徴付け、したがって、埋め込みニューラルネットワーク210を通る単一の順方向パスを使用して、すべてのエージェントの埋め込みを生成することができる。
【0050】
所与のエージェントの軌道予測を生成するために、システムは、軌道予測ニューラルネットワーク220(図2では「エージェント中心CNN」と称される)を使用して、エージェントの埋め込みを処理する。
【0051】
軌道予測ニューラルネットワーク220は、埋め込みを処理して、エージェントの将来の軌道と、複数のアンカー軌道の各々との、すなわち、固定数のアンカー軌道の各々との予測類似度を特徴付けるデータを含む軌道予測出力を生成するように構成されたニューラルネットワークである。
【0052】
各アンカー軌道は、エージェントの可能な将来の軌道を特徴付け、各々がそれぞれの将来の時点でのエージェントの可能な位置に対応する、環境内の複数のウェイポイント空間的場所のシーケンスを指定するデータを含む。すなわち、各アンカー軌道は、現在の時点の後にエージェントが通過し得る、環境を通る異なる可能な将来の経路を定義する。
【0053】
概して、固定数に含まれるアンカー軌道は既定されており、任意の所与の現在の時間からエージェントによって実行され得る可能な挙動の異なるセットを表す。すなわち、アンカー軌道はすべてのエージェントについて同じであり、シーンデータ202または環境内の現在のシーンに関する任意の他の情報に依存しない。アンカー軌道もエージェント中心の座標系にあるため、現在のシーンでのエージェントの現在の位置に関係なく、アンカー軌道の同じセットを任意のエージェントに使用することができる。
【0054】
概して、アンカー軌道は、軌道予測システムのトレーニングの前に既定される。
【0055】
特定の例として、システムは、軌道予測システムをトレーニングするために使用されるエージェント軌道のトレーニングセットに基づいて、アンカー軌道の一部またはすべてを判定することができる。例えば、システムはトレーニングセット内の軌道を固定数のクラスタにクラスタ化し、各クラスタから代表的な軌道をアンカー軌道として選択することができる。
【0056】
別の例として、システムは、可能な軌道の空間から軌道を均一にサンプリングすることによって、固定数のアンカー軌道内のアンカー軌道の一部またはすべてを判定することができる。
【0057】
図2の例は、シーンデータ202内で特徴付けられるエージェント222の3つのアンカー軌道230、240、および250を視覚化する。図2の例から分かるように、軌道予測出力は、軌道230に0.5の確率、軌道240に0.3の確率、および軌道250に0.1の確率を割り当てている(固定数のアンカー軌道のうちの残りの軌道は、0.1の組み合わせ確率を有する)。所与のアンカー軌道が割り当てられる確率は、所与のアンカー軌道がエージェントの将来の軌道に最も類似したアンカー軌道になる可能性を表すことができる。
【0058】
いくつかの実装態様では、軌道予測出力はまた、各アンカー軌道について、アンカー軌道の各ウェイポイント空間的場所について、ウェイポイント空間的場所に依存する確率分布を特徴付けるデータも含むことができる。所与のウェイポイント空間的場所の確率分布は、エージェントがウェイポイント空間的場所に対応する将来の時点でウェイポイント空間的場所の近傍のそれぞれの空間的位置を占めるそれぞれの可能性を定義する。すなわち、エージェントがアンカー軌道に従うとすると、確率分布は、エージェントの実際の将来の軌道のアンカー軌道からの予測される可能な偏差の空間を表す。換言すれば、所与のアンカー軌道について、所与の将来の時点での確率分布は、所与のアンカー軌道のウェイポイント空間的場所からのエージェントの可能な偏差の空間を表し、より高い確率が割り当てられた場所は、より低い確率が割り当てられた場所よりも偏差の可能性が高くなる。
【0059】
したがって、これらの実装態様では、軌道予測出力は、K個のアンカー軌道ごとに1つずつ、K個の確率または他の類似度スコアを含む。各アンカー軌道がT個の将来の時点を含む場合、軌道予測出力はまた、K個のアンカー軌道ごとに、およびT個の将来の時点の各々で、確率分布を特徴付けるデータも含む。したがって、確率分布を特徴付けるデータがD個の値を含む場合、所与のエージェントの軌道予測出力はK+K×T×D個の値を含む。
【0060】
特に、任意の所与のウェイポイント空間的場所について、ウェイポイント空間的場所に依存する確率分布を特徴付けるデータは、ウェイポイント空間的場所に依存するパラメトリック確率分布のパラメータを定義するデータを含む。
【0061】
特定の例として、ウェイポイント空間的場所に依存するパラメトリック確率分布は正規確率分布とすることができ、正規確率分布のパラメータを定義するデータは、(i)ウェイポイント空間的場所からの正規確率分布の平均のオフセットを指定するオフセットパラメータ、および(ii)正規確率分布の共分散パラメータを含むことができる。例えば、共分散パラメータは、エージェント中心の座標系内で2x2共分散行列を定義することができる。この例では、軌道予測出力は、各アンカー軌道のそれぞれの類似度スコアを含み、各アンカー軌道の将来の各時点について、軌道予測出力は、5つの値、すなわち、x次元に沿った平均オフセット、x次元に沿った平均オフセット、y次元に沿った平均オフセット、共分散行列を定義する3つのパラメータを含むことができる。したがって、軌道予測出力は、K個の類似度スコア、および、K個のアンカー軌道内の将来の時点での確率分布を定義するKxTx5個の値を含む。
【0062】
別の特定の例として、共分散を固定することができ、所与の将来の時点での正規分布のパラメータを定義するデータは、所与の将来の時点のオフセットパラメータのみを含むことができる。
【0063】
図2の例では、確率分布によって定義される不確実性は、道路の幾何形状を考慮しており、時間の経過とともに軌道の各々について増大していることが分かる。
【0064】
ニューラルネットワーク220は、軌道予測出力を構成するK+KxTxD個の値に埋め込みをマッピングするように構成された畳み込み層のセットを含むことができる。代替的に、ニューラルネットワーク220は、異なる将来の時点での確率分布を自己回帰的に、すなわち、1つ以上の再帰型ニューラルネットワーク層または他の自己回帰ニューラルネットワーク層を使用して、畳み込み層の出力を将来の各時点の確率分布パラメータに順次マッピングすることによって、生成することができる。
【0065】
図3は、車両の近傍のエージェントの軌道予測出力を生成するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、軌道予測システム、例えば、本明細書に従って適切にプログラムされた図1の軌道予測システム150が、プロセス300を実行することができる。
【0066】
任意の所与の時点で、システムは、車両の近傍の1つ以上のエージェントの各々に対してプロセス300を実行することができる。例えば、システムは、センササブシステムによって車両の近傍にいると識別された各エージェントに対して、または、例えば、車両の計画システムによって軌道予測が必要とされるエージェントの適切なサブセットなどの、識別されたエージェントの適切なサブセットに対して、プロセス300を実行することができる。
【0067】
システムは、現在の時点までの環境における車両の近傍のエージェントを特徴付ける埋め込みを取得する(ステップ302)。
【0068】
例えば、上記のように、システムは、埋め込みニューラルネットワークを使用してシーンデータを処理してシーン特徴を生成し(ステップ304)、次いで、エージェントに対応するシーン特徴の部分をクロップして埋め込みを生成すること(ステップ306)によって、埋め込みを取得することができる。場合によっては、システムは、埋め込みを生成するために、埋め込みニューラルネットワークのクロップされた部分をエージェント中心の座標系に対して回転させる。上記のように、システムは、埋め込みニューラルネットワークを1回通過するだけで、もう1つのエージェントすべての埋め込みを生成することができる。
【0069】
システムは、軌道予測ニューラルネットワークを使用して埋め込みを処理して、現在の時点の後のエージェントの将来の軌道を特徴付ける軌道予測出力を生成する(ステップ308)。
【0070】
上記のように、軌道予測出力は、エージェントの将来の軌道と、複数のアンカー軌道の各々との予測類似度を特徴付けるデータを含む。例えば、軌道予測出力は、アンカー軌道の各々について、アンカー軌道がエージェントの将来の軌道に最も類似した軌道になる可能性を表す確率または他の類似度スコアを含むことができる。
【0071】
軌道予測出力はまた、各アンカー軌道について、アンカー軌道の各ウェイポイント空間的場所についてウェイポイント空間的場所に依存する確率分布を特徴付けるデータも含むことができる。所与のウェイポイント空間的場所の確率分布は、エージェントがアンカー軌道内のウェイポイント空間的場所に対応する将来の時点でウェイポイント空間的場所の近傍のそれぞれの空間的位置を占める可能性を定義する。
【0072】
システムは、車両の計画システムに軌道予測出力を提供して、車両の将来の軌道を計画する計画決定を生成する(ステップ310)。
【0073】
図4は、軌道予測システムをトレーニングするための例示的なプロセス400の流れ図である。便宜上、プロセス400は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、トレーニングシステム、例えば、本明細書に従って適切にプログラムされた図1のトレーニングシステム120は、プロセス400を実行することができる。
【0074】
システムは、グラウンドトゥルースエージェント軌道のトレーニングセットからサンプリングされた1つ以上のグラウンドトゥルースエージェント軌道からなるミニバッチ内の各グラウンドトゥルースエージェント軌道に対してプロセス400を実行して、グラウンドトゥルースエージェント軌道ごとに、それぞれのモデルパラメータ更新を判定することができる。次に、システムは、それぞれのモデルパラメータ更新を組み合わせ、例えば、平均または加算して、組み合わせ更新を生成し、次に、例えば、Adamオプティマイザ、rmsPropオプティマイザ、または確率的勾配降下オプティマイザなどの、トレーニングに使用されるオプティマイザに従って、組み合わせ更新をモデルパラメータの現在の値に適用することができる。
【0075】
グラウンドトゥルースエージェント軌道の種々のミニバッチに対してこの方法でモデルパラメータ値を繰り返し更新することにより、システムは、正確な軌道予測出力を生成するように、軌道予測システムをトレーニングすることができる。
【0076】
システムは、最初の時点でのエージェントのシーンデータ、および、最初の時点の後にエージェントがたどる実際の軌道を識別するエージェントのグラウンドトゥルースエージェント軌道を含むトレーニング例を取得する(ステップ402)。
【0077】
システムは、上記の軌道予測システムを使用し、モデルパラメータの現在の値に従って、すなわち、埋め込みニューラルネットワークおよび軌道予測ニューラルネットワークのパラメータの現在の値に従って、シーンデータを処理して、軌道予測出力を生成する(ステップ404)。
【0078】
システムは、アンカー軌道の各々について、アンカー軌道と、グラウンドトゥルース軌道との類似度を判定する(ステップ406)。例えば、システムは、アンカー軌道とグラウンドトゥルース軌道との間の類似度を、2つの軌道間の状態シーケンス空間におけるl2ノルム距離または他の適切な距離測度として計算することができる。
【0079】
システムは、類似度、グラウンドトゥルース軌道、および軌道予測出力に基づく損失関数のモデルパラメータに関する勾配を計算することによって、モデルパラメータの現在の値への更新を判定する(ステップ408)。システムは、埋め込みニューラルネットワークと軌道予測ニューラルネットワークを共にトレーニングするため、システムは、損失関数の勾配を軌道予測ニューラルネットワークを通じて埋め込みニューラルネットワークへと逆伝播させることができる。
【0080】
場合によっては、損失関数は、グラウンドトゥルース軌道とアンカー軌道のうちの1つとの間に厳しい課題を採用し、したがって、グラウンドトゥルース軌道に最も類似しているアンカー軌道のみに依存する。これらの場合、損失関数は以下を満たすことができる。
【数1】

ここで、Kはアンカー軌道の総数であり、θはモデルパラメータであり、
【数2】

は指数kがグラウンドトゥルース軌道に最も類似したアンカー軌道の指数
【数3】

と同じである場合に1であり、指数kが指数
【数4】

と同じでない場合は常に0である指示関数であり、π(a|x;θ)は、シーンデータxを所与として軌道予測出力内でアンカー軌道kに割り当てられる確率であり、Tは、アンカー軌道内の時点の総数であり、
【数5】

は、
【数6】

である平均および共分散パラメータ
【数7】

を有する正規分布によってグラウンドトゥルース軌道内の時間tにおいてウェイポイント空間的場所
【数8】

に割り当てられる確率であり、
【数9】

は、アンカー軌道k内の時点tにおけるウェイポイント空間的場所であり、
【数10】

は、アンカー軌道kの軌道予測出力における、時点tでのウェイポイント空間的場所からの正規確率分布の平均のオフセットであり、
【数11】

は、アンカー軌道kの軌道予測出力における時点tでのウェイポイント空間的場所の共分散パラメータである。
【0081】
それ以外の場合、損失関数は、グラウンドトゥルース軌道とアンカー軌道のうちの1つとの間に楽な課題を採用し、したがって、すべてのアンカー軌道に依存し、任意の所与のアンカー軌道の損失への寄与は、所与のアンカー軌道とグラウンドトゥルース軌道との間の類似度に依存する。これらの場合、上記の損失関数の指示項は、軌道kとグラウンドトゥルース軌道との間の類似度に基づくアンカー軌道kの間の類似度に依存する重みをアンカー軌道kに割り当てる項に置き換えられる。
【0082】
本明細書に記載の主題および機能的動作の実施形態は、デジタル電子回路内に、有形的に具現化されたコンピュータソフトウェアもしくはファームウェア内に、本明細書に開示された構造体およびそれらの構造上の等価物を含むコンピュータハードウェア内に、またはそれらのうちの1つ以上を組み合わせて、実装することができる。本明細書に記載の主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行するために、またはデータ処理装置の操作を制御するために有形の非一時的記憶媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つ以上の組み合わせであり得る。代替的に、または加えて、プログラム命令は、人工的に生成された伝播信号、例えば、データ処理装置によって実行するために好適な受信装置に送信される情報を符号化するために生成される機械生成の電気、光、または電磁信号に符号化され得る。
【0083】
「データ処理装置」という用語は、データ処理ハードウェアを指し、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。装置はまた、例えば、GPUまたは別の種類の専用処理サブシステムなどの、既製もしくはカスタムメイドの並列処理サブシステムであってもよく、またはそれらをさらに含んでいてもよい。装置はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)などの専用論理回路であってもよく、またはそれをさらに含んでいてもよい。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の組み合わせを構成するコードを任意選択的に含むことができる。
【0084】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコード)とも称され得るか、または記載され得る、コンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、かつ独立型プログラム、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するために好適な他のユニットを含む任意の形態で導入することができる。プログラムは、ファイルシステム内のファイルに対応する場合もあるが、必ずしもそうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントに格納された1つ以上のスクリプト、当該プログラム専用の単一ファイル、または複数の調整ファイル、例えば、1つ以上のモジュール、サブプログラム、もしくはコードの一部を格納するファイルに格納することができる。コンピュータプログラムは、1つのコンピュータまたは1つの場所に配置された複数のコンピュータ上で実行されるように展開されるか、複数の場所に分散されて、データ通信ネットワークで相互接続することができる。
【0085】
1つ以上のコンピュータのシステムが特定の操作または動作を実行するように構成されているとは、システムがそれにインストールされており、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせが動作中に、システムにその操作または動作を実行させることを意味する。1つ以上のコンピュータプログラムが特定の操作または動作を実行するように構成されているとは、1つ以上のプログラムが、データ処理装置によって実行されると、装置に操作または動作を実行させる命令を含むことを意味する。
【0086】
本明細書で使用される「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装の入出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなどの機能の符号化されたブロックであってもよい。各エンジンは、1つ以上のプロセッサと、コンピュータ可読媒体と、を含む、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の据え置き型もしくはポータブルデバイスなど、適切なタイプのコンピューティングデバイス上に実装することができる。さらに、エンジンのうちの2つ以上を、同じコンピューティングデバイス上で、または異なるコンピューティングデバイス上で実装することができる。
【0087】
本明細書に記載のプロセスおよび論理フローは、1つ以上のプログラマブルコンピュータが1つ以上のコンピュータプログラムを実行して、入力データ上で動作し、かつ出力を生成することで機能を果たすことによって実行することができる。プロセスおよび論理フローはまた、FPGAもしくはASICなどの専用論理回路によって、または専用論理回路と1つ以上のプログラムされたコンピュータとの組み合わせによって実行することができる。
【0088】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用のマイクロプロセッサもしくはその両方、または他の種類の中央処理装置に基づくことができる。概して、中央処理装置は、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を遂行または実行するための中央処理装置ならびに命令およびデータを格納するための1つ以上のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完され、またはその回路に組み込むことができる。概して、コンピュータはまた、例えば、磁気、光磁気ディスク、もしくは、光ディスクなど、データを格納するための1つ以上の大容量記憶デバイスを含むか、または、それらからデータを受信するかもしくはそれらに送信するように動作可能に結合されるか、またはその両方を行うことになる。しかしながら、コンピュータは必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、例えば、ほんの数例を挙げると、携帯電話、電子手帳(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブなどに組み込むことができる。
【0089】
コンピュータプログラム命令およびデータを格納するのに好適なコンピュータ可読媒体は、不揮発性メモリ、媒体、およびメモリデバイスのあらゆる形態を含み、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたは取り外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。
【0090】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、コンピュータ上で実施することができ、コンピュータは、ユーザに情報を表示するための表示デバイス、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタ、ならびにキーボードおよびマウス、トラックボールなどのポインティングデバイス、またはユーザがコンピュータに入力を提供することができる存在感応ディスプレイもしくは他の表面を有する。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザが使用するデバイスにドキュメントを送信すること、およびそれから受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをスマートフォンなどのパーソナルデバイスに送信し、メッセージアプリケーションを実行し、代わりにユーザから応答メッセージを受信することにより、ユーザと対話することができる。
【0091】
本明細書に記載の主題の実施形態は、例えば、データサーバとしての、バックエンド構成要素を含むか、またはミドルウェア構成要素、例えば、アプリケーションサーバを含むか、またはフロントエンド構成要素、例えば、ユーザがそれを通して本明細書に記載の主題の実装態様と対話し得るグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するユーザコンピュータを含む、コンピューティングシステム、または1つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせに実装され得る。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットが含まれる。
【0092】
コンピューティングシステムは、クライアントと、サーバと、を含むことができる。クライアントおよびサーバは概して、互いにリモートであり、典型的には通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータで実行され、かつ互いにクライアント-サーバの関係を有している、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、例えば、クライアントとして機能するデバイスと対話するユーザにデータを表示し、当該ユーザからユーザ入力を受信する目的で、例えば、HTMLページなどのデータをユーザデバイスに送信する。例えば、ユーザ対話の結果などの、ユーザデバイスで生成されたデータは、デバイスからサーバにおいて受信され得る。
【0093】
本明細書は多くの特定の実装態様の詳細を含んでいるが、これらは、いずれかの発明の範囲、または請求され得る事項の範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴に関する説明として解釈されるべきである。別々の実施形態の文脈で本明細書に記載された特定の特徴を、単一の実施形態で組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載された様々な特徴は、複数の実施形態で、別個に、または任意の好適な副次的組み合わせで実施することもできる。さらに、特徴は、特定の組み合わせで作用するものとして上記に説明され得、かつさらには、当初はそのように特許請求され得るが、場合によっては、特許請求された組み合わせからの1つ以上の特徴が、その組み合わせから削除される可能性もあり、特許請求された組み合わせが、副次的組み合わせまたは副次的組み合わせの変形を対象とすることもある。
【0094】
同様に、動作が特定の順序で図面に描写されているが、これは、所望の結果を達成するために、かかる動作がその示された特定の順序、もしくは一連の順序で実行されるべきであること、または例証したすべての動作が実行されるべきであることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてかかる分離を必要とするものとして理解されるべきではなく、記載されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品内に共に一体化され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0095】
主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内に存在する。例えば、特許請求の範囲に記載された動作は、異なる順序で実行することができ、かつ依然として望ましい結果を達成することができる。一例として、添付の図に描写されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または連続した順序を必要としない。特定の場合によっては、マルチタスクおよび並列処理が有利であり得る。
【0096】
特許請求の範囲:
図1
図2
図3
図4