(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】衝突回避知覚システム
(51)【国際特許分類】
G06T 7/00 20170101AFI20221208BHJP
G06T 7/70 20170101ALI20221208BHJP
G08G 1/16 20060101ALI20221208BHJP
【FI】
G06T7/00 650B
G06T7/00 350B
G06T7/70 Z
G08G1/16 C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022520288
(86)(22)【出願日】2020-09-30
(85)【翻訳文提出日】2022-03-31
(86)【国際出願番号】 US2020053558
(87)【国際公開番号】W WO2021067445
(87)【国際公開日】2021-04-08
(32)【優先日】2020-04-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジェームズ ウィリアム ベイジー フィルビン
(72)【発明者】
【氏名】クーパー ストークス スローン
(72)【発明者】
【氏名】ヌーレルディン エハブ ヘンディー
(72)【発明者】
【氏名】ニコラス ジョージ シャーシュット
(72)【発明者】
【氏名】チャン ワン
【テーマコード(参考)】
5H181
5L096
【Fターム(参考)】
5H181AA01
5H181BB04
5H181BB05
5H181BB20
5H181CC02
5H181CC03
5H181CC04
5H181CC11
5H181CC12
5H181CC14
5H181CC17
5H181CC27
5H181EE02
5H181FF04
5H181FF22
5H181FF32
5H181LL01
5H181LL02
5H181LL04
5H181LL09
5L096AA06
5L096BA04
5L096CA04
5L096EA39
5L096FA32
5L096FA64
5L096FA66
5L096FA67
5L096FA69
5L096GA30
5L096GA51
5L096GA55
5L096HA11
5L096KA04
(57)【要約】
衝突回避システムは、車両を制御するために生成された軌道を検証、拒否、または置き換え得る。衝突回避システムは、1つまたは複数の機械学習モデルを含む二次知覚コンポーネントを含んでよく、その各々は、異なるタイプのセンサーデータに少なくとも部分的に基づいて1つまたは複数の占有マップを出力するように訓練され得る。占有マップは、環境の少なくとも一部が多様な物体のタイプのいずれか1つによって将来の時間に占有されているかどうかの予測を含み得る。同じ時間に関連付けられた占有マップは、軌道を検証、拒否、または置き換えるために使用され得るデータ構造に集約されてもよい。
【特許請求の範囲】
【請求項1】
システムであって、
2つ以上のセンサーと、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行された場合、前記システムに対して
前記2つ以上のセンサーの少なくとも1つに関連する第1のセンサータイプに関連付けられた第1のセンサーデータを受信することと、
前記2つ以上のセンサーの少なくとも1つに関連する第2のセンサータイプに関連付けられた第2のセンサーデータを受信することと、
前記第1のセンサーデータに少なくとも部分的に基づいて、第1の現在の占有マップおよび第1の予測された占有マップを決定することであって、前記第1の予測された占有マップは、そのそれぞれの部分が占有される可能性を示す離散化グリッドを含むことと、
前記第2のセンサーデータに少なくとも部分的に基づいて、第2の現在の占有マップおよび第2の予測された占有マップを決定することであって、
前記第1の現在の占有マップおよび前記第2の現在の占有マップは、環境の部分が現在の時間において占有されている第1の可能性および第2の可能性を示し、
前記第1の予測された占有マップおよび前記第2の予測された占有マップは、前記環境の前記部分が将来の時間において占有されている第3の可能性および第4の可能性を示す、ことと、
前記第1の現在の占有マップと前記第2の現在の占有マップを、前記環境の前記部分が前記現在の時間において占有されているか占有されていないかどうかを示すデータ構造に結合することと、
前記第1の予測された占有マップと前記第2の予測された占有マップを、前記環境の前記部分が前記将来の時間において占有されているか占有されていないかどうかを示す前記データ構造に結合することと、
前記データ構造に少なくとも部分的に基づいて、自律車両を制御することと、
を含む動作を実行させるプロセッサ実行可能な命令を格納したメモリと、
を備える、システム。
【請求項2】
前記動作が、
前記データ構造に少なくとも部分的に基づいて、少なくとも最も近接した物体に関連付けられた第1の位置または第1の速度の少なくとも1つを決定することと、
軌道を受信することと、
をさらに備え、
前記自律車両を制御することが、前記第1の位置または前記第1の速度の少なくとも1つ、および前記自律車両に関連付けられた第2の位置または第2の速度の少なくとも1つに少なくとも部分的に基づいて、
前記軌道を実行させるように前記自律車両を制御、または、
臨時の軌道を実行させるように前記自律車両を制御する、
ように決定することをさらに備える、請求項1に記載のシステム。
【請求項3】
臨時の軌道を実行するように前記自律車両を制御することが、前記軌道が占有されているとして示される前記データ構造の少なくとも一部の閾値距離以内であるということを決定すること、または、前記軌道に少なくとも部分的に基づいた前記データ構造の部分の確率の合計を決定することの少なくとも1つに少なくとも部分的に基づく、請求項2に記載のシステム。
【請求項4】
前記第1の占有マップを決定することが、入力として第1の機械学習(ML)モデルへ前記第1のセンサーデータを提供すること、および、出力として前記第1の占有マップを前記第1のMLモデルから受信することを備え、
前記第2の占有マップを決定することが、入力として第2の機械学習(ML)モデルへ前記第2のセンサーデータを提供すること、および、出力として前記第2の占有マップを前記第2のMLモデルから受信することを備える、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記第1の現在の占有マップが、前記環境の前記部分に関連付けられた第1の信頼度スコアを備え、前記第1の信頼度スコアが、前記部分が占有されている第1の可能性を示し、
前記第2の現在の占有マップが、前記環境の前記部分に関連付けられた第2の信頼度スコアを備え、前記第2の信頼度スコアが、前記部分が占有されている第2の可能性を示し
、
前記第1の現在の占有マップおよび前記第2の現在の占有マップを前記データ構造に結合することが、前記第1の信頼度スコア、前記第2の信頼度スコア、前記第1のセンサータイプ、前記第2のセンサータイプの少なくとも1つに少なくとも部分的に基づく、請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記動作が、前記第1の現在の占有マップの第1の部分を、前記第1の信頼度スコアが閾値信頼度を満たすかまたは超えるという決定に少なくとも部分的に基づいて、前記部分が占有されていることを示すものとして、関連付けることをさらに備え、
前記第1の現在の占有マップおよび前記第2の現在の占有マップを前記データ構造に結像することが、前記第1の部分および前記部分が占有されているまたは占有されていないことを示す前記第2の現在の占有マップに関連付けられた第2の部分の少なくとも1つに基づいた投票をさらに備える、請求項5に記載のシステム。
【請求項7】
方法であって、
第1のセンサータイプに関連付けられた第1のセンサーデータを受信することと、
第2のセンサータイプに関連付けられた第2のセンサーデータを受信することと、
前記第1のセンサーデータに少なくとも部分的に基づいて第1の占有マップを決定することであって、前記第1の占有マップは、自律車両を取り巻く環境の部分が将来の時間において占有されているか占有されていなかどうかを示すことと、
前記第2のセンサーデータに少なくとも部分的に基づいて第2の占有マップを決定することであって、前記第2の占有マップは、前記部分が将来の時間において占有されているか占有されていなかどうかを示すことと、
前記第1の占有マップおよび前記第2の占有マップに少なくとも部分的に基づいて前記第1の占有マップおよび前記第2の占有マップをデータ構造に結合することであって、前記データ構造は、前記環境の前記部分が前記将来の時間において占有されているか占有されていないかどうかを示すことと、
前記データ構造に少なくとも部分的に基づいて自律車両を制御することと、
を備える方法。
【請求項8】
前記データ構造に少なくとも部分的に基づいて、少なくとも最も近接した物体に関連付けられた第1の位置または第1の速度を決定することと、
軌道を受信することと、
をさらに備え、
前記自律車両を制御することが、前記第1の位置または前記第1の速度の少なくとも1つ、および前記自律車両に関連付けられた第2の位置または第2の速度の少なくとも1つに少なくとも部分的に基づいて、
前記軌道を実行させるように前記自律車両を制御、または、
臨時の軌道を実行させるように前記自律車両を制御する、
ように決定することをさらに備える、請求項7に記載の方法。
【請求項9】
前記臨時の軌道を実行するように前記自律車両を制御することが、前記軌道が占有されているとして示される前記データ構造の少なくとも一部の閾値距離以内であるということを決定すること、または、前記軌道に少なくとも部分的に基づいた前記データ構造に関連付けられた確率の合計を決定することの1つまたは複数に少なくとも部分的に基づく、請求項8に記載の方法。
【請求項10】
前記第1の占有マップを決定することが、入力として第1の機械学習(ML)モデルへ前記第1のセンサーデータを提供すること、および、出力として前記第1の占有マップを前記第1のMLモデルから受信することを備え、
前記第2の占有マップを決定することが、入力として第2の機械学習(ML)モデルへ前記第2のセンサーデータを提供すること、および、出力として前記第2の占有マップを前記第2のMLモデルから受信することを備える、請求項7から9のいずれか一項に記載の方法。
【請求項11】
前記第1の現在の占有マップは、前記環境の前記部分に関連付けられた第1の信頼度スコアを備え、前記第1の信頼度スコアは、前記部分が占有されている第1の可能性を示し、
前記第2の現在の占有マップは、前記環境の前記部分に関連付けられた第2の信頼度スコアを備え、前記第2の信頼度スコアは、前記部分が占有されている第2の可能性を示し、
前記第1の現在の占有マップおよび前記第2の現在の占有マップを前記データ構造に集約することは、前記信頼度スコアが閾値信頼度を満足するか超えることを決定することに少なくとも部分的に基づいて、前記第1の現在の占有マップの第1の部分を、前記部分が占有されていることを示すものとして関連付けることを備える、請求項7から10のいずれか一項に記載の方法。
【請求項12】
前記第1の現在の占有マップおよび前記第2の現在の占有マップを前記データ構造に集約することは、前記第1の部分、および、前記部分が占有されたか占有されていないかを示す前記第2の現在の占有マップ関連付けられた前記第2の部分、前記第1のセンサータイプ、前記第2のセンサータイプ、前記第1の信頼度スコア、または前記第2の信頼度スコアの少なくとも1つ、に少なくとも部分的に基づいて前記部分が占有されていることを示すものとして前記データ構造の第2の部分を関連付けるための投票をさらに備える、請求項11に記載の方法。
【請求項13】
前記第1のセンサーデータおよび前記第2のセンサーデータが、現在のセンサーデータおよび以前のセンサーデータを備え、
前記第1の占有マップが、少なくとも現在の時間に関連付けられた現在の占有マップおよび将来の時間に関連付けられた予測された占有マップを備える、請求項7から12のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、衝突回避知覚システムに関する。
【背景技術】
【0002】
本出願は、2019年10月2日に出願された米国特許出願第16/591518号の一部継続出願である、2020年4月14日出願の米国特許出願第16/848834号に対する優先権を主張する。優先権は、すべての先行の出願に主張される。
【0003】
車両の乗客および車両に近接している他の人々や物体の安全は、最も重要なことである。このような安全性は、多くの場合、潜在的な衝突の正確な検出と安全対策のタイムリーな展開が前提となっている。安全に動作するために、自律車両は、自律車両を取り巻く事象を検出および追跡するための多様なセンサーおよび様々なシステムを含んでもよく、自律車両を制御する際にこれらの事象を考慮し得る。例えば、自律車両は、自律車両を安全に制御するために、一組のカメラ、ライダーセンサー、レーダー、および/または同様のものの360度視野内の全ての物体を検出および追跡し得る。
【図面の簡単な説明】
【0004】
詳細な説明は、添付の図面を参照して述べられる。図中で、符号の左端の数字は、その符号が最初に現れる図面を示している。異なる図で同じ符号を使用することは、類似または同一の項目を示す。
【0005】
【
図1】衝突回避コンポーネントを有するように構成された自律車両が、自律車両を制御するための軌道を生成し、衝突回避コンポーネントによって、軌道を実装するか、安全停止、ブレーキ、またはハードブレーキなどの臨時の軌道を自律車両に実行させるかを決定する例示的シナリオを示す図である。
【
図2】衝突回避コンポーネントを含む例示的なシステムのブロック図である。
【
図3】例示的な衝突回避コンポーネントの少なくとも一部のブロック図である。
【
図4】軌道を検証しおよび/または臨時の軌道を実行するために衝突回避コンポーネントを用いて実行される例示的なプロセスの絵入りフロー図である。
【
図5A】異なるセンサータイプから受信されたセンサーデータに対して決定された例示的な占有マップを示す図である。
【
図5B】異なる技術に従って、
図5Aの例示的な占有マップを集約することによりもたらされ得る、異なる例示的なデータ構造を示す図である。
【
図5C】異なる技術に従って、
図5Aの例示的な占有マップを集約することによりもたらされ得る、異なる例示的なデータ構造を示す図である。
【
図5D】異なる技術に従って、
図5Aの例示的な占有マップを集約することによりもたらされ得る、異なる例示的なデータ構造を示す図である。
【
図6A】本明細書で論じられるMLモデルの異なる例示的なアーキテクチャを示す図である。
【
図6B】本明細書で論じられるMLモデルの異なる例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0006】
衝突回避のための技術は、車両を制御するために生成された軌道を検証、拒否、または置き換える衝突回避システムを含み得る。例えば、本明細書で議論される技術に従って軌道を検証すると、衝突回避システムは、通過させるか、またはその軌道が車両によって実装されることを与え得る。しかしながら、本明細書で議論される技術に従って、軌道が無効であると決定すると、衝突回避システムは、車両に代替の操舵(例えば、安全停止操舵、臨時軌道)を開始、および/または新しい軌道を再決定させ得る。いくつかの例では、車両の計画コンポーネントは、一次知覚コンポーネントから受信したセンサーデータ、マップデータ、定位データ(例えば、自律車両がどこにあるか/自律車両が環境内の物体、マッピングされた位置などに対してどのように方向付けられているか)、および/または知覚データ(例えば、環境に何があるか、環境内の物体の特性)に少なくとも部分的に基づいて軌道を決定し得る。
【0007】
衝突回避システムは、二次知覚コンポーネントおよび/または検証コンポーネントを含み得る。例えば、衝突回避システムは、軌道を受信し、1つまたは複数のセンサーから、自律車両の周囲の環境に関連付けられたセンサーデータを受信し得る。いくつかの例では、一次知覚コンポーネントは、センサーデータのすべて、またはほぼすべてに少なくとも部分的に基づいて知覚データを決定してもよいが、衝突回避システムの二次知覚コンポーネントは、一次知覚コンポーネントによって使用されるセンサーデータのサブセットに少なくとも部分的に基づいて軌道を拒否するか否かを決定し得る。少なくともいくつかの例では、そのような二次知覚システムは、一次システムに関して、類似および/または類似でないハードウェアおよび/またはソフトウェアをさらに使用し得る。いくつかの例では、二次知覚システムは、センサーデータを静的な物体または動的な物体として単純に分類してもよく、どのタイプの物体であるかを曖昧にすることはない。追加または代替の例では、二次知覚システムは、物体の分類を曖昧にするように構成された、任意のタイプのMLモデルを含んでもよい。例えば、二次知覚システムは、物体(例えば、歩行者、車両、標識、自転車の乗用者、自動車の運転者、背景/地面)に関連付けられた物体分類を決定してもよい。
【0008】
いくつかの例では、二次知覚システムは、異なるセンサータイプに関連付けられた多様な機械学習(ML)モデルを含み得る。二次知覚システムは、第1のセンサータイプに関連付けられた第1のセンサーデータと、第2のセンサータイプに関連付けられた第2のセンサーデータとを受信し得る。第1のMLモデルは、(第1のセンサータイプの)第1のセンサーデータに少なくとも部分的に基づいて、第1の占有マップを決定するように訓練されてもよく、第2のMLモデルは、第2のセンサーデータに少なくとも部分的に基づいて、第2の占有マップを決定するように訓練されてもよい。追加または代替の例では、MLモデルは、物体分類に関連付けられた占有マップを出力するように訓練されてもよい。例えば、第1のMLモデルは、物体分類「歩行者」に関連付けられた第1の占有マップを出力し、物体分類「車両」に関連付けられた第2の占有マップは、歩行者に分類された物体によって占有される環境の部分を示す等であってもよい。追加的または代替的に、MLモデルは、占有表示(例えば、環境の一部が歩行者、自転車の乗用者、自動車の運転者、または車両によって占有され、残りがラベル「地面」に関連付けられるとして示される表示)に関連付けられたラベルを出力するように訓練されてもよい。占有マップは、環境の部分に関連付けられた信頼度スコアを含んでよく、信頼度スコアは、環境の部分が物体によって占有されている、又は占有されていると予測される可能性(例えば、事後確率)を示している。いくつかの例では、環境の一部に関連付けられた占有マップの部分(例えば、ピクセル、いくつかの他の離散部分)は、追加的または代替的に、物体が静的または動的であることを示し得る。
【0009】
いくつかの例では、本技術は、それによって出力される占有マップが同じ参照フレームおよび/または範囲に関連付けられるように、本明細書で論じられるMLモデルを訓練することを含み得る。例えば、MLモデルの各々によって出力された占有マップは、自律車両を中心とし、自律車両を取り巻く環境および/または物体のトップダウンビューとして配向された、30メートル×30メートルの正方形と関連付けられ得る。
【0010】
本明細書で論じられるMLモデルは、追加的または代替的に、現在の時間および/または将来の時間に関連付けられた1つまたは複数の占有マップを出力するように訓練され得る。例えば、MLモデルは、現在の時間に関連付けられた現在の占有マップと、将来の時間に関連付けられた予測された占有マップを出力するように訓練され得る。本明細書で使用される場合、「現在」の時間は、センサーデータが受信された時間に関連付けられ、これは実際には、それに関連付けられた現在の占有マップがMLモデルによって生成されるまでには過去の時間であろうことに留意されたい。したがって、「現在」の時間は、センサーデータが受信された時間に関連付けられ、または「現在」の時間は、それ以降の時間(すなわち、将来の時間)に関連付けられ得る。後者の場合、現在の占有マップは、それ自体が予測された占有マップであり得る。いくつかの例では、MLモデルは、現在の(直近の)センサーデータに加えて、以前のセンサーデータを受信してもよい。
【0011】
要約例を挙げると、MLモデルのグループは、異なるセンサデータタイプを受信し、同じ数の占有マップを生成するように訓練されてよく、それらの各々は、同じそれぞれの時間、例えば、現在の時間から将来の時間までと関連付けられ得る。例えば、MLモデルは、現在の時間から将来の時間までの間隔で占有マップを決定し得る(例えば、直近のセンサーデータが受信された時間から、参照される500ミリ秒の間隔で、0から2秒までの5つの占有マップを決定する)。
【0012】
本技術は、追加的又は代替的に、異なるMLモデルによって生成された占有マップをデータ構造に集約することを含み得る。集約は、同じ時間に関連付けられた占有マップを単一の占有マップに集約することを含み得る。例えば、異なるMLモデルは、すべてが第1の将来の時間に関連付けられた異なる占有マップの第1のセットと、すべてが第2の将来の時間に関連付けられた異なる占有マップの第2のセットとを生成し得る。集約は、第1のセットを第1の将来の時間に関連付けられた第1の占有マップに集約すること、および第2のセットを第2の将来の時間に関連付けられた第2の占有マップに集約することを含み得る。いくつかの例では、第1の時間に関連付けられた占有マップを集約することは、最大で全ての物体分類に関連付けられた占有が1つの占有マップに表示されるように、異なる物体分類に関連付けられた占有マップを集約することを含み得る。
【0013】
追加的または代替的な技術では、占有マップが集約される前に、または占有マップが集約された後に、データ構造に閾値が適用され得る。閾値は、閾値信頼度スコア(例えば、閾値事後確率)であってもよく、閾値を適用することは、占有マップの部分に関連付けられた閾値スコアが閾値信頼度スコアを満たすまたは超える場合、占有マップの部分を環境の一部が占有されているという表示と関連付けること、或いは信頼度スコアが閾値信頼度レベルを満たさない場合(すなわち、占有マップの部分は環境の一部が占有されていないという表示と関連付けられる場合)その反対となることを含み得る。
【0014】
いくつかの例では、集約はアンサンブル学習技術を含んでもよく、占有マップのセットをデータ構造に集約することは、同じ時間に関連付けられた1つまたは複数の占有マップの対応する部分間の多数決、ベイズ平均または他の形式の平均化(および平均に閾値を適用する)、最大事後確率(例えば、最も高い事後確率を示す占有マップと同じ表示のデータ構造の部分を移入すること)、および/またはそれらと同様のものを含み得る。
【0015】
本技術は、追加的または代替的に、軌道に関連付けられた速度に少なくとも部分的に基づいて閾値距離を決定することを含み得る。例えば、閾値距離は、環境条件(例えば、勾配、道路に関連する静的係数および/または道路状態)が与えられた、車両の現在のスピードおよび/または軌道によって指定された速度での車両に関連付けられた停止距離推定値であり得る。衝突回避システムの検証コンポーネントは、物体として分類された任意のセンサーデータが、車両から閾値距離未満の距離にあるか、または予測されるか、または地面として分類された最も遠い点が閾値距離未満であるかどうかを判断し得る。いずれの場合も、検証コンポーネントは、物体または最も遠くに検出された地面が車両の閾値距離内にあるとの判断に少なくとも部分的に基づいて、車両に臨時軌道を実行、および/または軌道を再決定させ得る。検証コンポーネントが、最も近い物体が閾値距離を超えた距離にあり、地面として分類された最も遠いセンサーデータが閾値距離を超えた距離にあると決定した場合、検証コンポーネントは、軌道を検証してもよく、これは、軌道を追跡するために車両の駆動コンポーネントを作動させるための信号を生成し得るシステムコントローラに軌道を送信することを含み得る。
【0016】
追加的または代替的に、検証コンポーネントは、車両の現在の速度、軌道に関連付けられた速度、物体に関連付けられた速度、車両の現在のポーズ、および/または物体および/または地面の分類に関連付けられたセンサーデータが有効であるかどうかの判断に少なくとも部分的に基づいて、軌道を検証するか代替操舵を開始するかを決定し得る。例えば、本技術は、車両の現在の速度、ステアリング角、ステアリングレート、および/または方位が、軌道によって示される速度、ステアリング角、ステアリングレート、および/または方位に適合しているか(それぞれの閾値内にあるか)どうかを決定することを含み得る。
【0017】
本明細書で論じられる技術は、無効または危険な軌道が車両によって実行されることを防止することにより、車両の安全性を向上させ得る。少なくともいくつかの例では、そのような技術は、軌道生成コンポーネント(知覚、予測、計画など)に関連付けられた任意のシステムまたはサブシステムにおけるエラーを緩和するような方法で冗長性を提供することにより、衝突をさらに防止し得る。さらに、本技術は、従来の技術と比較して、衝突回避のために消費される計算帯域幅、メモリ、および/または電力の量を減少させ得る。また、衝突回避システムの精度は、一次知覚システムの精度よりも高くてもよく、それによって無効な軌道をフィルタリングすることにより、自律車両によって実装される軌道の全体的なエラー率を減少させ得る。
【0018】
(例示的なシナリオ)
図1は、車両102を含む例示的なシナリオ100を示している。いくつかの例では、米国道路交通安全局によって発行されたレベル5の分類に従って動作するように構成された自律車両であってよく、米国道路交通安全局によって発行されたレベル5の分類は、運転者(または乗員)がいつでも車両を制御することが期待されない状態で、あらゆる進行についてすべての安全上重要な機能を実行できる車両を記述している。しかしながら、他の例では、車両102は、任意の他のレベル又は分類を有する完全又は部分的な自律車両であってもよい。本明細書論じられる技術は、自律車両向けのような、ロボット制御以上のものに適用され得ることが企図される。例えば、本明細書で論じられる技術は、マイニング、製造、オーグメンテッドリアリティなどに適用されてもよい。さらに、車両102が陸上車両として描かれているにかかわらず、車両102は、宇宙船、水上船、および/またはそのようなものであってもよい。いくつかの例では、車両102は、シミュレート車両としてシミュレーションで表現されてもよい。簡略化のため、本明細書における議論は、シミュレート車両と実世界の車両とを区別しない。したがって、「車両」への言及は、シミュレート車両および/または実世界の車両を参照し得る。
【0019】
本明細書で論じられる技術によれば、車両102は、車両102のセンサー104からセンサーデータを受信し得る。例えば、センサー104は、位置センサー(例えば、全地球測位システム(GPS)センサー)、慣性センサー(例えば、加速度センサー、ジャイロセンサー等)、磁気センサー(例えば、コンパス)、位置/速度/加速度センサー(例えば、速度計、駆動系センサー)、深度位置センサー(例えば、ライダーセンサー、レーダーセンサー、ソナーセンサー、time of flight(ToF)カメラ、深度カメラ、超音波および/またはソナーセンサー、および/または他の深度感知センサー)、画像センサー(例えば、カメラ)、音声センサー(例えば、マイクロフォン)、および/または環境センサー(例えば、気圧計、湿度計等)を含み得る。
【0020】
センサー104は、センサーデータを生成してもよく、センサーデータは、車両102に関連付けられたコンピューティングデバイス106によって受信され得る。しかしながら、他の例では、センサー104および/またはコンピューティングデバイス106の一部または全部は、車両102とは別であってよく、および/または車両102から遠隔地に配置されてもよく、データの取り込み、処理、命令、および/または制御は、有線および/または無線ネットワークを介して、1つまたは複数の遠隔コンピューティングデバイスにより車両102と、或いは1つまたは複数の遠隔コンピューティングデバイスにより車両102から、伝達されてもよい。
【0021】
コンピューティングデバイス106は、知覚コンポーネント110、計画コンポーネント112、衝突回避コンポーネント114、および/またはシステムコントローラ116を格納するメモリ108を含み得る。例示の目的で
図1に描かれているが、衝突回避コンポーネント114は、他のコンポーネントのいずれか1つまたは複数とは別のコンピューティングデバイス(またはその他)内/上に存在してもよいことが理解されるべきである。いくつかの例では、知覚コンポーネント110は、衝突回避コンポーネント114の一部であり得る二次知覚コンポーネントなど、他の知覚コンポーネントのうちの一次知覚コンポーネントであり得る。一般に、知覚コンポーネント110は、車両102を取り巻く環境に何があるかを決定してよく、計画コンポーネント112は、知覚コンポーネント110から受信した情報に従って、車両102をどのように動作させるかを決定し得る。例えば、計画コンポーネント112は、知覚データおよび/または、例えば1つまたは複数のマップ、位置特定情報(例えば、知覚コンポーネント110によって検出されたマップおよび/または特徴に対する車両102の環境内の位置)等の他の情報に少なくとも部分的に基づいて軌道118を決定し得る。軌道118は、コントローラ116が、車両102の駆動コンポーネントを作動させてステアリング角および/またはステアリング速度を実現するための命令を含んでよく、これにより、車両位置、車両速度、および/または車両加速度がもたらされ得る。例えば、軌道118は、コントローラ116が追跡するための目標方位、目標ステアリング角、目標ステアリングレート、目標位置、目標速度、および/または目標加速度を含み得る。知覚コンポーネント110、計画コンポーネント112、および/または衝突回避コンポーネント114は、1つまたは複数の機械学習(ML)モデルおよび/または他のコンピュータ実行可能な命令を含んでもよい。
【0022】
いくつかの例では、知覚コンポーネント110は、センサー104からセンサーデータを受信し、車両102の近傍の物体に関連付けられたデータ(例えば、検出された物体に関連付けられた分類、インスタンス分割、セマンティック分割、2次元および/または3次元境界ボックス、追跡)、車両の目的地を指定するルートデータ、道路の特性を特定するグローバルマップデータ(例えば、自律車両の定位に有用な、異なるセンサー様式で検出可能な特徴)、車両に近接して検出された特徴(例えば、建物、木、柵、消火栓、停止標識、および様々なセンサー様式で検出可能な他の任意の特徴の位置および/または範囲)等を識別するローカルマップデータなどを決定し得る。知覚コンポーネント110によって決定された物体分類は、例えば、乗用車、歩行者、自転車、自動車、配送トラック、セミトラック、交通標識、および/または同様のものなどの異なる物体のタイプを区別し得る。追跡は、過去、現在、および/または予測される物体の位置、速度、加速度、および/または方位を含み得る。知覚コンポーネント110によって生成されたデータは、知覚データと総称され得る。知覚コンポーネント110が知覚データを生成すると、知覚コンポーネント110は、知覚データを計画コンポーネント112に提供し得る。
【0023】
計画コンポーネント112は、知覚コンポーネント110から受信した知覚データを使用して、1つまたは複数の軌道を決定し、経路またはルートを横断するために車両102の動きを制御、および/またはその他の方法で車両102の動作を制御し得るが、任意のそのような動作は、他の種々のコンポーネントにおいて実行されてもよい(例えば、定位は、知覚データに少なくとも一部基づいてもよい定位コンポーネントによって行われてもよい)。例えば、計画コンポーネント112は、第1の場所から第2の場所への車両102の経路を決定し、実質的に同時に、かつ知覚データおよび/またはシミュレート知覚データ(そのようなデータにおいて検出された物体に関する予測をさらに含んでもよい)に少なくとも部分的に基づいて、で経路を横断するように(例えば、検出された物体のいずれかを回避するために)車両を制御するために、Receding Horizon技術に従って車両102の動きを制御するための複数の潜在的な軌道を生成(例えば、1マイクロ秒、半秒)し、車両102の駆動コンポーネントに送信され得る駆動制御信号を生成するために使用され得る車両102の軌道118として、潜在的な軌道のうちの1つを選択し得る。
図1は、方位、速度、および/または加速度を示す矢印として表される、このような軌道118の一例を示しているが、軌道自体は、コントローラ116に対する命令を含んでもよく、このコントローラは、順に、車両102の駆動システムを作動させ得る。
【0024】
いくつかの例では、知覚コンポーネント110は、1つまたは複数のGPU、MLモデル、カルマンフィルタ、および/または同様のものを含み得るハードウェアおよび/またはソフトウェアのパイプラインを含み得る。いくつかの例では、知覚コンポーネント110は、センサーの能力、物体および/または環境のオクルージョン(例えば、建物、高低差、他の物体の前にある物体)、および/または霧、雪などの環境効果によって制限され得る、自律車両の周囲の環境のできるだけ多くを監視し得る。例えば、センサーデータは、知覚コンポーネント110が入力として受信し得るライダーおよび/またはレーダーデータを含み得る。知覚コンポーネント110は、軌道118を決定する際に計画コンポーネント112によって考慮されるべき事象または物体の挙動を考慮しないことを避けるために、できるだけ多くの物体および環境に関する情報を検出するように構成され得る。
【0025】
対照的に、衝突回避コンポーネント114は、センサー104の有効範囲内の全領域よりも小さくなり得る領域120を監視し得る。衝突回避コンポーネント114は、領域120に関連付けられたセンサーデータのサブセットを決定し、サブセットに少なくとも部分的に基づいて、本明細書で論じられる動作を実施し得る。例えば、例示的なシナリオでは、衝突回避コンポーネント114は、表現122の一部を含み得る領域120によって示される環境の部分を含むセンサーデータからなるサブセットを決定し得る。しかし、追加的または代替的な例では、衝突回避コンポーネント114は、知覚コンポーネント110と同じ領域を監視し得る。
【0026】
衝突回避コンポーネント114は、領域120に関連付けられたセンサーデータを監視し、軌道118が衝突しない、または衝突する可能性がないことを保証してもよい。いくつかの例では、これは、画像124などのセンサーデータを受信することと、本明細書でより詳細に論じるように、環境およびその中の物体のトップダウン表現を生成することとを含み得る。衝突回避コンポーネント114は、環境のトップダウン表現を生成し、その部分を占有または非占有であると分類する二次知覚コンポーネントを含んでもよい。いくつかの例では、衝突回避コンポーネント114は、占有部分が動的であるか静的であるかを追加的または代替的に決定し得る。
【0027】
衝突回避コンポーネント114は、追加的または代替的に、本明細書で論じられる閾値距離を決定、および/または軌道118を検証するか拒否するかを決定し得る検証コンポーネントを含み得る。軌道118を検証することは、軌道118をコントローラ116に送信することを含み得る(例えば、検証コンポーネントは、合波器、検証コンポーネントからの信号を受信すると軌道118を渡すスイッチとして構成された1つまたは複数のトランジスタ、および/または軌道118の信号をコントローラ116に渡すことを与える信号を提供し得る同種のものを含んでもよい)。軌道118を拒否することは、軌道の再決定を開始するために、および/または軌道118に加えて計画コンポーネント112から受信され、および/またはメモリ108に記憶され得る安全停止操舵(例えば、緊急ブレーキ、停車および駐車)などの代替操舵を開始するために計画コンポーネント112にメッセージを送信することを含み得る。いくつかの例では、衝突回避114は、本明細書においてより詳細に議論されるように、センサーの方向、および/または環境のトポロジー、および/またはセンサーデータの有効部分の下限と上限とに少なくとも部分的に基づいて、センサーデータのサブセットの少なくとも一部が有効または無効であると決定し得る。
【0028】
いくつかの例では、コントローラ116は、軌道118を追跡するのに十分な車両102の駆動コンポーネントを作動させるためのソフトウェアおよび/またはハードウェアを含み得る。例えば、コントローラ116は、1つまたは複数のProportional-Integral-Derivative(PID)コントローラを含み得る。
【0029】
(例示的なシステム)
図2は、本明細書で論じる技術を実装する例示的なシステム200のブロック図を示している。いくつかの例では、例示的なシステム200は、車両202を含んでよく、車両202は、
図1における車両102を表し得る。いくつかの例では、車両202は、米国道路交通安全局が発行したレベル5の分類に従って動作するように構成された自律車両であってよく、米国道路交通安全局が発行したレベル5の分類は、運転者(または乗員)がいつでも車両を制御することが期待されない状態で、全進行についてすべての安全上重要な機能を実行することができる車両について述べている。しかしながら、他の例では、車両202は、任意の他のレベルまたは分類を有する完全または部分的に自律的な車両であり得る。さらに、いくつかの例において、本明細書で述べられる技術は、非自律型車両によっても使用可能であり得る。
【0030】
車両202は、車両コンピューティングデバイス204、センサー206、エミッタ208、ネットワークインターフェース210、および/または駆動コンポーネント212を含み得る。車両コンピューティングデバイス204は、コンピューティングデバイス106を表してもよく、センサー206は、センサー104を表してもよい。システム200は、追加的または代替的に、コンピューティングデバイス214を含んでもよい。
【0031】
いくつかの例では、センサー206は、センサー104を表してよく、ライダーセンサー、レーダーセンサー、超音波トランスデューサ、ソナーセンサー、位置センサー(例えば、グローバルポジショニングシステム(GPS)、コンパスなど)、慣性センサー(例えば、慣性測定ユニット(IMU)、加速度計、磁気計、ジャイロスコープなど)、画像センサー(例えば、Red-Green-Blue(RGB)、赤外線(IR)、強度、深度、time of flightカメラなど)、マイクロフォン、ホイールエンコーダ、環境センサー(例えば、温度計、湿度計、光センサー、圧力センサーなど)等を含み得る。センサー206は、これらのセンサーまたは他のタイプのセンサーのそれぞれの多様なインスタンスを含み得る。例えば、レーダーセンサーは、車両202の角、前部、後部、側面、および/または上部に配置された個々のレーダーセンサーを含み得る。別の例として、カメラは、車両202の外部および/または内部に関する様々な場所に配置された多様なカメラを含み得る。センサー206は、車両コンピューティングデバイス204および/またはコンピューティングデバイス214に入力を提供し得る。
【0032】
車両202はまた、上述したように、光および/または音を発するためのエミッタ208を含み得る。本例におけるエミッタ208は、車両202の乗客と通信するための内部音声および内部映像のエミッタを含み得る。例示であって限定ではないが、内部エミッタは、スピーカー、ライト、サイン、ディスプレイスクリーン、タッチスクリーン、ハプティックエミッタ(例えば、振動および/またはフォースフィードバック)、機械的アクチュエータ(例えば、シートベルトテンショナ、シートポジショナ、ヘッドレストポジショナ等)等を含み得る。本例におけるエミッタ208は、外部エミッタも含み得る。例示であって限定ではないが、本例における外部エミッタは、進行方向または車両の動作の他の指示を知らせるためのライト(例えば、指示器、サイン、ライトアレイなど)、および歩行者または他の近くの車両と聴覚的に通信するための1つまたは複数の音声エミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)、そのうちの1または複数のアコースティックビームステアリング技術を含むものを含む。
【0033】
車両202は、車両202と1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの間の通信を可能にするネットワークインターフェース210も含み得る。例えば、ネットワークインターフェース210は、車両202および/または駆動コンポーネント212上の他のローカルコンピューティングデバイスとの通信を円滑にし得る。また、ネットワークインターフェース210は、追加的または代替的に、車両が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを与えてもよい。ネットワークインターフェース210は、追加的にまたは代替的に、車両202がコンピューティングデバイス214と通信することを可能にしてもよい。いくつかの例では、コンピューティングデバイス214は、分散コンピューティングシステム(例えば、クラウドコンピューティングアーキテクチャ)の1つまたは複数のノード含み得る。
【0034】
ネットワークインターフェース210は、車両コンピューティングデバイス204を別のコンピューティングデバイスまたはネットワーク216などのネットワークに接続するための物理的および/または論理的インターフェースを含み得る。例えば、ネットワークインターフェース210は、IEEE200.11規格によって定義された周波数を介したようなWi-Fiベースの通信、Bluetooth(登録商標)などの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)或いはそれぞれの演算装置が他の演算装置とインターフェースすることを可能にする任意の適切な有線または無線通信プロトコルを可能にし得る。いくつかの例では、車両コンピューティングデバイス204および/またはセンサー206は、ネットワーク216を介して、特定の周波数で、所定の期間の経過後に、ほぼリアルタイムで、コンピューティングデバイス214にセンサーデータを送信する等し得る。
【0035】
いくつかの例において、車両202は、1つまたは複数の駆動コンポーネント212を含み得る。いくつかの例では、車両202は、単一の駆動コンポーネント212を有していてもよい。いくつかの例では、駆動コンポーネント212は、駆動コンポーネント212および/または車両202の周囲の状態を検出するための1つまたは複数のセンサーを含んでもよい。限定ではなく例として、駆動コンポーネント212のセンサーは、駆動構成要素のホイールの回転を感知する1つまたは複数のホイールエンコーダ(例えば、ロータリーエンコーダ)、駆動コンポーネントの方向および加速度を測定する慣性センサー(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁気計など)、カメラまたは他の画像センサー、駆動コンポーネントの周囲にある物を音響的に検出する超音波センサー、ライダーセンサー、レーダーセンサー等を含み得る。ホイールエンコーダなどのいくつかのセンサーは、駆動コンポーネント212に固有のものであり得る。場合によっては、駆動コンポーネント212上のセンサーは、車両202の対応するシステム(例えば、センサー206)と重畳、または補足してよい。
【0036】
駆動コンポーネント212は、高電圧バッテリー、車両を推進するモーター、バッテリーからの直流を他の車両システムで使用するための交流に変換するインバータ、ステアリングモーターおよびステアリングラック(電気であり得る)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、牽引力の損失を緩和し制御を維持するためのブレーキ力を分配する安定制御システム、HVACシステム、照明(例えば、車両の外部周辺を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバータ、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなど)を含む、多数の車両システムを含み得る。さらに、駆動コンポーネント212は、センサーからデータを受信して前処理し、様々な車両システムの動作を制御するための駆動コンポーネントコントローラを含んでもよい。いくつかの例では、駆動コンポーネントコントローラは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサと通信可能に接続されたメモリとを含み得る。メモリは、駆動コンポーネント212の様々な機能を実行するための1つまたは複数のコンポーネントを格納し得る。さらに、駆動コンポーネント212は、それぞれの駆動コンポーネントによる1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする、1つまたは複数の通信接続を含んでもよい。
【0037】
車両コンピューティングデバイス204は、プロセッサ218と、1つまたは複数のプロセッサ218と通信可能に接続されたメモリ220と、を含み得る。メモリ220は、メモリ108を代表してもよい。コンピューティングデバイス214は、プロセッサ222、および/またはメモリ224も含み得る。プロセッサ218および/または222は、データを処理し、本明細書で述べられる動作を実施するための命令を実行することができる任意の適切なプロセッサであり得る。限定ではなく例として、プロセッサ218および/または222は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、集積回路(例えば、Application-Specific Integrated Circuits(ASIC))、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(FPGA))、および/または電子データを処理して、電子データをレジストリおよび/またはメモリに格納することができる他の電子データへ変形する任意の他のデバイスまたはデバイスの部分を含み得る。
【0038】
メモリ220および/または224は、非一時的コンピュータ可読媒体の例であり得る。メモリ220および/または224は、本明細書で述べられる方法および様々なシステムに帰属する機能を実装するためのオペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納し得る。様々な実装において、メモリは、Static Random Access Memory(SRAM)、Synchronous Dynamic Ram(SDRAM)、不揮発性/フラッシュ型メモリ、または情報を格納できる他の任意のタイプのメモリなど、任意の適切なメモリ技術を用いて実装され得る。本明細書で述べられるアーキテクチャ、システム、および個々の要素は、他の多くの論理的、プログラム的、および物理的なコンポーネントを含んでよく、そのうちの添付の図に示されるものは、本明細書の議論に関連する単なる例である。
【0039】
いくつかの例では、メモリ220および/またはメモリ224は、定位コンポーネント226、知覚コンポーネント228、計画コンポーネント230、衝突回避コンポーネント332、マップ234、および/またはシステムコントローラ236を格納し得る。知覚コンポーネント228は、知覚コンポーネント110を代表してもよく、計画コンポーネント230は計画コンポーネント112を代表してもよく、および/または衝突回避コンポーネント332は衝突回避コンポーネント114を代表してもよい。
【0040】
少なくとも1つの例では、定位コンポーネント226は、センサー206からデータを受信し、車両202の位置、速度、および/または方向(例えば、x、y、z位置、ロール、ピッチ、またはヨーのうちの1つまたは複数)を決定するハードウェアおよび/またはソフトウェアを含み得る。例えば、定位コンポーネント226は、環境のマップ234を含む、および/または要求/受信してよく、マップ234内の自律車両の位置、速度、および/または方位を継続的に決定することができる。いくつかの例では、定位コンポーネント226は、SLAM(同時の定位およびマッピング)、CLAMS(同時のキャリブレーション、定位およびマッピング)、相対的なSLAM、バンドル調整、非線形最小二乗最適化などを利用して、画像データ、ライダーデータ、レーダーデータ、IMUデータ、GPSデータ、ホイールエンコーダデータなどを受信し、自律車両の位置、ポーズ、および/または速度を正確に決定し得る。いくつかの例では、定位コンポーネント226は、本明細書で論じられるように、軌道を生成するため、および/またはマップデータを生成するための自律車両の初期位置を決定するために、車両202の様々なコンポーネントにデータを提供し得る。いくつかの例では、定位コンポーネント226は、衝突回避コンポーネント332に、環境に対する車両202の位置および/または方向、および/またはそれに関連付けられたセンサーデータを提供し得る。
【0041】
いくつかの例では、知覚コンポーネント228は、ハードウェアおよび/またはソフトウェアで実装された一次知覚システムおよび/または予測システムを含み得る。知覚コンポーネント228は、車両202を取り巻く環境における物体を検出(例えば、物体が存在することを識別)し、物体を分類(例えば、検出された物体に関連付けられた物体のタイプを決定)し、センサーデータおよび/または環境の他の表現をセグメント化(例えば、検出された物体および/または物体のタイプに関連するものとしてセンサーデータおよび/または環境の表現の一部を識別)し、物体に関連付けられた特性(例えば、物体に関連付けられた現在、予測、および/または以前の位置、方位、速度、および/または加速度を識別する追跡)、および/または同様のものを判断し得る。知覚コンポーネント228によって決定されたデータは、知覚データと呼ばれる。
【0042】
計画コンポーネント230は、定位コンポーネント226から車両202の位置および/または方向、および/または知覚コンポーネント228から知覚データを受信してもよく、このデータのいずれかに少なくとも部分的に基づいて、車両202の動作を制御するための命令を決定してもよい。いくつかの例では、命令を決定することは、命令が関連付けられるシステムに関連付けられるフォーマットに少なくとも部分的に基づいて命令を決定することを含んでよい(例えば、自律車両の動作を制御するための第1の命令は、システムコントローラ236および/または駆動コンポーネント212が解析/実行させ得るメッセージ及び/又は信号(例えば、アナログ、デジタル、空気圧、運動)の第1の方式でフォーマットされて得る、エミッタ208の第2の命令はそれに関連付けられる第2の方式に従ってフォーマットされてよい)。
【0043】
衝突回避コンポーネント232は、車両202上および/またはコンピューティングデバイス214上で動作し得る。いくつかの例では、衝突回避コンポーネント232は、パイプラインで計画コンポーネント230から下流(出力を受信する)であり得る。衝突回避コンポーネント332は、本明細書で論じられる決定に応じて、計画コンポーネント230の出力の全て、一部、または全てを、実装のためにシステムコントローラ236に渡すように構成され得る。いくつかの例では、衝突回避コンポーネント232は、軌道の再決定をトリガーするフラグまたはメッセージなど、計画コンポーネント230に入力を提供するためのフィードバックループを含み得る。
【0044】
メモリ220および/または224は、追加的または代替的に、マッピングシステム(例えば、少なくとも部分的にセンサーデータに基づいてマップを生成すること)、計画システム、乗車管理システム等を格納し得る。定位コンポーネント226、知覚コンポーネント228、計画コンポーネント230、衝突回避コンポーネント232、マップ234、および/またはシステムコントローラ236は、メモリ220に格納されるものとして図示されているが、これらのコンポーネントのいずれかが、プロセッサ実行可能命令、機械学習モデル(例えば、ニューラルネットワーク)、および/またはハードウェアを含んでもよく、これらのコンポーネントのいずれかの全てまたは一部がメモリ224上に格納されても、コンピューティングデバイス214の一部としても構成されてもよい。
【0045】
本明細書で述べられるように、システム200の定位コンポーネント226、知覚コンポーネント228、計画コンポーネント230、および/または他のコンポーネントは、1つまたは複数のMLモデルを含み得る。例えば、定位コンポーネント226、知覚コンポーネント228、および/または計画コンポーネント230は、それぞれ、異なるMLモデルパイプラインを含んでよい。いくつかの例では、MLモデルはニューラルネットワークを含み得る。例示的なニューラルネットワークは、出力を生成するために一連の接続された層を、入力データを通過させる生物学的にインスパイアされたアルゴリズムである。ニューラルネットワークの各層は、別のニューラルネットワークを含むこともでき、或いは任意の数の層(畳み込みであるか否かにかかわらず)を含むこともできる。本開示のコンテキストで理解されることができるように、ニューラルネットワークは、機械学習を利用することができ、これは、学習されたパラメータに基づいて出力が生成される、そのようなアルゴリズムの広範なクラスを指すことができる。
【0046】
ニューラルネットワークのコンテキストで論じられているが、本開示と一致する任意のタイプの機械学習が使用されることができる。例えば、機械学習アルゴリズムは、回帰アルゴリズム(例えば、通常の最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応回帰スプライン(MARS)、局所的に重み付けされた散布図平滑化(LOESS))、インスタンスベースのアルゴリズム(例えば、リッジ回帰、最小絶対縮退選択演算子(LASSO)、弾性ネット、最小角回帰(LARS))、決定木アルゴリズム(例えば、分類回帰木(CART)、反復二分木3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定スタンプ、条件付き決定木)、ベイジアンアルゴリズム(例えば、ナイーブベイズ、ガウスナイーブベイズ、多項ナイーブベイズ、平均一従属性分類器(AODE)、ベイジアンビリーフネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k-means、k-medians、期待値最大化(EM)、階層型クラスタリング)、相関ルール学習アルゴリズム(例えば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、Radial Basis Function Network(RBFN))、深層学習アルゴリズム(Deep Boltzmann Machine(DBM)、Deep Belief Networks(DBN)、畳み込みニューラルネットワーク(CNN)、Stacked Auto-Encoders)、次元削減アルゴリズム(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元尺度法(MDS)、Projection Pursuit、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、フレキシブル判別分析(FDA))、アンサンブルアルゴリズム(例えば、Boosting、Bootstrapped Aggregation(Bagging)、AdaBoost、Stacked Generalization(Blending)、Gradient Boosting Machines(GBM)、Gradient Boosted Regression Trees(GBRT)、Random Forest)、SVM(Support Vector Machine)、教師あり学習、教師なし学習、半教師あり学習、などを含むことができるが、これらに限定はされない。アーキテクチャの追加例は、ResNet50、ResNet101、VGG、DenseNet、PointNetなどのニューラルネットワークを含む。
【0047】
メモリ220は、追加的または代替的に、1つまたは複数のシステムコントローラ236を格納してよく、これらは車両202のステアリング、推進、ブレーキ、安全、エミッタ、通信、および他のシステムを制御するように構成され得る。これらのシステムコントローラ236は、駆動コンポーネント212および/または車両202の他のコンポーネントの対応するシステムと通信し、および/または制御し得る。例えば、計画コンポーネント230は、知覚コンポーネント228によって生成された知覚データに少なくとも部分的に基づいて命令を生成してもよく、この命令は、衝突回避コンポーネント332が検証、および/またはシステムコントローラ236に送信し得る。システムコントローラ236は、計画コンポーネント230および/または衝突回避コンポーネント332から受信した命令に少なくとも部分的に基づいて、車両202の動作を制御し得る。いくつかの例では、衝突回避コンポーネント332は、計画コンポーネント230によって生成された命令を、例えば、安全停止操舵、緊急ブレーキ、車両の減速などの代替操舵に関連付けられた臨時の軌道と置き換え得る。
【0048】
図2は分散システムとして図示されているが、代替例では、車両202のコンポーネントがコンピューティングデバイス214と関連付けられてもよく、および/またはコンピューティングデバイス214のコンポーネントが車両202と関連付けられてもよいことが留意されるべきである。すなわち、車両202は、コンピューティングデバイス214に関連付けられた機能のうちの1つまたは複数を実行してもよく、その逆もまた然りである。
【0049】
(例示的なアーキテクチャ)
図3は、衝突回避コンポーネントの少なくとも一部の例示的なアーキテクチャ300を示す図である。いくつかの例では、例示的なアーキテクチャ300は、MLモデル314(1)~(n)(nは正の整数)を含み得る。いくつかの例では、数のMLモデル302(1)~(n)は、受信したセンサーデータに関連付けられたセンサータイプの数に対応してもよく、MLモデル302(1)~(n)は、異なるタイプのセンサーデータを入力として受信するように訓練され得る。例えば、第1のMLモデル314(1)は、可視光画像データ304に基づく出力を生成するように訓練されてもよく、一方、n番目のMLモデル302(n)は、ライダーデータ306に基づく出力を生成するように訓練されてもよい。例えば、画像データ304は、1つまたは複数のカメラから受信された画像を含んでもよい。いくつかの例では、画像データ304は、追加または代替の視野が企図されるが、少なくとも一例では、互いに360°の視野を差し引くことができる、異なる視野を有する多様なカメラから受信した画像を含んでよい(例えば、より少ない視野、非連続である全視野、連続である全視野など)。画像データ304は、単一のセンサーによって生成された画像を描いているが、画像データ304は、追加的または代替的に、時間t=0からt=-mまで、多様なセンサーによって生成された画像データを含み得ることに留意されたい。
【0050】
追加または代替のMLモデルは、レーダーリターン(例えば、点群内で識別され得る)、熱画像(例えば、赤外線画像)、ソナーデータ、および/または同様な、追加または代替のセンサータイプに関連するセンサーデータに少なくとも部分的に基づいて出力を生成するように訓練され得る。当然、いくつかの例では、1つまたは複数の様式が単一のMLモデルに入力されてもよい(例えば、ライダー、レーダー、またはカメラデータのうちの任意の1つまたは複数の方式(生、トップダウン等)で単一のモデルに入力されてもよい)。いくつかの例では、MLモデル302(1)~(n)の入力として提供されるセンサーデータは、直近の時間(すなわち、t=0)および/または1つまたは複数の以前の時間と関連付けられ得る。例えば、センサーデータは、
図3において308で描かれているように、直近の時間から過去の時間、-mまでの範囲であり得る。上記の例のいずれかにおいて、そのようなシステムで使用されるセンサーデータは、知覚および予測動作(本明細書で述べられるような)に関して使用されるセンサーデータと同じ、そのサブセットである、または異なるものであってよい。追加または代替の例では、MLモデルが
図3に描かれ、本明細書で論じられているが、追加のまたは代替のアルゴリズムが使用されてもよいことが理解される。
【0051】
少なくとも一例では、画像データは第1のMLモデルへの入力として提供されてもよく、ライダーデータおよび/またはレーダーデータは第2のMLモデルへの入力として提供されてもよいが、追加または代替の例では、ライダーデータは第2のMLモデルへ提供されてもよく、レーダーデータは第3のMLモデルへの入力として提供されてもよい。いくつかの例では、ライダーデータは、占有度の二値表示(例えば、環境の一部に関連付けられ得たライダー空間の離散的な部分にライダー点が存在するという表示)、ライダー点の密度(例えば、ライダー空間に関連付けられたグリッドセル内のすべてのライダー点の対数正規化密度)、最大z値(例えば、所定のグリッドセル内のライダー点の最大の高さの値)、および/またはスライスされた最大z値(例えば、n個の線形スライスにわたる各グリッドセルの最大の高さの値、例えば、0~0.5メートル、・・・、2~2.5メートル(ここでnは、3、5、6、7などの正の整数))である。いくつかの例では、ライダーデータは、車両を中心とするトップダウン参照フレームに投影され得る。上述の特徴は、訓練の目的のために、チャネル次元に沿って積み重ねられてもよい。例えば、チャネル次元は、幅w、および高さ、hを有してもよく、入力フレームに含まれるライダー特徴の数はpであってもよく、入力フレームの数はiであってもよい(ここで、w、h、p、及びiは正の整数であり得る)。例えば、上述したように、現在の時刻から以前の時刻(-m)までの多様なフレームが存在してもよい。
【0052】
いくつかの例では、レーダーデータは、本明細書で論じられるMLモデルへの入力として提供され得る。レーダーデータは、二値レーダー占有率(例えば、環境の一部と関連付けられ得るレーダー空間の離散的な部分にレーダー点が存在することの表示)、車両の動きに対して補償され得るレーダーリターンのドップラー速度に対するx値および/またはy値、レーダー断面積(RCS)、信号ノイズ比(SNR)、および/または曖昧なドップラー間隔を含み得るが、追加または代替のレーダーのメトリックが使用されてもよい。いくつかの例では、多様なレーダーリターンがレーダー空間内の同じグリッドセル内に入る場合、多様なリターンの中から最大RCSおよび/またはSNRが選択されてもよく、および/または速度および速度間隔のペアのうちの1つが選択されてもよい。いくつかの例では、レーダー点は、車両を中心とするトップダウン基準フレームに投影されてもよい。本明細書で論じられるようなレーダー特徴は、上記で論じられるようなライダーデータと同様に、チャネル次元に沿って積層されてもよい。
【0053】
いくつかの例では、MLモデル302(1)~(n)はそれぞれ、占有マップ310(1)~(n)のセットを出力するように訓練され得る。占有マップ310(n)のセットは、1つまたは複数の占有マップを含み得る。いくつかの例では、占有マップ310(n)のセットは、少なくとも、センサーデータが受信された直近の時間または直近の時間の後の将来の時間に関連付けられた占有マップを含んでよく、これらのいずれかは、現在の占有マップと呼ばれ得る。追加または代替の例では、占有マップ310(n)のセットは、将来の時間q(正の数)に関連付けられた占有マップ、および/または直近の時間から将来の時間までの1つまたは複数の占有マップを含み得る。例えば、MLモデルによって生成された占有マップは、間隔-例えば500ミリ秒の間隔で、t=0秒からt=2秒までの5つの占有マップでq番目の時間までの現在の(直近または直近の後の)時間に関連付けられた占有マップを含み得る。いくつかの例では、MLモデル302(1)~(n)は、それぞれ、同じ時間に関連付けられた同じ数の占有マップを出力するように訓練されてもよい。
【0054】
占有マップは、環境の一部が占有されているか占有されていないか、占有されている部分が静的か動的か、および/または信頼度スコア(例えば、部分が占有されているか占有されていないかの可能性/事後確率)を示すデータ構造で在り得る。少なくとも1つの例において、占有マップは、信頼度スコアのフィールドを含み得るが、
図3は、占有マップを環境の占有部分を黒で、環境の非占有部分を白で二値的に示すものとして描いている。例えば、占有マップの異なるピクセルは、環境の異なる部分に関連付けられてよく、各ピクセルは、環境のそれぞれの部分が占有/非占有される可能性を示す信頼度スコアを示し得る。
【0055】
いくつかの例では、データ構造の離散的な部分は、環境の一部と関連付けられ得る。離散的な部分は、例えば、ピクセル、メモリ内の位置、および/またはそのようなものであり得る。MLモデルによって生成された占有マップおよび/または異なるモデルによって生成された占有マップは、2つの異なる占有マップの同じ離散的な部分(例えば、同じピクセル位置、同じメモリ位置のそれぞれ)が環境の同じ部分に対応し得るように、同じ参照フレームを含み得る。いくつかの例では、この占有マップの位置合わせは訓練され得る-センサーデータは事前に位置合わせされる必要はないが、いくつかの例では、位置合わせされてもよい。一例を挙げると、占有マップはすべて、自律車両を中心とした環境の同じ30メートル×30メートルの領域に関連付けられてもよい。追加または代替の例では、占有マップは、MLモデル302(1)~(n)によって生成された後に、後処理ステップとして位置合わせされてもよい。
【0056】
いくつかの例では、異なるMLモデルによって生成された占有マップ310のセットは、集約コンポーネント312によって、単一のデータ構造へと集約されてもよく、これは占有マップ314のセットを含み得る。集約コンポーネント312は、異なる占有マップ314のセットの中から、その同じ時間に関連付けられた占有マップに少なくとも部分的に基づいて、(特定の時間に)環境の一部が占有されているか占有されていないか、および/または動的か静的かについての最終推定を決定し得る。例えば、t=0に関連付けられた占有マップは、単一の占有マップに集約されてもよく、t=0.5に関連付けられた占有マップは、単一の占有マップに集約されてもよく、t=qまで継続してもよい。
【0057】
いくつかの例では、占有マップのセット314は、環境の一部が占有されているか、または占有されていないかの二値表示を含み得る。別の例では、占有マップ314のセットは、追加的または代替的に、信頼度スコア(例えば、確率または可能性)を含み得る。集約コンポーネント312は、本明細書で論じられる技術のいずれかに従って、同じ時間に関連付けられた占有マップ間の投票および/または平均化技術に少なくとも部分的に基づいて、占有マップ310(1)~(n)のセットを集約し得る。
【0058】
少なくとも1つの例では、同じ時間ステップに関連付けられた占有マップを集約することは、様式の次元にわたって(例えば、異なるMLモデル(1)~(n)の出力にわたって)ソフトマックス値に集約関数を適用することを含み得る。集約関数は、平均、優先順位プーリング、および/または同様のものを含み得る。優先順位プーリングは、異なる物体のタイプの占有に関連付けられた優先順位を設定することを含んでもよい。例えば、歩行者物体分類に関連付けられた占有部は、最も高い優先度を有してよく、自転車および/または自動車は、次に高い優先度を有してよく、次に低い優先度を有し得る車両が続き、背景/地面は、最も低い優先度を有してよい。2つの異なるMLモデルの出力がピクセル分類について同意しない場合(例えば、1つのMLモデルがピクセルを歩行者によって占有されていると分類するのに対し、別のMLモデルはピクセルを地面として分類する)、技術は、より高い優先度に関連付けられた出力を選ぶことを含んでよく、所定の例では、歩行者物体分類が地面よりも高い優先度を有するので、ピクセルを歩行者に関連付けることになり得る。同点は、その物体分類のソフトマックス値のより大きな大きさに関連付けられたピクセルを決定することによって解決され得る。
【0059】
いくつかの例では、閾値は、占有マップ314のセット(例えば、集約後)または占有マップ310(1)~(n)のセット(例えば、集約前)に適用され得る。例えば、占有マップに閾値を適用することは、占有マップの部分に関連付けられた信頼度スコアが信頼度閾値を満たすかまたは超えるという判断に少なくとも部分的に基づいて、占有マップの部分をそれに関連付けられた環境の部分が占有されているという表示と関連付けることを決定することを含み得る。反対に、占有マップの部分は、信頼度スコアが信頼度閾値未満であると決定することに少なくとも部分的に基づいて、環境の部分が占有されていないことを示す表示に関連付けられ得る。
【0060】
集約前に占有マップ310(1)~(n)のセットに閾値が適用される例では、集計から生じる占有マップ314のセットは、環境のそれぞれの部分が占有または非占有であるという二値表示を含んでいてもよい。いくつかの例では、集約された信頼度スコアは、追加的にバイナリ表示に関連付けられ得る。いくつかの例では、MLモデル302(1)~(n)の異なるものは、それに関連付けられた異なるセンサータイプに少なくとも部分的に基づいて、異なる信頼度閾値と関連付けられ得る。
【0061】
集約前に閾値が適用されない別の例では、集計から生じる占有マップ314のセットは、信頼度スコアのフィールドを含んでよく、信頼度スコアに閾値を適用すると、環境の占有部分および非占有部分の二値表示をもたらし得る。いくつかの例では、閾値を適用することは、集約の一部であってもよい(例えば、投票および/または平均化技術の一部であってもよい)。
【0062】
いくつかの例では、信頼度スコア閾値の値は、少なくとも部分的に、ターゲット偽陽性および/またはターゲット偽陰性率に基づいて設定され得る。信頼度スコア閾値は、テストセンサデータ上でMLモデル302(1)~(n)を実行することに少なくとも部分的に基づいて設定され得る。
【0063】
(例示的なプロセス)
図4は、自律車両の計画コンポーネントによって出力された軌道を検証するための例示的なプロセス400の絵画的フロー図である。いくつかの例では、例示的なプロセス400は、自律車両の動作中に少なくとも衝突回避コンポーネントによって実行され得る。
【0064】
動作402~406は、異なる処理パイプラインによって実行され得る。例えば、n個の処理パイプラインが存在してもよく、ここでnは、衝突回避システムによって使用されるセンサデータタイプの数に対応し得る正の整数である。個々の処理パイプラインは、本明細書で論じられるように、一組の占有マップを決定するためのMLモデルおよび/または他のアルゴリズムを含んでもよい。MLモデルは、他のパイプラインのMLモデルとは独立して訓練されてもよい。明確性のために、動作402~406の参照番号は、動作402~406が少なくとも単一のパイプラインによって実行されてもよいので、図中に現れる親文字の数字を省いている。
【0065】
動作402において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、センサータイプに関連付けられたセンサーデータを受信することを含み得る。例えば、センサーデータは、ライダーデータ、レーダーデータ、赤外線画像データ、ビジュアル画像データ、ソナーデータ、および/または同様のものを含み得る。いくつかの例では、異なるパイプラインが異なるタイプのセンサーデータを受信してもよい。第1のパイプラインはライダーデータを受信してもよく、n番目のパイプラインはレーダーデータを受信してもよく、等々である。MLモデルは、追加または代替の例において、単一のデータタイプまたは多様なデータタイプを受信するように訓練されてもよいことが理解される。
【0066】
動作404において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、センサーデータをMLモデルに入力することを含み得る。いくつかの例では、動作404は、追加的または代替的に、衝突回避システムが監視する領域外のセンサーデータを除去するために、センサーデータを前処理すること、異なるタイプのセンサーデータと共通する参照フレームにセンサーデータを投影すること、センサーデータの密度を正規化すること、閾値高さ以上のセンサーデータを除去することなどを含み得る。
【0067】
動作406において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、MLモデルからの出力として、少なくとも予測された占有マップを受信することを含み得る。予測された占有マップは、環境の部分が将来の時間に占有されている/されていない可能性を示す部分を含み得る。いくつかの例では、動作406は、追加的または代替的に、1つまたは複数の追加の占有マップを受信することを含み得る。例えば、追加の占有マップは、将来の時間から、センサーデータが受信された直近の時間までの間隔の時間(例えば、2秒から0秒までの間隔)に関連付けられ得る。追加の占有マップは、センサーデータが受信された直近の時間、またはそれに続く時間(例えば、250ミリ秒後、500ミリ秒後)に関連付けられた現在のマップを含み得る。
【0068】
図5Aは、それぞれが同じ未来の時間qに関連付けられ、異なるパイプラインから受信されてよい例示的な占有マップ500~504を描いている。例えば、占有マップ500は第1のパイプラインから受信されてよく、占有マップ502は第2のパイプラインから受信されてよく、占有マップ504は第nのパイプラインから受信されてよい。占有マップ506~510は、異なる集約技術および/または閾値に従って集約された占有マップの例である。占有マップ500~510はそれぞれ、正方形として描かれた多様な部分を含み、各部分は、車両を取り巻く環境のそれぞれの部分と関連付けられる。例えば、占有マップ500~510の各々は、部分512および部分514を含む。なお、簡単のために、実際には部分は異なるメモリ位置またはピクセルであり得るが、占有マップ内の同じ相対位置に位置すること、または環境の同じ部分に対応することによって、同じ部分であると言うこととする。
【0069】
図5Aは、信頼度スコアを異なる色合いのグレーで描いており、ここで、白は0.39未満の信頼度スコア、明るいグレーは0.4と0.59の間の信頼度スコア、中間のグレーは0.6と0.79の間の信頼度スコア、暗いグレーは0.8と1.0との間の信頼度スコアを示す。これらのスコアは例示のためだけに与えられ、信頼度スコアの範囲も専ら例示のためであることが理解される-追加または代替の例は、異なるタイプのスコア(例えば、パーセント、比)および/または異なる範囲を含み得る。換言すれば、白は、それに関連付けられた環境の部分が占有されていない高い可能性を示し、濃い灰色は、それに関連付けられた環境の部分が占有されている高い可能性を示す。
【0070】
動作408において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、占有マップをデータ構造に集約することを含み得る。いくつかの例では、集約は、異なるパイプラインによって生成され、同じ時間に関連付けられた占有マップを1つの占有マップに集約することを含み得る。これは、異なる占有マップが関連付けられている時間ごとに繰り返されてもよい。例えば、動作408は、第1のMLモデルによって出力され、第1の時間に関連付けられた第1の占有マップと、第2のMLモデルによって出力され、第1の時間に関連付けられた第2の占有マップとを第1の集約された占有マップに集約すること、および異なるパイプラインによって占有マップが決定される後続の時間ステップに対して集約することを含んでもよい。最終的に、集約は、異なるパイプラインからの占有マップを結合し、同じ時間に関連付けられた1つの占有マップにする。データ構造は、異なる時間ステップにおけるこれらの集約された占有マップを含んでもよい。
【0071】
いくつかの例では、動作408は、例えば、多数決、複数投票、加重投票(例えば、特定のパイプラインが機能的に、より多くの投票を帰属させる)および/または単純平均、加重平均なdの平均化技術等のアンサンブル投票技術を含み得る。換言すれば、第1の占有マップは、環境の一部が占有されている可能性が0.9であることを示し、第2の占有マップは、その部分が占有されている可能性が0.8であることを示し得る。この技術は、部分が占有されているか占有されていないかを示すかどうかを決定するために投票技術で可能性を使用すること、および/または平均化された可能性をそれに関連付けるために可能性を平均化することを含み得る。
【0072】
動作410において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、一部が占有されているか否かの二値表示を決定するために、データ構造に閾値を適用することを含み得る。閾値は、閾値信頼度スコアであってもよい。閾値は、集計前に占有マップに適用される例では、パイプラインごとに異なってもよい。いくつかの例では、閾値を適用することは、閾値未満の信頼度スコアを示す占有マップの任意の部分が占有されておらず、閾値信頼度スコアを満たすまたは超える任意の部分が占有されていること、或いはスコアの意味(例えば、0は環境部分が占有されていることを示す)に応じてその逆を示すことを含み得る。追加または代替の例では、異なる閾値が異なるパイプラインに関連付けられてよく、0.8を満たすまたは超えるスコアは、第1のパイプラインの占有を示し、0.7を満たすまたは超えるスコアは、第2のパイプラインの占有を示す、等としてよい。
【0073】
いくつかの例では、動作410は、動作408の一部であってもよい。例えば、動作408が全会一致投票技術を含み、閾値が0.75である例において、動作410は、第1の占有マップおよび第2の占有マップが共に0.75を満たすまたは超える可能性を示すことに基づいて、上述した例における部分が占有されることを示すことを含んでよい。
【0074】
閾値は、ターゲット偽陰性率および/またはターゲット偽陽性率に少なくとも部分的に基づいて設定され、および/または投票技術が選択され得る。例えば、全会一致投票技術は、より低い偽陰性率およびより高い偽陽性率をもたらし得、一方、複数の投票技術は、より高い偽陰性率およびより低い偽陽性率をもたらし得る。同様に、より高い閾値は、より低い偽陰性率とより高い偽陽性率をもたらし、より低い閾値はその逆をもたらし得る。いくつかの例では、閾値を設定することは、車両のライブ動作から記録されたセンサーデータおよび/またはシミュレートされたセンサーデータ、以前に訓練されたMLモデルによって生成されたトップダウン表現、空撮映像、並びに人間および/または別のMLモデルによって生成されたラベルを含み得る訓練データセットに少なくとも部分的に基づいてMLモデルを訓練し、および、異なる閾値における追加のセンサーデータからなり得るテストデータを用いてMLモデルを動作することを含み得る。偽陽性および/または偽陰性率は、例えば、異なる閾値に関連して、人間のラベル付けおよび/または別の検証プロセス(例えば、グランドトゥルースデータとの差)により、テストに対して決定され得る。閾値は、ターゲット偽陽性率および/またはターゲット偽陰性率に関連するものが選択され得る。
【0075】
図5Bは、保守的な(低い)偽陰性率を達成するように閾値を設定、および/または投票技術を選択することから生じ得る例示的な占有マップ506を示しており、これは、高い偽陽性率をもたらし得る。その結果、部分512および部分514は両方とも、環境のそれぞれの部分が占有されていることを示し得る。部分512は、占有マップ502の部分512のみが、部分512に関連付けられた環境の部分に位置する物体が存在し得るという任意の表示を行い、その場合でさえ、薄いグレーによって示されるように、信頼度が低いので、この表示がいかに保守的であるかを示している。いくつかの例では、衝突回避システムは、安全性を最大化するように設計されてもよく、偽陰性保守的占有マップを達成するために、占有マップを集約するように閾値および/または投票技術を使用してもよい。
【0076】
図5Cは、偽陰性率と偽陽性率との間のバランスを達成するために、閾値の設定および/または投票技術の選択から生じ得る例示的な占有マップ508を示している。これは、閾値を減少させること、より厳しくない投票技術を選択すること、および/またはより正確なMLモデルによって出力された占有マップのいくつかをより重く重み付けすることによって達成され得る。部分512は現在、それに関連付けられた環境のそれぞれの部分が占有されていないことを示す一方、部分514は環境のそれぞれの部分が占有されていることを示すことに注目されたい(例えば、占有マップ502および占有マップ504は、両方とも部分514が占有されていることを示すため)。バランスの取れた占有マップを達成するために閾値を設定、および/または偽陰性率を選択することは、安全上の利点と、偽陽性のために車両がハードブレーキすることを防止することとのバランスをとり得る。
【0077】
図5Dは、保守的な(低い)偽陽性率を達成するために、閾値の設定および/または投票技術の選択から生じ得る例示的な占有マップ510を示している。これは、閾値をさらに減少させること、より厳しくない投票技術を選択すること、および/またはより正確なMLモデルによって出力された占有マップのいくつかをより重く重み付けすることによって達成され得る。増加した閾値信頼度は、占有マップ502および/または占有マップ504の部分514を、占有を示すことから除外し得ることに留意されたい。占有マップ510の部分514は、それに応じて、それに関連付けられた環境の部分が占有されていないことを示し得る。
【0078】
動作412において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、データ構造に少なくとも部分的に基づいて自律車両を制御することを含み得る。データ構造は、本明細書で論じられる集約された占有マップ(それぞれの時間ステップにおける)を含み得る。動作412は、動作414、416、418、および/または420を含み得る。
【0079】
動作414において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、軌道を受信することを含み得る。例えば、軌道は、自律車両の計画コンポーネントから受信され得る。軌道は、現在および/または目標位置、速度、加速度、方位、ステアリング角、および/またはステアリングレートを示し得る。
【0080】
動作416において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、軌道がデータ構造の占有部分の閾値距離内にあるかどうかを決定することを含み得る。閾値距離は、現在および/または目標速度に少なくとも部分的に基づく、安全のための緩衝距離であってもよい。動作416は、軌道が、データ構造を構成する集約された占有マップのいずれかによって示される占有部分の閾値距離よりも小さい位置に関連付けられるかどうかを決定することを含んでもよい。換言すれば、動作416は、軌道が、それに関連付けられたそれぞれの占有マップによって、それぞれの時間のいずれかで占有されていると予測される環境の部分の閾値距離内に自律車両を置くことになるかどうかを決定することを含んでもよい。動作416において、衝突回避システムが、軌道が占有部分から閾値距離未満である位置に関連付けられない(すなわち、位置が閾値距離を満たすか或いは超える任意の占有部分からの距離にある)と決定した場合、例示的なプロセス400は動作418を継続してもよく、そうでなければ例示的プロセス400は動作420を継続してよい。
【0081】
追加または代替の例では、動作416は、軌道に関連するデータ構造のそれぞれの部分に関連する確率を合計すること、および/または合計された確率が閾値スコアを満たすか或いは超えるかを決定することを含み得る。閾値スコアは、軌道に関連付けられた速度および/または長さに少なくとも部分的に基づいてもよい(例えば、軌道の速度および/または長さが増加すると、閾値が増加してよい)。動作416は、軌道が交差、および/または軌道の閾値距離であるデータ構造の部分のサブセットを決定することを含み得る。閾値距離は、車両の現在の速度および/または軌道に関連付けられた速度に少なくとも部分的に基づき得る。確率を合計することは、データ構造の部分のサブセットに関連付けられた確率を合計することを含み得る。
【0082】
動作418において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、軌道を検証することおよび/または送信することを含み得る。例えば、軌道を検証することおよび/または送信することは、自律車両に軌道を実行させること(例えば、軌道をシステムコントローラに送信することによって)を含み得る。
【0083】
動作420において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、臨時の軌道を開始すること、および/または軌道を再決定することを含み得る。例えば、動作420は、車両に臨時の軌道を実行させることを含んでよく、これは、車両に減速、安全停止操舵、ハードブレーキなどを実行させるためにシステムコントローラに命令を送信することを含み得る。いくつかの例では、計画コンポーネントは、臨時の軌道を決定し、臨時の軌道を軌道とともに、および/または衝突回避コンポーネントによる要求に応じて、衝突回避コンポーネントに送信し得る。追加的または代替的な例では、動作420は、新しい軌道を決定するための要求を計画コンポーネントに送信することを含んでもよい。
【0084】
(例示的なアーキテクチャおよび/または訓練)
いくつかの例では、MLモデル302(1)~(n)は、他のアーキテクチャが企図されるが、エンコーダ-デコーダネットワークを含み得る。畳み込み層を有するエンコーダ-デコーダネットワークを使用する例では、エンコーダ層は、(2,2)のプーリングサイズで平均プーリングを使用してもよく、デコーダはバイリニアアップサンプリングを含んでもよい。デコーダに続いて、アーキテクチャは、ロジットを生成する単一の線形畳み込み層を含んでもよく、最終層は、異なる物体分類(例えば、歩行者、自転車の乗用者、オートバイ、車両、その他は地面をラベル付けし得る)に関連付けられた最終出力確率を生成するためにソフトマックスを適用してよい。いくつかの例では、MLモデル301(1)~(n)のうちのいくつかのアーキテクチャは、MLモデルによって取得されるセンサーデータに基づいて変化し得る。例えば、
図6Aは、入力としてライダーデータおよび/またはレーダーデータに少なくとも部分的に基づいて占有マップを決定するように訓練されたMLアーキテクチャの一例を示し、
図6Bは、画像データに少なくとも部分的に基づいて占有マップを決定するように訓練されたMLアーキテクチャの一例を示している。
【0085】
例えば、
図6Aは、ライダーデータおよび/またはレーダーデータに少なくとも部分的に基づいて占有マップを決定するために訓練されるMLモデル600を示し、バッチ正規化に続いて平均プーリング層を有する一対の畳み込み層からなる5ブロックのセットを含むエンコーダを含み得る。いくつかの例では、畳み込み層は、他の活性化が企図されるが、ReLU活性化を含んでよい(例えば、シグモイド、双曲線正接、リーキーReLU、パラメトリックReLU、ソフトマックス、スウィッシュ)。デコーダは、バッチ正規化を有する3つの畳み込み層を有する5つのブロックを含んでよい。ネットワークは、追加的または代替的に、エンコーダの第4のブロックからデコーダの第2のブロックへのスキップ接続602を含んでもよい。
【0086】
MLモデル302(1)~(n)のアーキテクチャのバリエーションの追加または代替の例を継続すると、
図6Bは、画像データに少なくとも部分的に基づいて占有マップを決定するように訓練されたMLモデル604が、ResNet(または他の視覚)バックボーン上に構築されたエンコーダ-デコーダネットワークを含み得ることを描写している。例えば、ResNetブロックは、3つの層を含み得るが、追加または代替のResNetまたは他のビジョン基幹コンポーネントが使用されてもよい。いくつかの例では、エンコーダおよびデコーダは、ResNetブロック上に4つのブロックを有してよく、少なくともいくつかの例では、アーキテクチャ604は、エンコーダとデコーダの間に正射影特徴変換層を含んでもよい。出力はトップダウンビューであるが、画像は透視ビューである。正射影特徴変換層は、ピクセル空間からトップダウン空間へ変換してもよい。いくつかの例では、正射影特徴変換層は、他の活性化が企図されるが(例えば、シグモイド、双曲線正接、リーキーReLU、パラメトリックReLU、ソフトマックス、スウィッシュ)、ReLU活性化を有する一連の不偏完全連結層を含んでよい。画像データ304が異なるカメラからの画像を含む例では、アーキテクチャ604は、共有エンコーダを介して各カメラビューからの画像を受信するように構成されてもよく、アーキテクチャは、各ビューについて個別の正射投影変換を訓練し、投影特徴を一緒に加算し、結果を単一のデコーダに通過させるように訓練されてもよい。
【0087】
MLモデルの学習は、異なるセンサー様式に関連する各MLモデルを独立して訓練することを含み得る。これは、アダムオプティマイザーを使用することを含んでもよい。いくつかの例では、MLモデルを訓練するために使用される損失関数は、各フレームに対して等しい重みで、すべての出力フレームに対するクロスエントロピーの合計を含んでもよい。追加的または代替的に、センサーデータにおけるこれらの分類の出現の低頻度(例えば、地面および車両と比較して)を考慮するために、歩行者および/または自転車物体分類に関連付けられた損失についてブーストされてもよい。これは、これらの物体分類に関連付けられた損失係数(例えば、10、分類がバランスされているかどうかに応じて他の任意の数)を乗算することを含み得る。少なくとも1つの例において、損失εは、以下の(式1)に従って計算されてもよい。
【0088】
【0089】
ここで、Fは将来のフレーム数、Gは環境のそれぞれの部分を占める物体分類を示す最終的な占有マップのセルのセット(例えば、地面、歩行者、車両、自転車など)、kcは分類の不均衡を考慮する係数(係数が使用されている場合)、pf
g(c)とqf
g(c)は与えられたフレームf、物体分類c、グリッドセルgのグランドトゥルースと予測された値である。
【0090】
いくつかの例では、最終的な占有マップは、占有マップのそれぞれのグリッドセルを占有する物体分類の表示を含み得る。追加または代替の例では、MLモデルは、グリッドセル表示に加え、またはその代わりに、検出された物体に関連付けられたインスタンスセグメンテーションおよび/または関心領域(ROI)を出力するように訓練されてもよい。例えば、ROIは、物体によって占有される環境の一部を画定するための外接矩形または任意の他の形状含んでよい。
【0091】
追加または代替の例では、異なるセンサータイプのセンサーデータは、単一の入力に融合され、1つまたは複数のMLモデルへの入力として提供され得る。そのような例では、1つまたは複数のMLモデルは、一緒に訓練されてもよい。
【0092】
これらのアーキテクチャおよび/または訓練および/または集約方法は、少なくとも部分的にセンサーデータ(例えば、一例では画像データ、ライダーデータ、および/またはレーダーデータ)に基づいてセマンティックセグメンテーションを決定できるMLモデルパイプラインをもたらし得る。MLモデルパイプラインは、最終的に、すべてのセンサータイプにわたる環境の共通の表現を生成してもよく、自律車両の知覚コンポーネントの複雑さを簡略化してもよい。これは、異なる性能要件に基づく融合手順の選択における柔軟性を提供する。さらに、セマンティックセグメンテーションタスクは、同じフレームワークを使用して、現在のフレームから将来のフレームにさらに拡張されることが可能であり、環境における物体の動きの短期的な予測を与える。このフレームワークのマルチモーダル、マルチフレームの性質は、下流の意思決定(例えば、コンポーネントの計画)に対して柔軟性とロバスト性を提供する。
【0093】
(例示項)
A.システムであって、2つ以上のセンサーと、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行された場合、システムに対して2つ以上のセンサーの少なくとも1つに関連する第1のセンサータイプに関連付けられた第1のセンサーデータを受信することと、2つ以上のセンサーの少なくとも1つに関連する第2のセンサータイプに関連付けられた第2のセンサーデータを受信することと、第1のセンサーデータに少なくとも部分的に基づいて、第1の現在の占有マップおよび第1の予測された占有マップを決定することであって、第1の予測された占有マップは、そのそれぞれの部分が占有される可能性を示す離散化グリッドを含むことと、第2のセンサーデータに少なくとも部分的に基づいて、第2の現在の占有マップおよび第2の予測された占有マップを決定することであって、第1の現在の占有マップおよび第2の現在の占有マップは、環境の部分が現在の時間において占有されている第1の可能性および第2の可能性を示し、第1の予測された占有マップおよび第2の予測された占有マップは、環境の部分が将来の時間において占有されている第3の可能性および第4の可能性を示す、ことと、第1の現在の占有マップと第2の現在の占有マップを、環境の部分が現在の時間において占有されているか占有されていないかどうかを示すデータ構造に結合することと、第1の予測された占有マップと第2の予測された占有マップを、環境の部分が将来の時間において占有されているか占有されていないかどうかを示すデータ構造に結合することと、データ構造に少なくとも部分的に基づいて、自律車両を制御することと、を含む動作を実行させるプロセッサ実行可能な命令を格納したメモリと、を含む。
【0094】
B.段落Aのシステムであって、動作が、データ構造に少なくとも部分的に基づいて、少なくとも最も近接した物体に関連付けられる第1の位置または第1の速度の少なくとも1つを決定することと、軌道を受信することと、をさらに含み、自律車両を制御することが、第1の位置または第1の速度の少なくとも1つ、および自律車両に関連付けられた第2の位置または第2の速度の少なくとも1つに少なくとも部分的に基づいて、軌道を実行させるように自律車両を制御、または、臨時の軌道を実行させるように自律車両を制御する、ように決定することをさらに含む。
【0095】
C.段落Bのシステムであって、臨時の軌道を実行するように自律車両を制御することが、軌道が占有されているとして示されるデータ構造の少なくとも一部の閾値距離以内であるということを決定すること、または、軌道に少なくとも部分的に基づいたデータ構造の部分の確率の合計を決定することの少なくとも1つに少なくとも部分的に基づく。
【0096】
D.段落AからCのいずれかのシステムであって、第1の占有マップを決定することが、入力として第1の機械学習(ML)モデルへ第1のセンサーデータを提供すること、および、出力として第1の占有マップを第1のMLモデルから受信することを含み、第2の占有マップを決定することが、入力として第2の機械学習(ML)モデルへ第2のセンサーデータを提供すること、および、出力として第2の占有マップを第2のMLモデルから受信することを含む。
【0097】
E.段落AからDのいずれかのシステムであって、第1の現在の占有マップが、環境の部分に関連付けられた第1の信頼度スコアを含み、第1の信頼度スコアが、部分が占有されている第1の可能性を示し、第2の現在の占有マップが、環境の部分に関連付けられた第2の信頼度スコアを含み、第2の信頼度スコアが、部分が占有されている第2の可能性を示し、第1の現在の占有マップおよび第2の現在の占有マップをデータ構造に結合することが、第1の信頼度スコア、第2の信頼度スコア、第1のセンサータイプ、第2のセンサータイプの少なくとも1つに少なくとも部分的に基づく。
【0098】
F.段落AからEのいずれかのシステムであって、動作が、第1の現在の占有マップの第1の部分を、第1の信頼度スコアが閾値信頼度を満たすかまたは超えるという決定に少なくとも部分的に基づいて、部分が占有されていることを示すものとして、関連付けることをさらに含み、第1の現在の占有マップおよび第2の現在の占有マップをデータ構造に結像することが、第1の部分および部分が占有されているまたは占有されていないことを示す第2の現在の占有マップに関連付けられた第2の部分の少なくとも1つに基づいた投票をさらに含む。
【0099】
G.方法であって、第1のセンサータイプに関連付けられた第1のセンサーデータを受信することと、第2のセンサータイプに関連付けられた第2のセンサーデータを受信することと、第1のセンサーデータに少なくとも部分的に基づいて第1の占有マップを決定することであって、第1の占有マップは、自律車両を取り巻く環境の部分が将来の時間において占有されているか占有されていなかどうかを示すことと、第2のセンサーデータに少なくとも部分的に基づいて第2の占有マップを決定することであって、第2の占有マップは、部分が将来の時間において占有されているか占有されていなかどうかを示すことと、第1の占有マップおよび第2の占有マップに少なくとも部分的に基づいて第1の占有マップおよび第2の占有マップをデータ構造に結合することであって、データ構造は、環境の部分が将来の時間において占有されているか占有されていないかどうかを示すことと、データ構造に少なくとも部分的に基づいて自律車両を制御することと、を含む。
【0100】
H.段落Gの方法であって、データ構造に少なくとも部分的に基づいて、少なくとも最も近接した物体に関連付けられる第1の位置または第1の速度を決定することと、軌道を受信することと、をさらに含み、自律車両を制御することが、第1の位置または第1の速度の少なくとも1つ、および自律車両に関連付けられた第2の位置または第2の速度の少なくとも1つに少なくとも部分的に基づいて、軌道を実行させるように自律車両を制御、または、臨時の軌道を実行させるように自律車両を制御する、ように決定することをさらに含む。
【0101】
I.段落Hの方法であって、臨時の軌道を実行するように自律車両を制御することが、軌道が占有されているとして示されるデータ構造の少なくとも一部の閾値距離以内であるということを決定すること、または、軌道に少なくとも部分的に基づいたデータ構造に関連付けられた確率の合計を決定することの1つまたは複数に少なくとも部分的に基づく。
【0102】
J.段落GからIのいずれかの方法であって、第1の占有マップを決定することが、入力として第1の機械学習(ML)モデルへ第1のセンサーデータを提供すること、および、出力として第1の占有マップを第1のMLモデルから受信することを含み、第2の占有マップを決定することが、入力として第2の機械学習(ML)モデルへ第2のセンサーデータを提供すること、および、出力として第2の占有マップを第2のMLモデルから受信することを含む。
【0103】
K.段落GからJのいずれかの方法であって、第1の現在の占有マップは、環境の部分に関連付けられた第1の信頼度スコアを含み、第1の信頼度スコアは、部分が占有されている第1の可能性を示し、第2の現在の占有マップは、環境の部分に関連付けられた第2の信頼度スコアを含み、第2の信頼度スコアは、部分が占有されている第2の可能性を示し、第1の現在の占有マップおよび第2の現在の占有マップをデータ構造に集約することは、信頼度スコアが閾値信頼度を満足するか超えることを決定することに少なくとも部分的に基づいて、第1の現在の占有マップの第1の部分を、部分が占有されていることを示すものとして関連付けることを含む。
【0104】
L.段落GからKのいずれかの方法であって、第1の現在の占有マップおよび第2の現在の占有マップをデータ構造に集約することは、第1の部分、および、部分が占有されたか占有されていないかを示す第2の現在の占有マップ関連付けられた第2の部分、第1のセンサータイプ、第2のセンサータイプ、第1の信頼度スコア、または第2の信頼度スコアの少なくとも1つ、に少なくとも部分的に基づいて部分が占有されていることを示すものとしてデータ構造の第2の部分を関連付けるための投票をさらに含む。
【0105】
M.段落GからLのいずれかの方法であって、第1のセンサーデータおよび第2のセンサーデータが、現在のセンサーデータおよび以前のセンサーデータを含み、第1の占有マップが、少なくとも現在の時間に関連付けられた現在の占有マップおよび将来の時間に関連付けられた予測された占有マップを含む。
【0106】
N.プロセッサ実行可能な命令を格納する非一時的コンピュータ可読媒体であって、1つまたは複数のプロセッサによって実行された場合、1つまたは複数のプロセッサに、車両に関連付けられた1つまたは複数の第1のセンサーから第1のセンサーデータを受信することであって、1つまたは複数の第1のセンサーは第1のセンサータイプであることと、車両に関連付けられた1つまたは複数の第2のセンサーから第2のセンサーデータを受信することであって、1つまたは複数の第2のセンサーは第2のセンサータイプであることと、第1のセンサーデータに少なくとも部分的に基づいて、車両を取り巻く環境の部分が、将来の時間において占有されているか占有されていなかどうかを示す第1の占有マップを決定することと第2のセンサーデータに少なくとも部分的に基づいて、車両を取り巻く環境の部分が、将来の時間において占有されているか占有されていなかどうかを示す第2の占有マップを決定することと第1の占有マップおよび第2の占有マップを、第1の占有マップおよび第2の占有マップに少なくとも部分的に基づいたデータ構造に集約することであって、データ構造は、環境の部分が将来の時間において占有されているか占有されていなかどうかを指示することと、データ構造に少なくとも部分的に基づいて、自律車両を制御することと、を含む動作を実行させる。
【0107】
O.段落Nの非一時的コンピュータ可読媒体であって、動作が、データ構造に少なくとも部分的に基づいて、少なくとも最も近接した物体に関連付けられた第1の位置または第1の速度の少なくとも1つを決定することと、軌道を受信することと、をさらに含み、自律車両を制御することが、第1の位置または第1の速度の少なくとも1つ、および自律車両に関連付けられた第2の位置または第2の速度の少なくとも1つに少なくとも部分的に基づいて、軌道を実行するように自律車両を制御する、または、臨時の軌道を実行するように自律車両を制御する、ように決定することをさらに含む。
【0108】
P.段落Oの非一時的コンピュータ可読媒体であって、臨時の軌道を実行するように自律車両を制御することが、軌道が占有されているとして示されるデータ構造の少なくとも一部の閾値距離以内であるということを決定すること、または、軌道に少なくとも部分的に基づいたデータ構造の部分の確率の合計を決定することの少なくとも1つに少なくとも部分的に基づく。
【0109】
Q.段落Pの非一時的コンピュータ可読媒体であって、第1の占有マップを決定することが、入力として第1の機械学習(ML)モデルへ第1のセンサーデータを提供すること、および、出力として第1の占有マップを第1のMLモデルから受信することを含み、第2の占有マップを決定することが、入力として第2の機械学習(ML)モデルへ第2のセンサーデータを提供すること、および、出力として第2の占有マップを第2のMLモデルから受信することを含む。
【0110】
R.段落N-Pのいずれかの非一時的コンピュータ可読媒体であって、第1の現在の占有マップは、環境の部分に関連付けられた第1の信頼度スコアを含み、第1の信頼度スコアは、部分が占有されている第1の可能性を示し、第2の現在の占有マップは、環境の部分に関連付けられた第2の信頼度スコアを含み、第2の信頼度スコアは、部分が占有されている第2の可能性を示し、第1の現在の占有マップおよび第2の現在の占有マップをデータ構造に集約することは、信頼度スコアが閾値信頼度を満足するか超えることを決定することに少なくとも部分的に基づいて、第1の現在の占有マップの第1の部分を、部分が占有されていることを示すものとして関連付けることを含む。
【0111】
S.段落N-Rのいずれかの非一時的コンピュータ可読媒体であって、第1の現在の占有マップおよび第2の現在の占有マップをデータ構造に集約することは、第1の部分、および、部分が占有されたか占有されていないかを示す第2の現在の占有マップ関連付けられた第2の部分、第1のセンサータイプ、第2のセンサータイプ、第1の信頼度スコア、または第2の信頼度スコアの少なくとも1つ、に少なくとも部分的に基づいて部分が占有されていることを示すものとしてデータ構造の第2の部分を関連付けるための投票をさらに含む。
【0112】
T.段落NからSのいずれかの非一時的コンピュータ可読媒体であって、第1のセンサーデータおよび第2のセンサーデータが、現在のセンサーデータおよび以前のセンサーデータを含み、第1の占有マップが、少なくとも現在の時間に関連付けられた現在の占有マップおよび将来の時間に関連付けられた予測された占有マップを含む。
【0113】
上述した例示項は、1つの特定の実装に関して説明されているが、本明細書のコンテキストにおいて、例示項の内容は、方法、装置、システム、コンピュータ可読媒体、および/または別の実装を介して実装されることも可能であることが理解されるべきである。さらに、例AからTのいずれかを単独で、または他の1つまたは複数の例AからTと組み合わせて実装され得る。
【0114】
(結論)
構造的な特徴および/または方法論的行為に特有の言語で主題を説明してきたが、添付の特許請求の範囲に定義される主題は、必ずしも説明された特定の特徴または行為に限定されないことが理解されるべきである。むしろ、特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示されている。
【0115】
本明細書で述べられる構成要素は、任意のタイプのコンピュータ可読媒体に格納され得、ソフトウェアおよび/またはハードウェアで実装され得る命令を表している。上述した方法およびプロセスの全ては、1つまたは複数のコンピュータ若しくはプロセッサ、ハードウェア、またはそれらのいくつかの組み合わせによって実装されるソフトウェアコードの構成要素および/またはコンピュータ実行可能命令において具現化され、それらを介して完全に自動化されてもよい。方法の一部または全ては、代替的に、特殊なコンピュータハードウェアで具現化されてもよい。
【0116】
本明細書で論じられるプロセスの少なくともいくつかは、論理フロー図として図示され、その各動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されることができる動作のシーケンスを表す。ソフトウェアのコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されると、コンピュータまたは自律車両に対して言及された動作を実行させる、1つまたは複数の非一時的コンピュータ可読記憶媒体に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行する、または特定の抽象的なデータタイプを実装するルーチン、プログラム、物体、コンポーネント、データ構造などを含む。動作が記載される順序は、限定として解釈されることを意図しておらず、記載された動作の任意の数は、処理を実行するために任意の順序でおよび/または並行して組み合わされることができる。
【0117】
特に、「し得る」、「であろう」、「してよい」、または「だろう」などの条件付き言語は、特に別段の記載がない限り、コンテキストの中で、特定の例が特定の特徴、要素、および/またはステップを含む一方で、他の例が含まないことを提示するものと理解される。したがって、このような条件付き言語は、一般的に、特定の特徴、要素、および/またはステップが1つまたは複数の例に何らかの形で必要であること、または1つまたは複数の例が、特定の特徴、要素、および/またはステップが含まれるかどうか、または特定の例で実行されるかどうかを、ユーザー入力またはプロンプトの有無にかかわらず決定するための論理を必ず含むことを意味するように意図されていない。
【0118】
「X、Y、またはZのうち少なくとも1つ」というフレーズのような接続詞的な言葉は、特に別段の記載がない限り、項目、用語などがX、Y、またはZのいずれか、または各要素の倍数を含むそれらの任意の組み合わせであり得ることを提示するように理解されるべきである。明確に単数形と記載されていない限り、「a」は単数形および複数形を意味する。
【0119】
本明細書に記載されたおよび/または添付の図に描かれたフロー図における任意のルーチンの記述、要素又はブロックは、ルーチンにおける特定の論理的な機能又は要素を実施するための1つ以上のコンピュータ実行可能な命令を含むコードのモジュール、セグメントまたは部分を表す可能性があると理解すべきである。当業者であれば理解できるように、関係する機能に応じて、要素または機能は削除したり、実質的に同期させたり、逆の順序で実行したり、追加の操作を行ったり、または操作を省略するなど、図示または議論されたものとは異なる順序で実行され得る代替の実装が、本明細書に記載された例の範囲内に含まれる。
【0120】
上述した例には、多くの変更および修正を加えてもよく、その要素は、他の許容可能な例の1つであると理解されるべきである。そのようなすべての修正および変更は、本開示の範囲内で本明細書に含まれることを意図しており、以下の請求項によって保護される。
【国際調査報告】