(57)【要約】  コンピュータ記憶媒体に符号化されたコンピュータプログラムを含む、物体が中心とする可能性がある車両の環境内の位置を選択し、それらの物体の特性を決定するための方法、システム、および装置。方法のうちの１つは、車両の外部の環境を特徴付ける入力を受け取ることを含む。環境内の複数の位置の各々に対して、物体の中心がその位置にある可能性を表すそれぞれの第１の物体スコアが決定される。第１の物体スコアに基づいて、複数の位置から、１つ以上の位置が、それぞれの物体が中心とする可能性がある環境内の位置として選択される。選択された位置を中心とする可能性がある物体の物体特性も決定される。【選択図】図３
2021516806.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
車両の外部の環境を特徴付ける入力を受け取ることであって、前記入力は、前記環境内の複数の位置の各々に対して、前記車両の１つ以上のセンサによって捕捉されたセンサデータを含む、受け取ることと、
前記入力から、前記環境内の前記複数の位置の各々に対して、物体の中心が前記位置にある可能性を表すそれぞれの第１の物体スコアを決定することと、
前記第１の物体スコアを使用して、前記複数の位置から、１つ以上の位置を、それぞれの物体が中心とする可能性がある前記環境内の位置として選択することと、
前記選択された位置の各々に対して、前記選択された位置における前記環境を特徴付ける特徴を取得することと、
前記選択された位置の各々に対して、前記選択された位置の前記特徴から、前記選択された位置を中心とする可能性がある前記それぞれの物体の物体特性を決定することと、を含む、方法。
【請求項２】
前記車両の制御に使用するための前記車両の制御システムへの入力として、前記物体特性を識別するデータを提供することをさらに含む、請求項１に記載の方法。
【請求項３】
前記環境内の前記複数の位置の各々に対して前記第１の物体スコアを決定することは、
第１のニューラルネットワークを使用して前記入力を処理することを含み、前記第１のニューラルネットワークは、前記入力を受け取り、前記入力を処理して、前記環境内の前記複数の位置の前記それぞれの第１の物体スコアを含む出力マップを規定する第１のネットワーク出力を生成するように構成されている、請求項１または２のいずれかに記載の方法。
【請求項４】
前記環境内の前記複数の位置の各々に対して前記第１の物体スコアを決定することは、
第１のニューラルネットワークを使用して前記入力を処理することを含み、前記第１のニューラルネットワークは、前記入力を受け取り、前記入力を処理して、複数の出力マップを規定する第１のネットワーク出力を生成するように構成され、各出力マップは、特定の分類の物体の中心が前記環境内の前記複数の位置を中心とする可能性を表す第１の物体スコアを含む、請求項１または２のいずれか１項に記載の方法。
【請求項５】
前記出力マップは、前記第１のニューラルネットワークを通る単一の順方向パス中で生成される、請求項３に記載の方法。
【請求項６】
前記入力は、２次元、３次元、またはより高次元のグリッド内の各空間位置に対応するそれぞれのセンサデータを含み、各空間位置は、前記環境内の前記複数の位置のそれぞれ１つに対応し、前記ネットワーク出力は、前記グリッド内の各空間位置に対するそれぞれの第１の物体スコアを含む、請求項３または５のいずれか１項に記載の方法。
【請求項７】
前記グリッドは２次元であり、前記第１の物体スコアを使用して前記１つ以上の位置を選択することは、
前記２次元グリッドの特定のＮ×Ｍ領域内の空間位置から、最も高い第１の物体スコアを有する空間位置を選択することと、
前記２次元グリッドの前記特定のＮ×Ｍ領域内の他の空間位置のいずれかを選択することを抑制することと、を含む、請求項６に記載の方法。
【請求項８】
前記選択された位置の各々に対して、前記選択された位置の前記特徴から、前記選択された位置を中心とする可能性がある物体の物体特性を決定することは、
第２のニューラルネットワークを使用して、前記選択された位置の前記特徴を含む第２のネットワーク入力を処理することを含み、前記第２のニューラルネットワークは、前記第２のネットワーク入力を処理して、前記位置を中心とする可能性がある前記物体の前記物体特性を規定する第２のネットワーク出力を生成するように構成されている、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記第２のニューラルネットワークは、前記選択された位置のうちの２つ以上に対して前記処理を並行して実行するように構成されている、請求項８に記載の方法。
【請求項１０】
前記物体特性は、前記物体が属する物体クラスを含む、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記物体特性は、前記物体の境界を識別する２次元または３次元の境界ボックスを含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記物体特性は、前記車両からの前記物体の距離を含む、請求項１〜１１のいずれか１項に記載の方法。
【請求項１３】
前記物体特性は、前記物体のマスクを含み、前記マスクは、前記物体を規定する前記入力の部分をマークする、請求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
１つ以上のコンピュータと、前記１つ以上のコンピュータによって実行されたとき、前記１つ以上のコンピュータに動作を実行させるように動作可能な命令を記憶する１つ以上の記憶デバイスと、を備えるシステムであって、前記動作は、
車両の外部の環境を特徴付ける入力を受け取ることであって、前記入力は、前記環境内の複数の位置の各々に対して、１つ以上のセンサによって捕捉されたセンサデータを含む、受け取ることと、
前記入力から、前記環境内の前記複数の位置の各々に対して、物体の中心が前記位置にある可能性を表すそれぞれの第１の物体スコアを決定することと、
前記第１の物体スコアを使用して、前記複数の位置から、１つ以上の位置を、それぞれの物体が中心とする可能性がある前記環境内の位置として選択することと、
前記選択された位置の各々に対して、前記選択された位置における前記環境を特徴付ける特徴を取得することと、
前記選択された位置の各々に対して、前記選択された位置の前記特徴から、前記選択された位置を中心とする可能性がある前記それぞれの物体の物体特性を決定することと、を含む、システム。
【請求項１５】
前記環境内の前記複数の位置の各々に対して前記第１の物体スコアを決定することは、
第１のニューラルネットワークを使用して前記入力を処理することを含み、前記第１のニューラルネットワークは、前記入力を受け取り、前記入力を処理して、前記環境内の前記複数の位置の前記それぞれの第１の物体スコアを含む出力マップを規定する第１のネットワーク出力を生成するように構成されている、請求項１４に記載のシステム。
【請求項１６】
前記環境内の前記複数の位置の各々に対して前記第１の物体スコアを決定することは、
第１のニューラルネットワークを使用して前記入力を処理することを含み、前記第１のニューラルネットワークは、前記入力を受け取り、前記入力を処理して、複数の出力マップを規定する第１のネットワーク出力を生成するように構成され、各出力マップは、特定の分類の物体の中心が前記環境内の前記複数の位置を中心とする可能性を表す第１の物体スコアを含む、請求項１４に記載のシステム。
【請求項１７】
前記出力マップは、前記第１のニューラルネットワークを通る単一の順方向パス中で生成される、請求項１５に記載のシステム。
【請求項１８】
前記入力は、２次元、３次元、または高次元のグリッド内の各空間位置に対応するそれぞれのセンサデータを含み、各空間位置は、前記環境内の前記複数の位置のそれぞれ１つに対応し、前記ネットワーク出力は、前記グリッド内の各空間位置に対するそれぞれの第１の物体スコアを含む、請求項１５または１７のいずれか１項に記載のシステム。
【請求項１９】
前記グリッドは２次元であり、前記第１の物体スコアを使用して前記１つ以上の位置を選択することは、
前記２次元グリッドの特定のＮ×Ｍ領域内の空間位置から、最も高い第１の物体スコアを有する空間位置を選択することと、
前記２次元グリッドの前記特定のＮ×Ｍ領域内の他の空間位置のいずれかを選択することを抑制することと、を含む、請求項１８に記載のシステム。
【請求項２０】
前記選択された位置の各々に対して、前記選択された位置の前記特徴から、前記選択された位置を中心とする可能性がある物体の物体特性を決定することは、
第２のニューラルネットワークを使用して、前記選択された位置の前記特徴を含む第２のネットワーク入力を処理することを含み、前記第２のニューラルネットワークは、前記第２のネットワーク入力を処理して、前記位置を中心とする可能性がある前記物体の前記物体特性を規定する第２のネットワーク出力を生成するように構成されている、請求項１４〜１９のいずれか１項に記載のシステム。
【請求項２１】
１つ以上のコンピュータによって実行されたとき、前記１つ以上のコンピュータに請求項１〜１３のいずれか１項に記載の方法の動作を実行させる命令を記憶する１つ以上のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１８年３月１２日に出願された米国特許出願公開第１５／９１９，０４５号に対する優先権を主張するものであり、その全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
本明細書は、一般的に自律型車両に関連する。
【０００３】
自律型車両は、自動運転する車、船舶、および航空機を含む。自律型車両は、さまざまな車載センサおよびコンピュータシステムを使用して近傍の物体を検出し、その検出を使用して制御とナビゲーションの決定を行う。
【０００４】
一部の自律型車両は、画像内の物体分類のためのニューラルネットワークを実装するコンピュータシステムを有する。たとえば、ニューラルネットワークを使用して、車載カメラで撮像された画像が近傍の車の画像である可能性があると決定することができる。
【０００５】
ニューラルネットワーク、略して、ネットワークは、複数の操作の層を使用して、１つ以上の入力から１つ以上の出力を予測する機械学習モデルである。ニューラルネットワークは、通常、入力層と出力層との間に位置する１つ以上の隠れ層を含む。各層の出力は、ネットワーク内の別の層、たとえば次の隠れ層または出力層への入力として使用される。
【０００６】
ニューラルネットワークの各層は、層への入力に対して実行される１つ以上の変換操作を指定する。一部のニューラルネットワーク層には、ニューロンと呼ばれる操作がある。各ニューロンは１つ以上の入力を受け取り、別のニューラルネットワーク層で受け取られる出力を生成する。たいてい、各ニューロンは他のニューロンから入力を受け取り、各ニューロンは１つ以上の他のニューロンに出力を提供する。
【０００７】
ニューラルネットワークのアーキテクチャは、ネットワークに含まれる層およびその特性、ならびにネットワークの各層のニューロンの接続方法を指定する。換言すれば、アーキテクチャは、他の層への入力として出力を提供する層と、出力の提供方法とを指定する。
【０００８】
各層の変換操作は、変換操作を実装するソフトウェアモジュールがインストールされたコンピュータによって実行される。したがって、操作を実行するとして記述されている層は、層の変換操作を実装するコンピュータが操作を実行することを意味する。
【０００９】
各層は、層の一連のパラメータの現在の値を使用して１つ以上の出力を生成する。したがって、ネットワークのトレーニングには、入力に対する順方向パスの継続的な実行、勾配値の計算、および各層のパラメータセットの現在の値の更新が付随する。ニューラルネットワークがトレーニングされると、最後のパラメータセットを使用して、生成システムで予測を行うことができる。
【００１０】
自律型および半自律型車両システムは、ニューラルネットワークによって生成された予測を使用して運転の決定を行うことができる。
【発明の概要】
【００１１】
この仕様は、車両の環境において物体が中心とする可能性がある１つ以上の位置を選択し、それらの物体の特性を決定するための手法について説明している。
【００１２】
自律型または半自律型車両のシステムは、車両の外部の環境を特徴付ける入力を受け取る。入力は、環境内の位置の各々に対して、車両の１つ以上のセンサによって捕捉されたセンサデータを含む。システムは、入力から、位置の各々に対して、物体の中心がその位置にある可能性を表す第１の物体スコアを決定する。ついで、位置の１つ以上が、物体が中心とする可能性がある環境内の位置として選択される。選択は物体スコアに基づく。次に、車両のシステムは、選択された各位置における環境を特徴付ける特徴を取得する。最後に、システムは、選択された位置の各々に対して、選択された位置の特徴から、選択された位置を中心とする可能性がある物体の物体特性を決定する。この態様の他の実施形態は、各々が方法の動作を実行するように構成された、対応するコンピュータシステム、装置、および１つ以上のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。
【００１３】
１つ以上のコンピュータのシステムが特定の操作または動作を実行するように構成されているとは、システムがそれにインストールされており、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせが動作中に、システムにその操作または動作を実行させることを意味する。１つ以上のコンピュータプログラムが特定の操作または動作を実行するように構成されているとは、１つ以上のプログラムが、データ処理装置によって実行されると、装置に操作または動作を実行させる命令を含むことを意味する。
【００１４】
本明細書に記載の主題の特定の実施形態は、以下の利点の１つ以上を実現するように実施することができる。自律型または半自律型車両のニューラルネットワークサブシステムは、物体が中心にある可能性がある位置を選択し、それらの物体の特性を決定することができる。所与のセンサデータに対して、ニューラルネットワークは一度に、つまりニューラルネットワークの単一の順方向パス中で、位置をすべて選択する。この選択方法は、位置を反復的に選択するよりも、つまりニューラルネットワークの所与の順方向パス中で１つの位置のみを選択するよりも高速であるため好ましい。すべての位置がニューラルネットワークの単一の順方向パス中で選択されるため、それらの位置を中心とする物体の物体特性をバッチで決定することができる。これにより、センサデータが捕捉されてから物体特性が決定されるまでの待ち時間が短縮される。したがって、物体特性を車両の制御システムにより迅速に提供することができるため、制御システムはより正確な運転判断を行うことができる。上記のように位置を選択し、かつ物体特性を決定することで、車両のコンピューティングリソースをより効率的に使用することができる。
【００１５】
最後に、システムは第１の段階で物体が中心に置かれる可能性がある位置を計算効率の高い方法で選択し、ついで第２の異なる段階でそれらの物体の特性を決定するため、第２の段階は計算コストが高く、より多くの情報に依拠し得る。これにより、物体特性の予測がより正確になる。
【００１６】
本明細書の主題の１つまたは複数の実施形態の詳細を、添付の図面および以下の説明に記載する。主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から、明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】例示的なシステムを示す図である。
【図２】物体の中心を予測し、かつ物体特性を決定するための例示的なプロセスのフローチャートである。
【図３】例示的なニューラルネットワークサブシステムを示す図である。
【図４】物体の中心を予測するためのニューラルネットワークの例示的なアーキテクチャを示す図である。
【図５】物体の中心を選択するための例示的なプロセスのフローチャートである。
【図６】選択された位置を中心とする可能性がある物体の特性を決定するためのニューラルネットワークの例示的なアーキテクチャを示す図である。
【図７】物体スコアの例示的な出力マップを示す図である。
【００１８】
各種図面内の同様の参照番号および名称は、同様の要素を示す。
【発明を実施するための形態】
【００１９】
本明細書では、自律型または半自律型車両がニューラルネットワークシステムを使用して、車両の外部の環境を特徴付けるセンサデータに基づいて物体を検出し、物体特性を決定する方法について説明する。特に、ニューラルネットワークシステムは、物体の中心が環境内の特定の位置にある可能性を決定することができる。位置が物体の中心に対応していることを一定の確かさをもって決定した後、ニューラルネットワークシステムは、その物体の物体特性を決定することができる。ニューラルネットワークシステムは、少数の例を挙げると、車両、歩行者、自転車、車線マーカーなど、あらゆるクラスの物体の特性を検出および決定するようにトレーニングすることができる。
【００２０】
図１は、例示的なシステム１００を示す図である。システム１００は、トレーニングシステム１１０と搭載システム１３０とを含む。
【００２１】
搭載システム１３０は、車両１２２に物理的に搭載されている。車両１２２に搭載されているということは、搭載システム１３０が、車両１２２と共に移動する構成要素、たとえば、電源、計算ハードウェア、およびセンサを含むことを意味する。図１の車両１２２は自動車として図示されているが、搭載システム１３０は、任意のタイプの車両に搭載することができる。車両１２２は、物体検出および特性を使用して完全に自律的な運転の決定を通知する、完全自律型車両であってもよい。車両１２２はまた、物体検出および特性を使用して人間の運転者を支援する、半自律型車両であってもよい。たとえば、人間の運転手が別の車両と衝突する可能性があることをニューラルネットワークシステムが示す場合、車両１２２は自律的にブレーキをかけることができる。
【００２２】
搭載システム１３０は、１つ以上のセンササブシステム１３２を含む。センササブシステム１３２は、環境内の表面からの電磁放射の反射を受ける構成要素の組み合わせを含む。たとえば、センササブシステムは、レーザー光の反射を検出するライダーシステム、電波の反射を検出するレーダーシステム、可視光の反射を検出するカメラシステム、またはこれら３つの組み合わせを含む。いくつかの実装形態では、１つ以上のセンササブシステム１３２は、音声センサを含む。音声センサは、たとえば緊急車両のサイレンを検出することができる。
【００２３】
センササブシステム１３２は、搭載ニューラルネットワークサブシステム１３４に入力センサデータ１５５を提供する。入力センサデータ１５５は、データの複数のチャネルを含んでいてもよく、各チャネルは、反射された電磁放射の異なる特性を表す。したがって、入力センサデータ１５５の複数のチャネルは、同じセンサからの測定値から生成され得る。センササブシステム１３２は、車両１２２が環境内を移動するときに、所定の時間間隔、たとえば１０分の１秒ごとに、入力センサデータ１５５を継続的に収集する。
【００２４】
センササブシステム１３２、または搭載ニューラルネットワークサブシステム１３４、またはその２つの何らかの組み合わせは、生センサデータを入力センサデータ１５５の複数のチャネルに変換する。そのために、搭載システム１２０は、生センサデータのさまざまな特徴を共通の座標系に投影することができる。
【００２５】
搭載ニューラルネットワークサブシステム１３４は、１つ以上のニューラルネットワークを含み得る。たとえば、搭載ニューラルネットワークサブシステム１３４は、中心予測ニューラルネットワークと物体特性ニューラルネットワークとを含み得る。これらニューラルネットワークの各々については、後で詳しく説明する。搭載ニューラルネットワークサブシステム１３４は、そのニューラルネットワークの各層の操作を実施する。したがって、搭載ニューラルネットワークサブシステム１３４は、ニューラルネットワークのアーキテクチャに従ってニューラルネットワークの各層のそれぞれの操作を実施するソフトウェアまたはハードウェアモジュールを有する１つ以上のコンピューティングデバイスを含む。
【００２６】
搭載ニューラルネットワークサブシステム１３４は、トレーニングシステム１１０から受け取ったモデルパラメータ値の集まり１７２をロードすることにより、ニューラルネットワークの各層の操作を実施することができる。論理的に分離されているように図示されているが、モデルパラメータ値１７２および操作を実行するソフトウェアもしくはハードウェアモジュールは、実際には同じコンピューティングデバイス上に配置されているか、または実行しているのがソフトウェアモジュールの場合は、同じメモリデバイス内に格納されている。
【００２７】
搭載ニューラルネットワークサブシステム１３４は、ハードウェア加速または他の専用コンピューティングデバイスを使用して、ニューラルネットワークの１つ以上の層の操作を実施することができる。たとえば、いくつかの層のいくつかの操作は、高度に並列化されたハードウェアによって、たとえば、グラフィックス処理ユニットまたは別の種類の特殊なコンピューティングデバイスによって実行され得る。換言すれば、各層のすべての操作が搭載ニューラルネットワークサブシステム１３４の中央処理装置（ＣＰＵ）によって実行される必要があるわけではない。
【００２８】
搭載ニューラルネットワークサブシステム１３４は、入力センサデータ１５５およびニューラルネットワークを使用して、車両の外部の環境にあると予測される物体の物体特性１６５を決定する。計画サブシステム１３６が物体特性１６５を受け取ると、計画サブシステム１３６は、物体特性１６５を使用して、完全自律または半自律運転の決定を行うことができる。たとえば、計画サブシステム１３６は、高速道路上の他の車両の中または周囲をナビゲートするための完全自律的計画を生成することができる。別の例として、計画サブシステム１３６は、人間の運転手がブレーキをかけるための半自律的勧告を生成することができる。
【００２９】
ユーザインターフェースサブシステム１３８は、物体特性１６５を受け取ることができ、近傍の物体、たとえば、近傍の車両の位置を示すユーザインターフェースプレゼンテーションを生成することができる。たとえば、ユーザインターフェースサブシステム１３８は、車両によって占有される可能性がある空間の領域の表現を含む画像またはビデオデータを有するユーザインターフェースプレゼンテーションを生成することができる。ついで、搭載ディスプレイデバイスは、車両１２２の乗員のためのユーザインターフェースプレゼンテーションを表示することができる。
【００３０】
搭載ニューラルネットワークサブシステム１３４は、入力センサデータ１５５を使用してトレーニングデータ１２３を生成することもできる。トレーニングデータ１２３は、入力センサデータの異なるチャネルの投影された表現を含み得る。搭載システム１３０は、たとえば、それが生成されるときはいつでも継続的に、オフラインバッチまたはオンライン方式で、トレーニングシステム１１０にトレーニングデータ１２３を提供することができる。
【００３１】
トレーニングシステム１１０は、通常、１つ以上の位置に数百または数千のコンピュータを有する分散型コンピューティングシステムであり得るデータセンター１１２内でホストされる。
【００３２】
トレーニングシステム１１０は、物体予測を行い、かつ入力センサデータから物体特性を決定するように設計されたニューラルネットワークの各層の操作を実施することができるトレーニングニューラルネットワークサブシステム１１４を含む。トレーニングニューラルネットワークサブシステム１１４は、ニューラルネットワークのアーキテクチャに従って１つ以上のニューラルネットワークの各層のそれぞれの操作を実施するソフトウェアまたはハードウェアモジュールを有する複数のコンピューティングデバイスを含む。
【００３３】
トレーニングニューラルネットワークは、通常、搭載ニューラルネットワークと同じアーキテクチャとパラメータとを有する。しかしながら、トレーニングシステム１１０は、各層の操作を演算するために同じハードウェアを使用する必要はない。換言すれば、トレーニングシステム１１０は、ＣＰＵのみ、高度に並列化されたハードウェア、またはこれらのいくつかの組み合わせを使用することができる。
【００３４】
トレーニングニューラルネットワークサブシステム１１４は、モデルパラメータ値の集まり１７０に格納された現在のパラメータ値１１５を使用して、ニューラルネットワークの各層の操作を演算することができる。論理的に分離されているように図示されているが、モデルパラメータ値１７０および操作を実行するソフトウェアもしくはハードウェアモジュールは、実際には同じコンピューティングデバイス上か、または同じメモリデバイス上に配置されている。
【００３５】
トレーニングニューラルネットワークサブシステム１１４は、入力としてトレーニング例１２３を受け取ることができる。トレーニング例１２３は、自動でラベル付けされたトレーニングデータ１２５、人間によってラベル付けされたトレーニングデータ１２７、またはその２つの何らかの組み合わせを含み得る。トレーニング例１２３の各々は、入力センサデータの異なるチャネルの表現、ならびに入力センサデータおよび物体の特性によって表される空間の領域内におけるそれらの物体の中心を示す１つ以上のラベルを含む。
【００３６】
トレーニングニューラルネットワークサブシステム１１４は、各トレーニング例１２３に対して、１つ以上の物体予測１３５を生成することができ、各物体予測は、物体検出と検出された各物体の特性とを含む。トレーニングエンジン１１６は、物体予測１３５を分析し、物体予測をトレーニング例１２３のラベルと比較する。２つが異なる場合は、エラーが表示される。ついで、トレーニングエンジン１１６は、適切な更新技術を用いることにより、更新されたモデルパラメータ値１４５を生成する。たとえば、モデルパラメータは、個々のモデルパラメータに関する誤差の勾配を計算することによって更新することができる。誤差の影響を減らすために、勾配から導出された値をパラメータの現在の値から減算またはパラメータの現在の値に追加することができる。これは、逆伝播をともなう確率的勾配降下法として知られている。当技術分野で知られている他の技法を使用して、モデルパラメータを更新することもできる。ついで、トレーニングエンジン１１６は、更新されたモデルパラメータ値１４５を使用して、モデルパラメータ値の集まり１７０を更新することができる。
【００３７】
トレーニングが完了した後、トレーニングシステム１１０は、完全自律または半自律運転の決定を行う際に使用するために、モデルパラメータ値の最終セット１７１を搭載システム１２０に提供することができる。トレーニングシステム１１０は、搭載システム１２０への有線または無線接続によってモデルパラメータ値の最終セット１７１を提供することができる。
【００３８】
図２は、物体中心を予測し、かつ物体特性を決定するための例示的なプロセスのフローチャートである。図２の例示的なプロセスは、図１の搭載ニューラルネットワークサブシステム１３４によって実行することができる。図２の例示的なプロセスはまた、ニューラルネットワークのトレーニング中にトレーニングニューラルネットワークサブシステム１１４によって実行することができる。以下、図２の例示的なプロセスを、搭載ニューラルネットワークサブシステムを参照して説明する。
【００３９】
まず、ニューラルネットワークサブシステムは、車両のセンサから車両の環境を特徴付ける入力センサデータを受け取る（２１０）。入力センサデータは、ライダーセンサによって検出されたレーザー光の反射、レーダーセンサによって検出された電波の反射、カメラによって検出された光の反射、またはこれら３つの任意の組み合わせを含み得る。
【００４０】
ニューラルネットワークサブシステムは、入力センサデータを処理して、それを中心予測ニューラルネットワークに提供する準備をする。たとえば、入力センサデータを投影面にマッピングすることができる。投影面の各位置は、車両の周囲の領域に対応している。すべての入力センサデータが同じ座標系に投影される限り、システムは任意の適切な投影を使用することができる。たとえば、システムはトップダウン投影または透視投影を使用することができる。トップダウン投影は、車両自体の上方の位置から車両を取り囲む領域への入力センサデータの投影である。したがって、トップダウン投影の投影面は、車両が着座する表面に実質的に平行である。透視投影は、入力センサデータを車両の前、後ろ、または横の平面に投影したものである。システムは、各予測を、中心予測ニューラルネットワークに提供されるテンソルとして表すことができる。
【００４１】
図２の例示的なプロセスが搭載ニューラルネットワークサブシステムによって実行される場合、搭載ニューラルネットワークサブシステムは、入力センサデータを受け取り、対応する投影を生成することができる。図２の例示的なプロセスがトレーニングニューラルネットワークシステムによって実行される場合、投影は、搭載システムまたは別のシステムによって入力センサデータからすでに生成されているであろう。
【００４２】
ニューラルネットワークサブシステムは、投影センサデータを入力として中心予測ニューラルネットワークに提供する（２２０）。中心予測ニューラルネットワークのアーキテクチャは、図４を参照して以下でより詳細に説明する。
【００４３】
ニューラルネットワークサブシステムは、中心予測ニューラルネットワークから物体スコアの出力マップを受け取る（２３０）。出力マップの投影面は、通常、中心予測ニューラルネットワークに提供される投影センサデータの投影面と同じである。たとえば、ニューラルネットワークサブシステムが、投影センサデータの透視投影を中心予測ニューラルネットワークに提供する場合、物体スコアの出力マップは、通常、透視マップ、たとえば、車両の前の平面のマップとなる。しかし、別の実装形態では、中心予測ニューラルネットワークは、１つの平面、たとえば、透視平面の複数の投影を別の平面の投影、たとえばトップダウン投影に変換するようにトレーニングされている。
【００４４】
出力マップ内の各位置は、投影センサデータの点に対応し、物体の中心が環境内の対応する位置にある可能性を表す数値スコアと関連付けられている。たとえば、中心予測ニューラルネットワークは、０〜１の範囲のスコアをともなう出力マップを生成することができる。０は、物体が出力マップ内の特定の位置を中心とする可能性が低いことを示し、１は、物体が出力マップ内の特定の位置を中心とする可能性が高いことを示す。
【００４５】
中心予測ニューラルネットワークは、単一の順方向パス中で物体スコアの出力マップを生成することができる。換言すれば、所与の投影センサデータに対して、中心予測ニューラルネットワークは物体スコアを一度に１つ決定する必要はない。むしろ、中心予測ニューラルネットワークは、所与の投影センサデータの物体スコアを一度にすべて生成することができる。これは、物体検出への「フルコンテキスト」アプローチである。これは、どの時点においても入力データの小さなウィンドウのみが検査される物体検出への「スライディングウィンドウ」アプローチと区別できる。フルコンテキストアプローチは、入力センサデータの全体的なコンテキストを見ないで物体が何であるかを判別することが難しい遠距離で物体を検出する場合に特に有益である。
【００４６】
いくつかの実装形態では、中心予測ニューラルネットワークは、物体スコアの複数の出力マップを生成することができる。これらの実装形態では、各出力マップは、異なる物体分類、つまり異なる物体タイプに対応する。つまり、特定の出力マップにおける各物体スコアは、特定の分類の物体の中心が出力マップ内の関連する位置にある可能性を表す。たとえば、１つの出力マップは、歩行者の中心が関連する位置にある可能性を各々表す物体スコアを有し得る。物体スコアの範囲が０〜１である例を続けると、物体スコアが１の場合は、歩行者の中心が出力マップ内の特定の位置にある可能性が高いことを示し、物体スコアが０の場合は、歩行者の中心が特定の位置にある可能性が低いことを示す。車両や道路標識など、他の分類の物体がこれらの特定の位置に存在しても、それだけで物体スコアが高くなることはない。
【００４７】
ついで、中心予測ニューラルネットワークは、車両、道路標識、および他の分類の物体の個別の出力マップを生成することができる。
【００４８】
いくつかの実装形態では、中心予測ニューラルネットワークは、複数の投影を深さ次元にスタックすることによって３次元出力マップを生成することができる。中心予測ニューラルネットワークは、より高次元の出力マップを生成することもできる。たとえば、中心予測ニューラルネットワークは、第４の次元は時間である、４次元の出力マップを生成することができる。４次元の出力マップは、物体の中心がある可能性がある３次元空間の位置を描写しているが、その位置は経時的に変動し得る。
【００４９】
次に、ニューラルネットワークサブシステムは、出力マップ内の数値物体スコアに基づいて、物体の中心がある可能性がある位置を予測する（２４０）。一実装形態では、ニューラルネットワークサブシステムは、しきい値物体スコアを規定する。たとえば、ニューラルネットワークサブシステムは、０．８以上の物体スコアと関連付けられた出力マップ内のすべての位置を選択することができる。このような場合、０．８はしきい値物体スコアである。０．８未満の物体スコアと関連付けられている位置は選択されない。
【００５０】
場合によっては、ニューラルネットワークサブシステムは、しきい値物体スコアを超えるいくつかの位置を抑制、つまり選択解除することがある。たとえば、出力マップ内の３つの隣接する位置が、それぞれ０．８、０．８、および０．９の物体スコアと関連付けられ得る。０．８以上の物体スコアと関連付けられた位置が選択される上記の例を続けると、それら３つの隣接する位置の各々は０．８以上の物体スコアと関連付けられているため、各々が選択される。ただし、位置が隣接しているので、それぞれのスコアは各々、同じ物体が存在していると考えられるためである可能性が高い。これは、位置のサイズが小さい場合、たとえば１ピクセル程度の場合に特に当てはまる。換言すれば、３つの位置すべてがしきい値物体スコアを満たしたとしても、３つの位置のうち１つだけが予測された物体の中心を表している可能性がある。そのような場合、領域内で最も高い物体スコアを選択できるが、一方で同じ領域内の他の物体スコアは、それらがしきい値物体スコアを超えていても抑制される。このプロセスは、同じ物体、つまり、それぞれが同じ物体に対応する複数の位置が複数選択されるのを防ぐのに役立つ。選択された物体の局所的な抑制については、図５を参照してより詳細に説明する。
【００５１】
一実装形態では、ニューラルネットワークサブシステムは、物体中心がある可能性がある位置を予測した後、それらの選択された位置がセンササブシステムに提供されるので、センササブシステムは選択された位置の１つ以上に焦点を合わせることができる。たとえば、カメラシステムの場合、カメラは１つ以上の特定の関心位置に焦点を合わせることができる。そうすることは、より広いカメラ視野では不可能である小さな領域で複数の物体を識別するのに役立つ場合がある。
【００５２】
位置を選択した後、ニューラルネットワークサブシステムは、選択された位置における環境を特徴付ける特徴を取得する（２５０）。一実装形態では、ニューラルネットワークサブシステムは、中心予測ニューラルネットワークから特徴を受け取る。別の実装形態では、別個のシステムから特徴を受け取る。
【００５３】
環境内の任意の位置について、ニューラルネットワークサブシステムは、その任意の位置で環境を特徴付けるさまざまな異なる特徴のいずれでも取得することができる。中心予測ニューラルネットワークおよび以下で説明する物体特性ニューラルネットワークは一緒にトレーニングされているため、中心予測ニューラルネットワークは、物体特性ニューラルネットワークにとって有用な特徴を出力するパラメータを学習する。特徴は、中心予測ニューラルネットワークの畳み込み層によって生成された入力センサデータを抽象化したものである。たとえば、中心予測ニューラルネットワークは、選択された位置に中心がある可能性がある物体の推定スケールを出力することを学習することができる。
【００５４】
ニューラルネットワークサブシステムは、物体特性ニューラルネットワークに、選択された位置の出力マップ、選択された位置における環境を特徴付ける機能、および入力センサデータを提供する（２６０）。一実装形態では、選択された位置、特徴、および入力センサデータは最初、物体特性ニューラルネットワークのための入力のバッチを繰り返し準備する中間ニューラルネットワークに提供される。各バッチの各入力は、物体の中心がある可能性がある位置に対応する。ついで、入力のバッチが物体特性ニューラルネットワークに提供される。物体特性ニューラルネットワークは、入力のバッチを処理して、各位置に中心がある可能性がある物体の物体特性を生成する。別の実装形態では、中間ニューラルネットワークおよび物体特性ニューラルネットワークは、入力のバッチを準備し、かつそれらの入力のバッチを処理する単一のニューラルネットワークに統合される。物体特性ニューラルネットワークは、単一の順方向パス中ですべての物体の特性を出力するように構成されている。
【００５５】
一実装形態では、物体特性ニューラルネットワークは、選択された各位置に中心がある可能性がある物体を分類する。たとえば、「車」、「歩行者」、「自転車」、「道路標示」、および「道路標識」の分類が考えられる。そのトレーニングと３つの入力に基づいて、物体特性ニューラルネットワークはこれらの分類の１つを選択することができる。物体特性ニューラルネットワークは、予測された各物体の境界ボックスも規定することができる。境界ボックスは、物体の境界または縁を識別するボックスである。境界ボックスは、２次元または３次元にすることができる。車両の表示インターフェースは、このような境界ボックスを半自律車両の運転者に対して表示することができる。ニューラルネットワークサブシステムは、車両のナビゲーションで使用するために、車両の計画システムに境界ボックスを提供することもできる。いくつかの実装形態では、物体特性ニューラルネットワークは、各物体の「マスク」を予測することができる。マスクは境界ボックスとは異なり、それぞれの物体にぴったり合わせられる。つまり、物体の縁をより厳密に識別する。マスクは、物体を規定する入力センサデータの部分にマークを付けることができる。
【００５６】
別の実装形態では、物体特性ニューラルネットワークは、予測された物体が車両からどれだけ離れているかを決定する。
【００５７】
物体特性ニューラルネットワークは、複数の物体の特性を並行して決定できる。
【００５８】
ニューラルネットワークサブシステムが物体特性ニューラルネットワークから物体特性を受け取ると（２７０）、それらの物体特性を車両の制御システムに提供して、車両の制御に使用することができる。たとえば、物体特性ニューラルネットワークが特定の物体を歩行者として分類し、その歩行者が車両のフロントバンパーから５フィートのところにいると決定した場合、制御システムはこれらの特性に応じて、車にブレーキをかけさせることができる。
【００５９】
図３は、例示的なニューラルネットワークサブシステムの図である。ニューラルネットワークサブシステム３２０は、車両に配置することができる。ニューラルネットワークサブシステム３２０はまた、オフライントレーニングシステムに配置されたトレーニングニューラルネットワークサブシステムであってもよい。
【００６０】
ニューラルネットワークサブシステム３２０が車両に配置されている場合、それは車両のセンササブシステムから入力センサデータ３１０を受け取る。具体的には、ニューラルネットワークサブシステム３２０の前処理モジュール３２２は、入力センサデータ３１０を受け取る。前処理モジュール３２２は、入力センサデータ３１０を処理して、それを中心予測ニューラルネットワーク３２４に提供する準備をする。特に、前処理モジュール３２２は、図２を参照して説明したように、入力センサデータを透視投影面またはトップダウン投影面にマッピングする。状況によっては、前処理が不要な場合がある。たとえば、入力センサデータがカメラ画像のみを含む場合、それはすでに、中心予測ニューラルネットワーク３２４によって処理することができる形式になっている。
【００６１】
中心予測ニューラルネットワーク３２４は、前処理モジュール３２２によって準備された投影センサデータを前処理モジュール３２２から受け取る。
【００６２】
中心予測ニューラルネットワーク３２４は、ニューラルネットワークの単一の順方向パス中で物体スコアの出力マップを生成するようにトレーニングされている。換言すれば、所与の投影センサデータについて、中心予測ニューラルネットワーク３２４は、１つの物体スコアを決定し、それをメモリに格納して繰り返す必要はない。むしろ、中心予測ニューラルネットワーク３２４は、所与の投影センサデータの物体スコアを一度にすべて生成することができる。メモリからのデータのフェッチには時間がかかるため、これは有利である。
【００６３】
出力マップの投影面は、通常、中心予測ニューラルネットワーク３２４に提供される投影センサデータの投影面と同じである。出力マップ内の各位置は、投影センサデータの点に対応し、物体の中心が環境内の対応する位置にある可能性を表す数値スコアと関連付けられている。
【００６４】
図３に図示されたニューラルネットワークサブシステム３２０の実装において、中心予測ニューラルネットワークはまた、選択された位置における環境を特徴付ける特徴を生成するようにトレーニングされている。ただし、他の実装では、個別のモジュールまたはニューラルネットワークが、選択した位置における環境を特徴付ける特徴を生成することができる。
【００６５】
中心予測ニューラルネットワーク３２４は、物体スコアの出力マップを中心選択モジュール３２６および物体特性ニューラルネットワーク３２８に提供する。
【００６６】
中心選択モジュール３２６は、出力マップ内の数値物体スコアに基づいて、物体の中心がある可能性がある位置を予測する。この選択プロセスを、図５を参照してより詳細に説明する。
【００６７】
中心選択モジュール３２６は、選択された位置を物体特性ニューラルネットワーク３２８に提供する。中心選択モジュール３２６はまた、選択された位置３４０をメモリ３３０に書き込むことができる。
【００６８】
物体特性ニューラルネットワーク３２８は、選択された位置、選択された位置を特徴付ける特徴、および入力センサデータを受け取る。図３に示すニューラルネットワークサブシステム３２０の実装では、物体特性ニューラルネットワーク３２８は、まず、選択された位置、特徴、および入力センサデータからの入力のバッチを準備する。各バッチにおける各入力は、選択された位置に対応する。ついで、選択された位置に中心がある可能性がある物体の物体特性が、それらの入力のバッチに基づいて決定される。別の実装形態では、選択された位置、特徴、および入力センサデータは、まず、物体特性ニューラルネットワークの入力のバッチを準備する中間ニューラルネットワークに提供される。ただし、図３に図示するように、これら２つのネットワークは、入力のバッチを準備して、かつ物体特性を決定する単一の物体特性ニューラルネットワークに統合される。
【００６９】
物体特性ニューラルネットワーク３２８は、入力のバッチをすべて一度に処理し、すべての物体の特性を並行して、すなわちネットワークを通る単一の順方向パス中で決定するようにトレーニングされている。物体特性は、前述のとおり、物体分類と物体境界ボックスを含む。物体特性ニューラルネットワーク３２８は、車両の計画およびユーザインターフェースサブシステムに物体特性を提供して、車両が運転決定を行う際にそれらの特性を使用できるようにする。
【００７０】
図４は、物体中心を予測するための中心予測ニューラルネットワーク４００の例示的なアーキテクチャを示す。
【００７１】
中心予測ニューラルネットワーク４００は、入力層４１０を有する。入力層４１０は、投影センサデータのテンソルを受け取る。図４は入力層を１つのみ示しているが、中心予測ニューラルネットワーク４００は、入力センサデータの複数のチャネルを受け取るために複数の入力層を有することができる。各チャネルは、たとえば可視光、レーザー光、電波などの異なるタイプの反射電磁放射を表す。
【００７２】
中心予測ニューラルネットワーク４００は、複数の畳み込み層、たとえば、畳み込み層４２０ａ、４２０ｂ、４４０ａ、および４４０ｂを有する。畳み込み層は、投影センサデータにおける空間的に局所の相関を利用するニューロン接続を有する。これを行うために、畳み込み層は疎な接続を有し、１つの畳み込み層のニューロンは、前のニューラルネットワーク層のニューロンの小さなサブセットからのみ入力を受け取る。ニューロンが入力を受け取る他のニューロンは、そのニューロンの受容野を規定する。
【００７３】
畳み込み層は、各層に１つ以上のフィルタを規定する１つ以上のパラメータを有し、各フィルタは１つ以上のパラメータを有する。畳み込みニューラルネットワーク層は、各ニューロンのフィルタと層の入力との畳み込みを実行することによって出力を生成する。畳み込みは、それぞれのニューロンのフィルタのパラメータとそのニューロンへの入力とのドット積である。出力は、そのフィルタのアクティベーションマップである。換言すれば、中心予測ニューラルネットワーク４００は、投影センサデータ内の位置で特定のタイプの特徴を検出したときにアクティブになるフィルタを学習、つまりそのフィルタを有するようにトレーニングされている。すべてのフィルタのアクティベーションマップをスタックすると、畳み込みニューラルネットワーク層の完全な出力が形成される。したがって、あらゆる出力は、投影センサデータの小さな領域を観察し、かつ同じ活性化マップ内のニューロンとパラメータを共有するニューロンの出力として解釈することができる。
【００７４】
畳み込み層は重み共有を採用しているため、同じ出力チャネル内のすべてのニューロンは同じ重みを有する。これにより、投影センサデータ内の特徴を検出するときに、並進不変性が提供される。
【００７５】
中心予測ニューラルネットワーク４００はまた、畳み込み層の間に散在する、空間−深さ層４３０を含む、１つ以上の空間−深さ層を有し得る。空間−深さ層４３０は、二次元テンソル要素のグループを複数の三次元深さスライスにスタックすることにより、投影センサデータのテンソルの情報を変換する。一般に、空間−深さ層は、Ｎ×Ｍ×１入力テンソルの入力要素のＧグループを識別し、入力要素を（Ｎ／Ｃ）×（Ｍ／Ｄ）×Ｇ出力テンソルに変換する。ここで、ＣおよびＤは、グループがどのように関連しているかを表す定数であり、Ｇは、Ｃ×Ｄに等しい。空間−深さ層４３０への入力がすでに複数の深さスライスを含んでいるとき、システムは、空間−深さ層４３０を深さスライスの各々に適用することができる。
【００７６】
空間−深さ層４３０は、ネットワーク内の後続の層の有効な受容野を増加させ、投影センサデータの空間次元を圧縮する。したがって、各層はより小さなフィルタを学習する。これにより、ニューラルネットワークシステムは、精度を失うことなく後続の畳み込み層の演算をより効率的に実行することができる。
【００７７】
中心予測ニューラルネットワーク４００はまた、入力として１つ以上のテンソルを受け取り、深さ次元でテンソルを連結する深さ連結層４８０を有する。この操作は、入力テンソルを「スタック」して新しいテンソルを生成するものとして説明することができる。たとえば、深さ連結層は、センサデータの複数のチャネルの入力を４８０スタックすることができる。
【００７８】
中心予測ニューラルネットワーク４００はまた、物体中心予測を生成する中心予測層４５０を含む。中心予測層４５０によって生成された物体中心予測は、物体中心がある可能性がある特定の位置を識別する特徴マップの形を取る。特徴マップ内の各点は、物体の中心が特徴マップ内のその点に対応する環境内の位置にある可能性を表す数値スコアと関連付けられている。中心予測層４５０によって生成されたスコアは、０〜１の範囲外であり得る実数である。いくつかの実装形態では、中心予測層４５０は、層への入力で物体中心が検出されたときにアクティブになるようにトレーニングされたフィルタを有する畳み込み層である。
【００７９】
中心予測ニューラルネットワーク４００が１つ以上の空間−深さ層を有する場合、中心予測ニューラルネットワーク４００はまた、深さ−空間層４６０ａおよび４６０ｂを含む１つ以上の深さ−空間層を有し得る。深さ−空間層は、空間−深さ層によって実行される変換を反転させる。これらの層は、物体中心予測の空間分解能を高めるのに役立つ。
【００８０】
ロジスティック層４７０は、中心予測層４５０から特徴マップを受け取り、０と１との間の物体スコアの出力マップを生成する。前の図を参照して説明したように、出力マップ内の各位置は、投影センサデータ内の点に対応し、物体の中心が環境内の対応する位置にある可能性を表す数値スコアと関連付けられている。
【００８１】
中心予測ニューラルネットワーク４００はまた、特徴出力層４９０を有する。特徴出力層４９０は、環境内の各位置に対してそれぞれの特徴ベクトルを生成する最終的な畳み込み層である。特徴は、中心予測ニューラルネットワーク４００の畳み込み層における投影センサデータの複数の畳み込みの結果である。
【００８２】
図５は、物体中心を選択するための例示的なプロセスのフローチャートである。便宜上、例示的なプロセスは、１つ以上の位置に配置された１つ以上のコンピュータのシステムによって実行されるものとして説明される。たとえば、図３の中心選択モジュール３２６は、図５の例示的なプロセスを実行することができる。
【００８３】
まず、システムは、中心予測ニューラルネットワークから物体スコアの出力マップを受け取る（５１０）。出力マップ内の各位置は、投影センサデータの点に対応し、物体の中心が環境内の対応する位置にある可能性を表す数値スコアと関連付けられている。
【００８４】
次に、システムは所定のしきい値物体スコアを識別し、そのしきい値物体スコアを満たす物体スコアと関連付けられたすべての位置を事前選択する（５２０）。たとえば、中心選択モジュールは、０．８以上の物体スコアと関連付けられた出力マップ内のすべての位置を事前選択することができる。このような場合、０．８はしきい値物体スコアである。０．８未満の物体スコアと関連付けられている位置は事前選択されない。
【００８５】
事前選択に続いて、システムは、出力マップ内の位置のＮ×Ｍ領域ごとに、Ｎ×Ｍ領域内で最も高い物体スコアと関連付けられている単一の事前選択された位置があれば、それを選択する（５３０）。
【００８６】
たとえば、出力マップ内の３つの隣接する位置が、それぞれ０．８、０．８、および０．９の物体スコアと関連付けられ得る。上記の例を続けると、それら３つの隣接する位置の各々は０．８以上の物体スコアと関連付けられているため、各々が選択される。ただし、位置が隣接しているので、それぞれの物体スコアは各々、同じ物体が存在していると考えられるためである可能性が高い。これは、位置のサイズが小さい場合、たとえば１ピクセル程度の場合に特に当てはまる。換言すれば、３つの位置すべてがしきい値物体スコアを満たしたとしても、３つの位置のうち１つだけが予測された物体の中心を表している可能性がある。そのような場合、システムは、領域内で最も高い物体スコアと関連付けられている位置を選択する一方で、同じ領域内の他の位置がしきい値物体スコアを超える物体スコアと関連付けられていたとしても、同じ領域内の他の位置は選択しない（５４０）。このプロセスは、同じ物体が複数選択されるのを防ぐのに役立つ。
【００８７】
１つのＮ×Ｍ領域内の位置の選択は、別のＮ×Ｍ領域内の位置の選択に影響を与えないため、異なる領域内の位置を同時に選択することができる。ＮおよびＭは、位置サイズおよび一般的な物体サイズに基づいて最適化することができる。たとえば、検出された物体が通常きわめて大きい場合、ＮおよびＭを増やすことができる。一方、検出された物体が通常きわめて小さい場合、ＮおよびＭを減らすことができる。
【００８８】
一実装形態では、ＮおよびＭは各々３に等しい整数であり、出力マップ内の各位置は、投影センサデータ内の単一のピクセルに対応する。換言すれば、出力マップ内のＮ×Ｍ領域は、投影センサデータ内のピクセルの３×３領域に対応する。他の実装形態では、ＮおよびＭは、たとえば、それぞれ３および４である。
【００８９】
図５の例示的なプロセスは、物体スコアの出力マップ内のすべてのＮ×Ｍ領域に対して並行して実行され得る。この領域の並列化は、一度に１つずつ位置を選択するよりも高速であり、物体の抑制効果が空間的に局所であるため好ましい。換言すれば、同じ位置で複数の物体を繰り返し検出すべきではないが、１つの位置での１つの物体の検出は、別の位置での別の物体の検出にはほとんど影響しない。
【００９０】
一実装形態では、図５の例示的なプロセスは、物体特性ニューラルネットワークが各物体の物体特性を出力した後にもう一度実行される。これにより、同じ位置で複数の物体が繰り返し検出されないようにさらに徹底することができる。
【００９１】
図６は、選択された位置に中心がある可能性がある物体の特性を決定するための物体特性ニューラルネットワーク６００の例示的なアーキテクチャを示す。物体特性ニューラルネットワーク６００は、予測された物体の境界ボックスおよび物体分類を決定する。境界ボックスは、物体の境界または縁を識別するボックスである。物体分類とは、物体の種類、たとえば、「車」、「歩行者」、「自転車」、「道路標示」、または「道路標識」である。
【００９２】
図６に図示された実装形態では、中間ニューラルネットワークが入力のバッチを準備し、それらのバッチを物体特性ニューラルネットワーク６００に提供する。各バッチにおける各入力は、物体が中心にある可能性がある位置に対応する。入力のバッチは、入力センサデータ、選択された位置、および選択された位置における環境を特徴付ける特徴を組み合わせることによって準備される。
【００９３】
入力層６１０ａは、中間ニューラルネットワークによって準備された入力のバッチを受け取る。入力層６１０ａの入力のバッチは、入力センサデータを選択された位置と組み合わせることにより準備される。物体特性ニューラルネットワーク６００はまた、入力層６１０ｂおよび６１０ｃを有する。入力層６１０ｂおよび６１０ｃは各々、選択された位置を、選択された位置における環境を特徴付ける特徴と組み合わせることにより、中間ニューラルネットワークによって準備された入力のバッチを受け取る。
【００９４】
いくつかの実装形態では、物体特性ニューラルネットワーク６００は、他の入力を受け取る。たとえば、物体特性ニューラルネットワーク６００は、中心予測ニューラルネットワークによって受け取られ、かつ使用される入力センサデータよりも高い解像度のセンサデータを受け取ることができる。物体特性ニューラルネットワーク６００はまた、中心予測ニューラルネットワークの入力センサデータを収集するために使用されるセンサとは異なるセンサによって収集されるセンサデータを受け取ることができる。たとえば、物体特性ニューラルネットワーク６００は、ライダーデータを受け取ることができる一方、中心予測ニューラルネットワークはカメラデータを受け取る。
【００９５】
物体特性ニューラルネットワーク６００は、畳み込み層６２０、６４０、６７０ａ、および６７０ｂを含む複数の畳み込み層を有する。図６には４つの畳み込み層が図示されているが、物体特性ニューラルネットワーク６００は、さらに多くの畳み込み層を有し得る。図４を参照して説明したように、畳み込み層は、各層に対して１つ以上のフィルタを規定する１つ以上のパラメータを有する。畳み込み層は、各ニューロンのフィルタと層の入力との畳み込みを実行することによって出力を生成する。畳み込みは、それぞれのニューロンのフィルタのパラメータとそのニューロンへの入力とのドット積である。出力は、そのフィルタのアクティベーションマップである。換言すれば、物体特性ニューラルネットワーク６００は、ネットワークへの入力内の位置で特定のタイプの特徴を検出したときにアクティブになるフィルタを学習、つまりそのフィルタを有するようにトレーニングされている。すべてのフィルタのアクティベーションマップをスタックすると、畳み込み層の完全な出力が形成される。したがって、あらゆる出力は、入力の小さな領域を観察し、かつ同じ活性化マップ内のニューロンとパラメータを共有するニューロンの出力として解釈することができる。
【００９６】
畳み込み層の間には、最大ポーリング層６３０および６５０を含む最大プーリング層が散在している。最大プーリング層は、それらの入力を重複しない一連の領域に分割し、領域ごとに最大値を出力する。最大プーリング層は、物体特性ニューラルネットワーク６００への入力のバッチの空間サイズを徐々に減らし、ネットワーク内のパラメータの数と計算量を減少させるのに役立つ。これが可能であるのは、特徴の正確な位置が、他の特徴に対する大まかな位置ほど重要ではないためである。
【００９７】
物体特性ニューラルネットワーク６００はまた、入力として１つ以上のテンソルを取り、深さ次元でテンソルを連結する深さ連結層６６０を有する。この操作は、入力テンソルを「スタック」して新しいテンソルを生成するものとして説明できる。特に、深さ連結層６６０は、入力層６１０ｂおよび６１０ｃによって受け取られた入力のバッチと、入力層６１０ａによって受け取られた処理済みの入力のバッチとを積み重ねる。
【００９８】
畳み込み層６７０ａおよび６７０ｂの後に、それぞれ全結合層６８０ａおよび６８０ｂが続く。全結合層は、入力層におけるすべてのニューロンを出力層におけるすべてのニューロンに結合する。全結合層は、先行する畳み込み層によって検出された特徴に基づいて物体の特性を決定するようにトレーニングされている。つまり、先行する畳み込み層が入力データ内の特定の位置で特定の特徴のサブセットを検出した場合、全結合層は、それらのトレーニングおよび入力に基づいて、その特定の位置にある物体が特定の特性を有すると決定することができる。特に、全結合層６８０ａは、物体の境界ボックスを決定するようにトレーニングされ、全結合層６８０ｂは、物体の分類を決定するようにトレーニングされている。
【００９９】
物体特性ニューラルネットワーク６００はまた、全結合層６８０ｂから物体分類を受け取るソフトマックス層６９０を有する。ソフトマックス層６９０は、全結合層６８０ｂから実数のベクトルを受け取り、ベクトル内の各実数は、物体が特定の分類のものである可能性を示す。実数は０〜１の範囲外であり得る。ソフトマックス層６９０は、各物体に対して、０〜１までの物体分類の確率分布を生成するようにトレーニングされている。たとえば、ソフトマックス層６９０は、ある特定の物体が９０％の信頼度で歩行者であり、１０％の信頼度で道路標識であると決定し得る。これらの信頼度は、自律運転の決定を行う際に車両が使用するための車両の計画サブシステムに提供することができる。
【０１００】
図７は、中心予測ニューラルネットワーク、たとえば図４の中心予測ニューラルネットワーク４００によって生成された例示的な出力マップ７００を図示している。出力マップ７００内の各位置は、小さなボックスで表されている。各ボックスは、中心予測ニューラルネットワークに提供された投影センサデータ内の点に対応し、物体の中心が環境内の対応する位置にある可能性を表す数値物体スコアと関連付けられている。物体スコアの範囲は０〜１である。０の物体スコアは、物体中心が環境内の対応する位置にある可能性が低いことを示す。１の物体スコアは、物体中心が環境内の対応する位置にある可能性が高いことを示す。出力マップ７００内の位置の小さなサブセットのみが物体スコアと関連付けられているが、これは単に便宜上のことである。実際には、出力マップ７００内のすべての位置が物体スコアと関連付けられていることになる。
【０１０１】
予測された物体７１０は、出力マップ７００内に配置されている。上述のように、特定の位置における高い物体スコアは、物体の中心がその位置にある可能性が高いことを示す。そのため、０．９の物体スコアと関連付けられた小さなボックスは、予測された物体７１０の中心に対応する可能性がある。
【０１０２】
本明細書に記載の主題および機能的動作の実施形態は、デジタル電子回路内に、有形的に具現化されたコンピュータソフトウェアもしくはファームウェア内に、本明細書に開示された構造体およびそれらの構造上の等価物を含むコンピュータハードウェア内に、またはそれらのうちの１つ以上を組み合わせて、実装することができる。本明細書に記載の主題の実施形態は、１つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行するために、またはデータ処理装置の操作を制御するために有形の非一時的記憶媒体に符号化されたコンピュータプログラム命令の１つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの１つ以上の組み合わせであり得る。代替的に、またはさらに、プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置によって実行するために適切な受信装置に送信される情報を符号化するために生成される機械生成の電気、光、または電磁信号に符号化され得る。
【０１０３】
「データ処理装置」という用語は、データ処理ハードウェアを指し、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含し、それらには、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。装置はまた、たとえば、ＧＰＵまたは別の種類の専用処理サブシステムなどの、既製またはカスタムメイドの並列処理サブシステムであってもよく、またはそれらをさらに含んでいてもよい。装置はまた、たとえば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路であってもよく、またはそれをさらに含んでいてもよい。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの１つ以上の組み合わせを構成するコードを含んでいてもよい。
【０１０４】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードとも称された、または記載されたコンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、かつ独立型プログラム、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するために好適な他のユニットを含む任意の形式で導入することができる。プログラムは、ファイルシステム内のファイルに対応する場合もあるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語ドキュメントに格納された１つ以上のスクリプト、当該プログラム専用の単一ファイル、または複数の調整ファイル、たとえば、１つ以上のモジュール、サブプログラム、もしくはコードの一部を格納するファイルに格納することができる。コンピュータプログラムは、１つのコンピュータまたは１つの場所に配置された複数のコンピュータ上で実行されるように展開するか、複数の場所に分散してデータ通信ネットワークで相互接続することができる。
【０１０５】
本明細書で使用される「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装の入出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット（「ＳＤＫ」）、または物体などの機能の符号化されたブロックであってもよい。各エンジンは、１つ以上のプロセッサとコンピュータ可読媒体を備えた、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤー、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、ＰＤＡ、スマートフォン、またはその他の据え置き型もしくはポータブルデバイスなど、適切なタイプのコンピューティングデバイス上に実装することができる。さらに、２つ以上のエンジンは、同じコンピューティングデバイス上で、または異なるコンピューティングデバイス上で実装することができる。
【０１０６】
本明細書に記載のプロセスおよび論理フローは、１つ以上のプログラマブルコンピュータが１つ以上のコンピュータプログラムを実行して、入力データ上で動作し、かつ出力を生成することで機能を果たすことによって実行することができる。プロセスおよび論理フローはまた、ＦＰＧＡもしくはＡＳＩＣなどの専用論理回路によって、または特定用途の論理回路と１つ以上のプログラムされたコンピュータとの組み合わせによって実行することができる。
【０１０７】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは専用のマイクロプロセッサあるいはその両方、または他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受け取ることになる。コンピュータの本質的な要素は、命令を遂行または実行するための中央処理装置ならびに命令およびデータを格納するための１つ以上のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完またはその回路に組み込むことができる。一般に、コンピュータはまた、たとえば、磁気、光磁気ディスク、もしくは、光ディスクなど、データを格納するための１つ以上の大容量記憶デバイスを含むか、または、それらからデータを転送するように動作可能に結合されることになる。しかしながら、コンピュータは必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、たとえばほんの数例を挙げると、携帯電話、電子手帳（ＰＤＡ）、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信機、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブなどに組み込むことができる。
【０１０８】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、不揮発性メモリ、媒体、およびメモリデバイスのあらゆる形態を含み、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたは取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む。
【０１０９】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、コンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するための表示デバイス、たとえば、ＣＲＴ（陰極線管）もしくはＬＣＤ（液晶ディスプレイ）モニタ、ならびにキーボードおよびマウス、トラックボールなどのポインティングデバイス、またはユーザがコンピュータに入力を提供できる存在感応ディスプレイもしくは他の表面を有する。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。たとえば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形の感覚的フィードバックであり得る。そして、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをスマートフォンなどのパーソナルデバイスに送信し、メッセージアプリケーションを実行し、代わりにユーザから応答メッセージを受信することにより、ユーザと対話することができる。
【０１１０】
本明細書は多くの特定の実装の詳細を含んでいるが、これらは、いずれかの発明の範囲、または請求され得る事項の範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有の特徴に関する説明として解釈されるべきである。別個の実施形態の文脈で本明細書に記載されている特定の特徴は、単一の実施形態で組み合わせて実施することもできる。逆に、単一の実施形態の文脈で本明細書に記載されている種々の特徴は、複数の実施形態で、別個に、または任意の好適なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組み合わせで作用するものとして上記に説明され、当初はそのように特許請求されることがあるが、場合によっては、特許請求された組み合わせからの１つ以上の特徴が、その組み合わせから削除される可能性もあり、特許請求された組み合わせが、サブコンビネーションまたはサブコンビネーションの変形に向けられる可能性もある。
【０１１１】
同様に、動作が特定の順序で図面に図示されているが、これは、所望の結果を達成するために、かかる動作がその示された特定の順序、もしくは一連の順序で実行されるべきであること、または例証したすべての動作が実行されるべきであることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利な場合がある。さらに、上述した実施形態におけるさまざまなシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてかかる分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品内に共に一体化されてもよく、または複数のソフトウェア製品にパッケージ化されてもよい。
【０１１２】
主題の特定の実施形態を説明してきた。他の実装形態は、以下の特許請求の範囲内に存在する。たとえば、特許請求の範囲に記載された動作は、異なる順序で実行されてもよく、依然として望ましい結果を達成することができる。一例として、添付の図に図示されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または連続した順序を必要としない。特定の場合によっては、マルチタスクおよび並列処理が有利なことがある。
【図１】
2021516806.tif 000003
【図２】
2021516806.tif 000004
【図３】
2021516806.tif 000005
【図４】
2021516806.tif 000006
【図５】
2021516806.tif 000007
【図６】
2021516806.tif 000008
【図７】
2021516806.tif 000009
【国際調査報告】
2021516806.tif 000010
2021516806.tif 000011
2021516806.tif 000012