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

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

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

特開2023-51713自律マシン・アプリケーションにおける深層学習を使用する視認距離推定
<>
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図1
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図2A
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図2B
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図2C
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図3
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図4
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図5
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図6
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図7A
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図7B
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図7C
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図7D
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図8
  • 特開-自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023051713
(43)【公開日】2023-04-11
(54)【発明の名称】自律マシン・アプリケーションにおける深層学習を使用する視認距離推定
(51)【国際特許分類】
   G06T 7/60 20170101AFI20230404BHJP
   G06T 7/00 20170101ALI20230404BHJP
   G01C 3/06 20060101ALI20230404BHJP
   G08G 1/16 20060101ALI20230404BHJP
   H04N 7/18 20060101ALI20230404BHJP
【FI】
G06T7/60 180B
G06T7/00 350C
G06T7/00 650B
G01C3/06 130
G08G1/16 C
H04N7/18 J
H04N7/18 K
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022078880
(22)【出願日】2022-05-12
(31)【優先権主張番号】17/449,306
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.TENSORFLOW
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】アビーシェク バジペイイー
(72)【発明者】
【氏名】アルジュン グプタ
(72)【発明者】
【氏名】ジョージ タン
(72)【発明者】
【氏名】ハエ - ジョン セオ
(57)【要約】
【課題】1つ又は複数の機械学習モデル(MLM)-たとえば、ディープ・ニューラル・ネットワーク(DNN)-を使用する、システム及び方法を提供する。
【解決手段】様々な実例では、自律又は半自律マシンの1つ又は複数のセンサを使用して生成されたセンサ・データに対応する推定視認距離を示す出力を計算するために1つ又は複数の機械学習モデル(MLM)-たとえば、ディープ・ニューラル・ネットワーク(DNN)-を使用する、システム及び方法が、開示される。視認距離が、1つ又は複数のMLMを使用して計算された後は、マシンの1つ又は複数の下流タスクのセンサ・データの有用性の判定が、評価され得る。そのようなものとして、推定視認距離が低い場合、対応するセンサ・データは、視認距離が高いときよりも少ないタスクについて依拠され得る。
【選択図】図1
【特許請求の範囲】
【請求項1】
機械学習モデルを使用して、エゴマシンの1つ又は複数のセンサを使用して生成されたセンサ・データに少なくとも部分的に基づいて、前記センサ・データに対応する視認距離を示すデータを計算し、
前記視認距離に少なくとも部分的に基づいて、前記エゴマシンの1つ又は複数の動作のための前記センサ・データの有用性を判定し、
前記センサ・データの前記有用性に少なくとも部分的に基づいて、前記1つ又は複数の動作のうちの少なくとも1つの動作を実行する
1つ又は複数の回路を含む、プロセッサ。
【請求項2】
前記センサ・データの前記有用性に少なくとも部分的に基づいて前記1つ又は複数の動作のうちの少なくとも1つの自律又は半自律動作を実行することを控えることを決定することをさらに含む、請求項1に記載のプロセッサ。
【請求項3】
前記データの前記計算が、前記視認距離の値で回帰することを含む、請求項1に記載のプロセッサ。
【請求項4】
前記視認距離の前記値に少なくとも部分的に基づいて、前記センサ・データに対応する複数の視認距離ビンから視認距離ビンを判定すること
をさらに含み、前記視認距離ビンが、前記エゴマシンの前記1つ又は複数の動作についての前記センサ・データの前記有用性を示す、請求項3に記載のプロセッサ。
【請求項5】
前記データが、複数の視認距離ビンのうちの視認距離ビンを示し、さらに、前記視認距離ビンが、前記エゴマシンの前記1つ又は複数の動作についての前記センサ・データの前記有用性を示す、請求項1に記載のプロセッサ。
【請求項6】
前記1つ又は複数の動作が、物体追跡、物体検出、進路計画策定、障害物回避、又は先進運転者支援システム(ADAS)動作のうちの少なくとも1つを含む、請求項1に記載のプロセッサ。
【請求項7】
前記機械学習モデルが、ディープ・ニューラル・ネットワーク(DNN)を含み、前記DNNが、現実世界データ、拡張現実世界データ、及び合成データの組合せを使用してトレーニングされる、請求項1に記載のプロセッサ。
【請求項8】
前記プロセッサが、
自律若しくは半自律マシンのための制御システム、
自律若しくは半自律マシンのための認知システム、
シミュレーション動作を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
1つ若しくは複数の仮想マシン(VM)を組み込むシステム、
データ・センタにおいて少なくとも部分的に実装されるシステム、又は、
クラウド計算資源を使用して少なくとも部分的に実装されるシステム
のうちの少なくとも1つに含まれる、請求項1に記載のプロセッサ。
【請求項9】
1つ又は複数のセンサと、
機械学習モデルを使用して計算された関連視認距離に少なくとも部分的に基づいて、前記1つ又は複数のセンサを使用して生成されたセンサ・データのインスタンスの有用性を判定するための1つ又は複数の処理ユニットと
を備えるシステムであって、前記機械学習モデルが、
トレーニング・センサ・データのインスタンスに対応する視認性を調整するための1つ又は複数のパラメータに対応する値を受信すること、
前記値に少なくとも部分的に基づいて前記トレーニング・センサ・データのインスタンスを生成すること、
前記値に少なくとも部分的に基づいて前記トレーニング・センサ・データのインスタンスに対応する視認距離を判定すること、及び、
グラウンド・トゥルース・データとして前記トレーニング・センサ・データのインスタンス及び前記視認距離を使用して機械学習モデルをトレーニングすること
によって少なくとも部分的にトレーニングされる、システム。
【請求項10】
前記パラメータが、気象条件、照明条件、又はオクルージョン条件に対応する、請求項9に記載のシステム。
【請求項11】
前記視認距離を前記判定することが、前記値を使用して前記視認距離を計算することを含む、請求項9に記載のシステム。
【請求項12】
前記値が、前記1つ又は複数のパラメータのそれぞれの値と視認距離との対応関係を決定するトレーニングされたモデルに適用される、請求項11に記載のシステム。
【請求項13】
前記トレーニングされたモデルが、前記1つ又は複数のパラメータの関連値を使用して生成されたトレーニング・センサ・データのインスタンスに対応する視認距離を示す注釈又はラベルを使用してトレーニングされる、請求項12に記載のシステム。
【請求項14】
前記トレーニング・センサ・データのインスタンスが、現実世界のセンサ・データのインスタンスに対応し、前記トレーニング・センサ・データのインスタンスを前記生成することが、前記トレーニング・センサ・データのインスタンスを生成するために前記1つ又は複数のパラメータに対応する前記値を使用して前記現実世界のセンサ・データのインスタンスを拡張することを含む、請求項9に記載のシステム。
【請求項15】
前記トレーニング・センサ・データのインスタンスが、センサ・データの合成インスタンスに対応し、前記センサ・データの合成インスタンスを前記生成することが、
前記1つ又は複数のパラメータに対応する前記値をシミュレーション・エンジンに適用してシミュレーションを生成すること、及び
前記シミュレーション内で1つ又は複数の仮想センサを使用して前記センサ・データの合成インスタンスをキャプチャすること
を含む、請求項9に記載のシステム。
【請求項16】
前記機械学習モデルが、視認距離を示すデータを計算するようにトレーニングされ、前記トレーニングすることが、前記視認距離の過小評価よりも前記視認距離の過大評価により多くペナルティを科す損失関数を使用することを含む、請求項9に記載のシステム。
【請求項17】
前記システムが、
自律若しくは半自律マシンのための制御システム、
自律若しくは半自律マシンのための認知システム、
シミュレーション動作を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
1つ若しくは複数の仮想マシン(VM)を組み込むシステム、
データ・センタにおいて少なくとも部分的に実装されるシステム、又は、
クラウド計算資源を使用して少なくとも部分的に実装されるシステム
のうちの少なくとも1つに含まれる、請求項9に記載のシステム。
【請求項18】
機械学習モデルを使用して計算されたセンサ・データのインスタンスに関連する視認距離に少なくとも部分的に基づいて、前記センサ・データのインスタンスに対応するマシンの適切な動作のセットを決定するための処理回路
を含む、プロセッサ。
【請求項19】
少なくとも1つの動作が、前記視認距離が閾値視認距離未満であることに少なくとも部分的に基づいて、前記適切な動作のセットに含まれない、請求項18に記載のプロセッサ。
【請求項20】
前記適切な動作のセットが、前記適切な動作のセットに対応する視認距離ビン内にある前記視認距離に少なくとも部分的に基づいて決定される、請求項18に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、参照によってその全部が本明細書に組み込まれる、2019年9月13日に出願された米国非仮特許出願第16/570,187号に関する。
【背景技術】
【0002】
自律運転システム及び半自律運転システム(たとえば、先進運転者支援システム(ADAS:advanced driver assistance system))は、センサ(たとえば、カメラ、LiDARセンサ、RADARセンサなど)を活用して様々なタスク-たとえば、盲点モニタリング、自動緊急ブレーキ、車線維持、物体検出、障害物回避、及び位置特定-を実行することができる。たとえば、自律及びADASシステムが独立して効率的に動作するために、リアルタイム又はほぼリアルタイムでの車両の周辺環境の把握が、なされ得る。車両の周辺環境を正確に効率的に把握するために、センサは、使用可能な、隠されていないセンサ・データ(たとえば、画像、深度図、点群などを表す)を生成しなければならない。しかしながら、周辺環境を認知するセンサの能力は、様々なソース-たとえば、気象(たとえば、雨、霧、雪、雹、煙など)、交通条件、センサ妨害(たとえば、破片、湿気などからの)、又はぼやけによって損なわれ得る。結果として、生じるセンサ・データは、車両、障害物、及び/又は環境内の他の物体を明瞭に描写しないことがある。
【0003】
損なわれた視認距離に対処するための従来のシステムは、個々の視覚的証拠を検出し、その後にこれらの特徴を継ぎ合わせて、損なわれた視認性が存在すると判定するための特徴レベルの手法を使用してきた。これらの従来の方法は、画像の領域において鋭いエッジ特徴(たとえば、勾配、色、強度の急激な変化)がないことを分析すること、色ベースの画素分析又は他の低レベルの特徴分析を使用して潜在的な視認性の問題を検出すること、及び/又はブラインド対非ブラインド出力を有するバイナリ・サポート・ベクトル・マシン分類によるなどのコンピュータ・ビジョン技法に主として依拠する。しかしながら、そのような特徴ベースのコンピュータ・ビジョン技法は、たとえば、各特徴が視認性に関連するか否かなど、各特徴の別個の分析並びに特定のセンサ視認性低下条件の異なる特徴をどのように結合するかの分析を必要とし、それによって現実世界の状況においてセンサを使用して観測されるデータを損ない得る非常に様々な多様な条件及び出来事に固有の複雑性により、そのような手法のスケーラビリティを制限する。たとえば、これらの従来の手法を実行する計算費用により、これらの従来の手法は、リアルタイム又はほぼリアルタイム配備に無効にされる。
【0004】
さらに、従来のシステムは、センサ視認性低下の原因-たとえば、雨、雪、霧、眩しさなど-を分類することに依拠し得るが、センサ・データの有用性の正確な指示をもたらさないことがある。たとえば、画像において雨を識別することは、対応する画像-又はその部分-が様々な自律又は半自律タスクに使用可能かどうかを判定するためにシステムによって実施可能でないことがある。そのような実例において、画像は、車両の100メートル以内の環境を明瞭に描写し得るが、雨が降っている場合、画像は、従来のシステムによって使用不可能と見なされ得る。そのようなものとして、可視範囲内の1つ又は複数のタスクについて画像に依拠するのではなくて、画像は、誤って破棄され得、1つ又は複数のタスクは、無効にされ得る。このようにして、各タイプの損なわれたセンサ視認性を等しく扱うことによって、あまりひどくない又は有害でないタイプのセンサは、この判定が完全に正確というわけではない可能性がある場合でも、センサ・データのインスタンスが使用不可能であると見なされることを引き起こし得る(たとえば、小雨が降っている環境の画像は、1つ又は複数の動作に使用可能であり得、一方、濃霧である環境の画像は、使用不可能であり得る)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願第16/101,232号
【発明の概要】
【0006】
本開示の実施形態は、自律マシン・アプリケーションにおける視認距離推定-たとえば、物体又は要素が判別され得る、センサから最も遠い距離-のディープ・ニューラル・ネットワーク処理に関する。自律又は半自律マシンの1つ又は複数のセンサに対応する1つ又は複数のディープ・ニューラル・ネットワーク(DNN)などの機械学習モデルを使用して推定視認距離を示す出力(たとえば、距離の範囲を含む計算された距離又は距離ビンの形での)を計算する、システム及び方法が、開示される。たとえば、推定視認距離を予測することによって、1つ又は複数の下流タスク-たとえば、物体検出、物体追跡、障害物回避、進路計画策定、制御決定、及び/又は同類のものなど-の関連センサ・データへのマシンの依拠が、調整され得る。そのようなものとして、推定視認距離が低い-たとえば、20メートル未満である-場合、対応するセンサ・データは、レベル0(自動化なし)又はレベル1(運転者支援)タスク(たとえば、自動車技術者協会(SAE:Society of Automotive Engineers)自動化レベルによる)についてのみ依拠され得る、或いはマシンの20メートル以内の予測についてのみ依拠され得る(たとえば、そして、20メートルを超える予測は、無視され得る、又はより低い関連信頼性を有し得る)。同様に、別の実例として、推定視認距離が高い-たとえば、1000メートル以上-場合、対応するセンサ・データは、レベル3(条件付きの運転自動化)及びレベル4(高い運転自動化)タスクの全性能について依拠され得る、又はマシンの1000メートル以内の位置に対応する予測について依拠され得る。
【0007】
このようにして、前述のものなどの従来のシステムとは対照的に、本開示のシステム及び方法は、センサ・データの有用性を判定するためのみならず、視認距離-又は視認距離の関連範囲を有する視認距離ビン-を使用して定義されるものとしてのセンサ・データの有用性のレベル又は程度を判定するために、使用され得る。視認距離を表す出力を正確に計算するようにたとえば、DNNなどの機械学習モデルをトレーニングするために、DNNは、変化する気象、照明、及び/又は他の条件を含むセンサ・データ表現(たとえば、画像、LiDAR点群など)を表す現実世界データ、拡張現実世界データ、及び/又は合成データを使用して、トレーニングされ得る。各センサ・データ・インスタンスは、視認距離及び/又は視認距離ビンを表す対応するグラウンド・トゥルース・データ(ground truth data)を含み得る。いくつかの実施形態において、所与のパラメータ-たとえば、霧の濃さ、雨の水分量、雨の強度など-について、知られている又は推定された視認距離が存在するように、グラウンド・トゥルース・データは、1つ又は複数のトレーニングされたモデルを使用して自動的に生成され得る。そのようなものとして、堅牢なトレーニング・セットが、1つ又は複数のモデルを使用して生成され得(たとえば、異なるモデルが、現実世界、拡張、及び/又は合成などの異なるセンサ・データ・タイプに対応し得)、機械学習モデルは、トレーニング・データ及び関連グラウンド・トゥルース・データの組合せを使用してトレーニングされ得る。
【0008】
自律マシン・アプリケーションにおける視認距離推定のディープ・ニューラル・ネットワーク処理のための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
【図面の簡単な説明】
【0009】
図1】本開示のいくつかの実施形態による、推定視認距離を計算するように機械学習モデルをトレーニングするためのプロセスを示すデータフロー図である。
図2A】本開示のいくつかの実施形態による、異なる視認距離を有するセンサ・データの例示的視覚化である。
図2B】本開示のいくつかの実施形態による、異なる視認距離を有するセンサ・データの例示的視覚化である。
図2C】本開示のいくつかの実施形態による、異なる視認距離を有するセンサ・データの例示的視覚化である。
図3】本開示のいくつかの実施形態による、推定視認距離を計算するように機械学習モデルをトレーニングするための方法を示すフロー図である。
図4】本開示のいくつかの実施形態による、推定視認距離を計算するように機械学習モデルを配備するためのプロセスを示すデータフロー図である。
図5】本開示のいくつかの実施形態による、様々な物体のセンサ・データ及び対応する視認距離出力の例示的視覚化である。
図6】本開示のいくつかの実施形態による、推定視認距離を計算するように機械学習モデルを配備するための方法を示すフロー図である。
図7A】本開示のいくつかの実施形態による、例示的自律型車両の図示である。
図7B】本開示のいくつかの実施形態による、図7Aの例示的自律型車両のカメラ位置及び視野の実例である。
図7C】本開示のいくつかの実施形態による、図7Aの例示的自律型車両の例示的システム・アーキテクチャのブロック図である。
図7D】本開示のいくつかの実施形態による、クラウドベースのサーバと図7Aの例示的自律型車両との間の通信のシステム図である。
図8】本開示のいくつかの実施形態の実装における使用に適した例示的コンピューティングデバイスのブロック図である。
図9】本開示のいくつかの実施形態の実装における使用に適した例示的データ・センタのブロック図である。
【発明を実施するための形態】
【0010】
自律マシン・アプリケーションにおける視認距離推定のためのディープ・ニューラル・ネットワーク処理に関連して、システム及び方法が、開示される。本開示は、例示的自律型車両700(或いは本明細書で「車両700」又は「エゴ車両700」とも称され、その実例が図7A~7Dに関して説明される)に関して説明されることがあるが、これは限定を意図していない。たとえば、本明細書に記載のシステム及び方法は、非自律型車両、半自律型車両(たとえば、1つ又は複数の先進運転者支援システム(ADAS:advanced driver assistance system)における)、有人及び無人ロボット又はロボットのプラットフォーム、倉庫車両、オフロード車両、1つ若しくは複数のトレーラに連結された車両、飛行船舶、ボート、シャトル、緊急対応車両、オートバイ、電動若しくは原動機付自転車、航空機、建設車両、潜水艦、ドローン、及び/又は、他の車両タイプによって使用されてもよいが、これらに限定されない。加えて、本開示は、自律又は半自律マシン・アプリケーションにおける視認距離推定に関して説明されることがあるが、これは限定を意図しておらず、本明細書に記載のシステム及び方法は、拡張現実、仮想現実、混合現実、ロボット工学、セキュリティ及び監視、自律若しくは半自律マシン・アプリケーション、並びに/又はセンサ・データの条件及び有用性が分析され得る任意の他の技術空間において使用され得る。
【0011】
(視認距離を計算するための機械学習モデルのトレーニング)
図1を参照すると、図1は、本開示のいくつかの実施形態による、視認距離推定のための機械学習モデルをトレーニングするための例示的プロセス100に対応するデータフロー図である。本明細書に記載のこの構成及び他の構成は単なる実例として明記されている、ということを理解されたい。他の構成及び要素(たとえば、マシン、インターフェース、機能、順序、機能のグループ化など)が、図示されたものに加えて又はそれらの代わりに使用され得、いくつかの要素は、完全に省略され得る。さらに、本明細書に記載の要素の多数は、離散された若しくは分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び位置において実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。いくつかの実施形態において、本明細書に記載のシステム、方法、及びプロセスは、図7A~7Dの例示的自律型車両700、図8の例示的計算デバイス800、及び/若しくは図9の例示的データ・センタ900のそれらに類似の構成要素、特徴、並びに/又は機能性を使用して実行され得る。
【0012】
機械学習モデル104は、トレーニング・データ102-たとえば、センサ・データ102A、拡張データ102B、及び/又は合成データ102C-を使用してトレーニングされ得る。たとえば、センサ・データ102Aは、エゴマシン700の1つ又は複数のセンサ、たとえば、ステレオ・カメラ768、RADARセンサ760、超音波センサ762、LiDARセンサ764、ワイド・ビュー・カメラ770、サラウンド・カメラ774、エゴマシン700の他のセンサ、及び/又は他のセンサ・タイプ、を使用して生成される現実世界のセンサ・データに対応し得る。たとえば、センサ・データ102Aは、様々な条件-たとえば、変化する気象、照明、オクルージョン、及び/又は他の条件-において様々なタイプのセンサ・データ102Aを収集する1つ又は複数のデータ収集車両を使用して収集され得る。実施形態において、十分多様なトレーニング・データ・セットを生成することは、センサ・データ102Aを単独で使用して、非実用的に及び/又は非常に高価になり得るので、拡張データ102B及び/又は合成データ102Cが、現実世界のセンサ・データ102Aに加えて又はその代わりに生成され得る。
【0013】
拡張データ102Bは、センサ・データ102Aが最初にキャプチャされた実際の条件以外の様々な条件でキャプチャされるセンサ・データをシミュレーションするために拡張された-たとえば、様々な気象(霧、雪、雨、みぞれなど)、照明(暗闇、日照、センサに向けて輝く太陽など)、オクルージョン、及び/又は他の条件を含むように-現実世界のセンサ・データ102Aに対応し得る。たとえば、センサ・データ102Aが、晴天条件の下でキャプチャされた場合、センサ・データ102Aは、拡張センサ・データ102Bを生成するために雨、霧、雪、及び/又は別の条件を使用して拡張され得る。別の実例として、センサ・データ102Aが、小雨の下でキャプチャされた場合、センサ・データ102Aは、小雨に加えてより強い雨及び/又は霧を含むように拡張され得る。これを行うために、実施形態において、異なるレベルの雨(たとえば、霧雨、大雨など)、霧(たとえば、濃霧、薄い霧など)、雪(たとえば、大雪、小雪、にわか雪など)、及び/又は他の条件(たとえば、センサの異なる照明条件を生み出す異なる太陽位置)が、拡張データ102Bを生成するために適用され得る。そのようなものとして、1つ又は複数の条件を制御するパラメータに対応する値が、拡張データ102Bを生成するためにたとえば、手動で、自動的に、及び/又はランダムに決定され得る。たとえば、霧の濃さのパラメータ、雨の強度パラメータ、及び/又は別の条件の別のパラメータの値が、決定され得、センサ・データ102Aは、拡張データ102Bを生成するために値に基づいて拡張され得る。
【0014】
合成データ102Cは、仮想環境内(たとえば、仮想又はシミュレート環境内の仮想車両の仮想カメラ)の1つ又は複数の仮想マシン(たとえば、車両700の仮想インスタンス)の1つ又は複数の仮想センサ(たとえば、カメラ、LiDARセンサ、RADARセンサなど)を使用して生成されるセンサ・データに対応し得る。たとえば、シミュレーション又はゲーム・エンジンが、仮想マシンのシミュレート環境を生成するために使用され得、仮想センサは、トレーニング・データ102として使用するためにシミュレート環境内から合成データ102Cを生成し得る。様々な条件-たとえば、気象、照明、オクルージョンなど-に対応するシミュレート又は仮想環境を生成するために、様々な条件に対応するパラメータの値が、手動で、自動的に、及び/又はランダムに設定され多様な合成データ102Cを生成し得る。加えて、仮想環境における道路レイアウト(たとえば、車線の数、湾曲、高さの変化など)、交通条件、周辺環境条件、風景、物体の位置及び/若しくはタイプ、並びに/又は、仮想環境内の他のファクタが、合成データ102Cを使用してトレーニング・データ102をさらに多様化するために、選択又はランダム化され得る。
【0015】
拡張データ102B及び合成データ102Cを較正して2つの間の一貫性、ひいてはより正確なトレーニング・データ102を確保するために、拡張及びシミュレーション・パラメータが、較正され得る。これは、同じ視認距離ラベルを有する拡張及びシミュレーションを使用して生成されたデータが視覚的に同じである又は類似する可能性を増やし得る。較正を実行するために、実施形態において、視認拡張データ102Bのインスタンス及び合成データ102Cのインスタンスが、視認距離に対応する同距離にある物体を含むようにキュレートされ得る。各インスタンスについて、1ペアの拡張インスタンス及び1ペアの合成インスタンスが、(例として及び限定せずに)+2メートルの距離において及び(例として及び限定せずに)-2メートルの距離において生成され得る。査定者は、次いで、目標物体が拡張データ102Bの両方のインスタンス及び合成データ102Cの両方のインスタンスにおいて可視であるかどうかを判定し得る。そのような例示的シナリオの下での実施形態によれば、パラメータは、次いで、物体が距離-2メートルにおいて可視である及び距離+2メートルにおいて不可視であるまで、調整され得る。そのようなものとして、同じ視認距離について、雨、雪、霧などのパラメータは、合成又は拡張データの結果的トレーニング・データが視覚的に類似するように、調整され得る。
【0016】
実施形態において、トレーニング・データ102は、トレーニング・データ・セットをさらに多様化するため及びトレーニング・データ・セットの堅牢性を高めるために、最初のデータ102A、102B、及び/若しくは102C、ダウンサンプリングされたデータ、アップサンプリングされたデータ、クロップされた又は関心領域(ROI)のデータ、反転若しくは回転されたデータ、他の方法で拡張されたデータ、並びに/又はそれらの組合せを含み得る。
【0017】
グラウンド・トゥルース・ジェネレータ116を使用して生成される対応するグラウンド・トゥルース・データに加えて、トレーニング・データ102が、出力106(たとえば、視認距離108、距離ビン110、及び/若しくは視認性分類並びに/又は属性112)を計算するように機械学習モデル104をトレーニングするために使用され得る。実例は、機械学習モデル104としての、ディープ・ニューラル・ネットワーク(DNN)、及び具体的には畳み込みニューラル・ネットワーク(CNN::convolutional neural network)を使用することに関して本明細書で説明されているが、これは限定を意図していない。たとえば、そして限定はしないが、機械学習モデル104は、任意のタイプの機械学習モデル、線形回帰、ロジスティック回帰、決定木、サポート・ベクトル・マシン(SVM)、ナイーブ・ベイズ、k最近傍(Knn:k-nearest neighbor)、K平均法クラスタリング、ランダム・フォレスト、次元削減アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク(たとえば、オートエンコーダ、畳み込み、再発、パーセプトロン、長/短期メモリ/LSTM、ホップフィールド、ボルツマン、深層信念、逆畳み込み(デコンボリューション)、敵対的生成、液体状態マシンなど)、コンピュータ・ビジョン・アルゴリズムを使用する機械学習モデル、及び/又は他のタイプの機械学習モデル、を含み得る。
【0018】
一実例として、たとえば、機械学習モデル104がCNNを含む場合、機械学習モデル104は、任意の数の層を含み得る。層のうちの1つ又は複数は、入力層を含み得る。入力層は、トレーニング・データ102(又は、配備中の、センサ・データ402)に関連する値を保持し得る(たとえば、後処理の前又は後)。たとえば、トレーニング・データが画像を表すとき、入力層は、ボリューム(たとえば、幅、高さ、及び色チャネル(たとえば、RGB)、32x32x3など)として画像の未加工画素値を表す値を保持し得る。
【0019】
1つ又は複数の層は、畳み込み層を含み得る。畳み込み層は、入力層においてローカル領域に接続されたニューロンの出力を計算することができ、各ニューロンは、それらの重みと入力ボリュームにおいてそれらが接続された小さい領域とのドット積(内積)を計算する。畳み込み層の結果は、適用されるフィルタの数に基づく次元のうちの1つを有して、別のボリュームでもよい(たとえば、フィルタの幅、高さ、及び数、たとえば、12がフィルタの数だった場合、32x32x12など)。
【0020】
1つ又は複数の層は、逆畳み込み層(又は転置された畳み込み層)を含み得る。たとえば、逆畳み込み層の結果は、逆畳み込み層において受信されたデータの入力次元より高い次元を有する、別のボリュームでもよい。
【0021】
層のうちの1つ又は複数は、ReLU(rectified linear unit)層を含み得る。ReLU層は、たとえば、ゼロで閾値となる要素ごとの活性化関数、たとえば、max(0,x)、を適用し得る。ReLU層の結果的ボリュームは、ReLU層の入力のボリュームと同じでもよい。
【0022】
層のうちの1つ又は複数は、プーリング層を含み得る。プーリング層は、プーリング層の入力より小さいボリュームをもたらし得る(たとえば、32x32x12入力ボリュームから16x16x12)、空間次元(たとえば、高さ及び幅)に沿ったダウンサンプリング動作を実行し得る。
【0023】
層のうちの1つ又は複数は、1つ又は複数の完全に接続された層を含み得る。完全に接続された層内の各ニューロンは、前のボリュームにおいてニューロンのそれぞれに接続され得る。完全に接続された層は、クラス・スコアを計算し得、結果的ボリュームは、1x1xnでもよく、nは、クラスの数と等しい。いくつかの実例では、CNNの層のうちの1つ又は複数の層の出力が、CNNの完全に接続された層への入力として提供され得るように、CNNは、完全に接続された層を含み得る。いくつかの実例では、1つ又は複数の畳み込みストリームが、機械学習モデル104によって実装され得、畳み込みストリームのうちのいくつか又はすべては、それぞれの完全に接続された層を含み得る。
【0024】
いくつかの非限定的実施形態において、機械学習モデル104は、グローバル・コンテキスト特徴抽出を円滑に進めるためのマルチスケール拡張型畳み込み及びアップサンプリング層が後に続く、画像特徴抽出を円滑に進めるための一連の畳み込み及びマックス・プーリング層を含み得る。
【0025】
入力層、畳み込み層、プーリング層、ReLU層、及び完全に接続された層は、機械学習モデル104に関して本明細書で論じられているが、これは限定を意図していない。たとえば、正規化層、SoftMax層、及び/又は他の層タイプなどの追加の又は代わりとなる層が、機械学習モデル104において使用され得る。
【0026】
加えて、畳み込み層及び完全に接続された層など、いくつかの層は、パラメータ(たとえば、重み及び/又はバイアス)を含んでもよく、一方でReLU層及びプーリング層などの他の層は含まなくてもよい。いくつかの実例において、パラメータは、トレーニング中に機械学習モデル104によって学習され得る。さらに、畳み込み層、完全に接続された層、及びプーリング層など、いくつかの層は、追加のハイパーパラメータ(たとえば、学習レート、ストライド、エポックなど)を含んでもよく、一方、ReLU層などの他の層は含まなくてもよい。機械学習モデル104が視認距離で回帰する実施形態において、CNNの最後の層のアクティブ化機能は、ReLUアクティブ化機能を含み得る。機械学習モデル104がセンサ・データのインスタンスを距離ビン110へと分類する実施形態において、CNNの最後の層のアクティブ化機能は、SoftMaxアクティブ化機能を含み得る。パラメータ及びハイパーパラメータは、限定されることなく、実施形態に応じて異なり得る。
【0027】
機械学習モデル104がCNNを含む実施形態において、CNNの異なる順序及び数の層が、実施形態に応じて使用され得る。言い換えれば、CNNの層の順序及び数は、任意の1つのアーキテクチャに限定されない。
【0028】
たとえば、1つ又は複数の実施形態において、CNNは、エンコーダ・デコーダ・アーキテクチャを含み得、及び/又は1つ又は複数の出力ヘッドを含み得る。たとえば、CNNは、CNNの特徴検出トランクに対応する1つ又は複数の層を含み得、特徴検出トランクの出力(たとえば、特徴マップ)が、1つ又は複数の出力ヘッドを使用して、処理され得る。たとえば、第1の出力ヘッド(1つ又は複数の第1の層を含む)が、視認距離108を計算するために使用され得、第2の出力ヘッド(1つ又は複数の第2の層を含む)が、距離ビン110を計算するために使用され得、及び/又は第3の出力ヘッド(1つ又は複数の第3の層を含む)が、視認性分類/属性112を計算するために使用され得る。そのようなものとして、2つ以上のヘッドが使用される場合、2つ以上のヘッドは、並行してトランクからのデータを処理することができ、且つ各ヘッドは、出力ヘッドの対応する出力を正確に予測するようにトレーニングされ得る。しかしながら、他の実施形態では、単一のトランクが、別個のヘッドなしに、使用され得る。
【0029】
グラウンド・トゥルース・ジェネレータ116は、現実世界のセンサ・データ102Aに対応するグラウンド・トゥルース・データとして現実世界のラベル又は注釈118を生成するために使用され得る。たとえば、現実世界環境において生成されたセンサ・データ102A-拡張なし-について、現実世界のラベル又は注釈は、センサ・データ102Aの各インスタンスの視認距離を示す視認距離ラベルに対応し得る。現実世界のラベル又は注釈118が、グラウンド・トゥルース・データを生成するために使用される場合、いくつかの実例において、注釈又はラベルは、描画プログラム(たとえば、注釈プログラム)、コンピュータ支援設計(CAD)プログラム、ラベリング・プログラム、注釈を生成するのに適した別のタイプのプログラム内で生成され得、及び/又は手描きされ得る。任意の実例において、グラウンド・トゥルース・データは、合成的に作成され得(たとえば、コンピュータ・モデル又はレンダリングから生成される)、現実に作成され得(たとえば、現実世界データから設計及び作成される)、マシンにより自動化され得(たとえば、特徴分析及び学習を使用してデータから特徴を抽出し、次いでラベルを生成する)、人により注釈を付けられ得(たとえば、ラベラ、又は注釈エキスパートが、ラベルの位置を定義する)、並びに/又はそれらの組合せ(たとえば、人が目に見える物体を識別し、コンピュータが物体までの距離及び対応する視認距離を判定する)ことができる。
【0030】
現実世界のラベル118は、実際の視認距離-たとえば、メートル、フィートなどの-に対応し得、及び/又は距離ビンに対応し得る(たとえば、各距離ビンは、ある範囲の視認距離値を含み得る)。限定はしないが、たとえば、距離ビンが使用される場合、距離ビンは、非常に低い視認性(たとえば、<10メートル)の第1のビン、低い視認性(たとえば、10メートルから100メートルの間)の第2のビン、中位視認性(たとえば、100メートルから1000メートルの間)の第3のビン、高い視認性(たとえば、1000メートルから4000メートルの間)の第4のビン、及び明瞭な視認性(たとえば、4000メートル超)の第5のビンを含み得る。5つのビンが、対応する範囲とともに、ここで列挙されているが、これは限定を意図しておらず、任意の範囲の値を有するいくつかの距離ビンが、本開示の範囲を逸脱せずに使用され得る。そのようなものとして、センサ・データ102Aの所与のインスタンスについて、センサ・データ102Aは、視認距離及び/又は距離ビンでラベル付けされ得、これらの値は、トレーニング中にたとえば、損失関数114を使用して機械学習モデル104の出力106と比較するために使用され得る。いくつかのインスタンスでは、機械学習モデル104はまた、たとえば、存在すれば、視認性の減少の原因に対応する視認性分類及び/又は属性112を計算するようにトレーニングされ得る。他のインスタンスでは、視認距離分類に加えて又はその代わりに、機械学習モデル104は、損なわれたセンサ・データ(たとえば、カメラ・レンズ上の雨粒、センサをふさぐ雪など)に対応するセンサ視覚消失分類を計算するようにトレーニングされ得る。そのようなインスタンスにおいて、グラウンド・トゥルース・データ及び出力は、参照することによりその全部が本明細書に組み込まれる、2019年9月13日に出願された、米国非仮特許出願第16/570,187号に類似し得る。
【0031】
センサ・データ102Aの所与のインスタンスの視認距離及び/又は距離ビンを判定するために、静的及び/又は動的物体位置が、使用され得る。たとえば、いくつかのインスタンスでは、1つ又は複数の深度又は距離の値が、1つ又は複数の機械学習、コンピュータ・ビジョン、深度センサ、並びに/又は他の出力を使用して環境内の物体について判定され得、これらの深度又は距離値は、センサ・データ102Aのインスタンスの視認距離情報を決定するために使用され得る。図2Aに関して、視覚化200A(大雨を含む)はセンサ・データ102Aのインスタンス(たとえば、データ収集車両のカメラからの画像)に対応すると想定して、深度値が、深度センサ(たとえば、LiDAR、RADARなど)からの出力、機械学習モデル又はニューラル・ネットワークからの出力、コンピュータ・ビジョン・アルゴリズムからの出力、及び/又は別の出力タイプに基づいて車両202Aについて知られ得る。そのような実例において、データ収集車両が、車両202Aを含むセンサ・データ102Aのインスタンスを生成していたとき、データ収集車両は、環境内の物体までの深度又は距離情報を決定するための1つ又は複数の基礎的プロセスを実行し得る。そのようなものとして、車両202Aが、データ収集車両から最も遠い可視物体であった、そして、車両202Aまでの深度が知られている場合、センサ・データ102Aのインスタンスの視認距離は、車両202Aまでの深度又は距離に対応し得る(たとえば、実施形態において、環境が車両202Aの向こうで可視である場合には追加距離をプラスする、或いは、車両202Aがわずかに見える、又はぼやけている場合にはいくらかの距離を差し引く)。同様に、視覚化200B(小雨条件を含む)について、車両202Bは、可視であり得、したがって、視認距離及び/又は距離ビンは、車両202Bに対応する深度又は距離値を使用して、決定され得る。
【0032】
いくつかの実施形態において、センサ、機械学習モデル、コンピュータ・ビジョン・アルゴリズムなどからの深度出力を使用することに加えて又はその代わりに、高解像度(HD)マップが、環境内の静的物体までの距離又は深度を判定するために使用され得る。たとえば、HDマップに関してデータ収集車両を位置特定するための位置特定技法を使用して、データ収集車両の位置特定された位置からの既知の距離を有する環境内の識別可能な又は可視の物体が、センサ・データ102Aの所与のインスタンスの視認距離を判定するために使用され得る。そのようなものとして、たとえば、交通標識、木、街灯、交差点、建物、及び/又は静的特徴が、センサ・データ102Aのインスタンスにおいて可視であり、物体又は特徴までの距離が、位置特定後にHDマップから既知である場合、距離又は深度は、視認距離として及び/又は距離ビンを判定するために、使用され得る。
【0033】
いくつかの実施形態において、視認距離及び/又は距離ビンのグラウンド・トゥルース・ラベルのこの判定は、手動で実行され得る。たとえば、注釈する人が、センサ・データ102Aのインスタンスにおいて可視である最も遠い物体を判定し、その物体の関連距離又は深度値を判定し、それに従ってグラウンド・トゥルースを生成し得る。他の実施形態では、最も大きい(たとえば、データ収集車両から最も遠い距離である)、深度センサ出力、機械学習モデル、DNN、コンピュータ・ビジョン・アルゴリズム、HDマップなどを使用して識別された物体の深度又は距離値が、視認距離値として使用され得、及び/又はセンサ・データ102Aのインスタンスの距離ビンを判定するために使用され得るように、視認距離及び/又は距離ビンのグラウンド・トゥルース・ラベルの判定は、自動的に実行され得る。
【0034】
実施形態では、拡張データ102Bのグラウンド・トゥルース・データを生成するために、類似のプロセスが、センサ・データ102Aに関して使用され得る。たとえば、環境内の物体の既知の距離又は深度値が、視認距離及び/又は距離ビンを判定するために使用され得る。追加で又はその代わりとして、モデルが、拡張のパラメータの値と視認距離及び/又は距離ビンとの対応関係又はマッピングを決定するようにトレーニングされ得る。たとえば、霧パラメータの値(たとえば、濃度、高さなど)が、センサ・データ102Aを拡張して拡張データ102Bを生成するために、使用され得る。拡張データ102Bのインスタンスは、次いで、視認距離及び/又は距離ビンを判定するために、分析され得る(たとえば、拡張後の可視物体の既知の深度値を使用して)。このプロセスは、モデルが、拡張のためにパラメータの値に基づいて視認距離及び/又は距離ビンを計算するようにトレーニングされるまで、拡張データ102Bの任意の数のインスタンスについて繰り返され得る。モデルがトレーニングされた後は、このモデルは、自動的に生成された拡張データのグラウンド・トゥルースを自動的に生成するために、使用され得る。たとえば、パラメータ(たとえば、雨、雪、霧、みぞれ、照明、オクルージョンなど)の値は、拡張データ102Bを生成するためにランダム化され得、それらの値(又はそれらの組合せ)は、視認距離及び/又は距離ビンへの既知の対応関係を有し得、これらの視認距離及び/又は距離ビンが、拡張データ102Bのインスタンスのグラウンド・トゥルースとして使用され得る。
【0035】
モデルをトレーニングすること、又はパラメータの値と視認距離及び/又は距離ビンとの間のマッピングを作成することの一実例として、図2A~2Cに関して、視覚化200Aは、大雨での拡張データ102Bを生成するために使用される雨パラメータの値に対応し得る。注釈者又はラベラは、次いで、車両202Aまでの距離を判定し、そのようなものとして拡張データ102Bにラベルを付けることができ、これは、データを拡張するための1つ又は複数のパラメータの値と視認距離及び/又は距離ビンとの間の1つのマッピングに対応し得る。このプロセスは、車両202Bまでの距離及び小雨という結果になるパラメータの値を使用して視覚化200Bについて、並びに車両202Cまでの距離及び明瞭な条件という結果になるパラメータの値(たとえば、雨がないとき、すべての雨の値は0)を使用して視覚化200Cについて繰り返され得る。雨が、図2A~2Cに関して図示及び説明されているが、これは限定を意図しておらず、霧、雪、みぞれ、雹、照明、オクルージョン、それらの組合せなどの他の条件が、拡張データ102B、ひいてはパラメータの値(又はそれらの組合せ)とグラウンド・トゥルースの視認距離及び/又は距離ビンとのマッピングを生成するために、使用され得る。
【0036】
合成データ102Cのグラウンド・トゥルース・データを生成するために、シミュレーションに対応する状態データが環境内の物体の正確な深度又は距離情報を含み得るとき、既知の深度情報がシミュレーション・エンジンに由来し得ることを除いて、類似のプロセスが、センサ・データ102Aと同様に使用され得る。たとえば、注釈する人は、シミュレーションにおいてパラメータの変化する値に従って生成された合成データ102Cのインスタンスにおいて最も遠い可視物体を識別することができ、仮想マシンの仮想センサから最も遠い可視物体までの深度又は距離が、視認距離として及び/又はグラウンド・トゥルースとして距離ビンを判定するために、使用され得る。追加で又はその代わりとして、実施形態において、モデルは、シミュレーションのパラメータの値と視認距離及び/又は距離ビンとの対応関係又はマッピングを決定するようにトレーニングされ得る。たとえば、霧パラメータ(たとえば、濃度、高さなど)の値が、シミュレーションのシミュレート環境を生成するために使用され得、合成データ102Cが、シミュレート環境内からキャプチャされ得る。合成データ102Cのインスタンスは、次いで、視認距離及び/又は距離ビンを判定するために分析され得る(たとえば、シミュレーションにおいて可視物体の既知の深度の値を使用して)。このプロセスは、モデルがシミュレーションのためにパラメータの値に基づいて視認距離及び/又は距離ビンを計算するようにトレーニングされるまで、合成データ102Cの任意の数のインスタンスについて繰り返され得る。いくつかの実施形態において、ツールが、ある特定のセットのパラメータについて特定の物体がいつ可視か又は不可視かをユーザが識別することを可能にするために、使用され得る。たとえば、車両は、第1の位置に置かれ得、且つユーザは、車両は可視であると指示し得る。車両は、次いで、さらに遠くへ移動され得、且つユーザは、車両はまだ可視であると指示し得る。車両は、次いで、シミュレート環境においてさらに遠くへ移動され得、且つユーザは、車両はもう不可視であると指示し得、且つ車両のこの距離が、グラウンド・トゥルース視認距離として及び/又は距離ビンを判定するために、使用され得る。モデルがトレーニングされるまで、このプロセスは、様々なパラメータ及び様々な物体のタイプについて繰り返され得る。モデルがトレーニングされた後は、このモデルは、自動的に生成された合成データのグラウンド・トゥルースを自動的に生成するために使用され得る。たとえば、パラメータ(たとえば、雨、雪、霧、みぞれ、照明、オクルージョンなどの)の値は、シミュレーションを生成するためにランダム化され得、それらの値(又はそれらの組合せ)は、視認距離及び/又は距離ビンへの既知の対応関係を有し得、これらの視認距離及び/又は距離ビンは、合成データ102Cのインスタンスのグラウンド・トゥルースとして使用され得る。
【0037】
モデルをトレーニングすること、又はパラメータの値と視認距離及び/又は距離ビンとのマッピングを作成することの一実例として、図2A~2Cに関して、視覚化200Aは、大雨が降っている合成データ102Cを生成するために使用される雨のパラメータの値に対応し得る。注釈者又はラベラは、次いで、車両202Aまでの距離を判定し、そのようなものとして合成データ102Cにラベルを付けることができ、これは、シミュレーションを生成するための1つ又は複数のパラメータの値と視認距離及び/又は距離ビンとの1つのマッピングに対応し得る。このプロセスは、車両202Bまでの距離及び小雨であるという結果になるパラメータの値を使用して視覚化200Bについて、並びに車両202Cまでの距離及び明瞭な条件につながるパラメータの値(たとえば、雨がないとき、すべての雨の値は0)を使用して視覚化200Cについて繰り返され得る。雨は、図2A~2Cに関して図解及び説明されているが、これは限定を意図しておらず、霧、雪、みぞれ、雹、照明、オクルージョン、それらの組合せなどの他の条件が、合成データ102C、ひいてはパラメータ(又はそれらの組合せ)の値とグラウンド・トゥルースの視認距離及び/又は距離ビンとのマッピングを生成するために、使用され得る。
【0038】
グラウンド・トゥルース・データが、トレーニング・データ102を使用して計算されるものとしての機械学習モデル104の出力106に対応するように生成された-グラウンド・トゥルース・ジェネレータ116を使用して-後は、1つ又は複数の損失関数114が、機械学習モデル104の正確性を判定するために、及び許容レベルの正確性が達成されるまで各反復において機械学習モデル104を更新する(たとえば、パラメータ、重み及びバイアスなど)ために、使用され得る。機械学習モデル104が、視認距離値で回帰するようにトレーニングされる場合、回帰損失が、損失関数114として使用され得る。そのような実例において、回帰損失は、より遠い視認距離におけるより高いエラー及びより短い視認距離におけるより少ないエラーを構成し得る、正規化されたL1損失を含み得る。そのような実例において、損失は、以下の方程式(1)に従って、計算され得る:
【数1】

predは、機械学習モデル104によって出力される予測された視認距離であり、dGTはグラウンド・トゥルース視認距離である。
【0039】
他の実例では、正規化されたL2損失が使用され得、又は、方向を正規化されたL1損失が使用され得る。方向を正規化されたL1損失は、正規化されたL1損失に類似し得るが、損失曲線の傾斜は、プラス側へのエラーにインセンティブを与えるために、プラス側でより急であり得る(たとえば、損失レベルにおける適合率(precision)より再現率(recall)を蒸発(vapor)させるために)。この損失関数の最小値は、なお0であり得るが、グラウンド・トゥルースより低い予測は、より多くペナルティを科され得る。
【0040】
他の実例において、ガウシアン距離損失が、(完全に正確であることを要求するのではなくて)グラウンド・トゥルースからさらに遠い距離にはより多くペナルティを科す、及びグラウンド・トゥルースにより近い予測にはより少なくペナルティを科すために、回帰チャネルのために使用され得る。そのような実例において、距離の過大評価は、過小評価よりも多くのペナルティを科され得る。
【0041】
機械学習モデル104が距離ビン110(たとえば、分類出力としての)を出力する実施形態において、分類損失が、使用され得る。たとえば、距離ビン110を計算するように機械学習モデル104をトレーニングするために、多クラス交差エントロピー損失関数が、使用され得、及び/又は方向性多クラス交差エントロピー損失関数が使用され得る。
【0042】
機械学習モデル104のトレーニング中に、正確性の許容レベルを決定するために、1つ又は複数のキー・パフォーマンス・インジケータ(KPI:key performance indicator)が、使用され得る。たとえば、ネットワーク(又は機械学習モデル)レベルKPIが使用され得、モジュールレベルKPIが使用され得る。ネットワークレベルKPIは、以下の方程式(2)に従ってトレーニング・データ102の各インスタンスの相対的視認距離予測エラー(RDE:relative visibility distance prediction error)を測定し得る:
【数2】

predは、機械学習モデル104によって出力される予測視認距離であり、dGTは、グラウンド・トゥルース視認距離である。トレーニング・データ102の各インスタンスのこれらの値を使用して、平均及び標準偏差が、分析され得る。
【0043】
モジュールレベルKPIは、様々なビンへの予測視認距離の分類におけるエラーを測定し得る。分類におけるエラー(Δclass)を計算するために、以下の方程式(3)が、使用され得る:
Δclass=cpred-cGT (3)
cは、距離ビン識別子(ID)(たとえば、非常に低いに対応する1、明瞭に対応する5)であり、cpredは、機械学習モデル104によって予測される視認距離ビンIDであり、cGTは、グラウンド・トゥルース視認ビンIDである。そのようなものとして、Δclassは、正確な予測について0であり得、予測される距離ビンが期待より高い場合には、プラス、予測距離ビンが期待より低い場合には、マイナスであり得る。このようにして、Δclass=0は真陽性、Δclass>0は偽陰性、そして、Δclass<0は偽陽性であり得る。これは、偽陽性はエゴマシン700を過剰に保守的にさせ(占有者にとって不快であり得る)、偽陰性はエゴマシン700を過小に保守的にさせる(占有者にとって危険であり得る)と説明することができる。真陽性、偽陽性、及び偽陰性のこれらの定義を使用して、モジュールは、優れた適合率及び再現率を達成するように調整され得るが、必要に応じて再現率の方を好み得る(たとえば、超保守的であることの方を好み得るなど)。加えて、|Δclass|が、予測されるエラーのインジケータとして使用され得、そして、損失関数が、|Δclass|の広がりを低減するために使用され得る。
【0044】
ここで図3を参照すると、本明細書に記載の方法300の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法300はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法300は、いくつか例を挙げると、独立型アプリケーション、サービス若しくはホスト型サービス(独立型の若しくは別のホスト型サービスと組み合わせた)、又は別の製品へのプラグインによって、提供され得る。加えて、方法300は、実例として、図1のプロセス100及び図7A~7Dのエゴマシン700に関して、説明されている。しかしながら、この方法300は、本明細書に記載のものを含むが、これらに限定されない、任意の1つのシステム内で及び/又は任意の1つのシステム、又はプロセス及びシステムの任意の組合せによって、追加で又はその代わりとして実行され得る。
【0045】
図3は、本開示のいくつかの実施形態による、推定視認距離を計算するように機械学習モデルをトレーニングするための方法300を示すフロー図である。方法300は、ブロックB302において、トレーニング・センサ・データのインスタンスに対応する視認性を調整するための1つ又は複数のパラメータに対応する値を受信することを含む。たとえば、1つ又は複数のパラメータ(たとえば、雨の強度、雨の水分量、霧の濃さ、照明条件など)の値が、受信され得る。
【0046】
方法300は、ブロックB304において、それらの値に少なくとも部分的に基づいてトレーニング・センサ・データのインスタンスを生成することを含む。たとえば、1つ又は複数のパラメータの値を使用して、センサ・データ102Aが拡張データ102Bを生成するために拡張され得、及び/又は仮想シミュレーションが生成され得、並びに合成データ102Cが、仮想マシンの仮想センサを使用してキャプチャされ得る。
【0047】
方法300は、ブロックB306において、それらの値に少なくとも部分的に基づいてトレーニング・センサ・データのインスタンスに対応する視認距離を判定することを含む。たとえば、1つ又は複数のトレーニングされたモデルを使用して、1つ又は複数のパラメータの1つ又は複数の値と視認距離108及び/又は視認距離ビン110との対応関係が、決定され得る。
【0048】
方法300は、ブロックB308において、トレーニング・センサ・データのインスタンス及び視認距離をグラウンド・トゥルース・データとして使用して機械学習モデルをトレーニングすることを含む。たとえば、機械学習モデル104は、出力106をグラウンド・トゥルース・ジェネレータ116を使用して生成された(たとえば、グラウンド・トゥルース視認距離、グラウンド・トゥルース距離ビン、及び/又はグラウンド・トゥルース視認性分類/属性に対応する)グラウンド・トゥルース・データと比較するために1つ又は複数の損失関数114を使用して、トレーニングされ得る。トレーニング・データ102の任意の数(たとえば、数千、数百万など)のインスタンスが、機械学習モデル104が許容レベルの正確性(実施形態において、1つ又は複数のKPIを使用して判定されるものとしての)に達するまで、及び配備(たとえば、図4のプロセス400における)のために検証されるまで、機械学習モデル104をトレーニングするために使用され得る。
【0049】
(配備中の視認距離の計算)
図4を参照すると、図4は、本開示のいくつかの実施形態による、視認距離推定のための機械学習モデルを配備するための例示的プロセス400に対応するデータフロー図である。本明細書に記載のこの構成及び他の構成は単に実例として明記されていることを理解されたい。他の構成及び要素(たとえば、マシン、インターフェース、機能、順序、機能のグループ化など)が、図示されたものに加えて又はその代わりに使用され得、いくつかの要素は、完全に省略され得る。さらに、本明細書に記載の要素の多数は、離散された若しくは分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。いくつかの実施形態において、本明細書に記載のシステム、方法、及びプロセスは、図7A~7Dの例示的自律型車両700、図8の例示的計算デバイス800、及び/若しくは図9の例示的データ・センタ900のそれらに類似の構成要素、特徴、並びに/又は機能性を使用して実行され得る。
【0050】
配備中、プロセス400は、センサ・データ402を生成及び/又は受信することを含み得る。センサ・データ402は、エゴマシン-たとえば、図7A~7Dに関して本明細書に記載のエゴマシン700―の1つ又は複数のセンサを使用して生成されるセンサ・データを含み得る。たとえば、センサ・データ402は、図1に関して説明されるセンサ・データ102Aと類似し得る。そのようなものとして、センサ・データ402は、エゴマシン700の1つ又は複数のセンサの視野及び/又は知覚フィールドを表し得る-たとえば、画像、LiDAR範囲画像、点群などの形で。
【0051】
機械学習モデル104は、センサ・データ402を入力として受信することができ、センサ・データ402を処理して出力106-視認距離108、距離ビン110、及び/又は視認性分類/属性112を含み得る―を計算することができる。機械学習モデル104が(距離ビン110ではなく)視認距離108を計算する実施形態において、ポストプロセッサ404が、視認距離108を距離ビンへと閾値処理するために使用され得る。たとえば、距離ビンが10メートルから100メートルの間であり、視認距離108が78メートルである場合、ポストプロセッサ404が、10メートルから100メートルの間の距離ビンに対応するものとしてセンサ・データ402のインスタンスにラベルを付ける又は分類することができ、この情報は、有用性406について分析され得る。
【0052】
任意の実例において、距離ビン110が機械学習モデル104の出力106として直接計算されても或いはポストプロセッサ404を使用して判定されても、任意の数の距離ビンが存在し得、各距離ビンは、任意の範囲の視認距離値を含み得る。加えて、各ビンは、実行され得る異なる数の動作に対応し得る。たとえば、センサ・データ402が、いかなる方法でも視覚的に損なわれない場合、エゴマシン700がセンサ・データ402に依拠し得る動作のセットが存在し得る。しかしながら、センサ・データ402が、何らかの方法で視覚的に損なわれる(たとえば、視認距離が最大より少ない)場合、その動作のセットのうちの1つ又は複数の動作が、無効にされ得、或いは、センサ・データ402に依拠する1つ又は複数の構成要素、特徴、及び/又は機能性に不適切又は使用不可能なセンサ・データ402のインスタンスを無視させる、インジケータが、提供され得る。加えて、実施形態において、視認性分類/属性112が計算される場合、ある特定の距離ビンと組み合わせたある特定の視認性分類が、他の距離ビンと組み合わせた他の視認性分類とは異なる有用性に対応し得るように、この情報は、有用性406決定におけるファクタとして追加で使用され得る。
【0053】
非限定的実例として、距離ビンは、非常に低い視認性(たとえば、<10メートル)の第1のビン、低い視認性(たとえば、10メートルから100メートルの間)の第2のビン、中位視認性(たとえば、100メートルから1000メートルの間)の第3のビン、高い視認性(たとえば、1000メートルから4000メートルの間)の第4のビン、及び明瞭な視認性(たとえば、4000メートル超)の第5のビンを含み得る。この実例において、第1のビンは、極度の霧若しくは吹雪、又は高い降雨量若しくはたくさんの霧雨と相関がある視覚範囲に対応し得る。第2のビンは、濃霧の天気と相関がある視覚範囲に対応し得る。第3のビンは、中程度の霧の天気又は中位の降雨又は中程度の霧雨と相関がある視覚範囲に対応し得る。第4のビンは、かすんだ気象条件又は軽い降雨又は霧雨と相関がある視覚範囲に対応し得る。第5のビンは、センサ・データ402を生成する特定のセンサの最大視覚範囲と相関がある視覚範囲に対応し得る。
【0054】
この非限定的実例を続けると、5つのビンのうちの各ビンは、エゴマシンによって実行され得る様々なタスクに対応し得る。たとえば、第1のビン(たとえば、非常に低い視認距離)について、エゴマシンが閾値速度未満(たとえば、毎時25キロメートル未満)で移動している限り、レベル0、レベル1、及びレベル2の低速アクティブ・セーフティ機能(たとえば、車線アシスト、自動車線保持、オート・クルーズ制御、自動緊急ブレーキなど)の全性能が、利用可能であり得る。しかしながら、車両が、閾値速度を超えて移動している場合、これらの機能性は、(非常に低い無効距離を有するセンサ・データ402のインスタンスに少なくとも関して)無効にされ得る。第2のビン(たとえば、低い視認距離)に関して、エゴマシンが閾値速度未満で移動している限り、レベル0、レベル1、及びレベル2の駐車機能(たとえば、近接検出、自動縦列駐車アラインメントなど)及び低速アクティブ・セーフティ機能の全性能が、利用可能であり得る。第3のビン(たとえば、中位視認距離)に関して、レベル0、レベル1、レベル2及びレベル2+運転機能の全性能が、利用可能であり得る。第4のビン(たとえば、高い視認距離)に関して、レベル3及びレベル4駐車機能(たとえば、自動縦列駐車(APP:automatic parallel parking)、MPP、VVP)の全性能が、第1の、第2の、及び第3のビンのレベル0、レベル1、レベル2、及びレベル2+機能に加えて、利用可能であり得る。第4のビン(たとえば、明瞭な視認性)に関して、レベル3自動運転ハイウェイ機能の全性能が、第1の、第2の、第3の、及び第4のビンの機能性に加えて、利用可能であり得る。
【0055】
いくつかの実施形態において、有用性406は、使用され得るセンサ・データ402からの情報の一部に対応し得る。たとえば、距離ビンが知られており、距離ビンが100から1000メートルの範囲に対応する場合、センサ・データ402に対応する及びエゴマシン700の1000メートル以内にあるシステムの任意の出力が、使用され得、一方、1000メートルを超える距離に対応する任意の出力は、無視され得る。そのような実例において、第1の車両が、物体検出アルゴリズムを使用して、エゴマシン700から200メートルの距離において検出された場合、検出は、ドライブ・スタック408の下流システムによって依拠され得る。しかしながら、第2の車両が、物体検出アルゴリズムを使用してエゴマシン700から1200メートルの距離において検出された場合、検出は、依拠されない可能性がある。この類似のプロセスは、他のタスク、たとえば、物体追跡、進路内障害物分析(OIPA:obstacle in path analysis)、物体対車線割り当て、位置特定など、のために使用され得る。
【0056】
任意の実施形態において、有用性406が判定された後は、ドライブ・スタック408の1つ若しくは複数の特徴、機能性、及び/又は構成要素が、無効にされ得、センサ・データ402のインスタンスを無視し得、及び/又は他の方法で有用性406を使用し得るように、センサ・データ402のインスタンスは、有用性406の指示でタグ付けされ得、或いは自律又は半自律ソフトウェアドライビング・スタック(「ドライブ・スタック」)に送信され得る。ドライブ・スタック408は、1つ又は複数の層、たとえば、1つ又は複数のマップ(たとえば、3Dマップ)、位置特定構成要素、認知構成要素、及び/又は同類のものを使用して世界状態を管理する世界状態マネージャ層、を含み得る。加えて、自律運転ソフトウェア・スタックは、計画策定構成要素(たとえば、計画策定層の一部として)、制御構成要素(たとえば、制御層の一部として)、作動構成要素(たとえば、作動層の一部として)、障害物回避構成要素(たとえば、障害物回避層の一部として)、及び/又は他の構成要素(たとえば、1つ若しくは複数の追加となる又はその代わりとなる層の一部として)を含み得る。そのようなものとして、有用性406は、センサ・データ402の適切な使用が管理されるように、センサ・データ402に依拠するドライブ・スタック408の任意の下流タスクに指示を提供し得る。
【0057】
一実例として、図5の視覚化500に関して、画像を表すセンサ・データ402のインスタンスが、エゴマシン700のカメラを使用して生成され得る。センサ・データ402のインスタンスは、機械学習モデル104に適用され得、機械学習モデル104は、出力106のうちの1つ又は複数を計算し得る。出力106が、視認距離108を含む場合、ポストプロセッサ404は、視認距離108を距離ビンへと閾値処理し得る。有用性406は、次いで、距離ビン(及び/又は視認性分類/属性112)に基づいて判定され得、この情報が、ドライブ・スタック408によって使用され得る。たとえば、距離ビンが、非常に低い視認性に対応する場合、自動緊急ブレーキ(AEB)などの安全機能が、車両502Aのために停止する際にエゴマシン700を助けるために使用され得るが、車両502Bに対応する物体検出結果は、視覚化500に対応するセンサ・データ402の低減された有用性406により、依拠されないことがある。
【0058】
ここで図6を参照すると、本明細書に記載の方法600の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法600はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法600は、いくつか例を挙げると、独立型アプリケーション、サービス若しくはホスト型サービス(独立型の若しくは別のホスト型サービスと組み合わせた)、又は別の製品へのプラグインによって、提供され得る。加えて、方法600は、実例として、図4のプロセス400及び図7A~7Dのエゴマシン700に関して、説明されている。しかしながら、この方法600は、本明細書に記載のものを含むが、これらに限定されない、任意の1つのプロセス内で及び/又は任意の1つのシステム、若しくはプロセス及びシステムの任意の組合せによって追加で又はその代わりとして実行され得る。
【0059】
図6は、本開示のいくつかの実施形態による、推定視認距離を計算するために機械学習モデルを配備するための方法600を示すフロー図である。方法600は、ブロックB602において、機械学習モデルを使用して、エゴマシンの1つ又は複数のセンサを使用して生成されたセンサ・データに少なくとも部分的に基づいて、センサ・データに対応する視認距離を示すデータを計算することを含む。たとえば、機械学習モデル104は、センサ・データ402を入力として使用して、出力106のうちの1つ又は複数を計算し得る。
【0060】
方法600は、ブロックB604において、視認距離に少なくとも部分的に基づいて、エゴマシンの1つ又は複数の動作のセンサ・データの有用性を判定することを含む。たとえば、センサ・データ402の有用性406は、視認距離108、距離ビン110、及び/又は視認性分類/属性112に基づいて判定され得る。
【0061】
方法600は、ブロックB606において、センサ・データの有用性に少なくとも部分的に基づいて1つ又は複数の動作のうちの少なくとも1つの動作を実行することを含む。たとえば、視認距離が明瞭でない場合、センサ・データが明瞭だった場合にはセンサ・データ402に依拠するであろう1つ又は複数の動作が、非活動化され得、及び/又はセンサ・データ402の特定のインスタンスを無視するように合図され得る。
【0062】
(例示的自律型車両)
図7Aは、本開示のいくつかの実施形態による、例示的自律型車両700の図である。自律型車両700(或いは、本明細書で「車両700」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトルバス、電動又は原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、トレーラに連結された車両、及び/又は別のタイプの車両(たとえば、無人の及び/又は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月15日に公開された規格番号J3016-201806、2016年9月30日に公開された規格番号J3016-201609、並びにこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。車両700は、自律運転レベルのレベル3~レベル5のうちの1つ又は複数による機能を有し得る。車両700は、自律運転レベルのレベル1~レベル5のうちの1つ又は複数による機能を有し得る。たとえば、車両700は、実施形態に応じて、運転者支援(レベル1)、部分的自動化(レベル2)、条件的自動化(レベル3)、高い自動化(レベル4)、及び/又は完全な自動化(レベル5)を有し得る。本明細書では「自律」という用語は、車両700又は他のマシンの任意の及び/又はすべてのタイプの自律性、たとえば、完全に自律していること、高度に自律していること、条件的に自律していること、部分的に自律していること、補助的自律を提供すること、半自律していること、主として自律していること、又は他の指定、を含み得る。
【0063】
車両700は、車両のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。車両700は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム750を含み得る。推進システム750は、車両700の推進力を有効にするために、トランスミッションを含み得、車両700のドライブ・トレインに接続され得る。推進システム750は、スロットル/加速装置752からの信号の受信に応答して制御され得る。
【0064】
ハンドルを含み得る、ステアリング・システム754は、推進システム750が動作しているときに(たとえば、車両が移動中のときに)車両700のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム754は、ステアリング・アクチュエータ756から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能について任意選択でもよい。
【0065】
ブレーキ・センサ・システム746は、ブレーキ・アクチュエータ748及び/又はブレーキ・センサからの信号の受信に応答して車両ブレーキを動作させるために使用され得る。
【0066】
1つ又は複数のシステム・オン・チップ(SoC:System on Chip)704(図7C)及び/又はGPUを含み得る、コントローラ736は、車両700の1つ若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1つ又は複数のブレーキ・アクチュエータ748を介して車両ブレーキを動作させて、1つ又は複数のステアリング・アクチュエータ756を介してステアリング・システム754を動作させて、1つ又は複数のスロットル/加速装置752を介して推進システム750を動作させるために、信号を送ることができる。コントローラ736は、センサ信号を処理する、並びに自律的運転を可能にするために及び/又は運転者の車両700の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1つ又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ736は、自律運転機能のための第1のコントローラ736、機能的安全性機能のための第2のコントローラ736、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ736、インフォテインメント機能のための第4のコントローラ736、緊急状態における冗長性のための第5のコントローラ736、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ736が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ736が、単一の機能、及び/又はそれらの任意の組合せを処理することができる。
【0067】
コントローラ736は、1つ又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して車両700の1つ若しくは複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして限定はしないが、全地球的航法衛星システム・センサ758(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ760、超音波センサ762、LIDARセンサ764、慣性計測装置(IMU:inertial measurement unit)センサ766(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン796、ステレオ・カメラ768、ワイド・ビュー・カメラ770(たとえば、魚眼カメラ)、赤外線カメラ772、サラウンド・カメラ774(たとえば、360度カメラ)、長距離及び/若しくは中距離カメラ798、スピード・センサ744(たとえば、車両700のスピードを測定するための)、振動センサ742、ステアリング・センサ740、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム746の一部としての)、並びに/又は他のセンサ・タイプから受信され得る。
【0068】
コントローラ736のうちの1つ又は複数のコントローラは、車両700の計器群732から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ734、可聴式アナンシエータ、ラウドスピーカ、及び/又は車両700の他の構成要素を介して提供することができる。出力は、車両速度、スピード、時間、マップ・データ(たとえば、図7CのHDマップ722)、位置データ(たとえば、マップ上などの、車両の700の位置)、方向、他の車両の位置(たとえば、占有グリッド)、コントローラ736によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ734は、1つ若しくは複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在に関する情報、及び/又は車両が行った、行っている、若しくは行うであろう運転操作(たとえば、今、車線変更をしていること、3.22km(2マイル)内の出口34Bを出ることなど)に関する情報を表示することができる。
【0069】
車両700はさらに、1つ若しくは複数のワイヤレス・アンテナ726及び/又はモデムを使用して1つ若しくは複数のネットワークを介して通信することができるネットワーク・インターフェース724を含む。たとえば、ネットワーク・インターフェース724は、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000などを介する通信を有し得る。ワイヤレス・アンテナ726はまた、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、車両、モバイル・デバイスなど)の間の通信を可能にすることができる。
【0070】
図7Bは、本開示のいくつかの実施形態による、図7Aの例示的自律型車両700のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1つの例示的実施形態であり、限定することは意図されていない。たとえば、追加の及び/又はその代わりとなるカメラが含まれ得、及び/又はカメラは車両700の異なる位置に置かれ得る。
【0071】
カメラのカメラ・タイプは、車両700の構成要素及び/又はシステムと使用するように適合され得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(ASIL:automotive safety integrity level)Bにおいて及び/又は別のASILにおいて動作することができる。カメラ・タイプは、実施形態に応じて、60フレーム/秒(fps)、120fps、240fpsなど、任意の画像キャプチャ・レートを有し得る。カメラは、ロール・シャッタ、グローバル・シャッタ、別のタイプのシャッタ、又はそれらの組合せを使用する能力を有し得る。いくつかの実例では、カラー・フィルタ・アレイは、RCCC(red clear clear clear)カラー・フィルタ・アレイ、RCCB(red clear clear blue)カラー・フィルタ・アレイ、RBGC(red blue green clear)カラー・フィルタ・アレイ、Foveon X3カラー・フィルタ・アレイ、Bayerセンサ(RGGB)カラー・フィルタ・アレイ、モノクロ・センサ・カラー・フィルタ・アレイ、及び/又は別のタイプのカラー・フィルタ・アレイを含み得る。一部の実施形態では、RCCC、RCCB、及び/又はRBGCカラー・フィルタ・アレイを有するカメラなどのクリア画素カメラは、光感度を上げるための取り組みにおいて使用され得る。
【0072】
いくつかの実例では、カメラのうちの1つ又は複数が、先進運転者支援システム(ADAS:advanced driver assistance system)機能(たとえば、冗長又はフェイルセーフ設計の一部として)を実行するために使用され得る。たとえば、多機能モノ・カメラは、車線逸脱警報、交通標識アシスト及びインテリジェント・ヘッドランプ制御を含む機能を提供するために設置され得る。カメラのうちの1つ又は複数(たとえば、すべてのカメラ)が、画像データ(たとえば、ビデオ)を同時に記録及び提供することができる。
【0073】
カメラのうちの1つ又は複数は、カメラの画像データ・キャプチャ能力を妨げることがある自動車内からの迷光及び反射(たとえば、フロントガラスのミラーにおいて反射されたダッシュボードからの反射)を取り除くために、カスタム設計された(3D印刷された)部品などの取付部品において取り付けられ得る。サイドミラー取付部品を参照すると、サイドミラー部品は、カメラ取付板がサイドミラーの形状に合うように、カスタム3D印刷され得る。いくつかの実例では、カメラは、サイドミラー内に統合され得る。サイドビュー・カメラについては、カメラはまた、キャビンの各角にある4個の支柱内に統合され得る。
【0074】
車両700の前方の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1つ若しくは複数のコントローラ736及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい車両進路の決定に不可欠な情報の提供を助ける、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(LDW:Lane Departure Warning)、自律的クルーズ制御(ACC:Autonomous Cruise Control)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
【0075】
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交錯交通又は自転車)からの視界に入る物体を把握するために使用され得るワイド・ビュー・カメラ770でもよい。図7Bにはワイド・ビュー・カメラは1つだけ示されているが、車両700には任意の数のワイド・ビュー・カメラ770が存在し得る。加えて、長距離カメラ798(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ798はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
【0076】
1つ又は複数のステレオ・カメラ768もまた、前向きの構成に含まれ得る。ステレオ・カメラ768は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、車両の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ768は、2個のカメラ・レンズ(左と右に1つずつ)と、車両から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ768が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
【0077】
車両700の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ774(たとえば、図7Bに示されるような4個のサラウンド・カメラ774)は、車両700上に位置付けられ得る。サラウンド・カメラ774は、ワイド・ビュー・カメラ770、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、車両の前、後ろ、及び側面に配置され得る。代替配置において、車両は、3個のサラウンド・カメラ774(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1つ又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
【0078】
車両700の後方に対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ798、ステレオ・カメラ768、赤外線カメラ772など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
【0079】
図7Cは、本開示のいくつかの実施形態による、図7Aの例示的自律型車両700の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの配置及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素はまとめて除外されてもよい。さらに、本明細書に記載の要素の多くは、離散された又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【0080】
図7Cの車両700の構成要素、特徴、及びシステムのそれぞれは、バス702を介して接続されるものとして図示されている。バス702は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキング、ステアリング、フロントガラス・ワイパなどの作動など、車両700の様々な特徴及び機能の制御を助けるために使用される車両700内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の車両状況インジケータを見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
【0081】
バス702は、CANバスであるものとして本明細書に記載されているが、これは限定することを意図されていない。たとえば、CANバスに加えて、又はこのその代わりとして、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス702を表すために使用されているが、これは限定することを意図されていない。たとえば、1つ若しくは複数のCANバス、1つ若しくは複数のFlexRayバス、1つ若しくは複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1つ若しくは複数の他のタイプのバスを含み得る、任意の数のバス702が存在し得る。いくつかの実例では、2個以上のバス702が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス702は衝突回避機能のために使用されてもよく、第2のバス702は作動制御のために使用されてもよい。任意の実例において、各バス702は、車両700の構成要素のいずれかと通信し得、2個以上のバス702が同じ構成要素と通信し得る。いくつかの実例では、車両内の各SoC704、各コントローラ736、及び/又は各コンピュータは、同じ入力データ(たとえば、車両700のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
【0082】
車両700は、図7Aに関して本明細書で説明されるものなど、1つ又は複数のコントローラ736を含み得る。コントローラ736は、様々な機能のために使用され得る。コントローラ736は、車両700の様々な他の構成要素及びシステムのいずれかに連結されてもよく、車両700、車両700の人工知能、車両700のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
【0083】
車両700は、システム・オン・チップ(SoC)704を含み得る。SoC704は、CPU706、GPU708、プロセッサ710、キャッシュ712、加速装置714、データ・ストア716、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC704は、様々なプラットフォーム及びシステム内の車両700を制御するために使用され得る。たとえば、SoC704は、1つ又は複数のサーバ(たとえば、図7Dのサーバ778)からネットワーク・インターフェース724を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ722を有するシステム(たとえば、車両700のシステム)において結合され得る。
【0084】
CPU706は、CPUクラスタ又はCPU複合体(或いは、本明細書では「CCPLEX」とも称される)を含み得る。CPU706は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施形態では、CPU706は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施形態では、CPU706は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU706(たとえば、CCPLEX)は、CPU706のクラスタの任意の組合せが所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
【0085】
CPU706は、以下の特徴のうちの1つ又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU706は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
【0086】
GPU708は、統合されたGPU(或いは本明細書において「iGPU」と称される)を含み得る。GPU708は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU708は、強化されたテンソル命令セットを使用することができる。GPU708は、1つ又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、L2キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施形態では、GPU708は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU708は、計算アプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU708は、1つ若しくは複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIA(登録商標)のCUDA)を使用することができる。
【0087】
GPU708は、自動車の及び組み込まれた使用事例における最高の性能のために電力最適化され得る。たとえば、GPU708は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは限定することを意図されておらず、GPU708は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合適合率処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合適合率NVIDIA TENSOR COREs、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
【0088】
GPU708は、一部の実例では、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)が使用され得る。
【0089】
GPU708は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU708がCPU706ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU708メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU706に送信され得る。応答して、CPU706は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU708に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU706とGPU708との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU708へのアプリケーションのGPU708プログラミング及びポーティングを単純化する。
【0090】
加えて、GPU708は、他のプロセッサのメモリへのGPU708のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
【0091】
SoC704は、本明細書に記載のものを含む任意の数のキャッシュ712を含み得る。たとえば、キャッシュ712は、CPU706とGPU708との両方に利用可能な(たとえば、CPU706とGPU708との両方に接続された)L3キャッシュを含み得る。キャッシュ712は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施形態に応じて、4MB以上を含み得る。
【0092】
SoC704は、車両700の様々なタスク又は動作のいずれか(たとえば、処理DNN)に関して処理を実行する際に活用され得る論理演算ユニット(ALU:arithmetic logic unit)を含み得る。加えて、SoC704は、システム内で数学演算を実行するための浮動小数点演算ユニット(FPU:floating point unit)(又は他のマス・コプロセッサ又は数値演算コプロセッサ・タイプ)を含み得る。たとえば、SoC704は、CPU706及び/又はGPU708内の実行ユニットとして統合された1つ又は複数のFPUを含み得る。
【0093】
SoC704は、1つ又は複数の加速装置714(たとえば、ハードウェア・加速装置、ソフトウェア・加速装置、又はその組合せ)を含み得る。たとえば、SoC704は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU708を補完するために及びGPU708のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU708のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置714は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
【0094】
加速装置714(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(DLA:deep learning accelerator)を含み得る。DLAは、深層学習アプリケーション及び推論のために1秒あたり追加の10兆の動作を提供するように構成することができる1つ又は複数のテンソル処理ユニット(TPU:Tensor processing unit)を含み得る。TPUは、画像処理機能(たとえば、CNN、RCNNなどの)を実行するように構成及び最適化された加速装置でもよい。DLAはさらに、特定のセットのニューラル・ネットワーク・タイプ及び浮動小数点演算、並びに推論のために最適化され得る。DLAの設計は、汎用GPUよりも1ミリメートルあたりより多くの性能を提供することができ、CPUの性能を大きく超える。TPUは、たとえば、特徴と重みとの両方についてINT8、INT16、及びFP16データ・タイプをサポートする、単一インスタンス畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実行することができる。
【0095】
DLAは、例えば以下を含むが、これらに限定されない、様々な機能のいずれかのために処理済み又は未処理のデータでニューラル・ネットワーク、特にCNN、を迅速に及び効率的に実行することができる:カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び車両所有者識別のためのCNN、並びに/又は、セキュリティ及び/若しくは安全性関連イベントのためのCNN。
【0096】
DLAは、GPU708の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU708のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU708及び/又は他の加速装置714に任せることができる。
【0097】
加速装置714(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(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)、及び/又は任意の数のベクトル・プロセッサを含み得るが、これらに限定されない。
【0098】
RISCコアは、画像センサ(たとえば、本明細書に記載のカメラのうちのいずれかのカメラの画像センサ)、画像信号プロセッサ、及び/又は同類のものと相互作用することができる。それぞれのRISCコアは、任意の量のメモリを含み得る。RISCコアは、実施形態に応じて、いくつかのプロトコルのいずれかを使用することができる。いくつかの実例では、RISCコアは、リアルタイム・オペレーティング・システム(RTOS:real-time operating system)を実行することができる。RISCコアは、1つ若しくは複数の集積回路デバイス、特定用途向け集積回路(ASIC)、及び/又はメモリ・デバイスを使用して、実装され得る。たとえば、RISCコアは、命令キャッシュ及び/又はしっかりと結合されたRAMを含み得る。
【0099】
DMAは、CPU706から独立したシステム・メモリにPVAの構成要素がアクセスすることを可能にし得る。DMAは、多次元アドレス指定及び/又は循環アドレス指定をサポートすることを含むがこれに限定されないPVAに最適化をもたらすために使用される任意の数の特徴をサポートすることができる。いくつかの実例では、DMAは、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る、6次元まで又はそれ以上のアドレス指定をサポートすることができる。
【0100】
ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのプログラミングを効率的に柔軟に実行する及び信号処理能力を提供するように設計され得るプログラマブル・プロセッサでもよい。いくつかの実例では、PVAは、PVAコア及び2個のベクトル処理サブシステム・パーティションを含み得る。PVAコアは、プロセッサ・サブシステム、DMAエンジン(たとえば、2個のDMAエンジン)、及び/又は他の周辺装置を含み得る。ベクトル処理サブシステムは、PVAの1次的処理エンジンとして動作することができ、ベクトル処理ユニット(VPU:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、VMEM)を含み得る。VPUコアは、たとえば、単一の命令、複数のデータ(SIMD)、超長命令語(VLIW:very long instruction word)デジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。SIMD及びVLIWの組合せは、スループット及びスピードを高めることができる。
【0101】
それぞれのベクトル・プロセッサは、命令キャッシュを含み得、専用のメモリに連結され得る。結果として、一部の実例では、それぞれのベクトル・プロセッサは、他のベクトル・プロセッサから独立して実行するように構成され得る。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、データ並列処理を用いるように構成され得る。たとえば、一部の実施形態では、単一のPVAに含まれる複数のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、しかし画像の異なる領域上で、実行することができる。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを、同じ画像上で、同時に実行することができ、或いは順次画像又は画像の部分で異なるアルゴリズムを実行することさえできる。特に、任意の数のPVAは、ハードウェア加速クラスタに含まれ得、任意の数のベクトル・プロセッサは、それぞれのPVAに含まれ得る。加えて、PVAは、全体的システム安全性を高めるために、追加のエラー訂正コード(ECC:error correcting code)メモリを含み得る。
【0102】
加速装置714(たとえば、ハードウェア加速クラスタ)は、加速装置714のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして限定はしないが、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
【0103】
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC61508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
【0104】
いくつかの実例では、SoC704は、2018年8月10日に出願された特許文献1に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、位置特定及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。一部の実施形態では、1つ又は複数のツリー・トラバース・ユニット(TTU:tree traversal unit)が、1つ又は複数のレイトレーシング関連動作を実行するために使用され得る。
【0105】
加速装置714(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。PVAは、ADAS及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。PVAの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、PVAは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、PVAは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
【0106】
たとえば、本技術の1つの実施形態によれば、PVAは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは限定することを意図されていない。レベル3~5の自律運転のための多数のアプリケーションは、動き推定/ステレオ・マッチング・オンザフライ(たとえば、SFM(structure from motion)、歩行者認識、レーン検出など)を必要とする。PVAは、2個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
【0107】
いくつかの実例では、PVAは、高密度のオプティカル・フローを実行するために使用され得る。(たとえば、4D高速フーリエ変換を使用して)未加工のRADARデータを処理する処理により、処理されたRADARを提供する。他の実例において、PVAは、たとえば、未加工の飛行時間データを処理して処理済みの飛行時間データを提供することにより、飛行時間の深度処理に使用される。
【0108】
DLAは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するように使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が誤判定検出ではなくて真陽性検出と考えられるべきであるかに関する他の決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動緊急ブレーキ(AEB:automatic emergency braking)システムにおいて、誤判定検出は、車両に緊急ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、AEBのトリガとして考えられるべきである。DLAは、信頼性値を退行するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、(たとえば、別のサブシステムから)取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、LIDARセンサ764又はRADARセンサ760)から取得された物体の車両700方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ766出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
【0109】
SoC704は、データ・ストア716(たとえば、メモリ)を含み得る。データ・ストア716は、SoC704のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア716は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア712は、L2又はL3キャッシュ712を備え得る。データ・ストア716の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置714に関連するメモリの参照を含み得る。
【0110】
SoC704は、1つ又は複数のプロセッサ710(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ710は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC704ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC704熱及び温度センサの管理、及び/又はSoC704電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC704は、リング発振器を使用してCPU706、GPU708、及び/又は加速装置714の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC704をより低い電力状態に置く及び/又は車両700を安全停止のための運転代行モードにする(たとえば、車両700を安全停止させる)ことができる。
【0111】
プロセッサ710は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
【0112】
プロセッサ710は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
【0113】
プロセッサ710は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
【0114】
プロセッサ710は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
【0115】
プロセッサ710は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
【0116】
プロセッサ710は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイド・ビュー・カメラ770で、サラウンド・カメラ774で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、車両の目的地を変更する、車両のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
【0117】
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
【0118】
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU708は、新しい面を連続してレンダリングするために必要とされない。GPU708の電源が入れられ、3Dレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、GPU708をオフロードして性能及び応答性を向上させるために使用され得る。
【0119】
SoC704は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、並びに/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC704は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
【0120】
SoC704は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC704は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ764、RADARセンサ760など)、バス702からのデータ(たとえば、車両700のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ758からのデータを処理するために使用され得る。SoC704は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU706を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
【0121】
SoC704は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC704は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置714が、CPU706と結合されるとき、GPU708、及びデータ・ストア716は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
【0122】
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、車両内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
【0123】
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU720)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
【0124】
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、「点滅光は、凍った状態を示す」というテキストは、点滅光が検出されるときには凍った状態が存在することを車両の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を車両の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU708上などで、同時に実行することができる。
【0125】
いくつかの実例では、顔認識及び車両所有者識別のためのCNNは、カメラ・センサからのデータを使用して車両700の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに車両を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が車両を離れるときに車両の動作を停止させるために、使用され得る。このようにして、SoC704は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
【0126】
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン796からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC704は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施形態では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ758によって識別されるように、車両が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ762の支援を受けて、車両を減速する、道の端に停止させる、車両を駐車する、及び/又は車両をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
【0127】
車両は、高速相互接続(たとえば、PCIe)を介してSoC704に連結され得るCPU718(たとえば、離散されたCPU、又はdCPU)を含み得る。CPU718は、たとえば、X86プロセッサを含み得る。CPU718は、たとえば、ADASセンサとSoC704との間の潜在的な不整合の結果を調停すること、並びに/又はコントローラ736及び/若しくはインフォテインメントSoC730の状況及び調子を監視することを含む、様々な任意の機能を実行するために使用され得る。
【0128】
車両700は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC704に連結され得るGPU720(たとえば、離散されたGPU、又はdGPU)を含み得る。GPU720は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的な人工知能機能をもたらすことができ、車両700のセンサからの入力(たとえば、センサ・データ)に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
【0129】
車両700は、1つ又は複数のワイヤレス・アンテナ726(たとえば、セルラ・アンテナ、ブルートゥース(登録商標)・アンテナなど、異なる通信プロトコルのための1つ又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース724をさらに含み得る。ネットワーク・インターフェース724は、インターネットを介するクラウドとの(たとえば、サーバ778及び/若しくは他のネットワーク・デバイスとの)、他の車両との、並びに/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の車両と通信するために、直接リンクが2個の車両の間に確立され得、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、車両対車両通信リンクを使用し、提供され得る。車両対車両通信リンクは、車両700に近接する車両(たとえば、車両700の前の、横の、及び/又は後ろの車両)に関する車両700の情報を提供することができる。この機能は、車両700の協調アダプティブ・クルーズ制御機能の一部でもよい。
【0130】
ネットワーク・インターフェース724は、変調及び復調機能を提供する及びコントローラ736がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース724は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
【0131】
車両700は、チップ外の(たとえば、SoC704外の)ストレージを含み得るデータ・ストア728をさらに含み得る。データ・ストア728は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1つ又は複数の記憶素子を含み得る。
【0132】
車両700は、GNSSセンサ758をさらに含み得る。GNSSセンサ758(たとえば、GPS、支援されたGPSセンサ、ディファレンシャルGPS(DGPS)センサなど)は、マッピング、知覚、占有グリッド生成、及び/又は進路計画策定機能を支援する。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ758が、使用され得る。
【0133】
車両700は、RADARセンサ760をさらに含み得る。RADARセンサ760は、暗闇及び/又は厳しい気象条件においても、長距離車両検出のために車両700によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ760は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ760によって生成されたデータを送信するために)CAN及び/又はバス702を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして限定なしに、RADARセンサ760は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
【0134】
RADARセンサ760は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、アダプティブ・クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ760は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で車両700の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、車両700のレーンに入る又はこれを去る車両を迅速に検出することを可能にする。
【0135】
一実例として、中距離RADARシステムは、760m(前)又は80m(後)までの範囲、及び42度(前)又は750度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、車両の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
【0136】
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
【0137】
車両700は、超音波センサ762をさらに含み得る。車両700の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ762は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ762が使用され得、異なる超音波センサ762が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ762は、ASIL Bの機能的安全性レベルにおいて動作することができる。
【0138】
車両700はLIDARセンサ764を含み得る。LIDARセンサ764は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ764は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、車両700は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ764を含み得る。
【0139】
いくつかの実例では、LIDARセンサ764は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ764は、たとえば、2cm~3cmの精度を有し、700Mbpsイーサネット(登録商標)接続のサポートを有して、約700mの広告された範囲を有し得る。いくつかの実例では、1つ又は複数の非突出したLIDARセンサ764が、使用され得る。そのような実例では、LIDARセンサ764は、車両700の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ764は、低反射物体についても200mの範囲を有し、120度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ764は、45度と135度との間の水平視野向けに構成され得る。
【0140】
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで車両の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、車両から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、車両700の各側面に1個ずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ764は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
【0141】
車両は、IMUセンサ766をさらに含み得る。一部の実例では、IMUセンサ766は、車両700の後部車軸の中央に位置付けられ得る。IMUセンサ766は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ766は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ766は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
【0142】
一部の実施形態では、IMUセンサ766は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、速度、及び姿勢の推定値を提供する小型の高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ766は、GPSからIMUセンサ766までの速度の変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を車両700が推定することを可能にし得る。いくつかの実例では、IMUセンサ766及びGNSSセンサ758は、単一の統合されたユニットにおいて結合され得る。
【0143】
車両は、車両700内及び/又は周囲に置かれたマイクロフォン796を含み得る。マイクロフォン796は、中でも、緊急車両検出及び識別のために使用され得る。
【0144】
車両は、ステレオ・カメラ768、ワイド・ビュー・カメラ770、赤外線カメラ772、サラウンド・カメラ774、長距離及び/若しくは中距離カメラ798、並びに/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、車両700の全周の画像データを取り込むために使用され得る。使用されるカメラのタイプは、車両700の実施形態及び要件に応じて決まり、任意の組合せのカメラ・タイプが、車両700の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施形態に応じて異なり得る。たとえば、車両は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、図7A及び図7Bに関連して本明細書においてさらに詳しく説明される。
【0145】
車両700は、振動センサ742をさらに含み得る。振動センサ742は、車軸など、車両の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ742が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
【0146】
車両700は、ADASシステム738を含み得る。一部の実例では、ADASシステム738は、SoCを含み得る。ADASシステム738は、自律/アダプティブ/オート・クルーズ制御(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)、並びに/又は他の特徴及び機能を含み得る。
【0147】
ACCシステムは、RADARセンサ760、LIDARセンサ764、及び/又はカメラを使用し得る。ACCシステムは、縦のACC及び/又は横のACCを含み得る。縦のACCは、車両700の直ぐ前の車両までの距離を監視及び制御し、前方の車両からの安全距離を維持するために車両速度を自動的に調整する。横のACCは、距離の保持を実行し、必要なときにレーンを変更するように車両700にアドバイスする。横のACCは、LCA及びCWSなどの他のADASアプリケーションに関連する。
【0148】
CACCは、ワイヤレス・リンクを介して他の車両からネットワーク・インターフェース724及び/又はワイヤレス・アンテナ726を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の車両からの情報を使用する。直接リンクは、車両対車両(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対車両(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の車両(たとえば、車両700と同じレーン内にある、車両700の直ぐ前の車両)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。車両700の前方の車両の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
【0149】
運転者が修正の行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ760を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
【0150】
AEBシステムは、別の車両又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正の行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ760を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正の行動を取るように運転者に警告し、運転者が修正の行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突緊急ブレーキなどの技法を含み得る。
【0151】
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、車両700が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
【0152】
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、車両700が車線をはみ出し始めた場合に車両700を修正するためにステアリング入力又はブレーキを提供する。
【0153】
BSWシステムは、自動車の死角において車両の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。システムは、運転者が方向指示器を使用するときに、付加的警告を提供することができる。BSWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、後ろ側を向いたカメラ及び/又はRADARセンサ760を使用することができる。
【0154】
RCTWシステムは、車両700がバックしているときにリアカメラの範囲外で物体が検出されたときに視覚的、可聴式、及び/又は触覚的通知を提供することができる。いくつかのRCTWシステムは、衝突を回避するために車両ブレーキが適用されることを確実にするために、AEBを含む。RCTWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1つ又は複数の後ろを向いたRADARセンサ760を使用することができる。
【0155】
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者に判定させ、それに応じて行動させるので、従来のADASシステムは、通常は壊滅的ではないが、運転者を苛立たせ、及び気を散らせ得る誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両700では、結果が矛盾する場合には、車両700自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ736又は第2のコントローラ736)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施形態では、ADASシステム738は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長で多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム738からの出力は、監督MCUに提供され得る。1次的コンピュータ及び2次的コンピュータからの出力が矛盾する場合、監督MCUは、安全な動作を確実にするためにその矛盾をどのように調整するかを決定する必要がある。
【0156】
いくつかの実例では、1次的コンピュータは、選択された結果における1次的コンピュータの信頼性を指示する、信頼性スコアを監督MCUに提供するように構成され得る。信頼性スコアが閾値を超えた場合、監督MCUは、2次的コンピュータが矛盾する又は不整合の結果を与えるかどうかにかかわらず、1次的コンピュータの指示に従い得る。信頼性スコアが閾値を満たさない場合、並びに1次的及び2次的コンピュータが異なる結果を示す(たとえば、矛盾する)場合、監督MCUは、コンピュータの間で調停して適切な結果を決定することができる。
【0157】
監督MCUは、2次的コンピュータが誤ったアラームを提供する状態を、1次的コンピュータ及び2次的コンピュータからの出力に基づいて判定するようにトレーニング及び構成されたニューラル・ネットワークを実行するように構成され得る。したがって、監督MCU内のニューラル・ネットワークは、2次的コンピュータの出力が信頼され得るとき、及びそれが信頼され得ないときを学習することができる。たとえば、2次的コンピュータがRADARベースのFCWシステムであるとき、監督MCU内のニューラル・ネットワークは、アラームをトリガする下水溝の鉄格子又はマンホールの蓋など、実際には危険ではない金属製の物体をいつFCWが識別しているかを学習することができる。同様に、2次的コンピュータがカメラベースのLDWシステムであるとき、監督MCU内のニューラル・ネットワークは、自転車に乗った人又は歩行者が存在し、車線逸脱が、実際には、最も安全な操作であるときに、LDWを無視することを学習することができる。監督MCU上で実行中のニューラル・ネットワークを含む実施形態では、監督MCUは、関連メモリを有するニューラル・ネットワークを実行するのに適したDLA又はGPUのうちの少なくとも1つを含み得る。好ましい実施形態において、監督MCUは、SoC704の構成要素を備え得る、及び/又はSoC704の構成要素として含まれ得る。
【0158】
他の実例において、ADASシステム738は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラント(fault-tolerat)にする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータ上のソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
【0159】
いくつかの実例では、ADASシステム738の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム738が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
【0160】
車両700は、インフォテインメントSoC730(たとえば、車両内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の離散された構成要素を含み得る。インフォテインメントSoC730は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの車両関連情報)を車両700に提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC730は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース(登録商標)接続、カーピュータ、車内エンターテインメント、Wi-Fi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ734、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/若しくはシステムを制御する並びに/又はこれと相互に作用するための)、及び/又は他の構成要素でもよい。インフォテインメントSoC730は、ADASシステム738からの情報、計画された車両操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、車両情報、道路情報など)、及び/又は他の情報など、車両のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
【0161】
インフォテインメントSoC730は、GPU機能性を含み得る。インフォテインメントSoC730は、バス702(たとえば、CANバス、イーサネット(登録商標)など)を介して、車両700の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ736(たとえば、車両700の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC730は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC730は、本明細書に記載のように、車両700を安全停止のための運転代行モードにすることができる。
【0162】
車両700は、計器群732(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群732は、コントローラ及び/又はスーパーコンピュータ(たとえば、離散されたコントローラ又はスーパーコンピュータ)を含み得る。計器群732は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実形態では、情報は、インフォテインメントSoC730及び計器群732の間で表示及び/又は共有され得る。言い換えれば、計器群732は、インフォテインメントSoC730の一部として含まれてもよく、逆もまた同様である。
【0163】
図7Dは、本開示のいくつかの実施形態による、図7Aのクラウドベースのサーバと例示的自律型車両700との間の通信のシステム図である。システム776は、サーバ778、ネットワーク790、及び、車両700を含む車両を含み得る。サーバ778は、複数のGPU784(A)~784(H)(本明細書でGPU784と総称される)、PCIeスイッチ782(A)~782(H)(本明細書でPCIeスイッチ782と総称される)、及び/又はCPU780(A)~780(B)(本明細書でCPU780と総称される)を含み得る。GPU784、CPU780、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLinkインターフェース788及び/又はPCIe接続786などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU784は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU784及びPCIeスイッチ782は、PCIe相互接続を介して接続される。8個のGPU784、2個のCPU780、及び2個のPCIeスイッチが図示されているが、これは限定を意図されていない。実施形態に応じて、それぞれのサーバ778は、任意の数のGPU784、CPU780、及び/又はPCIeスイッチを含み得る。たとえば、サーバ778は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU784を含み得る。
【0164】
サーバ778は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク790を介して、車両から、受信することができる。サーバ778は、ニューラル・ネットワーク792、更新されたニューラル・ネットワーク792、並びに/又は、交通及び道路状態に関する情報を含むマップ情報794をネットワーク790を介して車両に送信することができる。マップ情報794の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ722の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク792、更新されたニューラル・ネットワーク792、及び/又はマップ情報794は、環境において任意の数の車両から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ778及び/又は他のサーバを使用する)データ・センタにおいて実行されたトレーニングに基づいて生じた可能性がある。
【0165】
サーバ778は、トレーニング・データに基づいて機械学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、車両によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。トレーニングは、たとえば以下のクラスを含むがこれらに限定されない、任意の1つ又は複数のクラスの機械学習技法に従って、実行され得る:監視されたトレーニング、半監視されたトレーニング、監視されていないトレーニング、自己学習、強化学習、連合型学習、転移学習、特徴学習(主要構成要素及びクラスタ分析を含む)、マルチ線形部分空間学習、多様体学習、表現学習(予備辞書学習を含む)、ルールに基づく機械学習、異常検出、及びそれらの変更形態若しくは組合せ。機械学習モデルがトレーニングされた後は、機械学習モデルは、車両によって使用され得(たとえば、ネットワーク790を介して車両に送信される)、及び/又は、機械学習モデルは、車両を遠隔監視するために、サーバ778によって使用され得る。
【0166】
いくつかの実例では、サーバ778は、車両からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ778は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU784によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ778は、CPU電源式データ・センタのみを使用する深層学習インフラストラクチャを含み得る。
【0167】
サーバ778の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して車両700内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、車両700がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、車両700からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他の機械学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、車両700によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が対応せず、インフラストラクチャが、車両700内のAIは正常に機能していないという結論を下した場合、サーバ778は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように車両700のフェイルセーフ・コンピュータに命じる車両700への信号を送信することができる。
【0168】
推論のために、サーバ778は、GPU784及び1つ又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの応答性を可能にすることができる。性能がさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
【0169】
(例示的計算デバイス)
図8は、本開示のいくつかの実施形態の実装に使用するのに適した計算デバイス800の一実例のブロック図である。計算デバイス800は、以下のデバイスを直接的に又は間接的につなぐ相互接続システム802を含み得る:メモリ804、1つ又は複数の中央処理装置(CPU)806、1つ又は複数のグラフィック処理ユニット(GPU)808、通信インターフェース810、入力/出力(I/O)ポート812、入力/出力構成要素814、電力供給装置816、1つ又は複数の提示構成要素818(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット820。少なくとも1つの実施形態において、計算デバイス800は、1つ又は複数の仮想マシン(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU808のうちの1つ又は複数は、1つ又は複数のvGPUを含み得、CPU806のうちの1つ又は複数は、1つ又は複数のvCPUを含み得、及び/又は、論理ユニット820のうちの1つ又は複数は、1つ又は複数の仮想論理ユニットを含み得る。そのようなものとして、計算デバイス800は、離散された構成要素(たとえば、計算デバイス800専用の全GPU)、仮想構成要素(たとえば、計算デバイス800専用のGPUの一部分)、又はその組合せを含み得る。
【0170】
図8の様々なブロックは、線で相互接続システム802を介して接続しているように示されているが、これは限定することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施形態では、表示デバイスなどの提示構成要素818は、I/O構成要素814と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU806及び/又はGPU808はメモリを含み得る(たとえば、メモリ804は、GPU808、CPU806、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図8の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図8の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
【0171】
相互接続システム802は、1つ又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はそれらの組合せ、を表し得る。相互接続システム802は、1つ又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VESA(video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。一部の実施形態では、構成要素の間に直接接続が存在する。一実例として、CPU806は、メモリ804に直接接続され得る。さらに、CPU806は、GPU808に直接接続され得る。構成要素の間に直接、又はポイント対ポイント接続が存在する場合、相互接続システム802は、接続を実施するためのPCIeリンクを含み得る。これらの実例では、PCIバスは、計算デバイス800に含まれる必要はない。
【0172】
メモリ804は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス800によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、並びに取り外し可能な及び取り外し不可能な媒体を含み得る。実例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
【0173】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体並びに/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ804は、オペレーティング・システムなど、(たとえば、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ若しくは他の磁気記憶デバイス、又は、所望の情報を記憶するために使用し得る及び計算デバイス800によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
【0174】
コンピュータ記憶媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1つ又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。実例として、しかし限定せず、コンピュータ記憶媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【0175】
CPU806は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス800の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。CPU806は、多数のソフトウェア・スレッドを同時に処理する能力を有する1つ又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU806は、任意のタイプのプロセッサを含み得、実装された計算デバイス800のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス800のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたAdvanced RISC Machines(ARM)プロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス800は、計算コプロセッサなど、1つ又は複数のマイクロプロセッサ又は補助コプロセッサに加えて、1つ又は複数のCPU806を含み得る。
【0176】
CPU806に加えて又はその代わりに、GPU808は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス800の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。GPU808のうちの1つ若しくは複数は、統合されたGPU(たとえば、CPU806のうちの1つ又は複数とでもよく、及び/又はGPU808のうちの1つ若しくは複数は、離散GPUでもよい。実施形態では、GPU808のうちの1つ又は複数は、CPU806のうちの1つ又は複数のコプロセッサでもよい。GPU808は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、計算デバイス800によって使用され得る。たとえば、GPU808は、GPUによる汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU808は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU808は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU806からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU808は、画素データ又は任意の他の適切なデータ、たとえばGPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば表示メモリ、を含み得る。表示メモリは、メモリ804の一部として含まれ得る。GPU808は、並行して動作する(たとえば、リンクを介して)2個以上のGPUを含み得る。リンクは、GPUに直接接続することができ(たとえば、NVLINKを使用して)、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。ともに結合されるとき、各GPU808は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、独自のメモリを含むことができ、又は他のGPUとメモリを共有することができる。
【0177】
CPU806及び/又はGPU808に加えて又はその代わりに、論理ユニット820は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス800のうちの1つ又は複数を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。実施形態では、CPU806、GPU808、及び/又は論理ユニット820は、方法、プロセス及び/又はその部分の任意の組合せを離散的に又は合同で実行することができる。論理ユニット820のうちの1つ若しくは複数は、CPU806及び/若しくはGPU808のうちの1つ若しくは複数の一部でもよく及び/又はそこで統合されてもよく、並びに/又は、論理ユニット820のうちの1つ若しくは複数は、CPU806及び/若しくはGPU808に対する離散構成要素であっても若しくは他の方法でそれらの外部にあってもよい。実施形態では、論理ユニット820のうちの1つ又は複数は、CPU806のうちの1つ若しくは複数及び/又はGPU808のうちの1つ若しくは複数のコプロセッサでもよい。
【0178】
論理ユニット820の実例は、1つ又は複数の処理コア及び/又はその構成要素、たとえば、データ処理ユニット(DPU:Data Processing Unit)、テンソル・コア(TC:Tensor Core)、テンソル処理ユニット(TPU:Tensor Processing Unit)、画素ビジュアル・コア(PVC:Pixel Visual Core)、ビジョン処理ユニット(VPU:Vision Processing Unit)、グラフィックス処理クラスタ(GPC:Graphics Processing Cluster)、テクスチャ処理クラスタ(TPC:Texture Processing Cluster)、ストリーミング・マルチプロセッサ(SM:Streaming Multiprocessor)、ツリー・トラバース・ユニット(TTU:Tree Traversal Unit)、人工知能加速装置(AIA:Artificial Intelligence Accelerator)、深層学習加速装置(DLA:Deep Learning Accelerator)、論理演算ユニット(ALU)、特定用途向け集積回路(ASIC)、浮動小数点演算ユニット(FPU)、入力/出力(I/O)エレメント、周辺構成要素相互接続(PCI)又は周辺構成要素相互接続エクスプレス(PCIe)エレメント、及び/又は同類のもの、を含む。
【0179】
通信インターフェース810は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス800が他の計算デバイスと通信することを可能にする、1つ又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース810は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。1つ又は複数の実施形態において、論理ユニット820及び/又は通信インターフェース810は、ネットワークを介して及び/又は相互接続システム802を通して受信されるデータを1つ又は複数のGPU808(たとえば、そのメモリ)に直接送信するために1つ又は複数のデータ処理装置(DPU)を含み得る。
【0180】
I/Oポート812は、そのうちのいくつかは計算デバイス800に内蔵(たとえば、統合)され得る、I/O構成要素814、提示構成要素818、及び/又は他の構成要素を含む、他のデバイスに計算デバイス800が論理的に連結されることを可能にすることができる。例示的なI/O構成要素814は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素814は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、他の処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス800のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス800は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ・スクリーン技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス800は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス800によって使用され得る。
【0181】
電力供給装置816は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置816は、計算デバイス800の構成要素が動作することを可能にするために計算デバイス800に電力を提供することができる。
【0182】
提示構成要素818は、ディスプレイ(たとえば、モニタ、タッチ・スクリーン、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はそれらの組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素818は、他の構成要素(たとえば、GPU808、CPU806、DPUなど)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。
【0183】
(例示的データ・センタ)
図9は、本開示の少なくとも1つの実施形態において使用され得る例示的データ・センタ900を示す。データ・センタ900は、データ・センタ・インフラストラクチャ層910、フレームワーク層920、ソフトウェア層930、及び/又はアプリケーション層940を含み得る。
【0184】
図9に示すように、データ・センタ・インフラストラクチャ層910は、資源オーケストレータ912、グループ化された計算資源914、及びノード計算資源(「ノードC.R.s」)916(1)~916(N)を含み得、そこで、「N」は、任意の正の整数を表す。少なくとも1つの実施形態において、ノードC.R.s916(1)~916(N)は、任意の数の中央処理装置(CPU)又は他のプロセッサ(DPU、加速装置、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサ若しくはグラフィックス・プロセッシング・ユニット(GPU)などを含む)、メモリ・デバイス(たとえば、動的リード・オンリ・メモリ)、記憶デバイス(たとえば、ソリッドステート若しくはディスク・ドライブ)、ネットワーク入力/出力(NW I/O)デバイス、ネットワーク・スイッチ、仮想マシン(VM)、電力モジュール、及び/又は冷却モジュールなどを含み得るが、これらに限定されない。いくつかの実施形態において、ノードC.R.s916(1)~916(N)のうちの1つ又は複数のノードC.R.sは、前述の計算資源のうちの1つ又は複数を有するサーバに対応し得る。加えて、いくつかの実施形態において、ノードC.R.s916(1)~9161(N)は、1つ若しくは複数の仮想構成要素、たとえば、vGPU、vCPU、及び/若しくは同類のもの、を含み得、並びに/又は、ノードC.R.s916(1)~916(N)のうちの1つ若しくは複数は、仮想マシン(VM)に対応し得る。
【0185】
少なくとも1つの実施形態において、グループ化された計算資源914は、1つ又は複数のラック(図示せず)内に収容された別個のグループのノードC.R.s916、或いは様々な地理的場所(やはり図示せず)にあるデータ・センタに収容された多数のラックを含み得る。グループ化された計算資源914内の別個のグループのノードC.R.s916は、1つ又は複数のワークロードをサポートするように構成する又は割り当てることができる、グループ化された計算、ネットワーク、メモリ又はストレージ資源を含み得る。少なくとも1つの実施形態において、CPU、GPU、DPU、及び/又は他のプロセッサを含むいくつかのノードC.R.s916は、1つ又は複数のワークロードをサポートするための計算資源を提供するために、1つ又は複数のラック内にグループ化され得る。1つ又は複数のラックはまた、任意の組合せで、任意の数の電力モジュール、冷却モジュール、及び/又はネットワーク・スイッチを含み得る。
【0186】
資源オーケストレータ912は、1つ若しくは複数のノードC.R.s916(1)~916(N)及び/又はグループ化された計算資源914を構成又は他の方法で制御することができる。少なくとも1つの実施形態において、資源オーケストレータ912は、データ・センタ900のソフトウェア設計インフラストラクチャ(「SDI」)管理エンティティを含み得る。資源オーケストレータ912は、ハードウェア、ソフトウェア、又はその何らかの組合せを含み得る。
【0187】
少なくとも1つの実施形態において、図9に示すように、フレームワーク層920は、ジョブ・スケジューラ932、構成マネージャ934、資源マネージャ936、及び/又は分散型ファイル・システム938を含み得る。フレームワーク層920は、ソフトウェア層930のソフトウェア932及び/又はアプリケーション層940の1つ若しくは複数のアプリケーション942をサポートするためにフレームワークを含み得る。ソフトウェア932又はアプリケーション942は、ウェブベースのサービス・ソフトウェア又はアプリケーション、たとえば、Amazon Web Services(登録商標)、Google Cloud及びMicrosoft Azureによって提供されるもの、をそれぞれ含み得る。フレームワーク層920は、大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システム938を使用し得るApache Spark(商標)(以下「Spark」)などのフリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。少なくとも1つの実施形態において、ジョブ・スケジューラ932は、データ・センタ900の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。構成マネージャ934は、異なる層、たとえば、ソフトウェア層930と、大規模データ処理をサポートするためのSpark及び分散型ファイル・システム938を含むフレームワーク層920、を構成する能力を有し得る。資源マネージャ936は、分散型ファイル・システム938及びジョブ・スケジューラ932のサポートのためにマップされた又は割り当てられたクラスタ化された又はグループ化された計算資源を管理する能力を有し得る。少なくとも1つの実施形態において、クラスタ化された又はグループ化された計算資源は、データ・センタ・インフラストラクチャ層910にグループ化された計算資源914を含み得る。資源マネージャ936は、資源オーケストレータ912と調整して、これらのマップされた又は割り当てられた計算資源を管理することができる。
【0188】
少なくとも1つの実施形態において、ソフトウェア層930に含まれるソフトウェア932は、ノードC.R.s916(1)~916(N)の少なくとも部分、グループ化された計算資源914、及び/又はフレームワーク層920の分散型ファイル・システム938によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含み得るが、これらに限定されない。
【0189】
少なくとも1つの実施形態において、アプリケーション層940に含まれるアプリケーション942は、ノードC.R.s916(1)~916(N)の少なくとも部分、グループ化された計算資源914、及び/又はフレームワーク層920の分散型ファイル・システム938によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、任意の数のゲノミクス・アプリケーション、認知計算、並びに、トレーニング若しくは推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)、及び/又は1つ若しくは複数の実施形態と併せて使用される他の機械学習アプリケーションを含む、機械学習アプリケーションを含み得るが、これらに限定されない。
【0190】
少なくとも1つの実施形態において、構成マネージャ934、資源マネージャ936、及び資源オーケストレータ912のうちのいずれかは、任意の技術的に可能な方式で取得される任意の量及びタイプのデータに基づいて任意の数及びタイプの自己書換え型アクションを実装することができる。自己書換え型アクションは、よくない可能性のある構成決定を行うこと並びにデータ・センタの十分に活用されていない及び/又は実行の不十分な部分を恐らく回避することからデータ・センタ900のデータ・センタ・オペレータを解放し得る。
【0191】
データ・センタ900は、1つ又は複数の機械学習モデルをトレーニングする或いは本明細書に記載の1つ又は複数の実施形態による1つ又は複数の機械学習モデルを使用して情報を予測する若しくは推論するために、ツール、サービス、ソフトウェア或いは他の資源を含み得る。たとえば、機械学習モデルは、データ・センタ900に関して前述されたソフトウェア及び/又は計算資源を使用するニューラル・ネットワーク・アーキテクチャによる重量パラメータの計算によって、トレーニングされ得る。少なくとも1つの実施形態において、1つ又は複数のニューラル・ネットワークに対応するトレーニングされた又は配備された機械学習モデルは、たとえば、本明細書に記載のものに限定されない、1つ又は複数のトレーニング技法を介して計算された重量パラメータを使用することによって、データ・センタ900に関して前述された資源を使用して情報を推論又は予測するために使用され得る。
【0192】
少なくとも1つの実施形態において、データ・センタ900は、前述の資源を使用するトレーニング及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、及び/又は他のハードウェア(若しくはそれに対応する仮想計算資源)を使用することができる。さらに、前述の1つ又は複数のソフトウェア及び/又はハードウェア資源は、情報の推論をユーザがトレーニング又は実行することを可能にするためのサービス、たとえば、画像認識、音声認識、又は他の人工知能サービス、として構成され得る。
【0193】
(例示的ネットワーク環境)
本開示の実施形態の実装において使用するのに適したネットワーク環境は、1つ若しくは複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図8の計算デバイス800の1つ又は複数のインスタンスで実装され得、たとえば、各デバイスは、計算デバイス800の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ900の一部として含まれ得、その実例は、図9に関して本明細書でさらに詳述される。
【0194】
ネットワーク環境の構成要素は、ワイヤード、ワイヤレス、又はその両方でもよい、ネットワークを介して互いに通信し得る。ネットワークは、複数のネットワーク、又は複数のネットワークのうちの1つのネットワークを含み得る。実例として、ネットワークは、1つ若しくは複数のワイド・エリア・ネットワーク(WAN)、1つ若しくは複数のローカル・エリア・ネットワーク(LAN)、1つ若しくは複数のパブリック・ネットワーク、たとえば、インターネット及び/若しくは公衆交換電話網(PSTN)、並びに/又は1つ若しくは複数のプライベート・ネットワークを含み得る。ネットワークが、ワイヤレス電気通信ネットワークを含む場合、構成要素、たとえば、基地局、通信塔、或いはアクセス・ポイント(並びに他の構成要素)、は、ワイヤレス接続を提供し得る。
【0195】
互換性のあるネットワーク環境は、1つ又は複数のピア・ツー・ピア・ネットワーク環境(その場合、サーバはネットワーク環境に含まれないことがある)と、1つ又は複数のクライアント・サーバ・ネットワーク環境(その場合、1つ又は複数のサーバがネットワーク環境に含まれ得る)とを含み得る。ピア・ツー・ピア・ネットワーク環境では、サーバに関して本明細書に記載した機能性は、任意の数のクライアント・デバイスで実装され得る。
【0196】
少なくとも1つの実施形態において、ネットワーク環境は、1つ又は複数のクラウドベースのネットワーク環境、分散型計算環境、その組合せなどを含み得る。クラウドベースのネットワーク環境は、フレームワーク層、ジョブ・スケジューラ、資源マネージャ、並びに、1つ若しくは複数のコア・ネットワーク・サーバ及び/又はエッジ・サーバを含み得る、サーバのうちの1つ又は複数で実装された分散型ファイル・システムを含み得る。フレームワーク層は、ソフトウェア層のソフトウェア及び/又はアプリケーション層の1つ若しくは複数のアプリケーションをサポートするために、フレームワークを含み得る。ソフトウェア又はアプリケーションは、それぞれ、ウェブベースのサービス・ソフトウェア又はアプリケーションを含み得る。実施形態において、クライアント・デバイスのうちの1つ又は複数は、ウェブベースのサービス・ソフトウェア又はアプリケーションを使用し得る(たとえば、1つ又は複数のアプリケーション・プログラミング・インターフェース(API)を介してサービス・ソフトウェア及び/又はアプリケーションにアクセスすることによって)。フレームワーク層は、たとえば大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システムを使用し得る、フリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。
【0197】
クラウドベースのネットワーク環境は、本明細書に記載の計算及び/又はデータ・ストレージ機能(又は1つ若しくは複数のその部分)の任意の組合せを実施するクラウド計算及び/又はクラウド・ストレージを提供し得る。これらの様々な機能のいずれも、(たとえば、州、領域、国、世界にわたって分散され得る1つ又は複数のデータ・センタなどの)セントラル又はコア・サーバから複数の場所に分散され得る。ユーザ(たとえば、クライアント・デバイス)への接続が、エッジ・サーバに比較的近い場合、コア・サーバは、機能性の少なくとも一部分をエッジ・サーバに指定し得る。クラウドベースのネットワーク環境は、プライベート(たとえば、単一の組織に制限される)でもよく、パブリック(たとえば、多数の組織に利用可能)、及び/又はその組合せ(たとえば、ハイブリッド・クラウド環境)でもよい。
【0198】
クライアント・デバイスは、図8に関して本明細書に記載の例示的計算デバイス800の構成要素、特徴、及び機能性のうちの少なくともいくつかを含み得る。実例として、及び限定ではなく、クライアント・デバイスは、パーソナル・コンピュータ(PC)、ラップトップ・コンピュータ、モバイル・デバイス、スマートフォン、タブレット・コンピュータ、スマート・ウォッチ、ウェアラブル・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、MP3プレイヤ、仮想現実ヘッドセット、全地球測位システム(GPS)又はデバイス、ビデオ・プレイヤ、ビデオカメラ、監視デバイス又はシステム、車両、ボート、飛行船、仮想マシン、ドローン、ロボット、ハンドヘルド通信デバイス、病院デバイス、ゲーミング・デバイス又はシステム、娯楽システム、車両コンピュータ・システム、組み込み型システム・コントローラ、リモート制御、器具、民生用電子デバイス、ワークステーション、エッジ・デバイス、これらの描写されたデバイスの任意の組合せ、或いは任意の他の適切なデバイスとして実施され得る。
【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
図2A
図2B
図2C
図3
図4
図5
図6
図7A
図7B
図7C
図7D
図8
図9
【外国語明細書】