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

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

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

特許7214873自律型車両のセンサデータリポジトリの検索
<>
  • 特許-自律型車両のセンサデータリポジトリの検索 図1
  • 特許-自律型車両のセンサデータリポジトリの検索 図2
  • 特許-自律型車両のセンサデータリポジトリの検索 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-20
(45)【発行日】2023-01-30
(54)【発明の名称】自律型車両のセンサデータリポジトリの検索
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230123BHJP
【FI】
G06N20/00
【請求項の数】 12
(21)【出願番号】P 2021533733
(86)(22)【出願日】2019-12-23
(65)【公表番号】
(43)【公表日】2022-02-09
(86)【国際出願番号】 US2019068431
(87)【国際公開番号】W WO2020132693
(87)【国際公開日】2020-06-25
【審査請求日】2021-08-10
(31)【優先権主張番号】62/784,354
(32)【優先日】2018-12-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】317015065
【氏名又は名称】ウェイモ エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】グオ,ズージェン
(72)【発明者】
【氏名】アブド,ニコラ
(72)【発明者】
【氏名】マオ,ジュンフア
(72)【発明者】
【氏名】リ,ツォンツォン
(72)【発明者】
【氏名】ウォーカー ジュニア,エドワード スティーブン
【審査官】河合 弘明
(56)【参考文献】
【文献】国際公開第2018/154100(WO,A1)
【文献】特表2017-539023(JP,A)
【文献】特開2018-173946(JP,A)
【文献】特開2018-128456(JP,A)
【文献】国際公開第2017/201444(WO,A1)
【文献】特開2012-234395(JP,A)
【文献】米国特許出願公開第2018/0285730(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00-20/20
G06N 3/02- 3/10
(57)【特許請求の範囲】
【請求項1】
1つ以上のコンピュータによって実行される、センササンプルのコレクションを検索するコンピュータ実装方法であって、
センササンプルのコレクションと、各センササンプルに対して、前記センササンプルの1つ以上の埋め込みと、を維持することであって、
前記コレクション内の各センササンプルは、対応する車両によってキャプチャされたセンサデータから生成され、前記対応する車両の近傍の環境領域を特徴付け、
各埋め込みは、入力センササンプルからのデータを処理して、各入力センササンプルのそれぞれの埋め込みを生成するように各々トレーニングされている1つ以上の埋め込みニューラルネットワークのセットからの埋め込みニューラルネットワークを介して、対応する前記センササンプルからのデータを処理することによって生成されている、維持することと、
クエリセンササンプルを指定する要求を受信することであって、前記クエリセンササンプルは、クエリ環境領域を特徴付ける、受信することと、
前記センササンプルのコレクションから、前記クエリ環境領域に類似した環境領域を特徴付ける複数の関連するセンササンプルを識別することであって、
前記セット内の前記埋め込みニューラルネットワークのうちの1つ以上を介して、前記クエリセンササンプルを処理して、1つ以上のクエリ埋め込みを生成することと、
前記コレクション内の前記センササンプルのサブセット内のセンササンプルから、前記クエリ埋め込みの各々に最も近い埋め込みを有する複数のセンササンプルを識別することと、を含む、識別することと、
前記複数の関連するセンササンプルを使用して、機械学習モデルのためのトレーニングデータを生成することと、を含む、方法。
【請求項2】
前記セット内の前記埋め込みニューラルネットワークの各々を使用して、前記コレクション内の各センササンプルを処理して、前記センササンプルの前記埋め込みを生成することをさらに含む、請求項1に記載の方法。
【請求項3】
前記複数の関連するセンササンプルの各々に対する視覚的表現を生成することと、
ユーザデバイスでの提示のための前記視覚的表現を提供することと、をさらに含む、請求項1~2のいずれか一項に記載の方法。
【請求項4】
前記複数の関連するセンササンプルの各々に対する視覚的表現を生成することは、
各関連するセンササンプルに対して、前記関連するセンササンプルの指定された時間ウィンドウ内にキャプチャされた他のセンササンプルを識別することと、
前記他のセンササンプルおよび前記関連するセンササンプルのビデオ表現を生成することと、を含む、請求項3に記載の方法。
【請求項5】
前記クエリ環境領域は、特定のオブジェクトタイプのオブジェクトを描写するものとして識別されており、前記機械学習モデルは、前記特定のオブジェクトタイプのオブジェクトを描写するものとして、センササンプルを分類するように構成されている機械学習分類器である、請求項に記載の方法。
【請求項6】
前記センササンプルのコレクション内の前記センササンプルは、前記センササンプルによって特徴付けられる前記環境領域に位置するオブジェクトのオブジェクトタイプを識別する高レベルの分類に各々関連付けられており、
前記要求は、クエリの高レベルの分類を指定し、
前記サブセットは、前記クエリの高レベル分類に関連付けられている前記コレクション内のセンササンプルのみを含む、請求項1~のいずれか一項に記載の方法。
【請求項7】
前記コレクション内の前記センササンプルの前記埋め込みおよび前記クエリ埋め込みは、前記埋め込みニューラルネットワークのパラメータのトレーニングされた値に従って各々生成される、請求項1~のいずれか一項に記載の方法。
【請求項8】
各センササンプルは、前記対応する車両の複数のセンサからの測定値を表し、各センサからの前記測定値は、同時に同じ領域を特徴付ける、請求項1~のいずれか一項に記載の方法。
【請求項9】
前記クエリ埋め込みに最も近い埋め込みを有する前記複数のセンササンプルは、距離メトリックに従って前記クエリ埋め込みに最も近い前記センササンプルである、請求項1~のいずれか一項に記載の方法。
【請求項10】
前記距離メトリックは、ユークリッド距離または余弦類似度である、請求項に記載の方法。
【請求項11】
1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに請求項1~10のいずれか一項に記載の方法のうちのいずれか1つのそれぞれの動作を実行させる命令を記憶する、1つ以上のコンピュータ可読記憶媒体。
【請求項12】
1つ以上のコンピュータと、1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに請求項1~11のいずれか一項に記載の方法のうちのいずれか1つのそれぞれの動作を実行させる命令を記憶する1つ以上の記憶デバイスと、を含む、システム。

【発明の詳細な説明】
【背景技術】
【0001】
本明細書は、自律型車両に関する。
【0002】
自律型車両は、自動運転する車、船舶、および航空機を含む。自律型車両は、様々な車載センサおよびコンピュータシステムを使用して近くの物体を検出し、その検出を使用して、制御およびナビゲーションの決定を行う。
【0003】
一部の自律型車両は、ニューラルネットワーク、他のタイプの機械学習モデル、またはその両方を様々な予測タスク、例えば、画像内のオブジェクト分類のために実装する車載コンピュータシステムを有する。例えば、ニューラルネットワークを使用して、車載カメラで撮像された画像が近くの車の画像である可能性が高いと判定することができる。ニューラルネットワーク、略して、ネットワークは、複数の操作の層を使用して、1つ以上の入力から1つ以上の出力を予測する機械学習モデルである。ニューラルネットワークは、通常、入力層と出力層との間に位置する1つ以上の隠れ層を含む。各層の出力は、ネットワーク内の別の層、例えば、次の隠れ層または出力層への入力として使用される。
【0004】
ニューラルネットワークの各層は、層への入力に対して実行される1つ以上の変換操作を指定する。一部のニューラルネットワーク層には、ニューロンと呼ばれる操作がある。各ニューロンは1つ以上の入力を受信し、別のニューラルネットワーク層で受信される出力を生成する。多くの場合、各ニューロンは、他のニューロンから入力を受信し、各ニューロンは、1つ以上の他のニューロンに出力を提供する。
【0005】
ニューラルネットワークのアーキテクチャは、ネットワークに含まれる層およびその特性、ならびにネットワークの各層のニューロンの接続方法を指定する。換言すれば、アーキテクチャは、他の層への入力としてどの層が出力を提供するか、出力がどのように提供されるかを指定する。
【0006】
各層の変換操作は、変換操作を実装するソフトウェアモジュールがインストールされたコンピュータによって実行される。したがって、操作を実行するとして説明されている層は、層の変換操作を実装するコンピュータが操作を実行することを意味する。
【0007】
各層は、層の一連のパラメータの現在の値を使用して1つ以上の出力を生成する。したがって、ニューラルネットワークをトレーニングすることは、入力に対する順方向パスの継続的な実行、勾配値の計算、および計算された勾配値を使用した各層のパラメータセットの現在の値の更新することを伴う。ニューラルネットワークがトレーニングされると、最終的なパラメータセットを使用して、生成システムで予測を行うことができる。
【発明の概要】
【0008】
本明細書は、どのように、コンピュータシステムが、埋め込みを使用して、自律型車両から収集されたセンサデータのリポジトリを効果的に検索することができるかについて説明する。
【0009】
埋め込みは、本明細書で使用される場合、環境領域を特徴付けるセンサデータのグループの数値表現である。特に、埋め込みは、埋め込み空間における数値表現、すなわち、数値の数が埋め込み空間の次元に等しい、固定数の数値の順序付けられたコレクションである。例えば、埋め込みは、浮動小数点のベクトルまたは他のタイプの数値にすることができる。一般に、埋め込み空間の次元は、所与の埋め込みによって表されるセンサデータのグループ内の数値の数よりもはるかに小さい。
【0010】
本明細書に記載の主題の特定の実施形態は、以下の利点の1つ以上を実現するように実施することができる。
【0011】
自律型車両または半自律型車両は、車両が環境を走行するときに車両を取り巻く環境に関するデータを収集するセンサを有する。多くの運転時間にわたり、多くの異なる自律型車両によりこれらのセンサによって収集されたデータは、後で使用するため、例えば、環境を走行する車両が遭遇したイベントを分析するユーザに向けて再生するため、または自律型車両の操作に関連し得る様々な予測を行うための機械学習モデルのトレーニングに使用するために、リポジトリに記憶することができる。例えば、記憶されたデータは、特定のタイプのオブジェクトを分類する機械学習モデルをトレーニングするために使用することができる。
【0012】
しかしながら、大量のセンサデータが収集および記憶されるため、記憶されたデータを有効に活用することは難しい。特に、特定のセンササンプルが関心のある領域、つまり、関心のあるイベントが発生している領域、または特定の関心のあるオブジェクトが位置している領域を特徴付けるものとして識別されると、自律型車両の一団によって収集された大量の経験が与えられれば、他の同様のイベントまたはオブジェクトが、一団の自律型車両のうちの1つによって以前に遭遇した可能性がある。したがって、センサデータリポジトリは、同様の領域を特徴付けるセンササンプルを記憶する可能性が高い。
【0013】
しかしながら、リポジトリでこれらの類似サンプルを検索することは、(1)センササンプルは高次元データであるため、多数のサンプルを検索すると、非常に大量の計算リソースを消費する、(2)センササンプルの高次元性により、どのサンプルがクエリサンプルと同様の領域を特徴付けるかを識別することが難しいとの少なくとも2つの理由で困難である。
【0014】
特に、場合によっては、リポジトリは、リポジトリの検索を容易にするために、ラベルをリポジトリ内のサンプルの一部または全部に関連付けることがある。次に、センササンプルが識別されるときに、システムはリポジトリを検索して、識別されたセンササンプルと同じラベルに関連付けられている他のサンプルを表面化させることができる。しかしながら、識別されたセンササンプルがラベルのうちのいずれとも一致しないとき、例えば、センササンプルが、以前は関心がなかった新しいタイプのオブジェクトもしくは以前は関心がなかった新しいタイプのイベントを特徴付けるとき、または識別されたセンササンプルのラベルにノイズが多いとき、例えば、センササンプルがどのオブジェクトのタイプを特徴付けるかをシステムが確実に識別することができないとき、ラベルを使用する検索は効果的ではない。
【0015】
一方、説明される技術であれば、クエリセンサのサンプルが既存のラベルのいずれとも一致しない場合でも、過剰な計算リソースを消費することなく、センサデータリポジトリを効果的に検索することができる。特に、埋め込みを使用して検索することにより、システムははるかに低次元のデータを検索することができる。さらに、埋め込みは対応するセンササンプルの望ましい特性を表すため、埋め込みを使用して検索することにより、類似のセンササンプルを効果的に識別することができる。
【0016】
さらに、各々がセンササンプルの異なる特性または特質を反映する、各センササンプルに対して複数の異なる埋め込みをシステムは生成することができる。これにより、システムは、異なる特性に関して類似している埋め込みを表面化することができる。代替的に、対応するすべての埋め込みが、識別されたサンプルの対応する埋め込みに近いセンササンプルを検索することにより、システムは最も類似したセンササンプルをより効果的に表面化することができる。
【0017】
加えて、システムは、検索エンジンインデックスのスライシングなど、様々なインデックス作成技術を使用して、検索プロセスをさらに最適化し、埋め込みを使用した検索によって達成されているすでに大幅な削減よりも、レイテンシと計算リソースの消費をさらに削減することを可能にする。
【0018】
本明細書の主題の1つ以上の実施形態の詳細を、添付の図面および以下の説明に記載する。主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から、明らかになるであろう。
【図面の簡単な説明】
【0019】
図1】例示的なシステムを示す図である。
図2】リポジトリにセンササンプルを追加する例示的なプロセスのフローチャートである。
図3】リポジトリを検索するための別の例示的なプロセスのフローチャートである。様々な図面の中の同様の参照番号および名称は、同様の要素を示す。
【発明を実施するための形態】
【0020】
本明細書は、センサデータリポジトリを効果的に検索するためにトレーニングシステムがどのように埋め込みを使用することができるかについて説明する。
【0021】
図1は、例示的なシステム100を示す図である。システム100は、トレーニングシステム110と車載システム120とを含む。
【0022】
車載システム120は、車両122に物理的に搭載されている。図1の車両122は自動車として図示されているが、車載システム120は、任意の適切な車両に搭載することができる。車両122は、環境内をナビゲートするために完全自律型運転決定を判定および実行する完全自律型車両であり得る。車両122はまた、人間の運転者を支援するために予測を使用する半自律型車両であり得る。例えば、人間の運転者が別の車両と衝突しそうであることを予測が示す場合、車両122は、自律的にブレーキをかけることができる。
【0023】
車載システム120は、1つ以上のセンササブシステム132を含む。センササブシステム132は、電磁放射の反射を受信する構成要素の組み合わせ、例えば、レーザ光の反射を検出するライダシステム、電波の反射を検出するレーダシステム、および可視光の反射を検出するカメラシステムを含む。
【0024】
所与のセンサによって生成されたセンサデータは、反射された放射の距離、方向、および強度を示す。例えば、センサは、特定の方向に電磁放射の1つ以上のパルスを送信することができ、反射の強度と反射が受信された時間を測定することができる。距離は、パルスとそれに対応する反射の間にかかった時間を判定することによって計算することができる。センサは、角度、方位角、またはその両方で特定の空間を継続的に掃引することができる。例えば、方位角での掃引は、センサが同じ視線に沿った複数のオブジェクトを検出することを可能にする。
【0025】
センササブシステム132または車両122の他の構成要素はまた、環境内の同じ領域の測定値として1つ以上のセンサからの1つ以上の生のセンサ測定値のグループにまとめることができる。センサ測定値のグループは、キャプチャされているセンサ測定値の種類に応じて、様々な方法のいずれかで表すことができる。例えば、生のレーザセンサ測定値の各グループは、3次元の点群として表すことができ、各点が強度と位置を有する。いくつかの実装態様では、位置は範囲と標高のペアとして表される。カメラセンサ測定値の各グループは、画像パッチ、例えば、RGB画像パッチとして表すことができる。
【0026】
1つ以上の生のセンサ測定値のグループが環境内の特定の領域の測定値として分類されると、センササブシステム132または車両122の他の構成要素は、車両を測定するセンサ測定値からセンササンプル155を生成する。例えば、センササンプルには、環境の領域のカメラセンサによってキャプチャされた画像のパッチ、環境の領域に対応するレーザセンサの1つ以上によって生成された点群データ、または1つ以上の投影の一部、例えば、環境の領域に対応するレーザセンサの1つ以上によってキャプチャされたセンサデータのトップダウンビューまたはパースペクティブビューからの投影のうちの1つ以上を含むことができる。
【0027】
センササブシステム132または他の構成要素は、センササンプル155を車載予測サブシステム134に提供する。車載予測サブシステム134は、センササンプル155内のデータの一部または全部を使用して、1つ以上の予測165を生成する。例えば、車載予測サブシステム134は、車両122の動作に関連する予測を行うために各々がセンササンプル155を使用する1つ以上の機械学習モデルを実装することができる。特定の例として、1つ以上の機械学習モデルは、センササンプルによって特徴付けられる領域に位置するオブジェクトを分類する分類機械学習モデルとすることができる。別の特定の例として、1つ以上の機械学習モデルは、センササンプルによって特徴付けられる領域に位置する物体の将来の軌道を予測する挙動予測機械学習モデルとすることができる。
【0028】
車載分類器サブシステム134は、予測165を計画サブシステム136、ユーザインターフェースサブシステム138、またはその両方に提供することができる。
【0029】
計画サブシステム136が予測165を受信するときに、計画サブシステム136は、予測165を使用して、完全自律または半自律型運転決定を行うことができる。例えば、予測が、特定のタイプの交通標識が車両の近傍にあることを示す予測を含む場合、計画サブシステム136は、車両122の軌道を調整して、交通標識の要件に準拠する、例えば、交通標識が譲れの標識であるときにブレーキをかけるように完全自律型計画を生成することができる。別の例として、計画サブシステム136は、交通標識の要件に準拠するために人間の運転者がブレーキをかけるための半自律型忠告を生成することができる。
【0030】
ユーザインターフェースサブシステム138は、予測165を受信することができ、予測165に基づいてユーザインターフェース提示、例えば、車両の速度が交通標識の要件を超えているという、車両122の操作者に対する警告、または別の車両が占有している空間の領域の表現を含む画像もしくはビデオデータを有するユーザインターフェース提示を生成することができる。次に、車載表示デバイスは、車両122の乗員による視認のためのユーザインターフェース提示を表示することができる。
【0031】
車載分類器サブシステム134はまた、センサデータ155を使用して、例えば、予測を行うための様々な機械学習モデルをトレーニングする際に使用するために、トレーニングシステム110に送信されるログデータ127を生成することができる。車載システム120は、ログデータ127を、例えば、それが生成されるときはいつでも継続的に、オフラインバッチまたはオンライン方式で、トレーニングシステム110に提供することができる。
【0032】
ログデータ127は、車両122の動作中に生成されたセンサデータサンプルを含む。
【0033】
トレーニングシステム110は、通常、1つ以上の位置に数百または数千のコンピュータを有する分散型コンピューティングシステムであり得るデータセンター112内でホストされる。
【0034】
トレーニングシステム110が車両からログデータ127を受信するときに、トレーニングシステム100は、ログデータ127をセンサデータリポジトリ125に記憶する。一般に、センサデータリポジトリ125は、多数の車両から受信したセンサデータを記憶する。すなわち、センサデータリポジトリ125は、多数の異なる車両の動作中にキャプチャされたセンサデータから生成されたセンササンプルを記憶する。場合によっては、センサデータリポジトリ125はまた、シミュレーションで生成された、すなわち、実世界環境のソフトウェアシミュレーションを介した車両ナビゲートのシミュレーションされたバージョンとして生成されたセンサデータを含むことができる。
【0035】
トレーニングシステム110は、センサデータリポジトリ125内のセンササンプルから生成されたトレーニングデータを使用して予測を行うための様々な機械学習モデルをトレーニングするトレーニングサブシステム114を含む。
【0036】
例えば、トレーニングシステム110は、センサデータリポジトリ125に記憶されたセンササンプルを使用して、機械学習モデルをトレーニングするためのトレーニング例123を含むトレーニングデータを生成することができる。各トレーニング例123は、(i)センササンプルからのデータと、(ii)センササンプルの機械学習モデルによって生成されるべきグラウンドトゥルース出力を示すラベルと、を含む。次いで、トレーニングサブシステム114は、トレーニングデータで機械学習モデルをトレーニングして、機械学習モデルの重みのトレーニングされた値を判定することができる。トレーニングが完了した後、トレーニングシステム110は、完全自律または半自律型運転決定のための予測165を行う際に使用するために、モデル重み値の最終セットを車載システム120に提供することができる。トレーニングシステム110は、有線または無線接続によってモデル重み値の最終セットを車載システム120に提供することができる。
【0037】
しかしながら、場合によっては、関連するセンササンプルについてセンサデータリポジトリ125を検索する必要があってもよい。リポジトリ125の検索を可能にするために、トレーニングシステム110は、センササンプル検索エンジン190を含む。
【0038】
センササンプル検索エンジン190がセンサデータリポジトリをより効率的に検索することを可能にするために、トレーニングシステム110は、1つ以上の埋め込みニューラルネットワーク180を実装する。すなわち、トレーニングシステム110は、埋め込みニューラルネットワーク180の層の動作を実装するハードウェアを含む。
【0039】
各埋め込みニューラルネットワーク180は、入力として、センサデータ、すなわち、センササンプル内のデータの一部または全部を受信し、出力として、センサデータの埋め込みを生成するようにトレーニングされたニューラルネットワークである。
【0040】
場合によっては、トレーニングシステム110は、単一の埋め込みニューラルネットワーク180を実装する。
【0041】
しかしながら、他の場合において、トレーニングシステム100は、センササンプルの異なる部分に作用するか、センササンプルの異なる特性を反映する埋め込みを生成するか、またはその両方である複数の埋め込みニューラルネットワーク180を実装する。
【0042】
例のように、埋め込みニューラルネットワーク180は、画像パッチに作用することによって埋め込みを生成する1つ以上のニューラルネットワークと、レーザセンサデータに作用する1つ以上のニューラルネットワークと、を含んでもよい。
【0043】
例えば、埋め込みニューラルネットワーク180は、画像パッチに作用する1つ以上のディープ畳み込みニューラルネットワークを含んでもよい。特定の例では、埋め込みニューラルネットワーク180は、環境内のオブジェクトを異なるオブジェクトカテゴリに分類するようにトレーニングされたオブジェクト分類ニューラルネットワークの一部であってもよい。例えば、埋め込みニューラルネットワーク180は、トレーニングされたオブジェクト分類ニューラルネットワークの1つ以上の最終層を除くすべてを含んでもよい。したがって、この埋め込みニューラルネットワーク180によって生成された埋め込みは、センササンプルに描写されたオブジェクトのタイプを表す。
【0044】
別の例として、埋め込みニューラルネットワーク180は、レーザセンサ、例えば、ライダセンサによって生成された点群データに作用する1つ以上の畳み込みニューラルネットワークを含んでもよい。これらの畳み込みニューラルネットワークの各々は、点群データのあるタイプのアノテーション、例えば、オブジェクトタイプ、オブジェクトサイズ、オブジェクト軌道を予測するようにトレーニングされるニューラルネットワークの初期層とすることができる。点群データに作用する畳み込みニューラルネットワークの例は、https://arxiv.org/abs/1910.06528において入手可能な、Yin Zhouらの「End-to-End Multi-View Fusion for 3D Object Detection in LiDAR Point Clouds」に記載されている。このような畳み込みニューラルネットワークの別の例は、Y. ZhouおよびO. Tuzelの「Voxelnet:End-to-end learning for point cloud based 3d object detection」(2018、IEEE/CVF Conference on Computer Vision and Pattern Recognition、pages 4490-4499, 2018年6月)に記載されている。
【0045】
異なるタイプのアノテーションを予測するようにトレーニングされたこれらのニューラルネットワークの複数のものが埋め込みニューラルネットワーク180のセットに含まれるときに、所与のセンササンプルに対する結果として生じる埋め込みのセットは、各々がセンササンプルの異なる特性を反映する複数の異なる埋め込みを含む。場合によっては、単一のニューラルネットワークをトレーニングして、同じセンササンプルに対する複数の異なるタイプのアノテーションを予測することができる。このような場合、そのニューラルネットワークによって生成される埋め込みは、複数の異なる特性、例えば、色およびオブジェクトタイプ、または速度および方位を反映する。
【0046】
したがって、一般に、所与のセンササンプルに対して様々な埋め込みニューラルネットワーク180によって生成された埋め込みは、各々サンプルの特定の特性を表すことができる。例示的な特性のセットは、サンプルの高レベルのオブジェクトタイプ、きめ細かいオブジェクトタイプ、オブジェクトの速度、およびオブジェクトの色の1つ以上を含む。したがって、一例では、センササンプルに対する埋め込みのセットは、きめの細かいオブジェクトタイプを表す1つの埋め込みと、オブジェクトの速度を表す別の埋め込みとを含むであろう。
【0047】
新しいセンササンプルが受信されるときに、検索エンジン190は、埋め込みニューラルネットワーク180を使用して新しいセンササンプルを処理して、各新しいセンササンプルの埋め込みを生成する。次に、検索エンジン190は、リポジトリ内の各センササンプルをセンササンプルの対応する埋め込みに関連付けるデータを記憶する。
【0048】
リポジトリを検索するための要求が受信されるときに、検索エンジン190は、埋め込みニューラルネットワーク180を使用して、要求で指定されたクエリセンササンプルのクエリ埋め込みを生成し、クエリ埋め込みを使用して、リポジトリ内の埋め込みを検索する、すなわち、高次元センササンプルを直接検索することに代えて、この検索を行う。
【0049】
特に、検索エンジン190は、各センササンプルをセンササンプルに対する埋め込みに関連付ける検索インデックスを維持することができる。
【0050】
いくつかの実装態様では、検索エンジン190は、異なるタイプの埋め込みの各々に対してインデックスをスライスする。換言すれば、所与のタイプの埋め込みに対して、すなわち、所与の埋め込みニューラルネットワーク180によって生成された埋め込みに対して、検索エンジン190は、埋め込みの複数のスライスを生成し、そのタイプの各埋め込みは、生成されたスライスの正確に1つに属する。
【0051】
これらの実装態様では、所与のタイプの所与のクエリ埋め込みに対するインデックスを検索するために、検索エンジン190は、最初にクエリ埋め込みに一致するそのタイプの埋め込みのスライスを識別し、次いでスライス内の埋め込みを検索する。
【0052】
特定の例として、検索エンジン190は、k平均クラスタリングまたは他の教師なしクラスタリング技術を使用して、所与の埋め込みタイプの埋め込みをkスライスにスライスすることができ、kスライスの各々は、kクラスタの1つに対応し、各スライスは、クラスタリング技術によって生成された、対応するクラスタに対する「プロトタイプ」または平均として表される。
【0053】
所与のクエリ埋め込みに最も類似する所与のタイプの埋め込みを識別するために、検索エンジン190は、最初に、クエリ埋め込みに最も近いプロトタイプを識別することによって、クエリ埋め込みに一致するスライスを識別する。次いで、検索エンジン190は、スライス内を検索して、クエリ埋め込みに最も近い埋め込みを識別することができる。
【0054】
図2は、センササンプルをセンサデータリポジトリに追加するための例示的なプロセス200のフローチャートである。このプロセスは、適切にプログラムされたコンピュータシステムによって実行されるものとして説明される。便宜上、プロセス200は、1つ以上の位置に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、トレーニングシステム、例えば、本明細書に従って適切にプログラムされた図1のトレーニングシステム110は、プロセス200を実行することができる。
【0055】
システムは、自律型車両の動作中に収集されたセンサデータから生成されたセンササンプルを受信する(ステップ210)。
【0056】
システムは、1つ以上の埋め込みニューラルネットワークの各々を使用してセンササンプルを処理して、センササンプルの1つ以上の埋め込みを生成する(ステップ220)。上で説明されるように、埋め込みニューラルネットワークのセットが複数のニューラルネットワークを含むときに、異なる埋め込みは、一般に、センササンプルの異なる特質または特性を表す。
【0057】
システムは、センササンプルをリポジトリに追加し、センササンプルをセンササンプルの埋め込みに関連付ける(ステップ230)。例えば、システムは、センササンプルをセンササンプルに対する埋め込みに関連付けるシステムによって維持される検索インデックスにエントリを追加することができる。場合によっては、システムは、新しく追加された埋め込みを考慮するためにインデックスのスライスを更新する。
【0058】
図3は、センササンプルのコレクションを記憶するリポジトリを検索するための例示的なプロセス300のフローチャートである。このプロセスは、適切にプログラムされたコンピュータシステムによって実行されるものとして説明される。便宜上、プロセス300は、1つ以上の位置に位置する1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、トレーニングシステム、例えば、本明細書に従って適切にプログラムされた図1のトレーニングシステム110は、プロセス300を実行することができる。
【0059】
システムは、センサデータリポジトリを維持する(310)。上で説明されるように、センサデータリポジトリには、自律型車両の動作中に生成されたセンササンプルのコレクション、例えば、車両が環境を走行した際に車両によって収集されたセンサデータから生成されたサンプルを含む。
【0060】
各センササンプルは、自律型車両の近傍の環境の特定の領域を特徴付け、自律型車両の1つ以上のセンサからのデータを含む。
【0061】
例えば、各センササンプルは、自律型車両のセンサの1つ以上からの測定値を表すデータを含むことができ、各センサからの測定値は、同じ領域を同時に特徴付ける。特定の例として、テンソルは、自律型車両のカメラセンサおよび1つ以上のレーザセンサからの測定値を表すことができる。別の特定の例として、テンソルは、カメラセンサ、レーダセンサ、およびレーザセンサからの測定値を表すことができる。
【0062】
例えば、センササンプルは、環境の領域のカメラセンサによってキャプチャされた画像のパッチと、レーザセンサの1つ以上によって生成された点群データと、任意選択的に、1つ以上の投影の一部、例えば、環境の領域に対応するレーザセンサの1つ以上によってキャプチャされたセンサデータのトップダウンビューまたはパースペクティブビューからの投影を含むことができる。
【0063】
上で説明されるように、リポジトリ内の各センササンプルは、センササンプルの1つ以上の埋め込みにも関連付けられている。センササンプルの各埋め込みは、センササンプルを処理することによって埋め込みニューラルネットワークによって生成された埋め込みである。より具体的には、所与の埋め込みニューラルネットワークによって生成される各埋め込みは、埋め込みニューラルネットワークの同じトレーニングされたパラメータ値に従って生成される。つまり、システムまたは別のシステムは、各埋め込みニューラルネットワークをトレーニングしてから、パラメータ値をトレーニングされた値に固定する。
【0064】
システムは、関心のある領域を特徴付けるクエリセンササンプルを識別する(ステップ320)。特に、システムは、環境内の関心のある領域を指定するユーザ入力または他の要求を受信することができ、関心のある領域を特徴付けるセンササンプルを識別または生成することができる。例えば、システムは、ユーザインターフェースにおける提示のために、車両のカメラセンサによって生成された車両を取り巻く環境の画像(または他のセンサによってキャプチャされた他のセンサデータの視覚的表現)を提供することができ、ユーザは、関心のある画像の領域を指定する入力を送信することができる。
【0065】
システムは、1つ以上の埋め込みニューラルネットワークを使用してクエリセンササンプルを処理して、クエリセンササンプルの1つ以上のクエリ埋め込みを生成する(ステップ330)。場合によっては、システムは、システムによって維持されている埋め込みニューラルネットワークのセット内の埋め込みニューラルネットワークの各々を使用して、クエリセンササンプルを処理する。他の場合において、ユーザは関心のある特定のプロパティを指定してもよく、システムは、そのプロパティを反映する埋め込みを生成するセットからの埋め込みニューラルネットワークのみを使用してセンササンプルを処理することができる。特定の例として、関心のあるプロパティがオブジェクトタイプであることをクエリが指定する場合、システムは、オブジェクトの速度を反映する埋め込みを生成する埋め込みニューラルネットワークを使用してセンササンプルを処理しなくてもよい。
【0066】
システムは、クエリ埋め込みを使用してセンサデータリポジトリを検索して、関連するセンササンプルを識別する(ステップ340)。
【0067】
特に、クエリ埋め込みの各々に対して、システムは、同じ埋め込みニューラルネットワークによって生成されたセンサデータリポジトリ内の埋め込みから、埋め込み空間内のクエリ埋め込みに最も近い所定の数の埋め込みを識別することができ、センサデータリポジトリの埋め込みから、埋め込み空間内のクエリ埋め込みへの距離が閾値距離よりも近い各埋め込みを識別することができる。次に、システムは、識別された埋め込みに関連付けられたセンササンプルを関連するセンササンプルとして識別することができる。
【0068】
システムは、距離測定、つまり、入力として2つの埋め込みを受信し、2つの埋め込みがどれだけ近いかを表すスコアを返す関数を使用して、ある埋め込みが別の埋め込みにどれだけ近いかを測定することができる。使用することができる距離測度の例には、コサイン類似度およびユークリッド距離を含む。
【0069】
インデックスがスライスされるときに、各クエリ埋め込みに対して、システムは最初にクエリの埋め込みが属するスライスを識別し、次に、上で説明されるようにスライス内を検索して最も近い埋め込みを判定することができる。例えば、システムは、クエリ埋め込みに最も近いプロトタイプを識別することにより、クエリ埋め込みが属するスライスを識別することができる。
【0070】
最初にスライスを識別し、識別されたスライス内の最も近い埋め込みの検索のみを実行することにより、システムは、リポジトリに記憶されているセンササンプルの数が非常に多い場合でも、最も近い埋め込みを識別するために必要な遅延と計算リソースの量を削減できる。
【0071】
いくつかの実装態様では、複数のクエリ埋め込みがあるときに、システムは、各クエリ埋め込みに対して、つまり、所望の特質または特性の各々に対して、関連するセンササンプルを別々に識別する。例えば、システムは、上で説明されるように各クエリ埋め込みに対する関連するセンササンプルを識別し、次に、各関連センササンプルを、センササンプルを識別するために使用されるクエリ埋め込みによって反映される特質または特性に関連付けることができる。
【0072】
他のいくつかの実装態様では、複数のクエリ埋め込みがあるときに、システムは、結果セットを結合して、すべてのクエリ埋め込みに関連する埋め込みを有するセンササンプルのみが返されるようにする。したがって、所望のすべての特質または特性に沿ってクエリセンササンプルと一致するセンササンプルのみが返される。
【0073】
いくつかの実装態様では、システムは、関連するセンササンプルを識別する際にリポジトリ内のセンササンプルに関連付けられたラベルを利用する。例えば、センササンプルのコレクション内のセンササンプルは各々、センササンプルによって特徴付けられる環境領域に位置するオブジェクトのオブジェクトタイプ、例えば、車両、歩行者、道路標識などを識別する高レベルの分類に関連付けられ得る。このような場合、要求は、クエリの高レベル分類を指定してもよい。例えば、クエリセンサのサンプルは、ユーザがなじみのない道路標識のタイプを特徴付けることができ、自律型車両が同様の道路標識に遭遇したときに、ユーザは他のインスタンスを表面化させたいことがある。次に、システムは、例えば、クエリの高レベル分類に一致する高レベル分類を有しない、識別された関連センササンプルを破棄することによって、同じクエリの高レベル分類に関連付けられているコレクション内のセンササンプルのみを検索することができる。
【0074】
関連するセンササンプルが識別されると、システムは様々な方法のいずれかで関連するセンササンプルを使用することができる。
【0075】
例えば、関心のある領域が特定のクラスのオブジェクトを特徴付けるときに、システムは、関連するセンササンプルを使用して、機械学習モデルをトレーニングするためのトレーニングデータを生成し、入力センササンプルが特定のクラスに属するオブジェクトを特徴付けるかどうかを分類することができる。これは、例えば、自律型車両が特定のクラスのオブジェクトを正確に分類できることから利益を得ることがわかったが、その特定のクラスに属するオブジェクトを描画するものとしてラベル付けされたサンプルの数が不十分であるときに有用であり得る。
【0076】
別の例として、関心のある領域が関心のあるイベントが発生している領域であるときに、システムは、識別されたセンササンプルの各々に対して、センササンプルの視覚的表現、任意選択的に、センササンプルの特定の時間ウィンドウ内でキャプチャされた他のセンササンプルを生成し、ユーザデバイスでの提示のための視覚的表現を提供することができる。特定の例として、システムは、各関連するセンササンプルに対して、関連するセンササンプルの指定された時間ウィンドウ内でキャプチャされた他のセンササンプルを識別し、他のセンササンプルおよび関連するセンササンプルのビデオ表現、例えば、時系列で配置された他のセンササンプルおよび関連するセンササンプルからのカメラ画像パッチを示すビデオを生成することができる。
【0077】
本明細書に記載の主題および機能的動作の実施形態は、デジタル電子回路内に、有形的に具現化されたコンピュータソフトウェアもしくはファームウェア内に、本明細書に開示された構造体およびそれらの構造上の等価物を含むコンピュータハードウェア内に、またはそれらのうちの1つ以上を組み合わせて、実装することができる。本明細書に記載の主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行するために、またはデータ処理装置の操作を制御するために有形の非一時的記憶媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つ以上の組み合わせであり得る。代替的に、またはさらに、プログラム命令は、人工的に生成された伝播信号、例えば、データ処理装置によって実行するために好適な受信装置に送信される情報を符号化するために生成される機械生成の電気、光、または電磁信号に符号化され得る。
【0078】
「データ処理装置」という用語は、データ処理ハードウェアを指し、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含し、それらには、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。装置はまた、例えば、GPUまたは別の種類の専用処理サブシステムなどの、既製またはカスタムメイドの並列処理サブシステムであってもよく、またはそれらをさらに含んでもよい。装置はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路であってもよく、またはそれをさらに含んでもよい。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つ以上の組み合わせを構成するコードを任意選択的に含んでもよい。
【0079】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードとも称された、または記載されたコンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、かつ独立型プログラム、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するために好適な他のユニットを含む任意の形態で展開することができる。プログラムは、ファイルシステム内のファイルに対応する場合もあるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントに格納された1つ以上のスクリプト、当該プログラム専用の単一ファイル、または複数の調整ファイル、例えば、1つ以上のモジュール、サブプログラム、もしくはコードの一部を格納するファイルに格納することができる。コンピュータプログラムは、1つのコンピュータまたは1つの場所に配置された複数のコンピュータ上で実行されるように展開するか、複数の場所に分散してデータ通信ネットワークで相互接続することができる。
【0080】
本明細書で使用される「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装の入出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、または物体などの機能の符号化されたブロックであってもよい。各エンジンは、1つ以上のプロセッサとコンピュータ可読媒体を含む、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤー、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の据え置き型もしくはポータブルデバイスなど、適切なタイプのコンピューティングデバイス上に実装することができる。さらに、2つ以上のエンジンは、同じコンピューティングデバイス上で、または異なるコンピューティングデバイス上で実装することができる。
【0081】
本明細書に記載のプロセスおよび論理フローは、1つ以上のプログラマブルコンピュータが1つ以上のコンピュータプログラムを実行して、入力データ上で動作し、かつ出力を生成することで機能を果たすことによって実行することができる。プロセスおよび論理フローはまた、FPGAもしくはASICなどの専用論理回路によって、または特定用途の論理回路と1つ以上のプログラムされたコンピュータとの組み合わせによって実行することができる。
【0082】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用のマイクロプロセッサあるいはその両方、または他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を遂行または実行するための中央処理装置ならびに命令およびデータを記憶するための1つ以上のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完またはその回路に組み込むことができる。一般に、コンピュータはまた、例えば、磁気、光磁気ディスク、もしくは、光ディスクなど、データを記憶するための1つ以上の大容量記憶デバイスを含むか、または、それらからデータを転送するように動作可能に結合されることになる。しかしながら、コンピュータは必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、例えば、ほんの数例を挙げると、携帯電話、電子手帳(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブなどに組み込むことができる。
【0083】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、不揮発性メモリ、媒体、およびメモリデバイスのあらゆる形態を含み、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたは取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。
【0084】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、コンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するための表示デバイス、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタ、ならびにキーボードおよびマウス、トラックボールなどのポインティングデバイス、またはユーザがコンピュータに入力を提供することができる存在感応ディスプレイもしくは他の表面を有する。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形の感覚的フィードバックであり得る。また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをスマートフォンなどのパーソナルデバイスに送信し、メッセージアプリケーションを実行し、代わりにユーザから応答メッセージを受信することにより、ユーザと対話することができる。
【0085】
本明細書は多くの特定の実装態様の詳細を含んでいるが、これらは、いずれかの発明の範囲、または請求され得る事項の範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有の特徴に関する説明として解釈されるべきである。別個の実施形態の文脈で本明細書に記載されている特定の特徴は、単一の実施形態で組み合わせて実装することもできる。逆に、単一の実施形態の文脈で本明細書に記載されている種々の特徴は、複数の実施形態で、別個に、または任意の好適なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組み合わせで作用するものとして上記に説明され、当初はそのように特許請求されることがあるが、場合によっては、特許請求された組み合わせからの1つ以上の特徴が、その組み合わせから削除される可能性もあり、特許請求された組み合わせが、サブコンビネーションまたはサブコンビネーションの変形に向けられる可能性もある。
【0086】
同様に、動作が特定の順序で図面に描写されているが、これは、所望の結果を達成するために、かかる動作がその示された特定の順序、もしくは一連の順序で実行されるべきであること、または例証したすべての動作が実行されるべきであることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利である場合がある。さらに、上で説明される実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてかかる分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品内に共に一体化されてもよく、または複数のソフトウェア製品にパッケージ化されてもよい。
【0087】
主題の特定の実施形態を説明してきた。他の実装形態は、以下の特許請求の範囲内に存在する。例えば、特許請求の範囲に記載された動作は、異なる順序で実行されてもよく、依然として望ましい結果を達成することができる。一例として、添付の図に描写されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または連続した順序を必要としない。特定の場合によっては、マルチタスクおよび並列処理が有利なことがある。
図1
図2
図3