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

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

▶ エヌビディア コーポレーションの特許一覧

特許7399164駐車スペース検出に適したスキューされたポリゴンを使用した物体検出
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-07
(45)【発行日】2023-12-15
(54)【発明の名称】駐車スペース検出に適したスキューされたポリゴンを使用した物体検出
(51)【国際特許分類】
   G06T 7/00 20170101AFI20231208BHJP
   G08G 1/16 20060101ALI20231208BHJP
【FI】
G06T7/00 350C
G08G1/16 C
【請求項の数】 20
(21)【出願番号】P 2021530949
(86)(22)【出願日】2020-03-16
(65)【公表番号】
(43)【公表日】2022-04-26
(86)【国際出願番号】 US2020022997
(87)【国際公開番号】W WO2020190880
(87)【国際公開日】2020-09-24
【審査請求日】2022-12-15
(31)【優先権主張番号】62/819,544
(32)【優先日】2019-03-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/820,164
(32)【優先日】2020-03-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】リー、ドンウー
(72)【発明者】
【氏名】クウォン、チュンヒュン
(72)【発明者】
【氏名】オー、サンミン
(72)【発明者】
【氏名】チェン、ウェンチャオ
(72)【発明者】
【氏名】セオ、ヘイ - ジョン
(72)【発明者】
【氏名】ニスター、デイビッド
(72)【発明者】
【氏名】ロドリゲス ヘルバス、ベルタ
【審査官】藤原 敬利
(56)【参考文献】
【文献】米国特許出願公開第2018/0025640(US,A1)
【文献】特開2018-169924(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00- 7/90
G06V 10/00-20/90
G08G 1/00-99/00
(57)【特許請求の範囲】
【請求項1】
駐車スペースを表す画像データをニューラル・ネットワークに適用するステップと、前記画像データから生成された及びアンカ形状のコーナー・ポイントへの変位値を表すデータを、前記ニューラル・ネットワークを使用して、受信するステップと、スキューされたポリゴンのコーナー・ポイントを前記アンカ形状の前記コーナー・ポイントへの前記変位値から判定するステップと、前記スキューされたポリゴンの前記コーナー・ポイントと前記駐車スペースのグラウンド・トゥルース・コーナー・ポイントとの間の第1の距離を計算するステップと、前記第1の距離に少なくとも部分的に基づいてサンプル格付けを決定するステップと、前記サンプル格付けが閾値未満であることに基づいて、陽性トレーニング・サンプルとして前記アンカ形状を使用して前記ニューラル・ネットワークのパラメータを更新するステップとを含む、コンピュータ実施方法。
【請求項2】
前記第1の距離が、最小総距離を含み、前記サンプル格付けが、前記最小総距離の正規化されたバージョンである、請求項1に記載の方法。
【請求項3】
前記サンプル格付けを決定するステップが、前記駐車スペースの前記グラウンド・トゥルース・コーナー・ポイントによって定義されたポリゴンのエリアに少なくとも部分的に基づいて前記第1の距離を正規化するステップを含む、請求項1に記載の方法。
【請求項4】
前記スキューされたポリゴンが、第1のスキューされた四角形であり、前記アンカ形状が、第2のスキューされた四角形である、請求項1に記載の方法。
【請求項5】
前記アンカ形状が、1個又は複数のグラウンド・トゥルース・サンプルから生成されたデータ駆動型アンカ・ボックスである、請求項1に記載の方法。
【請求項6】
前記第1の距離が、前記駐車スペースの前記グラウンド・トゥルース・コーナー・ポイントを有する前記スキューされたポリゴンの前記コーナー・ポイントの異なる組合せの間の小平均距離である、請求項1に記載の方法。
【請求項7】
前記スキューされたポリゴンの前記コーナー・ポイントが、第1のコーナー(A1)、第2のコーナー(A2)、第3のコーナー(A3)、及び第4のコーナー(A4)を含み、前記駐車スペースの前記グラウンド・トゥルース・コーナー・ポイントの前記コーナー・ポイントが、第5のコーナー(B1)、第6のコーナー(B2)、第7のコーナー(B3)、及び第8のコーナー(B4)を含み、前記第1の距離を計算するステップが、距離(A1、B1)、(A2、B2)、(A3、B3)、及び(A4、B4)からの第1の正規化された総距離と、距離(A1、B2)、(A2、B3)、(A3、B4)、及び(A4、B1)からの第2の正規化された総距離と、距離(A1、B3)、(A2、B4)、(A3、B1)、及び(A4、B2)からの第3の正規化された総距離と、距離(A1、B4)、(A2、B1)、(A3、B2)、及び(A4、B3)からの第4の正規化された総距離とを計算するステップを含み、前記第1の距離が、前記第1の正規化された総距離、前記第2の正規化された総距離、前記第3の正規化された総距離、及び前記第4の正規化された総距離のうちで最小である、請求項1に記載の方法。
【請求項8】
環境内の少なくとも1個のセンサの視界を表すセンサ・データをニューラル・ネットワークに適用するステップと、前記センサ・データから生成された第1のデータ及び第2のデータを前記ニューラル・ネットワークから受信するステップであって、前記第1のデータはアンカ形状のコーナー・ポイントへの変位値を表し、前記第2のデータは、前記アンカ形状が前記少なくとも1個のセンサの前記視界内の駐車スペースに対応する可能性を予測する信頼度値を表す、受信するステップと、前記信頼度値が閾値を超えることに少なくとも部分的に基づいて、前記アンカ形状の前記コーナー・ポイントへの前記変位値に対応するスキューされたポリゴンのコーナー・ポイントを判定するステップとを含む、コンピュータ実施方法。
【請求項9】
前記アンカ形状が、前記ニューラル・ネットワークの空間要素に関連付けられた複数のアンカ形状のうちのものであり、前記ニューラル・ネットワークが、前記複数のアンカ形状の各所与のアンカ形状について、前記所与のアンカ形状のコーナー・ポイントへの変位値と、前記所与のアンカ形状が前記少なくとも1個のセンサの前記視界内の対応する駐車スペースに対応する、対応する可能性を予測する信頼度値と、を表すデータを出力する、請求項8に記載の方法。
【請求項10】
前記アンカ形状が、前記ニューラル・ネットワークの空間要素のグリッドに関連付けられた複数のアンカ形状のうちのものであり、前記ニューラル・ネットワークが、前記複数のアンカ形状の各所与のアンカ形状について、前記所与のアンカ形状のコーナー・ポイントへの変位値と、前記所与のアンカ形状が前記少なくとも1個のセンサの視界内の対応する駐車スペースに対応する、対応する可能性を予測する信頼度値と、を表すデータを出力する、請求項8に記載の方法。
【請求項11】
前記センサ・データが、カメラの視界を表す画像データを含む、請求項8に記載の方法。
【請求項12】
前記アンカ形状が、前記ニューラル・ネットワークの1個又は複数の空間要素に関連付けられた複数のアンカ形状のうちのものであり、前記複数のアンカ形状が、スキューされたポリゴンの異なる形状を含む、請求項8に記載の方法。
【請求項13】
前記スキューされたポリゴンが第1のスキューされた四角形であり、前記アンカ形状が第2のスキューされた四角形である、請求項8に記載の方法。
【請求項14】
前記スキューされたポリゴンの前記コーナー・ポイントが前記少なくとも1個のセンサの前記視界内の前記駐車スペースへの入口を定義する可能性を予測する信頼度値を表す第3のデータを、前記ニューラル・ネットワークから受信するステップと、前記信頼度値に少なくとも部分的に基づいて前記アンカ形状の前記コーナー・ポイントのサブセットを選択するステップと、前記サブセットの前記コーナー・ポイントから前記駐車スペースへの前記入口を識別するステップとをさらに含む、請求項8に記載の方法。
【請求項15】
前記スキューされたポリゴンの前記コーナー・ポイントに少なくとも部分的に基づいて自律型車両の1個又は複数の動作を制御するステップをさらに含む、請求項8に記載の方法。
【請求項16】
環境内の少なくとも1個のセンサの視界を表すセンサ・データをニューラル・ネットワークに適用するステップと、画像データから生成された第1のデータ及び第2のデータを前記ニューラル・ネットワークから受信するステップであって、前記第1のデータが、アンカ形状のコーナー・ポイントへの変位値を表し、前記第2のデータが、前記アンカ形状の前記コーナー・ポイントが前記少なくとも1個のセンサの前記視界において駐車スポットへの入口を定義する可能性を予測する信頼度値を表す、受信するステップと、前記信頼度値に基づいて前記アンカ形状の前記コーナー・ポイントのサブセットを選択するステップと、前記サブセットの前記コーナー・ポイントから前記駐車スポットへの前記入口を識別するステップとを含む、コンピュータ実施方法。
【請求項17】
スキューされたポリゴンのコーナー・ポイントを前記アンカ形状の前記コーナー・ポイントへの前記変位値から判定するステップと、前記スキューされたポリゴンの前記コーナー・ポイント及び前記駐車スポットへの前記入口に少なくとも部分的に基づいて自律型車両の1個又は複数の動作を制御するステップとをさらに含む、請求項16に記載のコンピュータ実施方法。
【請求項18】
前記アンカ形状が、スキューされたポリゴンである、請求項16に記載の方法。
【請求項19】
前記アンカ形状が、前記ニューラル・ネットワークの空間要素に関連付けられた複数のアンカ形状のうちのものであり、前記ニューラル・ネットワークが、前記複数のアンカ形状の各所与のアンカ形状について、前記所与のアンカ形状のコーナー・ポイントへの変位値と、前記所与のアンカ形状の前記コーナー・ポイントが前記少なくとも1個のセンサの前記視界における対応する駐車スポットへの所与の入口を定義する対応する可能性を予測する信頼度値と、を表すデータを出力する、請求項16に記載の方法。
【請求項20】
前記アンカ形状が、前記ニューラル・ネットワークの空間要素のグリッドに関連付けられた複数のアンカ形状のうちのものであり、前記ニューラル・ネットワークが、前記複数のアンカ形状の各所与のアンカ形状について、前記所与のアンカ形状のコーナー・ポイントへの変位値と、前記所与のアンカ形状の前記コーナー・ポイントが前記少なくとも1個のセンサの前記視界における対応する駐車スポットへの所与の入口を定義する対応する可能性を予測する信頼度値と、を表すデータを出力する、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、駐車スペース検出に適したスキューされたポリゴンを使用した物体検出に関するものである。
【背景技術】
【0002】
マシン(たとえば、トレーニングされたニューラル・ネットワークでプログラムされたコンピュータ)による正確な及び効率的画像処理(たとえば、認識及び分類のための)は、様々な状況において重要である。たとえば、自律型車両(たとえば、高度運転者支援システム(ADAS:driver assistance system)を備えた車両)又はドローンは、リアルタイムで画像データ(たとえば、カメラによってキャプチャされた車道及び/又は駐車場の画像を表す)を分析して運転操作(たとえば、ステアリング装置を左に向ける、ブレーキ・システムをアクティブにするなど)を策定することができる。1個のそのようなインスタンスにおいて、車両は、駐車操作を実行するときに、駐車スペースを検出するために、及び駐車スペースのプロパティ、たとえば、場所、サイズ、及び向き、を識別するために、画像データを分析することができる。このプロセスを容易にするために、車両は、画像内の駐車スペースの存在を検出するための畳み込みニューラル・ネットワーク(CNN:convolutional neural network)を使用して実装される物体検出器を含み得る。
【0003】
駐車スペースを検出するために使用される従来のCNNは、検出出力の形態として、軸に平行な(axis-aligned)長方形のアンカ・ボックス(すべての4個の角度が直角である)を使用し得る。しかしながら、センサ・データ内に存在する駐車スペースは、センサの透視図法のために、長方形又は軸に平行ではないことがよくある。したがって、駐車スペースが検出された後には、センサ・データの中からそれぞれの駐車スペースの境界を正確に識別するために、追加処理が、必要である。たとえば、車両のカメラは、駐車スペースの画像をキャプチャすることができ、そして、カメラの視界の視点に基づいて、駐車スペースは、軸に平行な長方形として画像内に描かれないことがある。従来のCNNは、検出出力の形態として軸に平行な長方形のアンカ・ボックスを提供することができ、その場合、画像内に駐車スペースを正確に描くための追加処理が必要である。従来のCNNをトレーニングするとき、陽性サンプルは、CNNからのアンカ・ボックス出力とグラウンド・トゥルース出力との間の和集合の共通部分(IoU:Intersection of Union)を使用して識別され得る。アンカ・ボックス出力及びグラウンド・トゥルースがともに、軸に平行な長方形であるとき、IoU計算は、単純になり得る。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許出願第16/101,1232号
【発明の概要】
【課題を解決するための手段】
【0005】
本開示は、駐車スペース検出に適したスキューされたポリゴン(たとえば、四角形)を使用した物体検出に関する。たとえば、いくつかのインスタンスにおいて、少なくとも1個の畳み込みニューラル・ネットワーク(CNN)が、画像データ内に表された1個又は複数の駐車スペースを検出する及び/又は描くために使用され得る。CNN出力は、その後の操作を知らせるために、後処理され、ダウンストリーム・システム(たとえば、車両制御モジュール)に提供され得る。
【0006】
本開示の態様は、駐車スペースを定義する画像において領域を正確に描くスキューされたポリゴンのコーナー・ポイント(たとえば、アンカ形状コーナー・ポイントへの変位値又はオフセット値としての)を決定するために、CNNを使用することができる。さらに、本開示は、アンカ形状のコーナー・ポイントが、駐車スポットへの入口を定義する、又は他の方法でこれに対応する、可能性を予測する信頼度値を出力するCNNを実現する。信頼度値は、駐車スポットへの入口を定義するために、アンカ形状及び/又はスキューされたポリゴンのコーナー・ポイントのサブセットを選択するために使用され得る。本開示の実施例によれば、CNNは、駐車スペースの境界を描くコーナー・ポイントへの変位値を予測するステップとともに、アンカ形状の特定のコーナー・ポイントが駐車スペースへの入口に対応する可能性を予測するために使用され得る。
【0007】
本開示はさらに、アンカ形状はトレーニングのための陽性サンプルとして使用されるべきかどうかを判定するために、CNNを使用して予測されたスキューされたポリゴンのコーナー・ポイントと駐車スポットのグラウンド・トゥルース・コーナー・ポイントとの間の距離(たとえば、最小総距離)の計算を提供する。たとえば、陽性サンプルは、距離が閾値未満であることに少なくとも部分的に基づいて、識別され得る。
【0008】
駐車スペース検出に適したスキューされたポリゴンを使用した物体検出のための本システム及び方法について、参照によって本明細書に組み込まれている、添付の図面を参照して以下に詳しく説明する。
【図面の簡単な説明】
【0009】
図1】本開示のいくつかの実施例による、例示的物体検出システムを含む図である。
図2】本開示のいくつかの実施例による、1個又は複数の駐車スペースを識別するための例示的プロセスを示す流れ図である。
図3】本開示のいくつかの実施例による、物体検出器によって処理された画像データ、物体検出器の空間要素のグリッド、及び空間要素のうちの1個又は複数と関連付けられ得るアンカ形状のセットによって表され得る画像の図である。
図4】本開示のいくつかの実施例による、異なる空間要素解像度の視覚要素と重ね合わされた画像の図である。
図5A】本開示のいくつかの実施例による、駐車スペースを検出するためのニューラル・ネットワークを含む図である。
図5B】本開示のいくつかの実施例による、入口線描写及び駐車スペース描写を有する画像の図である。
図6】本開示のいくつかの実施例による、グラウンド・トゥルース・データと物体検出器のトレーニングのためのスキューされた四角形の使用のコーナー・ポイントとを有する画像の図である。
図7】本開示のいくつかの実施例による、駐車スペースのコーナー・ポイントを提供するためのマシン学習モデルをトレーニングする方法を示すブロック図である。
図8】本開示のいくつかの実施例による、駐車スペースのコーナー・ポイントを、ニューラル・ネットワークを使用して、判定するための方法を示すブロック図である。
図9】本開示のいくつかの実施例による、駐車スペースへの入口を、ニューラル・ネットワークを使用して、判定する方法を示すブロック図である。
図10】本開示のいくつかの実施例の実装において使用するのに適した例示的動作環境の図である。
図11A】本開示のいくつかの実施例による、例示的自律型車両のイラストレーションである。
図11B】本開示のいくつかの実施例による、図11Aの例示的自律型車両のカメラ位置及び視野の実例である。
図11C】本開示のいくつかの実施例による、図11Aの例示的自律型車両の例示的システム・アーキテクチャのブロック図である。
図11D】本開示のいくつかの実施例による、クラウドベースのサーバと図11Aの例示的自律型車両との間の通信のシステム図である。
図12】本開示のいくつかの実施例の実装において使用するのに適した例示的計算デバイスのブロック図である。
【発明を実施するための形態】
【0010】
本開示は、駐車スペース検出に適したスキューされたポリゴン(たとえば、四角形)を使用する物体検出に関する。開示される手法は、駐車スペースが検出される運転操作(たとえば、自律運転、高度運転者支援システム(ADAS)など)、並びに画像及び/又はセンサ・データ内のスキューされたポリゴンに対応する物体(たとえば、建物、窓、ドア、車道、交差点、歯、不動産区域、エリア又は表面の領域など)を検出する他のアプリケーション(たとえば、ロボット工学、ビデオ分析、気象予報、医用画像など)に適し得る。
【0011】
本開示は、その実例が図11A~11Dに関して本明細書でさらに詳しく説明される、例示的自律型車両1100(或いは「車両1100」又は「自律型車両1100」と本明細書で称される)に関して説明され得る。本開示は主に、自律型車両を使用する実例を示すが、ロボット、無人航空機、カメラ・システム、気象予報デバイス、医用画像デバイスなどの他のタイプのデバイスが、本明細書に記載の様々な手法を実装するために使用され得る。加えて、これらの手法は、自律型車両を制御するために、又は、ビデオ監視、ビデオ若しくは画像編集、駐車スペース占拠監視、識別、及び/若しくは検出、ビデオ若しくは画像サーチ若しくは検索、物体追跡、気象予報(たとえば、RADARデータを使用)、並びに/又は医用画像(たとえば、超音波又は磁気共鳴映像法(MRI:magnetic resonance imaging)データを使用)などの、これらに限定されない、他の目的のために、使用され得る。
【0012】
駐車スペースが、主に、検出されている物体として説明されているが、開示される手法は、一般に、センサの視界において及び/又は画像データにおいてスキューされたポリゴン(たとえば、四角形又は他の形状)として現れ得る物体に適用され得る(たとえば、これらの物体は、現実世界において長方形であるが、視点により、スキューされた四角形に見え得る)。開示される手法は、スキューされた四角形及び4個のコーナー・ポイントを使用して説明されているが、開示される概念は、それらの形状を定義する任意の数の形状及びポイント(たとえば、コーナー・ポイント)に適用され得る。加えて、入口は主に、ポイント(たとえば、コーナー・ポイント)のうちの2個によって定義されるものとして、本明細書では定義されているが、他の実例において、入口は、任意の数のポイント(たとえば、コーナー・ポイント)を使用して定義され得る。さらに、本開示は、ニューラル・ネットワークを使用して実装された物体検出器に焦点を当てているが、いくつかの実施例では、他のタイプのマシン学習モデルが使用され得る。
【0013】
駐車スペースのサイズ及び場所を一般に指示する軸に平行な長方形のアンカ・ボックスを予測するためにCNNを使用し得る、従来の手法とは対照的に、本開示の態様は、駐車スペースを定義する画像において領域を正確に描くスキューされた四角形のコーナー・ポイントを判定する(たとえば、アンカ・ボックス・コーナー・ポイントへの変位値又はオフセット値として)ために、CNNを使用し得る。そのようなものとして、いくつかの実施例において、スキューされた四角形は、駐車スペースの境界を識別するための付加的な又は重要な処理を必要とせずにダウンストリーム・システムによって直接使用され得る。その後の処理を減らすことによって、開示される手法は、従来の手法よりも効率的に且つ速くなり得る。
【0014】
さらに、従来の手法とは対照的に、本開示は、アンカ・ボックスのコーナー・ポイントが駐車スポットへの入口を定義する又は他の方法でこれに対応する可能性を予測する信頼度値を出力するCNNを実現する。信頼度値は、駐車スポットへの入口を定義するために、アンカ・ボックス及び/又はスキューされた四角形のコーナー・ポイントのサブセットを選択するために使用され得る。本開示の実施例によれば、駐車スペースの境界を描くコーナー・ポイントへの変位値を予測するステップとともに、アンカ・ボックスの特定のコーナー・ポイントが駐車スペースへの入口に対応する可能性を予測するために、CNNを使用することによって、処理はさらに低減され得る。
【0015】
別の態様において、従来のCNNは、和集合の共通部分(IoU)を使用して、軸に平行な長方形のアンカ・ボックス出力は陽性サンプルであるかどうかを判定するが、本開示は、アンカ・ボックスはトレーニングのための陽性サンプルとして使用されるべきかどうかを判定するために、CNNを使用して予測されたスキューされた四角形のコーナー・ポイントと駐車スポットのグラウンド・トゥルース・コーナー・ポイントとの間の最小総距離の計算を行う。たとえば、陽性サンプルは、最小総距離(たとえば、正規化後)が閾値未満であることに少なくとも部分的に基づいて、識別され得る。最小総距離の計算は、スキューされた四角形のIoUの計算よりも単純になり得、結果として、処理時間は低減される。
【0016】
例示的駐車スペース検出器
ここで図1を参照すると、図1は、本開示のいくつかの実施例による、例示的物体検出システム100を含む図を示す。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素は、分かりやすくするために、ともに省略され得る。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。1個又は複数のエンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、いくつかの機能は、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【0017】
1個又は複数の実施例において、物体検出システム100は、たとえば、通信マネージャ104、物体検出器106、特徴判定器108、信頼性スコア・ジェネレータ110、変位値ジェネレータ112、スキューされた四角形ジェネレータ114、及び入口判定器126を含む。本開示で説明されるいくつかの実例は、四角形(たとえば、規則的、スキューされた、不規則的、ボックスなど)を使用し、記載されているシステム及び方法は、同様に、他のポリゴンを使用し得る。
【0018】
通信マネージャ104は、物体検出システム100によって受信される(たとえば、センサ・データ及び/又は画像データを含む)及び/又は物体検出システム100によって提供される(たとえば、信頼性スコア、変位スコア、スキューされた四角形のコーナー・ポイント、及び/又はそこから導出された情報を含む)通信を管理するように構成され得る。加えて又は別法として、通信マネージャ104は、物体検出システム100内の、たとえば、物体検出器106、信頼性スコア・ジェネレータ110、変位値ジェネレータ112、スキューされた四角形ジェネレータ114、入口判定器126、及び/又は物体検出システム100に含まれ得る若しくは物体検出システム100と通信し得る他の構成要素(たとえば、物体検出システム100からの出力を使用するダウンストリーム・システム構成要素)のうちのいずれかの間の、通信を管理し得る。
【0019】
図2を参照すると、図2は、本開示のいくつかの実施例による、1個又は複数の駐車スペースを識別するための例示的プロセス200を示す流れ図である。物体検出器106は、通信マネージャ104から受信された入力データ、たとえば、任意の数の駐車スペース(又は駐車スペースがないこと)を表すセンサ・データ及び/又は画像データ、を分析するように及び入力データにおいてキャプチャされた任意の数の検出された物体を表す物体検出データを生成するように構成され得る。それを行うために、物体検出器106は、特徴判定器108、変位値ジェネレータ112、及び信頼性スコア・ジェネレータ110を使用することができる。特徴判定器108は、信頼性スコア・ジェネレータ110及び変位値ジェネレータ112への入力としての入力データの特徴を生成又は判定するように構成され得る。信頼性スコア・ジェネレータ110は、特徴判定器108からのデータに基づいて1個又は複数のアンカ・ボックスの信頼性スコア118を生成又は判定するように構成され得る。各アンカ・ボックスの信頼性スコア118は、それぞれのアンカ・ボックスが入力データにおいて検出された駐車スペースに対応する可能性を予測することができる。
【0020】
変位値ジェネレータ112は、特徴判定器108からのデータに基づいて各アンカ・ボックスのコーナー・ポイントへの変位値122を生成又は判定するように構成され得る。スキューされた四角形ジェネレータ114は、物体検出器106からの様々な出力のいずれか、たとえば、各アンカ・ボックスの信頼度値118及び変位値122、を入力として受信することができる。スキューされた四角形ジェネレータ114は、任意の適切な技法、たとえば、非最大抑制(NMS:Non-Maximum Suppression)、を使用して入力からスキューされた四角形を生成及び/又は判定することができる。これは、変位値122(たとえば、変位値ジェネレータ112によって提供される)及びアンカ・ボックスのコーナー・ポイントからスキューされた四角形の任意の数のアンカ・ボックス・コーナー・ポイントから判定するスキューされた四角形ジェネレータ144を含み得る。非限定的実例として、スキューされた四角形ジェネレータ114は、どのアンカ・ボックスが閾値(もしあるなら)を超える信頼度値118を有するかどうかを判定することができる。それらのアンカ・ボックスから、スキューされた四角形ジェネレータ114は、候補検出を1個又は複数の出力物体検出へとフィルタリング及び/又はクラスタ化し、それらの出力物体検出に対応する(たとえば、対応する変位値122を使用する)スキューされた四角形のコーナー・ポイントを判定することができる。
【0021】
それぞれのアンカ・ボックスが入力データにおいて検出された駐車スペースに対応する可能性を予測する信頼性スコア118を信頼性スコア・ジェネレータ110が生成又は判定することに加えて或いはその代わりに、信頼性スコア・ジェネレータ110は、入力データにおいて表された駐車スペースへの検出された入口にそれぞれのコーナー・ポイントが対応する可能性を予測する信頼性スコア116を生成又は判定することができる。入口判定器126は、少なくとも信頼性スコア116を使用して1個又は複数の駐車スペースへの1個又は複数の入口を判定することができる。非限定的な一実例として、入口判定器126は、最も高い信頼度値116を有する(たとえば、それらの信頼度値116が閾値を超えることをオプションで必要とする)それぞれのスキューされた四角形のコーナー・ポイントのセット(たとえば、2個のコーナー・ポイント)を選択することによって、スキューされた四角形ジェネレータ114による各物体検出出力のための入口を定義することができる。選択されたコーナー・ポイントは、次いで、対応する駐車スペースへの入口(たとえば、選択されたコーナー・ポイントを繋ぐ入口線)を定義するために使用され得る。図2に破線で示すように、他の実例において、スキューされた四角形ジェネレータ114は、入口判定器126を有する物体検出システム100において実装されなくてもよい、及び/又は駐車スペースへの入口若しくは他の検出された物体領域を識別及び/若しくは定義するために入口判定器126によって使用されなくてもよい。
【0022】
物体検出システム100は、本開示のいくつかの実施例によれば、図10の例示的動作環境1000において実装され得る。たとえば、図1の構成要素は、一般に、クライアント・デバイス1020、サーバ・デバイス1060、又はデータ・ストア1050の任意の組合せを使用して実装され得る。したがって、物体検出システム100は、本明細書に記載の機能性を集合的に提供する分散型環境において配置された複数のデバイスを介して提供され得る、又は単一のデバイス(たとえば、車両1100)で実施され得る。したがって、物体検出システム100を説明するために使用されるいくつかの実例は、特定のデバイス及び/又は構成を参照し得るが、それらの実例は、より一般的に、本明細書に記載のデバイス及び構成の潜在的組合せのいずれかに適用され得ることが意図されている。たとえば、いくつかの実施例において、物体検出器106へのセンサ・データ入力の1個又は複数の部分を生成するために使用されるセンサ1080のうちの少なくともいくつかは、環境内の複数の車両及び/若しくは物体の間で分散され得る、並びに/又は、センサ1080のうちの少なくとも1個は、車両1100に含まれ得る。
【0023】
本明細書に記載のように、通信マネージャ104は、物体検出システム100によって受信される(たとえば、センサ・データ及び/又は画像データを含む)及び/又は物体検出システム100によって提供される通信(たとえば、信頼性スコア若しくは値、変位値、スキューされた四角形へのコーナー・ポイント、及び/又はそこから導出された情報を含む)を管理するように構成され得る。加えて又は別法として、通信マネージャ104は、物体検出システム100内の通信を管理することができる。
【0024】
通信が、ネットワーク通信として受信及び/又は提供される場合、通信マネージャ104は、1個若しくは複数のワイヤレス・アンテナ(図11Aのワイヤレス・アンテナ1126)及び/又はモデムを使用して1個又は複数のネットワークを介して通信することができるネットワーク・インターフェースを含み得る。たとえば、ネットワーク・インターフェースは、ロングターム・エボリューション(LTE:Long-Term Evolution)、広帯域符号分割多元接続(WCDMA(登録商標):Wideband Code-Division Multiple Access)、ユニバーサル・モバイル・テレコミュニケーション・サービス(UMTS:Universal Mobile Telecommunication Service)、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM:Global System for Mobile communications)、CDMA2000などを介する通信の能力を有し得る。ネットワーク・インターフェースはまた、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:Low Power Wide-Area Network)を使用し、環境内の物体(たとえば、車両、モバイル・デバイスなど)の間の通信を可能にすることができる。しかしながら、通信マネージャ104は、ネットワーク・インターフェースを含まなくてもよい、たとえば、自律型車両(たとえば、車両1100)で完全に実装された物体検出システム100の場合など。いくつかの実例において、本明細書に記載の通信のうちの1個又は複数は、図12のバス1202を介する計算デバイス1200の構成要素間でもよい。
【0025】
通信マネージャ104によって受信されるセンサ・データは、図10のセンサ1080の任意の組合せを使用して、生成され得る。たとえば、センサ・データは、画像を表す画像データ、ビデオを表す画像データ(たとえば、ビデオのスナップショット)、及び/又はセンサの視界を表すセンサ・データ(たとえば、LIDARセンサ1164からのLIDARデータ、RADARセンサ1160からのRADARデータ、図11Bのカメラからの画像データなど)を含み得る。
【0026】
通信マネージャ104が物体検出器106に提供するセンサ・データ及び/又は画像データは、物理的又は仮想環境において生成され得、カメラの視界を表す画像データを含み得る。たとえば、本開示の態様において、通信マネージャ104は、物理的環境において車両1100のカメラによって生成された画像データを物体検出器106に提供する。
【0027】
物体検出器106及び/又は本明細書に記載の他の構成要素のために使用され得るマシン学習モデルのいくつかの実例は、特定のタイプのマシン学習モデル(たとえば、ニューラル・ネットワーク)を参照することがあるが、本明細書に記載のマシン学習モデルの実例には、たとえば、そして制限なしに、任意のタイプのマシン学習モデル、たとえば、線形回帰、ロジスティック回帰、決定木、サポート・ベクトル・マシン(SVM:support vector machine)、ナイーブ・ベイズ、k近傍法(Knn:k-nearest neighbor)、K平均クラスタリング、ランダム・フォレスト、次元縮小アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク(たとえば、オートエンコーダ、畳み込み、再発、パーセプトロン、長/短期メモリ(LSTM:Long/Short Term Memory)、ホップフィールド、ボルツマン、ディープ・ビリーフ、デコンボリューション、敵対的生成、液体状態マシンなど)を使用するマシン学習モデル、及び/又は他のタイプのマシン学習モデル、が含まれ得ることが意図されている。
【0028】
図3を参照すると、図3は、本開示のいくつかの実施例による、物体検出器によって処理された画像データ、物体検出器の空間要素のグリッド、及び空間要素のうちの1個又は複数に関連し得る1セットのアンカ・ボックスによって表され得る画像の図である。たとえば、図3は、物理的環境において車両1100のカメラによって生成され得る及び画像データを分析して物体検出データを生成することができる物体検出器106に提供され得る画像310の描写を含む。物体検出データは、画像310内の物体(検出された物体と称されることもある)の、物体検出器106による、検出を表し得る。検出された物体は、画像310において描写された実際の物体に対応することもしないこともある。たとえば、検出された物体のうちのいくつかは、物体検出器106によって行われた誤検出に対応し得る。さらに、検出された物体のうちのいくつかは、画像310において描写された同じ物体に対応し得る。
【0029】
物体検出器106は、センサ・データ(たとえば、画像データ)から抽出された特徴から物体検出データを生成するようにトレーニングされた1個又は複数のマシン学習モデルを含み得る。いくつかの実例において、物体検出器106は、視界及び/又は画像の各空間要素及び/又はその1個若しくは複数の対応するアンカ・ボックスの物体検出データ(たとえば、コーナー・ポイントへの信頼度値及び変位値を表す)のセットを決定するように構成される。様々な実例において、空間要素はまた、物体検出器106のグリッド・セル、出力セル、スーパーピクセル、及び/又は出力ピクセルを指し得る。
【0030】
様々な実例において、空間要素は、空間要素領域のグリッドを形成し得る。たとえば、図3は、センサ・データ(たとえば、画像310を表す)に論理的に適用され得る物体検出器106の空間要素のグリッド312を視覚的に示す。図3において、グリッド312は、画像310を分かりにくくしないように、画像310とは別個に描写されており、重ね合わされた描写402は、図4において提供されている。グリッド・セル311などの空間要素は、グリッド内の場所によって定義され得る。たとえば、各グリッド・セルは、空間要素の空間要素領域を含み得る。他の実例において、グリッド・ベースの空間要素は、使用されなくてもよい。さらに、空間要素は、連続した空間要素領域を必ずしも定義しないことがあり、長方形の空間要素領域を必ずしも定義しないことがあり、並びに/又は視界及び/若しくは画像のすべての領域を包含しないことがある。
【0031】
いくつかの実例において、単一の画像若しくはフレーム(たとえば、画像310)、又は画像若しくはフレームのセットについて、物体検出器106の各空間要素は、1個又は複数の対応するアンカ・ボックスの物体検出データを提供し得る。他の実例において、1個又は複数の空間要素は、物体検出データを提供しないことがある。物体検出データは、たとえば、視界及び/又は画像310内の駐車スペースに対応してもしなくてもよい、空間要素の各アンカ・ボックスの信頼度値118、変位値122、及び/又は信頼度値116を表し得る。
【0032】
図3は、画像310に適用された各空間要素が、対応するセットのアンカ・ボックス314に関連付けられ得る、1セットのアンカ・ボックス314を示す。図示されているのは、8個のアンカ・ボックスであるが、任意の数のアンカ・ボックスが、空間要素のために使用され得、異なる空間要素のアンカ・ボックスは、形状、サイズ、数などにおいて互いに異なり得る。アンカ・ボックスは、様々なサイズ及び形状、たとえば、規則的長方形(たとえば、等角長方形)、でもよく、いくつかの従来のシステムとは対照的に、アンカ・ボックスはまた、1個又は複数のスキューされた四角形、たとえば、不規則的長方形(たとえば、合同な角のない)、ひし形、凧形、台形、平行四辺形、等脚台形、スキューされた四角形、又はその任意の組合せを含み得る。図3において、アンカ・ボックス314は、画像310を分かりにくくしないように、画像310とは別個に描写されており、重ね合わされた描写402は、図4において提供される。
【0033】
本明細書に記載のように、図4は、画像310がグリッド312と重ね合わされた、重ね合わされた描写402を提供し、単一の空間要素のアンカ・ボックス314は、グリッド・セル311において配置されており、それは画像310に関する対応する場所を示す。本明細書に記載のように、信頼性スコア及び変位値は、各グリッド・セル及び/又は空間要素の各アンカ・ボックスについて生成され得る。例示を目的として、アンカ・ボックス314は、グリッド・セル311のみについて描写され、他の態様において、アンカ・ボックス314(又はその変更形態)は、グリッド312の複数のグリッド・セル、又はグリッド312の各グリッド・セルについて使用され得る。異なるグリッド・セル311のアンカ・ボックス314は、そのグリッド・セル311(又はより一般的には空間要素)に対応する場所にあってもよい。グリッド312は、空間要素の1個のサイズ又は解像度の一実例である。非限定的な一実例として、グリッド312は、60個のグリッド・セルを有する10x6であり、そのようなものとして、各グリッド・セルが、8個のアンカ・ボックスと関連付けられた場合、信頼性スコア及び変位値は、480個の異なるアンカ・ボックスについて生成され得る。
【0034】
他の態様において、空間要素領域のグリッド又は他の配置は、より多数の空間領域又はより少数の空間領域を有する異なるサイズ又は解像度を有することができ、その場合、アンカ・ボックスのスケールは、増やす(たとえば、より少数の、より大きな空間領域を有する、より粗いグリッドを有する)又は減らす(たとえば、より多数の、より小さな空間領域を有する、より細かいグリッドを有する)ことができる。たとえば、重ね合わされた描写404は、より粗い解像度グリッド412(たとえば、2x2)と、アンカ・ボックス314と合同(たとえば、同じ形状及びサイズ)である、アンカ・ボックス314と類似する(たとえば、同じ形状及び/又は異なるサイズ)、又はアンカ・ボックス314と類似しない(たとえば、異なる形状及び/又は異なるサイズ)ことがある、異なるセットのアンカ・ボックス414とを重ね合わせた画像310を含む。本開示のいくつかの態様において、物体検出器は、空間要素領域(たとえば、グリッド)の複数の解像度を同じ入力データに適用することができ、各空間要素領域は、アンカ・ボックスのそれぞれのセットに対応する。いくつかある潜在的利点の中でも特に、複数の解像度の使用は、同じ画像内(たとえば、カメラにより近い駐車スペースは、視点に基づいてより大きく見え得、カメラからより遠い駐車スペースは、より小さく見え得る)でも異なる画像内でも、より大きな駐車スペース及びより小さな駐車スペースの両方について物体検出器106が正確である可能性を向上させることができる。いくつかのインスタンスにおいて、入力データを分析するために使用される空間要素領域(たとえば、グリッド)の実際のセットは、グリッド312及び412よりも解像度において有意に細かくなり得る。さらに、任意の数のセットの空間要素領域が、使用され得る。
【0035】
本明細書に記載のように、物体検出器106によって提供される物体検出データに基づいて、スキューされた四角形ジェネレータ114は、1個又は複数の駐車スペースに対応する1個又は複数のスキューされた四角形を生成及び/又は識別することができ、入口判定器126は、1個又は複数の駐車スペースへの1個又は複数の入口を判定及び/又は識別することができる。
【0036】
図5Aを参照すると、図5Aは、ニューラル・ネットワーク(たとえば、CNN)を使用して実装される例示的物体検出器106の少なくとも一部分を描写する。たとえば、物体検出器106は、特徴バックボーン・ネットワーク506、たとえば、ResNet50又は別の特徴バックボーン・ネットワーク、を含む。加えて、ニューラル・ネットワークは、特徴ピラミッド・ネットワーク508を含む。さらに、ニューラル・ネットワークは、分類サブネットワーク510を含む。
【0037】
実施例において、特徴バックボーン・ネットワーク506及び特徴ピラミッド・ネットワーク508は、図1の特徴判定器108に対応し得、分類サブネットワーク510は、図1の信頼性スコア・ジェネレータ110に対応し得、回帰サブネットワーク512は、図1の変位値ジェネレータ112に対応し得る。しかしながら、図5Aのニューラル・ネットワークの描写は、図示されたニューラル・ネットワークに物体検出器106を制限することを意図していない。加えて、分類サブネットワーク510は、信頼性スコア514を表すデータ(図2の信頼性スコア118に対応し得る)を出力するものとして示されている。簡単にするために図示されていないが、駐車スペースへの入口を検出する実施例において、分類サブネットワーク510は、加えて又は別法として、図1の信頼性スコア116を表すデータを出力し得る、或いは、別の分類サブネットワークが使用され得る。回帰サブネットワーク512は、変位値516(図2における変位値122に対応し得る)を表すデータを出力するものとして示されている。図5Aにおいて物体検出器106に関して記載された出力は、各既定義のアンカ・ボックスについて提供され得る。
【0038】
本開示のさらなる態様において、図1のスキューされた四角形ジェネレータ114に対応し得る、スキューされた四角形ジェネレータ518は、物体検出器106からの出力に基づいて1個又は複数のスキューされた四角形を生成及び/又は識別することができる。たとえば、変位値516(たとえば、Δx1、Δy1…、Δx4、Δy4)及び信頼度値514に基づいて、スキューされた四角形ジェネレータ518は、スキューされた四角形のコーナー・ポイント(たとえば、[x’1、y’1…、x’4、y’4]を含む調整されたコーナー・ポイント520)を生成するために、アンカ・ボックスを選択し、アンカ・ボックス522のコーナー位置又はポイント(たとえば、x1、y1…、x4、y4)を調整することができる。スキューされた四角形を表すデータ(たとえば、調整されたコーナー・ポイント520)が、様々なダウンストリーム構成要素又はシステムに提供され得る。図示するように、様々な実施例において、信頼度マップ分類が、たとえばアンカ・ボックスを陽性又は陰性駐車スペース検出として分類する(たとえば、バイナリ分類を使用して)ために、実行され得、スキューされた四角形ジェネレータ518は、この情報を活用することができる。たとえば、物体検出システム100は、各アンカ・ボックスの信頼度値514を閾値と比較することができる。陽性検出は、信頼度値514が閾値より大きいときのアンカ・ボックスについて生じ得、陰性検出は、信頼度値が閾値未満であるときに、生じ得る。
【0039】
非限定的実例として、スキューされた四角形ジェネレータ114は、クラスタリング・アルゴリズムを検出された物体の物体検出器106の出力に適用すること(たとえば、信頼度値514を使用して陰性検出をフィルタ処理で除去した後)によって、検出された物体の任意の数のクラスタを形成することによって、任意の数のスキューされた四角形を生成及び/又は判定することができる。検出された物体をクラスタ化するために、スキューされた四角形ジェネレータ114は、検出された物体(たとえば、候補のスキューされた四角形)の場所をともにクラスタ化することができる。これは、たとえば、検出された物体に関連する信頼度値514及び/又は本明細書に記載の他の検出された物体データに少なくとも部分的に基づいてもよい。いくつかの実例において、スキューされた四角形ジェネレータ114は、DBSCAN(Density-Based Spatial Clustering of Applications with Noise:ノイズを有するアプリケーションの密度ベースの空間クラスタリング)アルゴリズムを使用する。他の実例は、NMS又は修正済みグループ長方形アルゴリズムを含む。スキューされた四角形は、出力物体検出として各クラスタから選択、決定、及び/又は生成され得る(たとえば、1個若しくは複数のアルゴリズム及び/又はニューラル・ネットワークを使用して)。
【0040】
調整されたコーナー・ポイント520を表すデータ及び/又はスキューされた四角形ジェネレータ114によって決定されたそれぞれのスキューされた四角形は、様々なダウンストリーム構成要素又はシステムに提供され得る。たとえば、1個のインスタンスにおいて、スキューされた四角形のコーナー・ポイントは、車両の駐車操作を調整するためなどに、2次元コーナー・ポイント座標を3次元座標に変換すること又はそのデータを他の方法で処理することによってコーナー・ポイントを直接使用することができる、車両制御モジュールに提供され得る。別の態様において、スキューされた四角形のコーナー・ポイントは、1個又は複数の駐車スペースの表現を表示するためのビデオ又は画像モニタを有する計器群制御モジュールに提供され得る。たとえば、コーナー・ポイントは、画像502及び/又は対応する画像或いは描かれたコーナー・ポイントを有する画像502に注釈を付けるために使用され得る-たとえば、調整されたコーナー・ポイント520を有するスキューされた四角形の描写(たとえば、点線で示された)526を有する図5Aの注釈付きの画像525。
【0041】
さらなる態様において、スキューされた四角形のコーナー・ポイント、変位値122、及び/又はアンカ・ボックスのコーナー・ポイントに対応する信頼度値(たとえば、信頼度値116)が、1個又は複数の駐車スペース(たとえば、スキューされた四角形ジェネレータ114によって識別される駐車スペース)への1個又は複数の入口を検出及び/又は定義するための入口判定器126への入力として提供され得る。たとえば、入口線は、アンカ・ボックスの信頼度値116の中から最も高い信頼度値を有する2個のコーナー・ポイント(たとえば、4個のうちの)を選択することによって、検出及び/又は定義され得る。いくつかの実例において、選択はさらに、信頼度値が閾値より大きいこと(たとえば、コーナー・ポイントが入口にそれぞれ対応しそうであることを示す)に基づき得る。駐車スペースへの入口は、選択されたコーナー・ポイントの場所を使用して、入口線として定義され得る、或いは他の方法で判定及び/又は定義され得る。
【0042】
そのようなものとして、入口判定器126によって判定された入口情報は、様々なダウンストリーム構成要素又はシステムに提供され得る。たとえば、いくつかのインスタンスにおいて、入口に対応するものとして識別されたコーナー・ポイントは、2次元コーナー・ポイント座標を3次元座標に変換すること又はコーナー・ポイントを他の方法で処理することによってコーナー・ポイントを直接使用することができる、車両制御モジュールに提供され得る。別の態様において、コーナー・ポイントは、1個又は複数の駐車スペースへの1個又は複数の入口の表現を表示するためのビデオ又は画像モニタを有する計器群制御モジュールに提供され得る。たとえば、コーナー・ポイントは、画像502及び/又は対応する画像或いはコーナー・ポイント及び/又は入口が描かれた画像502に注釈を付けるために使用され得る-たとえば、図5Bの注釈付きの画像530は、駐車スペースへの入口線の描写(たとえば、破線によって示された)532を含み得る。オプションで、駐車スペース描写534(たとえば、点線)もまた、提供され得る。1個の実例において、入口及び/又は駐車スペースの描写は、色付きの線又は画像への他の適切な注釈を含み得る。
【0043】
物体検出のためのマシン学習モデルのトレーニングの実例
物体検出器106は、様々な可能な手法を使用して、トレーニングされ得る。いくつかの実例において、物体検出器106は、完全に監視された方式でトレーニングされ得る。トレーニング画像はそれらのラベルとともに、ミニバッチにグループ分けされ得、ミニバッチのサイズは、調節可能なハイパーパラメータでもよい。各ミニバッチは、そのミニバッチ内の画像にトランスフォーメーションを適用することができるオンライン・データ拡張層に渡され得る。データ拡張は、トレーニング・データへの物体検出器106の可能な過剰適合を軽減するために使用され得る。データ拡張トランスフォーメーションは、空間トランスフォーメーション、たとえば、左右反転、ズーム・イン/アウト、ランダム変換など、色トランスフォーメーション、たとえば、色合い、彩度及びコントラスト調整、或いは付加ノイズを含み得る(しかし、これらに限定されない)。ラベルは、トレーニング画像に行われた対応するトランスフォーメーションを反映するようにトランスフォーメーションされ得る。
【0044】
拡張された画像は、フォワード・パス計算を実行するために、物体検出器106に渡され得る。物体検出器106は、空間要素ごとの特徴抽出及び予測(たとえば、アンカ・ボックスに関連する予測)を実行し得る。損失関数は、様々な出力(たとえば、各アンカ・ボックスの信頼度値及び変位値)を予測するタスクにおいてエラーを同時に測定することができる。
【0045】
様々な出力の構成要素損失は、ミニバッチ全体に適用される単一の損失関数に一緒に結合され得る。次いで、バックワード・パス計算が、トレーニング可能なパラメータに関するコスト関数の勾配を再帰的に計算するために生じ得る(通常は、少なくとも、物体検出器106の重み及びバイアス、しかし、たとえばバッチ正規化が使用されるとき、他のトレーニング可能なパラメータが存在し得るので、これに限定されない)。フォワード及びバックワード・パス計算は、通常は、深層学習フレームワーク及び下部のソフトウェア・スタックによって処理され得る。
【0046】
物体検出器106のパラメータ更新が、次いで、生じ得る。オプティマイザが、トレーニング可能なパラメータへの調整を行うために使用され得る。実例は、確率勾配降下、又は慣性項を有する確率勾配降下を含む。オプティマイザに接続されるメイン・ハイパーパラメータは、学習率でもよい。オプティマイザに応じた他のハイパーパラメータもまた存在し得る。
【0047】
データセット内の画像は、より速い収束につながり得る、トレーニング中の各エポックのランダムな順番で提示され得る。エポックは、データセットの各画像をトレーニング中の物体検出器106に一度示すために使用されるフォワード/バックワード・パス反復の数を指し得る。全プロセス「フォワード・パス-バックワード・パス-パラメータ更新」は、トレーニングされたパラメータの収束まで繰り返され得る。収束は、損失関数の値がトレーニング・セット及び検証セットの両方で十分に低い値まで下がることを観測するステップと、さらなる反復は損失を減らさないと判定するステップとによって、評価され得る。検証セットを介して計算される平均精度など、他のメトリクスが、収束を評価するために使用され得る。
【0048】
トレーニング中に、検証が、定期的に実行され得、これは、検証セット(トレーニング・セットとは別個の)内の画像にわたる損失関数の平均値をチェックすることを含み得る。本明細書に記載のように、物体検出器106のそれぞれの出力(たとえば、各アンカ・ボックスの信頼性スコア、各アンカ・ボックスの変位値など)は、トレーニングのために使用される別個の損失関数に関連付けられ得る。任意の適切な損失関数が、使用され得る。
【0049】
本開示の一態様によれば、駐車スペースのグラウンド・トゥルース・データは、駐車スペースのコーナーの場所を含み得、コーナーの場所は、スキューされた四角形を形成又は定義し得る。さらに、陽性トレーニング・サンプルは、マッチング・コストが閾値未満であることなどに基づいて、アンカ・ボックスのスキューされた四角形のコーナーがグラウンド・トゥルース・コーナーの場所に十分類似しているときに、物体検出器106の出力から識別され得る。本開示の一態様において、様々なタイプのアンカ・ボックスが、ニューラル・ネットワークをトレーニングする及び陽性サンプルを識別するために使用され得る。たとえば、1個の態様において、既定義のアンカ・ボックスは、長方形(たとえば、長方形)を含み得る。さらに、既定義のアンカ・ボックスは、回転された長方形を含み得る。追加で又は代わりに、アンカ・ボックスのうちの1個又は複数は、スキューされた及び回転された長方形を含み得る。スキューされた長方形の実例には、不規則な長方形(たとえば、非合同な角)、ひし形、凧形、台形、平行四辺形、等脚台形、スキューされた四角形、及びその任意の組合せが含まれる。既定義のアンカ・ボックスは、グラウンド・トゥルース・ラベリングから手動で設計又は取得され得、物体検出器106をトレーニングするために使用されるグラウンド・トゥルース変位値を計算するために使用され得る。グラウンド・トゥルース・ラベリングから取得されたアンカ・ボックスは、「データ駆動型アンカ・ボックス」と称され得、グラウンド・トゥルース・サンプルをクラスタ化する又は他の方法で分析することによって生成される。たとえば、グラウンド・トゥルース・サンプル(たとえば、スキューされた四角形を含む)は、1個又は複数の画像について生成され得る。グラウンド・トゥルース・サンプルは、次いで、1個又は複数のクラスタにクラスタ化され得、少なくとも1個のデータ駆動型アンカ・ボックスが、1個又は複数のクラスタのうちの各クラスタのサンプルから生成、選択、及び/又は決定され得る。いくつかの実例において、データ駆動型アンカ・ボックスは、クラスタのサンプルのうちの1個又は複数から計算された形状(たとえば、平均又はクラスタの他の方法で統計的に導出された形状に対応する)を有し得る。様々な実例において、スペクトル・クラスタリングが、形状相似関数を使用してグラウンド・トゥルース・サンプルのアフィニティ・マトリックスを計算すること、及びkクラスタを有するアフィニティ・マトリックスを使用するスペクトル・クラスタリングを実行することなどによって、実行され得、kは、生成されることになるクラスタの数である。
【0050】
1個の態様において、物体検出器106の出力から陽性サンプルを識別するために使用されるマッチング・コストは、物体検出器106による出力である対応する変位値及びグラウンド・トゥルース・コーナーの場所によって調整されるものとしての既定義のアンカ・ボックス・コーナー間の最小総距離に少なくとも部分的に基づく。比較されているコーナー・ポイントは、規則的長方形を定義しなくてもよい(及びスキューされた四角形を代わりに定義してもよい)ので、これは、和集合の共通部分(IOU)に基づいて陽性サンプルを決定するステップとは対照的であり、IOUよりも単純になり得る。
【0051】
最小総距離は、様々な方式で計算され得る。たとえば、図6を参照すると、描写された駐車スペース602のグラウンド・トゥルース・コーナー・ポイント(B1、B2、B3、及びB4)が示された、画像610が描写されている。画像610は、物体検出器106へのトレーニング入力として使用され得る。結果として、物体検出器106は、図示するように、アンカ・ボックスの調整されたコーナー・ポイント(A1、A2、A3、及びA4)を計算するために使用されるアンカ・ボックスのコーナー・ポイントへの変位値を提供し得る。図6は、この図を単純化するために単一のアンカ・ボックスのみのコーナー・ポイントを示しており、他の態様において、類似の情報が、本明細書に記載の各アンカ・ボックスについて使用され得る。
【0052】
本開示の1個の態様において、最小総距離を計算することは、最小平均距離を計算することを含む。たとえば、第1の総距離は、(A1、B1)、(A2、B2)、(A3、B3)、及び(A4、B4)の間の距離を判定すること、次いで、それらの距離から第1の総距離を統計的に導出すること、たとえば平均を使用すること、によって、計算され得る。第2の、第3の、及び第4の総距離もまた、各データ・セット(たとえば、各可能な組合せの)のコーナー・ポイント間の関連付けを変更することによって、計算され得る-たとえば、(A1、B2)、(A2、B3)、(A3、B4)、及び(A4、B1)を使用する第2の総距離と、(A1、B3)、(A2、B4)、(A3、B1)、及び(A4、B2)を使用する第3の総距離と、(A1、B4)、(A2、B1)、(A3、B2)、及び(A4、B3)を使用する第4の総距離。最小総距離が、次いで、様々な総距離の中から選択され得、アンカ・ボックスは陽性トレーニング・サンプルである(たとえば、IOUに類似する)かどうかを判定するために使用され得る。たとえば、陽性サンプルは、平均総距離が閾値未満であることに少なくとも部分的に基づいて、選択され得る。他の態様において、平均平均距離(average mean distance)、又は他の統計的定量化が、選択され得、マッチング・コストは閾値未満であるかどうかを判定するために使用され得る。
【0053】
本開示のいくつかの態様において、最小総距離が、アンカ・ボックスはトレーニングのための陽性サンプルに対応するかどうかを判定するために、物体検出器106に関連する任意の数のアンカ・ボックスについて判定され得る。信頼度値118は、陽性サンプルであるとして考えることからアンカ・ボックスをフィルタ処理するために使用され得る。たとえば、最小総距離は、そのアンカ・ボックスに関連する信頼度値118に少なくとも部分的に基づいて、アンカ・ボックスについて判定され得る。いくつかの実例において、最小総距離が、閾値を超える信頼度値118を有する(たとえば、陽性検出を示す)各アンカ・ボックスについて判定され得る。
【0054】
本開示のさらなる態様において、各アンカ・ボックスの最小総距離は、グラウンド・トゥルース・コーナー・ポイント(たとえば、グラウンド・トゥルースのスキューされた四角形)によって定義されたサイズ及び/又はエリアに少なくとも部分的に基づいて正規化され得る。最小総距離の正規化は、たとえば、異なるアンカ・ボックス・サイズ及び/又は空間要素領域(たとえば、グリッド)解像度が用いられる、アンカ・ボックスのサイズ差を説明するために使用され得る。本開示によれば、マッチング・コスト(たとえば、正規化された最小総距離に少なくとも部分的に基づく)が、ある特定の(たとえば、あらかじめ定められた)閾値未満であるとき、アンカ・ボックスは、陽性サンプルとして識別され得る。陽性サンプルは、次いで、トレーニングされている物体検出器106(たとえば、CNN)のパラメータを更新するために使用され得る。
【0055】
ここで図7を参照すると、図7は、本開示のいくつかの実施例による、駐車スペースのコーナー・ポイントを提供するようにマシン学習モデルをトレーニングするための方法700を示す流れ図である。方法700の各ブロック、及び本明細書に記載の他の方法は、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって、実施され得る。方法700はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法700は、いくつか例を挙げると、独立型アプリケーション、サービス又はホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、或いは別の製品へのプラグインによって提供され得る。本明細書に記載の方法は、本明細書に記載のものを含むが、これらに限定されない、任意の1個のシステム、又は任意の組合せのシステムによって、追加で又は別法として、実行され得、特定に実例に制限されない。
【0056】
方法700は、ブロックB702において、駐車スペースを表す画像データをニューラル・ネットワークに適用することを含む。たとえば、画像502は、物体検出器106に適用され得、画像502は、少なくとも1個の駐車スペースを描写する。
【0057】
方法700は、ブロックB704において、画像データから生成された及びアンカ形状のコーナー・ポイントへの変位値を表すデータを、ニューラル・ネットワークを使用して、受信することを含む。たとえば、回帰サブネットワーク512は、既定義のアンカ・ボックス522に関連する及び画像502を表す画像データから生成された変位値516を出力することができる。
【0058】
方法700は、ブロックB706において、スキューされたポリゴンのコーナー・ポイントをアンカ形状のコーナー・ポイントへの変位値から判定することを含む。たとえば、スキューされた四角形ジェネレータ518(又は少なくともトレーニングのために使用される他の構成要素)は、既定義のアンカ・ボックス522に関連する変位値516からスキューされた四角形の調整されたコーナー・ポイント520を判定することができる。
【0059】
方法700は、ブロックB708において、スキューされたポリゴンのコーナー・ポイントと駐車スペースのグラウンド・トゥルース・コーナー・ポイントとの間の第1の距離を計算することを含む。たとえば、最小総距離は、図6に記載のように、(A1、A2、A3、及びA4)と(B1、B2、B3、及びB4)との間で計算され得る。
【0060】
方法700は、ブロックB710において、第1の距離に基づいてサンプル格付けを決定することを含む。たとえば、サンプル格付けは、最小総距離又はそのいくつかの派生物(たとえば、グラウンド・トゥルース・サイズに基づいて正規化された)でもよい。
【0061】
方法700は、ブロックB712において、サンプル格付けが閾値を超える(たとえば、未満である)ことに基づいて、陽性トレーニング・サンプルとしてアンカ形状を使用してニューラル・ネットワークのパラメータを更新することを含む。たとえば、アンカは、マッチング・コスト(たとえば、サンプル格付けに基づく)が閾値未満であるとき、陽性サンプルとして定義され得る。
【0062】
ここで図8を参照すると、図8は、本開示のいくつかの実施例による、駐車スペースのコーナー・ポイントを、ニューラル・ネットワークを使用して、判定するための方法800を示す流れ図である。方法800は、ブロックB802において、環境内の少なくとも1個のセンサの視界を表すセンサ・データをニューラル・ネットワークに適用することを含む。たとえば、画像502を表すセンサ・データは、物体検出器106に適用され得、その画像は、車両1100のカメラの視界を表す。
【0063】
方法800は、ブロックB804において、センサ・データから生成された第1のデータ及び第2のデータをニューラル・ネットワークから受信することを含み、第1のデータは、アンカ形状のコーナー・ポイントへの変位値を表し、第2のデータは、アンカ形状が少なくとも1個のセンサの視界内の駐車スペースに対応する可能性を予測する信頼度値を表す。たとえば、回帰サブネットワーク512は、既定義のアンカ・ボックス522に関連する変位値516を表す及び画像502を表すセンサ・データから生成されたデータを出力することができる。加えて、分類サブネットワーク510は、アンカ・ボックス522が画像502内の駐車スペースに対応する可能性を予測する信頼性スコア514を表すデータを出力することができる。
【0064】
方法800は、ブロックB806において、信頼度値が閾値を超えることに基づいて、スキューされたポリゴンのコーナー・ポイントをアンカ形状のコーナー・ポイントへの変位値から判定することを含む。たとえば、スキューされた四角形ジェネレータ518は、図5Aに示すように、閾値を超える信頼度値514に少なくとも部分的に基づいて既定義のアンカ・ボックス522に関連する変位値516からスキューされた四角形の調整されたコーナー・ポイント520を表すデータを判定することができる。
【0065】
ここで図9を参照すると、図9は、本開示のいくつかの実施例による、駐車スペースへの入口を、ニューラル・ネットワークを使用して、判定するための方法900を示す流れ図である。方法900は、ブロックB902において、環境内の少なくとも1個のセンサの視界を表すセンサ・データをニューラル・ネットワークに適用することを含む。たとえば、画像502を表すセンサ・データは、物体検出器106に適用され得、センサ・データは、車両1100のカメラの視界を表す。
【0066】
方法900は、ブロックB904において、画像データから生成された第1のデータ及び第2のデータをニューラル・ネットワークから受信することを含む。第1のデータは、アンカ形状のコーナー・ポイントへの変位値を表し、第2のデータは、アンカ形状のコーナー・ポイントが少なくとも1個のセンサの視界において駐車スペースへの入口を定義する可能性を予測する信頼度値を表す。たとえば、回帰サブネットワーク512は、既定義のアンカ・ボックス522に関連する変位値516を表す及びセンサ・データから生成されたデータを出力することができる。加えて、分類サブネットワーク510(又は別の類似のネットワーク)は、アンカ・ボックスのコーナー・ポイントが駐車スペースへの入口の少なくとも一部分を表す可能性を予測する図2の信頼性スコア116を出力することができる。
【0067】
方法900は、ブロックB906において、信頼度値に基づいてアンカ形状のコーナー・ポイントのサブセットを選択することを含む。たとえば、入口判定器126は、最も高い信頼性スコア116を有するコーナー・ポイントを判定及び/又は選択するために、コーナー・ポイントをフィルタ処理することができる。
【0068】
方法900は、ブロックB908において、サブセットのコーナー・ポイントから駐車スペースへの入口を識別することを含む。たとえば、最も高い信頼性スコアを有する2個のコーナー・ポイントが、選択されると、入口判定器126は、駐車スペースの入口及び/又は入口線を定義して、指定され得る。
【0069】
例示的動作環境
物体検出システム100及び/又はネットワーク502は、本開示のいくつかの実施例によれば、図10の例示的動作環境1000において実装され得る。
【0070】
図示されていない他の構成要素の中でも特に、動作環境1000は、クライアント・デバイス1020、ネットワーク1040、サーバ・デバイス1060、センサ1080、及びデータ・ストア1050を含む。図10に示された動作環境1000は1個の適切な動作環境の一実例であることを理解されたい。図10に示されたそれぞれの構成要素は、たとえば、図12に関して説明される計算デバイス1200のうちの1個又は複数などの任意のタイプの計算デバイスを介して実装され得る。これらの構成要素は、ワイヤード、ワイヤレス、又はその両方でもよい、ネットワーク1040を介して互いに通信し得る。ネットワーク1040は、複数のネットワーク、又はネットワークのネットワークを含み得るが、本開示の態様を分かりにくくしないように単純な形で示されている。実例として、ネットワーク1040は、1個又は複数のワイド・エリア・ネットワーク(WAN)、1個又は複数のローカル・エリア・ネットワーク(LAN)、インターネットなどの1個又は複数のパブリック・ネットワーク、及び/又は1個又は複数のプライベート・ネットワークを含み得る。ネットワーク1040が、ワイヤレス電気通信ネットワークを含む場合、構成要素、たとえば、基地局、通信塔、或いはアクセス・ポイント(並びに他の構成要素)、は、ワイヤレス接続を提供し得る。任意の実例において、少なくとも1個のネットワーク1040は、さらに後述される、図11Dのネットワーク1190に対応し得る。
【0071】
任意の数のクライアント・デバイス1020、サーバ・デバイス1060、センサ1080、及びデータ・ストア1050が、本開示の範囲内で動作環境1000内で使用され得ることを理解されたい。それぞれが、単一のデバイス又は分散型環境において協力する複数のデバイスとして構成され得る。
【0072】
クライアント・デバイス1020は、図12に関して本明細書に記載の例示的計算デバイス1200の構成要素、特徴、及び機能性のうちの少なくともいくつかを含み得る。実例として、及び限定ではなく、クライアント・デバイス1020は、パーソナル・コンピュータ(PC)、ラップトップ・コンピュータ、モバイル・デバイス、スマートフォン、タブレット・コンピュータ、スマート・ウォッチ、ウェアラブル・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、MP3プレイヤ、全地球測位システム(GPS:Global Positioning System)又はデバイス、ビデオ・プレイヤ、ハンドヘルド通信デバイス、ゲーミング・デバイス又はシステム、娯楽システム、車両コンピュータ・システム、組み込み型システム・コントローラ、リモート制御、器具、民生用電子デバイス、ワークステーション、これらの描写されたデバイスの任意の組合せ、或いは任意の他の適切なデバイスとして実施され得る。任意の実例において、少なくとも1個のクライアント・デバイス1020は、本明細書でさらに詳しく説明される車両、たとえば、図11A~11Dの車両1100、の一部でもよい。
【0073】
クライアント・デバイス1020は、1個又は複数のプロセッサと、1個又は複数のコンピュータ可読媒体とを含み得る。コンピュータ可読媒体は、1個又は複数のプロセッサによって実行可能なコンピュータ可読命令を含み得る。命令は、1個又は複数のプロセッサによって実行されるとき、1個又は複数のプロセッサに本明細書に記載の方法の任意の組合せ及び/又は部分を実行させる及び/又は図1の物体検出システム100の機能性の任意の部分を実装させることができる。
【0074】
サーバ・デバイス1060はまた、1個又は複数のプロセッサと、1個又は複数のコンピュータ可読媒体とを含み得る。コンピュータ可読媒体は、1個又は複数のプロセッサによって実行可能なコンピュータ可読命令を含む。命令は、1個又は複数のプロセッサによって実行されるとき、1個又は複数のプロセッサに本明細書に記載の方法の任意の組合せ及び/又は部分を実行させる及び/又は図1の物体検出システム100の機能性の任意の部分を実装させることができる。任意の実例において、少なくとも1個のサーバ・デバイス1060は、本明細書でさらに詳しく説明される、図11Dのサーバ1178に対応し得る。
【0075】
データ・ストア1050は、1個又は複数のコンピュータ可読媒体を含み得る。コンピュータ可読媒体は、1個又は複数のプロセッサによって実行可能なコンピュータ可読命令を含み得る。命令は、1個又は複数のプロセッサによって実行されるとき、1個又は複数のプロセッサに本明細書に記載の方法の任意の組合せ及び/又は部分を実行させる及び/又は図1の物体検出システム100の機能性の任意の部分を実装させることができる。データ・ストア1050(又はコンピュータ・データ・ストレージ)は、単一の構成要素として描写されているが、1個又は複数のデータ・ストア(たとえば、データベース)として実施されてもよく、少なくとも部分的にクラウド内でもよい。データ・ストア1050のうちの1個又は複数は、図11Cのデータ・ストアのうちの1個又は複数に対応し得る。
【0076】
サーバ・デバイス1060及びクライアント・デバイス1020の外部に描かれているが、データ・ストア1050は、サーバ・デバイス1060及び/又はクライアント・デバイス1020の任意の組合せで少なくとも部分的に実施され得る(たとえば、メモリ1204(図12)のように)。たとえば、いくつかの情報は、クライアント・デバイス1020に記憶され得、他の及び/又は重複情報は、外部に記憶され得る(たとえば、サーバ・デバイス1060に)。したがって、データ・ストア1050内の情報は、ストレージのための1個又は複数のデータ・ストア(外部でホストされ得る)にわたり任意の適切な方式で分散され得ることを理解されたい。たとえば、データ・ストア1050は、サーバ・デバイス1060の1個若しくは複数のコンピュータ可読媒体のうちの少なくともいくつか及び/又はクライアント・デバイス1020の1個若しくは複数のコンピュータ可読媒体のうちの少なくともいくつかを含み得る。
【0077】
センサ1080は、環境の少なくともいくつかの態様を表すセンサ・データを生成する能力を有する少なくとも1個のセンサを含む。たとえば、センサ1080は、図1Aのセンサ・データ102を生成し得る。センサ1080は、全地球的航法衛星システム(GNSS:global navigation satellite system)センサ(たとえば、全地球測位システム(GPS)センサ)、RADARセンサ、超音波センサ、LIDARセンサ、慣性計測装置(IMU:inertial measurement unit)センサ(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン、ステレオ・カメラ、ワイドビュー・カメラ(たとえば、魚眼カメラ)、赤外線カメラ、サラウンド・カメラ(たとえば、360度カメラ)、長距離及び/若しくは中距離カメラ、スピード・センサ(たとえば、車両1100のスピードを測定するための)、振動センサ、ステアリング・センサ、ブレーキ・センサ(たとえば、ブレーキ・センサ・システムの一部としての)、並びに/又は他のセンサ・タイプの任意の組合せを含み得る。
【0078】
図11A~11Cを参照すると、センサ・データ102は、たとえば、及び限定ではなく、全地球的航法衛星システム(GNSS)センサ1168(たとえば、全地球測位システム・センサ)、RADARセンサ1160、超音波センサ1162、LIDARセンサ1164、慣性計測装置(IMU)センサ1166(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン1196、ステレオ・カメラ1168、ワイドビュー・カメラ1170(たとえば、魚眼カメラ)、赤外線カメラ1172、サラウンド・カメラ1174(たとえば、360度カメラ)、長距離及び/若しくは中距離カメラ1198、スピード・センサ1144(たとえば、車両1100のスピードを測定するための)、振動センサ1142、ステアリング・センサ1140、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム1146の一部としての)、並びに/又は他のセンサ・タイプによって生成され得る。
【0079】
いくつかの実例において、センサ・データ102は、前向きの及び/又は横側を向いたカメラ、たとえば、ワイドビュー・カメラ1170、サラウンド・カメラ1174、ステレオ・カメラ1168、及び/又は長距離若しくは中距離カメラ1198、によって生成され得る。いくつかの実例において、複数のカメラ又は他のセンサが、複数の視界(たとえば、図11Bの長距離カメラ1198、前向きのステレオ・カメラ1168、及び/又は前向きのワイドビュー・カメラ1170の視界)を組み込むために使用され得る。
【0080】
例示的自律型車両
図11Aは、本開示のいくつかの実施例による、例示的自律型車両1100の図である。自律型車両1100(或いは本明細書で「車両1100」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、及び/又は別のタイプの1人若しくは複数の乗客を乗せた車両を含み得るが、これらに限定されない。自律型車両は、一般に、米国運輸省道路交通安全局(NHTSA:National Highway Traffic Safety Administration)、米国運輸省の部署、及び自動車技術者協会(SAE:Society of Automotive Engineers)「Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicle」(2018年6月11日に公開された規格番号J3016-201806、2016年9月30日に公開された規格番号J3016-201609、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。車両1100は、自律運転レベルのレベル3~レベル5のうちの1個又は複数による機能の能力を有し得る。たとえば、車両1100は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
【0081】
車両1100は、車両のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。車両1100は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム1150を含み得る。推進システム1150は、車両1100の推進力を有効にするために、トランスミッションを含み得る、車両1100のドライブ・トレインに接続され得る。推進システム1150は、スロットル/加速装置1152からの信号の受信に応答して制御され得る。
【0082】
ハンドルを含み得る、ステアリング・システム1154は、推進システム1150が動作しているときに(たとえば、車両が移動中のときに)車両1100のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム1154は、ステアリング・アクチュエータ1156から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能のオプションでもよい。
【0083】
ブレーキ・センサ・システム1146は、ブレーキ・アクチュエータ1148及び/又はブレーキ・センサからの信号の受信に応答して車両ブレーキを動作させるために使用され得る。
【0084】
1個又は複数のシステム・オン・チップ(SoC:system on chip)1104(図11C)及び/又はGPUを含み得る、コントローラ1136は、車両1100の1個若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1個又は複数のブレーキ・アクチュエータ1148を介して車両ブレーキを動作させて、1個又は複数のステアリング・アクチュエータ1156を介してステアリング・システム1154を動作させて、1個又は複数のスロットル/加速装置1152を介して推進システム1150を動作させるために、信号を送ることができる。コントローラ1136は、センサ信号を処理する、並びに律的運転を可能にするために及び/又は運転者の車両1100の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1個又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ1136は、自律運転機能のための第1のコントローラ1136、機能的安全性機能のための第2のコントローラ1136、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ1136、インフォテインメント機能のための第4のコントローラ1136、緊急状態における冗長性のための第5のコントローラ1136、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ1136が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ1136が、単一の機能、及び/又はその任意の組合せを処理することができる。
【0085】
コントローラ1136は、1個又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して車両1100の1個若しくは複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ1158(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ1160、超音波センサ1162、LIDARセンサ1164、慣性計測装置(IMU:inertial measurement unit)センサ1166(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン1196、ステレオ・カメラ1168、ワイドビュー・カメラ1170(たとえば、魚眼カメラ)、赤外線カメラ1172、サラウンド・カメラ1174(たとえば、360度カメラ)、長距離及び/又は中距離カメラ1198、スピード・センサ1144(たとえば、車両1100のスピードを測定するための)、振動センサ1142、ステアリング・センサ1140、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム1146の一部としての)、及び/又は他のセンサ・タイプから受信され得る。
【0086】
コントローラ1136のうちの1個又は複数のコントローラは、車両1100の計器群1132から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ1134、可聴式アナンシエータ、ラウドスピーカ、及び/又は車両1100の他の構成要素を介して提供することができる。出力は、車両ベロシティ、スピード、時間、マップ・データ(たとえば、図11CのHDマップ1122)、位置データ(たとえば、マップ上などの、車両の1100の位置)、方向、他の車両の位置(たとえば、占有グリッド)、コントローラ1136によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ1134は、1個又は複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在、及び/又は車両が行った、行っている、又は行うであろう運転操作(たとえば、今、車線変更をしていること、3.22km(2マイル)内の出口34Bを出ることなど)に関する情報を表示することができる。
【0087】
車両1100はさらに、1個若しくは複数のワイヤレス・アンテナ1126及び/又はモデムを使用して1個若しくは複数のネットワークを介して通信することができるネットワーク・インターフェース1124を含む。たとえば、ネットワーク・インターフェース1124は、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000などを介する通信の能力を有し得る。ワイヤレス・アンテナ1126はまた、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、車両、モバイル・デバイスなど)の間の通信を可能にすることができる。
【0088】
図11Bは、本開示のいくつかの実施例による、図11Aの例示的自律型車両1100のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1個の例示的実施例であり、制限することは意図されていない。たとえば、追加の及び/又は代替カメラが含まれ得る、及び/又はカメラは車両1100の異なる位置に置かれ得る。
【0089】
カメラのカメラ・タイプは、車両1100の構成要素及び/又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(ASIL:automotive safety integrity level)Bにおいて及び/又は別のASILにおいて動作することができる。カメラ・タイプは、実施例に応じて、60フレーム/秒(fps)、1120fps、240fpsなど、任意の画像キャプチャ・レートの能力を有し得る。カメラは、ロール・シャッタ、グローバル・シャッタ、別のタイプのシャッタ、又はその組合せを使用する能力を有し得る。いくつかの実例では、カラー・フィルタ・アレイは、RCCC(red clear clear clear)カラー・フィルタ・アレイ、RCCB(red clear clear blue)カラー・フィルタ・アレイ、RBGC(red blue green clear)カラー・フィルタ・アレイ、Foveon X3カラー・フィルタ・アレイ、Bayerセンサ(RGGB)カラー・フィルタ・アレイ、モノクロ・センサ・カラー・フィルタ・アレイ、及び/又は別のタイプのカラー・フィルタ・アレイを含み得る。一部の実施例では、RCCC、RCCB、及び/又はRBGCカラー・フィルタ・アレイを有するカメラなどのクリア画素カメラは、光感度を上げるための取り組みにおいて使用され得る。
【0090】
いくつかの実例では、カメラのうちの1個又は複数が、高度運転者支援システム(ADAS:advanced driver assistance system)機能(たとえば、冗長又はフェイルセーフ設計の一部として)を実行するために使用され得る。たとえば、多機能モノ・カメラは、車線逸脱警報、交通標識アシスト及びインテリジェント・ヘッドランプ制御を含む機能を提供するために設置され得る。カメラのうちの1個又は複数(たとえば、すべてのカメラ)が、画像データ(たとえば、ビデオ)を同時に記録及び提供することができる。
【0091】
カメラのうちの1個又は複数は、カメラの画像データ・キャプチャ能力を妨げることがある自動車内からの迷光及び反射(たとえば、フロントガラスのミラーにおいて反射されたダッシュボードからの反射)を取り除くために、カスタム設計された(3D印刷された)部品などの取付部品において取り付けられ得る。サイドミラー取付部品を参照すると、サイドミラー部品は、カメラ取付板がサイドミラーの形状に合うように、カスタム3D印刷され得る。いくつかの実例では、カメラは、サイドミラー内に統合され得る。サイドビュー・カメラについては、カメラはまた、キャビンの各角にある4個の支柱内に統合され得る。
【0092】
車両1100の前の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1個若しくは複数のコントローラ1136及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい車両進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(「LDW(Lane Departure Warning)」)、自律的クルーズ制御(「ACC(Autonomous Cruise Control)」)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
【0093】
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交差する交通又は自転車)からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ1170でもよい。図11Bにはワイドビュー・カメラは1個だけ示されているが、車両1100には任意の数のワイドビュー・カメラ1170が存在し得る。加えて、長距離カメラ1198(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ1198はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
【0094】
1個又は複数のステレオ・カメラ1168もまた、前向きの構成に含まれ得る。ステレオ・カメラ1168は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、車両の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ1168は、2個のカメラ・レンズ(左と右に1個ずつ)と、車両から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ1168が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
【0095】
車両1100の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ1174(たとえば、図11Bに示されるような4個のサラウンド・カメラ1174)は、車両1100上に位置付けられ得る。サラウンド・カメラ1174は、ワイドビュー・カメラ1170、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、車両の前、後ろ、及び側面に配置され得る。代替配置において、車両は、3個のサラウンド・カメラ1174(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1個又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
【0096】
車両1100の後ろに対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ1198、ステレオ・カメラ1168)、赤外線カメラ1172など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
【0097】
図11Cは、本開示のいくつかの実施例による、図11Aの例示的自律型車両1100の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素はともに除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【0098】
図11Cの車両1100の構成要素、特徴、及びシステムのそれぞれは、バス1102を介して接続されるものとして図示されている。バス1102は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキ、ステアリング、フロントガラス・ワイパなどの作動など、車両1100の様々な特徴及び機能の制御を助けるために使用される車両1100内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の車両状況指標を見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
【0099】
バス1102は、CANバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、CANバスに加えて、又はこのその代替として、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス1102を表すために使用されているが、これは制限することを意図されていない。たとえば、1個若しくは複数のCANバス、1個若しくは複数のFlexRayバス、1個若しくは複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1個若しくは複数の他のタイプのバスを含み得る、任意の数のバス1102が存在し得る。いくつかの実例では、2個以上のバス1102が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス1102は衝突回避機能のために使用されてもよく、第2のバス1102は作動制御のために使用されてもよい。任意の実例において、各バス1102は、車両1100の構成要素のいずれかと通信し得、2個以上のバス1102が同じ構成要素と通信し得る。いくつかの実例では、車両内の各SoC1104、各コントローラ1136、及び/又は各コンピュータは、同じ入力データ(たとえば、車両1100のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
【0100】
車両1100は、図11Aに関して本明細書で説明されるものなど、1個又は複数のコントローラ1136を含み得る。コントローラ1136は、様々な機能のために使用され得る。コントローラ1136は、車両1100の様々な他の構成要素及びシステムのいずれかに連結されてもよく、車両1100、車両1100の人工知能、車両1100のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
【0101】
車両1100は、システム・オン・チップ(SoC)1104を含み得る。SoC1104は、CPU1106、GPU1108、プロセッサ1110、キャッシュ1112、加速装置1114、データ・ストア1116、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC1104は、様々なプラットフォーム及びシステム内の車両1100を制御するために使用され得る。たとえば、SoC1104は、1個又は複数のサーバ(たとえば、図11Dのサーバ1178)からネットワーク・インターフェース1124を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ1122を有するシステム(たとえば、車両1100のシステム)において結合され得る。
【0102】
CPU1106は、CPUクラスタ又はCPU複合体(或いは、「CCPLEX」とも称される)を含み得る。CPU1106は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施例では、CPU1106は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施例では、CPU1106は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU1106(たとえば、CCPLEX)は、CPU1106のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
【0103】
CPU1106は、以下の特徴のうちの1個又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU1106は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
【0104】
GPU1108は、統合されたGPU(或いは本明細書において「iGPU」と称される)を含み得る。GPU1108は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU1108は、強化されたテンソル命令セットを使用することができる。GPU1108は、1個又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施例では、GPU1108は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU1108は、計算アプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU1108は、1個若しくは複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用することができる。
【0105】
GPU1108は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、GPU1108は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは制限することを意図されておらず、GPU1108は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合精度NVIDIAテンソル・コア、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
【0106】
GPU1108は、一部の実例では、900GB/秒のピーク・メモリ帯域幅に関して、提供するための高帯域幅メモリ(HBM:high bandwidth memory)及び/又は16GBHBM2メモリ・サブシステムを含み得る。いくつかの実例では、HBMメモリに加えて、又はこれの代わりに、グラフィックス・ダブル・データ・レート・タイプ5同期ランダム・アクセス・メモリ(GDDR5:graphics double data rate type five synchronous random-access memory)などの同期グラフィックス・ランダム・アクセス・メモリ(SGRAM:synchronous graphics random-access memory)が使用され得る。
【0107】
GPU1108は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU1108がCPU1106ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU1108メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU1106に送信され得る。応答して、CPU1106は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU1108に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU1106とGPU1108との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU1108へのアプリケーションのGPU1108プログラミング及び移植を単純化する。
【0108】
加えて、GPU1108は、他のプロセッサのメモリへのGPU1108のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
【0109】
SoC1104は、本明細書に記載のものを含む任意の数のキャッシュ1112を含み得る。たとえば、キャッシュ1112は、CPU1106とGPU1108との両方に利用可能な(たとえば、CPU1106とGPU1108との両方に接続された)L3キャッシュを含み得る。キャッシュ1112は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、4MB以上を含み得る。
【0110】
SoC1104は、1個又は複数の加速装置1114(たとえば、ハードウェア加速装置、ソフトウェア加速装置、又はその組合せ)を含み得る。たとえば、SoC1104は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU1108を補完するために及びGPU1108のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU1108のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置1114は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
【0111】
加速装置1114(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(DLA:deep learning accelerator)を含み得る。DLAは、深層学習アプリケーション及び推論のために1秒あたり追加の10兆の動作を提供するように構成することができる1個又は複数のテンソル処理ユニット(TPU:Tensor processing unit)を含み得る。TPUは、画像処理機能(たとえば、CNN、RCNNなどの)を実行するように構成及び最適化された加速装置でもよい。DLAはさらに、特定のセットのニューラル・ネットワーク・タイプ及び浮動小数点演算、並びに推論のために最適化され得る。DLAの設計は、汎用GPUよりも1ミリメートルあたりより多くのパフォーマンスを提供することができ、CPUのパフォーマンスを大きく超える。TPUは、たとえば、特徴と重みとの両方についてINT8、INT16、及びFP16データ・タイプをサポートする、単一インスタンス畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実行することができる。
【0112】
DLAは、以下を含むがこれらに限定されない、様々な機能のいずれかのために処理済み又は未処理のデータでニューラル・ネットワーク、特にCNN、を迅速に及び効率的に実行することができる:カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び車両所有者識別のためのCNN、及び/又は、セキュリティ及び/又は安全性関連イベントのためのCNN。
【0113】
DLAは、GPU1108の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU1108のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU1108及び/又は他の加速装置1114に任せることができる。
【0114】
加速装置1114(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(PVA:programmable vision accelerator)を含み得る。PVAは、高度運転者支援システム(ADAS:advanced driver assistance system)、自律運転、及び/又は拡張現実(AR:augmented reality)及び/又は仮想現実(VR:virtual reality)アプリケーションのためのコンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。PVAは、パフォーマンスと柔軟性との間のバランスをもたらすことができる。たとえば、各PVAは、たとえば、任意の数の縮小命令セット・コンピュータ(RISC:reduced instruction set computer)コア、直接メモリ・アクセス(DMA:direct memory access)、及び/又は任意の数のベクトル・プロセッサを含み得るが、これらに限定されない。
【0115】
RISCコアは、画像センサ(たとえば、本明細書に記載のカメラのうちのいずれかのカメラの画像センサ)、画像信号プロセッサ、及び/又は同類のものと相互作用することができる。それぞれのRISCコアは、任意の量のメモリを含み得る。RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用することができる。いくつかの実例では、RISCコアは、リアルタイム・オペレーティング・システム(RTOS:real-time operating system)を実行することができる。RISCコアは、1個若しくは複数の集積回路デバイス、特定用途向け集積回路(ASIC)、及び/又はメモリ・デバイスを使用して、実装され得る。たとえば、RISCコアは、命令キャッシュ及び/又はしっかりと結合されたRAMを含み得る。
【0116】
DMAは、CPU1106から独立したシステム・メモリにPVAの構成要素がアクセスすることを可能にし得る。DMAは、多次元アドレス指定及び/又は循環アドレス指定をサポートすることを含むがこれに限定されないPVAに最適化をもたらすために使用される任意の数の特徴をサポートすることができる。いくつかの実例では、DMAは、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る、6次元まで又はそれ以上のアドレス指定をサポートすることができる。
【0117】
ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのプログラミングを効率的に柔軟に実行する及び信号処理能力を提供するように設計され得るプログラマブル・プロセッサでもよい。いくつかの実例では、PVAは、PVAコア及び2個のベクトル処理サブシステム・パーティションを含み得る。PVAコアは、プロセッサ・サブシステム、DMAエンジン(たとえば、2個のDMAエンジン)、及び/又は他の周辺装置を含み得る。ベクトル処理サブシステムは、PVAの1次的処理エンジンとして動作することができ、ベクトル処理ユニット(VPU:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、VMEM)を含み得る。VPUコアは、たとえば、単一の命令、複数のデータ(SIMD)、超長命令語(VLIW:very long instruction word)デジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。SIMD及びVLIWの組合せは、スループット及びスピードを高めることができる。
【0118】
それぞれのベクトル・プロセッサは、命令キャッシュを含み得、専用のメモリに連結され得る。結果として、一部の実例では、それぞれのベクトル・プロセッサは、他のベクトル・プロセッサから独立して実行するように構成され得る。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、データ並列処理を用いるように構成され得る。たとえば、一部の実施例では、単一のPVAに含まれる複数のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、しかし画像の異なる領域上で、実行することができる。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを、同じ画像上で、同時に実行することができ、或いは順次画像又は画像の部分で異なるアルゴリズムを実行することさえできる。特に、任意の数のPVAは、ハードウェア加速クラスタに含まれ得、任意の数のベクトル・プロセッサは、それぞれのPVAに含まれ得る。加えて、PVAは、全体的システム安全性を高めるために、追加のエラー訂正コード(ECC:error correcting code)メモリを含み得る。
【0119】
加速装置1114(たとえば、ハードウェア加速クラスタ)は、加速装置1114のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
【0120】
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC612508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
【0121】
いくつかの実例では、SoC1104は、2018年8月10日に出願された米国特許出願第16/101,1232号に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。
【0122】
加速装置1114(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。PVAは、ADAS及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。PVAの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、PVAは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、PVAは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
【0123】
たとえば、本技術の1個の実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは制限することを意図されていない。レベル3~5の自律運転のための多数のアプリケーションは、動き推定/ステレオ・マッチング・オンザフライ(たとえば、SFM(structure from motion)、歩行者認識、レーン検出など)を必要とする。PVAは、2個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
【0124】
いくつかの実例では、PVAは、高密度のオプティカル・フローを実行するために使用され得る。処理されたRADARを提供するために未加工のRADARデータを処理する(たとえば、4D高速フーリエ変換を使用して)ことによる。他の実例において、PVAは、たとえば、飛行データの未加工の時間を処理して飛行データの処理済み時間を提供することにより、飛行深度処理の時間に使用される。
【0125】
DLAは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するために使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が誤判定検出ではなくて真陽性検出と考えられるべきであるかに関するさらなる決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動非常ブレーキ(AEB:automatic emergency braking)システムにおいて、誤判定検出は、車両に非常ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、AEBのトリガとして考えられるべきである。DLAは、信頼性値を退行するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、(たとえば、別のサブシステムから)取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、LIDARセンサ1164又はRADARセンサ1160)から取得された物体の車両1100方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ1166出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
【0126】
SoC1104は、データ・ストア1116(たとえば、メモリ)を含み得る。データ・ストア1116は、SoC1104のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア1116は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア1112は、L2又はL3キャッシュ1112を備え得る。データ・ストア1116の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置1114に関連するメモリの参照を含み得る。
【0127】
SoC1104は、1個又は複数のプロセッサ1110(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ1110は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC1104ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC1104熱及び温度センサの管理、及び/又はSoC1104電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC1104は、リング発振器を使用してCPU1106、GPU1108、及び/又は加速装置1114の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC1014をより低い電力状態に置く及び/又は車両1100をショーファーの安全停止モードにする(たとえば、車両1100を安全停止させる)ことができる。
【0128】
プロセッサ1110は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
【0129】
プロセッサ1110は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
【0130】
プロセッサ1110は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
【0131】
プロセッサ1110は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
【0132】
プロセッサ1110は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
【0133】
プロセッサ1110は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ1170で、サラウンド・カメラ1174で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、車両の目的地を変更する、車両のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
【0134】
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
【0135】
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU1108は、新しい表面を連続してレンダリングために必要とされない。GPU1108の電源が入れられ、3Dレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、GPU1108をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
【0136】
SoC1104は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、及び/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC1104は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
【0137】
SoC1104は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC1104は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ1164、RADARセンサ1160など)、バス1102からのデータ(たとえば、車両1100のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ1158からのデータを処理するために使用され得る。SoC1104は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU1106を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
【0138】
SoC1104は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC1104は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置1114が、CPU1106と結合されるとき、GPU1108、及びデータ・ストア1116は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
【0139】
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、車両内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
【0140】
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU1120)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
【0141】
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを車両の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を車両の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU1108上などで、同時に実行することができる。
【0142】
いくつかの実例では、顔認識及び車両所有者識別のためのCNNは、カメラ・センサからのデータを使用して車両1100の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに車両を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が車両を離れるときに車両の動作を停止させるために、使用され得る。このようにして、SoC1104は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
【0143】
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン1196からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC1104は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施例では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ1158によって識別されるように、車両が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ1162の支援を受けて、車両を減速する、道の端に停止させる、車両を駐車する、及び/又は車両をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
【0144】
車両は、高速相互接続(たとえば、PCIe)を介してSoC1104に連結され得るCPU1118(たとえば、個別のCPU、又はdCPU)を含み得る。CPU1118は、たとえば、X86プロセッサを含み得る。CPU1118は、たとえば、ADASセンサとSoC1104との間の潜在的に不整合の結果を調停すること、及び/又はコントローラ1136及び/又はインフォテインメントSoC1130の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
【0145】
車両1100は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC1104に連結され得るGPU1120(たとえば、個別のGPU、又はdGPU)を含み得る。GPU1120は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、車両1100のセンサからの入力(たとえば、センサ・データ)に少なくとも部分的に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
【0146】
車両1100は、1個又は複数のワイヤレス・アンテナ1126(たとえば、セルラ・アンテナ、ブルートゥース(登録商標)・アンテナなど、異なる通信プロトコルのための1個又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース1124をさらに含み得る。ネットワーク・インターフェース1124は、インターネットを介するクラウドとの(たとえば、サーバ1178及び/又は他のネットワーク・デバイスとの)、他の車両との、及び/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の車両と通信するために、直接リンクが2個の車両の間に確立され得る、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、車両対車両通信リンクを使用し、提供され得る。車両対車両通信リンクは、車両1100に近接する車両(たとえば、車両1100の前の、横の、及び/又は後ろの車両)に関する車両1100情報を提供することができる。この機能は、車両1100の共同適応クルーズ制御機能の一部でもよい。
【0147】
ネットワーク・インターフェース1124は、変調及び復調機能を提供する及びコントローラ1136がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース1124は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
【0148】
車両1100は、チップ外の(たとえば、SoC1104外の)ストレージを含み得るデータ・ストア1128をさらに含み得る。データ・ストア1128は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1個又は複数の記憶素子を含み得る。
【0149】
車両1100は、GNSSセンサ1158をさらに含み得る。GNSSセンサ1158(たとえば、GPS及び/又は支援されたGPSセンサ)は、マッピング、知覚、占有グリッド生成、及び/又は進路計画策定機能を支援する。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ1158が、使用され得る。
【0150】
車両1100は、RADARセンサ1160をさらに含み得る。RADARセンサ1160は、暗闇及び/又は厳しい気象条件においても、長距離車両検出のために車両1100によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ1160は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ1160によって生成されたデータを送信するために)CAN及び/又はバス1102を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして制限なしに、RADARセンサ1160は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
【0151】
RADARセンサ1160は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、適応クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ1160は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で車両1100の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、車両1100のレーンに入る又はこれを去る車両を迅速に検出することを可能にする。
【0152】
一実例として、中距離RADARシステムは、1460m(前)又は80m(後)までの範囲、及び42度(前)又は1450度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、車両の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
【0153】
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
【0154】
車両1100は、超音波センサ1162をさらに含み得る。車両1100の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ1162は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ1162が使用され得、異なる超音波センサ1162が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ1162は、ASIL Bの機能的安全性レベルにおいて動作することができる。
【0155】
車両1100はLIDARセンサ1164を含み得る。LIDARセンサ1164は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ1164は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、車両1100は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ1164を含み得る。
【0156】
いくつかの実例では、LIDARセンサ1164は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ1164は、たとえば、2cm~3cmの精度を有し、1400Mbpsイーサネット(登録商標)接続のサポートを有して、約1400mの広告された範囲を有し得る。いくつかの実例では、1個又は複数の非突出したLIDARセンサ1164が、使用され得る。そのような実例では、LIDARセンサ1164は、車両1100の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ1164は、低反射物体についても200mの範囲を有し、1420度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ1164は、45度と135度との間の水平視野向けに構成され得る。
【0157】
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで車両の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、車両から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、車両1100の各側面に1個ずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ1164は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
【0158】
車両は、IMUセンサ1166をさらに含み得る。一部の実例では、IMUセンサ1166は、車両1100の後部車軸の中央に位置付けられ得る。IMUセンサ1166は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ1166は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ1166は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
【0159】
一部の実施例では、IMUセンサ1166は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ1166は、GPSからIMUセンサ1166までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を車両1100が推定することを可能にし得る。いくつかの実例では、IMUセンサ1166及びGNSSセンサ1158は、単一の統合されたユニットにおいて結合され得る。
【0160】
車両は、車両1100内及び/又は周囲に置かれたマイクロフォン1196を含み得る。マイクロフォン1196は、中でも、緊急車両検出及び識別のために使用され得る。
【0161】
車両は、ステレオ・カメラ1168、ワイドビュー・カメラ1170、赤外線カメラ1172、サラウンド・カメラ1174、長距離及び/又は中距離カメラ1198、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、車両1100の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、車両1100の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、車両1100の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、車両は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、図11A及び図11Bに関連して本明細書においてさらに詳しく説明される。
【0162】
車両1100は、振動センサ1142をさらに含み得る。振動センサ1142は、車軸など、車両の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ1142が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
【0163】
車両1100は、ADASシステム1138を含み得る。一部の実例では、ADASシステム1138は、SoCを含み得る。ADASシステム1138は、自律/適応/自動クルーズ制御(ACC:autonomous/adaptive/automatic cruise control)、共同適応クルーズ制御(CACC:cooperative adaptive cruise control)、前方衝突警報(FCW:forward crash warning)、自動緊急ブレーキ(AEB:automatic emergency braking)、車線逸脱警報(LDW:lane departure warning)、レーン・キープ・アシスト(LKA:lane keep assist)、死角警報(BSW:blind spot warning)、後部交差交通警報(RCTW:rear cross-traffic warning)、衝突警報システム(CWS:collision warning system)、レーン・センタリング(LC:lane centering)、及び/又は他の特徴及び機能を含み得る。
【0164】
ACCシステムは、RADARセンサ1160、LIDARセンサ1164、及び/又はカメラを使用し得る。ACCシステムは、縦ACC及び/又は横ACCを含み得る。縦ACCは、車両1100の直ぐ前の車両までの距離を監視及び制御し、前方の車両からの安全距離を維持するために車両速度を自動的に調整する。横ACCは、距離の保持を実行し、必要なときにレーンを変更するように車両1100にアドバイスする。横ACCは、LCA及びCWSなどの他のADASアプリケーションに関連する。
【0165】
CACCは、ワイヤレス・リンクを介して他の車両からネットワーク・インターフェース1124及び/又はワイヤレス・アンテナ1126を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の車両からの情報を使用する。直接リンクは、車両対車両(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対車両(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の車両(たとえば、車両1000と同じレーン内にある、車両1100の直ぐ前の車両)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。車両1100の前方の車両の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
【0166】
運転者が修正行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1160を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
【0167】
AEBシステムは、別の車両又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1160を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突切迫ブレーキなどの技法を含み得る。
【0168】
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、車両1100が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
【0169】
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、車両1100が車線をはみ出し始めた場合に車両1100を修正するためにステアリング入力又はブレーキを提供する。
【0170】
BSWシステムは、自動車の死角において車両の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。システムは、運転者が方向指示器を使用するときに、付加的警告を提供することができる。BSWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、後ろ側を向いたカメラ及び/又はRADARセンサ1160を使用することができる。
【0171】
RCTWシステムは、車両1100がバックしているときにリアカメラの範囲外で物体が検出されたときに視覚的、可聴式、及び/又は触覚的通知を提供することができる。いくつかのRCTWシステムは、衝突を回避するために車両ブレーキが適用されることを確実にするために、AEBを含む。RCTWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1個又は複数の後ろを向いたRADARセンサ1160を使用することができる。
【0172】
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のADASシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両1100では、結果が矛盾する場合には、車両1100自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ1136又は第2のコントローラ1136)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ADASシステム1138は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム1138からの出力は、監督MCUに提供され得る。1次的コンピュータ及び2次的コンピュータからの出力が矛盾する場合、監督MCUは、安全な動作を確実にするためにその矛盾をどのように調整するかを決定する必要がある。
【0173】
いくつかの実例では、1次的コンピュータは、選択された結果における1次的コンピュータの信頼性を指示する、信頼性スコアを監督MCUに提供するように構成され得る。信頼性スコアが閾値を超えた場合、監督MCUは、2次的コンピュータが矛盾する又は不整合の結果を与えるかどうかにかかわらず、1次的コンピュータの指示に従い得る。信頼性スコアが閾値を満たさない場合、及び1次的及び2次的コンピュータが異なる結果を示す(たとえば、矛盾する)場合、監督MCUは、コンピュータの間で調停して適切な結果を決定することができる。
【0174】
監督MCUは、2次的コンピュータが誤ったアラームを提供する状態を、1次的コンピュータ及び2次的コンピュータからの出力に少なくとも部分的に基づいて、判定するようにトレーニング及び構成されたニューラル・ネットワークを実行するように構成され得る。したがって、監督MCU内のニューラル・ネットワークは、2次的コンピュータの出力が信頼され得るとき、及びそれが信頼され得ないときを学習することができる。たとえば、2次的コンピュータがRADARベースのFCWシステムであるとき、監督MCU内のニューラル・ネットワークは、アラームをトリガする下水溝の鉄格子又はマンホールの蓋など、実際には危険ではない金属製の物をいつFCWが識別しているかを学習することができる。同様に、2次的コンピュータがカメラベースのLDWシステムであるとき、監督MCU内のニューラル・ネットワークは、自転車に乗った人又は歩行者が存在し、車線逸脱が、実際には、最も安全な操作であるときに、LDWを無視することを学習することができる。監督MCU上で実行中のニューラル・ネットワークを含む実施例では、監督MCUは、関連メモリを有するニューラル・ネットワークを実行するのに適したDLA又はGPUのうちの少なくとも1個を含み得る。好ましい実施例において、監督MCUは、SoC1104の構成要素を備え得る、及び/又はSoC1104の構成要素として含まれ得る。
【0175】
他の実例において、ADASシステム1138は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータ上のソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
【0176】
いくつかの実例では、ADASシステム1138の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム1138が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
【0177】
車両1100は、インフォテインメントSoC1130(たとえば、車両内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の個別の構成要素を含み得る。インフォテインメントSoC1130は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、WiFiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの車両関連情報)を車両1100に提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC1130は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース(登録商標)接続、カーピュータ、車内エンターテインメント、WiFi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ1134、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/又はシステムを制御する及び/又はこれと相互に作用するための)、及び/又は他の構成要素でもよい。インフォテインメントSoC1130は、ADASシステム1138からの情報、計画された車両操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、車両情報、道路情報など)、及び/又は他の情報など、車両のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
【0178】
インフォテインメントSoC1130は、GPU機能性を含み得る。インフォテインメントSoC1130は、バス1102(たとえば、CANバス、イーサネット(登録商標)など)を介して、車両1100の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ1136(たとえば、車両1100の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC1130は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC1130は、本明細書に記載のように、車両1100をショーファーの安全停止モードにすることができる。
【0179】
車両1100は、計器群1132(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群1132は、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。計器群1132は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントSoC1130及び計器群1132の間で表示及び/又は共有され得る。言い換えれば、計器群1132は、インフォテインメントSoC1130の一部として含まれてもよく、逆もまた同様である。
【0180】
図11Dは、本開示のいくつかの実施例による、図11Aのクラウドベースのサーバと例示的自律型車両1100との間の通信のシステム図である。システム1176は、サーバ1178、ネットワーク1190、及び、車両1100を含む車両を含み得る。サーバ1178は、複数のGPU1184(A)~1284(H)(本明細書でGPU1184と総称される)、PCIeスイッチ1182(A)~1182(H)(本明細書でPCIeスイッチ1182と総称される)、及び/又はCPU1180(A)~1180(B)(本明細書でCPU1180と総称される)を含み得る。GPU1184、CPU1180、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLinkインターフェース1188及び/又はPCIe接続1186などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU1184は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU1184及びPCIeスイッチ1182は、PCIe相互接続を介して接続される。8個のGPU1184、2個のCPU1180、及び2個のPCIeスイッチが図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ1178は、任意の数のGPU1184、CPU1180、及び/又はPCIeスイッチを含み得る。たとえば、サーバ1178は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU1184を含み得る。
【0181】
サーバ1178は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク1190を介して、車両から、受信することができる。サーバ1178は、ニューラル・ネットワーク1192、更新されたニューラル・ネットワーク1192、及び/又は、交通及び道路状態に関する情報を含むマップ情報1194をネットワーク1190を介して車両に送信することができる。マップ情報1194の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ1122の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク1192、更新されたニューラル・ネットワーク1192、及び/又はマップ情報1194は、環境において任意の数の車両から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ1178及び/又は他のサーバを使用する)データセンタにおいて実行されたトレーニングに少なくとも部分的に基づいて、生じた可能性がある。
【0182】
サーバ1178は、トレーニング・データに少なくとも部分的に基づいてマシン学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、車両によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、車両によって使用され得(たとえば、ネットワーク1190を介して車両に送信される)、及び/又は、マシン学習モデルは、車両を遠隔監視するために、サーバ1178によって使用され得る。
【0183】
いくつかの実例では、サーバ1178は、車両からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ1178は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU1184によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ1178は、CPU電源式データセンタのみを使用する深層学習インフラストラクチャを含み得る。
【0184】
サーバ1178の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して車両1100内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、車両1100がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、車両1100からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他のマシン学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、車両1100によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、車両1100内のAIは正常に機能していないという結論を下した場合、サーバ1178は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように車両1100のフェイルセーフ・コンピュータに命じる車両1100への信号を送信することができる。
【0185】
推論のために、サーバ1178は、GPU1184及び1個又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT3)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
【0186】
例示的計算デバイス
図12は、物体検出器106及びネットワーク502の1個若しくは複数の部分などの、本開示のいくつかの実施例の実装において使用するのに適した例示的計算デバイス1200のブロック図である。計算デバイス1200は、以下のデバイスを間接的に又は直接的につなぐバス1202を含み得る:メモリ1204、1個又は複数の中央処理装置(CPU)1206、1個又は複数のグラフィック処理ユニット(GPU)1208、通信インターフェース1210、入力/出力(I/O)ポート1212、入力/出力構成要素1214、電力供給装置1216、及び1個又は複数の提示構成要素1218(たとえば、ディスプレイ)。
【0187】
図12の様々なブロックは、線でバス1202を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素1218は、I/O構成要素1214と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU1206及び/又はGPU1208はメモリを含み得る(たとえば、メモリ1204は、GPU1208、CPU1206、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図12の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図12の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
【0188】
バス1202は、1個又は複数のバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。バス1202は、1個又は複数のバス・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VESA(video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス、を含み得る。
【0189】
メモリ1204は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス1200によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
【0190】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ1204は、(たとえば、オペレーティング・システムなど、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用し得る及び計算デバイス1200によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
【0191】
通信媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1個又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、通信媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【0192】
CPU1206は、計算デバイス1200の1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセス(たとえば、図2、5A、及び7~9にあるプロセス)のうちの1個又は複数を実行するためにコンピュータ可読命令を実行するように構成され得る。CPU1206は、多数のソフトウェア・スレッドを同時に処理する能力を有する1個又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU1206は、任意のタイプのプロセッサを含み得、実装された計算デバイス1200のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス1200のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたARMプロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス1200は、計算コプロセッサなど、1個又は複数のマイクロプロセッサ又は補助コプロセッサ内の1個又は複数のCPU1206を含み得る。
【0193】
GPU1208は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングするために、計算デバイス1200によって使用され得る。GPU1208は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU1208は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU1206からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU1208は、画素データを記憶するためのグラフィックス・メモリ、たとえば表示メモリ、を含み得る。表示メモリは、メモリ1204の一部として含まれ得る。GPU1208は、並行して動作する(たとえば、リンクを介して)2個以上のGPUを含み得る。ともに結合されるとき、各GPU1208は、出力画像の異なる部分の又は異なる出力画像の画素データ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、独自のメモリを含むことができ、又は他のGPUとメモリを共有することができる。
【0194】
計算デバイス1200がGPU1208を含まない実例において、CPU1206が、グラフィックスをレンダリングするために使用され得る。
【0195】
通信インターフェース1210は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス1200が他の計算デバイスと通信することを可能にする、1個又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース1210は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)を介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
【0196】
I/Oポート1212は、そのうちのいくつかは計算デバイス1200に内蔵(たとえば、統合)され得る、I/O構成要素1214、提示構成要素1218、及び/又は他の構成要素を含む、他のデバイスに計算デバイス1200が論理的に連結されることを可能にすることができる。例示的なI/O構成要素1214は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素1214は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス1200のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス1200は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス1200は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス1200によって使用され得る。
【0197】
電力供給装置1216は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置1216は、計算デバイス1200の構成要素が動作することを可能にするために計算デバイス1200に電力を提供することができる。
【0198】
提示構成要素1218は、ディスプレイ(たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はその組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素1218は、他の構成要素(たとえば、GPU1208、CPU1206など)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。1個の態様において、提示構成要素は、駐車スペース、駐車スペースへの入口、又はその任意の組合せを線で描写する画像(たとえば、525)を表示し得る。
【0199】
本開示は、コンピュータ又は、携帯情報端末若しくは他のハンドヘルド・デバイスなどの、他のマシンによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又はマシン使用可能命令との一般的関連において説明されることがある。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造体などを含むプログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、家電製品、汎用コンピュータ、より特殊な計算デバイスなどを含む、様々な構成で実施され得る。本開示はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型コンピューティング環境において実施され得る。
【0200】
本明細書では、2個以上の要素に関する「及び/又は」の記述は、1個の要素のみ、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素A、要素B、及び/又は要素C」は、要素Aのみ、要素Bのみ、要素Cのみ、要素A及び要素B、要素A及び要素C、要素B及び要素C、或いは、要素A、B、及びCを含み得る。加えて、「要素A又は要素Bのうちの少なくとも1個」は、要素Aの少なくとも1個、要素Bの少なくとも1個、或いは、要素Aの少なくとも1個及び要素Bの少なくとも1個を含み得る。さらに、「要素A及び要素Bのうちの少なくとも1個」は、要素Aのうちの少なくとも1個、要素Bのうちの少なくとも1個、或いは、要素Aのうちの少なくとも1個及び要素Bのうちの少なくとも1個を含み得る。
【0201】
本開示の主題は、法定の要件を満たすために特異性を有して記述されている。しかしながら、その記述自体が本開示の範囲を制限することは意図されていない。そうではなくて、本発明者は、請求されている主題が、他の現在の又は未来の技術と併せて、異なるステップ又は本文書に記載されたものと類似のステップの組合せを含むように、他の形で実施され得ることを意図している。さらに、「ステップ」及び/又は「ブロック」という用語は、使用される方法の異なる要素を含意するように本明細書で使用され得るが、これらの用語は、個別のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて本明細書で開示される様々なステップの間に何らかの特定の順番を暗示するものとして解釈されるべきではない。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11A
図11B
図11C
図11D
図12