(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023133062
(43)【公開日】2023-09-22
(54)【発明の名称】自律システム及びアプリケーションにおける世界モデル表現のキーフレームベースの圧縮
(51)【国際特許分類】
G08G 1/00 20060101AFI20230914BHJP
G08G 1/0968 20060101ALI20230914BHJP
G01C 21/26 20060101ALI20230914BHJP
B60W 50/00 20060101ALI20230914BHJP
B60W 60/00 20200101ALI20230914BHJP
【FI】
G08G1/00 X
G08G1/0968 B
G01C21/26 A
B60W50/00
B60W60/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022099329
(22)【出願日】2022-06-21
(31)【優先権主張番号】17/654,382
(32)【優先日】2022-03-10
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
2.ブルートゥース
3.ZIGBEE
4.LoRaWAN
5.SIGFOX
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】アカース チャンドラ シェーカー
(72)【発明者】
【氏名】マシュー アッシュマン
(72)【発明者】
【氏名】バイバブ トゥクラル
【テーマコード(参考)】
2F129
3D241
5H181
【Fターム(参考)】
2F129AA03
2F129AA05
2F129AA07
2F129AA11
2F129AA14
2F129BB03
2F129CC16
2F129EE52
2F129FF02
2F129FF11
2F129FF36
2F129FF37
2F129FF73
2F129FF75
2F129GG04
2F129GG05
2F129GG06
2F129GG17
2F129GG18
2F129HH02
2F129HH12
3D241BA43
3D241CC01
3D241CC08
3D241CC17
3D241CE04
3D241CE05
3D241DA05Z
3D241DA52Z
3D241DB02Z
5H181AA01
5H181AA05
5H181AA06
5H181AA07
5H181AA12
5H181AA25
5H181AA26
5H181AA27
5H181BB04
5H181BB05
5H181BB20
5H181CC02
5H181CC03
5H181CC04
5H181CC11
5H181CC12
5H181CC14
5H181CC24
5H181FF04
5H181FF05
5H181FF10
5H181FF13
5H181FF14
5H181FF22
5H181FF32
5H181LL01
5H181LL02
5H181LL04
5H181LL07
5H181LL08
5H181LL09
(57)【要約】
【課題】世界モデル・システム及びアプリケーションのキーフレームベースの圧縮を提供すること。
【解決手段】様々な実例で、方法は、現在のキーフレームを計算するステップを含み、現在のキーフレームは、マップ・データに基づいて現在時刻における自律型車両の周りのエリアを表す。方法は、現在のキーフレームの計算を完了することより前の第1の時間において先行キーフレームを自律型車両の座標フレームに変換して第1の世界モデル・フレームを生成するステップを含む。方法は、第1の時間の後、現在のキーフレームの計算の完了より前の第2の時間において先行キーフレームを自律型車両の座標フレームに変換して第2の世界モデル・フレームを生成するステップを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
現在のキーフレームを計算するステップであって、前記現在のキーフレームは、マップ・データに基づいて現在時刻における自律型車両の周りのエリアを表している、ステップと、
前記現在のキーフレームの計算を完了することより前の第1の時間において先行キーフレームを前記自律型車両の座標フレームに変換して、第1の世界モデル・フレームを生成するステップと、
前記第1の時間の後、前記現在のキーフレームの計算を完了することより前の第2の時間において、前記先行キーフレームを前記自律型車両の前記座標フレームに変換して、第2の世界モデル・フレームを生成するステップと
を含む、方法。
【請求項2】
前記先行キーフレームに適用するための変換を決定するステップをさらに含み、前記先行キーフレームを前記自律型車両の前記座標フレームに変換するステップが、前記決定された変換を使用して前記先行キーフレームを前記自律型車両の前記座標フレームに変換するステップを含む、請求項1に記載の方法。
【請求項3】
前記現在のキーフレームを計算するステップが、前記現在時刻における前記自律型車両の周りの前記エリア内の1つ又は複数の車線を表す車線グラフに基づいて前記現在のキーフレームを計算するステップを含む、請求項1に記載の方法。
【請求項4】
高解像度(HD)マップの部分から前記車線グラフを生成するステップをさらに含み、前記生成するステップが、前記HDマップの前記部分を使用して前記自律型車両の周りの有効な車線の収集を増分的に増大させるステップを含む、請求項3に記載の方法。
【請求項5】
前記自律型車両の周りの有効な車線の前記収集を前記増分的に増大させるステップが、複数のフレーム内の少なくとも2つの順次的フレームについて、
前記自律型車両のホライズン内に残る先行フレームからの少なくとも1つの車線を前記収集において保持するステップであって、前記ホライズンは、前記自律型車両を中心とする既定のエリアの外周として表されている、ステップと、
新しく前記ホライズン内の各車線を前記収集に追加するステップと、
前記ホライズン内にもはやない前記先行フレームに保持された又は追加された少なくとも1つの車線を前記収集から取り除くステップと
を含む、請求項4に記載の方法。
【請求項6】
前記有効な車線の増分的に増大した収集が、第1の有効な車線バッファを使用して記憶され、前記方法がさらに、有効な車線の現在の増分的に増大した収集を使用して第2の有効な車線バッファに投入するステップを含む、請求項4に記載の方法。
【請求項7】
前記先行キーフレームが、第1の世界モデル・バッファを使用して記憶され、前記方法がさらに、前記現在のキーフレームを使用して第2の世界モデル・バッファに投入するステップを含む、請求項1に記載の方法。
【請求項8】
前記現在のキーフレームを計算するステップの後に、前記現在のキーフレームが、新しい先行キーフレームとして前記第2の世界モデル・バッファに記憶され、前記方法がさらに、前記現在のキーフレームを計算するステップの後に、
追加のマップ・データに少なくとも部分的に基づいて前記自律型車両の周りのエリアを表す次のキーフレームを計算するステップと、
前記第1の世界モデル・バッファに前記次のキーフレームを投入するステップと、
前記次のキーフレームの計算を完了することより前の第3の時間において、前記自律型車両の前記座標フレームに、前記第2の世界モデル・バッファを使用して記憶された前記新しい先行キーフレームを変換するステップと、
前記第3の時間の後、前記次のキーフレームの計算を完了することより前の第4の時間において、前記自律型車両の前記座標フレームに、前記第2の世界モデル・バッファに記憶された前記新しい先行キーフレームを変換するステップと
を含む、請求項7に記載の方法。
【請求項9】
マップ・データに基づいて自律型車両の周りの1つ又は複数のエリアを表す複数のキーフレームを、第1の周波数において、計算するステップと、
複数の世界モデル・フレームが少なくとも1つの世界モデル・キーフレームから生成されるように、前記第1の周波数より大きい第2の周波数で、直近のキーフレームを前記自律型車両の前記座標フレームに変換して前記複数の世界モデル・フレームを生成するステップと
を含む、方法。
【請求項10】
前記直近のキーフレームに適用するための1つ又は複数の変換を、経時的に及び前記第2の周波数で決定するステップをさらに含み、前記直近のキーフレームを前記自律型車両の前記座標フレームに変換するステップが、前記決定された1つ又は複数の変換に従って前記直近のキーフレームを前記自律型車両の前記座標フレームに変換するステップを含む、請求項9に記載の方法。
【請求項11】
前記マップ・データに基づいて前記複数のキーフレームを前記計算するステップが、複数の車線グラフに基づいて前記複数の世界モデル・キーフレームを計算するステップを含む、請求項9に記載の方法。
【請求項12】
高解像度(HD)マップの複数の部分から前記複数の車線グラフを生成するステップをさらに含み、前記生成するステップが、前記HDマップの前記複数の部分から前記自律型車両の周りの有効な車線の収集を増分的に増大させるステップを含む、請求項11に記載の方法。
【請求項13】
前記自律型車両の周りの有効な車線の前記収集を増分的に増大させるステップが、複数のフレーム内の少なくとも2つの順次的フレームについて、
前記自律型車両のホライズン内に残る先行フレームからの少なくとも1つの車線を前記収集において保持するステップであって、前記ホライズンは、前記自律型車両を中心とする既定のエリアの外周として表されている、ステップと、
新しく前記ホライズン内の各車線を前記収集に追加するステップと、
前記ホライズン内にもはやない前記先行フレームに保持された又は追加された少なくとも1つの車線を前記収集から取り除くステップと
を含む、請求項12に記載の方法。
【請求項14】
現在増分的に増大している有効な車線の収集を第1の有効な車線バッファ及び第2の有効な車線バッファに交互に投入するステップをさらに含み、
有効な車線の直近の増分的に増大した収集が前記第2の有効な車線バッファに記憶されるときに、前記第1の有効な車線バッファに、現在増分的に増大している前記有効な車線の収集が投入され、及び、
前記有効な車線の直近の増分的に増大した収集が前記第1の有効な車線バッファに記憶されるときに、前記第2の有効な車線バッファに、現在増分的に増大している前記有効な車線の収集が投入される
請求項12に記載の方法。
【請求項15】
前記複数のキーフレームを第1の世界モデル・バッファ及び第2の世界モデル・バッファに交互に投入するステップをさらに含み、
前記直近のキーフレームが前記第2の世界モデル・バッファに記憶されるとき、前記第1の世界モデル・バッファに、現在計算されているキーフレームが投入され、及び、
前記直近のキーフレームが前記第1の世界モデル・バッファに記憶されるとき、前記第2の世界モデル・バッファに、前記現在計算されているキーフレームが投入される、
請求項9に記載の方法。
【請求項16】
前記第1の周波数対前記第2の周波数で前記複数のキーフレームを計算することの圧縮率が、前記自律型車両の速度に依存し、少なくとも10:1である、請求項9に記載の方法。
【請求項17】
前記第1の周波数対前記第2の周波数で前記複数の世界モデル・キーフレームを計算することの圧縮率が、前記自律型車両の速度に依存し、少なくとも40:1である、請求項9に記載の方法。
【請求項18】
第1の世界モデル・バッファと、
第2の世界モデル・バッファと、
前記第1の世界モデル・バッファ及び前記第2の世界モデル・バッファのそれぞれに連結された世界モデル・プロデューサ・ノードであって、マップ・データに基づいて第1の周波数で自律型車両の周りの1つ又は複数のエリアを表す複数のキーフレームを計算し、前記複数のキーフレームを前記第1の世界モデル・バッファ及び前記第2の世界モデル・バッファに交互に投入するための前記世界モデル・プロデューサ・ノードと、
前記第1の世界モデル・バッファ又は前記第2の世界モデル・バッファに記憶された直近のキーフレームを、前記第1の周波数より大きい第2の周波数で前記自律型車両の座標フレームに変換するための、前記第1の世界モデル・バッファ及び前記第2の世界モデル・バッファのそれぞれに連結された世界モデル・トランスフォーマ・ノードと
を実装するための1つ又は複数のプロセッサ
を備える、システム。
【請求項19】
前記1つ又は複数のプロセッサは、前記直近のキーフレームに適用する複数の変換を前記第2の周波数で決定するための、前記第1の世界モデル・バッファ及び前記第2の世界モデル・バッファのそれぞれに連結された世界モデル姿勢計算ノードをさらに実装し、前記世界モデル・トランスフォーマ・ノードが、前記世界モデル姿勢計算ノードによって決定された対応する変換に従って前記直近のキーフレームを変換する、請求項18に記載のシステム。
【請求項20】
前記1つ又は複数のプロセッサがさらに、
前記世界モデル・プロデューサ・ノードに連結された第1の有効な車線バッファと、
前記世界モデル・プロデューサ・ノードに連結された第2の有効な車線バッファと
を実装し、
前記世界モデル・プロデューサ・ノードが、現在時刻における前記自律型車両の周りの前記エリア内の1つ又は複数の車線を表す車線グラフであって、現在有効な車線の収集を前記第1の有効な車線バッファ及び前記第2の有効な車線バッファに交互に投入することによって増分的に増大させた車線グラフに基づいて、前記複数のキーフレームを計算する、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して自律型車両の世界モデルに関し、より詳細には、キーフレームに基づく世界モデル・データの圧縮に関する。
【背景技術】
【0002】
自動運転車、運転者の要らない車、高度運転者支援車両、又はロボット車としても知られる、自律及び半自律型車両は、通常は、人間運転者が車両を連続して監視、制御、及び/又は直接操作する必要なしにソース位置から目的地位置にそれらをナビゲートすることを可能にする機能性を備える。運転の自動化は、いくつかの理由により、難しい。たとえば、自律型車両は、センサを使用して臨機応変に運転決定を行うが、車両センサは、すべてを常に観測できるとは限らない。車両センサは、コーナー、なだらかな丘、及び他の車両、眩しい光、物体、或いは道路ユーザ(歩行者、動物、自転車に乗った人など)によって見えなくなる又は閉塞される可能性がある。車両センサからの入力は、適切な決定を行うための自律計画立案又は制御機能性のために十分に早期に又は速く処理されないことがある。加えて、車線及び標識は、道路上で見つからない又は押し倒されている又は茂みに隠れていることがあり、それにより、センサによって検出不可能なことがある。さらに、先行権の道路標識は、どこから車両が来ている可能性があるかを判定するために、又は緊急時に若しくは通過されなければならない停止した障害物があるときに車線からそれる若しくは出るために容易に可視でないことがある。
【0003】
自律型車両は、センサ・データに厳密に依拠する代わりに又はそれに加えて、リアルタイムで前述の情報のうちのいくつかを決定又は確証するために必要とされる処理のうちのいくつかを軽減するために正確なマップ・データを使用することができる。たとえば、自律型車両は、マップ・データを使用して、自律型車両の座標フレームと位置合わせされた世界モデルを構築することができる。自律型車両の安全なナビゲーションのために、世界モデル・フレームは、通常は、毎秒約30世界モデル・フレームのレートで計算される。大きなデータ・サイズの世界モデル・フレームは、自律型車両でかなりの通信、処理、及び/又はストレージ資源を消費し得る。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の実施例は、世界モデル(WM:world model)システム及びアプリケーションのキーフレームベースの圧縮に関する。
【0005】
例示的実施例において、方法は、マップ・データに基づいて現在時刻における自律型車両の周りのエリアを表す現在のキーフレームを計算するステップを含む。方法はまた、現在のキーフレームの計算を完了する前の第1の時間において先行キーフレームを自律型車両の座標フレームに変換して第1のWMフレームを生成するステップを含む。方法はまた、第1の時間の後、現在のキーフレームの計算の完了より前の第2の時間において先行キーフレームを自律型車両の座標フレームに変換して第2のWMフレームを生成するステップを含む。
【0006】
別の例示的実施例において、方法は、マップ・データに基づいて自律型車両の周りの1つ又は複数のエリアを表す複数のキーフレームを、第1の周波数において、計算するステップを含む。方法はまた、複数のWMフレームが少なくとも1つのキーフレームから生成されるように、第1の周波数より大きい第2の周波数で、直近のキーフレームを自律型車両の座標フレームに変換してフレームを生成するステップを含む。
【0007】
別の例示的実施例において、システムは、第1の及び第2のWMバッファ、WMプロデューサ・ノード、及びWMトランスフォーマ・ノードを実装するために、1つ又は複数のプロセッサを含む。WMプロデューサ・ノードは、マップ・データに基づいて第1の周波数で自律型車両の周りの1つ又は複数のエリアを表すキーフレームを計算するために、並びにキーフレームを第1のWMバッファ及び第2のWMバッファに交互に投入するために、第1の及び第2のWMバッファのそれぞれに連結される。WMトランスフォーマ・ノードは、自律型車両の座標フレームに、第1のWMバッファ又は第2のWMバッファに記憶された直近のキーフレームを第1の周波数より大きい第2の周波数で経時的に変換するために、第1の及び第2のWMバッファのそれぞれに連結される。
【0008】
WMキーフレームベースの圧縮のための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
【図面の簡単な説明】
【0009】
【
図1】本開示の1つ又は複数の実施例による、複数の車両と相互作用し得るHDマップ・システムの例示的全体的システム環境を示す図である。
【
図2】本開示の1つ又は複数の実施例による、
図1のシステム環境に含まれ得る車両計算システムの例示的システム・アーキテクチャを示す図である。
【
図3】本開示の1つ又は複数の実施例による、
図1の車両計算システムのHDマップAPIにおける命令の様々な層の一実例を示す図である。
【
図4】本開示の1つ又は複数の実施例による、
図1のシステム環境に含まれ得るオンラインHDマップ・システムの例示的システム・アーキテクチャを示す図である。
【
図5】本開示の1つ又は複数の実施例による、HDマップの例示的構成要素を示す図である。
【
図6A】本開示の1つ又は複数の実施例による、HDマップにおいて定義され得る例示的地理的領域を示す図である。
【
図6B】本開示の1つ又は複数の実施例による、HDマップにおいて定義され得る例示的地理的領域を示す図である。
【
図7】本開示の1つ又は複数の実施例による、HDマップにおける例示的車線表現を示す図である。
【
図8A】本開示の1つ又は複数の実施例による、HDマップにおける例示的車線要素及び車線要素間の関係を示す図である。
【
図8B】本開示の1つ又は複数の実施例による、HDマップにおける例示的車線要素及び車線要素間の関係を示す図である。
【
図9A】本開示の1つ又は複数の実施例による、WMフレームを計算するための例示的アーキテクチャを示す図である。
【
図9B】本開示の1つ又は複数の実施例による、
図9Aのアーキテクチャの車線コレクタ、セグメント・グラフ・プロデューサ、及び/又は他の構成要素によって実装され得る方法を示す流れ図である。
【
図9C】本開示の1つ又は複数の実施例による、WMフレームを生成するための方法を示す図である。
【
図10】本開示の1つ又は複数の実施例による、単純なHDマップからの例示的LaneGraph計算を示す図である。
【
図11A】本開示の1つ又は複数の実施例による、移動する自律型車両又はリグの
図10のHDマップからの例示的LaneGraph計算を示す図である。
【
図11B】本開示の1つ又は複数の実施例による、移動する自律型車両又はリグの
図10のHDマップからの例示的LaneGraph計算を示す図である。
【
図12】本開示の1つ又は複数の実施例による、
図9Aのアーキテクチャに含まれ得る3つのノードを有するWMジェネレータの例示的実装形態を示す図である。
【
図13】本開示の1つ又は複数の実施例による、WMフレームを生成するための方法を示す流れ図である。
【
図14】本開示の1つ又は複数の実施例による、WMフレームを生成するための別の方法を示す流れ図である。
【
図15A】本開示のいくつかの実施例による、例示的自律型車両のイラストレーションである。
【
図15B】本開示のいくつかの実施例による、
図15Aの例示的自律型車両のカメラ位置及び視野の実例である。
【
図15C】本開示のいくつかの実施例による、
図15Aの例示的自律型車両の例示的システム・アーキテクチャのブロック図である。
【
図15D】本開示のいくつかの実施例による、クラウドベースのサーバと
図15Aの例示的自律型車両との間の通信のシステム図である。
【
図16】本開示のいくつかの実施例の実装において使用するのに適した例示的コンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0010】
自律型車両における大きなデータ・サイズを有するマップ・データの処理に関する、システム及び方法が、開示される。1つ又は複数の実施例において、マップ・データは、車線、交通標識及び信号、待機条件、並びに同類のものを含むことができ、自律型車両の周りの世界モデルを構築するために自律型車両において使用され得る。一般に、各マップベースの世界モデルの静的コンテンツは、比較的ゆっくりと変化する、及びそのようなものとしてあらゆるフレームについて生成される必要はない、コンテンツである。したがって、いくつかの実施例は、自律型車両のデータの生成を、より高いレイテンシを有するタスクがより低いレイテンシを有するタスクよりも少ない頻度で実行される複数のタスクへと分ける。たとえば、データの生成は、より高いレイテンシのより低い周波数の世界モデル・キーフレーム生成タスクとより低いレイテンシのより高い周波数の変換タスクとに分けられ得る。別法として又は追加で、タスクは、より低いレイテンシのより高い周波数の変換計算タスクを含み得る。これらのタスクは、時間とともに繰り返す又は反復することができる。
【0011】
例示的実施例において、自律型車両の周りの世界モデル・キーフレームは、車線グラフなどのマップ・データに基づいて経時的に及び第1の周波数で計算される。任意の所与の時間における直近の世界モデル・キーフレームは、複数の世界モデル・フレームが各世界モデル・キーフレームから生成されるように、複数の世界モデル・フレームを生成するために、自律型車両の座標フレームに経時的に及び第1の周波数より大きい第2の周波数で変換される。別の例示的実施例において、自律型車両の周りの現在の世界モデル・キーフレームは、マップ・データに基づいて計算される。先行する世界モデル・キーフレームは、第1の世界モデル・フレームを生成するために現在の世界モデル・キーフレームの計算を完了するより前に第1の時間において自律型車両の座標フレームに変換され得る。先行する世界モデル・キーフレームはまた、第2の世界モデル・フレームを生成するために、第1の時間の後の第2の時間において及び現在の世界モデル・キーフレームの計算を完了するより前に自律型車両の座標フレームに変換され得る。両方の例示的実施例において、世界モデル・キーフレームのより高いレイテンシの計算は、世界モデル・フレームのより低いレイテンシの生成より少ない周波数で実行される。
【0012】
いくつかの実施例は、世界モデル・キーフレームのための二重バッファを実装し得る。たとえば、世界モデル・キーフレームは、それらが計算されるとき、第1の世界モデル・バッファ又は第2の世界モデル・バッファにおいて交互に投入され得る。現在の世界モデル・キーフレームが、第1の又は第2の世界モデル・バッファにおいて計算及び投入されている間、第2の又は第1の世界モデル・バッファのうちの他方における先行する又は直近に計算された世界モデル・キーフレームは、世界モデル・フレームを生成するために、自律型車両の座標フレームに繰り返し変換される。本明細書に記載のいくつかの実施例の圧縮率は、自律型車両の速度に依存し得る。たとえば、圧縮率は、自律型車両が約144.8キロメートル(90マイル)/時(mph)又は約40メートル/秒(m/s)で移動しているとき、少なくとも10:1(たとえば、10:1、12:1、20:1、又は第1の数が第2の数の少なくとも10倍である任意の他の比率)でもよい。別法として又は追加で、圧縮率は、自律型車両が約22mph又は約10m/sで移動しているとき、少なくとも40:1(たとえば、40:1、45:1、50:1、又は第1の数が第2の数の少なくとも40倍である任意の他の比率)でもよい。
【0013】
図1は、本開示の1つ又は複数の実施例による、複数の車両と相互作用し得るHDマップ・システム100の例示的全体的システム環境を示す。HDマップ・システム100は、HDマップ・システム100の2台以上の車両150(たとえば、車両150A~150D)と相互作用し得るオンラインHDマップ・システム110を備え得る。車両150は、自律型車両、半自律型車両、又は非自律型車両でもよい。車両150の例示的実施例は、
図15A~15Dに関して図解及び記述されている。本明細書に記載のこの及び他の構成は、単に実例として説明されていることを理解されたい。他の構成及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素はともに除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の若しくは分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び位置において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【0014】
図1を続けて参照すると、オンラインHDマップ・システム110は、車両150の車両センサ105(たとえば、105A~105D)によってキャプチャされ得るセンサ・データを受信し車両150から受信されたデータを結合してHDマップを生成及び保持するように構成され得る。オンラインHDマップ・システム110は、車両150を運転する際に使用するために車両150にHDマップ・データを送るように構成され得る。いくつかの実施例において、オンラインHDマップ・システム110は、分散型計算システム、たとえば、車両計算システム120(たとえば、車両計算システム120A~120D)などのクライアントが情報及びサービスの要求を行うことを可能にし得るクラウドベースのサービス、として実装され得る。たとえば、車両計算システム120は、ルートに沿って運転するためのHDマップ・データの要求を行うことができ、オンラインHDマップ・システム110は、要求されたHDマップ・データを車両計算システム120に提供し得る。車両計算システム120は、オンラインHDマップ・システム110から受信されたHDマップ・データに関して世界モデル・キーフレームベースの圧縮を実装し得る。
【0015】
図1及びその他の図は、類似の参照数詞を使用して類似の要素を識別する。「105A」などの参照数詞の後の文字は、その特定の参照数詞を有する要素をテキストが具体的に参照する、ということを示す。「105」などの後に続く文字を有さないテキスト内の参照数詞は、その参照数詞を有する図内の要素のいずれか又はすべてを参照する(たとえば、テキスト内の「105」は、図内の参照数詞「105A」及び/又は「105N」を参照する)。
【0016】
オンラインHDマップ・システム110は、車両インターフェース・モジュール160及びHDマップ・ストア165を備え得る。オンラインHDマップ・システム110は、車両インターフェース・モジュール160を使用して様々な車両150の車両計算システム120と相互作用するように構成され得る。オンラインHDマップ・システム110は、HDマップ・ストア165において様々な地理的領域のマップ情報を記憶するように構成され得る。オンラインHDマップ・システム110は、
図1に示されたもの以外のモジュール、たとえば、
図4に示す及び本明細書でさらに記述されるような様々な他のモジュール、を含むように構成され得る。
【0017】
本開示において、モジュールは、対応するシステム(たとえば、対応する計算システム)がそこで記述される動作のうちの1つ又は複数を実行することを可能にするように構成されたコード及びルーティンを含み得る。追加で又は別法として、任意の所与のモジュールが、任意の数のプロセッサ、マイクロプロセッサ(たとえば、1つ又は複数の動作のパフォーマンスを実行又は制御するための)、フィールドプログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)又はその2個以上の任意の適切な組合せを含むハードウェアを使用して実装され得る。別法として又は追加で、任意の所与のモジュールが、ハードウェア及びソフトウェアの組合せを使用して実装され得る。本開示において、モジュールによって実行されるものとして記述された動作は、モジュールが対応するシステムに実行するように指示し得る動作を含み得る。
【0018】
さらに、本開示において示された異なるモジュールの区別及び分離は、実行される動作の説明を助けるためであり、限定を意図されていない。たとえば、実装形態に応じて、本開示において記述されるモジュールのうちの2個以上に関して記述された動作は、同じモジュールと考えられ得るものによって、実行され得る。さらに、モジュールのうちの1つ又は複数の動作は、実装形態に応じて1つ又は複数の他のモジュール又はサブモジュールと考えられ得るものの間で分割され得る。
【0019】
オンラインHDマップ・システム110は、2台以上の車両150、たとえば、数百又は数千の自動車、のセンサによって収集されたセンサ・データを受信するように構成され得る。センサ・データは、HDマップの生成に関連し得る車両のセンサによって取得され得る任意のデータを含み得る。たとえば、センサ・データは、LIDARデータ、キャプチャされた画像などを含み得る。追加で又は別法として、センサ・データは、車両150の現在の状態を記述し得る情報、車両150の位置及び運動パラメータなどを含み得る。
【0020】
車両150は、様々なルートに沿って運転しながらキャプチャされ得るセンサ・データ115を提供するように及びオンラインHDマップ・システム110にそれを送信するように構成され得る。オンラインHDマップ・システム110は、車両150から受信されたセンサ・データ115を使用して車両150が運転している可能性のある領域を記述するHDマップを作成及び更新するように構成され得る。オンラインHDマップ・システム110は、車両150から受信され得る集合的センサ・データ115に基づいて高解像度マップを構築するように及びHDマップ・ストア165にHDマップ情報を記憶するように構成され得る。前述は、HDマップを生成するための1つの方法を説明する。より一般的には、本明細書に記載のHDマップは、前述の及び/又は他の適切な方法を使用して、生成され得る。
【0021】
オンラインHDマップ・システム110は、車両150の要求によりHDマップ・データ125を車両150に送るように構成され得る。
【0022】
たとえば、特定の車両150がルートに沿って運転するようにスケジュールされたインスタンスで、特定の車両150の特定の車両計算システム120は、移動されているルートを記述する情報をオンラインHDマップ・システム110に提供するように構成され得る。応答して、オンラインHDマップ・システム110は、特定の車両150によるルートに沿ったナビゲーション及び運転を容易にし得るルートに関連する(たとえば、ルートを含むエリアを表す)HDマップのHDマップ・データ125を提供するように構成され得る。
【0023】
一実施例において、送信されるデータが、より少ない帯域幅を消費し得るように、オンラインHDマップ・システム110は、圧縮フォーマットで車両150にHDマップ・データの部分を送るように構成され得る。オンラインHDマップ・システム110は、車両150のローカルHDマップ・ストア(たとえば、
図2のローカルHDマップ・ストア275)に記憶され得るHDマップ・データを説明する情報を、様々な車両150から、受信するように構成され得る。
【0024】
いくつかの実施例において、オンラインHDマップ・システム110は、特定の車両150が、特定の車両150の特定の車両計算システム120のローカルHDマップ・ストアにおいてローカルに記憶されたHDマップ・データのある特定の部分を有さない可能性がある、と判定し得る。これらの又は他の実施例において、そのような判定に応答して、オンラインHDマップ・システム110は、車両150にHDマップ・データのある部分を送るように構成され得る。
【0025】
いくつかの実施例において、オンラインHDマップ・システム110は、特定の車両150が、HDマップ・データの特定の部分と同じ地理的エリアに関する前に受信されたHDマップ・データを有し得る、と判定し得る。これらの又は他の実施例において、オンラインHDマップ・システム110は、HDマップ・データの特定の部分が、特定の車両150が前のHDマップ・データを最後に受信してからオンラインHDマップ・システム110によって更新された以前受信されたHDマップ・データの更新バージョンであり得る、と判定し得る。いくつかの実施例において、オンラインHDマップ・システム110は、特定の車両150に記憶され得るHDマップ・データのその部分の更新を送信し得る。これは、オンラインHDマップ・システム110が、車両150と通信され得るHDマップ・データの量を減らす又は最小限にすることと、さらに定期的に更新された車両においてローカルに記憶されたHDマップ・データを保持することとを可能にし得る。
【0026】
車両150は、車両センサ105(たとえば、車両センサ105A~D)、車両制御装置130(たとえば、車両制御装置130A~130D)、及び車両計算システム120(たとえば、車両コンピュータ・システム120A~120D)を含み得る。車両センサ105は、車両150の周囲を検出するように構成され得る。これらの又は他の実施例において、車両センサ105は、車両150の現在の状態を記述する情報、たとえば、車両150の位置及び運動パラメータを記述する情報、を検出し得る。
【0027】
車両センサ105は、カメラ、光検出及び測距センサ(LIDAR)、全地球的航法衛星システム(GNSS)受信器、たとえば、グローバル・ポジショニング・システム(GPS)ナビゲーション・システム、慣性計測装置(IMU:inertial measurement unit)、及びその他を備え得る。車両センサ105は、車両の周囲の画像をキャプチャし得る1つ又は複数のカメラを含み得る。LIDARは、レーザー光パルスでその目標を照らすこと及び反射パルスを測定することによって目標までの距離を測定することによって、車両の周囲を調査し得る。GPSナビゲーション・システムは、衛星からの信号に基づいて車両150の位置を判定し得る。IMUは、加速度計及びジャイロスコープ又は他の測定器の組合せを使用してベロシティ、加速、運動の方向、速度、角速度などの車両150の運動データを測定及び報告するように構成され得る電子デバイスを含み得る。
【0028】
車両制御装置130は、車両150の物理運動、たとえば、加速、方向変更、始動、停止など、を制御するように構成され得る。車両制御装置130は、加速装置、ブレーキ、ハンドルなどを制御するための機械類を含み得る。車両計算システム120は、定期的及び/又は継続的に車両制御装置130に制御信号を提供することができ、車両150を選択されたルートに沿って運転させることができる。
【0029】
車両計算システム120は、センサによって収集されたデータ並びにオンラインHDマップ・システム110から受信されたマップ・データを処理することを含む様々なタスクを実行するように構成され得る。車両計算システム120はまた、オンラインHDマップ・システム110に送るためのデータを処理するように構成され得る。車両計算システム120の一実例が、
図2においてさらに図解され、
図2に関してさらに説明される。
【0030】
車両計算システム120とオンラインHDマップ・システム110との相互作用が、ネットワークを介して、たとえば、インターネットを介して、実行され得る。ネットワークは、車両計算システム120とオンラインHDマップ・システム110との通信を可能にするように構成され得る。いくつかの実施例において、ネットワークは、標準通信技術及び/又はプロトコルを用いるように構成され得る。ネットワークを介して交換されるデータは、ハイパテキスト・マークアップ言語(HTML)、拡張マークアップ言語(XML)などを含む技術及び/又はフォーマットを使用して表され得る。加えて、リンクのすべて又はいくつかは、セキュア・ソケット・レイヤ(SSL)、トランスポート・レイヤ・セキュリティ(TLS)、仮想プライベート・ネットワーク(VPN)、インターネット・プロトコル・セキュリティ(IPsec)などの従来の暗号技術を使用して、暗号化され得る。いくつかの実施例において、エンティティは、カスタム及び/又は専用データ通信技術を使用し得る。
【0031】
車両計算システム
図2は、本開示の1つ又は複数の実施例による、車両計算システム120の例示的システム・アーキテクチャを示す。車両計算システム120は、認知モジュール210、予測モジュール215、計画立案モジュール220、制御モジュール225、ローカルHDマップ・ストア275、HDマップ・システム・インターフェース280、マップ矛盾モジュール290、及びHDマップ・アプリケーション・プログラミング・インターフェース(API)205を含み得る。車両計算システム120の様々なモジュールが、センサ・データ230、ビヘイビア・モデル235、ルート240、及び物理制約245を含む様々なタイプのデータを処理するように構成され得る。いくつかの実施例において、車両計算システム120は、より多数の又はより少数のモジュールを含み得る。特定のモジュールによって実装されるものとして記述された機能性は、他のモジュールによって実装され得る。
【0032】
図2及び
図1を参照すると、いくつかの実施例において、車両計算システム120は、認知モジュール210を含み得る。認知モジュール210は、車両150の車両センサ105からセンサ・データ230を受信するように構成され得る。センサ・データ230は、自動車のカメラ、LIDAR、IMU、GPSナビゲーション・システムなどによって収集されたデータを含み得る。認知モジュール210はまた、対応する車両150の周りにどんな物体があるか、対応する車両150が移動している道路の詳細などを判定するためにセンサ・データ230を使用するように構成され得る。加えて、認知モジュール210は、センサ・データ230を処理してセンサ・データ230を記憶するデータ構造体に投入するように及び情報又は命令を車両計算システム120の予測モジュール215に提供するように構成され得る。
【0033】
予測モジュール215は、物体が移動している可能性がある又は移動しそうかを判定するために認知された物体のビヘイビアモデル(235)を使用して認知モジュール210によって提供されるデータを解釈するように構成され得る。たとえば、予測モジュール215は、車両、人々などとして識別された物体は動いている又は動きそうであるかもしれないのに対して、道路標識を表す物体は動きそうにないかもしれないと判定し得る。予測モジュール215はまた、それらが動きそうかどうかを判定するために、様々なタイプの物体のビヘイビア・モデル235を使用するように構成され得る。加えて、予測モジュール215は、対応する車両150が次に取り得るその後のアクションを計画するために、様々な物体の予測を車両計算システム120の計画立案モジュール200に提供するように構成され得る。
【0034】
計画立案モジュール220は、予測モジュール215からの対応する車両150の周囲について記述する情報と、車両150の目的地を示す又は決定する、及び目的地に到着するために車両150が取り得る進路を示し得る、ルート240とを受信するように構成され得る。
【0035】
計画立案モジュール220はまた、予測モジュール215からの情報及びルート240を使用して、車両150が短い時間間隔内、たとえば、次の数秒以内、に取り得るアクションのシーケンスを計画するように構成され得る。いくつかの実施例において、計画立案モジュール220は、車両150が次に運転して通り抜け得る近くの位置を表す1つ又は複数のポイントとしてアクションのシーケンスを指定するように構成され得る。計画立案モジュール220は、対応する車両150によって取られることになるアクションのシーケンスを含む計画の詳細を、制御モジュール225に、提供するように構成され得る。計画は、対応する車両150の1つ又は複数のその後のアクション、たとえば、対応する車両150が車線変更、転回、速度を増すことによる加速又は減速することなどを実行し得るかどうか、を示し得る。
【0036】
制御モジュール225は、計画立案モジュール220から受信され得る計画に基づいて対応する車両150の車両制御装置130に送られ得る制御信号を決定するように構成され得る。たとえば、対応する車両150が、ポイントAに現在あり、計画が、対応する車両150は近くのポイントBに次に進むべきであると指定する場合、制御モジュール225は、対応する車両150を安全でスムーズなやり方で、たとえば、ポイントAからポイントBまでに急な転回又はジグザグな進路を取らずに、ポイントAからポイントBに進ませ得る車両制御装置130の制御信号を決定することができる。ポイントAからポイントBに進むために対応する車両150によって取られ得る進路は、対応する車両150の現在の速度及び方向並びにポイントAに対するポイントBの位置に依存し得る。たとえば、対応する車両150の現在の速度が速い場合、対応する車両150は、ゆっくりと運転する別の車両と比較してより広い転回を行い得る。
【0037】
制御モジュール225はまた、入力として物理制約245を受信するように構成され得る。物理制約245は、対応する車両150の物理能力を含み得る。たとえば、特定の型及びモデルを有する対応する車両150は、異なる型及びモデルを有する別の車両は安全に行うことができないことがある加速及び転回などのある特定のタイプの車両運動を安全に行うことができ得る。加えて、制御モジュール225は、対応する車両150の車両制御装置130の制御信号を決定する際に物理制約245を組み込むように構成され得る。加えて、制御モジュール225は、指定されたシーケンスのアクションを車両150に実行させ得る及び所定のセットのアクションに従って計画されたように対応する車両150を移動させ得る車両制御装置130への制御信号を送るように構成され得る。いくつかの実施例において、前述のステップは、数秒ごとに絶えず繰り返され得、対応する車両150のために計画されていてもよいルートに沿って対応する車両150に安全に運転させ得る。
【0038】
認知モジュール210、予測モジュール215、及び計画立案モジュール220を含む車両計算システム120の様々なモジュールは、マップ情報を受信してそれのそれぞれの計算を実行するように構成され得る。対応する車両150は、HDマップ・データをローカルHDマップ・ストア275に記憶し得る。車両計算システム120のモジュールは、HDマップ・アプリケーション・プログラミング・インターフェース(API)205を使用してHDマップ・データと相互作用し得る。
【0039】
HDマップAPI205は、マップ情報にアクセスするためのモジュールによって呼び出され得る1つ又は複数のアプリケーション・プログラミング・インターフェース(API)を提供し得る。HDマップ・システム・インターフェース280は、車両計算システム120がネットワーク(図示せず)を介してオンラインHDマップ・システム110と相互作用することを可能にするように構成され得る。ローカルHDマップ・ストア275は、オンラインHDマップ・システム110によって指定され得るフォーマットでマップ・データを記憶し得る。HDマップAPI205は、オンラインHDマップ・システム110によって提供されるものとしてのマップ・データ・フォーマットを処理する能力を有するように構成され得る。HDマップAPI205は、HDマップ・データと相互作用するためのインターフェースを車両計算システム120に提供するように構成され得る。HDマップAPI205は、ローカリゼーションAPI250、ランドマーク・マップAPI255、ルートAPI270、3DマップAPI265、マップ更新API285などを含むいくつかのAPIを含み得る。
【0040】
ローカリゼーションAPI250は、対応する車両150の現在の位置、たとえば、対応する車両150が所与のルートに関わる場所、を判定するように構成され得る。ローカリゼーションAPI250は、HDマップ内及び特定の精度内で対応する車両150の位置を判定するローカライズされたAPIを含むように構成され得る。車両計算システム120は、他のクエリ、たとえば、特徴クエリ、ナビゲート可能な空間クエリ、及び本明細書でさらに説明される占有マップ・クエリ、を行うための正確な(たとえば、ある特定のレベルの精度内の)相対位置としてその位置を使用するように構成され得る。
【0041】
ローカリゼーションAPI250は、GPSによって提供される位置、IMUによって提供される車両運動データ、LIDARスキャナ・データ、カメラ画像などのうちの1つ又は複数を含む入力を受信するように構成され得る。ローカリゼーションAPI250は、緯度及び経度座標として対応する車両150の正確な位置を返すように構成され得る。ローカリゼーションAPI250によって返され得る座標は、入力として使用されるGPS座標と比べてより正確であり得、たとえば、ローカリゼーションAPI250の出力は、2~30cmの精度測距を有し得る。いくつかの実施例において、車両計算システム120は、スキャナ・データ、たとえば、10ヘルツ(Hz)の周波数における、を使用するLIDARに基づいて対応する車両150の位置を周期的に判定するためにローカリゼーションAPI250を呼び出すように構成され得る。
【0042】
車両計算システム120は、GPS又はIMUデータがそのレートで利用可能である場合、より高いレート(たとえば、60Hz)で車両位置を判定するためにローカリゼーションAPI250を呼び出すように構成され得る。加えて、車両計算システム120は、その後のローカリゼーション・コールの精度を改善するために位置履歴記録を、内部状態として記憶するように構成され得る。位置履歴記録は、時間におけるポイント、対応する車両150がスイッチを切られた/停止したときなど、から位置の履歴を記憶し得る。ローカリゼーションAPI250は、HDマップに基づいて車線を指定する正確な(たとえば、指定された精度内の)ルートを生成するように構成され得るルートをローカライズAPIを含み得る。ルートをローカライズAPIは、1つ又は複数の第三者マップを介してソースから目的地までのルートを入力として受信するように構成され得、HDマップに基づいて入力ルートに沿ったナビゲート可能な車線の接続されたグラフとして表された高い精度(たとえば、指定された精度以内、たとえば30cm以内)のルートを生成するように構成され得る。
【0043】
ランドマーク・マップAPI255は、対応する車両150の周りの世界の幾何学的及び意味論的記述、たとえば、対応する車両150が現在進んでいる車線の様々な部分の記述、を提供するように構成され得る。ランドマーク・マップAPI255は、ランドマーク・マップに基づいてクエリを可能にするように構成され得るAPI、たとえば、車線をフェッチAPI及び特徴をフェッチAPI、を含む。車線をフェッチAPIは、対応する車両150に関連する車線情報及び特徴をフェッチAPIを提供するように構成され得る。車線をフェッチAPIはまた、位置、たとえば、緯度及び経度を使用して指定された対応する車両150の位置、を、入力として、受信するように構成され得、入力位置に関連する車線情報を返す。加えて、車線をフェッチAPIは、車線情報が取得され得る入力位置に対する距離を示す距離パラメータを指定するように構成され得る。さらに、特徴をフェッチAPIは、1つ又は複数の車線要素を識別する情報を受信するように及び指定された車線要素に関連するランドマーク特徴を返すように構成され得る。ランドマーク特徴は、そのタイプのランドマークに特有であり得る空間記述を、各ランドマークについて、含み得る。
【0044】
3DマップAPI265は、道路の空間3次元(3D)表現及びローカルHDマップ・ストア275に記憶されたものとしての道路の周りの様々な物理物体へのアクセスを提供するように構成され得る。3DマップAPI265は、ナビゲート可能表面をフェッチAPI及び占有グリッドをフェッチAPIを含み得る。ナビゲート可能表面をフェッチAPIは、1つ又は複数の車線要素の識別子を、入力として、受信するように構成され得、指定された車線要素のナビゲート可能な境界線を返す。占有グリッドをフェッチAPIはまた、入力としての位置、たとえば、対応する車両150の緯度及び経度、を受信し、道路の表面及びその位置の近くのHDマップにおいて入手可能なすべての物体の占有を記述する情報を返すように構成され得る。占有を記述する情報は、HDマップにおいて占有されていると考えられるいくつかの又はすべての位置の階層的体積グリッドを含み得る。占有グリッドは、たとえば、カーブ及び隆起における、ナビゲート可能なエリアの近くは高い解像度、そしてたとえば、カーブの向こうの木及び壁などの、あまり重要でないエリアでは比較的低い解像度で情報を含み得る。加えて、占有グリッドをフェッチAPIは、必要に応じて、障害物を検出するために及び方向を変更するために有用であるように構成され得る。
【0045】
3DマップAPI265はまた、マップ更新API、たとえば、マップ更新をダウンロードAPI及びマップ更新をアップロードAPI、を含む。マップ更新をダウンロードAPIは、計画ルート識別子を入力として受信し、すべての計画ルートに関連するデータの又は特定の計画ルートのマップ更新をダウンロードするように構成され得る。マップ更新をアップロードAPIは、車両計算システム120によって収集されたデータをオンラインHDマップ・システム110にアップロードするように構成され得る。マップ更新をアップロードAPIは、様々なルートに沿って運転する車両150の車両センサ105によって観測され得るマップ・データにおける変化に基づいて更新されたオンラインHDマップ・システム110に記憶されたHDマップ・データをオンラインHDマップ・システム110が保持することを可能にし得る。
【0046】
ルートAPI270は、対応する車両150がルートに沿って進むときにソースと目的地との間の完全ルートとルートの部分とを含むルート情報を返すように構成され得る。3DマップAPI265は、オンラインHDマップ・システム110の又はHDマップのクエリを可能にするように構成され得る。ルートAPI270は、計画ルートを追加API及び計画ルートを取得APIを含み得る。計画ルートを追加APIは、関連HDマップを記述する情報が車両計算システム120によってダウンロードされ得、最新に保たれ得るように、計画ルートを記述する情報をオンラインHDマップ・システム110に提供するように構成され得る。計画ルートを追加APIは、緯度及び経度に関して表現されたポリラインを使用して指定されたルートと、さらにその後にルートデータが削除され得る時間周期を指定する有効期間(TTL:time-to-live)パラメータとを、入力として、受信するように構成され得る。したがって、計画ルートを追加APIは、車両150が自律移動として近い未来に取ることを計画しているルートを車両150が示すことを可能にするように構成され得る。計画ルートを追加APIは、ルートをHDマップと位置合わせし、ルート及びそれのTTL値を記録し、車両計算システム120に記憶されたルートのHDマップ・データが更新される(たとえば、最新になる)ことを確実にするように構成され得る。計画ルートを取得APIは、計画ルートのリストを返し、ルート識別子によって識別されたルートを記述する情報を提供するように構成され得る。
【0047】
マップ更新API285は、ローカルHDマップ・ストア275の、及びオンラインHDマップ・システム110に記憶されたHDマップ・ストア165の両方の、マップ・データを更新することに関連する動作を管理するように構成され得る。したがって、車両計算システム120内のモジュールは、ローカルHDマップ・ストア275に記憶するために車両計算システム120にオンラインHDマップ・システム110からデータをダウンロードするためのマップ更新API285を呼び出すように構成され得る。マップ更新API285はまた、車両センサ105によってモニタされる情報がオンラインHDマップ・システム110によって提供されるマップ情報における矛盾を示すがどうかを車両計算システム120が判定することを可能にするように構成され得、他の車両150に提供されるHDマップ・ストア165に記憶されたマップ・データをオンラインHDマップ・システム110が更新する結果をもたらし得るオンラインHDマップ・システム110へデータをアップロードする。
【0048】
マップ矛盾モジュール290は、マップ更新API285と動作させられてマップ矛盾を判定するように及びマップ矛盾情報をオンラインHDマップ・システム110に通信するように構成され得る。いくつかの態様において、マップ矛盾を判定することは、特定の位置のセンサ・データ230をその特定の位置のHDマップ・データと比較することを含む。たとえば、HDマップ・データは、高速道路の車線が車両150によって使用可能であるはずであると示し得るが、センサ・データ230は、使用を閉鎖された又は他の方法でもはや利用可能でないその車線において発生している建設工事があることを示し得る。マップ矛盾モジュール290によってマップ矛盾を検出したとき、対応する車両150は、検出されたマップ矛盾に関する情報を含むオンラインHDマップ・システム110へ更新メッセージを送信する。マップ矛盾モジュール290は、車両識別子(ID)、1つ又は複数の時間スタンプ、移動されたルート、横断された車線要素の車線要素ID、矛盾のタイプ、矛盾のマグニチュード、二重矛盾警告メッセージを識別するのに役立つ矛盾指紋、メッセージのサイズなどを含み得る、更新メッセージを構築するように構成され得る。いくつかの実施例において、マップ矛盾モジュール290の1つ又は複数の動作は、以下で詳述するように
図4のマップ・データ収集モジュール460によって少なくとも部分的に処理され得る。
【0049】
いくつかの実施例において、対応する車両150は、マップ矛盾を検出したときに更新メッセージをオンラインHDマップ・システム110に若しくはローカルHDマップ・ストア275に送る、及び/又は更新メッセージを周期的に送るように構成され得る。たとえば、対応する車両150は、矛盾を記録し、時間の間隔(たとえば、30分)又は移動距離(たとえば、16.09キロメートル(10マイル))ごとに1度、更新メッセージを介してオンラインHDマップ・システム110に矛盾を報告するように構成され得る。オンラインHDマップ・システム110は、以下でマップ・データ収集モジュール460を参照してさらに詳しく説明されるように、更新メッセージを管理し、更新メッセージに優先順位を付けるように構成され得る。
【0050】
いくつかの実施例において、対応する車両150は、高帯域幅アクセス・ポイントに到達又はドッキングしたときにのみ更新メッセージをオンラインHDマップ・システム110に送るように構成され得る。対応する車両150が、インターネット(たとえば、ネットワーク)に接続された後は、対応する車両150は、照合された更新メッセージ又は1セットの更新メッセージのいずれかを送るように構成され得る。1つ又は複数の実施例において、例示的な限定されないメッセージは、最後の高帯域幅アクセス・ポイントが到達又はドッキングされて以降に構築された更新メッセージを含み得る。高帯域幅アクセス・ポイントの使用は、大量のデータを送信するために有用であり得る。いくつかの態様において、照合された更新メッセージ又は1つ若しくは複数の更新メッセージがオンラインHDマップ・システム110によって受信されたという確認メッセージを受信したとき、対応する車両150は、削除するデータに印を付けてローカル削除プロセスをスケジュールする及び/又はデータを削除する。別法として、対応する車両150は、時間に基づいて周期的に、たとえば、1時間ごとに、オンラインHDマップ・システム110に報告し得る。
【0051】
マップ矛盾モジュール290は、オンラインHDマップ・システム110からのメッセージに応答して機能する及び矛盾識別に関連する動作を実行するように構成され得る。たとえば、対応する車両150のルートに沿った特定の位置に関するデータを要求するメッセージを受信したとき、マップ矛盾モジュール290は、そのデータを収集する及びマップ矛盾モジュール290に報告するように対応する車両150の1つ又は複数の車両センサ105に指示するように構成され得る。データを受信したとき、マップ矛盾モジュール290は、直ちに、周期的スケジュールの次のスケジュールされた時間に、又は次の高帯域幅アクセス・ポイントにおいてなど、データを含むメッセージを構築し、メッセージをオンラインHDマップ・システム110に送るように構成され得る。
【0052】
マップ矛盾モジュール290は、矛盾を有する領域を含む任意のHDマップへの更新に含まれることになる判定されたマップ矛盾の緊急度を決定するように構成され得る。たとえば、低い緊急性及び高い緊急性の2つの緊急度が存在し得る。オンラインHDマップ・システム110は、マップ・データ収集モジュール460に関して以下で詳述するように、更新メッセージ内の情報をどのように処理するかを決定するときに更新メッセージの緊急度を考慮し得る。たとえば、遠隔又は地方の裏道での単一の車線封鎖は、低い緊急性を有すると判定され得るが、百万人の都市の主要ハイウェイの完全封鎖は、高い緊急性を有すると判定され得る。いくつかのインスタンスでは、高い緊急性更新メッセージは、低い緊急性更新メッセージの前にオンラインHDマップ・システム110によって処理され得る。
【0053】
いくつかの実施例において、対応する車両150は、オンラインHDマップ・システム110にセンサ・データ230を継続的に記録し、たとえば、特定の位置の追加データの要求に応答して、メッセージの生成のためのその関連部分をエンコードするように構成され得る。一実施例において、車両150は、センサ・データ230のいずれもオンラインHDマップ・システム110によって必要とされないというオンラインHDマップ・システム110からの確認を受けて、継続的に記録されたセンサ・データ230を単に削除するように構成され得る。
【0054】
図3は、本開示の1つ又は複数の実施例による、車両計算システム120のHDマップAPI205における命令の様々な層の一実例を示す。車両の異なる製造業者は、車両センサ105から情報を受信するための及び車両制御装置130を制御するための異なる手順又は命令を有し得る。さらに、異なる販売会社は、自律運転能力、たとえば、車両センサ・データの収集及び分析、を有する異なるコンピュータ・プラットフォームを提供し得る。自律型車両のコンピュータ・プラットフォームの実例には、NVIDIA Corporation、QUALCOMM、及びINTELなどの販売会社によって提供されるプラットフォームが含まれる。これらのプラットフォームは、自律型車両150の製造において自律型車両製造業者が使用するための機能性を提供し得る。車両製造業者は、自律型車両150の任意の1つの又はいくつかのコンピュータ・プラットフォームを使用することができる。
【0055】
オンラインHDマップ・システム110は、車両の製造業者に特有の命令及び車両の販売会社特定のプラットフォームに特有の命令に基づいてHDマップを処理するためのライブラリを提供するように構成され得る。ライブラリは、HDマップ・データへのアクセスを提供する及び車両150がオンラインHDマップ・システム110と相互作用することを可能にすることができる。
【0056】
図3に示すように、HDマップAPI205は、車両製造業者アダプタ310、コンピュータ・プラットフォーム・アダプタ320、及び共通HDマップAPI層330を含む、ライブラリとして実装され得る。共通HDマップAPI層330は、2つ以上の車両計算プラットフォーム及び車両製造業者にわたって使用することができる包括的命令を含むように実装され得る。コンピュータ・プラットフォーム・アダプタ320は、各コンピュータ・プラットフォームに特有であり得る命令を含むように実装され得る。たとえば、共通HDマップAPI層330は、特定のコンピュータ・プラットフォームによってサポートされるセンサからのデータを受信するためにコンピュータ・プラットフォーム・アダプタ320を呼び出すように実装され得る。車両製造業者アダプタ310は、車両製造業者に特有の命令を含むように実装され得る。たとえば、共通HDマップAPI層330は、特定の制御命令を車両制御装置130に送るために車両製造業者アダプタ310によって提供される機能性を呼び出すように実装され得る。
【0057】
オンラインHDマップ・システム110は、2個以上のコンピュータ・プラットフォームのコンピュータ・プラットフォーム・アダプタ320及び2社以上の車両製造業者の車両製造業者アダプタ310を記憶するように実装され得る。オンラインHDマップ・システム110は、特定の自律型車両150の特定の車両製造業者及び特定のコンピュータ・プラットフォームを判定するように実装され得る。オンラインHDマップ・システム110は、特定の車両製造業者の車両製造業者アダプタ310及びその特定の車両150の特定のコンピュータ・プラットフォームのコンピュータ・プラットフォーム・アダプタ320を選択するように実装され得る。加えて、オンラインHDマップ・システム110は、選択された車両製造業者アダプタ310及び選択されたコンピュータ・プラットフォーム・アダプタ320の命令をその特定の自律型車両150の車両計算システム120に送るように実装され得る。その特定の自律型車両150の車両計算システム120は、受信された車両製造業者アダプタ310及び計算プラットフォーム・アダプタ320をインストールするように実装され得る。車両計算システム120は、オンラインHDマップ・システム110はインストールされた車両製造業者アダプタ310及び計算プラットフォーム・アダプタ320への更新を有するかどうかを周期的にチェック又は検証するように実装され得る。追加で、より最近の更新が、車両150にインストールされたバージョンと比較して入手可能な場合、車両計算システム120は、最新の更新を要求及び受信してそれをインストールするように実装され得る。
【0058】
HDマップ・システム・アーキテクチャ
図4は、本開示の1つ又は複数の実施例による、オンラインHDマップ・システム110の例示的システム・アーキテクチャを示す。オンラインHDマップ・システム110は、マップ作成モジュール410、マップ更新モジュール420、マップ・データ・エンコーディング・モジュール430、負荷バランシング・モジュール440、マップ精度管理モジュール450、車両インターフェース・モジュール160、マップ・データ収集モジュール460、及びHDマップ・ストア165を含み得る。オンラインHDマップ・システム110のいくつかの実施例は、
図4に示されたのよりも多数の又は少数のモジュールを含み得る。特定のモジュールによって実行されるものとして示された機能性は、他のモジュールによって実装され得る。いくつかの実施例において、オンラインHDマップ・システム110は、2個以上の処理システムを含む分散型システムとして実装され得る。
【0059】
マップ作成モジュール410は、様々なルートに沿って運転しているいくつかの車両(たとえば、150A~150D)から収集されたセンサ・データからHDマップのHDマップ・データを作成するように構成され得る。マップ更新モジュール420は、マップ情報が変わったルートに沿って最近移動した車両150からより最近の情報(たとえば、センサ・データ)を受信することによって、前に計算されたHDマップ・データを更新するように構成され得る。たとえば、ある種の道路標識が変わった可能性があり、又は車線情報が、領域内の工事の結果として変わった可能性があり、マップ更新モジュール420は、HDマップ及び対応するHDマップ・データをそれに応じて更新するように構成され得る。マップ・データ・エンコーディング・モジュール430は、効率的にデータを記憶する(たとえば、HDマップ・データを圧縮する)並びにHDマップ・データを車両150に送ることができるようにHDマップ・データをエンコードするように構成され得る。車両150からのデータを受信する要求が、異なる車両150にわたり分散される(たとえば、均等に分散される)(たとえば、異なる車両150間の負荷配分が互いの閾値量以内である)ように、負荷バランシング・モジュール440は、車両150にわたる負荷の平衡を保つように構成され得る。個々の車両から受信される情報は同じ精度を有さない可能性があるけれども、マップ精度管理モジュール450は、様々な技法を使用してHDマップ・データの比較的高い精度を維持するように構成され得る。
【0060】
いくつかの実施例において、マップ・データ収集モジュール460は、車両150をモニタし、車両150からの状況更新を処理して1つ又は複数の特定の位置に関連する追加データを1つ又は複数のある種の車両150に要求するかどうかを決定するように構成され得る。
【0061】
図5は、本開示の1つ又は複数の実施例による、HDマップ510の例示的構成要素を示す。HDマップ510は、いくつかの地理的領域のマップのHDマップ・データを含むように構成され得る。本開示において、マップ又はHDマップ、たとえば、HDマップ510、への参照は、そのようなマップに対応するマップ・データへの参照を含み得る。さらに、それぞれのマップの情報への参照はまた、そのマップのマップ・データへの参照を含み得る。
【0062】
いくつかの実施例において、地理的領域のHDマップ510は、ランドマーク・マップ(LMap)520及び占有マップ(OMap)530を含み得る。ランドマーク・マップ520は、運転進路(たとえば、車線、譲れの線、安全にナビゲート可能な空間、私道、未舗装の道路など)、歩行者進路(たとえば、横断歩道、歩道など)、及びランドマーク物体(たとえば、道路標識、建物など)の情報又は表現を含み得る。たとえば、ランドマーク・マップ520は、車線の空間位置及び各車線に関する意味論的情報を含む車線を記述する情報を含み得る。車線の空間位置は、高い精度、たとえば、30cm以内の又はそれより優れた精度で緯度、経度、及び高度における幾何学的位置を含み得る。車線の意味論的情報は、方向、速度、車線のタイプ(たとえば、直進するための車線、左折車線、右折車線、出口車線、及び同類のもの)、左への横断に関する制約、他の車線への接続性などの制約を含む。
【0063】
いくつかの実施例において、ランドマーク・マップ520は、停止線、譲れの線、横断歩道の空間位置、安全にナビゲート可能な空間、スピード・バンプの空間位置、カーブ、運転制約に関連するすべてのタイプのサイネージの空間位置を含む道路標識などを記述する情報を含み得る。HDマップ510に記述された道路標識の実例には、交通標識、停止標識、交通信号、速度制限、一方通行、進入禁止、譲れ(車両、歩行者、動物)などが含まれ得る。
【0064】
いくつかの実施例において、ランドマーク・マップ520に含まれる情報は、表現が正確である確率を測定する信頼性値に関連し得る。物体を記述する情報が物体の属性(たとえば、運転進路、歩行者進路、ランドマーク物体など)と一致するとき、その物体の表現は正確である。たとえば、運転進路の空間位置及び意味論的情報が、運転進路の属性(たとえば、物理測定値、制約など)と一致し得るとき、運転進路の表現は、正確であると考えられ得る。車両計算システム120(たとえば、計画立案モジュール220)は、信頼性値を使用して車両150を制御することができる。たとえば、ランドマーク物体の表現は、ランドマーク・マップ520における高い信頼性値に関連するが、車両150は、車両センサ105と車両150の周りの環境の対応する観測との両方に基づいてランドマーク物体を検出しない場合、車両計算システム120は、高い信頼性値に基づいて存在すると推定されたランドマーク物体を回避するように車両150を制御する、又はランドマーク物体によって課された運転制約に従うように車両150を制御する(たとえば、ランドマーク・マップ上の譲れの標識に基づいて車両150に譲らせる)ように構成され得る。
【0065】
いくつかの実施例において、占有マップ530は、道路及び道路の周りの物理物体の空間3D表現を含み得る。占有マップ530はまた、占有グリッドと本明細書で称され得る。同様に、占有マップ530に記憶されたデータはまた、占有グリッド・データと本明細書で称され得る。道路の3D表現及び道路の周りの物理物体は、物体がその位置に存在する可能性を示す信頼性スコアに関連し得る。占有マップ530は、いくつかの他のやり方で表され得る。いくつかの実施例において、占有マップ530は、表面を包含し得る3Dメッシュ・ジオメトリ(三角形の収集)として表され得る。いくつかの実施例において、占有マップ530は、表面を包含し得る3Dポイントの収集として表され得る。いくつかの実施例において、占有マップ530は、5~10cm解像度でセルの3D体積グリッドを使用して表され得る。各セルは、表面がそのセルにおいて存在するか否かと、表面が存在する場合に、それに沿って表面が方向付けられ得る方位とを示すことができる。
【0066】
占有マップ530は、ランドマーク・マップ520と比較して大量の記憶領域を取り得る。たとえば、1GB/マイルのデータが、4x1015バイト又は4ペタバイトを占める米国のマップ(643.7万キロメートル(400万マイル)の道路を含む)をもたらす、占有マップ530によって使用され得る。したがって、オンラインHDマップ・システム110及び車両計算システム120は、データ圧縮技法を使用してマップ・データを記憶及び転送するように構成され得、それによってストレージ及び送信コストを減らす。したがって、本明細書で開示される技法は、自動運転動作及び能力に関してデータ記憶及び送信の効率を改善することによって、自律型車両の自動運転を改善するのに役立ち得る。
【0067】
いくつかの実施例において、HDマップ510は、住所、道路名、住所をジオコード化する能力、及び場所名又は住所間のルートを計算する能力など、マップに通常は含まれ得るデータを使用又はそれに依存しなくてもよい。車両計算システム120又はオンラインHDマップ・システム110は、他のマップ・システム、たとえば(及び制限なしに)、オープン・ストリート・マップ、にアクセスしてこの情報を取得することができる。したがって、車両計算システム120又はオンラインHDマップ・システム110は、オープン・ストリート・マップなどのツールからマップ情報を受信することができ、HDマップ510に基づいてルートに情報を変換することができる、又はそれがHDマップ510上で我々にとって互換性を有し得るように情報を変換することができる。
【0068】
HDマップ内の地理的領域
オンラインHDマップ・システム110は、大きな物理エリアを地理的領域へと分割するように及び各地理的領域の表現を記憶するように構成され得る。各地理的領域は、幾何学的形状-たとえば(及び制限なしに)、長方形又は正方形-によって境界を示された隣接するエリアを表し得る。いくつかの実施例において、オンラインHDマップ・システム110は、各地理的領域の表現を記憶するために必要とされるデータの量と無関係に類似のサイズの地理的領域へと物理エリアを分割するように構成され得る。いくつかの実施例において、オンラインHDマップ・システム110は、物理エリアを異なるサイズの地理的領域へと分割することができ、そこで、各地理的領域のサイズは、地理的領域を表すために必要とされる情報の量に基づいて、決定され得る。たとえば、多数の街路を有する人口が密集したエリアを表す地理的領域は、極めて少ない街路を有する人口がまばらなエリアを表す地理的領域と比較して、より小さい物理エリアを表し得る。いくつかの実施例において、オンラインHDマップ・システム110は、HDマップ510に関連する物理エリアの様々な要素を記憶するために使用され得る情報の量の推定値に基づいて地理的領域のサイズを決定するように構成され得る。
【0069】
一実施例において、オンラインHDマップ・システム110は、以下を含む(制限なしに)様々な属性を含み得る物体又はデータ記録を使用して地理的領域を表すことができる:地理的領域の一意の識別子、地理的領域の一意の名、たとえば、緯度及び経度座標のセットに対応する境界ボックスを使用する地理的領域の境界線の記述、並びにランドマーク特徴及び占有グリッド・データの収集。
【0070】
図6A~6Bは、本開示の1つ又は複数の実施例による、HDマップにおいて定義され得る例示的地理的領域610A及び610Bを示す。
図6Aは、正方形の地理的領域610Aを示す。
図6Bは、2つの隣接する地理的領域610A及び610Bを示す。オンラインHDマップ・システム110は、車両150が地理的領域境界線を横断して運転するとき、1つの地理的領域から別の地理的領域へのスムーズな移行を可能にし得る、地理的領域の表現でデータを記憶するように構成され得る。
【0071】
いくつかの実施例において、
図6A~6Bに示すように、各地理的領域は、それの周りの所定の幅(エリア)のバッファを含み得る。バッファは、地理的領域の1つ若しくは複数の又はすべての辺の周りの冗長マップ・データを含み得る(たとえば、地理的領域が長方形によって境界を示されている場合)。したがって、いくつかの実施例において、地理的領域が、ある特定の形状でもよい場合、地理的領域は、その形状のより大きいバージョンでもよいバッファによって境界を示され得る。実例として、
図6Aは、地理的領域610Aの周りの約50メートルのバッファの境界線620及び地理的領域610Aの周りの100メートルのバッファの境界線630を示す。
【0072】
いくつかの実施例において、車両計算システム120は、対応する車両150がバッファ内の所定の(たとえば、定義された)閾値距離を横断するとき、対応する車両150の現在の地理的領域を1つの地理的領域から隣接する地理的領域に切り替えるように構成され得る。たとえば、
図6Bに示すように、対応する車両150は、地理的領域610A内の位置650Aにおいて開始する。対応する車両150は、ルートに沿って横切って位置650Bに到着し得、そこで、対応する車両150は、地理的領域610の境界線を横断するが、バッファの境界線620内にとどまり得る。したがって、対応する車両150の車両計算システム120は、車両150の現在の地理的領域として地理的領域610Aを使用し続け得る。対応する車両150が、位置650Cにおいてバッファの境界線620を横断した後は、車両計算システム120は、対応する車両150の現在の地理的領域を地理的領域610Aから地理的領域610Bに切り替えるように構成され得る。バッファの使用は、地理的領域の境界線を厳密に追跡し得るルートに沿って車両150が進むことの結果として車両150の現在の地理的領域の急速な切替えを減らす又は防ぐことができる。
【0073】
HDマップ内の車線表現
HDマップ・システム100は、HDマップ内の街路の車線情報を表し得る。記述された実施例は、街路を参照することがあるが、本技法は、車両が進むことができる、任意のハイウェイ、小道、大街路、大通り、進路などに適用可能であり得る。HDマップ・システム100は、ルーティングを目的として及び車両150のローカリゼーションのために基準フレームとして車線を使用することができる。HDマップ・システム100によって表される車線は、明示的に印を付けられた車線、たとえば、白及び黄色の縞模様の車線、黙示的でもよい車線、たとえば、線又はカーブを有さない田舎の道路上にもかかわらず2つの進行方向を有し得る、及び車線として機能し得る黙示的進路、たとえば、転回する車が別の車線から車線に入るときに作り得る進路、を含み得る。
【0074】
HDマップ・システム100は、車線に関連する情報、たとえば、車線に関連する道路標識及び交通信号などのランドマーク特徴、障害物検出のための車線に関連する占有グリッド、及び車線に関連するナビゲート可能な空間、を記憶することができるので、車両150が、計画されたものでない、車線から出る動きを行う緊急時に、車両150は、計画立案/反応することができる。したがって、HDマップ・システム100は、車両150がソースと目的地との間の合法の進路を計画すること及び車両150のリアルタイム感知及び制御のための基準のフレームを追加することを可能にするために、車線のネットワークの表現を記憶することができる。HDマップ・システム100は、情報を記憶し、車両150が、車両150がその中に現在ある車線、車線ジオメトリに関連する車両150の正確な位置、並びに車線及び隣接する及び接続された車線に関連する任意の及びすべての関連特徴/データを決定することを可能にし得るAPIを提供する。
【0075】
図7は、本開示の1つ又は複数の実施例による、HDマップ内の例示的車線表現を示す。
図7は、交通交差点にある車両710を示す。HDマップ・システム100は、車両710の自律運転に関連し得るマップ・データへのアクセスを車両710に提供する。これは、たとえば、車線に関連し得るが車両710に最も近い特徴でなくてもよい特徴720A及び720Bを含み得る。したがって、車両710が、車線を所与として特徴を効率的に抽出することができるように、HDマップ・システム100は、特徴との車線の関係性を表し得るデータの車線中心の表現を記憶し得る。
【0076】
HDマップ・システム100は、車線要素として車線の部分を表すHDマップを提供することができる。車線要素は、車線の境界線と、車両710が車線要素内を進むことができる合法の方向、車両が車線要素内を運転することができる速度、車線要素が左折のみ、又は右折のみに関し得るかどうかなどを含む、様々な制約とを指定することができる。いくつかの実施例において、HDマップ・システム100は、単一の車両車線の連続的幾何学的部分として車線要素を表すマップを提供することができる。HDマップ・システム100は、車線の幾何学的境界線、車線に沿った運転方向、車線内で運転するための車両制約、たとえば、速度制限、入って来る及び出て行く車線を含む接続車線との関係性、終了制約、たとえば、車線が停止線、譲れの標識、又はスピード・バンプにおいて終わるかどうか、及び自律運転に関連する道路特徴との関係性、たとえば、交通信号灯の位置、道路標識の位置など、を表す情報を含む車線要素を表し得る物体又はデータ構造体を記憶することができる。
【0077】
HDマップ・システム100のHDマップによって表される車線要素の実例には、たとえば及び制限なしに、以下が含まれ得る:高速道路上の1つの右車線、道路上の1つの車線、左折車線、左折車線から別の車線への転回、オンランプからの合流車線、オフランプ上の出口車線、及び私道。HDマップ・システム100は、2つの車線要素、各方向につき1つ、を使用して1つの車線道路を表すHDマップを含み得る。HDマップ・システム100は、1つの車線道路に類似の共用される中央の転回車線を表すことができる。
【0078】
図8A及び8Bは、本開示の1つ又は複数の実施例による、HDマップにおける例示的車線要素(たとえば、LaneEl)及び車線要素間の関係を示す。
図8A及び8Bの車線要素のそれぞれは、本明細書の他の箇所に記載の1つ又は複数のMapsLaneを含む、これに含まれる、又はこれに対応することが可能である。
図8Aは、車線810B(たとえば、曲線状のLaneEl)を介して車線要素810C(たとえば、別の真っすぐなLaneEl)に接続され得る及び転回車線810D(たとえば、別の曲線状のLaneEl)を介して車線810E(たとえば、別の真っすぐなLaneEl)に接続される車線要素810A(たとえば、真っすぐなLaneElの一実例)を示す道路におけるT字路の一実例を示す。
図8Bは、車線810Hに直接接続された及び車線810Gを介して車線810Iに接続された車線810Fを有する道路におけるY字路の一実例を示す。HDマップ・システム100は、ソース位置から目的地位置に到着するために横切られ得る接続された車線要素のシーケンスとしてソース位置から目的地位置までのルートを決定することができる。
【0079】
自律型車両の周りのLocalMapを構築するための例示的アーキテクチャ及び方法についてここで説明する。以下の論考において:MapsLaneは、車線属性を有するポリラインによって定義された車線を参照し、LaneSegmentは、MapsLaneからステッチされた相互に排他的なセグメントを参照し、RoadSegmentは、HDマップのコア層の原子要素を参照し、LocalLayoutは、その中ですべてのRoadSegmentの相対変換がルートRoadSegmentを参照して計算される、HDマップのセクションを参照し、LaneGraphは、LocalLayoutにおける進路のすべての組合せの包括的リストを参照し、LaneGraph車線は、LocalLayoutにおける運転可能な進路を参照し、LaneInfoは、LaneGraph計算のために使用されるMapsLane中間メタデータを参照する。本明細書では、前述の及び他の特定の用語は、対応する包括的構造、概念、又は同類のものを参照するように一般化され得る。たとえば、「車線グラフ」は、HDマップのセクションがLocalLayoutと称されるかどうかに関わりなく、また原子要素がRoadSegmentと称されるかどうかに関わりなく、HDマップのコア層のすべての原子要素の相対変換がルート原子要素を参照してその中で計算される、HDマップのセクションにおける進路のすべての組合せの包括的リストを参照し得る。
【0080】
LocalMapは、LocalLayoutにおける進路のすべての組合せを有する包括的LaneGraphを計算することによって達成され得る、HDマップのローカル・ビューを提供することができる。LaneGraphを計算するプロセスにおいて、WaitGroups、TSLObjects、又は同類のものなどの、LocalLayout内の他のHDマップ特徴が製作され得る。
【0081】
1つ又は複数の実施例において、WaitGroupsは、個々の待機要素の収集又はグループを含み得る。少なくとも1つの実施例において、待機要素は、どのように待機条件(潜在的譲るシナリオ)が表されるかの単数形又は原子表現を構成する。各待機要素は、エゴ-競合者ペア(たとえば、エゴ車両及び環境内の少なくとも1つの競合している障害物又は物体から成る)及び待機要素の現在の先行権を記述する待機状態で構成される。待機グループ(「WaitGroup」)は、複数の待機要素をともに関連付ける。1つ又は複数の実施例において、待機要素は、ともにクリアされることが意図されている待機条件についてともにグループ化される。たとえば、保護されていない左を取ることは、転回の最後において横断歩道で歩行者に譲ることが義務付けられているとして示され得る。これらの2つの待機要素のグループ分けは、エゴ車両は、両方の待機要素がクリアされ得るまで、待機要素のいずれかのエゴ車線に入るのを待つべきであるということをより明確にする。
【0082】
TSL(交通標識光:Traffic sign light)物体は、交通信号灯/標識の3Dジオメトリをエンコードする。1つ又は複数の実施例において、待機ルールは、待機要素に適用可能な現在の待機状態を解決するために使用され得る、待機状態と光クラスとの関連付けを定義するために使用され得、たとえば、待機要素の通常の待機ルールは、青で「道を進む」、赤で「入口で停止」及び黄色で「道を進む-転換(take-way-translate)」のように見え得る。1つ又は複数の実施例において、TSL物体及び待機ルールは、内部メタデータを使用して実装され得、待機要素に対応する待機状態の解像度を処理するときに使用され得る。
【0083】
LaneGraph内の各車線は、それの他の関連車線(合流、分離、交差する車線)、変更車線(左、右車線)及び他のマップ特徴(WaitGroups、TSLObjectsなど)に気付き得る。LaneGraph及びHDマップ特徴は、別法として又は追加でリグ座標系又はエゴ座標系と称され得る、自律型車両の座標系内にあり得る。世界モデル定義は、これらのデータを表現するためのLocalMapの出力として使用され得る。
【0084】
世界モデル計算
図9Aは、本開示の1つ又は複数の実施例による、世界モデル(WM)フレームを計算するための例示的アーキテクチャ900を示す。図示するように、アーキテクチャ900は、車線コレクタ902、セグメント・グラフ・プロデューサ904、車線グラフ・プロデューサ906、及びWMジェネレータ908を含み得る。一般に、車線コレクタ902は、LocalLayoutにおいてMapsLaneを収集及び保持することができ、セグメント・グラフ・プロデューサ904は、MapsLaneを相互に排他的なLaneSegmentにステッチし、粗いマップ(又はSegmentGraph)を製作することができ、車線グラフ・プロデューサ906は、フレームを横断して無矛盾であり得るそれ自体の一意の追跡識別子(ID)を各車線が有し得る、LaneSegmentからの車線のすべての組合せを組み立てることができ、WMジェネレータ908は、車線、待機条件、又は同類のもののWM構造体、たとえば、WMキーフレームを投入することができ、計算されたLaneGraphをEgo座標系に変換することができ、エゴ車線を決定することができる。WMジェネレータ908の出力は、WMフレームと称され得る。車線コレクタ902、セグメント・グラフ・プロデューサ904、車線グラフ・プロデューサ906、及びWMジェネレータ908のそれぞれについて、以下でさらに詳しく論じる。
【0085】
車線コレクタ902は、LocalLayoutからの車線の収集を抽出し得る。LocalLayout内の各車線は、ラッパー構造体に記憶され得る。例示的実施例において、LocalLayout内の各車線のラッパー構造体は、LocalLayoutLaneと称される。
【0086】
車線コレクタ902は、それが現在のLocalLayoutビルドのために投入する、LaneBufferを有し得る。
【0087】
車線コレクタ902は、現在のLocalLayoutビルドにおいてすべての道路セグメントを反復することによって、車線を収集し得る。
【0088】
LaneGraph計算のためのLocalLayoutは、自律型車両の外周に沿って通常は配置されるセンサのセンサ・スイート(「リグ」とも称される)の周囲の既定の半径について構築され得る。リグの周囲の既定の半径は、円形エリアの中心にリグを有する円形エリアを定義し得る。円形エリアは、LocalLayoutと称され得る、及び/又は円形エリアの境界線又は外周は、自律型車両又はリグのホライズンと称され得る。
【0089】
セグメント・グラフ・プロデューサ904は、LocalMapSegmentで作られた粗いマップを構築し得る。LocalLayout内のMapsLaneは、MapsLaneが1つのみのLocalMapSegmentに関連することになる任意の所与の時間に相互に排他的なLocalMapSegmentの中へステッチされ得る。LocalMapSegmentは、それの他の関連LocalMapSegment(入って来る、出て行く、交差する、及び変更車線セグメント)を認識し得る。LocalMapSegmentは、本明細書でSegmentGraphとも称される、粗いマップの原子単位でもよい。
【0090】
LocalMapSegmentに参加するMapsLaneは、MapsLane構造においてエンコードされ得る。MapsLane構造は、参加するMapsLaneのID及び/又はMapsLaneのオフセットをLocalMapSegmentに含み得る(この情報は、車線変更及び他の車線割り当て属性を演繹するために使用され得る)。MapsLaneは、MapLaneChange構造に記憶され得る左及び/若しくは右車線変更並びに/又は他の情報を有し得る。MapLaneChange構造は、SegmentChange構造を計算するために使用され得る。
【0091】
接続情報は、SegmentConnection構造においてエンコードされ得る。
【0092】
車線変更情報は、SegmentChange構造においてエンコードされ得る。
【0093】
交差するセグメントは、SegmentContentions構造においてエンコードされ得る。
【0094】
待機条件情報は、SegmentWaitCondtion構造において記憶され得る。
【0095】
図9Bは、本開示のいくつかの実施例による、
図9Aのアーキテクチャ900の車線コレクタ902、セグメント・グラフ・プロデューサ904、及び/又は他の構成要素によって実装され得る方法910を示す流れ図である。方法910及び/又は本明細書に記載の他の方法の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法は、いくつか例を挙げると、独立型アプリケーション、サービス若しくはホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、又は別の製品へのプラグインによって提供され得る。いくつかの実装形態において、方法910及び/又は本明細書に記載の他の方法は、車両計算システム、たとえば、本明細書の他の箇所に記載の車両計算システム120、に記憶される及び/又はそのような車両計算システムによって実施される。
【0096】
一般に、方法910は、セグメント・グラフ・プロデューサ904が車線コレクタ902によって収集されたMapsLane及び/又はLocalLayoutLaneを消費することと、それらを一意のLocalMapSegmentのリストの中へステッチして粗いマップ又はSegmentGraphを製作することとを含み得る。
【0097】
さらに詳細には、方法910は、ブロック912において、シード車線を選択することを含む。例示的実装形態において、シード車線は、入って来る車線を含まない車線が識別されるまでリグのホライズン内の車線(たとえば、MapsLane、LocalLayoutLane)を分析することと、識別された車線を次いでシード車線として選択することとによって、選択される。より一般的には、シード車線は、任意の適切な基準に従って、ブロック912において選択され得る。
【0098】
方法910は、ブロック914において、接続された車線を逆方向において収集することを含む。例示的実装形態では、ブロック914は、停止条件が達せられるまで逆方向においてシード車線に過渡的に接続されたリグのホライズン内で車線を収集することを含む。
【0099】
方法910は、ブロック916において、接続された車線を正方向において収集することを含む。例示的実装形態では、ブロック916は、停止条件が達せられるまで正方向においてシード車線に過渡的に接続されたリグのホライズン内の車線を収集することを含む。ブロック916における停止条件は、ブロック914における停止条件と同じでも異なってもよい。別法として又は追加で、逆方向及び/又は正方向における車線収集の停止条件は、以下のうちの1つ又は複数を含み得る:
- MapsLane及び/又はLocalLayoutLaneが、ジャンクション進路に参加する。ジャンクション進路は、別のMapsLane又はLocalLayoutLane(エゴ車線及び接続する合流車線など)との1つのMapsLane又はLocalLayoutLaneのジャンクションを含み得る。ジャンクション進路に参加する各MapsLane及び/又はLocalLayoutLaneは、関連ジャンクション進路のために生成された対応するLaneSegmentに属する。
- MapsLane及び/又はLocalLayoutLane接続は、複数の接続する車線を有する。
- 接続するMapsLane及び/又はLocalLayoutLane運転方向は、双方向である。
- 車線を接続するマップは、現在のLocalLayout内にない(たとえば、リグのホライズンの外にある)。
【0100】
方法910は、ブロック918において、選択された及び収集されたMapsLane及び/又はLocalLayoutLane(たとえば、ブロック912において選択されたシード車線とブロック914及び916において収集された車線)をLaneSegmentの中へステッチすることを含む。例示的実装形態では、MapsLane及び/又はLocalLayoutLaneは、以下の慣例に従ってステッチされる:
- ジャンクション進路に参加するMapsLane及び/又はLocalLayoutLaneが、LaneSegmentの中へステッチされ、競合者セグメント、待機要素、及び交通ルールのようなメタデータが記録される。
- ゼロの入って来る/出て行くMapsLane及び/又はLocalLayoutLaneを有するMapsLane及び/又はLocalLayoutLaneを有するLocalLayout内の進路が、それぞれのLaneSegmentの中へステッチされる。
- 車線バッファ内の任意の未処理のMapsLane及び/又はLocalLayoutLane左が、それぞれのLaneSegmentの中へステッチされる。
【0101】
MapsLane及び/又はLocalLayoutLaneが、ブロック918でLaneSegmentの中にステッチされた後、セグメント関係情報、セグメント変更情報、又は同類のものなどのメタデータが、いくつかの実装形態において、収集され得る。
【0102】
少なくとも1つの実例において、セグメント・グラフ・プロデューサ904は、以下の機能のうちの1つ又は複数の実装形態を実装する又は容易にすることができる。updateSegmentGraph関数は、SegmentGraphを構築するために使用され得る、LocalLayoutLanesを収集するために車線コレクタ902に順番に供給され得る、有効なLocalLayoutビルドを消費し得る。いくつかの実施例において、updateSegmentGraph関数が、セグメント・グラフ・プロデューサ904のパブリックAPIにおいて実装される。computeSegmentGraph関数は、車線コレクタ902によって投入されたLaneBufferを消費し、SegmentGraphを構築することができる。computeSegmentGraph関数は、セグメント・グラフ・プロデューサ904のプライベート関数でもよい及び/又はupdateSegmentGraph関数からコールされ得る。computeSegment関数は、現在のLocalLayoutにおける新しい一意のセグメントを計算し得、入力LocalLayoutLaneは、シード車線として使用され得、本明細書の他の箇所で記述されるように停止条件が達せられるまで逆方向と正方向との両方において延ばされ得る。computeSegment関数は、セグメント・グラフ・プロデューサ904のプライベート関数でもよい及び/又はcomputeSegmentGraph関数からコールされ得る。collectSegmentLanes関数は、MapsLane構造に記憶された関連データを有する所与の方向におけるセグメントのMapLane(StitchDirectionによって定義された)を収集し得、セグメントのMapsLaneは、LaneBuffer内のMapsLaneのプールから収集される(たとえば、車線コレクタ902の出力)。所与のセグメントについて、collectSegmentLanes関数は、逆方向と正方向との両方においてセグメントを伸ばすためにcomputeSegment関数から2度コールされ得る。updateSegmentGraphInfo関数は、SegmentGraphを計算した後にupdateSegmentGraph関数からコールされ得る。updateSegmentGraphInfo関数は、SegmentGraph内のすべてのセグメントにわたって反復することによってメタデータの収集を助け得る。getSegmentConnections関数は、SegmentGraphのセグメント接続を集め得る。getSegmentConnections関数は、プライベートでもよい及び/又はupdateSegmentGraphInfo関数からコールされ得る。getSegmentChanges関数は、SegmentGraphのすべてのセグメント変更を集め得る。getSegmentChanges関数は、プライベートでもよい及び/又はupdateSegmentGraphInfo関数からコールされ得る。
【0103】
車線グラフ・プロデューサ906は、LocalMapSegmentグラフで深さ優先検索を実行することによって包括的LaneGraphを組み立て得る。いくつかの実装形態において、updateLaneGraph関数は、車線グラフ・プロデューサ906のパブリックAPIにおいて実装され得る。updateLaneGraph関数は、updateSegmentGraph関数を呼び出すこと、及び新しいSegmentGraphで深さ優先検索を行うことによって分解LaneGraph車線を計算することによって、新しいLocalLayoutビルドでSegmentGraphを更新し得る。したがって、車線グラフ・プロデューサ906は、分解LaneGraph車線及び関連メタデータを含むLaneGraphを生成することができ、各分解LaneGraph車線は、フレーム間のLaneGraph車線を追跡するための一意の、安定したIDを有する。分解LaneGraphは、たとえばWMジェネレータ908によって、WMフレームのような出力構造体を製作するために使用され得る。エゴ車線ヒントは、LaneGraphジオメトリにおけるリグの位置に基づいて決定され得る。LaneGraph車線のIDが、安定したエゴ車線を追跡するために、位置クエリとともに使用され得る。
【0104】
分解車線のIDは、参加するMapsLaneに基づいて計算され得る。IDマネージャは、LaneGraph車線の一意のIDを計算するために使用され得る。IDマネージャは、鍵としてのMapsLane IDのリスト及び対応する値としてのLaneGraph車線IDを有するハッシュ・テーブル(又はハッシュ・マップ)を保持し得る。したがって、分解車線に参加するMapsLaneのIDは、フレーム間の無矛盾LaneGraph車線IDを保持するための鍵として使用され得る。
【0105】
いくつかの実施例において、LaneChunkの車線中心上のポイントについて、対応する左及び右デバイダ・ポイントが存在するように、WMキーフレームは、トリプレット・ポイントの制約をLaneChunkに追加する。しかしながら、これは、HDマップに関する制約ではない。WMキーフレーム内のステッチされた車線チャネルについて、トリプレットが、ポイントをそれらと合流するその他の2つの及び3つの方向からの各ポリラインへと投影することによって、製作され得、これは、車線チャネル内のすべての3つのポリラインのループにおいて起こり得る。
【0106】
前述と一貫して、
図9Cは、本開示のいくつかの実施例による、WMフレームを生成するための方法920を示す。922において、車両計算システム120は、車線グラフ・プロデューサ906にLaneGraphを要求する。924において、車線グラフ・プロデューサは、LocalLayoutを更新する。926において、車線グラフ・プロデューサは、セグメント・グラフ・プロデューサ904にSegmentGraphを要求する。928において、セグメント・グラフ・プロデューサ904は、車線コレクタ902にLocalLayout内の車線を要求する。930において、車線コレクタ902は、LocalLayout内の車線を収集し、LaneBuffer932にそれらを投入する。934において、セグメント・グラフ・プロデューサ904は、ジャンクション情報をLocalLayoutから取得する。936において、セグメント・グラフ・プロデューサ904は、ジャンクション進路をステッチする。938において、セグメント・グラフ・プロデューサ904は、収集された車線を相互に排他的なLaneSegmentにステッチする。940において、セグメント・グラフ・プロデューサ904は、LaneSegmentのメタデータを取得する。942において、セグメント・グラフ・プロデューサ904は、SegmentGraph(及び関連メタデータ)を車線グラフ・プロデューサ906に返す。944において、車線グラフ・プロデューサは、分解LaneGraphを計算する。946において、車線グラフ・プロデューサ906は、LaneGraphにおいてLaneGraph車線のメタデータを取得する。948において、車線グラフ・プロデューサ906は、LaneGraph(及び関連メタデータ)を車両計算システム120に返す。950において、車両計算システムは、WMジェネレータ908にWMフレームを要求する。952において、WMジェネレータ908は、WMフレームを生成する。954において、WMジェネレータ908は、WMフレームを車両計算システム120に返す。
【0107】
図10は、本開示のいくつかの実施例による、単純なHDマップ1002からの例示的LaneGraph計算を示す。HDマップ1002は、MapsLaneAからRを有するRoadSegmentを含む。車線コレクタ902は、LocalLayoutにおいてMapsLaneを収集する。この実例では、MapsLaneAからRのそれぞれはLocalLayout内にある及び車線コレクタ902によって収集されると想定される。
【0108】
セグメント・グラフ・プロデューサ904は、次いで、MapsLaneAからRを相互に排他的なLaneSegmentLS-AからLS-Fにステッチし、SegmentGraph1004を製作し得る。たとえば、MapsLaneA、B、及びCは、LaneSegmentLS-Aにステッチされ得、MapsLaneG、H、及びIは、LaneSegmentLS-Bにステッチされ得る、など。SegmentGraph1004及び/又は関連メタデータは、前のLaneSegment、次のLaneSegment、及び競合者LaneSegmentのうちの1つ又は複数を、各LaneSegmentについて、識別し得る。
【0109】
最後に、車線グラフ・プロデューサ906は、LaneSegmentLS-AからLS-Fからの車線のすべての組合せを組み立てて、LaneGraph車線LGL-AからLGL-EとしてLaneSegmentのすべての進路組合せを含むLaneGraph1006を生成し得る。LaneSegmentLS-C、LS-A、及びLS-Dを含む第1のLaneGraph車線LGL-Aは、短い破線として
図10に表されている。LaneSegmentLS-B、LS-A、及びLS-Dを含む第2のLaneGraph車線LGL-Bは、一点鎖線として
図10に表されている。LaneSegmentLS-C、LS-A、及びLS-Eを含む第3のLaneGraph車線LGL-Cは、実線として
図10に表されている。LaneSegmentLS-B、LS-A、及びLS-Eを含む第4のLaneGraph車線LGL-Dは、長い破線として
図10に表されている。LaneSegmentLS-Fを含む第5のLaneGraph車線LGL-Eは、二点鎖線として
図10に表されている。重複部分を有するLaneGraphの
図10及び他の図において、LaneGraph車線の重複する部分は、視覚的に知覚可能であるように互いに空間的に相殺されてある。実際には、LaneGraph内のLaneGraph車線の重複部分は、空間的に分離されなくてもよい。
【0110】
図11A及び11Bは、本開示のいくつかの実施例による、移動する自律型車両又はリグ1102の
図10のHDマップ1002からの例示的LaneGraph計算を示す。リグ1102が、HDマップ1002上の
図11Aに示された3つの異なる位置にあるとき、図示されたLaneGraph計算は、3つの異なる時間、又はフレーム、ラベルを付けられたフレーム0、フレーム1、及びフレーム2、において実行される。フレーム0において、リグ1102は、MapsLaneIからMapsLaneGまでの方向において運転するMapsLaneH上に位置する。フレーム1において、リグ1102は、MapsLaneCからMapsLaneAまでの方向において運転するMapsLaneB上に位置する。フレーム2において、リグ1102は、MapsLaneIからMapsLaneGまでの方向において運転するMapsLaneK上に位置する。
【0111】
図示するように、リグ1102は、リグ1102が進むときに更新されるLocalLayout1104を有する。フレーム0において、LocalLayout1104は、MapsLaneG、H、I、C、及びDを含む。フレーム1において、LocalLayout1104は、MapsLaneA、B、C、P、Q、及びRを含む。フレーム2において、LocalLayout1104は、MapsLaneA、O、J、K、及びLを含む。
【0112】
各フレームにおいて、車線コレクタ902は、LocalLayout1104においてすべてのMapsLaneを収集する。いくつかの実装形態では、
図11Aに示すように、車線コレクタ902は、LocalLayout1104内のリグ1102の周りの有効な車線の収集1106を増分的に増大させることによって、LocalLayoutにおいてすべてのMapsLaneを収集する。さらに詳細には、各フレームにおいて、車線コレクタ902は、リグ1102のLocalLayout1104又はホライズン内に残る先行フレームからの各MapsLaneを収集1106において保持し得、リグ1102のLocalLayout1104又はホライズン内に新たにある各MapsLaneを収集1106に追加し得、リグ1102のLocalLayout1104又はホライズン内にもはやない先行フレームに保持された又は追加された各MapsLaneを収集1106から取り除き得る。たとえば、フレーム0-先行フレームを有さない-において、MapsLaneG、H、I、C、Dのそれぞれが、有効な車線の収集1106に追加される。別の実例として、フレーム1において、MapsLaneCは、収集1106において保持され、MapsLaneA、B、C、P、Q、及びRは、リグ1102のLocalLayout1104又はホライズン内に新たにあり、したがって、収集1106に追加され、前のフレーム(フレーム0)に含まれたMapsLaneG、H、I、及びDは、
図11Aに無効車線1108として示されて、有効な車線の収集1106から取り除かれる。別の実例として、フレーム2において、MapsLaneAは、収集1106において保持され、MapsLaneO、L、K、及びJは、リグ1102のLocalLayout1104又はホライズン内に新たにあり、したがって、収集1106に追加され、そして、前のフレーム(フレーム1)に含まれたMapsLaneB、C、P、Q、及びRは、
図11A内の無効車線1108として示されて、有効な車線の収集1106から取り除かれる。
【0113】
いくつかの実装形態において、LaneBufferは、有効な車線の収集の第1の有効な車線バッファ及び第2の有効な車線バッファを含む二重バッファとして実装され得る。たとえば、第1の有効な車線バッファは、有効な車線の現在の増分的に増大した収集がフレームの間に投入され得、一方、第2の有効な車線バッファに、有効な車線の先行する増分的に増大した収集を記憶する。次のフレームにおいて、第2の有効な車線バッファに、有効な車線の新しい現在の増分的に増大した収集が次のフレームの間に投入され得、一方、第1の有効な車線バッファに、有効な車線の先行する増分的に増大した収集(たとえば、有効な車線の前の現在の増分的に増大した収集)を記憶するように、第1の及び第2の有効な車線バッファの役割は、ステッチし得る。有効な車線の収集の増分的な増大及び二重の有効な車線バッファの使用は、有効な車線の現在の収集を同時に増分的に増加させながら、有効な車線の先行する増分的に増大した収集からSegmentGraph及び/又はLaneGraphが生成されることを可能にし得る。
【0114】
図11Bは、各フレームにおいて生成されたSegmentGraphを示す。たとえば、フレーム0において、セグメント・グラフ・プロデューサ904は、MapsLaneG、H、及びIをLaneSegment1106に、MapsLaneCをLaneSegment1108に、及びMapsLaneDをLaneSegment1110にステッチして、フレーム0に示されたSegmentGraphを生成し得る。フレーム1において、セグメント・グラフ・プロデューサ904は、MapsLaneA、B、及びCをLaneSegment1112に及びMapsLaneP、Q、及びRをLaneSegment1114にステッチして、フレーム1に示されたSegmentGraphを生成し得る。フレーム2において、セグメント・グラフ・プロデューサ904は、MapsLaneAをLaneSegment1116に、MapsLaneOをLaneSegment1118に、そしてMapsLaneJ、K、及びLをLaneSegment1120にステッチして、フレーム2に示されたSegmentGraphを生成し得る。
図11Bには示されていないが、各フレームにおけるSegmentGraph及び/又は関連メタデータは、前のLaneSegment、次のLaneSegment、及び競合者LaneSegmentのうちの1つ又は複数を、各LaneSegmentについて、識別し得る。
【0115】
図11Bはまた、各フレームにおいて生成されたLaneGraphを示す。たとえば、フレーム0において、車線グラフ・プロデューサ906は、LaneSegment1106、1108、及び1110からの車線のすべての組合せを組み立てて、LaneGraph車線1122及び1124としてLaneSegment1106、1108、及び1110のすべての進路組合せを含むフレーム0に示されたLaneGraphを生成し得る。フレーム1において、車線グラフ・プロデューサ906は、LaneSegment1112、1114からの車線のすべての組合せを組み立てて、LaneGraph車線1126及び1128としてLaneSegment1112、1114のすべての進路組合せを含むフレーム1に示されたLaneGraphを生成し得る。フレーム2において、車線グラフ・プロデューサ906は、LaneSegment1116、1118、及び1120からの車線のすべての組合せを組み立てて、LaneGraph車線1130及び1132としてLaneSegment1116、1118、及び1120のすべての進路組合せを含むフレーム2に示されたLaneGraphを生成し得る。
【0116】
図11Bは、フレームのうちの1つ又は複数においてLaneGraphに含まれ得る異なるタイプのLaneGraph車線を示す凡例1134をさらに含む。リグ1102に対応する車両又はマシンが現在運転しているLaneGraph車線は、「エゴ車線」と称される。LaneGraph車線1122、1126、及び1132は、エゴ車線の実例である。エゴ車線と合流するLaneGraph車線は、「合流車線」と称される。LaneGraph車線1124は、合流車線の一実例である。エゴ車線から分離するLaneGraph車線は、「分離車線」と称される。LaneGraph車線1130は、分離車線の一実例である。エゴ車線と交差するLaneGraph車線は、「競合者車線」と称される。LaneGraph車線1128は、競合者車線の一実例である。
【0117】
自律型車両の安全なナビゲーションのために、WMフレームは、通常は、約30WMフレーム/秒のレートで計算される。大きなデータ・サイズのWMフレームは、自律型車両で有意な通信、処理、及び/又はストレージ資源を消費し得る。したがって、本明細書のいくつかの実施例は、より高いレイテンシを有するタスクはより低いレイテンシを有するタスクよりも少ない頻度で実行される、複数のタスクへと自律型車両のデータ、たとえば、WMフレーム、の生成を分ける。たとえば、データの生成は、高レイテンシ低周波数WMキーフレーム生成タスク及び低レイテンシ高周波数変換タスクへと分割され得る。別法として又は追加で、タスクは、低レイテンシ高周波数変換計算タスクを含み得る。これらのタスクは、経時的に繰り返す又は反復することができる。たとえば、WMキーフレームは、第1の周波数で計算され得、一方、他のWMフレーム(たとえば、非キーフレーム)は、第1の周波数より大きい第2の周波数で計算され得る。
【0118】
この及び他の実装形態において、WMジェネレータ908は、2つの、3つの、又は何らかの他の数のノードへと分割され得、そこで、各ノードは、対応する周波数に従ってタスクのうちの異なる1つを処理する。
図12は、本開示のいくつかの実施例による、3つのノード1202、1204、1206を有するWMジェネレータ908の例示的実装形態を示す。3つのノード1202、1204、1206は、特に、WMプロデューサ1202、WM姿勢計算ノード1204、及びWMトランスフォーマ1206を含む。
【0119】
一般に、WMジェネレータ908は、入力としてLaneGraph1208及びローカリゼーション結果1210を受信し得、WMフレーム1212を1つ又は複数のWMコンシューマ1213に出力し得る。各ローカリゼーション結果1210は、現在のWMフレーム1212の自律型車両の現在の位置を識別し得る。WMコンシューマ1213は、たとえば、WMフレーム1212を使用又は消費して対応する自律型車両150又はリグの動作を制御し得る、車両計算システム120を含み得る。別法として又は追加で、WMコンシューマ1213は、何らかの他のシステム、デバイス、アプリケーション、又は、WMフレーム1212を使用若しくは消費する同類のものを含み得る。
【0120】
WMプロデューサ1202は、高レイテンシ(ノード1204、1206と比べて)、低周波数(ノード1204、1206と比べて)のノードでもよく、一方、WM姿勢計算ノード1204及びWMトランスフォーマ1206は、低レイテンシ(ノード1202と比べて)、高周波数(ノード1202と比べて)のノードでもよい。
【0121】
一般に、WMプロデューサ1202は、LaneGraph1208からWMキーフレーム1214を計算し得る。WMキーフレームの計算は、第1の周波数、たとえば、約10Hz、でWMプロデューサ1202によって実行され得る比較的高いレイテンシの計算でもよい。いくつかの実装形態によれば、WMプロデューサ1202は、先行する、たとえば、直ぐ前の先行する、WMキーフレーム1214が、2つのバッファ1216、1218のうちの他方に記憶される間に、それが、2つのバッファ1216、1218のうちの1つに現在のWMキーフレームを交互に投入する、WMキーフレーム1214の計算のための二重バッファを実装する。バッファ1216、1218は、本明細書に記載の他のバッファとそれらを区別するために、世界モデル・バッファと任意で称され得る。任意の所与の時間において先行WMキーフレーム1214を記憶するバッファ1216、1218は、それぞれのタスクのパフォーマンスにおいてWM姿勢計算ノード1204及びWMトランスフォーマ・ノード1206によって読み取られ得る。現在のWMキーフレームの計算が、完了したとき、現在のWMキーフレームは、バッファ1216、1218のうちの対応する1つにおける先行WMキーフレーム1214になり、新しい現在のWMキーフレームが、2つのバッファ1216、1218のうちの他方に新しい現在のWMキーフレームを投入することによって、計算され得る。この方式では、バッファ1216、1218のそれぞれに、交互に先行WMキーフレーム1214を記憶し得る又は現在のWMキーフレームの計算中に現在のWMキーフレームが投入され得る。
【0122】
WM姿勢計算ノード1204は、各WMフレームの先行WMキーフレーム1214の有効な変換1220を、第2の周波数で及びローカリゼーション結果1210及び先行WMキーフレーム1214から、計算し得る。ローカリゼーション結果1210は、リグの現在の位置を、任意の所与の時間において及びWMジェネレータ908によって生成されている任意の所与のWMフレームについて、含み得る。リグの現在の位置は、先行するWMキーフレーム1214をリグの座標フレームに変換することになる対応する有効な変換1220(たとえば、ローカルマップからリグへの変換マトリックス)を決定するためにWM姿勢計算ノード1204によって使用され得る。複数の有効な変換1220が、所与の先行WMキーフレーム1214について順次に計算され得るように、第2の周波数は、第1の周波数よりも大きくてもよい。第1の周波数が10Hzである及び第2の周波数が30Hzである一実例において、WM姿勢計算ノード1204は、各先行WMキーフレーム1214の3つの連続的な有効な変換1220を計算し得る。
【0123】
WMトランスフォーマ1206は、有効な変換1220を使用して先行WMキーフレーム1214をリグの座標フレームに変換し得る。たとえば、WMトランスフォーマ1206は、順次的WMフレーム1212を生成するために順次的な有効な変換1220を使用して先行WMキーフレーム1214をリグの座標フレームに順次に変換し得る。WMトランスフォーマ1206は、任意の所与の先行WMキーフレーム1214が、複数の順次的WMフレーム1212を生成するために、順次に複数回変換され得るように、第2の周波数で変換を実行し得る。
【0124】
図13は、本開示のいくつかの実施例による、WMフレームを生成するための方法1300を示す流れ図である。方法1300及び/又は本明細書に記載の他の方法の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法は、いくつか例を挙げると、独立型アプリケーション、サービス若しくはホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、又は別の製品へのプラグインによって、提供され得る。いくつかの実装形態において、方法1300及び/又は本明細書に記載の他の方法は、車両計算システム、たとえば、本明細書の他の箇所に記載の車両計算システム120、に記憶される及び/又はそれによって実施される。たとえば、方法1300は、自律型車両150又はリグの車両計算システム120でWMジェネレータ908によって、少なくとも部分的に、実施され得る。
【0125】
方法1300は、ブロック1302において、マップ・データに基づいて自律型車両の周りの現在のWMキーフレームを計算することを含む。たとえば、ブロック1302は、WMジェネレータ908のWMプロデューサ1202が現在のLaneGraph1208から現在のWMキーフレームを計算することを含み得る。
【0126】
方法1300は、ブロック1304において、第1のWMフレームを生成するために現在のWMキーフレームの計算を完了することより前に第1の時間において先行WMキーフレームを自律型車両の座標フレームに変換することを含む。たとえば、ブロック1304は、WMジェネレータ908のWMトランスフォーマ1206が、現在のWMキーフレームの計算の完了の間及び前の第1の時間において先行WMキーフレーム1214を自律型車両の座標フレームに変換して第1のWMフレーム1212を生成することを含み得る。
【0127】
方法1300は、ブロック1306において、第1の時間の後の第2の時間に及び現在のWMキーフレームの計算を完了することより前に先行WMキーフレームを自律型車両の座標フレームに変換して第2のWMフレームを生成することを含む。たとえば、ブロック1306は、WMジェネレータ908のWMトランスフォーマ1206が第1の時間の後の第2の時間に並びに現在のWMキーフレームの計算の完了の間及び前に同じ先行WMキーフレーム1214を自律型車両の座標フレームに変換して第2のWMフレーム1212を生成することを含み得る。
【0128】
いくつかの実装形態において、方法1300はさらに、先行WMキーフレームに適用するための変換を決定することを含み得る。この実例において先行WMキーフレームを自律型車両の座標フレームに変換することは、決定された変換に従って先行WMキーフレームを自律型車両の座標フレームに変換することを含み得る。たとえば、WMジェネレータ908のWM姿勢計算ノード1204は、ローカリゼーション結果1214に基づいて先行WMキーフレーム1214の有効な変換1220を決定、たとえば、計算、することができ、先行WMキーフレーム1214は、有効な変換1220に従って自律型車両の座標フレームに変換され得る。
【0129】
それに基づいて現在のWMキーフレームが計算されるマップ・データは、たとえば、本明細書に記載のLaneGraphのいずれかなどの車線グラフを含み得る。したがって、マップ・データに基づいて自律型車両の周りの現在のWMキーフレームを計算することは、車線グラフに基づいて自律型車両の周りの現在のWMキーフレームを計算することを含み得る。方法1300のいくつかの実施例はさらに、たとえば、
図11A、に関して説明されるようなHDマップの部分からの自律型車両の周りの有効な車線の収集を増分的に増大させることを含む、HDマップの一部から車線グラフを生成することを含み得る。たとえば、有効な車線の増分的に増大した収集は、第1の有効な車線バッファに記憶され得、方法1300はさらに、第2の有効な車線バッファに有効な車線の現在の増分的に増大した収集を投入することを含み得る。
【0130】
別法として又は追加で、先行WMキーフレームは、第1のWMバッファに記憶され得、方法1300はさらに、現在のWMキーフレームが計算されるとき、第2のWMバッファに現在のWMキーフレームを投入することを含み得る。一実例として、第1のWMバッファは、
図12のバッファ1216を含み得、第2のWMバッファは、
図12のバッファ1218を含み得る。いくつかの実施例において、現在のWMキーフレームを計算した後、現在のWMキーフレームは、新しい先行WMキーフレームとして第2のWMバッファに記憶され得、方法1300はさらに、現在のWMキーフレームを計算した後、追加のマップ・データ(たとえば、更新された車線グラフ)に基づいて自律型車両の周りの次のWMキーフレームを計算することと、次のWMキーフレームが計算されるときに第1のWMバッファに次のWMキーフレームを投入することと、次のWMキーフレームの計算を完了するより前の第3の時間において第2のWMバッファに記憶された新しい先行WMキーフレームを自律型車両の座標フレームに変換することと、第3の時間の後、次のWMキーフレームの計算を完了するより前の第4の時間において第2のWMバッファに記憶された新しい先行WMキーフレームを自律型車両の座標フレームに変換することと含み得る。
【0131】
図14は、本開示のいくつかの実施例による、WMフレームを生成するための別の方法1400を示す流れ図である。方法1400及び/又は本明細書に記載の他の方法の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法は、いくつか例を挙げると、独立型アプリケーション、サービス又はホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、或いは別の製品へのプラグインによって提供され得る。いくつかの実装形態において、方法1400及び/又は本明細書に記載の他の方法は、車両計算システム、たとえば、本明細書の他の箇所に記載の車両計算システム120、に記憶される及び/又はそれによって実施される。たとえば、方法1400は、自律型車両150又はリグの車両計算システム120でWMジェネレータ908によって、少なくとも部分的に、実施され得る。
【0132】
方法1400は、ブロック1402において、マップ・データに基づいて自律型車両の周りのWMキーフレームを経時的に及び第1の周波数で計算することを含む。たとえば、ブロック1302は、WMジェネレータ908のWMプロデューサ1202が第1の周波数で現在のLaneGraph1208のシーケンスから現在のWMキーフレームを順次に計算することを含み得る。
【0133】
方法1400は、ブロック1404において、複数のWMフレームが各WMキーフレームから生成されるように、経時的に及び第1の周波数より大きい第2の周波数で直近のWMキーフレームを自律型車両の座標フレームに変換してWMフレームを生成することを含む。たとえば、ブロック1404は、WMジェネレータ908のWMトランスフォーマ1206が、複数のWMキーフレーム1212が各先行WMキーフレーム1214から生成されるように、経時的に及び第2の周波数で順次的な先行する(又は直近の)WMキーフレーム1214を自律型車両の座標フレームに変換してWMキーフレーム1212を生成することを含み得る。
【0134】
いくつかの実装形態において、方法1400はさらに、直近のWMキーフレームに適用するための変換を経時的に及び第2の周波数で決定することを含み得る。この実例における直近の(又は先行する)WMキーフレームを自律型車両の座標フレームに経時的に変換することは、決定された変換に従って直近のWMキーフレームを自律型車両の座標フレームに変換することを含み得る。たとえば、WMジェネレータ908のWM姿勢計算ノード1204は、ローカリゼーション結果1214に基づいて先行WMキーフレーム1214の有効な変換1220を経時的に決定、たとえば、計算、することができ、先行WMキーフレーム1214は、有効な変換1220に従って自律型車両の座標フレームに変換され得る。
【0135】
それに基づいてWMキーフレームが計算されるマップ・データは、たとえば、本明細書に記載のLaneGraphのいずれかなどの車線グラフを含み得る。したがって、マップ・データに基づいて自律型車両の周りのWMキーフレームを計算することは、車線グラフに基づいて自律型車両の周りのWMキーフレームを計算することを含み得る。方法1400のいくつかの実施例はさらに、たとえば、
図11A、に関して説明されるようなHDマップの部分から自律型車両の周りの有効な車線の収集を増分的に増大させることを含む、HDマップの部分から車線グラフを生成することを含み得る。方法1400のいくつかの実施例はさらに、現在増分的に増大している有効な車線の収集を第1の有効な車線バッファ及び第2の有効な車線バッファに交互に投入することを含み得る。この及び他の実施例において、第1の有効な車線バッファは、有効な車線の直近の増分的に増大した収集が第2の有効な車線バッファに記憶されるときに現在増分的に増大している有効な車線の収集が投入され得、第2の有効な車線バッファは、有効な車線の直近の増分的に増大した収集が第1の有効な車線バッファに記憶されるときに現在増分的に増大している有効な車線の収集が投入され得る。
【0136】
別法として又は追加で、方法1400はさらに、WMキーフレームを第1のWMバッファ及び第2の世界モデル・バッファに交互に投入することを含み得る。一実例として、第1のWMバッファは、
図12のバッファ1216を含み得、第2のWMバッファは、
図12のバッファ1218を含み得る。第1のWMバッファは、直近のWMキーフレームが第2のWMバッファに記憶されるときに現在計算されているWMキーフレームが投入され得る。第2のWMバッファは、直近のWMキーフレームが第1のWMバッファに記憶されるときに現在計算されているWMキーフレームが投入され得る。
【0137】
本明細書に記載のいくつかの実施例による圧縮パフォーマンスは、有意であり得る。各LaneGraphのサイズは各変換のサイズより有意に大きいと想定され得る。この実例において、圧縮率R
cは、単純に、静的ジオメトリを有するLaneGraphの送信間隔、又はlaneGraphIntervalFramesでもよい。送信間隔laneGraphIntervalFramesは、RoadSegment roadSegmentLengthのサイズ及び車両速度vehicleSpeedに関連し得る。具体的には、送信間隔laneGraphIntervalFramesは、方程式1に従って決定され得る:
【数1】
20メートルのroadSegmentLength及び144.8キロメートル(90マイル)/時(又は約40メートル/秒)のvehicleSpeedを想定すると、圧縮率R
cは、約(20/40)*20=10であり得る。35.41キロメートル(22マイル)/時(又は約10メートル/秒)のvehicleSpeed及び先行する実例にあるような他の類似の条件を想定すると、圧縮率R
cは、約(20/10)*20=40であり得る。停止及び進む交通及び先行実例にあるような他の類似の条件を想定すると、圧縮率R
cは、100以上であり得る。
【0138】
したがって、方法1300、1400のいずれか若しくは両方又は本明細書に記載の他の方法において、第2の周波数に対する第1の周波数でWMキーフレームを計算することの圧縮率は、自律型車両の速度に依存し得、少なくとも10、少なくとも40、少なくとも100、又は何らかの他の値でもよい。
【0139】
例示的自律型車両
図15Aは、本開示のいくつかの実施例による、例示的自律型車両1500の図である。自律型車両1500(或いは本明細書で「車両1500」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気又は原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、及び/又は別のタイプの車両(たとえば、無人の及び/又は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、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。移動車1500は、自律運転レベルのレベル3~レベル5のうちの1つ又は複数による機能の能力を有し得る。たとえば、移動車1500は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
【0140】
移動車1500は、移動車のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。移動車1500は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム1550を含み得る。推進システム1550は、移動車1500の推進力を有効にするために、トランスミッションを含み得る、移動車1500のドライブ・トレインに接続され得る。推進システム1550は、スロットル/加速装置1552からの信号の受信に応答して制御され得る。
【0141】
ハンドルを含み得る、ステアリング・システム1554は、推進システム1550が動作しているときに(たとえば、移動車が移動中のときに)移動車1500のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム1554は、ステアリング・アクチュエータ1556から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能のオプションでもよい。
【0142】
ブレーキ・センサ・システム1546は、ブレーキ・アクチュエータ1548及び/又はブレーキ・センサからの信号の受信に応答して移動車ブレーキを動作させるために使用され得る。
【0143】
1つ又は複数のCPU、システム・オン・チップ(SoC:system on Chip)1504(
図15C)及び/又はGPUを含み得る、コントローラ1536は、移動車1500の1つ若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1つ又は複数のブレーキ・アクチュエータ1548を介して移動車ブレーキを動作させるために、1つ又は複数のステアリング・アクチュエータ1556を介してステアリング・システム1554を動作させるために、及び/又は1つ又は複数のスロットル/加速装置1552を介して推進システム1550を動作させるために、信号を送ることができる。コントローラ1536は、センサ信号を処理する、並びに律的運転を可能にするために及び/又は運転者の移動車1500の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1つ又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ1536は、自律運転機能のための第1のコントローラ1536、機能的安全性機能のための第2のコントローラ1536、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ1536、インフォテインメント機能のための第4のコントローラ1536、緊急状態における冗長性のための第5のコントローラ1536、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ1536が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ1536が、単一の機能、及び/又はその任意の組合せを処理することができる。
【0144】
コントローラ1536は、1つ又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して移動車1500の1つ若しくは複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ1558(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ1560、超音波センサ1562、LIDARセンサ1564、慣性計測装置(IMU:inertial measurement unit)センサ1566(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン1596、ステレオ・カメラ1568、ワイドビュー・カメラ1570(たとえば、魚眼カメラ)、赤外線カメラ1572、サラウンド・カメラ1574(たとえば、360度カメラ)、長距離及び/又は中距離カメラ1598、スピード・センサ1544(たとえば、移動車1500のスピードを測定するための)、振動センサ1542、ステアリング・センサ1540、ブレーキ・センサ1546(たとえば、ブレーキ・センサ・システム1546の一部としての)、及び/又は他のセンサ・タイプから受信され得る。
【0145】
コントローラ1536のうちの1つ又は複数のコントローラは、移動車1500の計器群1532から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ1534、可聴式アナンシエータ、ラウドスピーカ、及び/又は移動車1500の他の構成要素を介して提供することができる。出力は、移動車ベロシティ、スピード、時間、マップ・データ(たとえば、
図15CのHDマップ1522)、位置データ(たとえば、マップ上などの、移動車1500の位置)、方向、他の移動車の位置(たとえば、占有グリッド)、コントローラ1536によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ1534は、1つ又は複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在、及び/又は移動車が行った、行っている、又は行うであろう運転操作(たとえば、今、車線変更をしていること、3.22km(2マイル)内の出口34Bを出ることなど)に関する情報を表示することができる。
【0146】
移動車1500はさらに、1つ若しくは複数のワイヤレス・アンテナ1526及び/又はモデムを使用して1つ若しくは複数のネットワークを介して通信することができるネットワーク・インターフェース1524を含む。たとえば、ネットワーク・インターフェース1524は、LTE、WCDMA、UMTS、GSM、CDMA2000などを介する通信の能力を有し得る。ワイヤレス・アンテナ1526はまた、ブルートゥース、ブルートゥースLE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、移動車、モバイル・デバイスなど)の間の通信を可能にすることができる。
【0147】
図15Bは、本開示のいくつかの実施例による、
図15Aの例示的自律型車両1500のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1つの例示的実施例であり、制限することは意図されていない。たとえば、追加の及び/又は代替カメラが含まれ得る、及び/又はカメラは移動車1500の異なる位置に置かれ得る。
【0148】
カメラのカメラ・タイプは、移動車1500の構成要素及び/又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(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カラー・フィルタ・アレイを有するカメラなどのクリア画素カメラは、光感度を上げるための取り組みにおいて使用され得る。
【0149】
いくつかの実例では、カメラのうちの1つ又は複数が、高度運転者支援システム(ADAS:advanced driver assistance system)機能(たとえば、冗長又はフェイルセーフ設計の一部として)を実行するために使用され得る。たとえば、多機能モノ・カメラは、車線逸脱警報、交通標識アシスト及びインテリジェント・ヘッドランプ制御を含む機能を提供するために設置され得る。カメラのうちの1つ又は複数(たとえば、すべてのカメラ)が、画像データ(たとえば、ビデオ)を同時に記録及び提供することができる。
【0150】
カメラのうちの1つ又は複数は、カメラの画像データ・キャプチャ能力を妨げることがある自動車内からの迷光及び反射(たとえば、フロントガラスのミラーにおいて反射されたダッシュボードからの反射)を取り除くために、カスタム設計された(3D印刷された)部品などの取付部品において取り付けられ得る。サイドミラー取付部品を参照すると、サイドミラー部品は、カメラ取付板がサイドミラーの形状に合うように、カスタム3D印刷され得る。いくつかの実例では、カメラは、サイドミラー内に統合され得る。サイドビュー・カメラについては、カメラはまた、キャビンの各角にある4個の支柱内に統合され得る。
【0151】
移動車1500の前の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1つ若しくは複数のコントローラ1536及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい移動車進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(LDW(Lane Departure Warning))、自律的クルーズ制御(ACC(Autonomous Cruise Control))、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
【0152】
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交差する交通又は自転車)からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ1570でもよい。
図15Bにはワイドビュー・カメラは1つだけ示されているが、移動車1500には任意の数のワイドビュー・カメラ1570が存在し得る。加えて、長距離カメラ1598(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ1598はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
【0153】
1つ又は複数のステレオ・カメラ1568もまた、前向きの構成に含まれ得る。ステレオ・カメラ1568は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(たとえば、FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、移動車の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ1568は、2個のカメラ・レンズ(左と右に1つずつ)と、移動車から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ1568が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
【0154】
移動車1500の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ1574(たとえば、
図15Bに示されるような4個のサラウンド・カメラ1574)は、移動車1500の周りに位置付けられ得る。サラウンド・カメラ1574は、ワイドビュー・カメラ1570、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、移動車の前、後ろ、及び側面に配置され得る。代替配置において、移動車は、3個のサラウンド・カメラ1574(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1つ又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
【0155】
移動車1500の後ろに対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ1598、ステレオ・カメラ1568)、赤外線カメラ1572など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
【0156】
図15Cは、本開示のいくつかの実施例による、
図15Aの例示的自律型車両1500の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素はともに除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【0157】
図15Cの移動車1500の構成要素、特徴、及びシステムのそれぞれは、バス1502を介して接続されるものとして図示されている。バス1502は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキ、ステアリング、フロントガラス・ワイパなどの作動など、移動車1500の様々な特徴及び機能の制御を助けるために使用される移動車1500内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の移動車状況指標を見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
【0158】
バス1502は、CANバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、CANバスに加えて、又はこのその代替として、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス1502を表すために使用されているが、これは制限することを意図されていない。たとえば、1つ若しくは複数のCANバス、1つ若しくは複数のFlexRayバス、1つ若しくは複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1つ若しくは複数の他のタイプのバスを含み得る、任意の数のバス1502が存在し得る。いくつかの実例では、2個以上のバス1502が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス1502は衝突回避機能のために使用されてもよく、第2のバス1502は作動制御のために使用されてもよい。任意の実例において、各バス1502は、移動車1500の構成要素のいずれかと通信し得、2個以上のバス1502が同じ構成要素と通信し得る。いくつかの実例では、移動車内の各SoC1504、各コントローラ1536、及び/又は各コンピュータは、同じ入力データ(たとえば、移動車1500のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
【0159】
移動車1500は、
図15Aに関して本明細書で説明されるものなど、1つ又は複数のコントローラ1536を含み得る。コントローラ1536は、様々な機能のために使用され得る。コントローラ1536は、移動車1500の様々な他の構成要素及びシステムのいずれかに連結されてもよく、移動車1500、移動車1500の人工知能、移動車1500のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
【0160】
移動車1500は、システム・オン・チップ(SoC)1504を含み得る。SoC1504は、CPU1506、GPU1508、プロセッサ1510、キャッシュ1512、加速装置1514、データ・ストア1516、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC1504は、様々なプラットフォーム及びシステム内の移動車1500を制御するために使用され得る。たとえば、SoC1504は、1つ又は複数のサーバ(たとえば、
図15Dのサーバ1578)からネットワーク・インターフェース1524を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ1522を有するシステム(たとえば、移動車1500のシステム)において結合され得る。
【0161】
CPU1506は、CPUクラスタ又はCPU複合体(或いは、「CCPLEX」とも称される)を含み得る。CPU1506は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施例では、CPU1506は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施例では、CPU1506は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU1506(たとえば、CCPLEX)は、CPU1506のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
【0162】
CPU1506は、以下の特徴のうちの1つ又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU1506は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
【0163】
GPU1508は、統合されたGPU(或いは本明細書において「iGPU」と称される)を含み得る。GPU1508は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU1508は、強化されたテンソル命令セットを使用することができる。GPU1508は、1つ又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施例では、GPU1508は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU1508は、コンピュータ・ベースのアプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU1508は、1つ若しくは複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用することができる。
【0164】
GPU1508は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、GPU1508は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは制限することを意図されておらず、GPU1508は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合精度NVIDIAテンソル・コア、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
【0165】
GPU1508は、一部の実例では、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)が使用され得る。
【0166】
GPU1508は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU1508がCPU1506ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU1508メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU1506に送信され得る。応答して、CPU1506は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU1508に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU1506とGPU1508との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU1508へのアプリケーションのGPU1508プログラミング及び移植を単純化する。
【0167】
加えて、GPU1508は、他のプロセッサのメモリへのGPU1508のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
【0168】
SoC1504は、本明細書に記載のものを含む任意の数のキャッシュ1512を含み得る。たとえば、キャッシュ1512は、CPU1506とGPU1508との両方に利用可能な(たとえば、CPU1506とGPU1508との両方に接続された)L3キャッシュを含み得る。キャッシュ1512は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、4MB以上を含み得る。
【0169】
SoC1504は、車両1500の様々なタスク又は動作のいずれか(たとえば、処理DNN)に関して処理を実行する際に活用され得る論理演算ユニット(ALU:arithmetic logic unit)を含み得る。加えて、SoC1504は、システム内で数学演算を実行するための浮動小数点演算ユニット(FPU:floating point unit)(又は他のマス・コプロセッサ又は数値演算コプロセッサ・タイプ)を含み得る。たとえば、SoC104は、CPU1506及び/又はGPU1508内の実行ユニットとして統合された1つ又は複数のFPUを含み得る。
【0170】
SoC1504は、1つ又は複数の加速装置1514(たとえば、ハードウェア・加速装置、ソフトウェア・加速装置、又はその組合せ)を含み得る。たとえば、SoC1504は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU1508を補完するために及びGPU1508のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU1508のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置1514は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
【0171】
加速装置1514(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(DLA:deep learning accelerator)を含み得る。DLAは、深層学習アプリケーション及び推論のために1秒あたり追加の10兆の動作を提供するように構成することができる1つ又は複数のテンソル処理ユニット(TPU:Tensor processing unit)を含み得る。TPUは、画像処理機能(たとえば、CNN、RCNNなどの)を実行するように構成及び最適化された加速装置でもよい。DLAはさらに、特定のセットのニューラル・ネットワーク・タイプ及び浮動小数点演算、並びに推論のために最適化され得る。DLAの設計は、汎用GPUよりも1ミリメートルあたりより多くのパフォーマンスを提供することができ、CPUのパフォーマンスを大きく超える。TPUは、たとえば、特徴と重みとの両方についてINT8、INT16、及びFP16データ・タイプをサポートする、単一インスタンス畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実行することができる。
【0172】
DLAは、以下を含むがこれらに限定されない、様々な機能のいずれかのために処理済み又は未処理のデータでニューラル・ネットワーク、特にCNN、を迅速に及び効率的に実行することができる:カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び移動車所有者識別のためのCNN、及び/又は、セキュリティ及び/又は安全性関連イベントのためのCNN。
【0173】
DLAは、GPU1508の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU1508のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU1508及び/又は他の加速装置1514に任せることができる。
【0174】
加速装置1514(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(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)、及び/又は任意の数のベクトル・プロセッサを含み得るが、これらに限定されない。
【0175】
RISCコアは、画像センサ(たとえば、本明細書に記載のカメラのうちのいずれかのカメラの画像センサ)、画像信号プロセッサ、及び/又は同類のものと相互作用することができる。それぞれのRISCコアは、任意の量のメモリを含み得る。RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用することができる。いくつかの実例では、RISCコアは、リアルタイム・オペレーティング・システム(RTOS:real-time operating system)を実行することができる。RISCコアは、1つ若しくは複数の集積回路デバイス、特定用途向け集積回路(ASIC)、及び/又はメモリ・デバイスを使用して、実装され得る。たとえば、RISCコアは、命令キャッシュ及び/又はしっかりと結合されたRAMを含み得る。
【0176】
DMAは、CPU1506から独立したシステム・メモリにPVAの構成要素がアクセスすることを可能にし得る。DMAは、多次元アドレス指定及び/又は循環アドレス指定をサポートすることを含むがこれに限定されないPVAに最適化をもたらすために使用される任意の数の特徴をサポートすることができる。いくつかの実例では、DMAは、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る、6次元まで又はそれ以上のアドレス指定をサポートすることができる。
【0177】
ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのプログラミングを効率的に柔軟に実行する及び信号処理能力を提供するように設計され得るプログラマブル・プロセッサでもよい。いくつかの実例では、PVAは、PVAコア及び2個のベクトル処理サブシステム・パーティションを含み得る。PVAコアは、プロセッサ・サブシステム、DMAエンジン(たとえば、2個のDMAエンジン)、及び/又は他の周辺装置を含み得る。ベクトル処理サブシステムは、PVAの1次的処理エンジンとして動作することができ、ベクトル処理ユニット(VPU:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、VMEM)を含み得る。VPUコアは、たとえば、単一の命令、複数のデータ(SIMD)、超長命令語(VLIW:very long instruction word)デジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。SIMD及びVLIWの組合せは、スループット及びスピードを高めることができる。
【0178】
それぞれのベクトル・プロセッサは、命令キャッシュを含み得、専用のメモリに連結され得る。結果として、一部の実例では、それぞれのベクトル・プロセッサは、他のベクトル・プロセッサから独立して実行するように構成され得る。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、データ並列処理を用いるように構成され得る。たとえば、一部の実施例では、単一のPVAに含まれる2個以上のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、しかし画像の異なる領域上で、実行することができる。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを、同じ画像上で、同時に実行することができ、或いは順次画像又は画像の部分で異なるアルゴリズムを実行することさえできる。特に、任意の数のPVAは、ハードウェア加速クラスタに含まれ得、任意の数のベクトル・プロセッサは、それぞれのPVAに含まれ得る。加えて、PVAは、全体的システム安全性を高めるために、追加のエラー訂正コード(ECC:error correcting code)メモリを含み得る。
【0179】
加速装置1514(たとえば、ハードウェア加速クラスタ)は、加速装置1514のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
【0180】
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC61508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
【0181】
いくつかの実例では、SoC1504は、2018年8月10日に出願された米国特許出願第16/101,232号に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。一部の実施例では、1つ又は複数の木の走査ユニット(TTU:tree traversal unit)が、1つ又は複数のレイトレーシング関連動作を実行するために使用され得る。
【0182】
加速装置1514(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。PVAは、ADAS及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。PVAの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、PVAは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、PVAは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
【0183】
たとえば、本技術の1つの実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは制限することを意図されていない。レベル3~5の自律運転のための多数のアプリケーションは、動き推定/ステレオ・マッチング・オンザフライ(たとえば、SFM(structure from motion)、歩行者認識、レーン検出など)を必要とする。PVAは、2個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
【0184】
いくつかの実例では、PVAは、高密度のオプティカル・フローを実行するために使用され得る。たとえば、PVAは、次のRADARパルスを発する前に処理済みのRADAR信号を提供するために、未加工のRADARデータを処理する(たとえば、4D高速フーリエ変換を使用)ために使用され得る。他の実例において、PVAは、たとえば、飛行データの未加工の時間を処理して飛行データの処理済み時間を提供することにより、飛行深度処理の時間に使用される。
【0185】
DLAは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するために使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が誤判定検出ではなくて真陽性検出と考えられるべきであるかに関するさらなる決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動非常ブレーキ(AEB:automatic emergency braking)システムにおいて、誤判定検出は、移動車に非常ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、AEBのトリガとして考えられるべきである。DLAは、信頼性値を退行するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、(たとえば、別のサブシステムから)取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、LIDARセンサ1564又はRADARセンサ1560)から取得された物体の移動車1500方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ1566出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
【0186】
SoC1504は、データ・ストア1516(たとえば、メモリ)を含み得る。データ・ストア1516は、SoC1504のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア1516は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア1516は、L2又はL3キャッシュ1512を備え得る。データ・ストア1516の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置1514に関連するメモリの参照を含み得る。
【0187】
SoC1504は、1つ又は複数のプロセッサ1510(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ1510は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC1504ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC1504熱及び温度センサの管理、及び/又はSoC1504電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC1504は、リング発振器を使用してCPU1506、GPU1508、及び/又は加速装置1514の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC1504をより低い電力状態に置く及び/又は移動車1500をショーファーの安全停止モードにする(たとえば、移動車1500を安全停止させる)ことができる。
【0188】
プロセッサ1510は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
【0189】
プロセッサ1510は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
【0190】
プロセッサ1510は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
【0191】
プロセッサ1510は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
【0192】
プロセッサ1510は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
【0193】
プロセッサ1510は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ1570で、サラウンド・カメラ1574で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、移動車の目的地を変更する、移動車のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
【0194】
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
【0195】
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU1508は、新しい表面を連続してレンダリングために必要とされない。GPU1508の電源が入れられ、3Dレンダリングをアクティブに実行しているときでも、ビデオ画像合成器は、GPU1508をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
【0196】
SoC1504は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、及び/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC1504は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
【0197】
SoC1504は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC1504は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ1564、RADARセンサ1560など)、バス1502からのデータ(たとえば、移動車1500のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ1558からのデータを処理するために使用され得る。SoC1504は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU1506を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
【0198】
SoC1504は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC1504は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置1514が、CPU1506と結合されるとき、GPU1508、及びデータ・ストア1516は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
【0199】
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、移動車内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
【0200】
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU1520)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
【0201】
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを移動車の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を移動車の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU1508上などで、同時に実行することができる。
【0202】
いくつかの実例では、顔認識及び移動車所有者識別のためのCNNは、カメラ・センサからのデータを使用して移動車1500の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに移動車を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が移動車を離れるときに移動車の動作を停止させるために、使用され得る。このようにして、SoC1504は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
【0203】
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン1596からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC1504は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施例では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ1558によって識別されるように、移動車が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ1562の支援を受けて、移動車を減速する、道の端に停止させる、移動車を駐車する、及び/又は移動車をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
【0204】
移動車は、高速相互接続(たとえば、PCIe)を介してSoC1504に連結され得るCPU1518(たとえば、個別のCPU、又はdCPU)を含み得る。CPU1518は、たとえば、X86プロセッサを含み得る。CPU1518は、たとえば、ADASセンサとSoC1504との間の潜在的に不整合の結果を調停すること、及び/又はコントローラ1536及び/又はインフォテインメントSoC1530の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
【0205】
移動車1500は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC1504に連結され得るGPU1520(たとえば、個別のGPU、又はdGPU)を含み得る。GPU1520は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、移動車1500のセンサからの入力(たとえば、センサ・データ)に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
【0206】
移動車1500は、1つ又は複数のワイヤレス・アンテナ1526(たとえば、セルラ・アンテナ、ブルートゥース・アンテナなど、異なる通信プロトコルのための1つ又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース1524をさらに含み得る。ネットワーク・インターフェース1524は、インターネットを介するクラウドとの(たとえば、サーバ1578及び/又は他のネットワーク・デバイスとの)、他の移動車との、及び/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の移動車と通信するために、直接リンクが2個の移動車の間に確立され得る、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、移動車対移動車通信リンクを使用し、提供され得る。移動車対移動車通信リンクは、移動車1500に近接する移動車(たとえば、移動車1500の前の、横の、及び/又は後ろの移動車)に関する移動車1500情報を提供することができる。この機能は、移動車1500の共同適応クルーズ制御機能の一部でもよい。
【0207】
ネットワーク・インターフェース1524は、変調及び復調機能を提供する及びコントローラ1536がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース1524は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA、UMTS、GSM、CDMA2000、ブルートゥース、ブルートゥースLE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
【0208】
移動車1500は、チップ外の(たとえば、SoC1504外の)ストレージを含み得るデータ・ストア1528をさらに含み得る。データ・ストア1528は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1つ又は複数の記憶素子を含み得る。
【0209】
車両1500は、マッピング、知覚、占有グリッド生成、及び/又は進路計画策定機能を支援するためにGNSSセンサ1558(たとえば、GPS及び/又は支援されたGPSセンサ)をさらに含み得る。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ1558が、使用され得る。
【0210】
移動車1500は、RADARセンサ1560をさらに含み得る。RADARセンサ1560は、暗闇及び/又は厳しい気象条件においても、長距離移動車検出のために移動車1500によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ1560は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ1560によって生成されたデータを送信するために)CAN及び/又はバス1502を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして制限なしに、RADARセンサ1560は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
【0211】
RADARセンサ1560は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、適応クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ1560は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で移動車1500の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、移動車1500のレーンに入る又はこれを去る移動車を迅速に検出することを可能にする。
【0212】
一実例として、中距離RADARシステムは、1560m(前)又は80m(後)までの範囲、及び42度(前)又は1550度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、移動車の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
【0213】
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
【0214】
移動車1500は、超音波センサ1562をさらに含み得る。移動車1500の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ1562は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ1562が使用され得、異なる超音波センサ1562が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ1562は、ASIL Bの機能的安全性レベルにおいて動作することができる。
【0215】
移動車1500はLIDARセンサ1564を含み得る。LIDARセンサ1564は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ1564は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、移動車1500は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ1564を含み得る。
【0216】
いくつかの実例では、LIDARセンサ1564は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ1564は、たとえば、2cm~3cmの精度を有し、100Mbpsイーサネット(登録商標)接続のサポートを有して、約100mの広告された範囲を有し得る。いくつかの実例では、1つ又は複数の非突出したLIDARセンサ1564が、使用され得る。そのような実例では、LIDARセンサ1564は、移動車1500の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ1564は、低反射物体についても200mの範囲を有し、120度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ1564は、45度と135度との間の水平視野向けに構成され得る。
【0217】
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで移動車の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、移動車から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、移動車1500の各側面に1つずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ1564は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
【0218】
移動車は、IMUセンサ1566をさらに含み得る。一部の実例では、IMUセンサ1566は、移動車1500の後部車軸の中央に位置付けられ得る。IMUセンサ1566は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ1566は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ1566は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
【0219】
一部の実施例では、IMUセンサ1566は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ1566は、GPSからIMUセンサ1566までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を移動車1500が推定することを可能にし得る。いくつかの実例では、IMUセンサ1566及びGNSSセンサ1558は、単一の統合されたユニットにおいて結合され得る。
【0220】
移動車は、移動車1500内及び/又は周囲に置かれたマイクロフォン1596を含み得る。マイクロフォン1596は、中でも、緊急車両検出及び識別のために使用され得る。
【0221】
移動車は、ステレオ・カメラ1568、ワイドビュー・カメラ1570、赤外線カメラ1572、サラウンド・カメラ1574、長距離及び/又は中距離カメラ1598、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、移動車1500の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、移動車1500の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、移動車1500の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、移動車は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、
図15A及び
図15Bに関連して本明細書においてさらに詳しく説明される。
【0222】
移動車1500は、振動センサ1542をさらに含み得る。振動センサ1542は、車軸など、移動車の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ1542が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
【0223】
移動車1500は、ADASシステム1538を含み得る。一部の実例では、ADASシステム1538は、SoCを含み得る。ADASシステム1538は、自律/適応/自動クルーズ制御(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)、及び/又は他の特徴及び機能を含み得る。
【0224】
ACCシステムは、RADARセンサ1560、LIDARセンサ1564、及び/又はカメラを使用し得る。ACCシステムは、縦ACC及び/又は横ACCを含み得る。縦ACCは、移動車1500の直ぐ前の移動車までの距離を監視及び制御し、前方の移動車からの安全距離を維持するために移動車速度を自動的に調整する。横ACCは、距離の保持を実行し、必要なときにレーンを変更するように移動車1500にアドバイスする。横ACCは、LC及びCWSなどの他のADASアプリケーションに関連する。
【0225】
CACCは、ワイヤレス・リンクを介して他の移動車からネットワーク・インターフェース1524及び/又はワイヤレス・アンテナ1526を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の移動車からの情報を使用する。直接リンクは、移動車対移動車(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対移動車(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の移動車(たとえば、移動車1500と同じレーン内にある、移動車1500の直ぐ前の移動車)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。移動車1500の前方の移動車の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
【0226】
運転者が修正行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1560を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
【0227】
AEBシステムは、別の移動車又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1560を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突切迫ブレーキなどの技法を含み得る。
【0228】
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、移動車1500が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
【0229】
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、移動車1500が車線をはみ出し始めた場合に移動車1500を修正するためにステアリング入力又はブレーキを提供する。
【0230】
BSWシステムは、自動車の死角において移動車の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。システムは、運転者が方向指示器を使用するときに、付加的警告を提供することができる。BSWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動構成要素に電気的に連結された、専用プロセッサ、DSP、FPGA、及び/又はASICに連結された、後ろ側を向いたカメラ及び/又はRADARセンサ1560を使用し得る。
【0231】
RCTWシステムは、車両1500がバックしているときに物体が後方確認カメラの範囲の外で検出されたときに視覚、可聴、及び/又は触覚通知を提供することができる。いくつかのRCTWシステムは、車両ブレーキが衝突を回避するために適用されることを確実にするために、AEBを含む。RCTWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動構成要素、に電気的に連結された、専用プロセッサ、DSP、FPGA、及び/又はASICに連結された、1つ又は複数の後ろを向いたRADARセンサ1560を使用し得る。
【0232】
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のADASシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両1500では、結果が矛盾する場合には、移動車1500自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ1536又は第2のコントローラ1536)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ADASシステム1538は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム1538からの出力は、監督MCUに提供され得る。1次的コンピュータ及び2次的コンピュータからの出力が矛盾する場合、監督MCUは、安全な動作を確実にするためにその矛盾をどのように調整するかを決定する必要がある。
【0233】
いくつかの実例では、1次的コンピュータは、選択された結果における1次的コンピュータの信頼性を指示する、信頼性スコアを監督MCUに提供するように構成され得る。信頼性スコアが閾値を超えた場合、監督MCUは、2次的コンピュータが矛盾する又は不整合の結果を与えるかどうかにかかわらず、1次的コンピュータの指示に従い得る。信頼性スコアが閾値を満たさない場合、及び1次的及び2次的コンピュータが異なる結果を示す(たとえば、矛盾する)場合、監督MCUは、コンピュータの間で調停して適切な結果を決定することができる。
【0234】
監督MCUは、2次的コンピュータが誤ったアラームを提供する状態を、1次的コンピュータ及び2次的コンピュータからの出力に基づいて、判定するようにトレーニング及び構成されたニューラル・ネットワークを実行するように構成され得る。したがって、監督MCU内のニューラル・ネットワークは、2次的コンピュータの出力が信頼できるとき、及びそれが信頼できないときを学習することができる。たとえば、2次的コンピュータがRADARベースのFCWシステムであるとき、監督MCU内のニューラル・ネットワークは、アラームをトリガする下水溝の鉄格子又はマンホールの蓋など、実際には危険ではない金属製の物をいつFCWが識別しているかを学習することができる。同様に、2次的コンピュータがカメラベースのLDWシステムであるとき、監督MCU内のニューラル・ネットワークは、自転車に乗った人又は歩行者が存在し、車線逸脱が、実際には、最も安全な操作であるときに、LDWを無視することを学習することができる。監督MCU上で実行中のニューラル・ネットワークを含む実施例では、監督MCUは、関連メモリを有するニューラル・ネットワークを実行するのに適したDLA又はGPUのうちの少なくとも1つを含み得る。好ましい実施例において、監督MCUは、SoC1504の構成要素を備え得る、及び/又はSoC1504の構成要素として含まれ得る。
【0235】
他の実例において、ADASシステム1538は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータによって使用されるソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
【0236】
いくつかの実例では、ADASシステム1538の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム1538が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
【0237】
移動車1500は、インフォテインメントSoC1530(たとえば、移動車内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の個別の構成要素を含み得る。インフォテインメントSoC1530は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの移動車関連情報)を移動車1500に提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC1530は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース接続、カーピュータ、車内エンターテインメント、Wi-Fi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ1534、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/又はシステムを制御する及び/又はこれと相互に作用するための)、及び/又は他の構成要素を含み得る。インフォテインメントSoC1530は、ADASシステム1538からの情報、計画された移動車操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、移動車情報、道路情報など)、及び/又は他の情報など、移動車のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
【0238】
インフォテインメントSoC1530は、GPU機能性を含み得る。インフォテインメントSoC1530は、バス1502(たとえば、CANバス、イーサネット(登録商標)など)を介して、移動車1500の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ1536(たとえば、移動車1500の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC1530は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC1530は、本明細書に記載のように、移動車1500をショーファーの安全停止モードにすることができる。
【0239】
移動車1500は、計器群1532(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群1532は、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。計器群1532は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントSoC1530及び計器群1532の間で表示及び/又は共有され得る。言い換えれば、計器群1532は、インフォテインメントSoC1530の一部として含まれてもよく、逆もまた同様である。
【0240】
図15Dは、本開示のいくつかの実施例による、
図15Aのクラウドベースのサーバと例示的自律型車両1500との間の通信のシステム図である。システム1576は、サーバ1578、ネットワーク1590、及び、移動車1500を含む移動車を含み得る。サーバ1578は、2個以上のGPU1584(A)~1584(H)(本明細書でGPU1584と総称される)、PCIeスイッチ1582(A)~1582(H)(本明細書でPCIeスイッチ1582と総称される)、及び/又はCPU1580(A)~1580(B)(本明細書でCPU1580と総称される)を含み得る。GPU1584、CPU1580、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLinkインターフェース1588及び/又はPCIe接続1586などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU1584は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU1584及びPCIeスイッチ1582は、PCIe相互接続を介して接続される。8個のGPU1584、2個のCPU1580、及び4個のPCIeスイッチ1582が図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ1578は、任意の数のGPU1584、CPU1580、及び/又はPCIeスイッチを含み得る。たとえば、サーバ1578は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU1584を含み得る。
【0241】
サーバ1578は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク1590を介して、移動車から、受信することができる。サーバ1578は、ニューラル・ネットワーク1592、更新されたニューラル・ネットワーク1592、及び/又は、交通及び道路状態に関する情報を含むマップ情報1594をネットワーク1590を介して移動車に送信することができる。マップ情報1594の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ1522の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク1592、更新されたニューラル・ネットワーク1592、及び/又はマップ情報1594は、環境において任意の数の移動車から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ1578及び/又は他のサーバを使用する)データ・センタにおいて実行されたトレーニングに基づいて、生じた可能性がある。
【0242】
サーバ1578は、トレーニング・データに基づいてマシン学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、移動車によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。トレーニングは、たとえば以下のクラスを含むがこれらに限定されない、任意の1つ又は複数のクラスのマシン学習技法に従って、実行され得る:監視されたトレーニング、半監視されたトレーニング、監視されていないトレーニング、自己学習、強化学習、連合型学習、転移学習、特徴学習(主要構成要素及びクラスタ分析を含む)、マルチ線形部分空間学習、多様体学習、表現学習(予備辞書学習を含む)、ルールに基づくマシン学習、異常検出、及びそれらの変更形態若しくは組合せ。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、移動車によって使用され得(たとえば、ネットワーク1590を介して移動車に送信される)、及び/又は、マシン学習モデルは、移動車を遠隔監視するために、サーバ1578によって使用され得る。
【0243】
いくつかの実例では、サーバ1578は、移動車からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ1578は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU1584によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ1578は、CPU電源式データ・センタのみを使用する深層学習インフラストラクチャを含み得る。
【0244】
サーバ1578の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して移動車1500内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、移動車1500がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、移動車1500からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他のマシン学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、移動車1500によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、移動車1500内のAIは正常に機能していないという結論を下した場合、サーバ1578は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように移動車1500のフェイルセーフ・コンピュータに命じる移動車1500への信号を送信することができる。
【0245】
推論のために、サーバ1578は、GPU1584及び1つ又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
【0246】
例示的コンピューティングデバイス
図16は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス1600の一実例のブロック図である。計算デバイス1600は、以下のデバイスを間接的に又は直接的につなぐ相互接続システム1602を含み得る:メモリ1604、1つ又は複数の中央処理装置(CPU)1606、1つ又は複数のグラフィック処理ユニット(GPU)1608、通信インターフェース1610、I/Oポート1612、入力/出力構成要素1614、電力供給装置1616、1つ又は複数の提示構成要素1618(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット1620。
【0247】
図16の様々なブロックは、線で相互接続システム1602を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素1618は、I/O構成要素1614と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU1606及び/又はGPU1608はメモリを含み得る(たとえば、メモリ1604は、GPU1608、CPU1606、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、
図16の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、「拡張現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、
図16の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
【0248】
相互接続システム1602は、1つ又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。相互接続システム1602は、1つ又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VESA(video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。一部の実施例では、構成要素の間に直接接続が存在する。一実例として、CPU1606は、メモリ1604に直接接続され得る。さらに、CPU1606は、GPU1608に直接接続され得る。構成要素の間に直接、又はポイント対ポイント接続が存在する場合、相互接続システム1602は、接続を実施するためのPCIeリンクを含み得る。これらの実例では、PCIバスは、計算デバイス1600に含まれる必要はない。
【0249】
メモリ1604は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス1600によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
【0250】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ1604は、オペレーティング・システムなど、(たとえば、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用し得る及び計算デバイス1600によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
【0251】
コンピュータ記憶媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1つ又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、コンピュータ記憶媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【0252】
CPU1606は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1600の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。CPU1606は、多数のソフトウェア・スレッドを同時に処理する能力を有する1つ又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU1606は、任意のタイプのプロセッサを含み得、実装された計算デバイス1600のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス1600のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたAdvanced RISC Machines(ARM)プロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス1600は、計算コプロセッサなど、1つ又は複数のマイクロプロセッサ又は補助コプロセッサ内の1つ又は複数のCPU1606を含み得る。
【0253】
CPU1606に加えて又はその代わりに、GPU1608は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1600の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。GPU1608のうちの1つ若しくは複数は、統合されたGPU(たとえば、CPU1606のうちの1つ又は複数とでもよく、及び/又はGPU1608のうちの1つ若しくは複数は、離散GPUでもよい。実施例では、GPU1608のうちの1つ又は複数は、CPU1606のうちの1つ又は複数のコプロセッサでもよい。GPU1608は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、計算デバイス1600によって使用され得る。たとえば、GPU1608は、GPUによる汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU1608は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU1608は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU1606からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU1608は、画素データ又は任意の他の適切なデータ、たとえばGPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば表示メモリ、を含み得る。表示メモリは、メモリ1604の一部として含まれ得る。GPU1608は、並行して動作する(たとえば、リンクを介して)2個以上のGPUを含み得る。リンクは、GPUに直接接続することができ(たとえば、NVLINKを使用して)、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。ともに結合されるとき、各GPU1608は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、独自のメモリを含むことができ、又は他のGPUとメモリを共有することができる。
【0254】
CPU1606及び/又はGPU1608に加えて又はその代わりに、論理ユニット1620は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1600のうちの1つ又は複数を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。実施例では、CPU1606、GPU1608、及び/又は論理ユニット1620は、方法、プロセス及び/又はその部分の任意の組合せを離散的に又は合同で実行することができる。論理ユニット1620のうちの1つ若しくは複数は、CPU1606及び/若しくはGPU1608のうちの1つ若しくは複数の一部でもよく及び/又はそこで統合されてもよく、及び/又は、論理ユニット1620のうちの1つ若しくは複数は、CPU1606及び/若しくはGPU1608に対する離散構成要素であっても若しくは他の方法でそれらの外部にあってもよい。実施例では、論理ユニット1620のうちの1つ又は複数は、CPU1606のうちの1つ若しくは複数及び/又はGPU1608のうちの1つ若しくは複数のコプロセッサでもよい。
【0255】
論理ユニット1620の実例は、1つ又は複数の処理コア及び/又はその構成要素、たとえば、テンソル・コア(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)エレメント、及び/又は同類のもの、を含む。
【0256】
通信インターフェース1610は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス1600が他の計算デバイスと通信することを可能にする、1つ又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース1610は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース、ブルートゥースLE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
【0257】
I/Oポート1612は、そのうちのいくつかは計算デバイス1600に内蔵(たとえば、統合)され得る、I/O構成要素1614、提示構成要素1618、及び/又は他の構成要素を含む、他のデバイスに計算デバイス1600が論理的に連結されることを可能にすることができる。例示的なI/O構成要素1614は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素1614は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス1600のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス1600は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス1600は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス1600によって使用され得る。
【0258】
電力供給装置1616は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置1616は、計算デバイス1600の構成要素が動作することを可能にするために計算デバイス1600に電力を提供することができる。
【0259】
提示構成要素1618は、ディスプレイ(たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はその組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素1618は、他の構成要素(たとえば、GPU1608、CPU1606など)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。
【0260】
本開示は、コンピュータ又は、携帯情報端末若しくは他のハンドヘルド・デバイスなどの、他のマシンによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又はマシン使用可能命令との一般的関連において説明されることがある。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造体などを含むプログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、家電製品、汎用コンピュータ、より特殊な計算デバイスなどを含む、様々な構成で実施され得る。本開示はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型コンピューティング環境において実施され得る。
【0261】
本明細書では、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つを含み得る。
【0262】
加えて、「基づく」という用語の使用は、「単に基づく」又は「のみに基づく」として解釈されるべきではない。そうではなくて、第1の要素が第2の要素「に基づく」ことは、第1の要素が第2の要素だけに基づく或いは第2の要素及び1つ又は複数の追加要素に基づくインスタンスを含む。
【0263】
本開示の主題は、法定の要件を満たすために特異性を有して記述されている。しかしながら、その記述自体が本開示の範囲を制限することは意図されていない。そうではなくて、本発明者は、請求されている主題が、他の現在の又は未来の技術と併せて、異なるステップ又は本文書に記載されたものと類似のステップの組合せを含むように、他の形で実施され得ることを意図している。さらに、「ステップ」及び/又は「ブロック」という用語は、使用される方法の異なる要素を含意するように本明細書で使用され得るが、これらの用語は、個別のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて本明細書で開示される様々なステップの間に何らかの特定の順番を暗示するものとして解釈されるべきではない。
【外国語明細書】