(57)【要約】  様々な実例において、入力画像内の線に関して回帰するためにマシン学習モデルの入力分解からの豊富な空間情報を保存する、システム及び方法が、開示される。マシン学習モデルは、入力画像内の線に対応すると判定された線画素までの入力分解における入力画像の各画素の距離を、配備中に、予測するようにトレーニングされ得る。マシン学習モデルはさらに、線の角度及びラベル・クラスを予測するようにトレーニングされ得る。埋め込みアルゴリズムが、入力画像内のそれぞれの線にそれぞれ対応する線画素のクラスタを予測するようにマシン学習モデルをトレーニングするために使用され得る。配備中に、マシン学習モデルの予測が、様々な自律マシン適用において、周辺環境を理解するための−たとえば、世界モデルを更新するための−支援として使用され得る。
2021532512.tif 000002
【特許請求の範囲】
【請求項１】
画像を表す画像データを受信するステップと、第１の空間分解における前記画像データをマシン学習モデルに適用するステップと、前記マシン学習モデルによって及び前記画像データに少なくとも部分的に基づいて、前記第１の空間分解より小さい第２の空間分解に対応する複数の第２の画素のそれぞれの画素距離を計算するステップであって、前記画素距離は、前記第１の空間分解における第１の画素と前記画像内の線に対応する前記第１の空間分解における最も近い線画素との間の距離に対応する、計算するステップと、前記第２の空間分解における前記第２の画素の第２の画素座標を前記第１の空間分解における第１の画素座標に変換するステップと、前記変換に少なくとも部分的に基づいて、前記第１の空間分解における前記第１の画素座標に関する前記画素距離を使用して前記画像内の線画素の位置を判定するステップと、を含む方法。
【請求項２】
前記第２の空間分解が、前記第１の空間分解に対してＮ分の１の分解を備え、前記第２の画素座標を前記第１の画素座標に変換する前記ステップが、前記第２の画素座標にＮを掛けるステップを含む、請求項１に記載の方法。
【請求項３】
前記第１の空間分解における前記第１の画素座標に関する前記画素距離を使用して前記画像内の前記線画素の前記位置を判定する前記ステップが、前記第１の空間分解における前記第１の画素のそれぞれへの投票の数を、前記画素距離に少なくとも部分的に基づいて、判定するステップと、投票の閾値数より多い投票を有する前記第１の画素のうちの各第１の画素について、前記線画素のうちの１個が前記第１の画素に位置すると判定するステップとを含む、請求項１に記載の方法。
【請求項４】
前記第１の画素への自己投票が、前記第１の画素への他の画素投票より高い重みを与えられる、請求項３に記載の方法。
【請求項５】
前記第２の空間分解における前記第２の画素のそれぞれに対応するラベル・クラスを、前記マシン学習モデルによって及び前記画像データに少なくとも部分的に基づいて、計算するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記ラベル・クラスが、前記ラベル・クラスに対応するビット値として計算される、請求項５に記載の方法。
【請求項７】
前記第２の空間分解における前記第２の画素のそれぞれに対応する角度を、前記マシン学習モデルによって及び前記画像データに少なくとも部分的に基づいて、計算するステップと、前記角度を使用して前記画像内の線の少なくとも一部分のジオメトリを判定するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記線画素のそれぞれに対応する正接値を、前記マシン学習モデルによって及び前記画像データに少なくとも部分的に基づいて、計算するステップと、前記正接値を使用して前記画像内の線の少なくとも一部分のジオメトリを判定するステップとをさらに含む、請求項１に記載の方法。
【請求項９】
高次元ベクトルのクラスタを、前記マシン学習モデルによって及び前記画像データに少なくとも部分的に基づいて、計算するステップと、前記画像内の同じ線に対応する前記線画素を、前記クラスタに少なくとも部分的に基づいて、判定するステップと、前記同じ線に対応する前記線画素を使用して前記画像に関する前記線の表現を生成するステップとをさらに含む、請求項１に記載の方法。
【請求項１０】
画像を表す画像データを受信するステップと、前記画像に関連する１個又は複数のラベル及び対応するラベル・クラスを表す注釈データを受信するステップと、前記画像の画素のうちの各画素について、前記１個又は複数のラベルのうちの１ラベルに関連する最も近い線画素までの画素距離を判定するステップ、及び、前記ラベルに関連する前記画素までの前記画素距離及びラベル・クラスをエンコードしてグラウンド・トゥルース・データを生成するステップと、前記グラウンド・トゥルース・データを使用してニューラル・ネットワークをトレーニングするステップとを含む、方法。
【請求項１１】
前記１個又は複数のラベルに対応する前記画素の各ラベル画素について、前記線画素の画素の行と平行に伸びる水平線と前記線画素に対応するラベルとの間の角度を判定するステップ、及び、前記グラウンド・トゥルース・データと前記角度に対応する角度データをエンコードするステップと、前記エンコードされた角度データと前記グラウンド・トゥルース・データをさらに使用して前記ニューラル・ネットワークをトレーニングするステップとをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記ラベルに関連する前記ラベル・クラスをエンコードする前記ステップが、前記ラベルに対応するビット値をエンコードするステップを含む、請求項１０に記載の方法。
【請求項１３】
前記最も近い線画素までの前記画素距離を判定する前記ステップが、前記画素の行の画素において前記最も近い線画素までの前記画素距離を判定するステップを含み、前記画素までの前記画素距離をエンコードする前記ステップが、前記画素の前記行の画素に沿った前記画素距離をエンコードするステップを含む、請求項１０に記載の方法。
【請求項１４】
前記最も近い線画素までの前記画素距離を判定する前記ステップが、前記画素の行の画素に沿った第１の画素距離及び前記画素の列の画素に沿った第２の画素距離として前記ラベルに関連する前記最も近い線画素までの前記画素距離を判定するステップを含み、前記画素までの前記画素距離をエンコードする前記ステップが、前記画素の前記行の画素に沿った前記第１の画素距離及び前記画素の前記列の画素に沿った前記第２の画素距離として前記画素距離をエンコードするステップを含む、請求項１０に記載の方法。
【請求項１５】
前記１個又は複数のラベルに対応する前記画素の各線画素について、前記線画素における前記ラベルの正接を判定するステップ、及び、前記グラウンド・トゥルース・データと前記線画素の前記正接に対応する正接データをエンコードするステップと、前記エンコードされた正接データを有する前記グラウンド・トゥルース・データをさらに使用して前記ニューラル・ネットワークをトレーニングするステップとをさらに含む、請求項１０に記載の方法。
【請求項１６】
前記注釈データがさらに、前記ラベルのクラスタ・ラベルを表し、前記方法が、前記画素を高次元ベクトルにマップするステップと、前記高次元ベクトル間の距離を判定するステップと、前記高次元ベクトルのうちの他のベクトルまでの閾値距離内の前記高次元ベクトルをともにクラスタ化するように、第３のグラウンド・トゥルース・データとしての前記クラスタ・ラベルの使用に少なくとも部分的に基づいて、前記ニューラル・ネットワークをトレーニングするステップとをさらに含む、請求項１０に記載の方法。
【請求項１７】
前記高次元ベクトルのうちの前記他のベクトルの前記閾値距離内の前記高次元ベクトルが、前記画像内の同じ線に対応すると判定される、請求項１６に記載の方法。
【請求項１８】
物理環境の視界を有する車両の画像センサによって生成された画像を表す画像データを受信するステップと、第１の空間分解における前記画像データをマシン学習モデルに適用するステップと、前記第１の空間分解における前記画素の第１の位置と前記第１の空間分解における最も近い線画素の第２の位置との間の画素距離、及び、前記最も近い線画素に対応する前記第２の位置における線の角度を、前記マシン学習モデルによって及び前記第２の空間分解における各画素について、計算するステップと、前記線のジオメトリを、各画素の前記画素距離及び前記角度に少なくとも部分的に基づいて、判定するステップと、前記ジオメトリを少なくとも１個の他のアプリケーションに送るステップとを含む、方法。
【請求項１９】
前記マシン学習モデルによって及び前記第２の空間分解における各画素について計算する前記ステップが、前記最も近い線画素の線クラスに対応するビット値を計算するステップと、前記ビット値に少なくとも部分的に基づいて前記線クラスを判定するステップとを含み、前記１個又は複数の動作を実行する前記ステップがさらに、前記線クラスに少なくとも部分的に基づく、請求項１８に記載の方法。
【請求項２０】
高次元ベクトルの各々がそれぞれの線画素に対応している、前記高次元ベクトルのクラスを、前記マシン学習モデルによって及び埋め込みアルゴリズムを使用して計算するステップをさらに含み、前記線の前記ジオメトリを判定する前記ステップが、前記クラスタに少なくとも部分的に基づく、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律運転マシンのための回帰ベースの線分検出に関するものである。
【背景技術】
【０００２】
環境において車線境界線、車線外側線、道路境界線、テキスト、及び／又は他の特徴を正確に及び精密に検出する能力は、すべてのレベルの自律性における自律マシン適用−たとえば、半自律型車両から完全自律型車両まで−のために必須である。路面標識品質のばらつき、車線及び路面標識慣習の地理的な差、並びに、摩損、気象条件、照明条件、一時的標識（たとえば、工事又は災害救助による）、及び／又は同類のものによる路面標識妨害、劣化、及び／又は閉塞により、運転中に環境において遭遇され得る車線区分線の多様性は、非常に高い。
【０００３】
車線又は線分検出のいくつかの従来の手法は、ディープ・ニューラル・ネットワーク（ＤＮＮ：ｄｅｅｐ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）処理を使用しており、そこでは、車線及び線の運転する表面及び関連する注釈の高分解画像が、ＤＮＮ（たとえば、畳み込みニューラル・ネットワーク（ＣＮＮ：ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ））をトレーニングして車線境界線を認識するために使用される。これらの従来の手法は、車線境界線の一部であるか否かとして画像の各画素を分類することによって、画像内の車線境界線の一般位置を示す区分マスクを生成するためにＤＮＮをトレーニングした。しかしながら、これらの従来の手法では、畳み込み演算を介してＤＮＮ処理中にＤＮＮによって実行されるインクリメンタル・ダウンサンプリングの結果として、ＤＮＮの出力において分解の損失が生じることになる。たとえば、ダウンサンプリングの結果として、ＤＮＮの入力分解における車線境界線に対応する個々の画素は、ＤＮＮの出力分解における不鮮明な画素ブロブになり得る。車線境界線又は端を推論するための重大な空間情報のこの損失は、車線又は線分検出の精度及び正確性を低下させる。
【０００４】
加えて、ＤＮＮを使用して車線又は線クラスを予測する従来のシステムは、各クラスの別個の出力チャネル（たとえば、別個の予測）を必要とする。そのようなものとして、これらの従来のシステムのＤＮＮは、各出力チャネルの各画素の予測を別個に処理及び生成することを必要とされる。この手法を使用して、システムのランタイムは、増やされ、それによって、車線又は線予測のリアルタイムの配備を付加的計算資源、エネルギ、及び処理能力を必要とする重荷になるタスクにさせている。これらの従来のシステムはまた、車線又は線を再構築するために、ＤＮＮによって出力された−空間情報が失われた低分解で−区分マスクを使用することを必要とする重要な後処理ステップを用いる。しかしながら、この手法は、ランタイムで処理時間を増やすだけでなく、システムによる車線及び線のより正確性の低い最終予測をもたらす。究極的に、これらの従来のシステムのＤＮＮの予測は、かなりの処理、エネルギ、及び計算資源を必要とすると同時に、運転している表面の正確な及び精密な理解を−リアルタイムで−得る自律型車両の能力に影響を及ぼす。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１６／１０１，２３２号
【発明の概要】
【０００６】
本開示の実施例は、自律運転マシンの回帰ベースの線分検出に関する。入力画像の空間分解又は次元と比較して小型化された空間分解又は次元において圧縮された情報を提供することによって深層学習モデルを介して豊富な空間情報を保存する、システム及び方法が、開示される。そのようなものとして、本開示の実施例は、車線境界線、道路境界線、道路上のテキスト、又は看板（たとえば、ポール、道路標識など）を含むが、これらに限定されない、自律運転マシンの線分検出に関する。
【０００７】
前述のものなどの従来のシステムとは対照的に、本開示のシステムは、入力画像内の線（又は他のラベル・クラス）に対応すると判定された線画素（又は任意の他のラベル・クラスに対応する画素）への入力分解における入力画像の各画素の距離−１次元（１Ｄ）又は２次元（２Ｄ）−を予測するようにマシン学習モデルをトレーニングすることができる。結果として、マシン学習モデルの出力分解は、入力分解より小さいことがある（たとえば、２分の１、４分の１など）けれども、距離が、入力分解の空間情報を保存して入力分解における線を精密に再作成するために、使用され得る。したがって、処理のためにより高い入力分解を使用する、より低い出力分解において予測を生成することによって、システムのランタイムは、減らされつつ、空間情報の保存が、予測の正確性を維持する。
【０００８】
線画素の位置に加えて、各線画素の位置における線の角度が、線のジオメトリ全体の理解においてシステムを支援するために、マシン学習モデルによって計算され得る−それにより、システムによって使用するための線再作成の正確性を高める。システムのリアルタイムの動作のランタイムをさらに減らすために、マシン学習モデルは、ビット・エンコード・プロセスを使用してラベル・クラスを予測するようにトレーニングされ得、それにより、各出力チャネルの（たとえば、各クラスの）各画素の予測を必要とする従来のシステムの制約を取り除くことができる。従来のシステムとはさらに対照的に−及びシステムの後処理負荷全体を減らすために−マシン学習モデルは、埋め込みアルゴリズムを使用して線画素のクラスタを予測するようにトレーニングされ得、そこで、各クラスタは、個々の線に対応する。
【０００９】
自律運転マシンのための回帰ベースの線分検出のための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
【図面の簡単な説明】
【００１０】
【図１Ａ】本開示のいくつかの実施例による、マシン学習モデルを使用する線予測のための例示的プロセスを示すデータ流れ図である。
【図１Ｂ】本開示のいくつかの実施例による、マシン学習モデルを使用して画像の線を再作成する実例の図である。
【図２Ａ】本開示のいくつかの実施例による、線予測を復号するための投票方法の実例の図である。
【図２Ｂ】本開示のいくつかの実施例による、線予測を復号するための投票方法の実例の図である。
【図２Ｃ】本開示のいくつかの実施例による、線角度を復号するための方法の実例の図である。
【図３】本開示のいくつかの実施例による、マシン学習モデルの予測を使用して画像の線を再作成する例示的視覚化の図である。
【図４】本開示のいくつかの実施例による、マシン学習モデルを使用して画像内の線を予測するための方法を示す流れ図である。
【図５】本開示のいくつかの実施例による、線予測のためにマシン学習モデルをトレーニングするための例示的プロセスを示すデータ流れ図である。
【図６】本開示のいくつかの実施例による、線予測のためにマシン学習モデルをトレーニングするためのグラウンド・トゥルース注釈の例示的視覚化であり、マシン学習モデルを使用する線予測のための例示的プロセスを示すデータ流れ図である。
【図７Ａ】本開示のいくつかの実施例による、マシン学習モデルの入力の空間情報を保存するためのエンコード方法の実例の図である。
【図７Ｂ】本開示のいくつかの実施例による、線角度を予測するようにマシン学習モデルをトレーニングすることの及びそのためのエンコード方法の実例の図である。
【図８】本開示のいくつかの実施例による、線クラスタを予測するようにマシン学習モデルをトレーニングするためのエンコード方法の実例の図である。
【図９】本開示のいくつかの実施例による、画像内の線を予測するようにマシン学習モデルをトレーニングするための方法を示す流れ図である。
【図１０Ａ】本開示のいくつかの実施例による、例示的自律型車両のイラストレーションである。
【図１０Ｂ】本開示のいくつかの実施例による、図１０Ａの例示的自律型車両のカメラ位置及び視野の実例である。
【図１０Ｃ】本開示のいくつかの実施例による、図１０Ａの例示的自律型車両の例示的システム・アーキテクチャのブロック図である。
【図１０Ｄ】本開示のいくつかの実施例による、クラウドベースのサーバと図１０Ａの例示的自律型車両との間の通信のシステム図である。
【図１１】本開示のいくつかの実施例の実装において使用するのに適した例示的コンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１１】
自律運転マシンの回帰ベースの線分検出に関連するシステム及び方法が開示される。本開示は、例示的自律型車両１０００（その実例が図１０Ａ〜１０Ｄに関して本明細書で説明され、本明細書で別法として「車両１０００」又は「自律型車両１０００」と称される）に関して説明されることがあるが、これは限定を意図していない。たとえば、本明細書に記載のシステム及び方法は、非自律型車両、半自律型車両（たとえば、高度運転者支援システム（ＡＤＡＳ：ａｄｖａｎｃｅｄ  ｄｒｉｖｅｒ  ａｓｓｉｓｔａｎｃｅ  ｓｙｓｔｅｍ）における）、ロボット、倉庫車両、オフロード車両、飛行船舶、ボート、旅客車両、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気若しくは原動機付自転車、オートバイ、消防車、警察車両、救急車、建設車両、潜水艦、ドローン、及び／又は別のタイプの車両（たとえば、無人の及び／又は１人若しくは複数の旅客を乗せる）によって、使用され得る。加えて、本開示は、自律運転に関して説明されることがあるが、これは、限定を意図していない。たとえば、本明細書に記載のシステム及び方法は、ロボット工学、航空システム、船舶システム、並びに／或いは、知覚、世界モデル管理、進路プランニング、障害物回避、及び／又は他のプロセスなどのための、他の技術分野において使用され得る。
【００１２】
本明細書に記載のものなどの従来のシステムとは対照的に、本開示のシステムは、マシン学習モデルによる低分解処理の利点を維持しつつ、マシン学習モデル（たとえば、畳み込みニューラル・ネットワーク（ＣＮＮ）などのディープ・ニューラル・ネットワーク（ＤＮＮ））の入力分解において入手可能な豊富な空間情報を保存する。結果として、マシン学習モデルが、畳み込み演算を介して入力を処理して圧縮された出力を生成するときでも、環境の車線境界線、道路境界線、テキスト、及び／又は他の特徴の予測の正確性は、保存される。たとえば、高分解情報が、マシン学習モデル処理中に導入される量子化又はダウンサンプリング中に失われないように、マシン学習モデルへの入力として使用される画像データは、エンコードされ得る。エンコードは、マシン学習モデルに固有の−特にＣＮＮにおける−処理中に豊富な空間情報を保存するのに十分な冗長性を生み出す方法で、グラウンド・トゥルース・データ（たとえば、車線境界線、道路境界線、テキスト、及び／又は他の特徴に対応する注釈付きラベル）に実行され得る。本開示のシステム及び方法のいくつかの非限定的利点は、車線検出範囲の増加、車線外側線精度若しくはリコールの増加、及び、低分解の画像処理を活用しつつ−それにより、車内推論の計算負荷を低減しつつ−高分解画像において入手可能な豊富な空間情報を保存する能力である。加えて、いくつかの実施例において、エンコード（たとえば、トレーニング中）と復号（たとえば、配備中の、推論中の）との両方は、いくつかの計算カーネル（たとえば、ＮＶＩＤＩＡのＣＵＤＡのＣＵＤＡカーネル）を介するエンコード及び／又は復号のためのアルゴリズムを並列処理してトレーニング中の配備及び処理時のランタイムを減らすことなどによって、ＧＰＵ加速され得る。
【００１３】
本開示のマシン学習モデルは、線、線に沿った角度、及び／又は線のタイプ（たとえば、実線、破線、道路境界線、テキスト、標識など）に属する最も近い画素までの各画素からの１次元（１Ｄ）及び／又は２次元（２Ｄ）距離を、配備中に、予測するようにトレーニングされ得る。１Ｄ及び／又は２Ｄ距離は、入力分解における画像データの空間情報を保存するために、計算され得る。たとえば、各画素は、線画素まで（たとえば、画像内の線、又はマシン学習モデルが予測するようにトレーニングされた別の特徴タイプに対応すると判定された画素まで）の距離に対応する画素距離とエンコードされ得るので、画素情報が処理中に失われたときでも、画素距離が、線に対応する高分解画像における元の画素の位置を回復するために使用され得る。したがって、マシン学習モデルの出力分解は、入力分解より少なくてもよく、復号プロセスが、マシン学習モデルの出力から入力分解画像の線情報を再構築するために使用され得る。復号中に、エンコードされた画素データに基づく投票方法が、入力分解画像の線形成を再構築するために使用され得る。たとえば、出力からのそれぞれの画素値が、入力分解画像内の画素への投票をキャストするために使用され得、そして、閾値数の投票が、画素へのキャストである場合、その画素は、入力画像内の線に属すると判定され得る。
【００１４】
線に沿った角度が、線の形状を再構築するために使用され得、そこで、線の形状又はジオメトリは、車線保持、車線内及び車線間のハンドリングなどのために自律型車両によって使用され得る。トレーニング中に、角度が、線に対応する各画素について計算及びエンコードされ得る（たとえば、代表画素を決定するためにグラウンド・トゥルース線注釈を使用して）。角度の０〜３６０度の値が、それぞれの画素についてエンコードされ得、そこで、角度値は、角度がエンコードされている画素の１行の画素に沿って伸びる水平線に対して計算される。角度自体をエンコードする代わりに、いくつかの実施例では、角度値の余弦及び正弦構成要素がエンコードされ得る。画素対画素の変動は、平滑化技法を使用して克服され得る。復号中に、マシン学習モデルによって出力される値は、画素位置における線の角度に対応し得る。
【００１５】
マシン学習モデルは、環境内の適切な動きの決定において自律型車両が使用するための線タイプを検出するようにトレーニングされ得る。非限定的実例として、破線が検出されるときにはいつでも、車両は、車線変更又は通過操作を実行することができ得る。同様に、黄色の実線が検出されるとき、車両の自律制御システムは、どの操作も黄色の実線を乗り越えてはならないことを理解し得る。異なる線クラスについて、異なる値が割り当てられ得る。しかしながら、Ｎ個の異なる線クラスのそれぞれを表すための出力を必要とし得る従来のシステムとは対照的に、本システムは、各異なる線クラスのビット値をエンコードし得る。ビット値をエンコードすることによって、マシン学習モデルは、Ｎ個の異なる線クラスのそれぞれについての出力に対立するものとしてのｌｏｇ２（Ｎ）出力を出力することのみを必要とし得る。したがって、マシン学習モデルは、マシン学習モデルが予測するようにトレーニングされるいくつかのビットに対応する２進数列を出力し得る（たとえば、４ビット２進数列は、各ビットに１個の、４個の出力チャネルを生成する）。結果として、マシン学習モデル・トレーニングは、マシン学習モデルが各クラスの付加的出力チャネルを予測するようにトレーニングされることを必要とせずに、付加的クラスに迅速に拡張可能になり得る。
【００１６】
いくつかの実施例において、どの線画素が同じ線に対応するかを判定するために、高次元の埋め込みアルゴリズムが、線の完全なジオメトリを推論するためにクラスタを予測するために−又はドットを接続するために−マシン学習モデルによって使用され得る。たとえば、各線画素は、高次元ベクトルを同じ線のものではない他の高次元ベクトルから、空間において、分ける方法で、高次元ベクトルにマップされ得る。このプロセスは、画像のそれぞれの線画素について完了され得る。マシン学習モデルは、次いで、高次元ベクトルの関係（又は近接）を使用して、線画素の間で、クラスタ、又は接続性を判定することができる。第１の閾値距離（２ｘｄｗｉｔｈｉｎ）内に関連ベクトルを有する画素−ｄｗｉｔｈｉｎはクラスタ内の分散に対応する−は、ともにクラスタ化され得、第２の閾値距離（たとえば、４ｘｄｗｉｔｈｉｎ）より大きく離れた関連ベクトルを有する画素は、異なるクラスタのものであると判定され得る。たとえば、第１のベクトルは、第１のクラスタ（たとえば、第１の画像内の線に対応する）として登録され得る。第２のベクトルは、第１のベクトルと第２のベクトルとの間のユークリッド距離を計算するために使用され得る。その距離が第１の閾値未満である場合、第１のベクトル及び第２のベクトルは、第１のクラスタに割り当てられ得、そして、その距離が第２の閾値より大きい場合、第２のベクトルは、第２のクラスタとして登録され得る。一部の実施例では、平均シフト・クラスタリングが、ｄｗｉｔｈｉｎのカーネル半径を使用して実行され得る。
【００１７】
復号中に、各線画素は、入力画像内の画素座標位置にマップされ得、線画素は、高次元ベクトルにマップされ得、逆写像が、高次元ベクトルのクラスタに対応する線画素を判定するために使用され得る。画像内に結果として生じる線の幾何学的適合性を生み出すために、最小二乗ポリフィット（ｐｏｌｙｆｉｔ）・プロセスが、完全な線を表す多項式係数を生み出すために実行され得る。いくつかの非限定的実例において、３次ポリフィット（たとえば、４個の係数）が、使用され得る。
【００１８】
マシン学習モデルを使用する線予測
ここで図１Ａを参照すると、図１Ａは、本開示のいくつかの実施例による、マシン学習モデルを使用する線予測のための例示的プロセス１００を示すデータ流れ図である。高いレベルで、プロセス１００は、１個又は複数のマシン学習モデル１０４が１個又は複数の入力、たとえば、画像データ１０２、を受信することと、１個又は複数の出力、たとえば、画素距離１０８、角度１１０、線クラス１１２、及び／又はクラスタ・ベクトル１１４、を生成することとを含み得る。画像データ１０２は、自律型車両（たとえば、少なくとも図１０Ａ〜１０Ｄに関して本明細書で説明されているような車両１０００）の１個又は複数のカメラによって、生成され得る。いくつかの実施例において、画像データ１０２は、他のタイプのセンサ・データ、たとえば、１個又は複数のＬＩＤＡＲセンサ１０６４からのＬＩＤＡＲデータ、１個又は複数のＲＡＤＡＲセンサ１０６０からのＲＡＤＡＲデータ、１個又は複数のマイクロフォン１０９６からのオーディオ・データなど、を追加で又は別法として含み得る。マシン学習モデル１０４は、自律運転ソフトウェア・スタックの知覚構成要素、世界モデル管理構成要素、プランニング構成要素、制御構成要素、及び／又は他の構成要素によって使用され得る出力１０６を生成するようにトレーニングされ得る。たとえば、車両１０００に関して、線１２２は、環境内の１個又は複数の動作（たとえば、進路プランニング、マッピングなど）の実行において自律型車両１０００を支援するために、環境を自律型車両１０００のコントローラ１１３６、ＡＤＡＳシステム１１３８、ＳＯＣ１１０４、及び／又は他の構成要素に知らせるために使用され得る。
【００１９】
いくつかの実施例において、画像データ１０２は、車両の１個又は複数のカメラ、たとえば、自律型車両１０００（図１０Ａ〜１０Ｄ）のステレオ・カメラ１０６８、ワイドビュー・カメラ１０７０（たとえば、魚眼カメラ）、赤外線カメラ１０７２、サラウンド・カメラ１０７４（たとえば、３６０度カメラ）、長距離及び／若しくは中距離カメラ１０９８、並びに／又は他のカメラ・タイプ、の視界の画像を表すデータを含み得る。一部の実例では、画像データ１０２は、車両１０００の横軸（たとえば、左から右）に関して前向きの、実質的に中心の視界を有する単一のカメラによってキャプチャされ得る。非限定的実施例では、ワイドビュー・カメラ１０７０、サラウンド・カメラ１０７４、ステレオ・カメラ１０６８、及び／又は長距離若しくは中距離カメラ１０９８などの、１個又は複数の前向きのカメラ（たとえば、中央に又はほぼ中央に取り付けられたカメラ）が、使用され得る。前向きのカメラは、車両１０００の行程の現在の車線、車両１０００の行程の隣接車線の両方、及び／又は運転している表面の境界線を含む視界（たとえば、図１０Ｂの前向きのステレオ・カメラ１０６８及び／又はワイドビュー・カメラ１０７０の視界）を含み得るので、この視点からキャプチャされた画像データは、ナビゲートするとき−たとえば、車線内、車線変更を通して、曲がり角を通って、交差点を通ってなど−の知覚のために有用になり得る。いくつかの実例において、複数のカメラ又は他のセンサ（たとえば、ＬＩＤＡＲセンサ、ＲＡＤＡＲセンサなど）が、複数の視界又は知覚フィールド（たとえば、図１０Ｂの長距離カメラ１０９８、前向きのステレオ・カメラ１０６８、及び／又は前向きのワイドビュー・カメラ１０７０の視界）を組み込むために使用され得る。
【００２０】
いくつかの実例において、画像データ１０２は、１個のフォーマット（たとえば、ＲＣＣＢ、ＲＣＣＣ、ＲＢＧＣなど）でキャプチャされ得、次いで、別のフォーマットに変換され得る（たとえば、画像データの前処理中に）。いくつかの他の実例において、画像データ１０２は、前処理された画像データを生成するために、画像データ・プリプロセッサ（図示せず）への入力として提供され得る。多数のタイプの画像又はフォーマット、たとえば、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＲＧＢ（Ｒｅｄ  Ｇｒｅｅｎ  Ｂｌｕｅ）、若しくは輝度／クロミナンス（ＹＵＶ：Ｌｕｍｉｎａｎｃｅ／Ｃｈｒｏｍｉｎａｎｃｅ）フォーマットなどでの圧縮された画像、圧縮されたビデオ・フォーマット（たとえば、Ｈ．２６４／アドバンスト・ビデオ・コーディング（ＡＶＣ：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、Ｈ．２６５／高性能ビデオ・コーディング（ＨＥＶＣ：Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、ＶＰ８、ＶＰ９、アライアンス・フォー・オープン・メディア・ビデオ１（ＡＶ１：Ａｌｌｉａｎｃｅ  ｆｏｒ  Ｏｐｅｎ  Ｍｅｄｉａ  Ｖｉｄｅｏ  １）、多用途ビデオ・コーディング（ＶＶＣ：Ｖｅｒｓａｔｉｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、又は任意の他のビデオ圧縮標準）から生じるフレームなどの圧縮された画像、レッド・クリア・ブルー（ＲＣＣＢ：Ｒｅｄ  Ｃｌｅａｒ  Ｂｌｕｅ）、レッド・クリア（ＲＣＣＣ：Ｒｅｄ  Ｃｌｅａｒ）又は他のタイプの画像センサに由来するものなどの未加工の画像、が、入力として使用され得る。一部の実例では、異なるフォーマット及び／又は分解が、推論のため（たとえば、自律型車両１０００におけるマシン学習モデル１０４の配備中）よりもマシン学習モデル１０４のトレーニングのために使用され得る。
【００２１】
画像データ・プリプロセッサは、１個又は複数の画像を表す画像データ（又は他のデータ表現、たとえば、ＬＩＤＡＲ深度マップ）を使用し、多次元の配列／マトリックス（別法として、テンソル、又は、一部の実例では、より具体的には入力テンソルと称される）の形でメモリにセンサ・データをロードすることができる。配列サイズは、ＷｘＨｘＣとして計算する及び／又は表すことができ、そこで、Ｗは、画素単位での画像幅を表し、Ｈは、画素単位での高さを表し、そして、Ｃは、カラー・チャネルの数を表す。一般性を失うことなく、入力画像構成要素の他のタイプ及び順序もまた、可能である。追加で、バッチ・サイズＢは、バッチ処理が使用されるときに、次元（たとえば、付加的第４の次元）として使用され得る。バッチ処理は、トレーニングのために及び／又は推論のために使用され得る。したがって、入力テンソルは、次元ＷｘＨｘＣｘＢの配列を表し得る。画像データ・プリプロセッサを実装するために使用される特定のハードウェア及びソフトウェアに応じて決まり得る、次元の任意の順序付けが、可能になり得る。この順序付けは、マシン学習モデル１０４のトレーニング及び／又は推論性能を最大にするために選択され得る。
【００２２】
一部の実施例では、前処理画像パイプラインが、センサ（たとえば、カメラ）によって獲得された及び画像データ１０２に含まれた未加工画像を処理して、マシン学習モデル１０４の入力層（たとえば、図１Ｃの特徴エクストラクタ層１４２）への入力画像を表し得る前処理された画像データを生み出すために、画像データ・プリプロセッサによって使用され得る。適切な前処理画像パイプラインの一実例は、センサからの未加工ＲＣＣＢバイエル（たとえば、１チャネル）タイプの画像を使用し、その画像を固定精度（たとえば、チャネルごとに１６ビット）フォーマットで記憶されたＲＣＢ（たとえば、３チャネル）平面画像に変換することができる。前処理画像パイプラインは、デコンパンディング（ｄｅｃｏｍｐａｎｄｉｎｇ）、雑音低減、デモザイク処理、白色バランシング、ヒストグラム計算、及び／又は適応グローバル・トーン・マッピング（たとえば、その順序での、又は代替順序での）を含み得る。
【００２３】
雑音低減は、画像データ・プリプロセッサによって用いられるが、それは、バイエル・ドメインにおけるバイラテラル雑音除去を含み得る。デモザイク処理が、画像データ・プリプロセッサによって用いられる場合、それは、バイリニア補間を含み得る。ヒストグラム計算が、画像データ・プリプロセッサによって用いられる場合、それは、Ｃチャネルのヒストグラムを計算することを含み得、一部の実例においてデコンパンディング又は雑音低減と統合され得る。適応グローバル・トーン・マッピングが、画像データ・プリプロセッサによって用いられる場合、それは、適応ガンマ・ログ変換を実行することを含み得る。これは、ヒストグラムを計算すること、中間色レベルを得ること、及び／又は中間色レベルを有する最大輝度を推定することを含み得る。
【００２４】
マシン学習モデル１０４は、出力１０６を生成するための入力として画像データ１０２によって表されるような１個又は複数の画像又は他のデータ表現（たとえば、ＬＩＤＡＲデータ、ＲＡＤＡＲデータなど）を使用し得る。非限定的実例では、マシン学習モデル１０４は、以下のうちの１個又は複数を取得し得る：画素距離１０８、角度１１０、線クラス１１２、及び／又はクラスタ・ベクトル１１４を入力として生成するために画像データ１０２によって表される（たとえば、前処理後）画像。実例は、ニューラル・ネットワーク及び、特に、マシン学習モデル１０４としてのＣＮＮの使用に関して本明細書で説明されているが、これは限定を意図していない。たとえば、そして限定することなく、本明細書に記載のマシン学習モデル１０４は、任意のタイプのマシン学習モデル、たとえば、線形回帰、ロジスティック回帰、決定木、サポート・ベクトル・マシン（ＳＶＭ：ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅ）、ナイーブ・ベイズ、ｋ近傍法（Ｋｎｎ：ｋ−ｎｅａｒｅｓｔ  ｎｅｉｇｈｂｏｒ）、Ｋ平均クラスタリング、ランダム・フォレスト、次元縮小アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク（たとえば、オートエンコーダ、畳み込み、再発、パーセプトロン、長／短期メモリ（ＬＳＴＭ：Ｌｏｎｇ／Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ）、ホップフィールド、ボルツマン、ディープ・ビリーフ、デコンボリューション、敵対的生成、液体状態マシンなど）を使用するマシン学習モデル、及び／又は他のタイプのマシン学習モデル、を含み得る。
【００２５】
マシン学習モデル１０４の出力は、画素距離１０８、角度１１０、線クラス１１２、クラスタ・ベクトル１１４、及び／又は他の出力タイプを含み得る。マシン学習モデル１０４の出力を復号するために、いくつかの非限定的実例において、ＧＰＵ加速が、実装され得る。たとえば、並列処理プラットフォーム（たとえば、ＮＶＩＤＩＡのＣＵＤＡ）が、出力を復号する−それによって、ランタイムを減らす−ためにいくつかの計算カーネルを介してアルゴリズムを並列処理するために実装され得る。
【００２６】
画素距離１０８は、画像内の各画素について、画像に示されるように線（たとえば、線画素）を組み込んだ最も近い画素までの画像空間における距離を含み得る。画素距離１０８は、単一次元（１Ｄ）での距離及び／又は２次元（２Ｄ）での距離を含み得る。たとえば、１Ｄ距離について、画素距離１０８は、右方向の最も近い線画素（ｄ＿Ｒ）及び／又は左方向の最も近い線画素（ｄ＿Ｌ）までの画素の行に沿った距離を含み得る（たとえば、図２Ａに示すように）。そのようなものとして、マシン学習モデル１０４は、画素の行に沿って左の及び画素の行に沿って右の最も近い線画素までの距離の出力を、出力分解における各画素について、計算することができる。別の実例として、２Ｄ距離について、画素距離１０８は、画像の画素の行に沿った（ｄ＿Ｘ）及び画像の線画素の列に沿った（ｄ＿Ｙ）最も近い線画素までの距離を含み得る（たとえば、図２Ｂに示すように）。そのようなものとして、マシン学習モデル１０４は、画素の列に沿った最も近い線画素までの距離及び画素の行に沿った距離の出力を、出力分解における各画素について、計算することができ、そこで、列及び行に沿った距離は、画素と線画素との間の距離の大きさを判定するために使用され得る。
【００２７】
マシン学習モデル１０４の処理の結果として、マシン学習モデル１０４によって計算された画素距離１０８は、入力画像の空間分解より低い空間分解出力に対応し得る。しかしながら、本明細書に記載のように、本開示の利点は、画素距離１０８を使用するマシン学習モデル１０４のより高い入力分解からの空間情報の保存である。たとえば、マシン学習モデル１０４の出力からの画素位置は、復号１１６中に入力分解における画素位置に変換され得る。非限定的実例として、出力が、４倍だけ低い相対空間分解に対応する（たとえば、出力が、入力分解の４分の１である分解に対応する）場合、その出力における各［ｙ，ｘ］画素位置は、４を乗じられ得る（たとえば、その出力における［１，１］は、入力画像に対応する分解において［４，４］になり得る）。そのようなものとして、出力における画素位置に対応する画素距離１０８は、入力の分解における画素位置に対応するように判定され得る−それによって、入力分解からの空間情報を保存し得る。
【００２８】
１Ｄ復号の一実例として、図２Ａは、本開示のいくつかの実施例による、線予測を復号するための投票方法の一実例の図を含む。１Ｄ実例における復号１１６中に、マシン学習モデル１０４によって出力された画素距離１０８の予測は、先ず、入力分解における画素位置に変換し戻され得る。たとえば、テーブル２０２は、入力分解における画素の行に沿った画素距離１０８を表し得る。そのようなものとして、出力は、図２Ａの実例におけるさらに小さい（たとえば、４倍だけ）分解に対応し得るので、画素距離１０８は単に、入力分解に関する画素の行内の４画素ごと（たとえば、０、４、８、１２、１６などにおける）についてマシン学習モデル１０４によって出力され得る。そのようなものとして、画素の行に沿った右側（ｄ＿Ｒ）及び左側（ｄ＿Ｌ）の最も近い線画素までの画素距離１０８が、入力分解における適切な画素位置と関連付けられた後は、投票方法は、復号１１６の一部として実行され得る。たとえば、各画素距離１０８は、テーブル２０４に示されているように、線画素の位置への投票をキャストすることができる。投票は、最終投票値（すべて投票）が計算され得るように、左投票（ｖｏｔｉｎｇ＿Ｌ）及び右投票（ｖｏｔｉｎｇ＿Ｒ）の組合せでもよい。一実例として、左投票に関して、テーブル２０２からの行内の画素４における０の画素距離１０８は、テーブル２０４の出力分解における画素４への投票をキャストし得、テーブル２０２からの行内の画素８における４の画素距離１０８は、出力分解２０４における画素４への別の投票をキャストし得る、など。同様に、右投票について、テーブル２０２からの行内の画素０における４の画素距離１０８は、テーブル２０４の出力分解における画素４への投票をキャストし得、テーブル２０２からの行内の画素８における５の画素距離１０８は、テーブル２０４の出力分解における画素１３への投票をキャストし得る、など。テーブル２０４の行内の各画素への左投票及び右投票は、次いで、最終投票値を決定するために、集計又は追加され得る。いくつかの実例において、投票の閾値数が、出力分解における画素について計算された後は、画素は、線画素であると判定され得る。いくつかの非限定的実例において、閾値数は、１、２、４、６、又は別の閾値値になり得る。
【００２９】
画素距離１０８の復号１１６のプロセスは、画像内の画素の各行について繰り返され得る。そのようなものとして、入力分解における画像内のそれぞれの線画素は、図２Ａの投票方法を使用して、判定され得る。図２Ａの実例は、４倍のダウンサンプリングを含むが、これは限定を意図していない。一部の実例では、マシン学習モデル１０４は、本開示の範囲を逸脱することなく、入力分解より低い分解に対応する出力を生み出さないことがある、或いは２、４、５、６の係数、及び／又は別の係数だけ入力分解より低い分解に対応する出力を生み出し得る。加えて、図２Ａのテーブル２０２及び２０４は、入力分解における画素の行に沿った２０個の画素位置（たとえば、０〜１９）のみを含むが、これは、例示のみを目的としている。したがって、画素の数は、任意の入力分解幅、たとえば、２０４８、１９２０、５６０、及び／又は任意の他の入力分解幅、に対応し得る。さらに、１Ｄ画素距離の本明細書に記載の実例が、画素の行に関して説明されているが、これは限定を意図していない。いくつかの実例において、画素の行に加えて、又はそれとは別に、画素の列が、１Ｄ画素距離を判定するために使用され得る、及び／又は、エンコードが、少なくとも１個の画素の左及び右方向の代わりに下及び上方向で実行され得る。
【００３０】
２Ｄ復号の一実例として、図２Ｂは、本開示のいくつかの実施例による、線予測を復号するための投票方法の一実例の図を含む。テーブル２０６は、２Ｄ予測のための画素距離１０８に関するマシン学習モデル１０４の出力を表し得る。たとえば、前述と類似して、マシン学習モデル１０４は、４倍だけ入力分解（たとえば、エンコードされた分解）より低い分解の画像空間に対応する予測を出力し得る。そのようなものとして、出力分解における画素位置（たとえば、テーブル２０６に表されているような）は、復号１１６中に入力分解における画素位置に変換され得る（たとえば、テーブル２０８に表されているように）。ｘ（ｄｘ）及びｙ（ｄｙ）方向における画素距離１０８は、入力分解における画素への投票をキャストするために使用され得る。いくつかの実例において、画素距離１０８はさらに、マイナスのｘ方向（−ｄｘ）及びマイナスのｙ方向（−ｄｙ）を含み得る。そのようなものとして、最も近い線画素が、マイナスの方向においてｘ軸（たとえば、画像の幅）又はｙ軸（たとえば、画像の高さ）に沿っている場合、画素距離１０８の値は、−ｄｘ及び／又は−ｄｙ出力に対応し得る。たとえば、出力分解におけるテーブル２０６からの画素位置［０，１］は、復号１１６中に入力分解における画素位置（０，４）に変換され得る。そのようなものとして、テーブル２０８において、ｄｘ＝０及びｄｙ＝１の画素距離は、線画素であるとしての画素［０，５］への投票をキャストするために使用され得る。同様に、出力分解におけるテーブル２０６からの画素位置［１，１］は、復号１１６中に入力分解における（４，４）の画素位置に変換され得る。そのようなものとして、テーブル２０８において、ｄｘ＝０及びｄｙ＝０の画素距離が、線画素（たとえば、鍵２１０からの、線画素自体）であるとしての画素［４，４］への投票をキャストするために使用され得る。本明細書に記載の１Ｄ手法と類似して、閾値数の投票が、画素へのキャストであった後は、画素は、線画素であると判定され得る。非限定的実例として、投票の閾値数が１であると仮定すると、画素［２，３］、［０，５］、［５，０］、及び［４，４］は、１個の投票をそれぞれ受信することができ（テーブル２０６に基づいて）、したがって、線画素であると判定され得る。
【００３１】
２Ｄ手法の使用は、任意の向きの車線外側線（たとえば、水平、垂直、任意に角度を付けられたなどの）、並びに任意の車線区分線形状をキャプチャすることを可能にし得る。いくつかの実例において、画素距離１０８は、ユークリッド座標で表され得るが、他の実例では、極座標が、使用され得る。加えて、いくつかの１Ｄ及び／又は２Ｄ実施例において、画素への投票は、異なって重み付けされ得る。たとえば、線画素への自己投票は、他の画素からの投票よりも多く重みを付けられ得る。
【００３２】
マシン学習モデル１０４の別の出力１０６は、角度１１０でもよい。角度１１０は、線画素における線の角度（たとえば、図２Ｃのテーブル２０８の線画素の角度２１２）を表し得る。いくつかの実施例において、マシン学習モデル１０４は、角度値（たとえば、０〜３６０度）を出力し得る。そのような実施例において、角度１１０の復号１１６は、マシン学習モデル１０４の出力において角度の２進値を読み出すことを含み得る。いくつかの実例において、角度１１０の値を読み出すのではなくて、３６０度角度の余弦及び正弦構成要素は、マシン学習モデル１０４の出力から判定され得る（たとえば、図２Ｃの角度２１２Ｄについて示されているように）。余弦及び正弦構成要素は、次いで、線画素における角度値を判定するために使用され得る。出力分解における各画素は、それが投票をキャストする線画素の角度１１０を含み得る。たとえば、［０，４］における画素は、［０，５］における画素の角度２１２Ｄの少なくとも１個の投票又は値を提供し得る。別の実例として、［４，４］は線画素自体であるので、［４，４］における画素は、画素［４，４］における角度２１２Ｃの値への少なくとも１個の投票をもたらし得る。いくつかの実例において、角度の値は、２個以上の投票にわたって異なり得る。そのような実例において、平均化が、平均角度を見つけるために使用され得る、及び／又は、重み付けが、画素角度値のうちのいくつかがより大きな重みを有するように、使用され得る（たとえば、線画素自体は、他の画素からの角度よりも多く重み付けされ得る）。
【００３３】
いくつかの実例において、角度１１０はさらに、線画素の位置における線の正接値を含み得る。そのような実例において、線のジオメトリのより正確な表現が判定され得るように、マシン学習モデル１０４は、各線画素における線の正接値を出力するようにトレーニングされ得る。加えて、正接を使用することによって、どの線画素が同じ線に属するかを判定することは、より効果的になり得る（たとえば、第１の線画素が、線は前及び左向きであることを表す正接値を有し、隣接する−又は第１の線画素までの閾値距離内の−第２の線画素が、線は後ろ及び左向きであることを表す正接値を有する場合、第１の線画素及び第２の線画素は、恐らく、同じ線のものではない）。
【００３４】
マシン学習モデル１０４はさらに、線クラス１１２を出力し得る。線クラス１１２は、車線境界線、たとえば、破線、実線、黄色い線、白線、又は境界線、たとえば、幹線道路又は街路の境界の線、に対応し得る。いくつかの実例において、線クラス１１２は、ポール、文字、路面標識タイプ（たとえば、曲がり角矢印、停止指示など）、横断歩道などを含み得る。他の実例では、たとえば、マシン学習モデル１０４が、車両又は運転適用において使用されない場合、任意のタイプの線が、マシン学習モデル１０４によって予測される線クラス１１２に含まれ得る。本明細書でさらに詳しく説明されるように、マシン学習モデル１０４が、モデル１０４が予測するようにトレーニングされた各クラス・タイプの出力（たとえば、信頼度）を生成する必要がないように、線クラス１１２は、ビット値としてマシン学習モデル１０４によって出力され得る。結果として、従来の手法が、Ｎ個のクラスのＮ個の予測を出力し得る場合、マシン学習モデル１０４は、はるかに効率的である及びより少ない計算資源を必要とする、ｌｏｇ２（Ｎ）予測を出力し得る。マシン学習モデル１０４は、ビット値として線クラス１１２を出力し得るが、これは限定を意図されておらず、他の実例において、マシン学習モデル１０４は、各クラス・タイプの信頼度又は予測を出力する（たとえば、ビット・エンコードが、マシン学習モデル１０４をトレーニングするために使用されない場合）。任意の実例において、線クラス１１２は、マシン学習モデル１０４の出力の値を使用すること及びその値に関連する線クラス１１２を判定することによって、判定され得る（たとえば、黄色の実線が、線クラス１１２であり、３の値に関連する場合、マシン学習モデル１０４が、３と等しいビット値として［０  ０  １  １］を出力するとき、システムは、線クラス１１２が黄色の実線であることを知り得る）。
【００３５】
一部のオプションの実施例（図１Ａ及び５に破線で示されているような）では、クラスタ・ベクトル１１４（又はクラスタ・ベクトル１１４のクラスタ）が、マシン学習モデル１０４によって出力され得る。たとえば、類似の高次元ベクトル（又はクラスタ・ベクトル１１４）に関連する線画素が、画像内の同じ線に対応すると判定され得るように、マシン学習モデル１０４は、各画素、又は線画素の高次元ベクトル−又はその値−を予測するようにトレーニングされ得る（本明細書でさらに詳しく説明されるように）。たとえば、本明細書でさらに詳しく説明されるように、ｄｂｅｔｗｅｅｎとｄｗｉｔｈｉｎの値は、いつ線画素が画像内の同じ線に対応するかを判定するために使用され得る。マシン学習モデル１０４によって出力されるクラスタ・ベクトル１１４のクラスタを取得することと、同じ線に対応する線画素はクラスタリング１１８と称され得ると判定することとのプロセス（たとえば、図１Ａに破線で示されているような、オプションのプロセス）。たとえば、位置（ｘｉ，ｙｉ）における各画素は、高次元ベクトル、Ｈ（ｘｉ，ｙｉ）、にマップされ得るので、逆写像が、マシン学習モデル１０４によって出力されたクラスタ化されたセットのクラスタ・ベクトル１１４から、画像データ１０２によって表される画像の画像画素に進むように実行され得る。そのようなものとして、高次元空間において単一のベクトル・クラスタのベクトルにマップする画素は、画像空間内の単一の線にマップし得る。
【００３６】
幾何学的フィッティング１２０が、クラスタリング１１８の出力に実行され得る（たとえば、線画素が、同じ線に対応すると判定されると）。幾何学的フィッティング１２０は、完全な線を表す多項式係数を生み出し得る最小二乗ポリフィット手法を含み得る。たとえば、３次ポリフィット（たとえば、４個の係数）が、幾何学的フィッティング１２０を実行するために使用され得る。しかしながら、これは限定を意図しておらず、他の幾何学的方法の変更形態が、本開示の範囲を逸脱することなく、使用され得る。
【００３７】
そのようなものとして、いくつかの実例において、画素距離１０８が、画像内の線画素の位置を判定するために使用され得、角度１１０（及び／又は正接）が、それぞれの線画素に対応する線の向き又はジオメトリを判定するために使用され得、線クラス１１２が、その線がどのタイプの線かを判定するために使用され得、及び／又は、クラスタ・ベクトル１１４が、同じ線１２２に対応する線画素を判定するために使用され得る。この情報は、１個又は複数のカメラ（たとえば、自律マシン、たとえば、車両１０００、の、ターン・テーブルにおけるカメラ、ショッピング・センタ内のカメラなど）の視界において線１２２のレイアウト及び識別を判定するために使用され得る。たとえば、図３を参照すると、図３は、本開示のいくつかの実施例による、マシン学習モデルの予測を使用する画像の線１２２の再作成の例示的視覚化３０２である。視覚化３０２は、道路の線３０４（たとえば、線３０４Ａ〜３０４Ｇなど）（たとえば、車線境界線、境界線など）を含み得、そこで、画素は、マシン学習モデル１０４の出力から判定されるものとしての画像内の線の位置及び方向の図を提供するためにそれらのベクトル又はジオメトリを有する視覚化３０２において表されている。たとえば、各矢印は、単位ベクトルとして描かれた予測された線角度を表し得る。加えて、線３０４は、線クラス１１２を示すために異なる矢印タイプで示されている（たとえば、線３０４Ａは破線矢印を含む、線３０４Ｂは実線矢印を含む、など）。視覚的に表されていないが、矢印のうちのどれが線３０４のそれぞれに属するかの判定が、クラスタ・ベクトル１１４及び／又は正接値を使用して、行われ得る。
【００３８】
ここで図１Ｂを参照すると、図１Ｂは、本開示のいくつかの実施例による、マシン学習モデルを使用して画像の線を再作成する一実例の図である。図１Ｂのマシン学習モデル１０４Ａは、プロセス１００において使用され得るマシン学習モデル１０４の１個の実例になり得る。しかしながら、図１Ｂのマシン学習モデル１０４Ａは、限定を意図されておらず、マシン学習モデル１０４は、図１Ｂのマシン学習モデル１０４Ａより他の付加的及び／又は異なるマシン学習モデルを含み得る。マシン学習モデル１０４Ａは、畳み込みニューラル・ネットワーク（ＣＮＮ）を含み得る又はそのように称され得、したがって、別法として、畳み込みニューラル・ネットワーク１０４Ａ、畳み込みネットワーク１０４Ａ、又はＣＮＮ１０４Ａと本明細書で称され得る。
【００３９】
ＣＮＮ１０４Ａは、入力として画像データ１０２（及び／又は他のセンサ・データ・タイプ）（前処理を有する又は有さない）を使用し得る。たとえば、ＣＮＮ１０４Ａは、入力として画像データ１０２−画像１２４によって表されるような−を使用し得る。画像データ１０２は、１個又は複数のカメラ（たとえば、図１０Ａ〜１０Ｃに関して本明細書に記載されているカメラのうちの１個又は複数）によって生成された画像を表し得る。たとえば、画像データ１０２は、カメラの視界を表し得る。より具体的には、画像データ１０２は、カメラによって生成された個々の画像を表し得、個々の画像のうちの１個又は複数を表す画像データ１０２は、ＣＮＮ１０４Ａの各反復においてＣＮＮ１０４Ａに入力され得る。画像データ１０２に加えて、いくつかの実施例では、センサ・データが、画像データ１０２に加えて、又は画像データ１０２の代わりに、ＣＮＮ１０４Ａに入力され得る。センサ・データは、１個又は複数のセンサ−たとえば、ＬＩＤＡＲセンサ、ＲＡＤＡＲセンサ、マイクロフォン、ＳＯＮＡＲセンサなど、−によって観測されるものとしての物理環境の遠近図（たとえば、知覚フィールド）を表し得る。
【００４０】
ＣＮＮ１０４Ａの層のうちの１個又は複数は、入力層を含み得る。入力層は、画像データ１０２、及び／又はセンサ・データに関連する値を保持し得る。たとえば、画像データ１０２に関して、入力層は、ボリューム（たとえば、幅、Ｗ、高さ、Ｈ、及びカラー・チャネル、Ｃ（たとえば、ＲＧＢ）、たとえば、３２ｘ３２ｘ３）、及び／又はバッチ・サイズ、Ｂ、として画像の未加工画素値を表す値を保持し得る。
【００４１】
１個又は複数の層は、畳み込み層を含み得る。画像データ１０２（及び／又はセンサ・データ）は、ＣＮＮ１０４Ａの畳み込み層（たとえば、１個若しくは複数の入力層及び／又は他の層タイプの後）に入力され得る。畳み込み層は、入力層（たとえば、その入力層）内のローカル領域に接続されたニューロンの出力を計算することができ、各ニューロンは、それらの重みとそれらが入力ボリュームに接続された小さい領域との間のドット積を計算する。畳み込み層の結果は、適用されたフィルタの数に基づく次元のうちの１個を有する、別のボリュームでもよい（たとえば、フィルタの幅、高さ、及び数、たとえば、１２がフィルタの数であった場合、３２ｘ３２ｘ１２）。
【００４２】
層のうちの１個又は複数は、ＲｅＬＵ（ｒｅｃｔｉｆｉｅｄ  ｌｉｎｅａｒ  ｕｎｉｔ、整流された線形ユニット）層を含み得る。ＲｅＬＵ層は、要素ごとの活性化関数、たとえば、ゼロを閾値とする、たとえば、ｍａｘ（０，ｘ）、を適用し得る。ＲｅＬＵ層の結果としてもたらされたボリュームは、ＲｅＬＵ層の入力のボリュームと同じでもよい。
【００４３】
層のうちの１個又は複数は、プーリング層を含み得る。プーリング層は、プーリング層の入力より小さいボリューム（たとえば、３２ｘ３２ｘ１２入力ボリュームからの１６ｘ１６ｘ１２）をもたらし得る、空間次元（たとえば、高さ及び幅）に沿ったダウンサンプリング動作を実行し得る。一部の実例では、ＣＮＮ１０４Ａは、プーリング層を含まなくてもよい。そのような実例において、ストライド畳み込み層が、プーリング層の代わりに使用され得る。
【００４４】
層のうちの１個又は複数は、完全に接続された層を含み得る。完全に接続された層内の各ニューロンは、前のボリューム内のそれぞれのニューロンに接続され得る。完全に接続された層は、クラス・スコアを計算し得、結果として生じるボリュームは、１ｘ１ｘクラスの数でもよい。
【００４５】
入力層、畳み込み層、プーリング層、ＲｅＬＵ層、及び完全に接続された層は、ＣＮＮ１０４Ａに関して本明細書で論じられているが、これは限定を意図していない。たとえば、付加的層又は代替層、たとえば、正規化層、ＳｏｆｔＭａｘ層、及び／又は他の層タイプ、が使用され得る。
【００４６】
ＣＮＮ１０４Ａの異なる次数及び数の層が、実施例に応じて使用され得る。そのようなものとして、ＣＮＮ１０４Ａの層の次数及び数は、１個のアーキテクチャに限定されない。加えて、層のうちのいくつか、たとえば、畳み込みストリームの層及び／又は出力層、は、パラメータ（たとえば、重み及び／又はバイアス）を含み得、一方で、他の層、たとえば、ＲｅＬＵ層及びプーリング層、は、含まないことがある。一部の実例では、パラメータは、トレーニング中に学習され得る（たとえば、図５のプロセス５００内で）。さらに、層のうちのいくつか、たとえば、畳み込み層、出力層、及びプーリング層、は、付加的ハイパ・パラメータ（たとえば、学習率、ストライド、エポック、カーネル・サイズ、フィルタの数、プーリング層のプーリングのタイプなど）を含み得、その一方で、他の層、たとえば、ＲｅＬＵ層、は、含まないことがある。ＲｅＬＵ、リーキーＲｅＬＵ、シグモイド、双曲線正接（ｔａｎｈ）、指数関数線形ユニット（ＥＬＵ：ｅｘｐｏｎｅｎｔｉａｌ  ｌｉｎｅａｒ  ｕｎｉｔ）などを含むが、これらに限定されない、様々な活性化関数が、使用され得る。パラメータ、ハイパ・パラメータ、及び／又は活性化関数は、制限されるものではなく、実施例に応じて異なり得る。
【００４７】
ＣＮＮ１０４Ａの出力１０８は、復号１１６、（オプションの）クラスタリング１１８、及び／又は幾何学的フィッティング１２０を受けて、視覚化１２６において表され得る線１２２を生成することができる。線１２２は、画像１２４からの車線境界線及び／又は道路境界線を表し得る。線１２２、及び対応する情報（たとえば、線クラス１１２、角度１１０など）は、物理環境を介する（たとえば、画像１２４の運転している表面を介する）車両１０００の制御又は制御の決定を支援するために、自律運転ソフトウェア・スタックの１個又は複数の層（たとえば、知覚層、世界モデル・マネージャ、プランニング層、制御層など）によって使用され得る。
【００４８】
ここで図４を参照すると、本明細書に記載の方法４００の各ブロックは、ハードウェア、ファームウェア、及び／又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法４００はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能な命令として実施され得る。方法４００は、少し例を挙げると、独立型アプリケーション、サービス又はホスト型サービス（独立型の若しくは別のホスト型サービスと組み合わせた）、或いは別の製品へのプラグインによって、提供され得る。加えて、方法４００は、図１のプロセス１００に関して、例として、説明されている。しかしながら、方法４００は、追加で又は別法として、本明細書に記載されているものを含むが、これに限定されない、任意の１個のシステム、又はシステムの任意の組合せによって実行され得る。
【００４９】
図４は、本開示のいくつかの実施例による、マシン学習モデルを使用して画像内の線を予測するための方法を示す流れ図である。方法４００は、ブロックＢ４０２において、画像を表す画像データを受信することを含む。たとえば、画像センサによってキャプチャされた画像を表す、画像データ１０２が、受信され得る。いくつかの実例において、センサ・データが、画像データ１０２に加えて、又はその代わりに、キャプチャ及び／又は受信され得る。
【００５０】
方法４００は、ブロックＢ４０４において、第１の空間分解における画像データをマシン学習モデルに適用することを含む。たとえば、画像データ１０２は、第１の空間分解においてマシン学習モデル１０４に適用され得る。
【００５１】
方法４００は、ブロックＢ４０６において、第１の空間分解より小さい第２の空間分解に対応する複数の画素のそれぞれの画素距離を計算することを含む。たとえば、画素距離１０８が、第２の空間分解に対応する各画素について、マシン学習モデル１０４によって、計算され得る（たとえば、より高い分解入力を使用して低分解予測を出力するようにマシン学習モデル１０４がトレーニングされた結果として）。画素距離１０８は、第１の空間分解における画素と画像内の線に対応する第１の空間分解における最も近い線画素との間の距離を表し得る。結果として、画素距離１０８が、第２の空間分解に対応するように出力されるけれども、画素距離１０８の値は、空間情報がマシン学習モデル１０４による処理を介して保存されるように、第１の空間分解における値に対応する。
【００５２】
方法４００は、ブロックＢ４０８において、画素の第２の画素座標を第１の空間分解における第１の画素座標に変換することを含む。たとえば、出力分解における画素の座標は、入力分解におけるそれらの座標に変換し戻され得る。
【００５３】
方法４００は、ブロックｂ４１０において、画素距離を使用して画像内の線画素の位置を判定することを含む。たとえば、画像内の線１２２の線画素の位置が、入力分解の座標における画素距離を使用して判定され得る。
【００５４】
画像内の線を予測するようにマシン学習モデルをトレーニングすること
ここで図５を参照すると、図５は、本開示のいくつかの実施例による、線予測のためにマシン学習モデルをトレーニングするための例示的プロセス５００を示すデータ流れ図である。グラウンド・トゥルース・データ５０２は、注釈データ、たとえば、ラベル、を含み得る。グラウンド・トゥルース・データ５０２は、手動ラベリング及び／又は自動ラベリングによって、生成され得る。たとえば、グラウンド・トゥルース・データ５０２のために使用されるラベル又は他の注釈データは、合成的に製造すること（たとえば、コンピュータ・モデル又はレンダリングから生成すること）、現実製造すること（たとえば、現実世界データから設計及び製造すること）、マシンにより自動化すること（たとえば、特徴分析を使用して、データから特徴を抽出し、次いで、ラベルを生成することを学習すること）、人が注釈を付けること（たとえば、ラベラ、又は注釈エキスパート、が、ラベルの位置を定義する）、及び／又はその組合せ（たとえば、ポリライン点に人が注釈を付け、ラスタライザがポリライン点から完全なポリゴンを生成する）が可能である。一部の実例では、各入力画像について、又は各入力センサ・データ表現について、グラウンド・トゥルース・データ５０２としての対応するラベル又は注釈が存在し得る。
【００５５】
一実例として、及び図６に関して、図６は、本開示のいくつかの実施例による、線予測のためにマシン学習モデルをトレーニングするためのグラウンド・トゥルース注釈の例示的視覚化６０２である。グラウンド・トゥルース・データ５０２は、ラベル６０４又は注釈６０４、たとえば、視覚化６０２に示されているもの（たとえば、ラベル６０４Ａ〜６０４Ｄ）、を含み得る。たとえば、様々なタイプのラベル又は注釈（鍵６０６によって示されているような）が、視覚化６０２内の画像（たとえば、トレーニング画像データ５１０によって表された）との関連付けのためのグラウンド・トゥルース・データ５０２としてシーン内の物体のクラス−たとえば、路面標識、交差点、横断歩道、道路境界線、ポール及び標識、及び／又は他の物体−について生成され得る。さらなる実施例において、異なるラベル及び注釈が、物体のサブクラスについて生成され得る。たとえば、路面標識は、実線の車線と破線の車線、単一の車線境界線と二重の車線境界線、曲がり角矢印と真っすぐな矢印との間で、及び／又は色（たとえば、白色及び黄色の車線境界線）によって、さらに区別され得、同様に、非限定的実例では、ポール及び標識は、交通標識、道路標識、ライト・ポールなどの間で、区別され得る。視覚化６０２は、例示のみを目的としており、限定を意図していない。たとえば、プロセス５００は、運転適用に加えて、又はその代わりに、任意の適用のために使用され得る。
【００５６】
エンコード５０４は、画素距離１０８、角度１１０、線クラス１１２、及び／又はクラスタ・ベクトル１１４を予測するようにマシン学習モデル１０４をトレーニングするためのエンコードされたグラウンド・トゥルース・データ５０６を生成するために、グラウンド・トゥルース・データ５０２で実行され得る。グラウンド・トゥルース・データ５０２をエンコードしてエンコードされたグラウンド・トゥルース・データ５０６を生成するために、いくつかの非限定的実例において、ＧＰＵ加速が、実施され得る。たとえば、並列処理プラットフォーム（たとえば、ＮＶＩＤＩＡのＣＵＤＡ）が、エンコードされたグラウンド・トゥルース・データ５０６を生成する−それによって、エンコード５０４の処理時間を減らす−ためにいくつかの計算カーネルを介してアルゴリズムを並列処理するために実装され得る。
【００５７】
画素距離１０８は、本明細書に記載のように、１Ｄ又は２Ｄ実施例においてエンコードされ得る。たとえば、グラウンド・トゥルース・データ５０２は、最も近い線画素（たとえば、トレーニング画像データ５１０の線に対応するラベル又は注釈を使用して判定されるものとしての）までの、各画素からの、画素距離１０８を判定するために使用され得る。１Ｄ実施例について、画像の各行の画素内の各画素について、その行の画素に沿った左側の最も近い線画素までの距離（ｄ＿Ｌ）及び右側の最も近い線画素までの距離（ｄ＿Ｒ）が、グラウンド・トゥルース・データ５０２からエンコードされ得る。たとえば、図７Ａに関して、図７Ａは、本開示のいくつかの実施例による、マシン学習モデルの入力の空間情報を保存するためのエンコード方法の一実例の図である。画像７０２において、４個の線７０４が存在し得る。図７Ａは、画素の行７０６（たとえば、幅において１９画素を含み得る）に沿った４個の線７０４の画素距離１０８の判定及びエンコードの一実例になり得る。このプロセスは、画像内の画素の各行について繰り返され得、図７Ａは、画素の単一行７０６の一実例を提供し得る。画素の行７０６において、４個の線のうちの２個は、位置ｘ＝４及びｘ＝１３において交差し得る。そのようなものとして、テーブル７０８内のｄ＿Ｌ及びｄ＿Ｒ値は、マシン学習モデル１０４をトレーニングするための入力分解における画素距離１０８のエンコードされた値を表し得る。画素の行内の各画素の画素距離１０８をエンコードすることによって、入力分解における線画素の位置は、実際にはダウンサンプリングに等しい、低減された分解を有する画像ドメインにおいても保存され得る。プロセス１００に関して本明細書に記載されている非限定的実例に類似して、図７Ａに関する低分解は、４倍のダウンサンプリングと同等のものを含み得る。結果として、入力分解における（たとえば、テーブル７０８における）４番目ごとの値は、出力分解において（たとえば、テーブル７１０において）保存され得る。結果として、出力分解からの画素距離１０８は、少なくとも図２Ａに関して本明細書に記載のように、入力分解に変換し戻され得、それにより、出力の低分解ドメインにもかかわらず入力分解の空間情報を保存し得る。相対的分解は、図７Ａに関して４倍低くなり得るので、それらの画素及びそれらの関連する画素距離１０８が、常に、マシン学習モデル１０４の出力分解において出力される値になり得るとき、４番目ごとの画素（たとえば、画素０、４、８、１２、及び１６）は、アンカー・ポイントと称され得る。線画素が、現在の画素の左又は右の行内に存在しない場合、無限、又はｎｕｌｌの値が、マシン学習モデル１０４をトレーニングするための画素距離１０８の値としてエンコードされ得る。
【００５８】
２Ｄ実施例については、画像の各画素について、ｘ方向（たとえば、画像の幅に沿った）及びｙ方向（たとえば、画像の高さに沿った）における最も近い線画素までの距離が、グラウンド・トゥルース・データ５０２からの画素距離１０８としてエンコードされ得る。図７Ａと同様に、画素のあらゆる行の４番目ごとの画素が、出力分解において保存され得る。そのようなものとして、ダウンサンプリング後の残りの画素は、アンカー・ポイントと本明細書で称され得る。
【００５９】
グラウンド・トゥルース・データ５０２はさらに、画像のそれぞれの画素への角度１１０をエンコードするために使用され得、そこで、各画素の角度１１０は、最も近い線画素の角度に対応する。たとえば、図７Ｂに関して、図７Ｂは、本開示のいくつかの実施例による、線角度を予測するようにマシン学習モデルをトレーニングするためのエンコード方法の一実例の図を含む。線７１２Ａ及び７１２Ｂは、グラウンド・トゥルース・データ５０２からの画像内の線の注釈（トレーニング画像データ５１０によって表される）を表し得る。たとえば、道路の画像に関して、線７１２Ａ及び７１２Ｂは、車線境界線を表し得る。仮想線７１４は、エンコードするための角度１１０を判定するために使用される仮想線でもよい。たとえば、画素の行内の画素は、線７１２Ａ及び／又は７１２Ｂに関する線画素の角度、θ、を判定するためにスキャンされ得る。角度１１０は、仮想線７１４（たとえば、水平に伸びる）に対して０〜３６０度の間の角度になり得る。画素ごとの角度情報は、画素の各行に沿ったすべての線画素についてエンコードされ得る。画素角度変動への画素は、角度平滑化技法、たとえば、本明細書に記載のもの、を介して克服され得る。一部の実例では、０〜３６０度の間の値をエンコードするのではなく、３６０度角度の余弦及び正弦構成要素が、代わりに、エンコードされ得る。
【００６０】
いくつかの実施例において、正接は、各線画素の正接に関して各画素についてエンコードされ得る。たとえば、各線画素の正接値は、その線画素への投票（自己投票を含む）をキャストする各画素にエンコードされ得る。正接値は、どの線画素が画像内の同じ線に属するかの判定を支援するために使用され得る、各線画素における線のジオメトリ又は方向を判定するために使用され得る。
【００６１】
グラウンド・トゥルース・データ５０２は、ラベル・クラス１１２をそれぞれの画素（たとえば、画素がそれへの投票をキャストする線画素に対応する）にエンコードするために使用され得る。ラベル・クラス１１２は、異なる値、たとえば、実線の０、破線の１、道路境界線の２、ポストの３、標識の４、路面標識の５など、によってそれぞれ示され得る。そのようなものとして、グラウンド・トゥルース・データ５０２は、画像内の各線のラベル・クラス１１２を示し得る（たとえば、注釈の生成より前に、クラス・タイプ・アノテータ又はラベラが選択又は適用され得る）。そのようなものとして、図６に関して、それぞれの異なるラベル・クラス１１２は、トレーニングのためのグラウンド・トゥルース・データ５０２として注釈を付けられ得る。本明細書に記載のように、Ｎ個の異なるラベル・クラスに関する意味論的情報が、ｌｏｇ２（Ｎ）出力ラベル・クラスを使用してエンコードされ得るように、ビット・エンコード技法が、ラベル・クラス１１２をエンコードするため使用され得る。ｌｏｇ２（Ｎ）出力ラベル・クラスのみを使用することによって、マシン学習モデル１０４は、より効率的になり得、それにより、ランタイムを低減すること並びに使用される計算資源を減らすことができる。一実例として、Ｎ＝１６分類問題について、ビット・エンコードを使用して、５のラベル・クラス１１２（たとえば、路面標識）は、４個のビット・シーケンス［０１０１］としてエンコードされ得、７のラベル・クラスは、４個のビット・シーケンス［０１１１］としてエンコードされ得る、など。実施例及びラベル・クラス１１２の数に応じて、マシン学習モデル１０４がトレーニングされるビットの数は、変化し得る。たとえば、２個のみのラベル・クラスが存在する場合には、１個のビットのみが存在し得、３個のクラスが存在する場合には、２個のビットが存在し得、１６個のラベル・クラスが存在する場合には、４個のビットが存在し得る、など。
【００６２】
本明細書に記載のプロセスの結果として、線画素の精密な位置が、線の角度１１０（及び／又は方向）、及び線画素が属するラベル・クラス１１２に加えて、マシン学習モデル１０４を使用して判定され得る。線１２２の完全なジオメトリ（たとえば、ドットを接続するための）を判定するために、クラスタリングに基づく高次元の埋め込みアルゴリズムが、使用され得る。
【００６３】
たとえば、座標（ｘｉ，ｙｉ）における画素を所与として、マシン学習モデル１０４は、この高次元ベクトルが高次元空間内の他のベクトルから分離可能である方法で、この画素を高次元ベクトル、Ｈ（ｘｉ，ｙｉ）、にマップするようにトレーニングされ得る。空間の次元性は、任意の整数値、Ｄ、を有し得、そこで、ＤはＮ未満であり、Ｎは出力チャネルの総数を表し、いくつかの実施例では、高次元空間における次元の数は、選択することができる。非限定的実例として、高次元空間における次元は、Ｄ＝４となるように、４になるように選択され得る。Ｄ＝４のとき、Ｈ（ｘｉ，ｙｉ）は、４個の要素を含み得、元の画素（ｘｉ，ｙｉ）とＨ（ｘｉ，ｙｉ）の要素に対応する４個のチャネル出力との間のマッピングが、トレーニング・データ（たとえば、グラウンド・トゥルース・データ５０２及びトレーニング画像データ５１０）を介してマシン学習モデル１０４によって（たとえば、クラスタ・ベクトル１１４として）直接学習され得る。
【００６４】
画像内のすべての画素について（たとえば、各（ｘｉ，ｙｉ）位置にある各画素についてこのプロセスを繰り返すことによって、マシン学習モデル１０４の出力において、分離可能なＤ次元のベクトルの集合体が計算され得る（たとえば、クラスタ・ベクトル１１４として）。Ｄ＝４の実例を続けると、Ｈ（ｘｉ，ｙｉ）のある特定のサブセットは、クラスタ・ベクトル１１４のクラスタを形成するのに十分に互いに近く、その一方で、それらのベクトルのうちの他のベクトルは、同じクラスタの一部と考えられない程度に十分に遠く離れ得る（及び、恐らくは、代わりに、クラスタ・ベクトル１１４の異なるクラスタに属する）ことが起こり得る。そのため、マシン学習モデル１０４は、画素をＤ次元のクラスタ・ベクトル１１４にマップするためにだけではなく、これらのクラスタ・ベクトル１１４のうちのどれがクラスタ・ベクトル１１４のうちの他とクラスタを形成するか及びいくつの異なるクラスタが存在するかを判定するために、トレーニングされ得る。Ｄ次元の空間内のクラスタ・ベクトル１１４のクラスタは、現実世界における（たとえば、世界空間における）完全な線に対応し得るので、これは、意味論的に、重要になり得る。同様に、クラスタ・ベクトル１１４のクラスタの総数は、任意の時間におけるカメラ及び／又はセンサの視界内の環境内の線の総数に対応し得る。
【００６５】
たとえば、クラスタ・ベクトル１１４のクラスタを予測するためにマシン学習モデル１０４をトレーニングするために、クラスタ・データは、トレーニング画像データ５１０に関するグラウンド・トゥルース・データ５０２としてエンコードされ得る。そのような一実例において、トレーニング画像内の各線は、クラスタとしてラベルを付けられ得る（たとえば、ラベル又は注釈が、トレーニング画像内の各線のトレーニング画像に関して適用され得る）。マシン学習モデル１０４は、次いで、互いに近い高次元クラスタ・ベクトル１１４（たとえば、閾値化手法を使用する）を単一のクラスタのメンバとして取り扱うようにトレーニングされ得、互いに距離を置かれた高次元クラスタ・ベクトル１１４を異なるクラスタのメンバとして取り扱うようにトレーニングされ得る。数学用語において、及び非限定的実例として、マシン学習モデル１０４は、クラスタ内の分散、ｄｗｉｔｈｉｎ、を最小化するように及びクラスタ間の分散、ｄｂｅｔｗｅｅｎ、を最大化するようにトレーニングされ得る。異なるクラスタの数の予測もまた、マシン学習モデル１０４によってトレーニング中に学習され、各クラスタは、異なる線端を表し得る。クラスタ・ベクトル１１４のクラスタの出力に関して、マシン学習モデル１０４は、１個又は複数の損失関数５０８、たとえば、以下の式（１）及び（２）の関数、を使用して、本明細書に記載のように、Ｄチャネルを出力するようにトレーニングされ得る：
【数１】
2021532512.tif 000003
そこで、Ｌｗｉｔｈｉｎは、クラスタ内の損失関数５０８を示し、Ｌｂｅｔｗｅｅｎは、クラスタ間の損失関数５０８を示し、Ｋは、グラウンド・トゥルース・データ５０２内のクラス・インスタンスの数であり、ｃｉ，ｉ＝１，２，３，・・・は、クラスタＩＤである。一部の実施例では、最終損失関数５０８は、Ｌｗｉｔｈｉｎ及びＬｂｅｔｗｅｅｎの線形結合になり得る。全損失は、高次元クラスタ・ベクトル１１４が同じクラスタ又は異なるクラスタに属するかどうかを判定するために、閾値と比較され得る。
【００６６】
図８に関して、図８は、本開示のいくつかの実施例による、線クラスタを予測するようにマシン学習モデルをトレーニングするためのエンコード方法の実例の図である。本明細書では、ｄｂｅｔｗｅｅｎは、クラスタ内の分散に対応し得る。たとえば、図８に表されているように、異なるクラスタ・ベクトル１１４は、状態ｄｂｅｔｗｅｅｎ＞４（ｄｗｉｔｈｉｎ）が満たされている限り、分離可能になり得る。たとえば、クラスタ・ベクトル１１４のうちの２個、Ｈ（ｘｉ，ｙｉ）及びＨ（ｘｊ、ｙｊ）、を見るとき、既存のクラスタがない場合、ベクトルＨ（ｘｉ，ｙｉ）は、第１のクラスタとして登録され得る。別法として、既存のクラスタがある場合、それらの２個のクラスタ・ベクトル１１４の間の距離（たとえば、ユークリッド距離）が、計算され得、距離値は、２（ｄｗｉｔｈｉｎ）と比較され得る。その値が２（ｄｗｉｔｈｉｎ）未満である場合、次いで、Ｈ（ｘｉ，ｙｉ）は、既存のクラスタに追加され得、そして、その値が２（ｄｗｉｔｈｉｎ）を超える場合、次いで、Ｈ（ｘｉ，ｙｉ）は、新しいクラスタとして登録され得る。このプロセスは、各クラスタ・ベクトル１１４について繰り返され得る。
【００６７】
一部の実施例では、クラスタリングを使用する高次元埋め込みアルゴリズムが、ｄｗｉｔｈｉｎのカーネル半径を使用する平均シフト・クラスタリングを実行することによって、実行され得る。たとえば、任意の所与のクラスタ・ベクトル１１４、Ｈ（ｘｉ，ｙｉ）、から、平均シフト演算が、クラスタ・ベクトル１１４が集束するまで、実行され得る。収束されたクラスタは、次いで、既存のクラスタ中心と（又は各既存のクラスタの中心と）比較され得る。既存のクラスタがない場合、収束されたベクトルは、クラスタとして登録され得る。既存のクラスタがある場合、それらの２個のベクトル間の距離（たとえば、ユークリッド距離）が計算され得、２（ｄｗｉｔｈｉｎ）未満の場合、クラスタ・ベクトル１１４は、同じクラスタに属するものとして登録され得る。別法として、収束されたクラスタは、新しいクラスタとして登録され得る。このプロセスは、それぞれのクラスタ・ベクトル１１４について繰り返され得る。いくつかの実例において、閾値化が、ハイパ・パラメータ最適化に基づいて実行され得る。
【００６８】
損失関数５０８は、グラウンド・トゥルース・データ５０２及び／又はエンコードされたグラウンド・トゥルース・データ５０６に関するマシン学習モデル１０４の出力における損失（たとえば、エラー）（たとえば、グラウンド・トゥルース・データに対応するラベル又は注釈と比べたマシン学習モデル１０４の予測間のエラー）を測定するために使用され得る。たとえば、勾配降下に基づく損失関数、２値クロス・エントロピ損失関数、平均２乗エラー（Ｌ２：ｍｅａｎ  ｓｑｕａｒｅｄ  ｅｒｒｏｒ）損失関数、Ｌ１損失関数、及び／又は他の損失関数タイプが、損失関数５０８として使用され得る。一部の実施例では、２個以上の異なる損失関数が、使用され得る。たとえば、１個又は複数の損失関数が、２個以上の出力が存在する、マシン学習モデル１０４の各タイプの出力について使用され得、或いは、２個以上の損失関数が、単一の出力タイプについて使用され得る。２個以上の損失関数が、単一の出力タイプ（たとえば、高次元埋め込みアルゴリズム）のために使用される場合、損失関数は、重み付けされた損失関数を生成するために、互いに関して重み付けされ得る。バックワード・パス計算が、プロセス５００において示されるように、トレーニング・パラメータ（たとえば、重み、バイアスなど）に関する損失関数の勾配を再帰的に計算するために実行され得る。いくつかの実例において、マシン学習モデル１０４の重み及びバイアスが、これらの勾配を計算するために使用され得る。
【００６９】
ここで図９を参照すると、本明細書に記載の、方法９００の各ブロックは、ハードウェア、ファームウェア、及び／又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な関数が、メモリに記憶された命令を実行するプロセッサによって、実行され得る。方法９００はまた、コンピュータ記憶媒体に記憶された、コンピュータが使用可能な命令として、実施され得る。方法９００は、いくつか例を挙げると、独立型アプリケーション、サービス又はホスト型サービス（独立型の又は別のホスト型サービスと組み合わせた）、或いは別の製品へのプラグインによって提供され得る。加えて、方法９００は、一例として、図５のプロセス５００に関して説明されている。しかしながら、方法９００は、本明細書に記載されたものを含むが、これらに限定されない、任意の１個のシステム、又はシステムの任意の組合せによって、追加で又は別法として実行され得る。
【００７０】
図９は、本開示のいくつかの実施例による、画像内の線を予測するようにマシン学習モデルをトレーニングするための方法を示す流れ図である。方法９００は、ブロックＢ９０２において、画像を表す画像データを受信することを含む。たとえば、トレーニング画像データ５１０が、受信され得、そこで、トレーニング画像データ５１０は、画像を表し得る。
【００７１】
方法９００は、ブロックＢ９０４において、画像に関連するラベル及び対応するラベル・クラスを表す注釈データを受信することを含む。たとえば、画像内の線の注釈及び／又はラベル及びラベル・クラス１１２に対応する、グラウンド・トゥルース・データ５０２が、受信され得る。
【００７２】
方法９００は、ブロックＢ９０６において、それらのラベルのうちの１ラベルに関連する最も近い線画素までの画素距離を判定することを含む。たとえば、画像内の各画素について、画素と最も近い線画素との間の距離が、判定され得る。一部の実例では、これは、その画素の行の画素に沿った左側の及び／又は右側の距離を含み得る。他の実例では、これは、画素と線画素との間の行に沿った距離及び列に沿った距離（たとえば、大きさを判定するための）を含み得る。
【００７３】
方法９００は、ブロックＢ９０８において、ラベルに関連する画素距離及びラベル・クラスをその画素にエンコードしてグラウンド・トゥルース・データを生成することを含む。たとえば、各画素に関連する画素距離１０８及びラベル・クラスは、エンコードされたグラウンド・トゥルース・データ５０６として画素に、エンコード５０４の間に、エンコードされ得る。画素距離及びラベル・クラスに加えて、本明細書に記載されているような、クラス、角度、距離情報、オプションのクラスタリング情報、及び／又は他の情報が、画素にエンコードされ得る。
【００７４】
方法９００は、ブロックＢ９１０において、第１のグラウンド・トゥルース・データ及び第２のグラウンド・トゥルース・データを使用してニューラル・ネットワークをトレーニングすることを含む。たとえば、エンコードされたグラウンド・トゥルース・データ５０６は、マシン学習モデル１０４をトレーニングするために使用され得、そこで、一部の実例において、マシン学習モデル１０４は、ニューラル・ネットワーク（たとえば、ＣＮＮ）を含み得る。
【００７５】
例示的自律型車両
図１０Ａは、本開示のいくつかの実施例による、例示的自律型車両１０００の図である。自律型車両１０００（或いは本明細書で「車両１０００」と称される）は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気又は原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、及び／又は別のタイプの車両（たとえば、無人の及び／又は１人若しくは複数の旅客を乗せる）、を含み得るが、これに限定されない。自律型車両は、一般に、米国運輸省道路交通安全局（ＮＨＴＳＡ：Ｎａｔｉｏｎａｌ  Ｈｉｇｈｗａｙ  Ｔｒａｆｆｉｃ  Ｓａｆｅｔｙ  Ａｄｍｉｎｉｓｔｒａｔｉｏｎ）、米国運輸省の部署、及び自動車技術者協会（ＳＡＥ：Ｓｏｃｉｅｔｙ  ｏｆ  Ａｕｔｏｍｏｔｉｖｅ  Ｅｎｇｉｎｅｅｒｓ）「Ｔａｘｏｎｏｍｙ  ａｎｄ  Ｄｅｆｉｎｉｔｉｏｎｓ  ｆｏｒ  Ｔｅｒｍｓ  Ｒｅｌａｔｅｄ  ｔｏ  Ｄｒｉｖｉｎｇ  Ａｕｔｏｍａｔｉｏｎ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｏｎ−Ｒｏａｄ  Ｍｏｔｏｒ  Ｖｅｈｉｃｌｅ」（２０１８年６月１５日に公開された規格番号Ｊ３０１６−２０１８０６、２０１６年９月３０日に公開された規格番号Ｊ３０１６−２０１６０９、及びこの規格の前の及び未来のバージョン）によって定義される、自動化レベルに関して記述される。移動車１０００は、自律運転レベルのレベル３〜レベル５のうちの１個又は複数による機能の能力を有し得る。たとえば、移動車１０００は、実施例に応じて、条件付き自動化（レベル３）、高度自動化（レベル４）、及び／又は完全自動化（レベル５）の能力を有し得る。
【００７６】
移動車１０００は、移動車のシャシ、車体、車輪（たとえば、２、４、６、８、１８など）、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。移動車１０００は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び／又は別の推進システム・タイプなど、推進システム１０５０を含み得る。推進システム１０５０は、移動車１０００の推進力を有効にするために、トランスミッションを含み得る、移動車１０００のドライブ・トレインに接続され得る。推進システム１０５０は、スロットル／加速装置１０５２からの信号の受信に応答して制御され得る。
【００７７】
ハンドルを含み得る、ステアリング・システム１０５４は、推進システム１０５０が動作しているときに（たとえば、移動車が移動中のときに）移動車１０００のかじを取る（たとえば、所望の進路又はルートに沿って）ために使用され得る。ステアリング・システム１０５４は、ステアリング・アクチュエータ１０５６から信号を受信することができる。ハンドルは、完全自動化（レベル５）機能のオプションでもよい。
【００７８】
ブレーキ・センサ・システム１０４６は、ブレーキ・アクチュエータ１０４８及び／又はブレーキ・センサからの信号の受信に応答して移動車ブレーキを動作させるために使用され得る。
【００７９】
１個又は複数のシステム・オン・チップ（ＳｏＣ：ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）１００４（図１０Ｃ）及び／又はＧＰＵを含み得る、コントローラ１０３６は、移動車１０００の１個若しくは複数の構成要素及び／又はシステムに信号（たとえば、コマンドの表現）を提供することができる。たとえば、コントローラは、１個又は複数のブレーキ・アクチュエータ１０４８を介して移動車ブレーキを動作させて、１個又は複数のステアリング・アクチュエータ１０５６を介してステアリング・システム１０５４を動作させて、１個又は複数のスロットル／加速装置１０５２を介して推進システム１０５０を動作させるために、信号を送ることができる。コントローラ１０３６は、センサ信号を処理する、並びに律的運転を可能にするために及び／又は運転者の移動車１０００の運転を支援するために動作コマンド（たとえば、コマンドを表す信号）を出力する、１個又は複数の搭載された（たとえば、統合された）計算デバイス（たとえば、スーパーコンピュータ）を含み得る。コントローラ１０３６は、自律運転機能のための第１のコントローラ１０３６、機能的安全性機能のための第２のコントローラ１０３６、人工知能機能（たとえば、コンピュータ・ビジョン）のための第３のコントローラ１０３６、インフォテインメント機能のための第４のコントローラ１０３６、緊急状態における冗長性のための第５のコントローラ１０３６、及び／又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ１０３６が、前述の機能のうちの２個以上を処理することができ、２個以上のコントローラ１０３６が、単一の機能、及び／又はその任意の組合せを処理することができる。
【００８０】
コントローラ１０３６は、１個又は複数のセンサから受信したセンサ・データ（たとえば、センサ入力）に応答して移動車１０００の１個又は複数の構成要素及び／又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ１０５８（たとえば、グローバル・ポジショニング・システム・センサ）、ＲＡＤＡＲセンサ１０６０、超音波センサ１０６２、ＬＩＤＡＲセンサ１０６４、慣性計測装置（ＩＭＵ：ｉｎｅｒｔｉａｌ  ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ）センサ１０６６（たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など）、マイクロフォン１０９６、ステレオ・カメラ１０６８、ワイドビュー・カメラ１０７０（たとえば、魚眼カメラ）、赤外線カメラ１０７２、サラウンド・カメラ１０７４（たとえば、３６０度カメラ）、長距離及び／又は中距離カメラ１０９８、スピード・センサ１０４４（たとえば、移動車１０００のスピードを測定するための）、振動センサ１０４２、ステアリング・センサ１０４０、ブレーキ・センサ（たとえば、ブレーキ・センサ・システム１０４６の一部としての）、及び／又は他のセンサ・タイプから受信され得る。
【００８１】
コントローラ１０３６のうちの１個又は複数のコントローラは、移動車１０００の計器群１０３２から入力（たとえば、入力データによって表される）を受信し、出力（たとえば、出力データ、表示データなどによって表される）をヒューマン・マシン・インターフェース（ＨＭＩ：ｈｕｍａｎ−ｍａｃｈｉｎｅ  ｉｎｔｅｒｆａｃｅ）ディスプレイ１０３４、可聴式アナンシエータ、ラウドスピーカ、及び／又は移動車１０００の他の構成要素を介して提供することができる。出力は、移動車ベロシティ、スピード、時間、マップ・データ（たとえば、図１０ＣのＨＤマップ１０２２）、位置データ（たとえば、マップ上などの、移動車の１０００の位置）、方向、他の移動車の位置（たとえば、占有グリッド）、コントローラ１０３６によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、ＨＭＩディスプレイ１０３４は、１個又は複数の物体（たとえば、道路標識、警告標識、交通信号の変化など）の存在、及び／又は移動車が行った、行っている、又は行うであろう運転操作（たとえば、今、車線変更をしていること、３．２２ｋｍ（２マイル）内の出口３４Ｂを出ることなど）に関する情報を表示することができる。
【００８２】
移動車１０００はさらに、１個又は複数のワイヤレス・アンテナ１０２６及び／又はモデムを使用して１個又は複数のネットワークを介して通信することができるネットワーク・インターフェース１０２４を含む。たとえば、ネットワーク・インターフェース１０２４は、ＬＴＥ、ＷＣＤＭＡ（登録商標）、ＵＭＴＳ、ＧＳＭ、ＣＤＭＡ２０００などを介する通信の能力を有し得る。ワイヤレス・アンテナ１０２６はまた、ブルートゥース（登録商標）、ブルートゥース（登録商標）ＬＥ、Ｚ−Ｗａｖｅ、ＺｉｇＢｅｅなどのローカル・エリア・ネットワーク、及び／又はＬｏＲａＷＡＮ、ＳｉｇＦｏｘなどのロー・パワー・ワイドエリア・ネットワーク（ＬＰＷＡＮ：ｌｏｗ  ｐｏｗｅｒ  ｗｉｄｅ−ａｒｅａ  ｎｅｔｗｏｒｋ）を使用し、環境内の物体（たとえば、移動車、モバイル・デバイスなど）の間の通信を可能にすることができる。
【００８３】
図１０Ｂは、本開示のいくつかの実施例による、図１０Ａの例示的自律型車両１０００のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、１個の例示的実施例であり、制限することは意図されていない。たとえば、追加の及び／又は代替カメラが含まれ得る、及び／又はカメラは移動車１０００の異なる位置に置かれ得る。
【００８４】
カメラのカメラ・タイプは、移動車１０００の構成要素及び／又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル（ＡＳＩＬ：ａｕｔｏｍｏｔｉｖｅ  ｓａｆｅｔｙ  ｉｎｔｅｇｒｉｔｙ  ｌｅｖｅｌ）Ｂにおいて及び／又は別のＡＳＩＬにおいて動作することができる。カメラ・タイプは、実施例に応じて、６０フレーム／秒（ｆｐｓ）、１０２０ｆｐｓ、２４０ｆｐｓなど、任意の画像キャプチャ・レートの能力を有し得る。カメラは、ロール・シャッタ、グローバル・シャッタ、別のタイプのシャッタ、又はその組合せを使用する能力を有し得る。いくつかの実例では、カラー・フィルタ・アレイは、ＲＣＣＣ（ｒｅｄ  ｃｌｅａｒ  ｃｌｅａｒ  ｃｌｅａｒ）カラー・フィルタ・アレイ、ＲＣＣＢ（ｒｅｄ  ｃｌｅａｒ  ｃｌｅａｒ  ｂｌｕｅ）カラー・フィルタ・アレイ、ＲＢＧＣ（ｒｅｄ  ｂｌｕｅ  ｇｒｅｅｎ  ｃｌｅａｒ）カラー・フィルタ・アレイ、Ｆｏｖｅｏｎ  Ｘ３カラー・フィルタ・アレイ、Ｂａｙｅｒセンサ（ＲＧＧＢ）カラー・フィルタ・アレイ、モノクロ・センサ・カラー・フィルタ・アレイ、及び／又は別のタイプのカラー・フィルタ・アレイを含み得る。一部の実施例では、ＲＣＣＣ、ＲＣＣＢ、及び／又はＲＢＧＣカラー・フィルタ・アレイを有するカメラなどのクリア画素カメラは、光感度を上げるための取り組みにおいて使用され得る。
【００８５】
いくつかの実例では、カメラのうちの１個又は複数が、高度運転者支援システム（ＡＤＡＳ：ａｄｖａｎｃｅｄ  ｄｒｉｖｅｒ  ａｓｓｉｓｔａｎｃｅ  ｓｙｓｔｅｍ）機能（たとえば、冗長又はフェイルセーフ設計の一部として）を実行するために使用され得る。たとえば、多機能モノ・カメラは、車線逸脱警報、交通標識アシスト及びインテリジェント・ヘッドランプ制御を含む機能を提供するために設置され得る。カメラのうちの１個又は複数（たとえば、すべてのカメラ）が、画像データ（たとえば、ビデオ）を同時に記録及び提供することができる。
【００８６】
カメラのうちの１個又は複数は、カメラの画像データ・キャプチャ能力を妨げることがある自動車内からの迷光及び反射（たとえば、フロントガラスのミラーにおいて反射されたダッシュボードからの反射）を取り除くために、カスタム設計された（３Ｄ印刷された）部品などの取付部品において取り付けられ得る。サイドミラー取付部品を参照すると、サイドミラー部品は、カメラ取付板がサイドミラーの形状に合うように、カスタム３Ｄ印刷され得る。いくつかの実例では、カメラは、サイドミラー内に統合され得る。サイドビュー・カメラについては、カメラはまた、キャビンの各角にある４個の支柱内に統合され得る。
【００８７】
移動車１０００の前の環境の部分を含む視野を有するカメラ（たとえば、前向きのカメラ）は、前向きの進路及び障害物の識別を助け、１個又は複数のコントローラ１０３６及び／又は制御ＳｏＣの助けにより、占有グリッドの生成及び／又は好ましい移動車進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、ＬＩＤＡＲと同じＡＤＡＳ機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報（「ＬＤＷ（Ｌａｎｅ  Ｄｅｐａｒｔｕｒｅ  Ｗａｒｎｉｎｇ）」）、自律的クルーズ制御（「ＡＣＣ（Ａｕｔｏｎｏｍｏｕｓ  Ｃｒｕｉｓｅ  Ｃｏｎｔｒｏｌ）」）、及び／又は交通標識認識などの他の機能を含むＡＤＡＳ機能及びシステムのために使用され得る。
【００８８】
様々なカメラが、たとえば、ＣＭＯＳ（ｃｏｍｐｌｅｍｅｎｔａｒｙ  ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒ）カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺（たとえば、歩行者、交差する交通又は自転車）からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ１０７０でもよい。図１０Ｂにはワイドビュー・カメラは１個だけ示されているが、移動車１０００には任意の数のワイドビュー・カメラ１０７０が存在し得る。加えて、長距離カメラ１０９８（たとえば、ロングビュー・ステレオ・カメラ・ペア）が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ１０９８はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
【００８９】
１個又は複数のステレオ・カメラ１０６８もまた、前向きの構成に含まれ得る。ステレオ・カメラ１０６８は、単一のチップ上に統合されたＣＡＮ又はイーサネット（登録商標）・インターフェースを有するプログラマブル論理（ＦＰＧＡ）及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、移動車の環境の３Ｄマップを生成するために使用され得る。代替ステレオ・カメラ１０６８は、２個のカメラ・レンズ（左と右に１個ずつ）と、移動車から対象物体までの距離を測定する及び生成された情報（たとえば、メタデータ）を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ１０６８が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
【００９０】
移動車１０００の側面に対する環境の部分を含む視野を有するカメラ（たとえば、サイドビュー・カメラ）が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ１０７４（たとえば、図１０Ｂに示されるような４個のサラウンド・カメラ１０７４）は、移動車１０００上に位置付けられ得る。サラウンド・カメラ１０７４は、ワイドビュー・カメラ１０７０、魚眼カメラ、３６０度カメラ、及び／又は同類のものを含み得る。たとえば、４個の魚眼カメラが、移動車の前、後ろ、及び側面に配置され得る。代替配置において、移動車は、３個のサラウンド・カメラ１０７４（たとえば、左、右、及び後部）を使用してもよく、第４のサラウンド・ビュー・カメラとして１個又は複数の他のカメラ（たとえば、前向きのカメラ）を活用してもよい。
【００９１】
移動車１０００の後ろに対する環境の部分を含む視野を有するカメラ（たとえば、後方確認カメラ）が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ（たとえば、長距離及び／又は中距離カメラ１０９８、ステレオ・カメラ１０６８）、赤外線カメラ１０７２など）としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
【００９２】
図１０Ｃは、本開示のいくつかの実施例による、図１０Ａの例示的自律型車両１０００の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素（たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど）が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素は共に除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び／又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【００９３】
図１０Ｃの移動車１０００の構成要素、特徴、及びシステムのそれぞれは、バス１００２を介して接続されるものとして図示されている。バス１００２は、コントローラ・エリア・ネットワーク（ＣＡＮ）データ・インターフェース（或いは、「ＣＡＮバス」と称される）を含み得る。ＣＡＮは、ブレーキ、加速度、ブレーキ、ステアリング、フロント・ガラス・ワイパなどの作動など、移動車１０００の様々な特徴及び機能の制御を助けるために使用される移動車１０００内のネットワークでもよい。ＣＡＮバスは、それぞれが独自の一意の識別子（たとえば、ＣＡＮ  ＩＤ）を有する、数ダース又は数百ものノードを有するように構成され得る。ＣＡＮバスは、ハンドル角度、対地速度、１分間のエンジン回転（ＲＰＭ：ｒｅｖｏｌｕｔｉｏｎｓ  ｐｅｒ  ｍｉｎｕｔｅ）、ボタン位置、及び／又は他の移動車状況指標を見つけるために読み取られ得る。ＣＡＮバスは、ＡＳＩＬ  Ｂ準拠でもよい。
【００９４】
バス１００２は、ＣＡＮバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、ＣＡＮバスに加えて、又はこのその代替として、ＦｌｅｘＲａｙ及び／又はイーサネット（登録商標）が使用されてもよい。加えて、単一の線が、バス１００２を表すために使用されているが、これは制限することを意図されていない。たとえば、１個又は複数のＣＡＮバス、１個又は複数のＦｌｅｘＲａｙバス、１個又は複数のイーサネット（登録商標）・バス、及び／又は異なるプロトコルを使用する１個若しくは複数の他のタイプのバスを含み得る、任意の数のバス１００２が存在し得る。いくつかの実例では、２個以上のバス１００２が、異なる機能を実行するために使用され得る、及び／又は冗長性のために使用され得る。たとえば、第１のバス１００２は衝突回避機能のために使用されてもよく、第２のバス１００２は作動制御のために使用されてもよい。任意の実例において、各バス１００２は、移動車１０００の構成要素のいずれかと通信し得、２個以上のバス１００２が同じ構成要素と通信し得る。いくつかの実例では、移動車内の各ＳｏＣ１００４、各コントローラ１０３６、及び／又は各コンピュータは、同じ入力データ（たとえば、移動車１０００のセンサからの入力）へのアクセスを有し得、ＣＡＮバスなどの共通バスに接続され得る。
【００９５】
移動車１０００は、図１０Ａに関して本明細書で説明されるものなど、１個又は複数のコントローラ１０３６を含み得る。コントローラ１０３６は、様々な機能のために使用され得る。コントローラ１０３６は、移動車１０００の様々な他の構成要素及びシステムのいずれかに連結されてもよく、移動車１０００、移動車１０００の人工知能、移動車１０００のためのインフォテインメント、及び／又は同類のものの制御のために使用され得る。
【００９６】
移動車１０００は、システム・オン・チップ（ＳｏＣ）１００４を含み得る。ＳｏＣ１００４は、ＣＰＵ１００６、ＧＰＵ１００８、プロセッサ１０１０、キャッシュ１０１２、加速装置１０１４、データ・ストア１０１６、及び／又は図示されていない他の構成要素及び特徴を含み得る。ＳｏＣ１００４は、様々なプラットフォーム及びシステム内の移動車１０００を制御するために使用され得る。たとえば、ＳｏＣ１００４は、１個又は複数のサーバ（たとえば、図１０Ｄのサーバ１０７８）からネットワーク・インターフェース１０２４を介してマップのリフレッシュ及び／又は更新を取得することができるＨＤマップ１０２２を有するシステム（たとえば、移動車１０００のシステム）において結合され得る。
【００９７】
ＣＰＵ１００６は、ＣＰＵクラスタ又はＣＰＵ複合体（或いは、「ＣＣＰＬＥＸ」とも称される）を含み得る。ＣＰＵ１００６は、複数のコア及び／又はＬ２キャッシュを含み得る。たとえば、一部の実施例では、ＣＰＵ１００６は、コヒーレント・マルチプロセッサ構成内の８個のコアを含み得る。一部の実施例では、ＣＰＵ１００６は、４個のデュアルコア・クラスタを含むことができ、各クラスタが専用のＬ２キャッシュ（たとえば、２ＭＢＬ２キャッシュ）を有する。ＣＰＵ１００６（たとえば、ＣＣＰＬＥＸ）は、ＣＰＵ１００６のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
【００９８】
ＣＰＵ１００６は、以下の特徴のうちの１個又は複数を含む電力管理能力を実装することができる：個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、ＷＦＩ／ＷＦＥ命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び／又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。ＣＰＵ１００６は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア／マイクロ・コードが、コア、クラスタ、及びＣＣＰＬＥＸに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
【００９９】
ＧＰＵ１００８は、統合されたＧＰＵ（或いは本明細書において「ｉＧＰＵ」と称される）を含み得る。ＧＰＵ１００８は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、ＧＰＵ１００８は、強化されたテンソル命令セットを使用することができる。ＧＰＵ１００８は、１個又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、Ｌ１キャッシュ（たとえば、少なくとも９６ＫＢ記憶容量を有するＬ１キャッシュ）を含み得、ストリーミング・マイクロプロセッサのうちの２個以上が、キャッシュ（たとえば、５１２ＫＢ記憶容量を有するＬ２キャッシュ）を共用し得る。一部の実施例では、ＧＰＵ１００８は、少なくとも８個のストリーミング・マイクロプロセッサを含み得る。ＧＰＵ１００８は、計算アプリケーション・プログラミング・インターフェース（ＡＰＩ）を使用することができる。加えて、ＧＰＵ１００８は、１個又は複数の並行のコンピューティング・プラットフォーム及び／又はプログラミング・モデル（たとえば、ＮＶＩＤＩＡのＣＵＤＡ）を使用することができる。
【０１００】
ＧＰＵ１００８は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、ＧＰＵ１００８は、ＦｉｎＦＥＴ（Ｆｉｎ  ｆｉｅｌｄ−ｅｆｆｅｃｔ  ｔｒａｎｓｉｓｔｏｒ）上に製造され得る。しかしながら、これは制限することを意図されておらず、ＧＰＵ１００８は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、６４  ＰＦ３２コア及び３２  ＰＦ６４コアは、４個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、１６  ＦＰ３２コア、８  ＦＰ６４コア、１６  ＩＮＴ３２コア、深層学習行列演算のための２個の混合精度ＮＶＩＤＩＡテンソル・コア、Ｌ０命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び／又は６４ＫＢレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたＬ１データ・キャッシュ及び共用メモリ・ユニットを含み得る。
【０１０１】
ＧＰＵ１００８は、一部の実例では、９００ＧＢ／秒のピーク・メモリ帯域幅に関して、提供するための高帯域幅メモリ（ＨＢＭ：ｈｉｇｈ  ｂａｎｄｗｉｄｔｈ  ｍｅｍｏｒｙ）及び／又は１６ＧＢＨＢＭ２メモリ・サブシステムを含み得る。いくつかの実例では、ＨＢＭメモリに加えて、又はこれの代わりに、グラフィックス・ダブル・データ・レート・タイプ５同期ランダム・アクセス・メモリ（ＧＤＤＲ５：ｇｒａｐｈｉｃｓ  ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ｔｙｐｅ  ｆｉｖｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）などの同期グラフィックス・ランダム・アクセス・メモリ（ＳＧＲＡＭ：ｓｙｎｃｈｒｏｎｏｕｓ  ｇｒａｐｈｉｃｓ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）が使用され得る。
【０１０２】
ＧＰＵ１００８は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス（ＡＴＳ：ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ  ｓｅｒｖｉｃｅ）サポートが、ＧＰＵ１００８がＣＰＵ１００６ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、ＧＰＵ１００８メモリ管理ユニット（ＭＭＵ：ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）がミスを経験するとき、アドレス変換要求が、ＣＰＵ１００６に送信され得る。応答して、ＣＰＵ１００６は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、ＧＰＵ１００８に変換を送り返す。そのようなものとして、統一されたメモリ技術は、ＣＰＵ１００６とＧＰＵ１００８との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりＧＰＵ１００８へのアプリケーションのＧＰＵ１００８プログラミング及び移植を単純化する。
【０１０３】
加えて、ＧＰＵ１００８は、他のプロセッサのメモリへのＧＰＵ１００８のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
【０１０４】
ＳｏＣ１００４は、本明細書に記載のものを含む任意の数のキャッシュ１０１２を含み得る。たとえば、キャッシュ１０１２は、ＣＰＵ１００６とＧＰＵ１００８との両方に利用可能な（たとえば、ＣＰＵ１００６とＧＰＵ１００８との両方に接続された）Ｌ３キャッシュを含み得る。キャッシュ１０１２は、キャッシュ・コヒーレンス・プロトコル（たとえば、ＭＥＩ、ＭＥＳＩ、ＭＳＩなど）を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。Ｌ３キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、４ＭＢ以上を含み得る。
【０１０５】
ＳｏＣ１００４は、１個又は複数の加速装置１０１４（たとえば、ハードウェア加速装置、ソフトウェア加速装置、又はその組合せ）を含み得る。たとえば、ＳｏＣ１００４は、最適化されたハードウェア加速装置及び／又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ（たとえば、４ＭＢのＳＲＡＭ）は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、ＧＰＵ１００８を補完するために及びＧＰＵ１００８のタスクの一部をオフロードするために（たとえば、他のタスクを実行するためのＧＰＵ１００８のより多くのサイクルを解放するために）使用され得る。一実例として、加速装置１０１４は、加速に適するように十分に安定している対象ワークロード（たとえば、知覚、畳み込みニューラル・ネットワーク（ＣＮＮ：ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）など）のために使用され得る。本明細書では、「ＣＮＮ」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク（ＲＣＮＮ：ｒｅｇｉｏｎａｌ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）及び高速ＲＣＮＮ（たとえば、物体検出のために使用されるものとしての）を含む、すべてのタイプのＣＮＮを含み得る。
【０１０６】
加速装置１０１４（たとえば、ハードウェア加速クラスタ）は、深層学習加速装置（ＤＬＡ：ｄｅｅｐ  ｌｅａｒｎｉｎｇ  ａｃｃｅｌｅｒａｔｏｒ）を含み得る。ＤＬＡは、深層学習アプリケーション及び推論のために１秒あたり追加の１０兆の動作を提供するように構成することができる１個又は複数のテンソル処理ユニット（ＴＰＵ：Ｔｅｎｓｏｒ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）を含み得る。ＴＰＵは、画像処理機能（たとえば、ＣＮＮ、ＲＣＮＮなどの）を実行するように構成及び最適化された加速装置でもよい。ＤＬＡはさらに、特定のセットのニューラル・ネットワーク・タイプ及び浮動小数点演算、並びに推論のために最適化され得る。ＤＬＡの設計は、汎用ＧＰＵよりも１ミリメートルあたりより多くのパフォーマンスを提供することができ、ＣＰＵのパフォーマンスを大きく超える。ＴＰＵは、たとえば、特徴と重みとの両方についてＩＮＴ８、ＩＮＴ１６、及びＦＰ１６データ・タイプをサポートする、単一インスタンス畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実行することができる。
【０１０７】
ＤＬＡは、以下を含むがこれらに限定されない、様々な機能のいずれかのために処理済み又は未処理のデータでニューラル・ネットワーク、特にＣＮＮ、を迅速に及び効率的に実行することができる：カメラ・センサからのデータを使用する物体識別及び検出のためのＣＮＮ、カメラ・センサからのデータを使用する距離推定のためのＣＮＮ、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのＣＮＮ、カメラ・センサからのデータを使用する顔認識及び移動車所有者識別のためのＣＮＮ、及び／又は、セキュリティ及び／又は安全性関連イベントのためのＣＮＮ。
【０１０８】
ＤＬＡは、ＧＰＵ１００８の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにＤＬＡ又はＧＰＵ１００８のいずれかを対象にすることができる。たとえば、設計者は、ＤＬＡ上のＣＮＮ及び浮動小数点演算の処理に重点的に取り組み、他の機能をＧＰＵ１００８及び／又は他の加速装置１０１４に任せることができる。
【０１０９】
加速装置１０１４（たとえば、ハードウェア加速クラスタ）は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置（ＰＶＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｖｉｓｉｏｎ  ａｃｃｅｌｅｒａｔｏｒ）を含み得る。ＰＶＡは、高度運転者支援システム（ＡＤＡＳ：ａｄｖａｎｃｅｄ  ｄｒｉｖｅｒ  ａｓｓｉｓｔａｎｃｅ  ｓｙｓｔｅｍ）、自律運転、及び／又は拡張現実（ＡＲ：ａｕｇｍｅｎｔｅｄ  ｒｅａｌｉｔｙ）及び／又は仮想現実（ＶＲ：ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ）アプリケーションのためのコンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。ＰＶＡは、パフォーマンスと柔軟性との間のバランスをもたらすことができる。たとえば、各ＰＶＡは、たとえば、任意の数の縮小命令セット・コンピュータ（ＲＩＳＣ：ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｅｒ）コア、直接メモリ・アクセス（ＤＭＡ：ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）、及び／又は任意の数のベクトル・プロセッサを含み得るが、これらに限定されない。
【０１１０】
ＲＩＳＣコアは、画像センサ（たとえば、本明細書に記載のカメラのうちのいずれかのカメラの画像センサ）、画像信号プロセッサ、及び／又は同類のものと相互作用することができる。それぞれのＲＩＳＣコアは、任意の量のメモリを含み得る。ＲＩＳＣコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用することができる。いくつかの実例では、ＲＩＳＣコアは、リアルタイム・オペレーティング・システム（ＲＴＯＳ：ｒｅａｌ−ｔｉｍｅ  ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行することができる。ＲＩＳＣコアは、１個又は複数の集積回路デバイス、特定用途向け集積回路（ＡＳＩＣ）、及び／又はメモリデバイスを使用して、実装され得る。たとえば、ＲＩＳＣコアは、命令キャッシュ及び／又はしっかりと結合されたＲＡＭを含み得る。
【０１１１】
ＤＭＡは、ＣＰＵ１００６から独立したシステム・メモリにＰＶＡの構成要素がアクセスすることを可能にし得る。ＤＭＡは、多次元アドレス指定及び／又は循環アドレス指定をサポートすることを含むがこれに限定されないＰＶＡに最適化をもたらすために使用される任意の数の特徴をサポートすることができる。いくつかの実例では、ＤＭＡは、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び／又は深度ステッピングを含み得る、６次元まで又はそれ以上のアドレス指定をサポートすることができる。
【０１１２】
ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのプログラミングを効率的に柔軟に実行する及び信号処理能力を提供するように設計され得るプログラマブル・プロセッサでもよい。いくつかの実例では、ＰＶＡは、ＰＶＡコア及び２個のベクトル処理サブシステム・パーティションを含み得る。ＰＶＡコアは、プロセッサ・サブシステム、ＤＭＡエンジン（たとえば、２個のＤＭＡエンジン）、及び／又は他の周辺装置を含み得る。ベクトル処理サブシステムは、ＰＶＡの１次的処理エンジンとして動作することができ、ベクトル処理ユニット（ＶＰＵ：ｖｅｃｔｏｒ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、命令キャッシュ、及び／又はベクトル・メモリ（たとえば、ＶＭＥＭ）を含み得る。ＶＰＵコアは、たとえば、単一の命令、複数のデータ（ＳＩＭＤ）、超長命令語（ＶＬＩＷ：ｖｅｒｙ  ｌｏｎｇ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ）デジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。ＳＩＭＤ及びＶＬＩＷの組合せは、スループット及びスピードを高めることができる。
【０１１３】
それぞれのベクトル・プロセッサは、命令キャッシュを含み得、専用のメモリに連結され得る。結果として、一部の実例では、それぞれのベクトル・プロセッサは、他のベクトル・プロセッサから独立して実行するように構成され得る。他の実例において、特定のＰＶＡに含まれるベクトル・プロセッサは、データ並列処理を用いるように構成され得る。たとえば、一部の実施例では、単一のＰＶＡに含まれる複数のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、しかし画像の異なる領域上で、実行することができる。他の実例において、特定のＰＶＡに含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを、同じ画像上で、同時に実行することができ、或いは順次画像又は画像の部分で異なるアルゴリズムを実行することさえできる。特に、任意の数のＰＶＡは、ハードウェア加速クラスタに含まれ得、任意の数のベクトル・プロセッサは、それぞれのＰＶＡに含まれ得る。加えて、ＰＶＡは、全体的システム安全性を高めるために、追加のエラー訂正コード（ＥＣＣ：ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ）メモリを含み得る。
【０１１４】
加速装置１０１４（たとえば、ハードウェア加速クラスタ）は、加速装置１０１４のための高帯域幅、低レイテンシＳＲＡＭを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びＳＲＡＭを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、ＰＶＡとＤＬＡとの両方によってアクセス可能でもよい、８個のフィールド構成可能なメモリ・ブロックから成る、少なくとも４ＭＢのＳＲＡＭを含み得る。各ペアのメモリ・ブロックは、高度周辺バス（ＡＰＢ：ａｄｖａｎｃｅｄ  ｐｅｒｉｐｈｅｒａｌ  ｂｕｓ）インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。ＰＶＡ及びＤＬＡは、メモリへの高速アクセスを有するＰＶＡ及びＤＬＡを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、（たとえば、ＡＰＢを使用して）ＰＶＡ及びＤＬＡをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
【０１１５】
コンピュータ・ビジョン・ネットワーク・オンチップは、ＰＶＡとＤＬＡとの両方が作動可能及び有効信号を提供することを、任意の制御信号／アドレス／データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号／アドレス／データを送信するための別個のフェーズ及び別個のチャンネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ＩＳＯ２６２６２又はＩＥＣ６１５０８規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
【０１１６】
いくつかの実例では、ＳｏＣ１００４は、２０１８年８月１０日に出願された米国特許出願第１６／１０１，２３２号に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、ＲＡＤＡＲ信号解釈のための、音響伝播合成及び／又は分析のための、ＳＯＮＡＲシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び／又は他の機能を目的とするＬＩＤＡＲデータに対する比較のための、及び／又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、（たとえば、世界モデル内の）物体の位置及び規模を迅速に効率的に決定するために使用され得る。
【０１１７】
加速装置１０１４（たとえば、ハードウェア加速装置クラスタ）は、自律運転のための多様な用途を有する。ＰＶＡは、ＡＤＡＳ及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。ＰＶＡの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、ＰＶＡは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、ＰＶＡは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、ＰＶＡは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
【０１１８】
たとえば、本技術の１個の実施例によれば、ＰＶＡは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは制限することを意図されていない。レベル３〜５の自律運転のための多数のアプリケーションは、動き推定／ステレオ・マッチング・オンザフライ（たとえば、ＳＦＭ（ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  ｍｏｔｉｏｎ）、歩行者認識、レーン検出など）を必要とする。ＰＶＡは、２個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
【０１１９】
いくつかの実例では、ＰＶＡは、高密度のオプティカル・フローを実行するために使用され得る。処理されたＲＡＤＡＲを提供するために未加工のＲＡＤＡＲデータを処理する（たとえば、４Ｄ高速フーリエ変換を使用して）ことによる。他の実例において、ＰＶＡは、たとえば、飛行データの未加工の時間を処理して飛行データの処理済み時間を提供することにより、飛行深度処理の時間に使用される。
【０１２０】
ＤＬＡは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するために使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が誤判定検出ではなくて真陽性検出と考えられるべきであるかに関するさらなる決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動非常ブレーキ（ＡＥＢ：ａｕｔｏｍａｔｉｃ  ｅｍｅｒｇｅｎｃｙ  ｂｒａｋｉｎｇ）システムにおいて、誤判定検出は、移動車に非常ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、ＡＥＢのトリガとして考えられるべきである。ＤＬＡは、信頼性値を退行するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、（たとえば、別のサブシステムから）取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び／又は他のセンサ（たとえば、ＬＩＤＡＲセンサ１０６４又はＲＡＤＡＲセンサ１０６０）から取得された物体の移動車１０００方位、距離、３Ｄ位置推定と相関する慣性計測装置（ＩＭＵ：ｉｎｅｒｔｉａｌ  ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ）センサ１０６６出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
【０１２１】
ＳｏＣ１００４は、データ・ストア１０１６（たとえば、メモリ）を含み得る。データ・ストア１０１６は、ＳｏＣ１００４のオンチップ・メモリでもよく、ＧＰＵ及び／又はＤＬＡで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア１０１６は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア１０１２は、Ｌ２又はＬ３キャッシュ１０１２を備え得る。データ・ストア１０１６の参照は、本明細書に記載のような、ＰＶＡ、ＤＬＡ、及び／又は他の加速装置１０１４に関連するメモリの参照を含み得る。
【０１２２】
ＳｏＣ１００４は、１個又は複数のプロセッサ１０１０（たとえば、組み込まれたプロセッサ）を含み得る。プロセッサ１０１０は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、ＳｏＣ１００４ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、ＳｏＣ１００４熱及び温度センサの管理、及び／又はＳｏＣ１００４電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、ＳｏＣ１００４は、リング発振器を使用してＣＰＵ１００６、ＧＰＵ１００８、及び／又は加速装置１０１４の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、ＳｏＣ１００４をより低い電力状態に置く及び／又は移動車１０００をショーファーの安全停止モードにする（たとえば、移動車１０００を安全停止させる）ことができる。
【０１２３】
プロセッサ１０１０は、オーディオ処理エンジンの機能を果たし得る１セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャンネル・オーディオの完全なハードウェア・サポートとオーディオＩ／Ｏインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のＲＡＭを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
【０１２４】
プロセッサ１０１０は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたＲＡＭ、支援周辺装置（たとえば、タイマ及び割り込みコントローラ）、様々なＩ／Ｏコントローラ周辺装置、及びルーティング論理を含み得る。
【０１２５】
プロセッサ１０１０は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、２個以上のプロセッサ・コア、しっかりと結合されたＲＡＭ、サポート周辺装置（たとえば、タイマ、割り込みコントローラなど）、及び／又はルーティング論理を含み得る。安全性モードにおいて、２個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
【０１２６】
プロセッサ１０１０は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
【０１２７】
プロセッサ１０１０は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
【０１２８】
プロセッサ１０１０は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック（たとえば、マイクロプロセッサに実装された）でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ１０７０で、サラウンド・カメラ１０７４で、及び／又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度ＳｏＣの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、移動車の目的地を変更する、移動車のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
【０１２９】
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
【０１３０】
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、ＧＰＵ１００８は、新しい表面を連続してレンダリングために必要とされない。ＧＰＵ１００８の電源が入れられ、３Ｄレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、ＧＰＵ１００８をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
【０１３１】
ＳｏＣ１００４は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース（ＭＩＰＩ：ｍｏｂｉｌｅ  ｉｎｄｕｓｔｒｙ  ｐｒｏｃｅｓｓｏｒ  ｉｎｔｅｒｆａｃｅ）カメラ・シリアル・インターフェース、高速インターフェース、及び／又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。ＳｏＣ１００４は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないＩ／Ｏ信号を受信するために使用され得る、入力／出力コントローラをさらに含み得る。
【０１３２】
ＳｏＣ１００４は、周辺装置、オーディオ・コーデック、電力管理、及び／又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。ＳｏＣ１００４は、（たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット（登録商標）を介して接続された）カメラからのデータ、センサ（たとえば、イーサネット（登録商標）を介して接続され得るＬＩＤＡＲセンサ１０６４、ＲＡＤＡＲセンサ１０６０など）、バス１００２からのデータ（たとえば、移動車１０００のスピード、ハンドル位置など）、（たとえば、イーサネット（登録商標）又はＣＡＮバスを介して接続された）ＧＮＳＳセンサ１０５８からのデータを処理するために使用され得る。ＳｏＣ１００４は、独自のＤＭＡエンジンを含み得る及びルーティン・データ管理タスクからＣＰＵ１００６を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
【０１３３】
ＳｏＣ１００４は、自動化レベル３〜５に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びＡＤＡＳ技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。ＳｏＣ１００４は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置１０１４が、ＣＰＵ１００６と結合されるとき、ＧＰＵ１００８、及びデータ・ストア１０１６は、レベル３〜５の自律型車両のための高速で効率的なプラットフォームを提供することができる。
【０１３４】
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Ｃプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、ＣＰＵで実行され得る。しかしながら、ＣＰＵは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のＣＰＵは、移動車内ＡＤＡＳアプリケーションの要件及び実際のレベル３〜５の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
【０１３５】
従来のシステムとは対照的に、ＣＰＵ複合体、ＧＰＵ複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び／又は連続して実行されることと、レベル３〜５の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、ＤＬＡ又はｄＧＰＵ（たとえば、ＧＰＵ１０２０）で実行するＣＮＮは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。ＤＬＡは、標識の意味論的理解を識別、解釈、及び提供することと、ＣＰＵ複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
【０１３６】
別の実例として、複数のニューラル・ネットワークは、レベル３、４、又は５の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意：点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第１の配備されたニューラル・ネットワーク（たとえば、トレーニングされてあるニューラル・ネットワーク）によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを移動車の進路計画立案ソフトウェア（好ましくはＣＰＵ複合体上で実行する）に知らせる、第２の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在（又は無いこと）を移動車の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第３の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての３個のニューラル・ネットワークは、ＤＬＡ内及び／又はＧＰＵ１００８上などで、同時に実行することができる。
【０１３７】
いくつかの実例では、顔認識及び移動車所有者識別のためのＣＮＮは、カメラ・センサからのデータを使用して移動車１０００の正規の運転者及び／又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに移動車を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が移動車を離れるときに移動車の動作を停止させるために、使用され得る。このようにして、ＳｏＣ１００４は、盗難及び／又は車の乗っ取りに対するセキュリティをもたらす。
【０１３８】
別の実例では、緊急車両検出及び識別のためのＣＮＮは、マイクロフォン１０９６からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、ＳｏＣ１００４は、環境の及び都市の音の分類、並びに視覚的データの分類のためにＣＮＮを使用する。好ましい一実施例では、ＤＬＡ上で実行するＣＮＮは、（たとえば、ドップラー効果を使用することによって）緊急車両の相対的終速度を識別するようにトレーニングされる。ＣＮＮはまた、ＧＮＳＳセンサ１０５８によって識別されるように、移動車が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、ＣＮＮは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、ＣＮＮは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ１０６２の支援を受けて、移動車を減速する、道の端に停止させる、移動車を駐車する、及び／又は移動車をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
【０１３９】
移動車は、高速相互接続（たとえば、ＰＣＩｅ）を介してＳｏＣ１００４に連結され得るＣＰＵ１０１８（たとえば、個別のＣＰＵ、又はｄＣＰＵ）を含み得る。ＣＰＵ１０１８は、たとえば、Ｘ８６プロセッサを含み得る。ＣＰＵ１０１８は、たとえば、ＡＤＡＳセンサとＳｏＣ１００４との間の潜在的に不整合の結果を調停すること、及び／又はコントローラ１０３６及び／又はインフォテインメントＳｏＣ１０３０の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
【０１４０】
移動車１０００は、高速相互接続（たとえば、ＮＶＩＤＩＡのＮＶＬＩＮＫ）を介してＳｏＣ１００４に連結され得るＧＰＵ１０２０（たとえば、個別のＧＰＵ、又はｄＧＰＵ）を含み得る。ＧＰＵ１０２０は、冗長及び／又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、移動車１０００のセンサからの入力（たとえば、センサ・データ）に基づいてニューラル・ネットワークをトレーニング及び／又は更新するために使用され得る。
【０１４１】
移動車１０００は、１個又は複数のワイヤレス・アンテナ１０２６（たとえば、セルラ・アンテナ、ブルートゥース（登録商標）・アンテナなど、異なる通信プロトコルのための１個又は複数のワイヤレス・アンテナ）を含み得るネットワーク・インターフェース１０２４をさらに含み得る。ネットワーク・インターフェース１０２４は、インターネットを介するクラウドとの（たとえば、サーバ１０７８及び／又は他のネットワーク・デバイスとの）、他の移動車との、及び／又は計算デバイス（たとえば、乗客のクライアント・デバイス）とのワイヤレス接続を使用可能にするために使用され得る。他の移動車と通信するために、直接リンクが２個の移動車の間に確立され得る、及び／又は、間接リンクが（たとえば、ネットワークを通じて及びインターネットを介して）確立され得る。直接リンクは、移動車対移動車通信リンクを使用し、提供され得る。移動車対移動車通信リンクは、移動車１０００に近接する移動車（たとえば、移動車１０００の前の、横の、及び／又は後ろの移動車）に関する移動車１０００情報を提供することができる。この機能は、移動車１０００の共同適応クルーズ制御機能の一部でもよい。
【０１４２】
ネットワーク・インターフェース１０２４は、変調及び復調機能を提供する及びコントローラ１０３６がワイヤレス・ネットワークを介して通信することを可能にする、ＳｏＣを含み得る。ネットワーク・インターフェース１０２４は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び／又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、ＬＴＥ、ＷＣＤＭＡ（登録商標）、ＵＭＴＳ、ＧＳＭ、ＣＤＭＡ２０００、ブルートゥース（登録商標）、ブルートゥース（登録商標）ＬＥ、Ｗｉ−Ｆｉ、Ｚ−Ｗａｖｅ、ＺｉｇＢｅｅ、ＬｏＲａＷＡＮ、及び／又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
【０１４３】
移動車１０００は、チップ外の（たとえば、ＳｏＣ１００４外の）ストレージを含み得るデータ・ストア１０２８をさらに含み得る。データ・ストア１０２８は、ＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュ、ハードディスク、及び／又は、少なくとも１ビットのデータを記憶することができる他の構成要素及び／又はデバイスを含む、１個又は複数の記憶素子を含み得る。
【０１４４】
移動車１０００は、ＧＮＳＳセンサ１０５８をさらに含み得る。マッピング、知覚、占有グリッド生成、及び／又は進路計画立案機能を支援するための、ＧＮＳＳセンサ１０５８（たとえば、ＧＰＳ及び／又は補助装置付きＧＰＳセンサ）。たとえば、シリアル（ＲＳ−２３２）ブリッジへのイーサネット（登録商標）を有するＵＳＢコネクタを使用するＧＰＳを含むが、これに限定されない、任意の数のＧＮＳＳセンサ１０５８が、使用され得る。
【０１４５】
移動車１０００は、ＲＡＤＡＲセンサ１０６０をさらに含み得る。ＲＡＤＡＲセンサ１０６０は、暗闇及び／又は厳しい気象条件においても、長距離移動車検出のために移動車１０００によって使用され得る。ＲＡＤＡＲ機能安全性レベルは、ＡＳＩＬ  Ｂでもよい。一部の実例では、ＲＡＤＡＲセンサ１０６０は、未加工のデータにアクセスするためのイーサネット（登録商標）へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために（たとえば、ＲＡＤＡＲセンサ１０６０によって生成されたデータを送信するために）ＣＡＮ及び／又はバス１００２を使用することができる。多種多様なＲＡＤＡＲセンサ・タイプが、使用され得る。たとえば、そして制限なしに、ＲＡＤＡＲセンサ１０６０は、前部、後部、及び側部ＲＡＤＡＲ使用に適し得る。一部の実例では、パルス・ドップラーＲＡＤＡＲセンサが使用される。
【０１４６】
ＲＡＤＡＲセンサ１０６０は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離ＲＡＤＡＲは、適応クルーズ制御機能のために使用され得る。長距離ＲＡＤＡＲシステムは、２５０ｍの範囲内など、２個以上の独立したスキャンによって実現される広い視野を提供することができる。ＲＡＤＡＲセンサ１０６０は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのＡＤＡＳシステムによって使用され得る。長距離ＲＡＤＡＲセンサは、複数の（たとえば、６つ以上の）固定ＲＡＤＡＲアンテナと高速ＣＡＮ及びＦｌｅｘＲａｙインターフェースとを有するモノスタティック・マルチモーダルＲＡＤＡＲを含み得る。６つのアンテナを有する一実例では、中央の４個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で移動車１０００の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の２個のアンテナは、視野を広げることができ、移動車１０００のレーンに入る又はこれを去る移動車を迅速に検出することを可能にする。
【０１４７】
一実例として、中距離ＲＡＤＡＲシステムは、１０６０ｍ（前）又は８０ｍ（後）までの範囲、及び４２度（前）又は１０５０度（後）までの視野を含み得る。短距離ＲＡＤＡＲシステムは、後部バンパの両端に設置されるように設計されたＲＡＤＡＲセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなＲＡＤＡＲセンサ・システムは、移動車の後ろ及び隣の死角を常に監視する２個のビームを作成することができる。
【０１４８】
短距離ＲＡＤＡＲシステムは、死角検出及び／又はレーン変更アシストのためにＡＤＡＳシステムにおいて使用され得る。
【０１４９】
移動車１０００は、超音波センサ１０６２をさらに含み得る。移動車１０００の前部、後部、及び／又は側部に位置付けられ得る、超音波センサ１０６２は、駐車アシストのために及び／又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ１０６２が使用され得、異なる超音波センサ１０６２が、異なる範囲の検出（たとえば、２．５ｍ、４ｍ）のために使用され得る。超音波センサ１０６２は、ＡＳＩＬ  Ｂの機能的安全性レベルにおいて動作することができる。
【０１５０】
移動車１０００はＬＩＤＡＲセンサ１０６４を含み得る。ＬＩＤＡＲセンサ１０６４は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び／又は他の機能のために使用され得る。ＬＩＤＡＲセンサ１０６４は、機能的安全性レベルＡＳＩＬ  Ｂでもよい。いくつかの実例では、移動車１０００は、（たとえば、ギガビット・イーサネット（登録商標）・スイッチにデータを提供するために）イーサネット（登録商標）を使用することができる複数の（たとえば、２個、４個、６個などの）ＬＩＤＡＲセンサ１０６４を含み得る。
【０１５１】
いくつかの実例では、ＬＩＤＡＲセンサ１０６４は、物体及び３６０度視野のそれらの距離のリストを提供する能力を有し得る。市販のＬＩＤＡＲセンサ１０６４は、たとえば、２ｃｍ〜３ｃｍの精度を有し、１０００Ｍｂｐｓイーサネット（登録商標）接続のサポートを有して、約１０００ｍの広告された範囲を有し得る。いくつかの実例では、１個又は複数の非突出しＬＩＤＡＲセンサ１０６４が、使用され得る。そのような実例では、ＬＩＤＡＲセンサ１０６４は、移動車１０００の前部、後部、側部、及び／又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、ＬＩＤＡＲセンサ１０６４は、低反射物体についても２００ｍの範囲を有し、１０２０度水平及び３５度垂直視野まで提供することができる。前部に取り付けられたＬＩＤＡＲセンサ１０６４は、４５度と１３５度との間の水平視野向けに構成され得る。
【０１５２】
いくつかの実例では、３ＤフラッシュＬＩＤＡＲなどのＬＩＤＡＲ技術もまた使用され得る。３ＤフラッシュＬＩＤＡＲは、約２００ｍまで移動車の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュＬＩＤＡＲユニットは、移動車から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュＬＩＤＡＲは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、４個のフラッシュＬＩＤＡＲセンサが、移動車１０００の各側面に１個ずつ、配備され得る。利用可能な３ＤフラッシュＬＩＤＡＲシステムは、送風機以外に動く部分を有さないソリッドステート３Ｄステアリング・アレイＬＩＤＡＲカメラ（たとえば、非スキャン型ＬＩＤＡＲデバイス）を含む。フラッシュＬＩＤＡＲデバイスは、１フレームにつき５ナノ秒クラスＩ（目に安全な）レーザー・パルスを使用することができ、３Ｄ範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュＬＩＤＡＲを使用することによって、また、フラッシュＬＩＤＡＲは、動く部分を有さないソリッドステート・デバイスであるので、ＬＩＤＡＲセンサ１０６４は、モーション・ブラー、振動、及び／又は衝撃の影響を受けにくくなり得る。
【０１５３】
移動車は、ＩＭＵセンサ１０６６をさらに含み得る。一部の実例では、ＩＭＵセンサ１０６６は、移動車１０００の後部車軸の中央に位置付けられ得る。ＩＭＵセンサ１０６６は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び／又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、６軸アプリケーションなどにおいて、ＩＭＵセンサ１０６６は、加速度計及びジャイロスコープを含み得るが、９軸アプリケーションにおいて、ＩＭＵセンサ１０６６は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
【０１５４】
一部の実施例では、ＩＭＵセンサ１０６６は、マイクロ電気機械システム（ＭＥＭＳ：ｍｉｃｒｏ−ｅｌｅｃｔｒｏ−ｍｅｃｈａｎｉｃａｌ  ｓｙｓｔｅｍ）慣性センサ、高感度ＧＰＳレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能ＧＰＳ支援型慣性航行システム（ＧＰＳ／ＩＮＳ：ＧＰＳ−Ａｉｄｅｄ  Ｉｎｅｒｔｉａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓｙｓｔｅｍ）として実装され得る。そのようなものとして、一部の実例では、ＩＭＵセンサ１０６６は、ＧＰＳからＩＭＵセンサ１０６６までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を移動車１０００が推定することを可能にし得る。いくつかの実例では、ＩＭＵセンサ１０６６及びＧＮＳＳセンサ１０５８は、単一の統合されたユニットにおいて結合され得る。
【０１５５】
移動車は、移動車１０００内及び／又は周囲に置かれたマイクロフォン１０９６を含み得る。マイクロフォン１０９６は、中でも、緊急車両検出及び識別のために使用され得る。
【０１５６】
移動車は、ステレオ・カメラ１０６８、ワイドビュー・カメラ１０７０、赤外線カメラ１０７２、サラウンド・カメラ１０７４、長距離及び／又は中距離カメラ１０９８、及び／又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、移動車１０００の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、移動車１０００の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、移動車１０００の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、移動車は、６個のカメラ、７個のカメラ、１０個のカメラ、１２個のカメラ、及び／又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク（ＧＭＳＬ：Ｇｉｇａｂｉｔ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｅｒｉａｌ  Ｌｉｎｋ）及び／又はギガビット・イーサネット（登録商標）をサポートし得るが、これに限定されない。それぞれのカメラは、図１０Ａ及び図１０Ｂに関連して本明細書においてさらに詳しく説明される。
【０１５７】
移動車１０００は、振動センサ１０４２をさらに含み得る。振動センサ１０４２は、車軸など、移動車の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、２個以上の振動センサ１０４２が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る（たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき）。
【０１５８】
移動車１０００は、ＡＤＡＳシステム１０３８を含み得る。一部の実例では、ＡＤＡＳシステム１０３８は、ＳｏＣを含み得る。ＡＤＡＳシステム１０３８は、自律／適応／自動クルーズ制御（ＡＣＣ：ａｕｔｏｎｏｍｏｕｓ／ａｄａｐｔｉｖｅ／ａｕｔｏｍａｔｉｃ  ｃｒｕｉｓｅ  ｃｏｎｔｒｏｌ）、共同適応クルーズ制御（ＣＡＣＣ：ｃｏｏｐｅｒａｔｉｖｅ  ａｄａｐｔｉｖｅ  ｃｒｕｉｓｅ  ｃｏｎｔｒｏｌ）、前方衝突警報（ＦＣＷ：ｆｏｒｗａｒｄ  ｃｒａｓｈ  ｗａｒｎｉｎｇ）、自動緊急ブレーキ（ＡＥＢ：ａｕｔｏｍａｔｉｃ  ｅｍｅｒｇｅｎｃｙ  ｂｒａｋｉｎｇ）、車線逸脱警報（ＬＤＷ：ｌａｎｅ  ｄｅｐａｒｔｕｒｅ  ｗａｒｎｉｎｇ）、レーン・キープ・アシスト（ＬＫＡ：ｌａｎｅ  ｋｅｅｐ  ａｓｓｉｓｔ）、死角警報（ＢＳＷ：ｂｌｉｎｄ  ｓｐｏｔ  ｗａｒｎｉｎｇ）、後部交差交通警報（ＲＣＴＷ：ｒｅａｒ  ｃｒｏｓｓ−ｔｒａｆｆｉｃ  ｗａｒｎｉｎｇ）、衝突警報システム（ＣＷＳ：ｃｏｌｌｉｓｉｏｎ  ｗａｒｎｉｎｇ  ｓｙｓｔｅｍ）、レーン・センタリング（ＬＣ：ｌａｎｅ  ｃｅｎｔｅｒｉｎｇ）、及び／又は他の特徴及び機能を含み得る。
【０１５９】
ＡＣＣシステムは、ＲＡＤＡＲセンサ１０６０、ＬＩＤＡＲセンサ１０６４、及び／又はカメラを使用し得る。ＡＣＣシステムは、縦ＡＣＣ及び／又は横ＡＣＣを含み得る。縦ＡＣＣは、移動車１０００の直ぐ前の移動車までの距離を監視及び制御し、前方の移動車からの安全距離を維持するために移動車速度を自動的に調整する。横ＡＣＣは、距離の保持を実行し、必要なときにレーンを変更するように移動車１０００にアドバイスする。横ＡＣＣは、ＬＣＡ及びＣＷＳなどの他のＡＤＡＳアプリケーションに関連する。
【０１６０】
ＣＡＣＣは、ワイヤレス・リンクを介して他の移動車からネットワーク・インターフェース１０２４及び／又はワイヤレス・アンテナ１０２６を介して、或いは間接的にネットワーク接続を介して（たとえば、インターネットを介して）、受信することができる、他の移動車からの情報を使用する。直接リンクは、移動車対移動車（Ｖ２Ｖ：ｖｅｈｉｃｌｅ−ｔｏ−ｖｅｈｉｃｌｅ）通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対移動車（Ｉ２Ｖ：ｉｎｆｒａｓｔｒｕｃｔｕｒｅ−ｔｏ−ｖｅｈｉｃｌｅ）通信リンクでもよい。一般に、Ｖ２Ｖ通信概念は、直前の移動車（たとえば、移動車１０００と同じレーン内にある、移動車１０００の直ぐ前の移動車）に関する情報を提供し、一方、Ｉ２Ｖ通信概念は、さらに前の交通に関する情報を提供する。ＣＡＣＣシステムは、Ｉ２Ｖ情報ソースとＶ２Ｖ情報ソースとのいずれか又は両方を含み得る。移動車１０００の前方の移動車の情報を所与として、ＣＡＣＣは、より高信頼になり得、ＣＡＣＣは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
【０１６１】
運転者が修正行動を取ることができるように、ＦＣＷシステムは、危険を運転者に警告するように設計される。ＦＣＷシステムは、ディスプレイ、スピーカ、及び／又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、ＤＳＰ、ＦＰＧＡ、及び／又はＡＳＩＣに連結された、前向きのカメラ及び／又はＲＡＤＡＲセンサ１０６０を使用する。ＦＣＷシステムは、音響、視覚的警報、振動及び／又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
【０１６２】
ＡＥＢシステムは、別の移動車又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。ＡＥＢシステムは、専用のプロセッサ、ＤＳＰ、ＦＰＧＡ、及び／又はＡＳＩＣに連結された、前向きのカメラ及び／又はＲＡＤＡＲセンサ１０６０を使用することができる。ＡＥＢシステムが危険を検出するとき、ＡＥＢシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、ＡＥＢシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。ＡＥＢシステムは、ダイナミック・ブレーキ・サポート及び／又は衝突切迫ブレーキなどの技法を含み得る。
【０１６３】
ＬＤＷシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び／又は触覚的警報を提供して、移動車１０００が車線区分線を越えたときに運転者に警告する。ＬＤＷシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。ＬＤＷシステムは、ディスプレイ、スピーカ、及び／又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、ＤＳＰ、ＦＰＧＡ、及び／又はＡＳＩＣに連結された、前側を向いたカメラを使用することができる。
【０１６４】
ＬＫＡシステムは、ＬＤＷシステムの変更形態である。ＬＫＡシステムは、移動車１０００が車線をはみ出し始めた場合に移動車１０００を修正するためにステアリング入力又はブレーキを提供する。
【０１６５】
ＢＳＷシステムは、自動車の死角において移動車の運転者に検出及び警告する。ＢＳＷシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び／又は触覚的警告を提供することができる。本システムは、運転者が方向指示灯を使用するとき、付加的な警告を提供することができる。ＢＳＷシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び／又は振動部品、に電気的に結合された、専用プロセッサ、ＤＳＰ、ＦＰＧＡ、及び／又はＡＳＩＣに結合された、後ろ側を向いたカメラ及び／又はＲＡＤＡＲセンサ１０６０を使用することができる。
【０１６６】
ＲＣＴＷシステムは、車両１０００がバックしているときにリアカメラの範囲外で物体が検出されたときに視覚的、可聴式、及び／又は触覚的通知を提供することができる。いくつかのＲＣＴＷシステムは、衝突を回避するために車両ブレーキが適用されることを確実にするために、ＡＥＢを含む。ＲＣＴＷシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び／又は振動部品、に電気的に結合された、専用プロセッサ、ＤＳＰ、ＦＰＧＡ、及び／又はＡＳＩＣに結合された、１個又は複数の後ろを向いたＲＡＤＡＲセンサ１０６０を使用することができる。
【０１６７】
従来のＡＤＡＳシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のＡＤＡＳシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両１０００では、結果が矛盾する場合には、移動車１０００自体が、１次的コンピュータ又は２次的コンピュータ（たとえば、第１のコントローラ１０３６又は第２のコントローラ１０３６）からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ＡＤＡＳシステム１０３８は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び／又は２次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ＡＤＡＳシステム１０３８からの出力は、監督ＭＣＵに提供され得る。１次的コンピュータ及び２次的コンピュータからの出力が矛盾する場合、監督ＭＣＵは、安全な動作を確実にするためにその矛盾をどのように調整するかを決定する必要がある。
【０１６８】
いくつかの実例では、１次的コンピュータは、選択された結果における１次的コンピュータの信頼性を指示する、信頼性スコアを監督ＭＣＵに提供するように構成され得る。信頼性スコアが閾値を超えた場合、監督ＭＣＵは、２次的コンピュータが矛盾する又は不整合の結果を与えるかどうかにかかわらず、１次的コンピュータの指示に従い得る。信頼性スコアが閾値を満たさない場合、及び１次的及び２次的コンピュータが異なる結果を示す（たとえば、矛盾する）場合、監督ＭＣＵは、コンピュータの間で調停して適切な結果を決定することができる。
【０１６９】
監督ＭＣＵは、２次的コンピュータが誤ったアラームを提供する状態を、１次的コンピュータ及び２次的コンピュータからの出力に基づいて、判定するようにトレーニング及び構成されたニューラル・ネットワークを実行するように構成され得る。したがって、監督ＭＣＵ内のニューラル・ネットワークは、２次的コンピュータの出力が信頼され得るとき、及びそれが信頼され得ないときを学習することができる。たとえば、２次的コンピュータがＲＡＤＡＲベースのＦＣＷシステムであるとき、監督ＭＣＵ内のニューラル・ネットワークは、アラームをトリガする下水溝の鉄格子又はマンホールの蓋など、実際には危険ではない金属製の物をいつＦＣＷが識別しているかを学習することができる。同様に、２次的コンピュータがカメラベースのＬＤＷシステムであるとき、監督ＭＣＵ内のニューラル・ネットワークは、自転車に乗った人又は歩行者が存在し、車線逸脱が、実際には、最も安全な操作であるときに、ＬＤＷを無視することを学習することができる。監督ＭＣＵ上で実行中のニューラル・ネットワークを含む実施例では、監督ＭＣＵは、関連メモリを有するニューラル・ネットワークを実行するのに適したＤＬＡ又はＧＰＵのうちの少なくとも１個を含み得る。好ましい実施例において、監督ＭＣＵは、ＳｏＣ１００４の構成要素を備え得る、及び／又はＳｏＣ１００４の構成要素として含まれ得る。
【０１７０】
他の実例において、ＡＤＡＳシステム１０３８は、コンピュータ・ビジョンの従来のルールを使用するＡＤＡＳ機能を実行する２次的コンピュータを含み得る。そのようなものとして、２次的コンピュータは、古典的コンピュータ・ビジョン・ルール（ｉｆ−ｔｈｅｎ）を使用することができ、監督ＭＣＵ内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア（又はソフトウェア−ハードウェア・インターフェース）機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、１次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、２次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督ＭＣＵは、総合的結果は正しく、１次的コンピュータ上のソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
【０１７１】
いくつかの実例では、ＡＤＡＳシステム１０３８の出力は、１次的コンピュータの知覚ブロック及び／又は１次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ＡＤＡＳシステム１０３８が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、２次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
【０１７２】
移動車１０００は、インフォテインメントＳｏＣ１０３０（たとえば、移動車内のインフォテインメント・システム（ＩＶＩ：ｉｎ−ｖｅｈｉｃｌｅ  ｉｎｆｏｔａｉｎｍｅｎｔ  ｓｙｓｔｅｍ））をさらに含み得る。ＳｏＣとして図示及び記述されているが、インフォテインメント・システムは、ＳｏＣでなくてもよく、２個以上の個別の構成要素を含み得る。インフォテインメントＳｏＣ１０３０は、オーディオ（たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など）、ビデオ（たとえば、ＴＶ、映画、ストリーミングなど）、電話（たとえば、ハンズフリー通話）、ネットワーク接続（たとえば、ＬＴＥ、Ｗｉ−Ｆｉなど）、及び／又は情報サービス（たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける／閉じる、エア・フィルタ情報などの移動車関連情報）を提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントＳｏＣ１０３０は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、ＵＳＢ及びブルートゥース（登録商標）接続、カーピュータ、車内エンターテインメント、Ｗｉ−Ｆｉ、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ（ＨＵＤ：ｈｅａｄｓ−ｕｐ  ｄｉｓｐｌａｙ）、ＨＭＩディスプレイ１０３４、テレマティックス・デバイス、制御パネル（たとえば、様々な構成要素、特徴、及び／又はシステムを制御する及び／又はこれと相互に作用するための）、及び／又は他の構成要素でもよい。インフォテインメントＳｏＣ１０３０は、ＡＤＡＳシステム１０３８からの情報、計画された移動車操作などの自律運転情報、軌道、周囲環境情報（たとえば、交差点情報、移動車情報、道路情報など）、及び／又は他の情報など、移動車のユーザへの情報（たとえば、視覚的及び／又は可聴式の）を提供するためにさらに使用され得る。
【０１７３】
インフォテインメントＳｏＣ１０３０は、ＧＰＵ機能性を含み得る。インフォテインメントＳｏＣ１０３０は、バス１００２（たとえば、ＣＡＮバス、イーサネット（登録商標）など）を介して、移動車１０００の他のデバイス、システム、及び／又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのＧＰＵが、１次的コントローラ１０３６（たとえば、移動車１０００の１次的及び／又はバックアップ・コンピュータ）が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントＳｏＣ１０３０は、監督ＭＣＵに連結され得る。そのような実例では、インフォテインメントＳｏＣ１０３０は、本明細書に記載のように、移動車１０００をショーファーの安全停止モードにすることができる。
【０１７４】
移動車１０００は、計器群１０３２（たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど）をさらに含み得る。計器群１０３２は、コントローラ及び／又はスーパーコンピュータ（たとえば、個別のコントローラ又はスーパーコンピュータ）を含み得る。計器群１０３２は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ（ＳＲＳ）システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、１セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントＳｏＣ１０３０及び計器群１０３２の間で表示及び／又は共有され得る。言い換えれば、計器群１０３２は、インフォテインメントＳｏＣ１０３０の一部として含まれてもよく、逆もまた同様である。
【０１７５】
図１０Ｄは、本開示のいくつかの実施例による、図１０Ａのクラウドベースのサーバと例示的自律型車両１０００との間の通信のシステム図である。システム１０７６は、サーバ１０７８、ネットワーク１０９０、及び、移動車１０００を含む移動車を含み得る。サーバ１０７８は、複数のＧＰＵ１０８４（Ａ）〜１０８４（Ｈ）（本明細書でＧＰＵ１０８４と総称される）、ＰＣＩｅスイッチ１０８２（Ａ）〜１０８２（Ｈ）（本明細書でＰＣＩｅスイッチ１０８２と総称される）、及び／又はＣＰＵ１０８０（Ａ）〜１０８０（Ｂ）（本明細書でＣＰＵ１０８０と総称される）を含み得る。ＧＰＵ１０８４、ＣＰＵ１０８０、及びＰＣＩｅスイッチは、たとえば、ＮＶＩＤＩＡによって開発されたＮＶＬＩＮＫインターフェース１０８８及び／又はＰＣＩｅ接続１０８６などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、ＧＰＵ１０８４は、ＮＶＬＩＮＫ及び／又はＮＶＳｗｉｔｃｈ  ＳｏＣを介して接続され、ＧＰＵ１０８４及びＰＣＩｅスイッチ１０８２は、ＰＣＩｅ相互接続を介して接続される。８個のＧＰＵ１０８４、２個のＣＰＵ１０８０、及び２個のＰＣＩｅスイッチが図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ１０７８は、任意の数のＧＰＵ１０８４、ＣＰＵ１０８０、及び／又はＰＣＩｅスイッチを含み得る。たとえば、サーバ１０７８は、それぞれ、８個、１６個、３２個、及び／又はそれ以上のＧＰＵ１０８４を含み得る。
【０１７６】
サーバ１０７８は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク１０９０を介して、移動車から、受信することができる。サーバ１０７８は、ニューラル・ネットワーク１０９２、更新されたニューラル・ネットワーク１０９２、及び／又は、交通及び道路状態に関する情報を含むマップ情報１０９４をネットワーク１０９０を介して移動車に送信することができる。マップ情報１０９４の更新は、建設現場、くぼみ、迂回路、洪水、及び／又は他の障害物に関する情報など、ＨＤマップ１０２２の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク１０９２、更新されたニューラル・ネットワーク１０９２、及び／又はマップ情報１０９４は、環境において任意の数の移動車から受信されたデータにおいて表された新しいトレーニング及び／又は経験から、及び／又は（たとえば、サーバ１０７８及び／又は他のサーバを使用する）データセンタにおいて実行されたトレーニングに基づいて、生じた可能性がある。
【０１７７】
サーバ１０７８は、トレーニング・データに基づいてマシン学習モデル（たとえば、ニューラル・ネットワーク）をトレーニングするために使用され得る。トレーニング・データは、移動車によって生成され得る、及び／又は（たとえば、ゲーム・エンジンを使用して）シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる（たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合）及び／又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び／又は事前処理されない（たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合）。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、移動車によって使用され得（たとえば、ネットワーク１０９０を介して移動車に送信される）、及び／又は、マシン学習モデルは、移動車を遠隔監視するために、サーバ１０７８によって使用され得る。
【０１７８】
いくつかの実例では、サーバ１０７８は、移動車からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ１０７８は、ＮＶＩＤＩＡによって開発されたＤＧＸ及びＤＧＸステーション・マシンなど、ＧＰＵ１０８４によって電力供給される深層学習スーパーコンピュータ及び／又は専用のＡＩコンピュータを含み得る。しかしながら、一部の実例では、サーバ１０７８は、ＣＰＵ電源式データセンタのみを使用する深層学習インフラストラクチャを含み得る。
【０１７９】
サーバ１０７８の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して移動車１０００内のプロセッサ、ソフトウェア、及び／又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、移動車１０００がそのシーケンスの画像内に位置したシーケンスの画像及び／又は物体など、移動車１０００からの定期的更新を受信することができる（たとえば、コンピュータ・ビジョン及び／又は他のマシン学習物体分類技法を介して）。深層学習インフラストラクチャは、物体を識別し、移動車１０００によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、移動車１０００内のＡＩは正常に機能していないという結論を下した場合、サーバ１０７８は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように移動車１０００のフェイルセーフ・コンピュータに命じる移動車１０００への信号を送信することができる。
【０１８０】
推論のために、サーバ１０７８は、ＧＰＵ１０８４及び１個又は複数のプログラマブル推論加速装置（たとえば、ＮＶＩＤＩＡのＴｅｎｓｏｒＲＴ）を含み得る。ＧＰＵ電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、ＣＰＵ、ＦＰＧＡ、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
【０１８１】
例示的計算デバイス
図１１は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス１１００の一実例のブロック図である。計算デバイス１１００は、以下のデバイスを間接的に又は直接的につなぐバス１１０２を含み得る：メモリ１１０４、１個又は複数の中央処理装置（ＣＰＵ）１１０６、１個又は複数のグラフィック処理ユニット（ＧＰＵ）１１０８、通信インターフェース１１１０、入力／出力（Ｉ／Ｏ）ポート１１１２、入力／出力構成要素１１１４、電力供給装置１１１６、及び１個又は複数の提示構成要素１１１８（たとえば、ディスプレイ）。
【０１８２】
図１１の様々なブロックは、線でバス１１０２を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素１１１８は、Ｉ／Ｏ構成要素１１１４と考えられ得る（たとえば、ディスプレイがタッチ・スクリーンである場合）。別の実例として、ＣＰＵ１１０６及び／又はＧＰＵ１１０８はメモリを含み得る（たとえば、メモリ１１０４は、ＧＰＵ１１０８、ＣＰＵ１１０６、及び／又は他の構成要素のメモリに加えた記憶デバイスを表し得る）。言い換えれば、図１１の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット（ＥＣＵ：ｅｌｅｃｔｒｏｎｉｃ  ｃｏｎｔｒｏｌ  ｕｎｉｔ）」、「仮想現実システム」、及び／又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図１１の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
【０１８３】
バス１１０２は、アドレス・バス、データ・バス、制御バス、又はその組合せなど、１個又は複数のバスを表し得る。バス１１０２は、ＩＳＡ（ｉｎｄｕｓｔｒｉａｌ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（ｅｘｔｅｎｄｅｄ  ｉｎｄｕｓｔｒｉａｌ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＶＥＳＡ（ｖｉｄｅｏ  ｅｌｅｃｔｒｏｎｉｃｓ  ｓｔａｎｄａｒｄ  ａｓｓｏｃｉａｔｉｏｎ）バス、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒ  ｃｏｎｎｅｃｔ）バス、ＰＣＩｅ（ＰＣＩ  ｅｘｐｒｅｓｓ）バス、及び／又は別のタイプのバスなど、１個又は複数のバス・タイプを含み得る。
【０１８４】
メモリ１１０４は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス１１００によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
【０１８５】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び／又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び／又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ１１０４は、オペレーティング・システムなど、（たとえば、プログラム及び／又はプログラム要素を表す）コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用し得る及び計算デバイス１１００によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
【０１８６】
通信媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び／又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの１個又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、通信媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、ＲＦ、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【０１８７】
ＣＰＵ１１０６は、コンピュータ可読命令を実行して計算デバイス１１００の１個又は複数の構成要素を制御して本明細書に記載の方法及び／又はプロセスのうちの１個又は複数を実行するように構成され得る。ＣＰＵ１１０６は、多数のソフトウェア・スレッドを同時に処理する能力を有する１個又は複数の（たとえば、１個、２個、４個、８個、２８個、７２個などの）コアをそれぞれ含み得る。ＣＰＵ１１０６は、任意のタイプのプロセッサを含み得、実装された計算デバイス１１００のタイプに応じて、異なるタイプのプロセッサを含み得る（たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ）。たとえば、計算デバイス１１００のタイプに応じて、プロセッサは、縮小命令セット計算（ＲＩＳＣ：Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｉｎｇ）を使用して実装されたＡＲＭプロセッサ、又は複合命令セット計算（ＣＩＳＣ：Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｉｎｇ）を使用して実装されたｘ８６プロセッサでもよい。計算デバイス１１００は、計算コプロセッサなど、１個又は複数のマイクロプロセッサ又は補助コプロセッサ内の１個又は複数のＣＰＵ１１０６を含み得る。
【０１８８】
ＧＰＵ１１０８は、グラフィックス（たとえば、３Ｄグラフィックス）をレンダリングするために、計算デバイス１１００によって使用され得る。ＧＰＵ１１０８は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。ＧＰＵ１１０８は、レンダリング・コマンド（たとえば、ホスト・インターフェースを介して受信されたＣＰＵ１１０６からのレンダリング・コマンド）に応答して、出力画像のための画素データを生成することができる。ＧＰＵ１１０８は、画素データを記憶するための、ディスプレイ・メモリなどの、グラフィックス・メモリを含み得る。ディスプレイ・メモリは、メモリ１１０４の一部として含まれ得る。ＧＰＵ７０８は、（たとえば、リンクを介して）並行して動作する２個以上のＧＰＵを含み得る。結合されると、各ＧＰＵ１１０８は、出力画像の異なる部分の又は異なる出力画像の画素データを（たとえば、第１のＧＰＵは第１の画像のために及び第２のＧＰＵは第２の画像のために）生成し得る。各ＧＰＵは、独自のメモリを含み得、他のＧＰＵとメモリを共用し得る。
【０１８９】
計算デバイス１１００がＧＰＵ１１０８を含まない実例において、ＣＰＵ１１０６は、グラフィックスをレンダリングするために使用され得る。
【０１９０】
通信インターフェース１１１０は、ワイヤード及び／又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス７００が他の計算デバイスと通信することを可能にする、１個又は複数のレシーバ、トランスミッタ、及び／又はトランシーバを含み得る。通信インターフェース１１１０は、ワイヤレス・ネットワーク（たとえば、Ｗｉ−Ｆｉ（登録商標）、Ｚ−Ｗａｖｅ、ブルートゥース（登録商標）、ブルートゥース（登録商標）ＬＥ、ＺｉｇＢｅｅ（登録商標）など）、ワイヤード・ネットワーク（たとえば、イーサネット（登録商標）介して通信すること）、低電力ワイド・エリア・ネットワーク（たとえば、ＬｏＲａＷＡＮ、ＳｉｇＦｏｘなど）、及び／又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
【０１９１】
Ｉ／Ｏポート１１１２は、そのうちのいくつかは計算デバイス１１００に内蔵（たとえば、統合）され得る、Ｉ／Ｏ構成要素１１１４、提示構成要素１１１８、及び／又は他の構成要素を含む、他のデバイスに計算デバイス１１００が論理的に連結されることを可能にすることができる。例示的なＩ／Ｏ構成要素１１１４は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。Ｉ／Ｏ構成要素１１１４は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース（ＮＵＩ：ｎａｔｕｒａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。ＮＵＩは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス１１００のディスプレイに関連するタッチ認識（さらに詳しく後述するような）の任意の組合せを実装し得る。計算デバイス１１００は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、ＲＧＢカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス１１００は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る（たとえば、慣性測定ユニット（ＩＭＵ：ｉｎｅｒｔｉａ  ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ）の一部として）。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス１１００によって使用され得る。
【０１９２】
電力供給装置１１１６は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置１１１６は、計算デバイス１１００の構成要素が動作することを可能にするために計算デバイス１１００に電力を提供することができる。
【０１９３】
提示構成要素１１１８は、ディスプレイ（たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置（ＨＵＤ）、他のディスプレイタイプ、又はその組合せ）、スピーカ、及び／又は他の提示構成要素を含み得る。提示構成要素１１１８は、他の構成要素（たとえば、ＧＰＵ１１０８、ＣＰＵ１１０６など）からデータを受信し、データを（たとえば、画像、ビデオ、音響などとして）出力することができる。
【０１９４】
本開示は、コンピュータ又は、携帯情報端末若しくは他のハンドヘルド・デバイスなどの、他のマシンによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又はマシン使用可能命令との一般的関連において説明されることがある。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造体などを含むプログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、家電製品、汎用コンピュータ、より特殊な計算デバイスなどを含む、様々な構成で実施され得る。本開示はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型コンピューティング環境において実施され得る。
【０１９５】
本明細書では、２個以上の要素に関する「及び／又は」の記述は、１個の要素のみ、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素Ａ、要素Ｂ、及び／又は要素Ｃ」は、要素Ａのみ、要素Ｂのみ、要素Ｃのみ、要素Ａ及び要素Ｂ、要素Ａ及び要素Ｃ、要素Ｂ及び要素Ｃ、或いは、要素Ａ、Ｂ、及びＣを含み得る。加えて、「要素Ａ又は要素Ｂのうちの少なくとも１個」は、要素Ａの少なくとも１個、要素Ｂの少なくとも１個、或いは、要素Ａの少なくとも１個及び要素Ｂの少なくとも１個を含み得る。さらに、「要素Ａ及び要素Ｂのうちの少なくとも１個」は、要素Ａのうちの少なくとも１個、要素Ｂのうちの少なくとも１個、或いは、要素Ａのうちの少なくとも１個及び要素Ｂのうちの少なくとも１個を含み得る。
【０１９６】
本開示の主題は、法定の要件を満たすために特異性を有して記述されている。しかしながら、その記述自体が本開示の範囲を制限することは意図されていない。そうではなくて、本発明者は、請求されている主題が、他の現在の又は未来の技術と併せて、異なるステップ又は本文書に記載されたものと類似のステップの組合せを含むように、他の形で実施され得ることを意図している。さらに、「ステップ」及び／又は「ブロック」という用語は、使用される方法の異なる要素を含意するように本明細書で使用され得るが、これらの用語は、個別のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて本明細書で開示される様々なステップの間に何らかの特定の順番を暗示するものとして解釈されるべきではない。
【図１Ａ】
2021532512.tif 000004
【図１Ｂ】
2021532512.tif 000005
【図２Ａ】
2021532512.tif 000006
【図２Ｂ】
2021532512.tif 000007
【図２Ｃ】
2021532512.tif 000008
【図３】
2021532512.tif 000009
【図４】
2021532512.tif 000010
【図５】
2021532512.tif 000011
【図６】
2021532512.tif 000012
【図７Ａ】
2021532512.tif 000013
【図７Ｂ】
2021532512.tif 000014
【図８】
2021532512.tif 000015
【図９】
2021532512.tif 000016
【図１０Ａ】
2021532512.tif 000017
【図１０Ｂ】
2021532512.tif 000018
【図１０Ｃ】
2021532512.tif 000019
【図１０Ｄ】
2021532512.tif 000020
【図１１】
2021532512.tif 000021
【国際調査報告】
2021532512.tif 000022
2021532512.tif 000023
2021532512.tif 000024