(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023043825
(43)【公開日】2023-03-29
(54)【発明の名称】転移学習を使用して物体検出モデルを訓練すること
(51)【国際特許分類】
G06T 7/00 20170101AFI20230322BHJP
G06V 10/82 20220101ALI20230322BHJP
G06N 20/00 20190101ALI20230322BHJP
G06N 3/02 20060101ALI20230322BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N20/00
G06N3/02
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022083510
(22)【出願日】2022-05-23
(31)【優先権主張番号】17/477,370
(32)【優先日】2021-09-16
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ZIGBEE
3.SIGFOX
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ユ、ワン
(72)【発明者】
【氏名】ファルジン、アグダシ
(72)【発明者】
【氏名】パルタサラシー、スリラム
(72)【発明者】
【氏名】スバーシュリー ラドクリシュナン
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA04
5L096FA02
5L096FA16
5L096FA18
5L096HA11
5L096JA22
5L096KA04
(57)【要約】 (修正有)
【課題】転移学習を使用して物体検出モデルを訓練する。
【解決手段】機械学習モデルを訓練し、マスク・ヘッドを除去するように訓練された機械学習モデルを更新する方法600は、物体を示す画像を含む訓練入力を生成し、訓練入力のための、示された物体に関連するバウンディング・ボックス、マスク・データ及びクラスの指示を含む、ターゲット出力を生成することを含む機械学習モデルのための訓練データを生成するステップ610と、生成された訓練入力を含む訓練入力のセット及び生成されたターゲット出力を含むターゲット出力のセットに関して、機械学習モデルを訓練するための訓練データを提供するステップ616と、所与の入力画像についてのマスク・データを予測することに対応する、訓練された機械学習モデルのヘッドを識別するステップ618と、識別されたヘッドを除去するように訓練された機械学習モデルを更新するステップ620と、を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
複数のクラスの複数の物体を含む画像の第1のセットを識別するステップと、
所与の入力画像について、前記所与の入力画像に示された前記複数のクラスのうちの少なくとも1つの1つ又は複数の物体の存在を検出し、前記検出された物体のうちの1つ又は複数に関連する少なくともマスク・データを予測するように訓練された第1の機械学習モデルに入力として前記画像の第1のセットを提供するステップと、
前記第1の機械学習モデルの1つ又は複数の第1の出力から、前記画像の第1のセットの各々に関連する物体データを決定するステップであって、前記画像の第1のセットの各それぞれの画像についての前記物体データが、前記それぞれの画像中で検出された各物体に関連するマスク・データを含む、ステップと、
画像の第2のセット中のターゲット・クラスの物体を検出するように第2の機械学習モデルを訓練するステップであって、前記第2の機械学習モデルが、前記画像の第1のセットの少なくとも1つのサブセットと、前記画像の第1のセットの前記少なくとも1つのサブセットについてのターゲット出力とを使用して訓練され、前記ターゲット出力が、前記画像の第1のセットの前記少なくとも1つのサブセット中で検出された各物体に関連する前記マスク・データと、前記画像の第1のセットの前記少なくとも1つのサブセット中で検出された各物体に関連するクラスが前記ターゲット・クラスに対応するかどうかの指示とを含む、ステップと
を含む、方法。
【請求項2】
前記第1の機械学習モデルが、前記1つ又は複数の検出された物体の各々について、それぞれの検出された物体に関連する前記複数のクラスのうちの特定のクラスを予測するようにさらに訓練される、請求項1に記載の方法。
【請求項3】
前記ターゲット出力を生成するステップをさらに含み、前記ターゲット出力を生成するステップは、
前記それぞれの検出された物体に関連する前記特定のクラスが前記ターゲット・クラスに対応するかどうかを決定するステップ
を含む、請求項2に記載の方法。
【請求項4】
前記画像に関連する1つ又は複数のバウンディング・ボックスの指示を使用して、前記画像に示された前記それぞれの物体に関連するグランド・トゥルース・データを識別するステップ
をさらに含む、請求項1に記載の方法。
【請求項5】
前記1つ又は複数のバウンディング・ボックスのうちの少なくとも1つのバウンディング・ボックスが、プラットフォームの容認されたバウンディング・ボックス当局エンティティ又はユーザのうちの少なくとも1つによって提供された、請求項4に記載の方法。
【請求項6】
前記第2の機械学習モデルが、マルチ・ヘッド機械学習モデルであり、前記方法が、
前記画像の第1のセットの前記少なくとも1つのサブセットと前記ターゲット出力とを使用して前記第2の機械学習モデルを訓練するときに、所与の入力画像についてのマスク・データを予測することに対応する、前記第2の機械学習モデルの1つ又は複数のヘッドを識別するステップと、
前記1つ又は複数の識別されたヘッドを除去するように前記第2の機械学習モデルを更新するステップと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記第2の機械学習モデルに入力として画像の第3のセットを提供するステップと、
前記第2の機械学習モデルの1つ又は複数の第2の出力を取得するステップと、
前記1つ又は複数の第2の出力に基づいて、前記画像の第3のセットの各々に関連する追加の物体データを決定するステップであって、前記画像の第2のセットの各それぞれの画像についての前記追加の物体データが、前記それぞれの画像中で検出された物体を含む前記それぞれの画像の領域の指示と、前記検出された物体に関連するクラスとを含む、ステップと
をさらに含む、請求項6に記載の方法。
【請求項8】
前記更新された第2の機械学習モデルを、ネットワークを介してエッジ・デバイス又はエンドポイント・デバイスのうちの少なくとも1つに送信するステップ
をさらに含む、請求項6に記載の方法。
【請求項9】
メモリ・デバイスと、
前記メモリ・デバイスに結合された処理デバイスと
を備えるシステムであって、前記処理デバイスが、
機械学習モデルのための訓練データを生成するステップであって、前記訓練データを生成するステップが、
物体を示す画像を含む訓練入力を生成するステップ、並びに
前記訓練入力のためのターゲット出力を生成するステップであって、前記ターゲット出力が、前記示された物体に関連するバウンディング・ボックス、前記示された物体に関連するマスク・データ、及び前記示された物体に関連するクラスの指示を含む、ステップ
を含む、ステップと、
(i)前記生成された訓練入力を含む訓練入力のセット、及び(ii)前記生成されたターゲット出力を含むターゲット出力のセットに関して、前記機械学習モデルを訓練するための前記訓練データを提供するステップと、
所与の入力画像についてのマスク・データを予測することに対応する、前記訓練された機械学習モデルの1つ又は複数のヘッドを識別するステップと、
前記1つ又は複数の識別されたヘッドを除去するように、前記訓練された機械学習モデルを更新するステップと
を含む動作を実施する、システム。
【請求項10】
前記動作は、
前記更新された訓練された機械学習モデルに入力として画像のセットを提供するステップと、
前記更新された訓練された機械学習モデルの1つ又は複数の出力を取得するステップと、
前記1つ又は複数の出力から、前記画像のセットの各々に関連する物体データを決定するステップであって、画像の第2のセットの各それぞれの画像についての前記物体データが、前記それぞれの画像中で検出された物体を含む前記それぞれの画像の領域の指示、及び前記検出された物体に関連するクラスを含む、ステップと
をさらに含む、請求項9に記載のシステム。
【請求項11】
前記動作が、
エッジ・デバイス又はエンドポイント・デバイスのうちの少なくとも1つを使用して、前記更新された訓練された機械学習モデルを導入するステップ
をさらに含む、請求項9に記載のシステム。
【請求項12】
前記訓練入力のための前記ターゲット出力を生成するステップは、
前記物体を示す前記画像を追加の機械学習モデルに入力として提供するステップであって、前記追加の機械学習モデルが、所与の入力画像について、前記所与の入力画像に示された1つ又は複数の物体の存在を検出し、前記検出された物体のうちの1つ又は複数に関連する少なくともマスク・データを予測するように訓練される、ステップと、
前記追加の機械学習モデルの1つ又は複数の出力から、前記画像に関連する物体データを決定するステップであって、前記画像についての前記物体データが、前記示された物体に関連するマスク・データを含む、ステップと
を含む、請求項9に記載のシステム。
【請求項13】
前記追加の機械学習モデルが、前記1つ又は複数の検出された物体の各々について、前記それぞれの検出された物体に関連するクラスを予測するようにさらに訓練され、前記画像についての物体データが、前記示された物体に関連する前記クラスの前記指示をさらに含む、請求項12に記載のシステム。
【請求項14】
前記訓練入力のための前記ターゲット出力を生成するステップは、
前記画像に関連するグランド・トゥルース・データを取得するステップであって、前記グランド・トゥルース・データが、前記示された物体に関連する前記バウンディング・ボックスを含む、ステップ
を含む、請求項9に記載のシステム。
【請求項15】
前記グランド・トゥルース・データが、画像のセットに示された物体に関連する1つ又は複数のバウンディング・ボックスの指示を含むデータベースから取得され、前記画像が、前記画像のセット中に含まれ、前記1つ又は複数のバウンディング・ボックスが、プラットフォームの容認されたバウンディング・ボックス当局エンティティ又はユーザによって提供される、請求項14に記載のシステム。
【請求項16】
命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令が、処理デバイスによって実行される場合、前記処理デバイスに、
第1の機械学習モデルに入力として現在の画像のセットを提供するステップであって、前記第1の機械学習モデルが、(i)訓練画像のセットを含む訓練入力と、(ii)前記訓練入力のためのターゲット出力とを使用して画像の所与のセット中のターゲット・クラスの物体を検出するように訓練され、前記ターゲット出力が、前記訓練画像のセットの各それぞれの訓練画像について、前記それぞれの訓練画像に示された各物体に関連するグランド・トゥルース・データであって、前記グランド・トゥルース・データが、それぞれの物体を含む前記それぞれの訓練画像の領域を示す、グランド・トゥルース・データと、前記それぞれの訓練画像に示された各物体に関連するマスク・データであって、前記マスク・データが、第2の機械学習モデルの1つ又は複数の出力に基づいて取得される、マスク・データと、前記それぞれの訓練画像に示された各物体に関連するクラスが前記ターゲット・クラスに対応するかどうかの指示とを含む、ステップと、
前記第1の機械学習モデルの1つ又は複数の出力を取得するステップと、
前記第1の機械学習モデルの前記1つ又は複数の出力に基づいて、前記現在の画像のセットの各々に関連する物体データを決定するステップであって、前記現在の画像のセットの各それぞれの現在の画像についての前記物体データが、前記それぞれの現在の画像中で検出された物体を含む前記それぞれの現在の画像の領域の指示と、前記検出された物体が前記ターゲット・クラスに対応するかどうかの指示とを含む、ステップと
を含む動作を実施させる、非一時的コンピュータ可読記憶媒体。
【請求項17】
前記物体データが、前記それぞれの現在の画像中で検出された前記物体に関連するマスク・データをさらに含む、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記現在の画像のセットの各々に関連する物体データを決定するステップは、
前記第1の機械学習モデルの前記1つ又は複数の出力から物体データの1つ又は複数のセットを抽出するステップであって、前記物体データの1つ又は複数のセットの各々は、前記物体データが前記それぞれの現在の画像中で検出された物体に対応する、信頼性のレベルに関連する、ステップと、
物体データのそれぞれのセットに関連する前記信頼性のレベルが信頼性基準のレベルを満足するかどうかを決定するステップと
を含む、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記第2の機械学習モデルに入力として前記訓練画像のセットを提供するステップであって、前記第2の機械学習モデルが、所与の入力画像について、前記所与の入力画像に示された複数のクラスのうちの少なくとも1つの1つ又は複数の物体を検出し、前記1つ又は複数の検出された物体の各々について、前記それぞれの検出された物体に関連する少なくともマスク・データを予測するように訓練される、ステップと、
前記第2の機械学習モデルの1つ又は複数の出力から、前記訓練画像のセットの各々に関連する物体データを決定するステップであって、前記訓練画像のセットの各それぞれの訓練画像についての前記物体データが、前記それぞれの画像中で検出された各物体に関連するマスク・データを含む、ステップと
によって前記第1の機械学習モデルを訓練するステップをさらに含む、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記グランド・トゥルース・データが、前記訓練画像のセットに関連する1つ又は複数のバウンディング・ボックスの指示を含むデータベースを使用して取得され、前記1つ又は複数のバウンディング・ボックスの各々が、プラットフォームの容認されたバウンディング・ボックス当局エンティティ又はユーザのうちの少なくとも1つによって提供された、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
少なくとも1つの実施例は、転移学習(transfer learning)を使用して物体検出モデルを訓練するための動作を実施し、容易にするために使用される処理リソースに関する。たとえば、少なくとも1つの実施例は、本明細書で説明される様々な新規の技法に従って、転移学習を使用して、1つ又は複数の画像に示された、ターゲット・クラスの物体を検出するための物体検出モデルを訓練するための1つ又は複数のコンピューティング・システムを提供し、可能にするために使用されるプロセッサ又はコンピューティング・システムに関する。
【背景技術】
【0002】
画像内に示された物体の識別など、画像処理に、機械学習がしばしば適用される。物体識別は、医療撮像、科学研究、自律運転システム、ロボット自動化、セキュリティ・アプリケーション、法執行活動、及び多くの他の設定において使用され得る。機械学習は、訓練画像及び他の訓練データを使用して、物体検出を容易にし得る画像中のパターンを識別するようにコンピューティング・システムを訓練することを伴う。訓練は、教師あり又は教師なしであり得る。機械学習モデルは、判定(decision)ツリー・アルゴリズム(又は他のルールベース・アルゴリズム)、人工ニューラル・ネットワークなどの様々な算出アルゴリズムを使用することができる。推論段階中に、新しい画像が訓練された機械学習モデルに入力され、訓練中に識別されたパターン及び特徴を使用して、様々な関心ターゲット物体(たとえば、道路の画像中の車両)が識別され得る。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】“Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles” (e.g., Standard No. J3016-201806, published on June 15, 2018, Standard No. J3016-201609, published on September 30, 2016, and previous and future versions of this standard)
【発明の概要】
【課題を解決するための手段】
【0004】
本開示による様々な実施例が、図面を参照しながら説明される。
【図面の簡単な説明】
【0005】
【
図1】少なくとも1つの実施例による、例示的なシステム・アーキテクチャのブロック図である。
【
図2】少なくとも1つの実施例による、例示的な訓練データ生成器及び例示的な訓練エンジンのブロック図である。
【
図3】少なくとも1つの実施例による、例示的な物体検出エンジンのブロック図である。
【
図4A】少なくとも1つの実施例による、例示的な訓練された物体検出モデルを示す図である。
【
図4B】少なくとも1つの実施例による、マスク・ヘッドを除去するように更新された例示的な訓練された物体検出モデルを示す図である。
【
図5A】少なくとも1つの実施例による、ターゲット・クラスの物体を検出するように機械学習モデルを訓練する例示的な方法の流れ図である。
【
図5B】少なくとも1つの実施例による、ターゲット・クラスの物体を検出するように訓練された機械学習モデルを使用する例示的な方法の流れ図である。
【
図6】少なくとも1つの実施例による、機械学習モデルを訓練し、マスク・ヘッドを除去するように、訓練された機械学習モデルを更新する、例示的な方法の流れ図である。
【
図7A】少なくとも1つの実施例による、推論及び/又は訓練論理(training logic)を示す図である。
【
図7B】少なくとも1つの実施例による、推論及び/又は訓練論理を示す図である。
【
図8】少なくとも1つの実施例による、例示的なデータ・センタ・システムを示す図である。
【
図9】少なくとも1つの実施例による、コンピュータ・システムを示す図である。
【
図10】少なくとも1つの実施例による、コンピュータ・システムを示す図である。
【
図11】1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図12】1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図13】少なくとも1つの実施例による、先進コンピューティング・パイプラインのための例示的なデータ・フロー図である。
【
図14】少なくとも1つの実施例による、先進コンピューティング・パイプラインにおいて機械学習モデルを訓練し、適応させ、インスタンス化し、導入するための例示的なシステムのためのシステム図である。
【
図15A】少なくとも1つの実施例による、機械学習モデルを訓練するためのプロセスのためのデータ・フロー図である。
【
図15B】少なくとも1つの実施例による、事前訓練されたアノテーション・モデルを用いてアノテーション・ツールを拡張するためのクライアントサーバ・アーキテクチャを示す図である。
【
図16A】少なくとも1つの実施例による、自律車両の一実例を示す図である。
【
図16B】少なくとも1つの実施例による、
図16Aの自律車両についてのカメラ・ロケーション及び視野の一実例を示す図である。
【
図16C】少なくとも1つの実施例による、
図16Aの自律車両のための例示的なシステム・アーキテクチャを示す図である。
【
図16D】少なくとも1つの実施例による、(1つ又は複数の)クラウド・ベースのサーバと
図16Aの自律車両との間の通信のためのシステムを示す図である。
【発明を実施するための形態】
【0006】
様々な環境を示す画像中に含まれる物体を正確に検出し、分類することは、難しいタスクである。所与の入力画像中に含まれる物体を検出するように訓練された機械学習モデルに関する進歩がなされてきた。しかしながら、機械学習モデルによって提供される物体検出及び分類の精度は、モデルを訓練するために使用されるデータに依存する。一実例では、スマート・サーベイランス・システムが、カメラ(たとえば、サーベイランス・カメラ、自律車両のためのカメラなど)によってキャプチャされた画像中のターゲット・クラス(たとえば、「人々」又は「人」クラス)の物体を検出するために機械学習モデルを使用することができる。所与の入力画像に示された物体を検出し、分類することに加えて、機械学習モデルは、検出された物体に関連する1つ又は複数の特性を決定するように訓練され得る。前の実例によれば、ターゲット・クラスの物体を検出するためにスマート・サーベイランス・システムによって使用される機械学習モデルは、(たとえば、所与の入力画像に示された他の物体に対する)所与の入力画像中の検出された物体の位置を予測するようにも訓練され得る。
【0007】
高い度合いの精度(たとえば、95%又はそれ以上)でターゲット・クラスの物体を検出するようにモデルを訓練するために、多数(たとえば、数千、又はいくつかの事例では数百万)の(本明細書では訓練画像と呼ばれる)画像に基づいて、訓練データが生成され得る。いくつかのシステムでは、(本明細書では訓練データと呼ばれる)モデルを訓練するために使用されるデータは、物体を含む各訓練画像の領域(たとえば、バウンディング・ボックス)の指示と、その領域中の物体がターゲット・クラスに対応するかどうかの指示と、物体の位置(たとえば、姿勢、配置、又は配向など)又は形状を示す追加のデータ(たとえば、マスク・データ)とを含むことができる。ターゲット・クラスの物体を検出し、分類するようにモデルを訓練するために使用されるのに好適であるかなりの数の画像の収集は、かなりの量の時間(たとえば、数か月、又はいくつかの事例では数年)を要することがある。さらに、各画像についてのラベリングされたデータ(たとえば、物体を含む各画像の領域、物体に関連するクラス、及び物体に関連するマスク・データ)を正確に決定することは、さらなる量の時間を要することがある。いくつかのシステムでは、訓練画像についてのラベリングされたデータを正確に決定し、提供するために、非常に信用できるエンティティのみに依拠する。たとえば、いくつかのシステムでは、各訓練画像に示された物体についての領域、クラス、及び追加のデータの指示を提供するために、人間に依拠する。しかしながら、そのようなシステムでは、各訓練画像についてのラベリングされたデータを取得することは、ラベリングされたデータを提供する非常に信用できるエンティティが、数百万ではないにしても数千の画像を検討し、各画像についてのラベリングされたデータを決定し、指定しなければならないので、過度に費用がかかることがあり、かなりの量の時間を要することがある。
【0008】
いくつかの事例では、ラベリングされたデータは、より少数の訓練画像(たとえば、数十又は数百)に基づいて、及び/又は非常に信用できるエンティティでないエンティティによって行われた決定に基づいて、生成され得る。そのようなシステムでは、機械学習モデルは、最初に、低い度合いの精度(たとえば、95%未満)で、所与の入力画像中に含まれる物体を検出し、分類するように訓練され得る。導入中に、モデルは、モデルの1つ又は複数の出力(たとえば、検出された物体を含む所与の入力画像の領域、及び/又は所与の入力画像中の検出された物体について決定されたクラスなど)に基づいて決定されたデータについて提供されたフィードバックに基づいて再訓練され得る。最終的に、モデルは、高い度合いの精度で物体を検出し、分類するために、導入されながら、再訓練され得る。しかしながら、高い度合いの精度で物体を検出し、分類するようにモデルを再訓練することは、いくつかの事例では、モデルを訓練するために時間及びコンピューティング・リソースが消費され、干渉フェーズ中にモデルを再訓練するために追加の時間及びリソースが消費されるので、一層大量の時間及びコンピューティング・リソースを要することがある。
【0009】
本開示の実施例は、所与の入力画像においてターゲット・クラスに関連する物体を検出するように物体検出モデルを訓練するために転移学習技法を提供することによって、上記及び他の欠陥に対処する。(教師モデルとも呼ばれる)第1の機械学習モデルが、所与の入力画像に示された1つ又は複数の物体を検出するように(たとえば、訓練データ生成器及び/又は訓練エンジンによって)訓練され得る。所与の入力画像に示された物体は、いくつかの実施例では、複数(たとえば、数十、数百など)の異なるクラスのうちの少なくとも1つに対応し得る。教師モデルは、1つ又は複数の画像を含む訓練入力と、画像のセットの各々に示された各物体に関連するデータなどのラベリングされたデータを含むターゲット出力とを含み得る第1の訓練データを使用して、訓練され得る。いくつかの実施例では、各物体に関連するデータは、物体を含む1つ又は複数の画像の領域の指示、物体に関連するクラス(すなわち、複数の異なるクラスのうちのクラス)の指示、及び/又は物体に関連するマスク・データを含み得る。マスク・データは、画像のための1つ又は複数のピクセル(又はピクセルのグループ)がある物体に対応するかどうかを示すデータ(たとえば、2次元(2D:two-dimensional)ビット・アレイ)を指す。いくつかの実施例では、画像、及び画像に示された物体に関連するデータは、物体検出機械学習モデルを訓練するために使用され得る多数の異なる画像及び物体データを含む、公開されているリポジトリ又はデータベースから取得され得る。教師モデルは、第1の訓練データを使用して、入力画像の所与のセットに示された1つ又は複数の物体を検出することと、各検出された物体について、それぞれの検出された物体に関連する少なくともマスク・データを予測することとを行うように訓練され得る。いくつかの追加の実施例では、教師モデルは、示された物体を含む、入力画像の所与のセットのうちの画像中の領域(たとえば、バウンディング・ボックス)、及び/又は検出された物体に対応するクラス(すなわち、複数の異なるクラスのうちのクラス)をさらに予測するように訓練され得る。
【0010】
教師モデルが第1の訓練データを使用して訓練されると、訓練された教師モデルは、所与の入力画像に示されたターゲット・クラスの物体を検出するように(学生モデルと呼ばれる)第2の機械学習モデルを訓練するための第2の訓練データを生成するために使用され得る。画像のセットが、教師モデルに入力として提供され得る。いくつかの実施例では、学生モデルを訓練するための第2の訓練データを生成するために使用されるべき、画像のセットの各々が、(たとえば、ドメイン固有又は組織固有リポジトリ又はデータベースから)選択され得る。教師モデルに入力として提供された画像のセットの各々中で検出された物体に関連する物体データは、教師モデルの1つ又は複数の取得された出力に基づいて決定され得る。いくつかの実施例では、物体データは、各検出された物体に関連するマスク・データを含み得る。いくつかの追加の実施例では、物体データは、各検出された物体について、検出された物体を含む画像領域を示すデータ、及び/又は検出された物体に関連するクラスの指示をさらに含み得る。
【0011】
物体のターゲット・クラスに関連する学生モデルを訓練するために、教師モデルの1つ又は複数の出力を含む第2の訓練データが使用され得る。特に、いくつかの実施例では、第2の訓練データは、画像のセットを含む訓練入力と、画像のセット中で検出された各物体に関連するマスク・データを含むターゲット出力とを含み得る。訓練データ生成器は、いくつかの実施例では、教師モデルの取得された出力を使用して、各物体に関連するマスク・データを取得し得る。第2の訓練データのターゲット出力は、画像のセット中で検出された各物体に関連するクラスがターゲット・クラスに対応するかどうかの指示をも含み得る。たとえば、上記で説明されたように、教師モデルの1つ又は複数の出力は、第2の訓練データ中に含まれる所与の入力画像中で検出された物体に関連するクラスの指示を含み得る。いくつかの実施例では、訓練データ生成器は、教師モデルの取得された出力に基づいて、各検出された物体に関連するクラスがターゲット・クラスに対応するかどうかを決定し得る。第2の訓練データのターゲット出力は、画像のセット中で検出された各物体に関連するグランド・トゥルース・データをさらに含み得る。グランド・トゥルース・データは、それぞれの検出された物体を含む画像の領域(たとえば、バウンディング・ボックス)を示し得る。いくつかの実施例では、訓練データ生成器は、(たとえば、より高い精度のために、教師モデルによって提供されるバウンディング・ボックス・データの代わりに使用するために)画像のセットのうちの画像に関連する1つ又は複数のバウンディング・ボックスの指示を含むデータベースからのグランド・トゥルース・データを取得し得る。いくつかの実施例では、データベースは、画像のセットを含むドメイン固有又は組織固有データベースであり得る。画像に関連するバウンディング・ボックスの各々が、コンピューティング・プラットフォームの容認されたバウンディング・ボックス当局エンティティ又はユーザによって提供され得る。
【0012】
第2の訓練データは、所与の入力画像について、所与の入力画像中で検出された物体に関連するバウンディング・ボックスと、所与の入力画像中で検出された物体に関連するマスク・データとを予測するように学生モデルを訓練するために使用され得る。学生モデルは、所与の入力画像中で検出された物体に関連するクラスがターゲット・クラスに対応するかどうかを予測するようにも訓練され得る。上記で説明されたように、教師モデルは、所与の入力画像中で検出された物体についての複数のクラスを予測するように訓練され得る。学生モデルは、複数の物体クラスではなく物体の特定のクラス(すなわち、ターゲット・クラス)を予測するように訓練されるので、学生モデルは、教師モデルよりも正確な予測を提供し得る。
【0013】
いくつかの事例では、訓練された学生モデルは、マルチ・ヘッド機械学習モデルであり得る。たとえば、訓練された学生モデルは、所与の画像中で検出された物体に関連するバウンディング・ボックスを予測するための第1のヘッドと、検出された物体に関連するクラスを予測するための第2のヘッドと、検出された物体に関連するマスク・データを予測するための第3のヘッドとを含み得る。(たとえば、コンピューティング・デバイスの、クラウド・コンピューティング・プラットフォームなどの)物体検出エンジンが、いくつかの事例では、検出された物体に関連するマスク・データを予測することに対応する学生モデルの(マスク・ヘッドと呼ばれる)ヘッドを識別し得、識別されたヘッドを除去するように学生モデルを更新することができる。マスク・ヘッドが学生モデルから除去された後に、更新された学生モデルは、所与の入力画像中で検出された物体に関連するバウンディング・ボックス及びクラスを予測するために使用され得る。学生モデル中にマスク・ヘッドを最初に含めることによって、更新された学生モデルの物体検出及び分類予測が、提供された訓練画像に示された物体に関連するマスク・データを含まない訓練データを使用して訓練された物体検出モデルよりも正確であり得る。さらに、学生モデルに関連する推論スピードが、マスク・ヘッドが学生モデルから除去された後にかなり(たとえば、10~20%)改善され得、学生モードに関連するモデル・サイズがかなり低減され得る。したがって、いくつかの事例では、更新された学生モデルは、物体検出のために使用されるためにネットワークを介してエッジ・デバイス及び/又は1つ又は複数のエンドポイント・デバイス(たとえば、スマート・サーベイランス・カメラ、自律車両)に送信され得る。
【0014】
本開示の態様及び実施例は、転移学習を使用して物体検出モデルを訓練するための技法を提供する。様々なクラスの物体を示す大量の画像(すなわち、公開されているリポジトリ又はデータベースからのもの)を使用して、訓練データは、十分な度合いの精度で予測を行うように教師モデルを訓練するために使用され得る。画像データは、ドメイン固有又は組織固有リポジトリ又はデータベースから取得され、予測を取得するために教師モデルへの入力として使用され得、その予測は、固有の、焦点を絞った、又は特定の画像クラスについての予測精度を増加させるように学生モデルを訓練するために使用され得る。したがって、学生モデルは、専門家又は他の容認された当局から訓練のためのラベリングされたデータを取得することなしに、(より)高い度合いの精度(たとえば、95%又はそれ以上)で予測を行うように訓練され得る。さらに、本開示の実施例は、エッジ・デバイス及び/又はエンドポイント・デバイス(たとえば、スマート・サーベイランス・カメラ、自律車両など)において使用されるべき物体検出モデルを提供する能力を提供し、物体検出モデルは、高い度合いの精度でターゲット・クラスの物体を検出することと、また、エッジ・デバイス及び/又はエンドポイント・デバイスに関連するサイズ制約及び推論スピード条件を満足することとを行うように訓練される。
【0015】
システム・アーキテクチャ
図1は、少なくとも1つの実施例による、例示的なシステム・アーキテクチャ100のブロック図である。(本明細書では「システム」とも呼ばれる)システム・アーキテクチャ100は、コンピューティング・デバイス102、(まとめて及び個々にデータ・ストア112と呼ばれる)データ・ストア112A~N、及びサーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150を含む。実装形態では、ネットワーク110は、公衆ネットワーク(たとえば、インターネット)、プライベート・ネットワーク(たとえば、ローカル・エリア・ネットワーク(LAN:local area network)又はワイド・エリア・ネットワーク(WAN:wide area network))、ワイヤード・ネットワーク(たとえば、イーサネット・ネットワーク)、ワイヤレス・ネットワーク(たとえば、802.11ネットワーク又はWi-Fiネットワーク)、セルラー・ネットワーク(たとえば、ロング・ターム・エボリューション(LTE:Long Term Evolution)ネットワーク)、ルータ、ハブ、スイッチ、サーバ・コンピュータ、及び/又はそれらの組合せを含み得る。
【0016】
コンピューティング・デバイス102は、本明細書で説明される技法を実施することが可能な、デスクトップ・コンピュータ、ラップトップ・コンピュータ、スマートフォン、タブレット・コンピュータ、サーバ、又は任意の好適なコンピューティング・デバイスであり得る。いくつかの実施例では、コンピューティング・デバイス102は、クラウド・コンピューティング・プラットフォームのコンピューティング・デバイスであり得る。たとえば、コンピューティング・デバイス102は、クラウド・コンピューティング・プラットフォームのサーバ・マシンであり得るか、又はそれの構成要素であり得る。そのような実施例では、コンピューティング・デバイス102は、ネットワーク110を介して1つ又は複数のエッジ・デバイス(図示せず)に結合され得る。エッジ・デバイスは、2つのネットワークの境界においてコンピューティング・デバイス間の通信を可能にするコンピューティング・デバイスを指す。たとえば、エッジ・デバイスは、ネットワーク110を介してコンピューティング・デバイス102、データ・ストア112A~N、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150に接続され得、別のネットワークを介して1つ又は複数のエンドポイント・デバイス(図示せず)に接続され得る。そのような実例では、エッジ・デバイスは、コンピューティング・デバイス102、データ・ストア112A~N、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150と、1つ又は複数のクライアント・デバイスとの間の通信を可能にすることができる。他の又は同様の実施例では、コンピューティング・デバイス102は、エッジ・デバイスであり得るか、又はそれの構成要素であり得る。たとえば、コンピューティング・デバイス102は、ネットワーク110を介してコンピューティング・デバイス102に接続された、データ・ストア112A~N、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150と、別のネットワークを介してコンピューティング・デバイス102に接続された1つ又は複数のクライアント・デバイスとの間の通信を容易にし得る。
【0017】
さらに他の又は同様の実施例では、コンピューティング・デバイス102は、エンドポイント・デバイスであり得るか、又はそれの構成要素であり得る。たとえば、コンピューティング・デバイス102は、限定はしないが、テレビジョン、スマート・フォン、セルラー電話、携帯情報端末(PDA:personal digital assistant)、ポータブル・メディア・プレーヤ、ネットブック、ラップトップ・コンピュータ、電子ブック・リーダー、タブレット・コンピュータ、デスクトップ・コンピュータ、セットトップ・ボックス、ゲーミング・コンソール、自律車両、サーベイランス・デバイスなど、デバイスであり得るか、又はそれの構成要素であり得る。そのような実施例では、コンピューティング・デバイス102は、ネットワーク110を介してデータ・ストア112A~N、サーバ・マシン130、サーバ・マシン140及び/又はサーバ・マシン150に接続され得る。他の又は同様の実施例では、コンピューティング・デバイス102は、ネットワークを介してシステム100のエッジ・デバイス(図示せず)に接続され得、システム100のエッジ・デバイスは、ネットワーク110を介してデータ・ストア112A~N、サーバ・マシン130、サーバ・マシン140及び/又はサーバ・マシン150に接続され得る。
【0018】
コンピューティング・デバイス102はメモリ104を含み得る。メモリ104は、データを記憶するように構成された1つ又は複数の揮発性及び/又は不揮発性メモリ・デバイスを含み得る。いくつかの実施例では、コンピューティング・デバイス102は物体検出エンジン151を含み得る。物体検出エンジン151は、画像(たとえば、画像106)に示された1つ又は複数の物体を検出し、いくつかの実施例では、1つ又は複数の検出された物体に関連するデータ(たとえば、物体データ108)を取得するように構成され得る。たとえば、物体検出エンジン151は、訓練された物体検出モデル(たとえば、モデル160)に入力として画像106を提供し、訓練された物体検出モデルの1つ又は複数の出力に基づいて、画像106に関連する物体データ108を決定するように構成され得る。本開示の実装形態は、物体検出モデルに関して説明されるが、実装形態は、概して、任意のタイプの機械学習モデルにも適用され得ることに留意されたい。物体検出エンジン151及び物体検出モデルに関するさらなる詳細が本明細書で提供される。
【0019】
上記で説明されたように、コンピューティング・デバイス102は、いくつかの実施例では、エンドポイント・デバイスであり得るか、又はそれの構成要素であり得る。そのような実施例では、コンピューティング・デバイス102は、オーディオ・データ及び/又は視覚データを生成することができる、オーディオ視覚(audiovisual)構成要素を含み得る。いくつかの実施例では、オーディオ視覚構成要素は、画像106をキャプチャし、生成するための画像キャプチャ・デバイス(たとえば、カメラ)を含み、生成された画像106に関連する画像データ及び/又はビデオ・データを生成し得る。他の又は同様の実施例では、コンピューティング・デバイス102は、上記で説明されたように、エッジ・デバイスであり得るか、又はそれの構成要素であり得る。そのような実施例では、コンピューティング・デバイス102は、オーディオ視覚構成要素を含むエンドポイント・デバイスから(すなわち、ネットワーク110又は別のネットワークを介して)画像106を受信することができる。同じく上記で説明されたように、コンピューティング・デバイス102は、いくつかの実施例では、(たとえば、クラウド・コンピューティング・プラットフォームのための)サーバ・マシンであり得るか、又はそれの構成要素であり得る。そのような実施例では、コンピューティング・デバイス102は、オーディオ視覚構成要素を含むエンドポイント・デバイス、及び/又はそのエンドポイント・デバイスに接続されたエッジ・デバイスから(すなわち、ネットワーク110又は別のネットワークを介して)画像106を受信し得る。
【0020】
いくつかの実装形態では、データ・ストア112A~Nは、コンテンツ・アイテム(たとえば、画像)、及び記憶されたコンテンツ・アイテムに関連するデータ(たとえば、物体データ)、並びにコンテンツ・アイテム及び/又は物体データをタグ付けし、編成し、インデックス付けするためのデータ構造を記憶することが可能である、永続ストレージである。データ・ストア112は、メイン・メモリ、磁気又は光ストレージ・ベースのディスク、テープ又はハード・ドライブ、NAS、SANなど、1つ又は複数のストレージ・デバイスによってホストされ得る。いくつかの実装形態では、データ・ストア112は、ネットワーク接続ファイル・サーバであり得るが、他の実施例では、データ・ストア112は、コンピューティング102、又はネットワーク110を介してコンピューティング・デバイス102に結合された1つ又は複数の異なる機械によってホストされ得る、オブジェクト指向データベース、リレーショナル・データベースなど、何らかの他のタイプの永続ストレージであり得る。
【0021】
図1に示されているように、システム100は、いくつかの実施例では、複数のデータ・ストア112を含み得る。いくつかの実施例では、第1のデータ・ストア(たとえば、データ・ストア112A)が、コンピューティング・デバイス102、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150にとってのみアクセス可能であるデータを記憶するように構成され得る。たとえば、データ・ストア112Aは、ドメイン固有又は組織固有リポジトリ又はデータ・ベースであり得るか、又はそれを含み得る。いくつかの実施例では、コンピューティング・デバイス102、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150は、プライベート・ネットワークであり得る、ネットワーク110を介してのみデータ・ストア112Aにアクセスすることが可能であり得る。他の又は同様の実施例では、データ・ストア112Aに記憶されたデータは、暗号化され得、暗号化機構(たとえば、プライベート暗号化鍵など)を介してコンピューティング・デバイス102、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150にとってアクセス可能であり得る。追加又は代替の実施例では、第2のデータ・ストア(たとえば、データ・ストア112B)が、任意のネットワークを介してデータ・ストア112Bにとってアクセス可能である任意のデバイスにとってアクセス可能であるデータを記憶するように構成され得る。たとえば、データ・ストア112Bは、公的にアクセス可能なリポジトリ又はデータベースであるか、又はそれを含み得る。データ・ストア112Bは、いくつかの実施例では、公衆ネットワークを介して任意のデバイスにとってアクセス可能である公的にアクセス可能なデータ・ストアであり得る。追加又は代替の実施例では、システム100は、(たとえば、プライベート・ネットワーク110を介して、暗号化機構を介してなど)コンピューティング・デバイス102、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150にとってのみアクセス可能である第1のデータと、別のネットワーク(たとえば、公衆ネットワーク)を介してデータ・ストアに接続されたデバイスにとってアクセス可能である第2のデータとを記憶するように構成されたデータ・ストア112を含み得る。また追加又は代替の実施例では、システム100は、(たとえば、プライベート・ネットワーク110を介して、暗号化機構を介してなど)コンピューティング・デバイス102、サーバ・マシン130、サーバ・マシン140、及び/又はサーバ・マシン150にとってのみアクセス可能であるデータを記憶するように構成された単一のデータ・ストア112のみを含み得る。そのような実施例では、データ・ストア112は、公的にアクセス可能なデータ・ストアから(たとえば、コンピューティング・デバイス102、訓練データ生成器131、訓練エンジン141などによって)取り出されたデータを記憶し得る。
【0022】
サーバ・マシン130は、MLモデル160A~Nを訓練するための訓練データ(たとえば、訓練入力のセット及びターゲット出力のセット)を生成することが可能である訓練データ生成器131を含み得る。訓練データは、ドメイン固有若しくは組織固有リポジトリ若しくはデータベースであるか若しくはそれを含むデータ・ストア(たとえば、データ・ストア112Aなど)、又はデータ・ストア112のプライベート部分に記憶された画像、及び/或いは公的にアクセス可能なリポジトリ若しくはデータベースであるか若しくはそれを含むデータ・ストア(たとえば、データ・ストア112Bなど)、又はデータ・ストア112の公的にアクセス可能な部分に記憶された画像に基づき得る。たとえば、訓練データ生成器131は、データ・ストア112Bに記憶された画像、データ・ストア112の公的にアクセス可能な部分に記憶された画像、又は公的にアクセス可能なデータ・ストア(図示せず)から取り出された画像に基づいて、教師機械学習モデル(たとえば、教師物体検出モデル)のための訓練データを生成し得る。別の実例では、訓練データ生成器131は、上記で説明されたように、データ・ストア112Aに記憶された画像、データ・ストア112のプライベート部分に記憶された画像、又は単一のプライベート・データ・ストア112からの画像に基づいて、及び教師物体検出モデルの1つ又は複数の出力に基づいて、学生機械学習モデル(たとえば、学生物体検出モデル)のための訓練データを生成し得る。教師物体検出モデル及び学生物体検出モデルのための訓練データを生成することに関するさらなる詳細が、
図2に関して提供される。
【0023】
サーバ・マシン140は訓練エンジン141を含み得る。訓練エンジン141は、訓練セット生成器131からの訓練データを使用して機械学習モデル160A~Nを訓練し得る。機械学習モデル160A~Nは、訓練入力と、対応するターゲット出力(それぞれの訓練入力についての正しい答え)とを含む訓練データを使用して訓練エンジン141によって作成されたモデル・アーティファクトを指し得る。訓練エンジン141は、ターゲット出力(予測されるべき答え)に訓練入力をマッピングする訓練データ中のパターンを見つけ、これらのパターンをキャプチャする機械学習モデル160A~Nを提供し得る。機械学習モデル160A~Nは、たとえば、単一レベルの線形又は非線形演算から構成され得る(たとえば、サポート・ベクター・マシン(SVM:support vector machine、又は深層ネットワーク、すなわち、複数のレベルの非線形演算から構成された機械学習モデルであり得る)。深層ネットワークの一実例は、1つ又は複数の隠れ層をもつニューラル・ネットワークであり、そのような機械学習モデルは、たとえば、逆伝搬学習アルゴリズムなどに従ってニューラル・ネットワークの重みを調整することによって、訓練され得る。便宜上、本開示の残りは、ニューラル・ネットワークとして実装形態に言及するが、いくつかの実装形態は、ニューラル・ネットワークの代わりに、又はそれに加えて、SVM又は他のタイプの学習機械を採用し得る。いくつかの実施例では、訓練データは、サーバ・マシン130によってホストされた訓練データ生成器131によって取得され得る。たとえば、訓練エンジン141は、訓練セット生成器131から、教師物体検出モデルを訓練するための第1の訓練データ、及び学生物体検出モデルを訓練するための第2の訓練データを取得し得る。物体検出モデル(たとえば、モデル160A~N)を訓練することに関するさらなる詳細が、
図2に関して提供される。
【0024】
サーバ150は、1つ又は複数の出力を取得するために、訓練された機械学習モデル160A~Nに入力として1つ又は複数の画像を提供する、物体検出エンジン151を含み得る。いくつかの実施例では、上記で説明されたように、1つ又は複数の画像は、データ・ストア112又はデータ・ストア112のプライベート部分に記憶される。たとえば、訓練された機械学習モデル160Aは、訓練された教師物体検出モデルであり得る。そのような実例では、物体検出エンジン151は、1つ又は複数の第1の出力を取得するために、訓練された機械学習モデル160Aに入力として1つ又は複数の画像を提供し得る。訓練データ生成器131は、本明細書で提供される実施例によれば、学生物体検出モデルを訓練するための訓練データを生成するために機械学習モデル160Aの1つ又は複数の第1の出力を使用し得る。別の実例では、訓練された機械学習モデル160Bは、訓練された学生物体検出モデルであり得る。そのような実例では、物体検出エンジン151は、1つ又は複数の第2の出力を取得するために、訓練された機械学習モデル160Bに入力として、コンピューティング・デバイス102によって取得された1つ又は複数の画像106を提供し得る。物体検出エンジン151は、1つ又は複数の画像106に示された物体を検出することと、1つ又は複数の検出された物体に関連する物体データ108を決定することとを行うために1つ又は複数の第2の出力を使用し得る。物体検出エンジン151に関するさらなる詳細が、
図3に関して提供される。
【0025】
いくつかの実装形態では、コンピューティング・デバイス102、データ・ストア112、及び/又はサーバ・マシン130~150は、画像(たとえば、画像106)に基づく物体検出を可能にするために使用され得る、(ラックマウントサーバ、ルータ・コンピュータ、サーバ・コンピュータ、パーソナル・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータなどの)1つ又は複数のコンピューティング・デバイス、データ・ストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、及び/又はハードウェア構成要素であり得る。いくつかの他の実装形態では、コンピューティング・デバイス102、サーバ・マシン130、140、及び/又は150の機能が、より少数の機械によって提供され得ることに留意されたい。たとえば、いくつかの実装形態では、サーバ・マシン130とサーバ・マシン140とが単一の機械に組み込まれ得、他の実装形態では、サーバ・マシン130とサーバ・マシン140とサーバ・マシン150とが複数の機械に組み込まれ得る。さらに、いくつかの実装形態では、サーバ・マシン130、140、及び150のうちの1つ又は複数がコンピューティング・デバイス102に組み込まれ得る。概して、コンピューティング・デバイス102及び/又はサーバ・マシン130、140、150によって実施されるものとして実装形態において説明される機能は、適切な場合、1つ又は複数のエッジ・デバイス(図示せず)及び/又はクライアント・デバイス(図示せず)上でも実施され得る。さらに、特定の構成要素にあるとされる機能性が、一緒に動作する異なる又は複数の構成要素によって実施され得る。コンピューティング・デバイス102及び/又はサーバ・マシン130、140、150はまた、適切なアプリケーション・プログラミング・インターフェースを通して他のシステム又はデバイスに提供されるサービスとしてアクセスされ得る。
【0026】
図2は、少なくとも1つの実施例による、例示的な訓練データ生成器131及び例示的な訓練エンジン141のブロック図である。訓練データ生成器131は、教師モデル訓練データ生成器210と学生モデル訓練データ生成器220とを含み得る。訓練エンジン141は、教師モデル訓練モジュール230と学生モデル訓練モジュール232とを含み得る。前に説明されたように、訓練データ生成器131は、コンピューティング・デバイス102の一部であるか又はそれとは別個である、
図1のサーバ・マシン130などのサーバ・マシンに存在し得る。訓練エンジン141は、コンピューティング・デバイス102の一部であるか又はそれとは別個である、サーバ・マシン130、又はサーバ・マシン140などの別のサーバ・マシンに存在し得る。
【0027】
いくつかの実施例では、教師モデル訓練データ生成器210は、教師物体検出モデル(たとえば、モデル160A)を訓練するための訓練データを生成するように構成され得、学生モデル訓練データ生成器220は、学生物体検出モデル(たとえば、モデル160B)を訓練するための訓練データを生成するように構成され得る。
図2に示されているように、訓練データ生成器131は、データ・ストア250に接続され得る。データ・ストア250は、教師物体検出モデルを訓練するための訓練データを生成するために教師モデル訓練データ生成器210によって使用されるデータを記憶するように構成され得る。たとえば、データ・ストア250は、1つ又は複数の訓練画像252と、各訓練画像252について、訓練画像252に関連する訓練画像関心領域(ROI:region of interest)データ254、訓練画像マスク・データ256、及び/又は訓練画像物体データ258とを記憶するように構成され得る。いくつかの実施例では、各訓練画像252は、複数の異なる物体クラスのセットのうちの特定のクラスに関連する物体を示し得る。例示的な実例では、訓練画像252は、人クラスに対応する第1の物体と、動物クラス(たとえば、犬クラス)に対応する第2の物体とを示し得る。
【0028】
訓練画像ROIデータ254は、それぞれの物体を示すそれぞれの訓練画像252の各領域を示すことができる。いくつかの実施例では、訓練画像ROIデータ254は、それぞれの物体を示す訓練画像252の領域を示すバウンディング・ボックス又は別のバウンディング形状(たとえば、回転楕円体形状、楕円体形状、円筒形状など)に対応することができる。前の実例によれば、例示的な訓練画像252に関連する訓練画像ROIデータ254は、第1の物体を示す訓練画像252の第1の領域を示す第1のバウンディング・ボックスと、第2の物体を示す訓練画像252の第2の領域を示す第2のバウンディング・ボックスとを含み得る。
【0029】
訓練画像マスク・データ256は、それぞれの訓練画像252のための1つ又は複数のピクセル(又はピクセルのグループ)が特定の物体に対応するかどうかを示すデータ(たとえば、2次元(2D)ビット・アレイ)を指し得る。前の実例によれば、例示的な訓練画像252に関連する訓練画像マスク・データ256は、第1の物体に対応するピクセルの第1のグループの指示と、第2の物体に対応するピクセルの第2のグループの指示とを含み得る。
【0030】
訓練画像物体データ258は、それぞれの訓練画像252に示された各物体に関連する1つ又は複数の特性を示すデータを指し得る。いくつかの実施例では、訓練画像物体データ258は、示された物体に関連するクラス(すなわち、複数のクラスのうちのクラス)を示すデータを含み得る。たとえば、例示的な訓練画像252に関連する訓練画像物体データ258は、訓練画像252に示された第1の物体が第1のクラス(たとえば、人クラス)に関連することと、訓練画像252に示された第2の物体が第2のクラス(たとえば、動物クラス)に関連することとを示す、データを含み得る。追加又は代替の実施例では、訓練画像物体データ258は、物体の位置(たとえば、配向など)又は形状など、各示された物体に関連する他の特性を示すデータを含むことができる。
【0031】
いくつかの実施例では、訓練画像252は、物体検出モデルを訓練するために使用され得る画像の集合中に含まれ得る。たとえば、訓練画像252は、公的にアクセス可能なデータ・ストア(たとえば、データ・ストア112B)、又はデータ・ストア(たとえば、データ・ストア112)の公的にアクセス可能な部分から取り出され、物体検出モデルを訓練するために使用され得る、公的にアクセス可能な画像の集合中に含まれ得る。いくつかの実施例では、画像の集合の各々が画像データに関連し得、その画像データも、公的にアクセス可能なデータ・ストア、又データ・ストアの公的にアクセス可能な部分において含まれ得る。いくつかの実施例では、画像の集合の各々、及び画像の集合の各々に関連する画像データは、物体検出プラットフォームの1人又は複数のユーザによって提供され得る。たとえば、物体検出プラットフォームのユーザは、(すなわち、ユーザに関連するそれぞれのクライアント・デバイスを介して)1つ又は複数の物体を示す画像を提供し得る。ユーザは、(すなわち、それぞれのクライアント・デバイスのグラフィカル・ユーザ・インターフェースを介して)提供された画像に示された各物体に関連するROIデータ、マスク・データ、及び物体データの指示をも提供し得る。別の実例では、物体検出プラットフォームの第1のユーザが、(すなわち、第1のユーザに関連する第1のクライアント・デバイスを介して)1つ又は複数の物体を示す画像を提供し得、第2のユーザが、(すなわち、第2のユーザに関連する第2のクライアント・デバイスのグラフィカル・ユーザ・インターフェースを介して)第1のユーザによって提供された画像に示された各物体に関連するROIデータ、マスク・データ、及び物体データの指示を提供し得る。いくつかの実施例では、教師モデル訓練データ生成器210のデータ取出しモジュール212が、本明細書で提供される実施例によれば、公的にアクセス可能なデータ・ストア、又はデータ・ストアの公的にアクセス可能な部分から、教師物体検出モデルを訓練するために使用されるべき訓練画像252を取り出し得る。
【0032】
いくつかの実施例では、データ・ストア250は、
図1に関して説明された、データ・ストア112Bなど、公的にアクセス可能なデータ・ストアに対応し得る。他の又は同様の実施例では、データ・ストア250は、データ・ストア112Aの公的にアクセス可能な部分に対応し得る。データ取出しモジュール212は、データ・ストア250から(すなわち、データ・ストア112A又はデータ・ストア112Bから)訓練画像252、訓練画像ROIデータ254、訓練画像マスク・データ256、及び/又は訓練画像物体データ258を取り出し得る。他の又は同様の実施例では、データ・ストア250は、プライベート・ネットワークを介して及び/又は暗号化機構を介してのみアクセス可能であるデータ・ストア112(たとえば、データ・ストア112A)に対応し得る。そのような実施例では、データ取出しモジュール212は、公的にアクセス可能なデータ・ストア(図示せず)及びストアから、訓練画像252、訓練画像ROIデータ254、訓練画像マスク・データ256、及び/又は訓練画像物体データ258を取り出し得る。そのような実施例では、データ取出しモジュール212は、データ・ストア250において、訓練画像252、訓練画像ROIデータ254、訓練画像マスク・データ256、及び/又は訓練画像物体データ258を取り出し得る。
【0033】
訓練データ生成器モジュール214が、データ取出しモジュール212が訓練画像252、訓練画像ROIデータ254、訓練画像マスク・データ256、及び/又は訓練画像物体データ258を取り出したことに応答して、教師物体検出モデルを訓練するために使用されるべき訓練データを生成し得る。訓練データは、いくつかの実施例では、訓練入力のセットとターゲット出力のセットとを含み得る。訓練入力のセットは、上記で説明されたように、データ取出しモジュール212によって取り出された1つ又は複数の訓練画像252を含み得る。いくつかの実施例では、訓練データ生成器モジュール214は、データ取出しモジュール212によって取り出された1つ又は複数の訓練画像252に1つ又は複数の画像変換を適用し得る。たとえば、データ取出しモジュール212によって取り出された訓練画像252は、特定の量の画像ノイズに関連し得る。訓練データ生成器モジュール214は、修正された訓練画像を生成するために、取り出された訓練画像252に1つ又は複数の画像変換を適用し得る。修正された訓練画像は、取り出された訓練画像252とは異なる量の画像ノイズ(たとえば、より少量の画像ノイズ)を含み得る。訓練データ生成器モジュール214は、上記で説明された実施例によれば、修正された訓練画像を訓練画像252のセット中に含め得る。ターゲット出力のセットは、訓練画像ROIデータ254、訓練画像マスク・データ256、及び/又は訓練画像物体データ258を含み得る。訓練入力のセット及びターゲット出力のセットを生成したことに応答して、訓練データ生成器モジュール214は、教師モデル訓練データ272を生成するために、訓練入力のセットとターゲット出力のセットとの間のマッピングを生成し得る。
【0034】
いくつかの実施例では、教師モデル訓練データ生成器210は、データ・ストア270に教師モデル訓練データ272を記憶し得る。データ・ストア270は、プライベート・ネットワークを介して及び/又は暗号化機構を介してコンピューティング・デバイスにとってアクセス可能である、ドメイン固有又は組織固有リポジトリ又はデータベースであるか又はそれを含むデータ・ストア(たとえば、データ・ストア112A)、或いはデータ・ストア112のプライベート部分であり得る。データ・ストア270は、
図1に関して説明された実施例によれば、訓練データ生成器131及び/又は訓練エンジン141にとってアクセス可能であり得る。追加又は代替の実施例では、教師モデル訓練データ生成器210は、教師物体検出モデルを訓練するために、生成されたマッピングを訓練エンジン141の教師モデル訓練モジュール230に提供し得る。
【0035】
訓練データ272(すなわち、教師モデル訓練データ生成器210からのもの又はデータ・ストア270からのもの)を取得したことに応答して、教師モデル訓練エンジン230は、教師物体検出モデルを訓練するために訓練データ272を使用し得る。いくつかの実施例では、教師物体検出モデルは、所与の入力画像について、所与の入力画像に示された複数のクラスの1つ又は複数の物体を検出することと、各検出された物体について、検出された物体に関連するマスク・データ及び/又はROIデータを予測することとを行うように訓練され得る。いくつかの実施例では、教師物体検出モデルは、所与の入力画像中で検出された各物体について、物体データ(たとえば、物体クラス、物体に関連する他の特性データなど)を予測するようにも訓練され得る。他の又は同様の実施例では、教師物体検出モデルは、所与の入力画像について、所与の入力画像に示された単一のクラスの1つ又は複数の物体を検出することと、各検出された物体について、検出された物体に関連するマスク・データ、ROIデータ、物体クラス・データ、及び/又は他の物体特性データを予測することとを行うように訓練され得る。いくつかの実施例では、教師物体検出モデルを訓練したことに応答して、訓練エンジン141は、訓練された教師物体検出モデルを教師モデル274としてデータ・ストア270に記憶し得る。学生モデル訓練データ生成器220は、本明細書で提供される実施例によれば、学生物体検出モデルを訓練するための訓練データを生成するために、訓練された教師モデル274を使用し得る。
【0036】
データ・ストア270は、ターゲット・クラスに関連する物体を検出するように学生物体検出モデルを訓練するために使用されるべきである1つ又は複数の訓練画像276を記憶し得る。たとえば、ターゲット・クラスは人々クラスに対応し得る。そのような実例では、データ・ストア270における1つ又は複数の訓練画像276は、人々クラスに関連する1つ又は複数の物体を示し得る。いくつかの実施例では、それぞれの訓練画像276に示された各物体は、異なる特性に関連し得る(たとえば、異なる環境中の人、異なる位置に配置された人など)。したがって、1つ又は複数の訓練画像276は、人々クラスに関連し、また、異なる特性に関連する物体を検出するように、学生物体検出モデルを訓練するために使用され得る。別の実例では、データ・ストア270における1つ又は複数の訓練画像276は、人々クラスに関連しないが、人々クラスに関連する物体と同様である1つ又は複数の特性に対応する、1つ又は複数の物体を示し得る(たとえば、訓練画像276に示された物体が、人々クラスの物体に関連する同様の位置又は環境に関連する)。したがって、1つ又は複数の訓練画像276は、人々クラスに関連する1つ又は複数の特性に対応するが、人々クラスに関連しない、物体を検出するように学生物体検出モデルを訓練するために使用され得る。
【0037】
教師推論モジュール222が、データ・ストア270から1つ又は複数の訓練画像276を取り出し、訓練された教師モデル274に入力として1つ又は複数の訓練画像276を提供し得る。教師出力モジュール224が、訓練された教師モデル274の1つ又は複数の出力を取得し得、1つ又は複数の取得された出力から、各入力訓練画像276に関連する物体データを決定し得る。いくつかの実施例では、それぞれの訓練画像274についての決定された物体データは、出力画像ROIデータ278、出力画像マスク・データ280、及び/又は出力画像特性データ282を含み得る。それぞれの訓練画像276に関連する出力画像ROIデータ278は、特定の物体を示すそれぞれの訓練画像276の領域であり得る。出力画像マスク・データ280は、特定の物体に関連するマスク・データを示し得る。出力画像特性データ282は、物体のクラス、物体の位置、物体の形状など、特定の物体に関連する1つ又は複数の特性を示し得る。いくつかの実施例では、教師出力モジュール224は、データ・ストア270に、出力画像ROIデータ278、出力画像マスク・データ280、及び/又は出力画像特性データ282を記憶し得る。
【0038】
訓練データ生成器モジュール226が、所与の入力画像について、ターゲット・クラスに関連する1つ又は複数の物体を検出するように学生物体検出モデルを訓練するために使用されるべき訓練データを生成し得る。訓練データは、いくつかの実施例では、訓練入力のセットとターゲット出力のセットとを含み得る。訓練入力のセットは、上記で説明されたように、訓練された教師モデル274に入力として提供された1つ又は複数の訓練画像276を含み得る。ターゲット出力のセットは、少なくとも、訓練された教師モデル274の1つ又は複数の出力から決定された出力画像マスク・データ280を含み得る。いくつかの実施例では、ターゲット出力のセットは、出力画像マスク・データ280と出力画像特性データ282とを含み得る。
【0039】
いくつかの実施例では、訓練データ生成器モジュール226は、訓練された教師モデル274の1つ又は複数の出力から決定された出力画像特性データ282に基づいて、更新された画像特性データを生成し得る。たとえば、訓練された教師モデル274に入力として提供された訓練画像276は、第1のクラス(たとえば、人々クラスなど)に関連する第1の物体、及び第2のクラス(たとえば、動物クラスなど)に関連する第2の物体を示し得る。教師出力モジュール224は、所与の入力画像中で検出された第1の物体及び第2の物体を示す、訓練された教師モデル274からの1つ又は複数の出力と、第1の物体が第1のクラスに関連することと、第2の物体が第2のクラスに関連することとを示す、出力画像特性データ282とを取得し得る。訓練データ生成器モジュール226は、第1のクラス及び/又は第2のクラスがターゲット・クラスに対応するかどうかを決定し得、その決定に基づいて、更新された画像物体データを生成し得る。たとえば、ターゲット・クラスが人々クラスである場合、訓練データ生成器モジュール226は、第1のクラスがターゲット・クラスに対応すると決定し、第1の物体がターゲット・クラスに対応することを示すために、更新された画像特性データを生成し得る。訓練データ生成器モジュール226はまた、第2のクラスがターゲット・クラスに対応しないと決定し得、第2の物体がターゲット・クラスに対応しないことを示すために、更新された画像特性データを生成し得る。訓練データ生成器モジュール226は、いくつかの実施例では、ターゲット出力のセット中に、出力画像特性データ282の代わりに、更新された物体データを含め得る。
【0040】
いくつかの実施例では、ターゲット出力のセットは、画像グランド・トゥルース・データ284をさらに含み得る。画像グランド・トゥルース・データ284は、訓練された教師モデル274によって検出された物体を含むそれぞれの訓練画像276の領域を示し得る。たとえば、グランド・トゥルース・データ284は、コンピューティング・デバイス又は物体検出プラットフォームの容認されたバウンディング・ボックス当局エンティティ又はユーザから取得された訓練画像276に関連する1つ又は複数のバウンディング・ボックスの指示を含み得る。いくつかの実施例では、グランド・トゥルース・データ284は、1つ又は複数の訓練画像276が訓練された教師モデル274に入力として提供される前又は後に、容認されたバウンディング・ボックス当局エンティティ又はユーザから取得され得る。例示的な実例では、画像グランド・トゥルース・データ284は、画像グランド・トゥルース・データ284のバウンディング・ボックスが、特定のオブジェクトを示す画像276の領域を出力画像ROIデータ278のバウンディング・ボックスよりも正確に識別し得ることを除いて、出力画像ROIデータ278に対応し得る。いくつかの追加又は代替の実施例では、画像グランド・トゥルース・データ284は、訓練された教師モデル274によって検出された物体のクラスを示し得る。いくつかの実施例では、ターゲット出力のセットは、上記で説明されたように、出力画像特性データ282によって示された物体のクラスの代わりに、画像グランド・トゥルース・データ284によって示された物体のクラスを含み得る。いくつかの実施例では、訓練データ生成モジュール226は、前に説明された実施例によれば、画像グランド・トゥルース・データ284によって示されたオブジェクト・クラスに基づいて、更新された画像特性データを生成し得る。
【0041】
それぞれの訓練画像276について訓練入力のセット及びターゲット出力のセットを生成したことに応答して、訓練データ生成器モジュール226は、学生モデル訓練データ286を生成するために、訓練入力のセットとターゲット出力のセットとの間のマッピングを生成し得る。いくつかの実施例では、学生モデル訓練データ生成器220は、データ・ストア270に学生モデル訓練データ286を記憶し得る。他の又は同様の実施例では、学生モデル訓練データ生成器220は、訓練エンジン141に学生モデル訓練データ286を送信し得る。訓練データ286(すなわち、学生モデル訓練データ生成器220からのもの又はデータ・ストア270からのもの)を取得したことに応答して、学生モデル訓練モジュール232は、学生物体検出モデルを訓練するために訓練データ286を使用し得る。学生物体検出モデルは、所与の入力について、所与の入力画像に示されたターゲット・クラスの1つ又は複数の物体を検出することと、各検出された物体について、検出された物体に関連するマスク・データ、ROIデータ、及び/又は特性データを予測することとを行うように訓練され得る。いくつかの実施例では、訓練エンジン141は、訓練された学生物体検出モデルを、
図1の物体検出エンジン151など、物体検出エンジンに提供し得る。
【0042】
図3は、少なくとも1つの実施例による、例示的な物体検出エンジン310のブロック図である。いくつかの実施例では、物体検出エンジン310は、
図1に関して説明された、物体検出エンジン151に対応し得る。
図3に示されているように、物体検出エンジン310は、入力画像構成要素312、物体データ構成要素314、モデル・ヘッド構成要素316及び/又はモデル更新構成要素318を含み得る。いくつかの実施例では、物体検出エンジン310はメモリ320に結合され得る。いくつかの実施例では、物体検出エンジン310はコンピューティング・デバイス102に存在し得る。そのような実施例では、メモリ320は、
図1に関して説明されたメモリ104に対応し得る。他の又は同様の実施例では、物体検出エンジン310はサーバ150に存在し得る。そのような実施例では、メモリ320は、データ・ストア(たとえば、データ・ストア112)におけるメモリ、メモリ104、又はシステム100に関連する別のメモリ・デバイスのメモリに対応し得る。
【0043】
入力画像構成要素312は、画像(たとえば、画像106)を取得することと、取得された画像を、メモリ320に記憶された訓練された物体検出モデル322に入力として提供することとを行うように構成され得る。いくつかの実施例では、訓練された物体検出モデル322は、
図1及び
図2に関して説明されたように、訓練データ生成器131によって生成された訓練データを使用して訓練エンジン141によって訓練された学生物体検出モデルに対応することができる。他の又は同様の実施例では、訓練された物体検出モデル322は、訓練データ生成器131によって生成された訓練データを使用して訓練エンジン141によって訓練されない別の訓練された物体検出モデルに対応し得る。
【0044】
図1に関して説明されたように、コンピューティング・デバイス102は、いくつかの実施例では、クラウド・コンピューティング・プラットフォームのコンピューティング・デバイスであり得る。そのような実施例では、コンピューティング・デバイス102は、
図3に示されているように、1つ又は複数のエッジ・デバイス(たとえば、エッジ・デバイス330)に結合され得、それらは、各々、1つ又は複数のエンドポイント・デバイス(たとえば、(本明細書ではまとめて及び個々にエンドポイント・デバイス332と呼ばれる)エンドポイント・デバイス332A~N)に結合される。いくつかの実施例では、エンドポイント・デバイス332の(1つ又は複数の)オーディオ視覚及び/又はセンサ構成要素が、上記で説明されたように、画像106を生成し、画像106を(たとえば、ネットワークを介して)エッジ・デバイス330に送信し得る。エッジ・デバイス330は、受信された画像106を(たとえば、ネットワーク110を介して)コンピューティング・デバイス102に送信し得る。そのような実施例では、コンピューティング・デバイス102は、画像106を(たとえば、ネットワーク110又はコンピューティング・デバイス102のバスを介して)入力画像構成要素312に送信し得る。他の又は同様の実施例では、コンピューティング・デバイス102は、同じく上記で説明されたように、エッジ・デバイス330であり得るか、又はそれの構成要素であり得る。そのような実施例では、エッジ・デバイス330は、(たとえば、ネットワークを介して)エンドポイント・デバイス332から画像106を受信し得、画像106を(たとえば、ネットワーク110又はコンピューティング・デバイス102のバスを介して)入力画像構成要素312に送信し得る。また他の又は同様の実施例では、コンピューティング・デバイス102は、前に説明されたように、1つ又は複数のエンドポイント・デバイス332A~Nであり得るか、又はそれの構成要素であり得る。そのような実施例では、1つ又は複数のエンドポイント・デバイス332A~Nは、画像106を生成し、画像106を(たとえば、ネットワーク、ネットワーク110、又はコンピューティング・デバイス102のバスを介して)入力画像構成要素312に送信し得る。
【0045】
画像106を受信したことに応答して、入力画像構成要素312は、いくつかの実施例では、画像106を、訓練された物体検出モデル322に入力として提供し得る。他の又は同様の実施例では、入力画像構成要素312は、修正された画像を生成し、修正された画像を、訓練された物体検出モデル322に入力として提供するために、上記で説明されたように、(たとえば、画像106中に含まれるノイズの量を低減するために)1つ又は複数の画像変換を適用し得る。物体データ構成要素314は、訓練された物体検出モデル322の1つ又は複数の出力を取得し得、1つ又は複数の取得された出力に基づいて物体データ108を決定し得る。いくつかの実施例では、1つ又は複数の取得された出力に基づいて決定された物体データ108は、所与の入力画像106(又は修正された入力画像)中で検出された1つ又は複数の物体に対応することができる。たとえば、物体データ108は、検出された物体を含む画像106の領域(たとえば、バウンディング・ボックス)の指示を含み得る。いくつかの追加又は代替の実施例では、物体データ108は、検出された物体に関連するマスク・データをさらに含み得る。いくつかの追加又は代替の実施例では、物体データ108は、検出された物体に関連するクラス及び/又は1つ又は複数の特性を示すデータをさらに含み得る。
【0046】
いくつかの実施例では、訓練された物体検出モデル322の1つ又は複数の出力は、画像106の複数の領域の指示と、各領域が検出された物体を含む、信頼性のレベルの指示とを含み得る。物体データ構成要素314は、画像106の特定の領域に関連する信頼性のレベルが信頼性基準のレベルを満足する(たとえば、信頼性のレベルがしきい値を超えるなど)と決定することによって、画像106の特定の領域が検出された物体を含むと決定し得る。画像106の特定の領域が信頼性基準のレベルを満足すると決定したことに応答して、物体データ構成要素314は、物体データ108とともに画像106の特定の領域の指示をメモリ320中に含め得る。追加又は代替の実施例では、訓練された物体検出モデル322の1つ又は複数の出力は、マスク・データの複数のセットと、マスク・データの各セットが検出された物体に関連する、信頼性のレベルの指示とを含み得る。マスク・データの特定のセットが信頼性基準のレベルを満足すると決定したことに応答して、物体データ構成要素314は、物体データ108とともに特定のマスク・データの指示をメモリ320中に含め得る。また追加又は代替の実施例では、訓練された物体検出モデル322の1つ又は複数の出力は、複数のクラス及び/又は特性と、各クラス及び/又は特性が検出された物体に対応する、信頼性のレベルの指示とを含み得る。特定のクラス及び/又は特性が信頼性基準のレベルを満足すると決定したことに応答して、物体データ構成要素314は、物体データ108とともに特定のクラス及び/又は特性の指示をメモリ320中に含め得る。
【0047】
いくつかの実施例では、物体データ構成要素314は、物体データ108に基づいて、所与の入力画像106中で検出された物体がターゲット・クラスに対応するかどうかを決定し得る。たとえば、いくつかの実施例では、物体データ108は、上記で説明されたように、検出された物体に関連するクラスを示し得る。物体データ構成要素312は、検出された物体がターゲット・クラスに対応するかどうかを決定するために、示されたクラスをターゲット・クラスと比較し得る。別の実例では、物体データ108は、前に説明された実施例によれば、検出された物体がターゲット・クラスに対応するかどうかを示すデータを含み得る。そのような実例では、物体データ構成要素312は、含まれるデータに基づいて、検出された物体がターゲット・クラスに対応するかどうかを決定し得る。いくつかの実施例では、物体データ構成要素314は、検出された物体がターゲット・クラスに対応するかどうかの指示を含むように、物体データ108を更新し得る。物体データ構成要素314は、物体データ108をコンピューティング・デバイス102に送信し得る。いくつかの実施例では、物体データ構成要素312は、追加又は代替として、検出された物体がターゲット・クラスに対応するかどうかを示す通知をコンピューティング・デバイス102に送信し得る。
【0048】
上記で説明されたように、いくつかの実施例では、訓練された物体検出モデル322(たとえば、
図2の訓練された学生物体検出モデル)は、所与の入力画像に関連するROIデータ、画像マスク・データ、及び/又は画像特性データを予測するように訓練され得る。そのような実施例では、訓練された物体検出モデル322はマルチ・ヘッド・モデルであり得、マルチ・ヘッド・モデルの各ヘッドが、所与の入力画像中で検出された物体に関連する特定のタイプのデータを予測するために使用される。たとえば、訓練された物体検出モデル322は、検出された物体に関連するROIデータを予測することに対応する第1のヘッド、検出された物体に関連するマスク・データを予測することに対応する第2のヘッド、及び/又は、検出された物体のクラスなど、検出された物体に関連する特性データを予測することに対応する第3のヘッドを含み得る。上記で説明されたように、いくつかの実施例では、かなりの数の訓練画像(たとえば、訓練画像276)が、物体検出モデルを訓練するために使用され得る。たとえば、いくつかのシステムでは、数百、数千、又は、いくつかの事例では、数百万の画像が、物体検出モデルを訓練するために使用され得る。上記に鑑みて、かなりの数の画像に関して訓練されるマルチ・ヘッド物体検出モデル322は、いくつかの実施例では、かなりの量のシステム・リソース(たとえば、メモリ・スペース、処理リソースなど)を消費し得る。いくつかの実施例では、物体検出エンジン310は、推論の前に及び/又は推論中に、物体検出モデル322よって消費されるシステム・リソースの量を低減するために、訓練されたマルチ・ヘッド物体検出モデル322の1つ又は複数のヘッド(たとえば、マスク・ヘッド)を除去し得る。
【0049】
図4Aは、少なくとも1つの実施例による、例示的な訓練されたマルチ・ヘッド物体検出モデル322を示す。
図4Aに示されているように、モデル322は、少なくともROIヘッド412とマスク・ヘッド414とを含み得る。モデル322は、
図4Aに示されているように、ニューラル・ネットワークと同様であり得るが、本開示の実施例は、任意のタイプの機械学習モデルに適用され得ることに留意されたい。入力画像構成要素312は、前に説明された実施例によれば、モデル322に入力として画像106を提供し得る。入力画像106は、モデル322のROIヘッド412とマスク・ヘッド414の両方に提供され得る。モデル322は、上記で説明されたように、所与の入力画像106に基づいて1つ又は複数の出力を提供し得る。いくつかの実施例では、提供された出力は、ROIヘッド出力416とマスク・ヘッド出力418とを含むことができる。ROIヘッド出力416は、ROIヘッド412に従って実施された推論に基づいて提供され得る。マスク・ヘッド出力418は、マスク・ヘッド414に従って実施された推論に基づいて提供され得る。
【0050】
再び
図3を参照すると、いくつかの実施例では、物体検出エンジン310のモデル・ヘッド構成要素316及びモデル更新構成要素318が、物体検出モデル322のマスク・ヘッドを除去し得る。たとえば、モデル・ヘッド構成要素316は、所与の入力画像に関連する特定の出力を提供すること(たとえば、マスク・データを予測すること)に対応するモデル322の1つ又は複数のヘッド(たとえば、マスク・ヘッド414)を識別し得る。モデル・ヘッド構成要素316がモデル322の対応するヘッドを識別したことに応答して、モデル更新構成要素318は、1つ又は複数の識別されたヘッドを除去するようにモデル322を更新し得る。
図4Bは、少なくとも1つの実施例による、マスク・ヘッド414を除去するように更新された更新された訓練された物体検出モデル324を示す。
図4Bに示されているように、モデル更新構成要素318は、更新されたモデル324を生成するためにモデル322のマスク・ヘッド414を除去し得る。したがって、モデル324は、いくつかの実施例では、ROIヘッド出力416を提供し得、マスク・ヘッド出力418を提供しないことがある。
図3及び
図4A~
図4Bは、モデル322からマスク・ヘッド414を除去することを対象とする実施例を含むが、本開示の実施例は、モデル322の任意のヘッドを除去することに適用され得ることに留意されたい。
【0051】
再び
図3を参照すると、いくつかの実施例では、物体検出エンジン310は、更新された物体検出モデル324を(たとえば、ネットワーク110、又はコンピューティング・デバイス102のバスを介して)コンピューティング・デバイス102に送信し得る。上記で説明されたように、コンピューティング・デバイス102は、いくつかの実施例では、クラウド・コンピューティング・プラットフォームであり得るか、又はそれの構成要素であり得る。そのような実施例では、コンピューティング・デバイス102は、更新された物体検出モデル324を(たとえば、ネットワーク110を介して)エッジ・デバイス330に送信し得る。エッジ・デバイス330は、いくつかの実施例では、エンドポイント・デバイス332A~Nによって生成された画像106に基づいて物体検出を実施するために、更新された物体検出モデル324を使用し得る。他の又は同様の実施例では、エッジ・デバイス330は、更新された物体検出モデル324をエンドポイント・デバイス332A~Nに送信し得る。同じく上記で説明されたように、コンピューティング・デバイス102は、エッジ・デバイス330であり得るか、又はそれの構成要素であり得る。そのような実施例では、エッジ・デバイス330は、物体検出を実施するために、更新された物体検出モデル324を使用し得、及び/又は更新された物体検出モデル324をエンドポイント・デバイス332Aに送信し得る。同じく上記で説明されたように、コンピューティング・デバイス102は、1つ又は複数のエンドポイント・デバイス332A~Nであり得るか、又はそれの構成要素であり得る。そのような実施例では、エンドポイント・デバイス332A~Nのうちの1つ又は複数は、上記で説明された実施例によれば、物体検出を実施するために、更新された物体検出モデル324を使用し得る。
【0052】
図5A~
図5B及び
図6は、少なくともいくつかの実施例による、それぞれ、物体検出モデルを訓練することに関係する例示的な方法500、550及び600の流れ図である。少なくとも1つの実施例では、方法500、550及び/又は600は、コンピューティング・デバイス102、サーバ・マシン130、サーバ・マシン140、サーバ・マシン150、1つ又は複数のエッジ・デバイス、1つ又は複数のエンドポイント・デバイス、又は何らかの他のコンピューティング・デバイス、或いは複数のコンピューティング・デバイスの組合せによって実施され得る。方法500、550及び/又は600は、1つ又は複数のメモリ・デバイスを含み(又はそれと通信し)得る、1つ又は複数の処理ユニット(たとえば、CPU及び/又はGPU)によって実施され得る。少なくとも1つの実施例では、方法500、550及び/又は600は、複数の処理スレッド(たとえば、CPUスレッド及び/又はGPUスレッド)によって実施され得、各スレッドが、方法の1つ又は複数の個々の機能、ルーチン、サブルーチン、又は動作を実行する。少なくとも1つの実施例では、方法500、550及び/又は600を実装する処理スレッドは、(たとえば、セマフォ、クリティカル・セクション、及び/又は他のスレッド同期機構を使用して)同期され得る。代替的に、方法500、550及び/又は600を実装する処理スレッドは、互いに非同期的に実行され得る。方法500、550及び/又は600の様々な動作が、
図5A~
図5B及び
図6に示されている順序と比較して異なる順序で実施され得る。方法のいくつかの動作が、他の動作と並行して実施され得る。少なくとも1つの実施例では、
図5A~
図5B及び
図6に示されている1つ又は複数の動作は、常に実施されるとは限らない。
【0053】
図5Aは、少なくとも1つの実施例による、ターゲット・クラスの物体を検出するように機械学習モデルを訓練する例示的な方法500の流れ図を示す。いくつかの実施例では、方法500の1つ又は複数の動作は、本明細書で説明される、訓練データ生成器131の1つ又は複数の構成要素又はモジュールによって実施され得る。方法500を実施する処理ユニットは、ブロック510において、複数のクラスの複数の物体を含む画像の第1のセットを識別し得る。いくつかの実施例では、処理ユニットは、前に説明されたように、データ・ストア270から画像の第1のセットを取得し得る。
【0054】
ブロック512において、方法500を実施する処理ユニットは、第1の機械学習モデルに入力として画像の第1のセットを提供し得る。第1の機械学習モデルは、所与の入力画像について、所与の入力画像に示された複数のクラスの1つ又は複数の物体を検出するように訓練された、訓練された教師物体検出モデルであり得る。訓練された教師物体検出モデルはまた、1つ又は複数の検出された物体の各々について、それぞれの検出された物体に関連する、マスク・データ、及び、いくつかの実施例では、ROIデータを予測するように訓練され得る。追加又は代替の実施例では、訓練された教師物体検出モデルは、各検出された物体について、それぞれの検出された物体に関連する複数のクラスのうちの特定のクラスを予測するように訓練され得る。ブロック514において、方法500を実施する処理ユニットは、第1の機械学習モデルの1つ又は複数の出力から、画像の第1のセットに関連する物体データを決定し得る。画像の第1のセットの各それぞれの画像についての物体データが、それぞれの画像中で検出された各物体に関連するマスク・データを含み得る。
【0055】
ブロック516において、方法500を実施する処理ユニットは、画像の第1のセットと、第1の機械学習モデルの1つ又は複数の出力から決定された物体データの一部分とを使用して、画像の第2のセット中のターゲット・クラスの物体を検出するように第2の機械学習モデルを訓練し得る。第2の機械学習モデルは学生物体検出モデルであり得る。処理ユニットは、訓練入力とターゲット出力とを使用して学生物体検出モデルを訓練し得る。訓練入力は、画像の第1のセット(すなわち、訓練された教師物体検出モデルに入力として提供されたもの)を含み得る。ターゲット出力は、教師物体検出モデルの1つ又は複数の出力中に含まれる、画像の第1のセット中の各検出された物体に関連するマスク・データを含み得る。ターゲット出力は、画像の第1のセット中で検出された各物体に関連するクラスがターゲット・クラスに対応するかどうかの指示をも含み得る。いくつかの実施例では、処理ユニットは、画像の第1のセット中で検出された各物体に関連する特定のクラスがターゲット・クラスに対応するかどうかを決定し得る。ターゲット出力は、特定のクラスがターゲット・クラスに対応するかどうかの指示を含み得る。別の実施例では、ターゲット出力は、画像の第1のセット中で検出された各物体に関連する特定のクラスの指示を含み得る。
【0056】
ターゲット出力は、いくつかの実施例では、画像の第1のセット中で検出された各物体に関連するグランド・トゥルース・データをも含み得る。上記で説明されたように、各検出された物体に関連するグランド・トゥルース・データは、それぞれの検出された物体を含む画像の領域を示し得る。処理ユニットは、前に説明された実施例によれば、画像に関連する1つ又は複数のROI(たとえば、バウンディング・ボックス)の指示を含む(たとえば、データ・ストア270における)データベースを使用してグランド・トゥルース・データを識別し得る。データベースにおいて含まれるROIの各々が、プラットフォームの容認されたROI当局又はユーザによって提供され得る。いくつかの実施例では、処理ユニットは、データベースを使用して、画像の第1のセット中で検出された各物体に関連するクラスをも識別し得る。
【0057】
いくつかの実施例では、上記で説明されたように、訓練された第2の機械学習モデルはマルチ・ヘッド機械学習モデルであり得る。いくつかの実施例では、処理ユニットは、所与の入力画像についてのマスク・データを予測することに対応する、第2の機械学習モデルの1つ又は複数のヘッドを識別し得、1つ又は複数の識別されたヘッドを除去するように第2の機械学習モデルを更新し得る。いくつかの実施例では、処理ユニットは、第2の機械学習モデルに入力として画像の第2のセットを提供し、第2の機械学習モデルの1つ又は複数の出力を取得し得る。処理ユニットは、1つ又は複数の取得された出力から、画像の第2のセットの各々に関連する追加の物体データを決定し得る。追加の物体データは、いくつかの実施例では、それぞれの画像中で検出された物体を含むそれぞれの画像の領域(たとえば、バウンディング・ボックス)の指示と、検出された物体に関連するクラスとを含み得る。
【0058】
図5Bは、少なくとも1つの実施例による、ターゲット・クラスの物体を検出するように訓練された機械学習モデルを使用する例示的な方法550の流れ図を示す。いくつかの実施例では、方法550の1つ又は複数の動作は、本明細書で説明される、物体検出エンジン151の1つ又は複数の構成要素又はモジュールによって実施され得る。方法550を実施する処理ユニットは、ブロック552において、第1の機械学習モデルに入力として現在の画像のセットを提供し得る。いくつかの実施例では、現在の画像のセットは、上記で説明されたように、エンドポイント・デバイス、エッジ・デバイス、又はサーバにおける又はそれに結合された、オーディオ視覚構成要素(たとえば、カメラ)によって生成され得る。
【0059】
第1の機械学習モデルは、画像の所与のセット中のターゲット・クラスの物体を検出するように訓練され得る。いくつかの実施例では、第1の機械学習モデルは、上記で説明されたように、学生物体検出モデルに対応し得る。いくつかの実施例では、第1の機械学習モデルは、前に説明された実施例に従って訓練され得る。たとえば、第1の機械学習モデルは、訓練画像のセットを含む訓練入力と、訓練入力のためのターゲット出力とを使用して訓練され得る。ターゲット出力は、訓練画像のセットの各それぞれの訓練画像について、それぞれの訓練画像に示された各物体に関連するグランド・トゥルース・データを含み得る。グランド・トゥルース・データは、それぞれの物体を含むそれぞれの訓練画像の領域を示し得る。いくつかの実施例では、グランド・トゥルース・データは、訓練画像のセットに関連する1つ又は複数のバウンディング・ボックスの指示を含むデータベースを使用して取得され得る。1つ又は複数のバウンディング・ボックスの各々は、プラットフォームの容認されたバウンディング・ボックス当局エンティティ及び/又はユーザによって提供され得る。
【0060】
ターゲット出力は、それぞれの訓練画像に示された各物体に関連するマスク・データをも含み得る。マスク・データは、第2の機械学習モデルの1つ又は複数の出力に基づいて取得され得る。いくつかの実施例では、第2の機械学習モデルは、本明細書で説明される、教師モデルに対応し得る。たとえば、訓練画像のセットは、第2の機械学習モデルに入力として提供され得る。第2の機械学習モデルは、所与の入力画像について、所与の入力画像に示された複数のクラスのうちの少なくとも1つの1つ又は複数の物体を検出することと、1つ又は複数の検出された物体の各々について、それぞれの検出された物体に関連する少なくともマスク・データを予測することとを行うように訓練され得る。物体データは、上記で説明されたように、第2の機械学習モデルの1つ又は複数の出力から決定され得る。各それぞれの訓練画像についての物体データは、それぞれの画像中で検出された各物体に関連するマスク・データを含み得る。ターゲット出力は、前に説明された実施例によれば、それぞれの訓練画像に示された各物体に関連するクラスがターゲット・クラスに対応するかどうかの指示をも含み得る。
【0061】
方法550を実施する処理ユニットは、ブロック554において、第1の機械学習モデルの1つ又は複数の出力を取得し得る。方法550を実施する処理ユニットは、ブロック556において、1つ又は複数の取得された出力に基づいて、現在の画像のセットの各々に関連する物体データを決定し得る。いくつかの実施例では、現在の画像のセットの各それぞれの画像についての決定された物体データは、それぞれの画像中で検出された物体を含むそれぞれの画像の領域の指示と、検出された物体がターゲット・クラスに対応するかどうかの指示とを含み得る。いくつかの実施例では、物体データは、それぞれの画像中で検出された物体に関連するマスク・データをさらに含み得る。いくつかの実施例では、画像のセットの各々に関連する物体データは、第1の機械学習モデルの1つ又は複数の出力から物体データの1つ又は複数のセットを抽出することによって決定され得る。物体データの1つ又は複数のセットのうちのセットの各々が、物体データがそれぞれの画像中で検出された物体に対応する、信頼性のレベルに関連し得る。処理ユニットは、物体データのそれぞれのセットに関連する信頼性のレベルが信頼性基準のレベルを満足する(たとえば、信頼性のレベルのしきい値を超える)かどうかを決定し得る。物体データのそれぞれのセットに関連する信頼性のレベルが信頼性基準のレベルを満足すると決定したことに応答して、処理ユニットは、物体データのセットが検出された物体に対応すると決定し得る。
【0062】
図6は、少なくとも1つの実施例による、機械学習モデルを訓練し、マスク・ヘッドを除去するように、訓練された機械学習モデルを更新する、例示的な方法の流れ図を示す。いくつかの実施例では、方法600の1つ又は複数の動作は、本明細書で説明される、訓練データ生成器131及び/又は訓練エンジン141の1つ又は複数の構成要素又はモジュールによって実施され得る。方法600を実施する処理ユニットは、ブロック610において、機械学習モデルのための訓練データを識別、生成し得る。
【0063】
ブロック612において、方法600を実施する処理ユニットは、物体を示す画像を含む訓練入力を生成し得る。ブロック614において、方法600を実施する処理ユニットは、訓練入力のためのターゲット出力を生成し得る。ターゲット出力は、示された物体に関連するバウンディング・ボックスと、示された物体に関連するマスク・データと、示された物体に関連するクラスの指示とを含み得る。いくつかの実施例では、処理ユニットは、物体を示す画像を追加の機械学習モデルに入力として提供することによってターゲット出力を生成し得、追加の機械学習モデルは、所与の入力画像について、所与の入力画像に示された1つ又は複数の物体を検出することと、1つ又は複数の検出された物体の各々について、それぞれの検出された物体に関連する少なくともマスク・データを予測することとを行うように訓練される。いくつかの実施例では、追加の機械学習モデルは、それぞれの検出された物体に関連するクラスを予測するようにさらに訓練される。処理ユニットは、追加の機械学習モデルを使用して、訓練入力の画像に示された物体に関連するマスク・データ(及びいくつかの実施例では、クラスの指示)を取得し得る。
【0064】
追加又は代替の実施例では、処理ユニットは、画像に関連するグランド・トゥルース・データを取得することによってターゲット出力を生成し得る。上記で説明されたように、グランド・トゥルース・データは、示された物体に関連するバウンディング・ボックスを含むことができ、画像のセットに示された物体に関連するバウンディング・ボックスの指示を記憶するデータベースから取得され得る。バウンディング・ボックスの指示は、プラットフォームの容認されたバウンディング・ボックス当局エンティティ又はユーザによって提供され得る。
【0065】
ブロック616において、方法600を実施する処理ユニットは、(i)生成された訓練入力を含む訓練入力のセット、及び(ii)生成されたターゲット出力を含むターゲット出力のセットに関して、機械学習モデルを訓練するための訓練データを提供し得る。ブロック618において、方法600を実施する処理ユニットは、所与の入力画像についてのマスク・データを予測することに対応する、訓練された機械学習モデルの1つ又は複数のヘッドを識別し得る。ブロック620において、方法600を実施する処理ユニットは、1つ又は複数の識別されたヘッドを除去するように、訓練された機械学習モデルを更新し得る。
【0066】
いくつかの実施例では、方法600を実施する処理ユニット、又は他の処理ユニットは、更新された訓練された機械学習モデルに入力として画像のセットを提供し、更新された訓練された機械学習モデルの1つ又は複数の出力を取得し得る。処理ユニットは、1つ又は複数の出力から、画像のセットの各々に関連する物体データを決定し得る。物体データは、それぞれの画像中で検出された物体を含むそれぞれの画像の領域の指示と、検出された物体に関連するクラスとを含み得る。いくつかの実施例では、方法600を実施する処理ユニット、又は他の処理ユニットは、更新された訓練された機械学習モデルをネットワークを介してエッジ・デバイス又はエンドポイント・デバイスのうちの少なくとも1つに送信し得る。
【0067】
推論及び訓練論理
図7Aは、1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために使用される推論及び/又は訓練論理715を示す。推論及び/又は訓練論理715に関する詳細は、
図7A及び/又は
図7Bと併せて以下で提供される。
【0068】
少なくとも1つの実施例では、推論及び/又は訓練論理715は、限定はしないが、1つ又は複数の実施例の態様において推論するために訓練及び/又は使用されるニューラル・ネットワークのニューロン又は層を構成するための順方向及び/若しくは出力の重み及び/又は入力/出力データ、並びに/或いは他のパラメータを記憶するためのコード及び/又はデータ・ストレージ701を含み得る。少なくとも1つの実施例では、訓練論理715は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ701を含むか、又はそれに結合され得、コード及び/又はデータ・ストレージ701において、整数及び/又は浮動小数点ユニット(総称して、算術論理ユニット(ALU:arithmetic logic unit))を含む論理を構成するために、重み及び/又は他のパラメータ情報がロードされるべきである。少なくとも1つの実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づいて、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701は、1つ又は複数の実施例の態様を使用する訓練及び/又は推論中の入力/出力データ及び/又は重みパラメータの順方向伝搬中に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。
【0069】
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701の任意の部分は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路の内部又は外部にあり得る。少なくとも1つの実施例では、コード及び/又はコード及び/又はデータ・ストレージ701は、キャッシュ・メモリ、動的なランダムにアドレス指定可能なメモリ(「DRAM」:dynamic randomly addressable memory)、静的なランダムにアドレス指定可能なメモリ(「SRAM」:static randomly addressable memory)、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、コード及び/又はコード及び/又はデータ・ストレージ701が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。
【0070】
少なくとも1つの実施例では、推論及び/又は訓練論理715は、限定はしないが、1つ又は複数の実施例の態様において推論するために訓練及び/又は使用されるニューラル・ネットワークのニューロン又は層に対応する逆方向及び/若しくは出力の重み及び/又は入力/出力データを記憶するためのコード及び/又はデータ・ストレージ705を含み得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ705は、1つ又は複数の実施例の態様を使用する訓練及び/又は推論中の入力/出力データ及び/又は重みパラメータの逆方向伝搬中に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも1つの実施例では、訓練論理715は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ705を含むか、又はそれに結合され得、コード及び/又はデータ・ストレージ705において、整数及び/又は浮動小数点ユニット(総称して、算術論理ユニット(ALU))を含む論理を構成するために、重み及び/又は他のパラメータ情報がロードされるべきである。少なくとも1つの実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づいて、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ705の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ705の任意の部分は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路の内部又は外部にあり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ705は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ705が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。
【0071】
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705とは、別個のストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705とは、同じストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705とは、部分的に同じストレージ構造であり、部分的に別個のストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701並びにコード及び/又はデータ・ストレージ705の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。
【0072】
少なくとも1つの実施例では、推論及び/又は訓練論理715は、限定はしないが、訓練及び/又は推論コード(たとえば、グラフ・コード)に少なくとも部分的に基づく、又はそれによって示される論理演算及び/又は数学演算を実施するための、整数及び/又は浮動小数点ユニットを含む、1つ又は複数の算術論理ユニット(「ALU」)710を含み得、その結果が、アクティブ化ストレージ720に記憶されるアクティブ化(たとえば、ニューラル・ネットワーク内の層又はニューロンからの出力値)を作り出し得、これらのアクティブ化は、コード及び/又はデータ・ストレージ701並びに/或いはコード及び/又はデータ・ストレージ705に記憶される入力/出力及び/又は重みパラメータ・データの関数である。少なくとも1つの実施例では、アクティブ化ストレージ720に記憶されるアクティブ化は、命令又は他のコードを実施したことに応答して(1つ又は複数の)ALU710によって実施される線形代数及び又は行列ベースの数学に従って生成され、コード及び/又はデータ・ストレージ705並びに/或いはコード及び/又はデータ・ストレージ701に記憶された重み値は、バイアス値、勾配情報、運動量値などの他の値、或いは他のパラメータ又はハイパーパラメータとともにオペランドとして使用され、これらのいずれか又はすべてが、コード及び/若しくはデータ・ストレージ705又はコード及び/若しくはデータ・ストレージ701、或いはオンチップ又はオフチップの別のストレージに記憶され得る。
【0073】
少なくとも1つの実施例では、(1つ又は複数の)ALU710は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路内に含まれるが、別の実施例では、(1つ又は複数の)ALU710は、それらを使用するプロセッサ或いは他のハードウェア論理デバイス又は回路(たとえば、コプロセッサ)の外部にあり得る。少なくとも1つの実施例では、ALU710は、プロセッサの実行ユニット内に含まれるか、或いはさもなければ、同じプロセッサ内にあるか又は異なるタイプの異なるプロセッサ(たとえば、中央処理ユニット、グラフィックス処理ユニット、固定機能ユニットなど)間で分散されているかのいずれかであるプロセッサの実行ユニットによってアクセス可能なALUのバンク内に含まれ得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705と、アクティブ化ストレージ720とは、同じプロセッサ或いは他のハードウェア論理デバイス又は回路上にあり得るが、別の実施例では、それらは、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路中にあるか、或いは、同じプロセッサ又は他のハードウェア論理デバイス若しくは回路と、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路との何らかの組合せ中にあり得る。少なくとも1つの実施例では、アクティブ化ストレージ720の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。さらに、推論及び/又は訓練コードが、プロセッサ或いは他のハードウェア論理又は回路にアクセス可能な他のコードとともに記憶され、プロセッサのフェッチ、復号、スケジューリング、実行、退去(retirement)及び/又は他の論理回路を使用してフェッチ及び/又は処理され得る。
【0074】
少なくとも1つの実施例では、アクティブ化ストレージ720は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、アクティブ化ストレージ720は、完全に又は部分的に、1つ又は複数のプロセッサ又は他の論理回路内にあるか、又はその外部にあり得る。少なくとも1つの実施例では、アクティブ化ストレージ720が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。少なくとも1つの実施例では、
図7Aに示されている推論及び/又は訓練論理715は、GoogleからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU:inference processing unit)、又はIntel CorpからのNervana(登録商標)(たとえば、「Lake Crest」)プロセッサなど、特定用途向け集積回路(「ASIC」:application-specific integrated circuit)と併せて使用され得る。少なくとも1つの実施例では、
図7Aに示されている推論及び/又は訓練論理715は、中央処理ユニット(「CPU」:central processing unit)ハードウェア、グラフィックス処理ユニット(「GPU」:graphics processing unit)ハードウェア、又は、フィールド・プログラマブル・ゲート・アレイ(「FPGA」:field programmable gate array)などの他のハードウェアと併せて使用され得る。
【0075】
図7Bは、少なくとも1つ又は複数の実施例による、推論及び/又は訓練論理715を示す。少なくとも1つの実施例では、推論及び/又は訓練論理715は、限定はしないが、ハードウェア論理を含み得、このハードウェア論理において、算出リソース(computational resource)が専用であるか、或いはさもなければ、ニューラル・ネットワーク内のニューロンの1つ又は複数の層に対応する重み値又は他の情報と併せてのみ使用される。少なくとも1つの実施例では、
図7Bに示されている推論及び/又は訓練論理715は、GoogleからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU)、又はIntel CorpからのNervana(登録商標)(たとえば、「Lake Crest」)プロセッサなど、特定用途向け集積回路(ASIC)と併せて使用され得る。少なくとも1つの実施例では、
図7Bに示されている推論及び/又は訓練論理715は、中央処理ユニット(CPU)ハードウェア、グラフィックス処理ユニット(GPU)ハードウェア、又は、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの他のハードウェアと併せて使用され得る。少なくとも1つの実施例では、推論及び/又は訓練論理715は、限定はしないが、コード及び/又はデータ・ストレージ701とコード及び/又はデータ・ストレージ705とを含み、それらは、コード(たとえば、グラフ・コード)、重み値、並びに/或いは、バイアス値、勾配情報、運動量値、及び/又は他のパラメータ若しくはハイパーパラメータ情報を含む他の情報を記憶するために使用され得る。
図7Bに示されている少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701並びにコード及び/又はデータ・ストレージ705の各々は、それぞれ、算出ハードウェア702及び算出ハードウェア706など、専用算出リソースに関連付けられる。少なくとも1つの実施例では、算出ハードウェア702及び算出ハードウェア706の各々は、線形代数関数などの数学関数を、それぞれコード及び/又はデータ・ストレージ701並びにコード及び/又はデータ・ストレージ705に記憶された情報に対してのみ実施する1つ又は複数のALUを備え、その結果が、アクティブ化ストレージ720に記憶される。
【0076】
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ701及び705の各々と、対応する算出ハードウェア702及び706とは、それぞれ、ニューラル・ネットワークの異なる層に対応し、それにより、コード及び/又はデータ・ストレージ701と算出ハードウェア702との1つの「ストレージ/算出ペア701/702」から生じたアクティブ化は、ニューラル・ネットワークの概念的組織化をミラーリングするために、コード及び/又はデータ・ストレージ705と算出ハードウェア706との「ストレージ/算出ペア705/706」への入力として提供される。少なくとも1つの実施例では、ストレージ/算出ペア701/702及び705/706の各々は、2つ以上のニューラル・ネットワーク層に対応し得る。少なくとも1つの実施例では、ストレージ算出ペア701/702及び705/706の後に、又はそれらと並列に、追加のストレージ/算出ペア(図示せず)が、推論及び/又は訓練論理715中に含められ得る。
【0077】
データ・センタ
図8は、少なくとも1つの実施例が使用され得る例示的なデータ・センタ800を示す。少なくとも1つの実施例では、データ・センタ800は、データ・センタ・インフラストラクチャ層810と、フレームワーク層820と、ソフトウェア層830と、アプリケーション層840とを含む。
【0078】
少なくとも1つの実施例では、
図8に示されているように、データ・センタ・インフラストラクチャ層810は、リソース・オーケストレータ812と、グループ化されたコンピューティング・リソース814と、ノード・コンピューティング・リソース(「ノードC.R.」:node computing resource)816(1)~816(N)とを含み得、ここで、「N」は、任意のすべての正の整数を表す。少なくとも1つの実施例では、ノードC.R.816(1)~816(N)は、限定はしないが、任意の数の中央処理ユニット(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、動的読取り専用メモリ)、ストレージ・デバイス(たとえば、ソリッド・ステート又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」:virtual machine)、電力モジュール、及び冷却モジュールなどを含み得る。少なくとも1つの実施例では、ノードC.R.816(1)~816(N)の中からの1つ又は複数のノードC.R.は、上述のコンピューティング・リソースのうちの1つ又は複数を有するサーバであり得る。
【0079】
少なくとも1つの実施例では、グループ化されたコンピューティング・リソース814は、1つ又は複数のラック(図示せず)内に格納されたノードC.R.の別個のグループ化、又は様々な地理的ロケーション(同じく図示せず)においてデータ・センタ中に格納された多くのラックを含み得る。グループ化されたコンピューティング・リソース814内のノードC.R.の別個のグループ化は、1つ又は複数のワークロードをサポートするように構成されるか又は割り振られ得る、グループ化されたコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含み得る。少なくとも1つの実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のワークロードをサポートするためのコンピュート・リソースを提供するために1つ又は複数のラック内でグループ化され得る。少なくとも1つの実施例では、1つ又は複数のラックはまた、任意の数の電力モジュール、冷却モジュール、及びネットワーク・スイッチを、任意の組合せで含み得る。
【0080】
少なくとも1つの実施例では、リソース・オーケストレータ812は、1つ又は複数のノードC.R.816(1)~816(N)及び/又はグループ化されたコンピューティング・リソース814を構成するか、又はさもなければ、制御し得る。少なくとも1つの実施例では、リソース・オーケストレータ812は、データ・センタ800のためのソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含み得る。少なくとも1つの実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はそれらの何らかの組合せを含み得る。
【0081】
少なくとも1つの実施例では、
図8に示されているように、フレームワーク層820は、ジョブ・スケジューラ822と、構成マネージャ824と、リソース・マネージャ826と、分散型ファイル・システム828とを含む。少なくとも1つの実施例では、フレームワーク層820は、ソフトウェア層830のソフトウェア832、及び/又はアプリケーション層840の1つ又は複数のアプリケーション842をサポートするためのフレームワークを含み得る。少なくとも1つの実施例では、ソフトウェア832又は(1つ又は複数の)アプリケーション842は、それぞれ、アマゾン・ウェブ・サービス、Google Cloud、及びMicrosoft Azureによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含み得る。少なくとも1つの実施例では、フレームワーク層820は、限定はしないが、大規模データ処理(たとえば、「ビック・データ」)のために分散型ファイル・システム828を利用し得るApache Spark(商標)(以下「Spark」)など、無料でオープンソースのソフトウェア・ウェブ・アプリケーション・フレームワークのタイプであり得る。少なくとも1つの実施例では、ジョブ・スケジューラ822は、データ・センタ800の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。少なくとも1つの実施例では、構成マネージャ824は、ソフトウェア層830、並びに大規模データ処理をサポートするためのSpark及び分散型ファイル・システム828を含むフレームワーク層820など、異なる層を構成することが可能であり得る。少なくとも1つの実施例では、リソース・マネージャ826は、分散型ファイル・システム828及びジョブ・スケジューラ822をサポートするようにマッピングされたか又は割り振られた、クラスタ化された又はグループ化されたコンピューティング・リソースを管理することが可能であり得る。少なくとも1つの実施例では、クラスタ化された又はグループ化されたコンピューティング・リソースは、データ・センタ・インフラストラクチャ層810において、グループ化されたコンピューティング・リソース814を含み得る。少なくとも1つの実施例では、リソース・マネージャ826は、リソース・オーケストレータ812と協調して、これらのマッピングされた又は割り振られたコンピューティング・リソースを管理し得る。
【0082】
少なくとも1つの実施例では、ソフトウェア層830中に含まれるソフトウェア832は、ノードC.R.816(1)~816(N)、グループ化されたコンピューティング・リソース814、及び/又はフレームワーク層820の分散型ファイル・システム828の少なくとも部分によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、限定はしないが、インターネット・ウェブ・ページ検索ソフトウェアと、電子メール・ウイルス・スキャン・ソフトウェアと、データベース・ソフトウェアと、ストリーミング・ビデオ・コンテンツ・ソフトウェアとを含み得る。
【0083】
少なくとも1つの実施例では、アプリケーション層840中に含まれる(1つ又は複数の)アプリケーション842は、ノードC.R.816(1)~816(N)、グループ化されたコンピューティング・リソース814、及び/又はフレームワーク層820の分散型ファイル・システム828の少なくとも部分によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、限定はしないが、任意の数のゲノミクス・アプリケーション、コグニティブ・コンピュート、及び、訓練又は推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む、機械学習アプリケーション、又は、1つ又は複数の実施例と併せて使用される他の機械学習アプリケーションを含み得る。
【0084】
少なくとも1つの実施例では、構成マネージャ824、リソース・マネージャ826、及びリソース・オーケストレータ812のいずれかが、任意の技術的に実現可能な様式で獲得された任意の量及びタイプのデータに基づいて、任意の数及びタイプの自己修正アクションを実装し得る。少なくとも1つの実施例では、自己修正アクションは、データ・センタ800のデータ・センタ・オペレータを、不良の恐れのある構成を判定し、十分に利用されていない及び/又は性能の低いデータ・センタの部分を場合によっては回避することから解放し得る。
【0085】
少なくとも1つの実施例では、データ・センタ800は、1つ又は複数の機械学習モデルを訓練するか、或いは、本明細書で説明される1つ又は複数の実施例による1つ又は複数の機械学習モデルを使用して情報を予測又は推論するためのツール、サービス、ソフトウェア又は他のリソースを含み得る。たとえば、少なくとも1つの実施例では、機械学習モデルは、データ・センタ800に関して上記で説明されたソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練され得る。少なくとも1つの実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練された機械学習モデルは、本明細書で説明される1つ又は複数の訓練技法を通して計算された重みパラメータを使用することによって、データ・センタ800に関して上記で説明されたリソースを使用して、情報を推論又は予測するために使用され得る。
【0086】
少なくとも1つの実施例では、データ・センタは、上記で説明されたリソースを使用して訓練及び/又は推論を実施するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用し得る。その上、上記で説明された1つ又は複数のソフトウェア及び/又はハードウェア・リソースは、画像認識、音声認識、又は他の人工知能サービスなど、ユーザが、情報を訓練するか又は情報の推論を実施することを可能にするためのサービスとして構成され得る。
【0087】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、
図7A及び/又は
図7Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図8のシステムにおいて使用され得る。
【0088】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合(overfitting)を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0089】
コンピュータ・システム
図9は、例示的なコンピュータ・システムを示すブロック図であり、例示的なコンピュータ・システムは、少なくとも1つの実施例による、命令を実行するための実行ユニットを含み得るプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SOC:system-on-a-chip)又はそれらの何らかの組合せをもつシステム900であり得る。少なくとも1つの実施例では、コンピュータ・システム900は、限定はしないが、本明細書で説明される実施例などにおいて、本開示による、プロセス・データのためのアルゴリズムを実施するための論理を含む実行ユニットを採用するための、プロセッサ902などの構成要素を含み得る。少なくとも1つの実施例では、コンピュータ・システム900は、カリフォルニア州サンタ・クララのIntel Corporationから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含み得るが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含む)他のシステムも使用され得る。少なくとも1つの実施例では、コンピュータ・システム900は、ワシントン州レドモンドのMicrosoft Corporationから入手可能なWINDOWS(登録商標)オペレーティング・システムのあるバージョンを実行し得るが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースも使用され得る。
【0090】
実施例は、ハンドヘルド・デバイス及び組み込みアプリケーションなど、他のデバイスにおいて使用され得る。ハンドヘルド・デバイスのいくつかの実例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」)、及びハンドヘルドPCを含む。少なくとも1つの実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computer)、セット・トップ・ボックス、ネットワーク・ハブ、ワイド・エリア・ネットワーク(「WAN」)スイッチ、又は少なくとも1つの実施例による1つ又は複数の命令を実施し得る任意の他のシステムを含み得る。
【0091】
少なくとも1つの実施例では、コンピュータ・システム900は、限定はしないが、プロセッサ902を含み得、プロセッサ902は、限定はしないが、本明細書で説明される技法による機械学習モデル訓練及び/又は推論を実施するための1つ又は複数の実行ユニット908を含み得る。少なくとも1つの実施例では、コンピュータ・システム900は、シングル・プロセッサ・デスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム900は、マルチプロセッサ・システムであり得る。少なくとも1つの実施例では、プロセッサ902は、限定はしないが、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」:reduced instruction set computing)マイクロプロセッサ、超長命令語(「VLIW」:very long instruction word)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は、たとえばデジタル信号プロセッサなど、任意の他のプロセッサ・デバイスを含み得る。少なくとも1つの実施例では、プロセッサ902は、プロセッサ・バス910に結合され得、プロセッサ・バス910は、プロセッサ902とコンピュータ・システム900中の他の構成要素との間でデータ信号を送信し得る。
【0092】
少なくとも1つの実施例では、プロセッサ902は、限定はしないが、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)904を含み得る。少なくとも1つの実施例では、プロセッサ902は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有し得る。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ902の外部に存在し得る。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せをも含み得る。少なくとも1つの実施例では、レジスタ・ファイル906は、限定はしないが、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタを含む様々なレジスタに、異なるタイプのデータを記憶し得る。
【0093】
少なくとも1つの実施例では、限定はしないが、整数演算及び浮動小数点演算を実施するための論理を含む実行ユニット908も、プロセッサ902中に存在する。少なくとも1つの実施例では、プロセッサ902は、いくつかのマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)をも含み得る。少なくとも1つの実施例では、実行ユニット908は、パック命令セット909に対処するための論理を含み得る。少なくとも1つの実施例では、パック命令セット909を、命令を実行するための関連する回路要素とともに汎用プロセッサ902の命令セットに含めることによって、多くのマルチメディア・アプリケーションによって使用される演算が、汎用プロセッサ902中のパック・データを使用して実施され得る。1つ又は複数の実施例では、多くのマルチメディア・アプリケーションが、パック・データの演算を実施するためにプロセッサのデータ・バスの全幅を使用することによって加速され、より効率的に実行され得、これは、一度に1つのデータ要素ずつ1つ又は複数の演算を実施するために、プロセッサのデータ・バスにわたってより小さい単位のデータを転送する必要をなくし得る。
【0094】
少なくとも1つの実施例では、実行ユニット908はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用され得る。少なくとも1つの実施例では、コンピュータ・システム900は、限定はしないが、メモリ920を含み得る。少なくとも1つの実施例では、メモリ920は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」:Dynamic Random Access Memory)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」:Static Random Access Memory)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装され得る。少なくとも1つの実施例では、メモリ920は、プロセッサ902によって実行され得るデータ信号によって表される(1つ又は複数の)命令919及び/又はデータ921を記憶し得る。
【0095】
少なくとも1つの実施例では、システム論理チップが、プロセッサ・バス910及びメモリ920に結合され得る。少なくとも1つの実施例では、システム論理チップは、限定はしないが、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)916を含み得、プロセッサ902は、プロセッサ・バス910を介してMCH916と通信し得る。少なくとも1つの実施例では、MCH916は、命令及びデータ・ストレージのための、並びにグラフィックス・コマンド、データ及びテクスチャのストレージのための、高帯域幅メモリ経路918をメモリ920に提供し得る。少なくとも1つの実施例では、MCH916は、プロセッサ902と、メモリ920と、コンピュータ・システム900中の他の構成要素との間でデータ信号をダイレクトし、プロセッサ・バス910と、メモリ920と、システムI/O922との間でデータ信号をブリッジし得る。少なくとも1つの実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供し得る。少なくとも1つの実施例では、MCH916は、高帯域幅メモリ経路918を通してメモリ920に結合され得、グラフィックス/ビデオ・カード912は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続914を通してMCH916に結合され得る。
【0096】
少なくとも1つの実施例では、コンピュータ・システム900は、MCH916をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)930に結合するためのプロプライエタリ・ハブ・インターフェース・バスである、システムI/O922を使用し得る。少なくとも1つの実施例では、ICH930は、ローカルI/Oバスを介していくつかのI/Oデバイスに直接接続を提供し得る。少なくとも1つの実施例では、ローカルI/Oバスは、限定はしないが、周辺機器をメモリ920、チップセット、及びプロセッサ902に接続するための高速I/Oバスを含み得る。実例は、限定はしないが、オーディオ・コントローラ929と、ファームウェア・ハブ(「フラッシュBIOS」)928と、ワイヤレス・トランシーバ926と、データ・ストレージ924と、ユーザ入力及びキーボード・インターフェース925を含んでいるレガシーI/Oコントローラ923と、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などのシリアル拡張ポート927と、ネットワーク・コントローラ934とを含み得る。データ・ストレージ924は、ハード・ディスク・ドライブ、フロッピー・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備え得る。
【0097】
少なくとも1つの実施例では、
図9は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、
図9は、例示的なシステム・オン・チップ(「SoC」)を示し得る。少なくとも1つの実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、コンピュータ・システム900の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続される。
【0098】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、
図7A及び/又は
図7Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図9のシステムにおいて使用され得る。
【0099】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0100】
図10は、少なくとも1つの実施例による、プロセッサ1010を利用するための電子デバイス1000を示すブロック図である。少なくとも1つの実施例では、電子デバイス1000は、たとえば、限定はしないが、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであり得る。
【0101】
少なくとも1つの実施例では、システム1000は、限定はしないが、任意の好適な数又は種類の構成要素、周辺機器、モジュール、又はデバイスに通信可能に結合されたプロセッサ1010を含み得る。少なくとも1つの実施例では、プロセッサ1010は、1℃バス、システム管理バス(「SMBus」:System Management Bus)、ロー・ピン・カウント(LPC:Low Pin Count)バス、シリアル周辺インターフェース(「SPI」:Serial Peripheral Interface)、高精細度オーディオ(「HDA」:High Definition Audio)バス、シリアル・アドバンス・テクノロジー・アタッチメント(「SATA」:Serial Advance Technology Attachment)バス、ユニバーサル・シリアル・バス(「USB」)(バージョン1、2、3)、又はユニバーサル非同期受信機/送信機(「UART」:Universal Asynchronous Receiver/Transmitter)バスなど、バス又はインターフェースを使用して結合した。少なくとも1つの実施例では、
図10は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、
図10は、例示的なシステム・オン・チップ(「SoC」)を示し得る。少なくとも1つの実施例では、
図10に示されているデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、
図10の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続される。
【0102】
少なくとも1つの実施例では、
図10は、ディスプレイ1024、タッチ・スクリーン1025、タッチ・パッド1030、ニア・フィールド通信ユニット(「NFC」:Near Field Communication)1045、センサ・ハブ1040、熱センサ1046、エクスプレス・チップセット(「EC」:Express Chipset)1035、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)1038、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)1022、DSP1060、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)又はハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ1020、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network)1050、Bluetoothユニット1052、ワイヤレス・ワイド・エリア・ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network)1056、全地球測位システム(GPS:Global Positioning System)1055、USB3.0カメラなどのカメラ(「USB3.0カメラ」)1054、及び/或いは、たとえばLPDDR3規格において実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)1015を含み得る。これらの構成要素は、各々、任意の好適な様式で実装され得る。
【0103】
少なくとも1つの実施例では、上記で説明された構成要素を通して、他の構成要素がプロセッサ1010に通信可能に結合され得る。少なくとも1つの実施例では、加速度計1041と、周囲光センサ(「ALS」:Ambient Light Sensor)1042と、コンパス1043と、ジャイロスコープ1044とが、センサ・ハブ1040に通信可能に結合され得る。少なくとも1つの実施例では、熱センサ1039と、ファン1037と、キーボード1046と、タッチ・パッド1030とが、EC1035に通信可能に結合され得る。少なくとも1つの実施例では、スピーカー1063と、ヘッドフォン1064と、マイクロフォン(「mic」)1065とが、オーディオ・ユニット(「オーディオ・コーデック及びクラスdアンプ」)1062に通信可能に結合され得、オーディオ・ユニット1062は、DSP1060に通信可能に結合され得る。少なくとも1つの実施例では、オーディオ・ユニット1064は、たとえば、限定はしないが、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスD増幅器を含み得る。少なくとも1つの実施例では、SIMカード(「SIM」)1057は、WWANユニット1056に通信可能に結合され得る。少なくとも1つの実施例では、WLANユニット1050及びBluetoothユニット1052などの構成要素、並びにWWANユニット1056は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)において実装され得る。
【0104】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、
図7A及び/又は
図7Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図10のシステムにおいて使用され得る。
【0105】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0106】
図11は、少なくとも1つの実施例による、処理システムのブロック図である。少なくとも1つの実施例では、システム1100は、1つ又は複数のプロセッサ1102と1つ又は複数のグラフィックス・プロセッサ1108とを含み、単一プロセッサ・デスクトップ・システム、マルチプロセッサ・ワークステーション・システム、或いは多数のプロセッサ1102又はプロセッサ・コア1107を有するサーバ・システムであり得る。少なくとも1つの実施例では、システム1100は、モバイル・デバイス、ハンドヘルド・デバイス、又は組み込みデバイスにおいて使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
【0107】
少なくとも1つの実施例では、システム1100は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディア・コンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、ハンドヘルド・ゲーム・コンソール、又はオンライン・ゲーム・コンソールを含むことができるか、或いはそれらの内部に組み込まれ得る。少なくとも1つの実施例では、システム1100は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス又はモバイル・インターネット・デバイスである。少なくとも1つの実施例では、処理システム1100はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、又は仮想現実デバイスなどのウェアラブル・デバイスを含むことができるか、それらと結合することができるか、又はそれらの内部に組み込まれ得る。少なくとも1つの実施例では、処理システム1100は、1つ又は複数のプロセッサ1102と、1つ又は複数のグラフィックス・プロセッサ1108によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
【0108】
少なくとも1つの実施例では、1つ又は複数のプロセッサ1102は、各々、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実施する命令を処理するための1つ又は複数のプロセッサ・コア1107を含む。少なくとも1つの実施例では、1つ又は複数のプロセッサ・コア1107の各々は、特定の命令セット1109を処理するように構成される。少なくとも1つの実施例では、命令セット1109は、複合命令セット・コンピューティング(CISC:Complex Instruction Set Computing)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にし得る。少なくとも1つの実施例では、プロセッサ・コア1107は、各々、異なる命令セット1109を処理し得、命令セット1109は、他の命令セットのエミュレーションを容易にするための命令を含み得る。少なくとも1つの実施例では、プロセッサ・コア1107はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含み得る。
【0109】
少なくとも1つの実施例では、プロセッサ1102はキャッシュ・メモリ1104を含む。少なくとも1つの実施例では、プロセッサ1102は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有することができる。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ1102の様々な構成要素の間で共有される。少なくとも1つの実施例では、プロセッサ1102はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC:Last Level Cache))(図示せず)を使用し、外部キャッシュは、知られているキャッシュ・コヒーレンシ技法を使用してプロセッサ・コア1107の間で共有され得る。少なくとも1つの実施例では、追加として、レジスタ・ファイル1106がプロセッサ1102中に含まれ、レジスタ・ファイル1106は、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタ)を含み得る。少なくとも1つの実施例では、レジスタ・ファイル1106は、汎用レジスタ又は他のレジスタを含み得る。
【0110】
少なくとも1つの実施例では、1つ又は複数のプロセッサ1102は、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1102とシステム1100中の他の構成要素との間で送信するために、1つ又は複数のインターフェース・バス1110と結合される。少なくとも1つの実施例では、1つの実施例におけるインターフェース・バス1110は、ダイレクト・メディア・インターフェース(DMI:Direct Media Interface)バスのバージョンなどのプロセッサ・バスであり得る。少なくとも1つの実施例では、インターフェース1110は、DMIバスに限定されず、1つ又は複数の周辺構成要素相互接続バス(たとえば、PCI、PCI Express)、メモリ・バス、又は他のタイプのインターフェース・バスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1102は、統合されたメモリ・コントローラ1116と、プラットフォーム・コントローラ・ハブ1130とを含む。少なくとも1つの実施例では、メモリ・コントローラ1116は、メモリ・デバイスとシステム1100の他の構成要素との間の通信を容易にし、プラットフォーム・コントローラ・ハブ(PCH:platform controller hub)1130は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
【0111】
少なくとも1つの実施例では、メモリ・デバイス1120は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとして働くのに好適な性能を有する何らかの他のメモリ・デバイスであり得る。少なくとも1つの実施例では、メモリ・デバイス1120は、1つ又は複数のプロセッサ1102がアプリケーション又はプロセスを実行するときの使用のためのデータ1122及び命令1121を記憶するために、システム1100のためのシステム・メモリとして動作することができる。少なくとも1つの実施例では、メモリ・コントローラ1116はまた、随意の外部グラフィックス・プロセッサ1112と結合し、外部グラフィックス・プロセッサ1112は、グラフィックス動作及びメディア動作を実施するために、プロセッサ1102中の1つ又は複数のグラフィックス・プロセッサ1108と通信し得る。少なくとも1つの実施例では、ディスプレイ・デバイス1111は、(1つ又は複数の)プロセッサ1102に接続することができる。少なくとも1つの実施例では、ディスプレイ・デバイス1111は、モバイル電子デバイス又はラップトップ・デバイスの場合のような内部ディスプレイ・デバイス、或いは、ディスプレイ・インターフェース(たとえば、DisplayPortなど)を介して取り付けられた外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも1つの実施例では、ディスプレイ・デバイス1111は、仮想現実(VR:virtual reality)アプリケーション又は拡張現実(AR:augmented reality)アプリケーションにおいて使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD:head mounted display)を含むことができる。
【0112】
少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1130は、周辺機器が高速I/Oバスを介してメモリ・デバイス1120及びプロセッサ1102に接続することを可能にする。少なくとも1つの実施例では、I/O周辺機器は、限定はしないが、オーディオ・コントローラ1146と、ネットワーク・コントローラ1134と、ファームウェア・インターフェース1128と、ワイヤレス・トランシーバ1126と、タッチ・センサ1125と、データ・ストレージ・デバイス1124(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)とを含む。少なくとも1つの実施例では、データ・ストレージ・デバイス1124は、ストレージ・インターフェース(たとえば、SATA)を介して、又は周辺構成要素相互接続バス(たとえば、PCI、PCI Express)などの周辺バスを介して、接続することができる。少なくとも1つの実施例では、タッチ・センサ1125は、タッチ・スクリーン・センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも1つの実施例では、ワイヤレス・トランシーバ1126は、Wi-Fiトランシーバ、Bluetoothトランシーバ、或いは3G、4G、又はロング・ターム・エボリューション(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバであり得る。少なくとも1つの実施例では、ファームウェア・インターフェース1128は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI:unified extensible firmware interface)であり得る。少なくとも1つの実施例では、ネットワーク・コントローラ1134は、ワイヤード・ネットワークへのネットワーク接続を可能にすることができる。少なくとも1つの実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1110と結合する。少なくとも1つの実施例では、オーディオ・コントローラ1146は、マルチチャネル高精細度オーディオ・コントローラである。少なくとも1つの実施例では、システム1100は、レガシー(たとえば、パーソナル・システム2(PS/2:Personal System 2))デバイスをシステムに結合するための随意のレガシーI/Oコントローラ1140を含む。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1130は、キーボードとマウス1143との組合せ、カメラ1144、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1142接続入力デバイスにも接続することができる。
【0113】
少なくとも1つの実施例では、メモリ・コントローラ1116及びプラットフォーム・コントローラ・ハブ1130のインスタンスが、外部グラフィックス・プロセッサ1112などの慎重な外部グラフィックス・プロセッサに組み込まれ得る。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1130及び/又はメモリ・コントローラ1116は、1つ又は複数のプロセッサ1102の外部にあり得る。たとえば、少なくとも1つの実施例では、システム1100は、外部のメモリ・コントローラ1116とプラットフォーム・コントローラ・ハブ1130とを含むことができ、それらは、(1つ又は複数の)プロセッサ1102と通信しているシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺コントローラ・ハブとして構成され得る。
【0114】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、
図7A及び/又は
図7Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715の部分又はすべてが、グラフィックス・プロセッサ1500に組み込まれ得る。たとえば、少なくとも1つの実施例では、本明細書で説明される訓練及び/又は推論技法は、グラフィックス・プロセッサにおいて具体化されたALUのうちの1つ又は複数を使用し得る。その上、少なくとも1つの実施例では、本明細書で説明される推論及び/又は訓練動作は、
図7A又は
図7Bに示されている論理以外の論理を使用して行われ得る。少なくとも1つの実施例では、重みパラメータは、本明細書で説明される1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、使用事例、又は訓練技法を実施するためのグラフィックス・プロセッサのALUを構成する(示されている又は示されていない)オンチップ又はオフチップ・メモリ及び/又はレジスタに記憶され得る。
【0115】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0116】
図12は、少なくとも1つの実施例による、1つ又は複数のプロセッサ・コア1202A~1202Nと、統合されたメモリ・コントローラ1214と、統合されたグラフィックス・プロセッサ1208とを有するプロセッサ1200のブロック図である。少なくとも1つの実施例では、プロセッサ1200は、破線ボックスによって表される追加コア1202Nまでの追加コアを含むことができる。少なくとも1つの実施例では、プロセッサ・コア1202A~1202Nの各々は、1つ又は複数の内部キャッシュ・ユニット1204A~1204Nを含む。少なくとも1つの実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュド・ユニット1206へのアクセスを有する。
【0117】
少なくとも1つの実施例では、内部キャッシュ・ユニット1204A~1204Nと共有キャッシュ・ユニット1206とは、プロセッサ1200内のキャッシュ・メモリ階層を表す。少なくとも1つの実施例では、キャッシュ・メモリ・ユニット1204A~1204Nは、各プロセッサ・コア内の命令及びデータ・キャッシュの少なくとも1つのレベル、及びレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含み得、ここで、外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも1つの実施例では、キャッシュ・コヒーレンシ論理は、様々なキャッシュ・ユニット1206及び1204A~1204N間でコヒーレンシを維持する。
【0118】
少なくとも1つの実施例では、プロセッサ1200は、1つ又は複数のバス・コントローラ・ユニット1216とシステム・エージェント・コア1210とのセットをも含み得る。少なくとも1つの実施例では、1つ又は複数のバス・コントローラ・ユニット1216は、1つ又は複数のPCI又はPCIエクスプレス・バスなどの周辺バスのセットを管理する。少なくとも1つの実施例では、システム・エージェント・コア1210は、様々なプロセッサ構成要素のための管理機能性を提供する。少なくとも1つの実施例では、システム・エージェント・コア1210は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合されたメモリ・コントローラ1214を含む。
【0119】
少なくとも1つの実施例では、プロセッサ・コア1202A~1202Nのうちの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも1つの実施例では、システム・エージェント・コア1210は、マルチスレッド処理中にコア1202A~1202Nを協調させ、動作させるための構成要素を含む。少なくとも1つの実施例では、システム・エージェント・コア1210は、追加として、電力制御ユニット(PCU:power control unit)を含み得、PCUは、プロセッサ・コア1202A~1202N及びグラフィックス・プロセッサ1208の1つ又は複数の電力状態を調節するための論理及び構成要素を含む。
【0120】
少なくとも1つの実施例では、プロセッサ1200は、追加として、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1208を含む。少なくとも1つの実施例では、グラフィックス・プロセッサ1208は、共有キャッシュ・ユニット1206、及び1つ又は複数の統合されたメモリ・コントローラ1214を含むシステム・エージェント・コア1210と結合する。少なくとも1つの実施例では、システム・エージェント・コア1210は、1つ又は複数の結合されたディスプレイへのグラフィックス・プロセッサ出力を駆動するためのディスプレイ・コントローラ1211をも含む。少なくとも1つの実施例では、ディスプレイ・コントローラ1211はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1208と結合された別個のモジュールであり得るか、又はグラフィックス・プロセッサ1208内に組み込まれ得る。
【0121】
少なくとも1つの実施例では、プロセッサ1200の内部構成要素を結合するために、リング・ベースの相互接続ユニット1212が使用される。少なくとも1つの実施例では、ポイントツーポイント相互接続、切替え相互接続、又は他の技法などの代替相互接続ユニットが使用され得る。少なくとも1つの実施例では、グラフィックス・プロセッサ1208は、I/Oリンク1213を介してリング相互接続1212と結合する。
【0122】
少なくとも1つの実施例では、I/Oリンク1213は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1218との間の通信を容易にするオン・パッケージI/O相互接続を含む、複数の種類のI/O相互接続のうちの少なくとも1つを表す。少なくとも1つの実施例では、プロセッサ・コア1202A~1202Nの各々と、グラフィックス・プロセッサ1208とは、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1218を使用する。
【0123】
少なくとも1つの実施例では、プロセッサ・コア1202A~1202Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも1つの実施例では、プロセッサ・コア1202A~1202Nは、命令セット・アーキテクチャ(ISA:instruction set architecture)という観点から異種であり、ここで、プロセッサ・コア1202A~1202Nのうちの1つ又は複数は、共通の命令セットを実行し、プロセッサ・コア1202A~1202Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも1つの実施例では、プロセッサ・コア1202A~1202Nは、マイクロアーキテクチャという観点から異種であり、ここで、電力消費量が比較的高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数の電力コアと結合する。少なくとも1つの実施例では、プロセッサ1200は、1つ又は複数のチップ上に、又はSoC集積回路として実装され得る。
【0124】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、
図7A及び/又は
図7Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715の部分又はすべてが、プロセッサ1200に組み込まれ得る。たとえば、少なくとも1つの実施例では、本明細書で説明される訓練及び/又は推論技法は、グラフィックス・プロセッサ1512、(1つ又は複数の)グラフィックス・コア1202A~1202N、又は
図12中の他の構成要素において具体化されたALUのうちの1つ又は複数を使用し得る。その上、少なくとも1つの実施例では、本明細書で説明される推論及び/又は訓練動作は、
図7A又は
図7Bに示されている論理以外の論理を使用して行われ得る。少なくとも1つの実施例では、重みパラメータは、本明細書で説明される1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、使用事例、又は訓練技法を実施するためのグラフィックス・プロセッサ1200のALUを構成する(示されている又は示されていない)オンチップ又はオフチップ・メモリ及び/又はレジスタに記憶され得る。
【0125】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0126】
仮想化されたコンピューティング・プラットフォーム
図13は、少なくとも1つの実施例による、画像処理及び推論パイプラインを生成及び導入するプロセス1300のための例示的なデータ・フロー図である。少なくとも1つの実施例では、プロセス1300は、1つ又は複数の施設1302において、撮像デバイス、処理デバイス、及び/又は他のデバイス・タイプとともに使用するために導入され得る。プロセス1300は、訓練システム1304及び/又は導入システム1306内で実行され得る。少なくとも1つの実施例では、訓練システム1304は、導入システム1306における使用のための機械学習モデル(たとえば、ニューラル・ネットワーク、物体検出アルゴリズム、コンピュータ・ビジョン・アルゴリズムなど)の訓練、導入、及び実装を実施するために使用され得る。少なくとも1つの実施例では、導入システム1306は、施設1302におけるインフラストラクチャ要件を低減するために、処理及びコンピュート・リソースを分散型コンピューティング環境の間でオフロードするように構成され得る。少なくとも1つの実施例では、パイプライン中の1つ又は複数のアプリケーションは、アプリケーションの実行中に導入システム1306のサービス(たとえば、推論、視覚化、コンピュート、AIなど)を使用するか、又はコールし得る。
【0127】
少なくとも1つの実施例では、先進処理及び推論パイプラインにおいて使用されるアプリケーションのいくつかは、1つ又は複数の処理ステップを実施するために機械学習モデル又は他のAIを使用し得る。少なくとも1つの実施例では、機械学習モデルは、施設1302において生成された(及び、施設1302において1つ又は複数のピクチャ・アーカイブ及び通信システム(PACS:picture archiving and communication system)サーバに記憶された)(撮像データなどの)データ1308を使用して、施設1302において訓練され得るか、(1つ又は複数の)別の施設からの撮像又はシーケンシング・データ1308を使用して訓練され得るか、或いはそれらの組合せであり得る。少なくとも1つの実施例では、訓練システム1304は、導入システム1306のための実用的で導入可能な機械学習モデルを生成するためのアプリケーション、サービス、及び/又は他のリソースを提供するために使用され得る。
【0128】
少なくとも1つの実施例では、モデル・レジストリ1324は、バージョン管理及び物体メタデータをサポートし得る物体ストレージによってバックアップされ得る。少なくとも1つの実施例では、物体ストレージは、たとえば、クラウド・プラットフォーム内から、クラウド・ストレージ(たとえば、
図14のクラウド1426)互換アプリケーション・プログラミング・インターフェース(API:application programming interface)を通してアクセス可能であり得る。少なくとも1つの実施例では、モデル・レジストリ1324内の機械学習モデルは、システムの開発者又はパートナーがAPIと対話することによって、アップロード、リスト化、修正、又は削除され得る。少なくとも1つの実施例では、APIは、適切な資格をもつユーザがモデルをアプリケーションに関連付けることを可能にする方法へのアクセスを提供し得、それにより、モデルは、アプリケーションのコンテナ化されたインスタンス化の実行の一部として実行され得る。
【0129】
少なくとも1つの実施例では、訓練パイプライン1404(
図14)は、施設1302がそれ自体の機械学習モデルを訓練しているか、或いは、最適化又は更新される必要がある既存の機械学習モデルを有するシナリオを含み得る。少なくとも1つの実施例では、(1つ又は複数の)撮像デバイス、シーケンシング・デバイス、及び/又は他のデバイス・タイプによって生成された撮像データ1308が受信され得る。少なくとも1つの実施例では、撮像データ1308が受信されると、機械学習モデルについてのグランド・トゥルース・データとして使用されるべき撮像データ1308に対応するアノテーションを生成するのを補助するために、AI支援アノテーション1310が使用され得る。少なくとも1つの実施例では、AI支援アノテーション1310は、1つ又は複数の機械学習モデル(たとえば、畳み込みニューラル・ネットワーク(CNN:convolutional neural network))を含み得、1つ又は複数の機械学習モデルは、(たとえば、いくつかのデバイスからの)いくつかのタイプの撮像データ1308に対応するアノテーションを生成するように訓練され得る。少なくとも1つの実施例では、次いで、AI支援アノテーション1310は、グランド・トゥルース・データを生成するために、直接使用され得るか、或いは、アノテーション・ツールを使用して調整又は微調整され得る。少なくとも1つの実施例では、AI支援アノテーション1310、ラベル付きクリニック・データ1312、又はそれらの組合せが、機械学習モデルを訓練するためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、訓練された機械学習モデルは出力モデル1316と呼ばれることがあり、本明細書で説明されるように、導入システム1306によって使用され得る。
【0130】
少なくとも1つの実施例では、訓練パイプライン1404(
図14)は、施設1302が、導入システム1306中の1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実施する際に使用するための機械学習モデルを必要とするが、施設1302は現在そのような機械学習モデルを有しないことがある(或いは、そのような目的のために最適化された、効率的な、又は有効なモデルを有しないことがある)シナリオを含み得る。少なくとも1つの実施例では、既存の機械学習モデルが、モデル・レジストリ1324から選択され得る。少なくとも1つの実施例では、モデル・レジストリ1324は、撮像データに対して様々な異なる推論タスクを実施するように訓練された機械学習モデルを含み得る。少なくとも1つの実施例では、モデル・レジストリ1324中の機械学習モデルは、施設1302とは異なる施設(たとえば、離れた場所にある施設)からの撮像データに関して訓練されていることがある。少なくとも1つの実施例では、機械学習モデルは、1つのロケーション、2つのロケーション、又は任意の数のロケーションからの撮像データに関して訓練されていることがある。少なくとも1つの実施例では、特定のロケーションからの撮像データに関して訓練されているとき、訓練は、そのロケーションにおいて行われ得るか、或いは少なくとも、撮像データの機密性を保護するか又は撮像データが構外へ転送されるのを制限する様式で、行われ得る。少なくとも1つの実施例では、1つのロケーションにおいてモデルが訓練されると、又は部分的に訓練されると、機械学習モデルはモデル・レジストリ1324に追加され得る。少なくとも1つの実施例では、次いで、機械学習モデルは、任意の数の他の施設において再訓練又は更新され得、再訓練又は更新されたモデルが、モデル・レジストリ1324において利用可能にされ得る。少なくとも1つの実施例では、次いで、機械学習モデルは、モデル・レジストリ1324から選択され得、出力モデル1316と呼ばれることがあり、導入システムの1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実施するために導入システム1306において使用され得る。
【0131】
少なくとも1つの実施例では、訓練パイプライン1404(
図14)、シナリオは、施設1302が、導入システム1306中の1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実施する際に使用するための機械学習モデルを必要とすることを含み得るが、施設1302は現在そのような機械学習モデルを有しないことがある(或いは、そのような目的のために最適化された、効率的な、又は有効なモデルを有しないことがある)。少なくとも1つの実施例では、モデル・レジストリ1324から選択された機械学習モデルは、母集団、機械学習モデルを訓練するために使用される訓練データの頑健性、訓練データの異常の多様性、及び/又は訓練データに伴う他の問題における差異のために、施設1302において生成される撮像データ1308のために微調整又は最適化されないことがある。少なくとも1つの実施例では、機械学習モデルを再訓練又は更新するためのグランド・トゥルース・データとして使用されるべき撮像データ1308に対応するアノテーションを生成するのを補助するために、AI支援アノテーション1310が使用され得る。少なくとも1つの実施例では、ラベル付きデータ1312が、機械学習モデルを訓練するためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、機械学習モデルを再訓練又は更新することは、モデル訓練1314と呼ばれることがある。少なくとも1つの実施例では、モデル訓練1314、たとえばAI支援アノテーション1310、ラベル付きクリニック・データ1312、又はそれらの組合せは、機械学習モデルを再訓練又は更新するためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、訓練された機械学習モデルは出力モデル1316と呼ばれることがあり、本明細書で説明されるように、導入システム1306によって使用され得る。
【0132】
少なくとも1つの実施例では、導入システム1306は、ソフトウェア1318、サービス1320、ハードウェア1322、並びに/又は他の構成要素、特徴、及び機能性を含み得る。少なくとも1つの実施例では、導入システム1306は、ソフトウェア「スタック」を含み得、それにより、ソフトウェア1318は、サービス1320の上に築かれ得、サービス1320を使用して処理タスクのいくつか又はすべてを実施し得、サービス1320及びソフトウェア1318は、ハードウェア1322の上に築かれ、ハードウェア1322を使用して、導入システム1306の処理、ストレージ、及び/又は他のコンピュート・タスクを実行し得る。少なくとも1つの実施例では、ソフトウェア1318は、任意の数の異なるコンテナを含み得、各コンテナは、アプリケーションのインスタンス化を実行し得る。少なくとも1つの実施例では、各アプリケーションは、先進処理及び推論パイプライン中の1つ又は複数の処理タスク(たとえば、推論、物体検出、特徴検出、セグメント化、画像強調、キャリブレーションなど)を実施し得る。少なくとも1つの実施例では、先進処理及び推論パイプラインは、(たとえば、使用可能なデータ・タイプに出力をコンバートするために)パイプラインを通して処理した後に、各コンテナによる使用及び/又は施設1302による使用のための撮像データを受信及び構成するコンテナに加えて、撮像データ1308を処理するために所望されるか又は必要とされる異なるコンテナの選択に基づいて、定義され得る。少なくとも1つの実施例では、(たとえば、パイプラインを作り上げる)ソフトウェア1318内のコンテナの組合せは、(本明細書でより詳細に説明されるように)仮想機器と呼ばれることがあり、仮想機器は、サービス1320及びハードウェア1322を活用して、コンテナにおいてインスタンス化されたアプリケーションのいくつか又はすべての処理タスクを実行し得る。
【0133】
少なくとも1つの実施例では、データ処理パイプラインは、推論要求(たとえば、導入システム1306のユーザからの要求)に応答して、特定のフォーマットで入力データ(たとえば、撮像データ1308)を受信し得る。少なくとも1つの実施例では、入力データは、1つ又は複数の撮像デバイスによって生成される1つ又は複数の画像、ビデオ、及び/又は他のデータ表現を表し得る。少なくとも1つの実施例では、データは、1つ又は複数のアプリケーションによる処理のためにデータを準備するために、データ処理パイプラインの一部としての事前処理を受け得る。少なくとも1つの実施例では、次のアプリケーションのための出力データを準備するために、並びに/或いは、(たとえば、推論要求への応答としての)ユーザによる送信及び/又は使用のための出力データを準備するために、パイプラインの1つ又は複数の推論タスク又は他の処理タスクの出力に対して後処理が実施され得る。少なくとも1つの実施例では、推論タスクは、訓練システム1304の出力モデル1316を含み得る、訓練された又は導入されたニューラル・ネットワークなど、1つ又は複数の機械学習モデルによって実施され得る。
【0134】
少なくとも1つの実施例では、データ処理パイプラインのタスクは、(1つ又は複数の)コンテナ中にカプセル化され得、(1つ又は複数の)コンテナは、各々、アプリケーションの個別の完全に機能的なインスタンス化と、機械学習モデルを参照することが可能である仮想化コンピューティング環境とを表す。少なくとも1つの実施例では、コンテナ又はアプリケーションは、(本明細書でより詳細に説明される)コンテナ・レジストリのプライベート(たとえば、アクセスの制限された)エリアに公開され得、訓練された又は導入されたモデルは、モデル・レジストリ1324に記憶され、1つ又は複数のアプリケーションに関連付けられ得る。少なくとも1つの実施例では、アプリケーションの画像(たとえば、コンテナ画像)は、コンテナ・レジストリにおいて利用可能であり得、パイプラインにおける導入のためにユーザによってコンテナ・レジストリから選択されると、画像は、ユーザのシステムによる使用のためのアプリケーションのインスタンス化のためのコンテナを生成するために使用され得る。
【0135】
少なくとも1つの実施例では、開発者(たとえば、ソフトウェア開発者、臨床医、医師など)は、供給されたデータに対して画像処理及び/又は推論を実施するためのアプリケーションを(たとえばコンテナとして)開発、公開、及び記憶し得る。少なくとも1つの実施例では、開発、公開、及び/又は記憶は、(たとえば、開発されたアプリケーション及び/又はコンテナがシステムに準拠するか又はシステムと互換性があることを確実にするために)システムに関連付けられたソフトウェア開発キット(SDK:software development kit)を使用して実施され得る。少なくとも1つの実施例では、開発されたアプリケーションは、システム(たとえば、
図14のシステム1400)としてサービス1320のうちの少なくともいくつかをサポートし得るSDKを用いて、ローカルに(たとえば、第1の施設において、第1の施設からのデータに対して)テストされ得る。少なくとも1つの実施例では、DICOM物体は、1つから数百個の画像又は他のデータ・タイプをどこにでも含んでいることがあるので、及びデータの変動により、開発者は、入って来るデータの抽出及び準備を管理すること(たとえば、アプリケーションのための構築物を設定すること、事前処理をアプリケーションに組み込むことなど)について責任を負うことがある。少なくとも1つの実施例では、システム1400によって(たとえば、精度について)検証されると、アプリケーションは、ユーザの施設(たとえば、第2の施設)におけるデータに対して1つ又は複数の処理タスクを実施するために、ユーザによる選択及び/又は実装のためにコンテナ・レジストリにおいて利用可能になり得る。
【0136】
少なくとも1つの実施例では、次いで、開発者は、アプリケーション又はコンテナを、システム(たとえば、
図14のシステム1400)のユーザによるアクセス及び使用のためにネットワークを通して共有し得る。少なくとも1つの実施例では、完成した及び検証されたアプリケーション又はコンテナは、コンテナ・レジストリに記憶され得、関連する機械学習モデルは、モデル・レジストリ1324に記憶され得る。少なくとも1つの実施例では、推論又は画像処理要求を提供する要求元エンティティは、アプリケーション、コンテナ、データセット、機械学習モデルなどについてコンテナ・レジストリ及び/又はモデル・レジストリ1324をブラウズし、データ処理パイプライン中に含めるための要素の所望の組合せを選択し、撮像処理要求をサブミットし得る。少なくとも1つの実施例では、要求は、要求を実施するために必要である入力データ(及び、いくつかの実例では、関連する患者データ)を含み得、並びに/或いは、要求を処理する際に実行されるべき(1つ又は複数の)アプリケーション及び/又は機械学習モデルの選択を含み得る。少なくとも1つの実施例では、次いで、要求は、データ処理パイプラインの処理を実施するために導入システム1306(たとえば、クラウド)の1つ又は複数の構成要素に渡され得る。少なくとも1つの実施例では、導入システム1306による処理は、コンテナ・レジストリ及び/又はモデル・レジストリ1324からの選択された要素(たとえば、アプリケーション、コンテナ、モデルなど)を参照することを含み得る。少なくとも1つの実施例では、パイプラインによって結果が生成されると、結果は、参照のために(たとえば、ローカルの、構内のワークステーション又は端末上で実行している視聴アプリケーション・スイートにおいて視聴するために)ユーザに返され得る。
【0137】
少なくとも1つの実施例では、パイプラインにおけるアプリケーション又はコンテナの処理又は実行を補助するために、サービス1320が活用され得る。少なくとも1つの実施例では、サービス1320は、コンピュート・サービス、人工知能(AI:artificial intelligence)サービス、視覚化サービス、及び/又は他のサービス・タイプを含み得る。少なくとも1つの実施例では、サービス1320は、ソフトウェア1318中の1つ又は複数のアプリケーションに共通である機能性を提供し得、したがって、機能性は、アプリケーションによってコール又は活用され得るサービスに対して抽象化され得る。少なくとも1つの実施例では、サービス1320によって提供される機能性は、動的に及びより効率的に稼働し得、また、(たとえば、並列コンピューティング・プラットフォーム1430(
図14)を使用して)アプリケーションが並列にデータを処理することを可能にすることによって、良好にスケーリングし得る。少なくとも1つの実施例では、サービス1320によって与えられる同じ機能性を共有する各アプリケーションが、サービス1320のそれぞれのインスタンスを有することを必要とされるのではなく、サービス1320は、様々なアプリケーション間で及びそれらの間で共有され得る。少なくとも1つの実施例では、サービスは、非限定的な実例として、検出又はセグメント化タスクを実行するために使用され得る推論サーバ又はエンジンを含み得る。少なくとも1つの実施例では、機械学習モデル訓練及び/又は再訓練能力(capability)を提供し得るモデル訓練サービスが含まれ得る。少なくとも1つの実施例では、GPU加速データ(たとえば、DICOM、RIS、CIS、REST準拠、RPC、生など)抽出、リサイジング、スケーリング、及び/又は他の拡張を提供し得るデータ拡張サービスがさらに含まれ得る。少なくとも1つの実施例では、2次元(2D)及び/又は3次元(3D:three-dimensional)のモデルにリアル感を追加するために、レイ・トレーシング、ラスタ化、ノイズ除去、鮮鋭化などの画像レンダリング効果を追加し得る視覚化サービスが使用され得る。少なくとも1つの実施例では、仮想機器のパイプライン内の他のアプリケーションについてビーム形成、セグメント化、推論、撮像、及び/又はサポートを提供する仮想機器サービスが含まれ得る。
【0138】
少なくとも1つの実施例では、サービス1320がAIサービス(たとえば、推論サービス)を含む場合、1つ又は複数の機械学習モデルは、(1つ又は複数の)機械学習モデル、又はその処理を、アプリケーション実行の一部として実行するように推論サービス(たとえば、推論サーバ)を(たとえば、APIコールとして)コールすることによって、実行され得る。少なくとも1つの実施例では、セグメント化タスクのための1つ又は複数の機械学習モデルを別のアプリケーションが含む場合、アプリケーションは、セグメント化タスクに関連付けられた処理動作のうちの1つ又は複数を実施するための機械学習モデルを実行するように、推論サービスをコールし得る。少なくとも1つの実施例では、セグメント化アプリケーションと異常検出アプリケーションとを含む先進処理及び推論パイプラインを実装するソフトウェア1318は、1つ又は複数の推論タスクを実施するために各アプリケーションが同じ推論サービスをコールし得るので、合理化され得る。
【0139】
少なくとも1つの実施例では、ハードウェア1322は、GPU、CPU、グラフィックス・カード、AI/深層学習システム(たとえば、NVIDIAのDGXなどのAIスーパーコンピュータ)、クラウド・プラットフォーム、又はそれらの組合せを含み得る。少なくとも1つの実施例では、異なるタイプのハードウェア1322が、導入システム1306中のソフトウェア1318及びサービス1320の効率的で専用のサポートを提供するために使用され得る。少なくとも1つの実施例では、画像処理及び生成の効率、精度、及び有効性を改善するために、AI/深層学習システム内、クラウド・システム中、及び/又は導入システム1306の他の処理構成要素中で、ローカルで(たとえば、施設1302において)処理するためのGPU処理の使用が実装され得る。少なくとも1つの実施例では、ソフトウェア1318及び/又はサービス1320は、非限定的な実例として、深層学習、機械学習、及び/又は高性能コンピューティングに関するGPU処理のために最適化され得る。少なくとも1つの実施例では、導入システム1306及び/又は訓練システム1304のコンピューティング環境の少なくとも一部は、データセンタの1つ又は複数のスーパーコンピュータ又は高性能コンピューティング・システムにおいて、GPU最適化ソフトウェア(たとえば、NVIDIAのDGXシステムのハードウェアとソフトウェアとの組合せ)を用いて実行され得る。少なくとも1つの実施例では、ハードウェア1322は、任意の数のGPUを含み得、それらのGPUは、本明細書で説明されるように、データの並列処理を実施するためにコールされ得る。少なくとも1つの実施例では、クラウド・プラットフォームは、深層学習タスク、機械学習タスク、又は他のコンピューティング・タスクのGPU最適化実行のためのGPU処理をさらに含み得る。少なくとも1つの実施例では、クラウド・プラットフォーム(たとえば、NVIDIAのNGC)は、(たとえば、NVIDIAのDGXシステム上で提供される)(1つ又は複数の)AI/深層学習スーパーコンピュータ及び/又はGPU最適化ソフトウェアを、ハードウェア抽象化及びスケーリング・プラットフォームとして使用して、実行され得る。少なくとも1つの実施例では、クラウド・プラットフォームは、シームレスなスケーリング及びロード・バランシングを可能にするために、複数のGPUに対するアプリケーション・コンテナ・クラスタリング・システム又はオーケストレーション・システム(たとえば、KUBERNETES)を統合し得る。
【0140】
図14は、少なくとも1つの実施例による、撮像導入パイプラインを生成及び導入するための例示的なシステム1400のためのシステム図である。少なくとも1つの実施例では、システム1400は、
図13のプロセス1300、並びに/又は先進処理及び推論パイプラインを含む他のプロセスを実装するために使用され得る。少なくとも1つの実施例では、システム1400は、訓練システム1304と導入システム1306とを含み得る。少なくとも1つの実施例では、訓練システム1304及び導入システム1306は、本明細書で説明されるように、ソフトウェア1318、サービス1320、及び/又はハードウェア1322を使用して実装され得る。
【0141】
少なくとも1つの実施例では、システム1400(たとえば、訓練システム1304及び/又は導入システム1306)は、(たとえば、クラウド1426を使用する)クラウド・コンピューティング環境において実装され得る。少なくとも1つの実施例では、システム1400は、ヘルスケア・サービス施設に関してローカルに、又はクラウド・コンピューティング・リソースとローカル・コンピューティング・リソースの両方の組合せとして、実装され得る。少なくとも1つの実施例では、クラウド1426中のAPIへのアクセスは、制定されたセキュリティ対策又はプロトコルを通して、許可されたユーザに限定され得る。少なくとも1つの実施例では、セキュリティ・プロトコルはウェブ・トークンを含み得、ウェブ・トークンは、認証(たとえば、AuthN、AuthZ、Glueconなど)サービスによって署名され得、適切な許可を持ち得る。少なくとも1つの実施例では、(本明細書で説明される)仮想機器のAPI、又はシステム1400の他のインスタンス化は、対話について検査又は許可されたパブリックIPのセットに限定され得る。
【0142】
少なくとも1つの実施例では、システム1400の様々な構成要素は、ワイヤード及び/又はワイヤレス通信プロトコルを介して、限定はしないがローカル・エリア・ネットワーク(LAN)及び/又はワイド・エリア・ネットワーク(WAN)を含む様々な異なるネットワーク・タイプのいずれかを使用して、互いの間で通信し得る。少なくとも1つの実施例では、(たとえば、推論要求を送信するための、推論要求の結果を受信するためのなど)施設とシステム1400の構成要素との間の通信は、(1つ又は複数の)データ・バス、ワイヤレス・データ・プロトコル(Wi-Fi)、ワイヤード・データ・プロトコル(たとえば、イーサネット)などを介して通信され得る。
【0143】
少なくとも1つの実施例では、訓練システム1304は、
図13に関して本明細書で説明されたものと同様の訓練パイプライン1404を実行し得る。少なくとも1つの実施例では、1つ又は複数の機械学習モデルが導入システム1306によって導入パイプライン1410において使用されるべきである場合、訓練パイプライン1404は、1つ又は複数の(たとえば、事前訓練された)モデルを訓練又は再訓練し、並びに/或いは、事前訓練されたモデル1406のうちの1つ又は複数を(たとえば、再訓練又は更新の必要なしに)実装するために、使用され得る。少なくとも1つの実施例では、訓練パイプライン1404の結果として、(1つ又は複数の)出力モデル1316が生成され得る。少なくとも1つの実施例では、訓練パイプライン1404は、限定はしないが、撮像データ(又は他の入力データ)コンバージョン又は適応など、任意の数の処理ステップを含み得る。少なくとも1つの実施例では、導入システム1306によって使用される異なる機械学習モデルについて、異なる訓練パイプライン1404が使用され得る。少なくとも1つの実施例では、
図13に関して説明された第1の実例と同様の訓練パイプライン1404は、第1の機械学習モデルのために使用され得、
図13に関して説明された第2の実例と同様の訓練パイプライン1404は、第2の機械学習モデルのために使用され得、
図13に関して説明された第3の実例と同様の訓練パイプライン1404は、第3の機械学習モデルのために使用され得る。少なくとも1つの実施例では、各それぞれの機械学習モデルについて何が必要とされるかに応じて、訓練システム1304内のタスクの任意の組合せが使用され得る。少なくとも1つの実施例では、機械学習モデルのうちの1つ又は複数は、すでに訓練され、導入の準備ができていることがあり、したがって、機械学習モデルは、訓練システム1304によるいかなる処理をも受けないことがあり、導入システム1306によって実装され得る。
【0144】
少なくとも1つの実施例では、(1つ又は複数の)出力モデル1316及び/又は(1つ又は複数の)事前訓練されたモデル1406は、実装形態又は実施例に応じて任意のタイプの機械学習モデルを含み得る。少なくとも1つの実施例では、及び限定はしないが、システム1400によって使用される機械学習モデルは、線形回帰、ロジスティック回帰、判定ツリー、サポート・ベクター・マシン(SVM)、単純ベイズ、k近傍法(Knn:k-nearest neighbor)、k平均クラスタリング、ランダム・フォレスト、次元低減アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク(たとえば、オート・エンコーダ、畳み込み、リカレント、パーセプトロン、長/短期メモリ(LSTM:Long/Short Term Memory)、ホップフィールド、ボルツマン、深層信念、逆畳み込み、敵対的生成、液体状態機械など)を使用する(1つ又は複数の)機械学習モデル、及び/又は他のタイプの機械学習モデルを含み得る。
【0145】
少なくとも1つの実施例では、訓練パイプライン1404は、少なくとも
図15Bに関して本明細書でより詳細に説明されるように、AI支援アノテーションを含み得る。少なくとも1つの実施例では、ラベル付きデータ1312(たとえば、従来のアノテーション)は、任意の数の技法によって生成され得る。少なくとも1つの実施例では、ラベル又は他のアノテーションは、描画プログラム(たとえば、アノテーション・プログラム)、コンピュータ支援設計(CAD:computer aided design)プログラム、ラベル付けプログラム、グランド・トゥルースのためのアノテーション又はラベルを生成するのに好適な別のタイプのプログラム内で生成され得、及び/或いは、いくつかの実例では、手書きされ得る。少なくとも1つの実施例では、グランド・トゥルース・データは、合成的に作り出され(たとえば、コンピュータ・モデル又はレンダリングから生成され)、現実的に作り出され(たとえば、実世界のデータから設計され、作り出され)、(たとえば、データから特徴を抽出し、次いでラベルを生成するために、特徴分析及び学習を使用して)機械自動化され、人間によりアノテーション付けされ(たとえば、ラベラ、又はアノテーション専門家が、ラベルのロケーションを定義し)、及び/又はそれらの組合せであり得る。少なくとも1つの実施例では、撮像データ1308の各インスタンス(又は機械学習モデルによって使用される他のデータ・タイプ)について、訓練システム1304によって生成される対応するグランド・トゥルース・データがあり得る。少なくとも1つの実施例では、訓練パイプライン1404中に含まれるAI支援アノテーションに加えて、又はその代わりにのいずれかで、導入パイプライン1410の一部としてAI支援アノテーションが実施され得る。少なくとも1つの実施例では、システム1400は多層プラットフォームを含み得、多層プラットフォームは、1つ又は複数の医療撮像及び診断機能を実施し得る診断アプリケーション(又は他のアプリケーション・タイプ)のソフトウェア層(たとえば、ソフトウェア1318)を含み得る。少なくとも1つの実施例では、システム1400は、1つ又は複数の施設のPACSサーバ・ネットワークに、(たとえば、暗号化リンクを介して)通信可能に結合され得る。少なくとも1つの実施例では、システム1400は、機械学習モデルを訓練すること、機械学習モデルを導入すること、画像処理、推論、及び/又は他の動作などの動作を実施するために、PACSサーバからのデータにアクセスし、それを参照するように構成され得る。
【0146】
少なくとも1つの実施例では、ソフトウェア層は、セキュアな、暗号化された、及び/又は認証されたAPIとして実装され得、このAPIを通して、アプリケーション又はコンテナが、(1つ又は複数の)外部環境(たとえば、施設1302)から呼び出され(たとえば、コールされ)得る。少なくとも1つの実施例では、次いで、アプリケーションは、それぞれのアプリケーションに関連付けられたコンピュート、AI、又は視覚化タスクを実施するために1つ又は複数のサービス1320をコール又は実行し得、ソフトウェア1318及び/又はサービス1320は、ハードウェア1322を活用して、処理タスクを有効で効率的な様式で実施し得る。
【0147】
少なくとも1つの実施例では、導入システム1306は、導入パイプライン1410を実行し得る。少なくとも1つの実施例では、導入パイプライン1410は任意の数のアプリケーションを含み得、それらのアプリケーションは、上記で説明されたように、AI支援アノテーションを含む、撮像デバイス、シーケンシング・デバイス、ゲノミクス・デバイスなどによって生成された撮像データ(及び/又は他のデータ・タイプ)に連続的に、非連続的に、又は他のやり方で適用され得る。少なくとも1つの実施例では、本明細書で説明されるように、個々のデバイスのための導入パイプライン1410は、デバイスのための仮想機器(たとえば、仮想超音波機器、仮想CTスキャン機器、仮想シーケンシング機器など)と呼ばれることがある。少なくとも1つの実施例では、デバイスによって生成されるデータから所望される情報に応じて、単一のデバイスについて、2つ以上の導入パイプライン1410があり得る。少なくとも1つの実施例では、異常の検出がMRIマシンから所望される場合、第1の導入パイプライン1410があり得、画像強調がMRIマシンの出力から所望される場合、第2の導入パイプライン1410があり得る。
【0148】
少なくとも1つの実施例では、画像生成アプリケーションは、機械学習モデルの使用を含む処理タスクを含み得る。少なくとも1つの実施例では、ユーザは、ユーザ自身の機械学習モデルを使用すること、又はモデル・レジストリ1324から機械学習モデルを選択することを所望し得る。少なくとも1つの実施例では、ユーザは、処理タスクを実施するために、ユーザ自身の機械学習モデルを実装するか、又はアプリケーション中に含めるための機械学習モデルを選択し得る。少なくとも1つの実施例では、アプリケーションは選択可能及びカスタマイズ可能であり得、アプリケーションの構築を定義することによって、特定のユーザのためのアプリケーションの導入及び実装が、よりシームレスなユーザ・エクスペリエンスとして提示される。少なくとも1つの実施例では、サービス1320及びハードウェア1322など、システム1400の他の特徴を活用することによって、導入パイプライン1410は、なお一層ユーザ・フレンドリになり、より容易な統合を提供し、より正確で、効率的で、タイムリーな結果を作り出し得る。
【0149】
少なくとも1つの実施例では、導入システム1306はユーザ・インターフェース1414(たとえば、グラフィカル・ユーザ・インターフェース、ウェブ・インターフェースなど)を含み得、ユーザ・インターフェース1414は、(1つ又は複数の)導入パイプライン1410中に含めるためのアプリケーションを選択し、アプリケーションを配置し、アプリケーション又はそのパラメータ若しくは構築を修正又は変更し、セットアップ及び/又は導入中に(1つ又は複数の)導入パイプライン1410を使用し、それと対話し、並びに/或いは他のやり方で導入システム1306と対話するために使用され得る。少なくとも1つの実施例では、訓練システム1304に関して示されていないが、ユーザ・インターフェース1414(又は異なるユーザ・インターフェース)は、導入システム1306における使用のためのモデルを選択するために、訓練システム1304において訓練又は再訓練するためのモデルを選択するために、及び/或いは訓練システム1304と他のやり方で対話するために使用され得る。
【0150】
少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1410のアプリケーション又はコンテナと、サービス1320及び/又はハードウェア1322との間で対話を管理するために、アプリケーション・オーケストレーション・システム1428に加えてパイプライン・マネージャ1412が使用され得る。少なくとも1つの実施例では、パイプライン・マネージャ1412は、アプリケーションからアプリケーションへの対話、アプリケーションからサービス1320への対話、及び/或いはアプリケーション又はサービスからハードウェア1322への対話を容易にするように構成され得る。少なくとも1つの実施例では、ソフトウェア1318中に含まれるように示されているが、これは限定を意図しておらず、(たとえば、
図12ccに示されている)いくつかの実例では、パイプライン・マネージャ1412は、サービス1320中に含まれ得る。少なくとも1つの実施例では、アプリケーション・オーケストレーション・システム1428(たとえば、Kubernetes、DOCKERなど)は、コンテナ・オーケストレーション・システムを含み得、コンテナ・オーケストレーション・システムは、アプリケーションを、協調、管理、スケーリング、及び導入のための論理ユニットとして、コンテナにグループ化し得る。少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1410からのアプリケーション(たとえば、再構築アプリケーション、セグメント化アプリケーションなど)を個々のコンテナに関連付けることよって、各アプリケーションは、自己完結型環境(たとえば、カーネル・レベル)において実行して、スピード及び効率を向上させ得る。
【0151】
少なくとも1つの実施例では、各アプリケーション及び/又はコンテナ(又はその画像)は、個々に開発、修正、及び導入され得(たとえば、第1のユーザ又は開発者が、第1のアプリケーションを開発、修正、及び導入し得、第2のユーザ又は開発者が、第1のユーザ又は開発者とは別に第2のアプリケーションを開発、修正、及び導入し得)、これは、(1つ又は複数の)別のアプリケーション又は(1つ又は複数の)コンテナのタスクに邪魔されることなしに単一のアプリケーション及び/又は(1つ又は複数の)コンテナのタスクに集中し、注意を払うことを可能にし得る。少なくとも1つの実施例では、異なるコンテナ間又はアプリケーション間の通信、及び協調が、パイプライン・マネージャ1412及びアプリケーション・オーケストレーション・システム1428によって補助され得る。少なくとも1つの実施例では、各コンテナ又はアプリケーションの予想される入力及び/又は出力が、(たとえば、アプリケーション又はコンテナの構築に基づいて)システムによって知られている限り、アプリケーション・オーケストレーション・システム1428及び/又はパイプライン・マネージャ1412は、アプリケーション又はコンテナの各々の間の通信、及びそれらの間のリソースの共有を容易にし得る。少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1410中のアプリケーション又はコンテナのうちの1つ又は複数は、同じサービス及びリソースを共有し得るので、アプリケーション・オーケストレーション・システム1428は、様々なアプリケーション又はコンテナの間でサービス又はリソースをオーケストレートし、ロード・バランシングを行い、共有を決定し得る。少なくとも1つの実施例では、アプリケーション又はコンテナのリソース要件、これらのリソースの現在の使用量又は計画された使用量、及びリソースの利用可能性を追跡するために、スケジューラが使用され得る。少なくとも1つの実施例では、したがって、スケジューラは、異なるアプリケーションにリソースを割り振り、システムの要件及び利用可能性を考慮してアプリケーションの間でリソースを分散させ得る。いくつかの実例では、スケジューラ(及び/又はアプリケーション・オーケストレーション・システム1428の他の構成要素)は、サービス品質(QoS:quality of service)、(たとえば、リアルタイム処理を実行すべきか遅延処理を実行すべきかを決定するための)データ出力を必要とする緊急度など、システムに課される制約(たとえば、ユーザ制約)に基づいて、リソースの利用可能性及び分散を決定し得る。
【0152】
少なくとも1つの実施例では、導入システム1306中のアプリケーション又はコンテナによって活用及び共有されるサービス1320は、コンピュート・サービス1416、AIサービス1418、視覚化サービス1420、及び/又は他のサービス・タイプを含み得る。少なくとも1つの実施例では、アプリケーションは、サービス1320のうちの1つ又は複数をコール(たとえば、実行)して、アプリケーションのための処理動作を実施し得る。少なくとも1つの実施例では、コンピュート・サービス1416は、スーパーコンピューティング又は他の高性能コンピューティング(HPC:high-performance computing)タスクを実施するために、アプリケーションによって活用され得る。少なくとも1つの実施例では、アプリケーションのうちの1つ又は複数を通してデータを、及び/又は単一のアプリケーションの1つ又は複数のタスクを実質的に同時に処理するための(たとえば、並列コンピューティング・プラットフォーム1430を使用する)並列処理を実施するために、(1つ又は複数の)コンピュート・サービス1416が活用され得る。少なくとも1つの実施例では、並列コンピューティング・プラットフォーム1430(たとえば、NVIDIAのCUDA)は、GPU(たとえば、GPU1422)上での汎用コンピューティング(GPGPU:general purpose computing on GPUs)を可能にし得る。少なくとも1つの実施例では、並列コンピューティング・プラットフォーム1430のソフトウェア層は、コンピュート・カーネルの実行のために、仮想命令セット及びGPUの並列算出要素へのアクセスを提供し得る。少なくとも1つの実施例では、並列コンピューティング・プラットフォーム1430はメモリを含み得、いくつかの実施例では、メモリは、複数のコンテナの間で、及び/又は単一のコンテナ内の異なる処理タスクの間で共有され得る。少なくとも1つの実施例では、(たとえば、アプリケーションの複数の異なる段階又は複数のアプリケーションが同じ情報を処理している場合)並列コンピューティング・プラットフォーム1430のメモリの共有セグメントからの同じデータを使用するために、複数のコンテナについて及び/又はコンテナ内の複数のプロセスについて、プロセス間通信(IPC:inter-process communication)コールが生成され得る。少なくとも1つの実施例では、データのコピーをとり、データをメモリ中の異なるロケーションに移動すること(たとえば、読取り/書込み動作)ではなく、メモリの同じロケーション中の同じデータが、任意の数の処理タスクのために(たとえば、同じ時間、異なる時間などに)使用され得る。少なくとも1つの実施例では、データが使用されて、処理の結果として新しいデータが生成されるとき、データの新しいロケーションのこの情報は、様々なアプリケーション間で記憶及び共有され得る。少なくとも1つの実施例では、データのロケーションと、更新された又は修正されたデータのロケーションとは、コンテナ内でペイロードがどのように理解されるかの定義の一部であり得る。
【0153】
少なくとも1つの実施例では、AIサービス1418は、アプリケーションに関連付けられた(たとえば、アプリケーションの1つ又は複数の処理タスクを実施する役割を課された)(1つ又は複数の)機械学習モデルを実行するための推論サービスを実施するために活用され得る。少なくとも1つの実施例では、AIサービス1418は、AIシステム1424を活用して、セグメント化、再構築、物体検出、特徴検出、分類、及び/又は他の推論タスクのための(1つ又は複数の)機械学習モデル(たとえば、CNNなどのニューラル・ネットワーク)を実行し得る。少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1410のアプリケーションは、訓練システム1304からの出力モデル1316及び/又はアプリケーションの他のモデルのうちの1つ又は複数を使用して、撮像データに関して推論を実施し得る。少なくとも1つの実施例では、アプリケーション・オーケストレーション・システム1428(たとえば、スケジューラ)を使用する推論の2つ又はそれ以上の実例が利用可能であり得る。少なくとも1つの実施例では、第1のカテゴリは、緊急時の至急の要求に関して推論を実施するための、又は診断時の放射線医のためのなど、より高いサービス・レベルの合意を達成し得る高優先度/低レイテンシ経路を含み得る。少なくとも1つの実施例では、第2のカテゴリは、至急でないことがある要求のために、又は分析が後で実施され得る場合に使用され得る標準優先度経路を含み得る。少なくとも1つの実施例では、アプリケーション・オーケストレーション・システム1428は、AIサービス1418の異なる推論タスクのための優先度経路に基づいて、リソース(たとえば、サービス1320及び/又はハードウェア1322)を分散させ得る。
【0154】
少なくとも1つの実施例では、共有ストレージが、システム1400内でAIサービス1418に取り付けられ得る。少なくとも1つの実施例では、共有ストレージは、キャッシュ(又は他のストレージ・デバイス・タイプ)として動作し得、アプリケーションからの推論要求を処理するために使用され得る。少なくとも1つの実施例では、推論要求がサブミットされたとき、要求は、導入システム1306のAPIインスタンスのセットによって受信され得、要求を処理するために、1つ又は複数のインスタンスが(たとえば、最良な適合のために、ロード・バランシングのためになど)選択され得る。少なくとも1つの実施例では、要求を処理するために、要求がデータベースに入れられ得、機械学習モデルは、まだキャッシュにない場合、モデル・レジストリ1324から位置特定され得、検証ステップは、適切な機械学習モデルがキャッシュ(たとえば、共有ストレージ)にロードされ、及び/又はモデルのコピーがキャッシュに保存され得ることを確実にし得る。少なくとも1つの実施例では、アプリケーションがまだ稼働していない場合又はアプリケーションの十分なインスタンスがない場合、(たとえば、パイプライン・マネージャ1412の)スケジューラが、要求において参照されたアプリケーションを起動するために使用され得る。少なくとも1つの実施例では、モデルを実行するための推論サーバがまだ起動されていない場合、推論サーバが起動され得る。任意の数の推論サーバがモデルごとに起動され得る。少なくとも1つの実施例では、推論サーバがクラスタ化されたプル・モデルにおいて、ロード・バランシングが有利であるときはいつでもモデルがキャッシュされ得る。少なくとも1つの実施例では、推論サーバは、対応する分散型サーバに静的にロードされ得る。
【0155】
少なくとも1つの実施例では、推論は、コンテナ中で稼働する推論サーバを使用して実施され得る。少なくとも1つの実施例では、推論サーバのインスタンスは、モデル(随意に、モデルの複数のバージョン)に関連付けられ得る。少なくとも1つの実施例では、モデルに対して推論を実施するための要求が受信されたとき、推論サーバのインスタンスが存在しない場合、新しいインスタンスがロードされ得る。少なくとも1つの実施例では、推論サーバを開始するとき、モデルが推論サーバに渡され得、それにより、推論サーバが異なるインスタンスとして稼働している限り、異なるモデルにサービスするために同じコンテナが使用され得る。
【0156】
少なくとも1つの実施例では、アプリケーション実行中、所与のアプリケーションについての推論要求が受信され得、(たとえば、推論サーバのインスタンスをホストする)コンテナが(まだロードされていない場合)ロードされ得、開始プロシージャがコールされ得る。少なくとも1つの実施例では、コンテナ中の前処理論理が、(たとえば、(1つ又は複数の)CPU及び/又は(1つ又は複数の)GPUを使用して)入って来るデータに対する任意の追加の前処理をロード、復号、及び/又は実施し得る。少なくとも1つの実施例では、推論のためにデータが準備されると、コンテナは、必要に応じてデータに関して推論を実施し得る。少なくとも1つの実施例では、これは、1つの画像(たとえば、手のX線)に対する単一の推論コールを含み得るか、又は何百もの画像(たとえば、胸のCT)に関する推論を必要とし得る。少なくとも1つの実施例では、アプリケーションは、完了する前に結果を要約し得、これは、限定はしないが、単一の信頼性スコア、ピクセル・レベル・セグメント化、ボクセル・レベル・セグメント化、視覚化を生成すること、又は所見を要約するためにテキストを生成することを含み得る。少なくとも1つの実施例では、異なるモデル又はアプリケーションは、異なる優先度を割り当てられ得る。たとえば、リアルタイム(TAT<1分)の優先度を有するモデルもあれば、低優先度(たとえば、TAT<10分)を有するモデルもある。少なくとも1つの実施例では、モデル実行時間は、要求元の機関又はエンティティから測定され得、パートナー・ネットワーク・トラバーサル時間、並びに推論サービスに対する実行を含み得る。
【0157】
少なくとも1つの実施例では、サービス1320と推論アプリケーションとの間での要求の転送は、ソフトウェア開発キット(SDK)の後ろに隠され得、キューを通してロバストなトランスポートが提供され得る。少なくとも1つの実施例では、個々のアプリケーション/テナントIDの組合せについて、要求がAPIを介してキューに入れられ、SDKは、キューから要求を引き出し、要求をアプリケーションに与える。少なくとも1つの実施例では、SDKが要求をピックアップする環境において、キューの名称が提供され得る。少なくとも1つの実施例では、キューを通した非同期通信は、その通信が、ワークが利用可能になったときに、アプリケーションの任意のインスタンスがそのワークをピックアップすることを可能にし得るので、有用であり得る。結果は、データが失われないことを確実にするために、キューを通して返送され得る。少なくとも1つの実施例では、最高優先度のワークは、アプリケーションのほとんどのインスタンスがキューに接続された、キューに進み得、一方で、最低優先度のワークは、単一のインスタンスがキューに接続された、受信された順番にタスクを処理するキューに進み得るので、キューは、ワークをセグメント化するアビリティをも提供し得る。少なくとも1つの実施例では、アプリケーションは、クラウド1426において生成されたGPU加速インスタンス上で稼働し得、推論サービスは、GPU上で推論を実施し得る。
【0158】
少なくとも1つの実施例では、視覚化サービス1420が、アプリケーション及び/又は(1つ又は複数の)導入パイプライン1410の出力を見るための視覚化を生成するために活用され得る。少なくとも1つの実施例では、視覚化を生成するために視覚化サービス1420によってGPU1422が活用され得る。少なくとも1つの実施例では、レイ・トレーシングなどのレンダリング効果が、より高品質の視覚化を生成するために視覚化サービス1420によって実装され得る。少なくとも1つの実施例では、視覚化は、限定はしないが、2D画像レンダリング、3Dボリューム・レンダリング、3Dボリューム再構築、2Dトモグラフィ・スライス、仮想現実表示、拡張現実表示などを含み得る。少なくとも1つの実施例では、仮想化された環境が、システムのユーザ(たとえば、医師、看護師、放射線医など)による対話のための仮想インタラクティブ表示又は環境(たとえば、仮想環境)を生成するために使用され得る。少なくとも1つの実施例では、視覚化サービス1420は、内部ビジュアライザ、シネマティクス、及び/或いは他のレンダリング又は画像処理能力又は機能性(たとえば、レイ・トレーシング、ラスタ化、内部光学など)を含み得る。
【0159】
少なくとも1つの実施例では、ハードウェア1322は、GPU1422、AIシステム1424、クラウド1426、並びに/或いは訓練システム1304及び/又は導入システム1306を実行するために使用される任意の他のハードウェアを含み得る。少なくとも1つの実施例では、GPU1422(たとえば、NVIDIAのTESLA及び/又はQUADRO GPU)は、任意の数のGPUを含み得、任意の数のGPUは、コンピュート・サービス1416、AIサービス1418、視覚化サービス1420、他のサービス、及び/或いはソフトウェア1318の特徴又は機能性のいずれかの処理タスクを実行するために使用され得る。たとえば、AIサービス1418に関して、GPU1422が、撮像データ(又は機械学習モデルによって使用される他のデータ・タイプ)に対する前処理、機械学習モデルの出力に対する後処理を実施するために、及び/又は推論を実施するために(たとえば、機械学習モデルを実行するために)使用され得る。少なくとも1つの実施例では、クラウド1426、AIシステム1424、及び/又はシステム1400の他の構成要素は、GPU1422を使用し得る。少なくとも1つの実施例では、クラウド1426は、深層学習タスクのためのGPU最適化プラットフォームを含み得る。少なくとも1つの実施例では、AIシステム1424は、GPUを使用し得、クラウド1426、或いは深層学習又は推論の役割を課された少なくとも一部分は、1つ又は複数のAIシステム1424を使用して実行され得る。したがって、ハードウェア1322は個別構成要素として示されているが、これは、限定を意図しておらず、ハードウェア1322の任意の構成要素が、ハードウェア1322の任意の他の構成要素と組み合わせられ、又はそれらによって活用され得る。
【0160】
少なくとも1つの実施例では、AIシステム1424は、推論、深層学習、機械学習、及び/又は他の人工知能タスクのために構成された専用のコンピューティング・システム(たとえば、スーパーコンピュータ又はHPC)を含み得る。少なくとも1つの実施例では、AIシステム1424(たとえば、NVIDIAのDGX)は、GPU最適化ソフトウェア(たとえば、ソフトウェア・スタック)を含み得、GPU最適化ソフトウェアは、CPU、RAM、ストレージ、及び/又は他の構成要素、特徴、又は機能性に加えて、複数のGPU1422を使用して実行され得る。少なくとも1つの実施例では、1つ又は複数のAIシステム1424は、システム1400のAIベースの処理タスクのいくつか又はすべてを実施するために、(たとえば、データ・センタにおいて)クラウド1426において実装され得る。
【0161】
少なくとも1つの実施例では、クラウド1426は、GPU加速インフラストラクチャ(たとえば、NVIDIAのNGC)を含み得、GPU加速インフラストラクチャは、システム1400の処理タスクを実行するためのGPU最適化プラットフォームを提供し得る。少なくとも1つの実施例では、クラウド1426は、システム1400のAIベースのタスクのうちの1つ又は複数を実施するための(1つ又は複数の)AIシステム1424を(たとえば、ハードウェア抽象化及びスケーリング・プラットフォームとして)含み得る。少なくとも1つの実施例では、クラウド1426は、アプリケーションとサービス1320との間でシームレスなスケーリング及びロード・バランシングを可能にするために、複数のGPUを活用してアプリケーション・オーケストレーション・システム1428と統合し得る。少なくとも1つの実施例では、クラウド1426は、本明細書で説明されるように、コンピュート・サービス1416、AIサービス1418、及び/又は視覚化サービス1420を含む、システム1400のサービス1320の少なくともいくつかを実行する役割を課され得る。少なくとも1つの実施例では、クラウド1426は、大小のバッチ推論(たとえば、NVIDIAのTENSOR RTを実行すること)を実施し、加速並列コンピューティングAPI及びプラットフォーム1430(たとえば、NVIDIAのCUDA)を提供し、アプリケーション・オーケストレーション・システム1428(たとえば、KUBERNETES)を実行し、(たとえば、より高品質のシネマティクスを作り出すためのレイ・トレーシング、2Dグラフィックス、3Dグラフィックス、及び/又は他のレンダリング技法のための)グラフィックス・レンダリングAPI及びプラットフォームを提供し得、及び/又はシステム1400のための他の機能性を提供し得る。
【0162】
図15Aは、少なくとも1つの実施例による、機械学習モデルを訓練、再訓練、又は更新するためのプロセス1500のためのデータ・フロー図を示す。少なくとも1つの実施例では、プロセス1500は、
図14のシステム1400を非限定的な実例として使用して、実行され得る。少なくとも1つの実施例では、プロセス1500は、本明細書で説明されるように、システム1400のサービス1320及び/又はハードウェア1322を活用し得る。少なくとも1つの実施例では、プロセス1500によって生成される改良されたモデル1512は、導入パイプライン1410中の1つ又は複数のコンテナ化アプリケーションのために、導入システム1306によって実行され得る。
【0163】
少なくとも1つの実施例では、モデル訓練1314は、新しい訓練データ(たとえば、顧客データセット1506、及び/又は入力データに関連付けられた新しいグランド・トゥルース・データなどの新しい入力データ)を使用して、初期モデル1504(たとえば、事前訓練されたモデル)を再訓練又は更新することを含み得る。少なくとも1つの実施例では、初期モデル1504を再訓練又は更新するために、初期モデル1504の(1つ又は複数の)出力又は損失層がリセット又は削除され得、及び/或いは、(1つ又は複数の)更新された又は新しい出力又は損失層と置き換えられ得る。少なくとも1つの実施例では、初期モデル1504は、前に微調整された、前の訓練から残っているパラメータ(たとえば、重み及び/又はバイアス)を有し得、したがって、訓練又は再訓練1314は、最初からモデルを訓練するほど長い時間がかからないか、又は多くの処理を必要としないことがある。少なくとも1つの実施例では、モデル訓練1314中に、初期モデル1504の(1つ又は複数の)リセットされた又は置き換えられた出力又は損失層を有することによって、パラメータは、新しい顧客データセット1506(たとえば、
図13の画像データ1308)に関して予測を生成する際の(1つ又は複数の)出力又は損失層の精度に関連付けられた損失計算に基づいて、新しいデータ・セットのために更新及び再調整され得る。
【0164】
少なくとも1つの実施例では、事前訓練されたモデル1406は、データ・ストア又はレジストリ(たとえば、
図13のモデル・レジストリ1324)に記憶され得る。少なくとも1つの実施例では、事前訓練されたモデル1406は、少なくとも部分的に、プロセス1500を実行する施設以外の1つ又は複数の施設において訓練されていることがある。少なくとも1つの実施例では、異なる施設の患者、対象者、又は顧客のプライバシー及び権利を保護するために、事前訓練されたモデル1406は、構内で生成された顧客又は患者データを使用して、構内で訓練されていることがある。少なくとも1つの実施例では、事前訓練されたモデル1406は、クラウド1426及び/又は他のハードウェア1322を使用して訓練され得るが、プライバシー保護された機密の患者データは、クラウド1426(又は他の構外のハードウェア)の任意の構成要素に転送されないか、それらの構成要素によって使用されないか、又はそれらの構成要素にとってアクセス不可能であり得る。少なくとも1つの実施例では、事前訓練されたモデル1406が2つ以上の施設からの患者データを使用して訓練される場合、事前訓練されたモデル1406は、各施設について個々に訓練されてから、別の施設からの患者又は顧客データに関して訓練され得る。少なくとも1つの実施例では、顧客又は患者データが(たとえば、権利放棄によって、実験での使用のために、など)プライバシー問題から解放された場合、或いは、顧客又は患者データがパブリック・データ・セット中に含まれる場合など、任意の数の施設からの顧客又は患者データが、データセンタ又は他のクラウド・コンピューティング・インフラストラクチャなど、構内及び/又は構外で事前訓練されたモデル1406を訓練するために使用され得る。
【0165】
少なくとも1つの実施例では、導入パイプライン1410における使用のためのアプリケーションを選択するとき、ユーザは、特定のアプリケーションのために使用されるべき機械学習モデルをも選択し得る。少なくとも1つの実施例では、ユーザは、使用のためのモデルを有しないことがあり、したがって、ユーザは、アプリケーションとともに使用するために事前訓練されたモデル1406を選択し得る。少なくとも1つの実施例では、事前訓練されたモデル1406は、(たとえば、患者の多様性、人口統計、使用される医療撮像デバイスのタイプなどに基づいて)ユーザの施設の顧客データセット1506に関して正確な結果を生成するために最適化されないことがある。少なくとも1つの実施例では、事前訓練されたモデル1406を、(1つ又は複数の)アプリケーションとともに使用するために導入パイプライン1410に導入する前に、事前訓練されたモデル1406は、それぞれの施設において使用するために更新、再訓練、及び/又は微調整され得る。
【0166】
少なくとも1つの実施例では、ユーザは、更新、再訓練、及び/又は微調整されるべきである事前訓練されたモデル1406を選択し得、事前訓練されたモデル1406は、プロセス1500内の訓練システム1304のための初期モデル1504と呼ばれることがある。少なくとも1つの実施例では、顧客データセット1506(たとえば、施設におけるデバイスによって生成された撮像データ、ゲノミクス・データ、シーケンシング・データ、又は他のデータ・タイプ)が、初期モデル1504に関して(限定はしないが、転移学習を含み得る)モデル訓練1314を実施して、改良されたモデル1512を生成するために、使用され得る。少なくとも1つの実施例では、顧客データセット1506に対応するグランド・トゥルース・データが、訓練システム1304によって生成され得る。少なくとも1つの実施例では、グランド・トゥルース・データは、(たとえば、
図13のラベル付きクリニック・データ1312として)施設において臨床医、科学者、医師、開業医によって、少なくとも部分的に生成され得る。
【0167】
少なくとも1つの実施例では、グランド・トゥルース・データを生成するために、AI支援アノテーション1310がいくつかの実例において使用され得る。少なくとも1つの実施例では、(たとえば、AI支援アノテーションSDKを使用して実装された)AI支援アノテーション1310は、機械学習モデル(たとえば、ニューラル・ネットワーク)を活用して、顧客データセットについて示唆又は予測されるグランド・トゥルース・データを生成し得る。少なくとも1つの実施例では、ユーザ1510は、コンピューティング・デバイス1508上のユーザ・インターフェース(グラフィカル・ユーザ・インターフェース(GUI:graphical user interface))内でアノテーション・ツールを使用し得る。
【0168】
少なくとも1つの実施例では、ユーザ1510は、コンピューティング・デバイス1508を介してGUIと対話して、(自動)アノテーションを編集又は微調整し得る。少なくとも1つの実施例では、ポリゴン編集特徴が、ポリゴンの頂点をより正確なロケーション又は微調整されたロケーションに移動するために使用され得る。
【0169】
少なくとも1つの実施例では、顧客データセット1506が、関連するグランド・トゥルース・データを有すると、(たとえば、AI支援アノテーション、手動ラベル付けなどからの)グランド・トゥルース・データが、改良されたモデル1512を生成するために、モデル訓練1314中によって使用され得る。少なくとも1つの実施例では、顧客データセット1506は、初期モデル1504に任意の回数適用され得、グランド・トゥルース・データは、改良されたモデル1512について、許容可能なレベルの精度が達成されるまで、初期モデル1504のパラメータを更新するために使用され得る。少なくとも1つの実施例では、改良されたモデル1512が生成されると、改良されたモデル1512は、医療撮像データに対して1つ又は複数の処理タスクを実施するために、施設において1つ又は複数の導入パイプライン1410内で導入され得る。
【0170】
少なくとも1つの実施例では、改良されたモデル1512は、別の施設によって選択されるべきモデル・レジストリ1324において事前訓練されたモデル1406にアップロードされ得る。少なくとも1つの実施例では、彼のプロセスは任意の数の施設において完了され得、それにより、改良されたモデル1512は、より普遍的なモデルを生成するように新しいデータセットに関して任意の回数さらに改良され得る。
【0171】
図15Bは、少なくとも1つの実施例による、事前訓練されたアノテーション・モデルを用いてアノテーション・ツールを拡張するためのクライアントサーバ・アーキテクチャ1532の例示的な図である。少なくとも1つの実施例では、AI支援アノテーション・ツール1536は、クライアントサーバ・アーキテクチャ1532に基づいてインスタンス化され得る。少なくとも1つの実施例では、撮像アプリケーション中のアノテーション・ツール1536は、放射線医が、たとえば、器官及び異常を識別するのを補助し得る。少なくとも1つの実施例では、撮像アプリケーションは、非限定的な実例として、(たとえば、3D MRI又はCTスキャンにおける)生画像1534において、関心のある特定の器官上の数個の極値点をユーザ1510が識別するのを助け、特定の器官のすべての2Dスライスについて自動アノテーション付けされた結果を受信する、ソフトウェア・ツールを含み得る。少なくとも1つの実施例では、結果は、訓練データ1538としてデータ・ストアに記憶され、(たとえば、限定はしないが)訓練のためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、コンピューティング・デバイス1508が、AI支援アノテーション1310のために極値点を送出するとき、たとえば、深層学習モデルがこのデータを入力として受信し、セグメント化された器官又は異常の推論結果を返し得る。少なくとも1つの実施例では、
図15B中のAI支援アノテーション・ツール1536Bなどの事前インスタンス化されたアノテーション・ツールは、たとえばアノテーション・モデル・レジストリに記憶された、事前訓練されたモデル1542のセットを含み得るアノテーション支援サーバ1540などのサーバに、APIコール(たとえば、APIコール1544)を行うことによって、拡張され得る。少なくとも1つの実施例では、アノテーション・モデル・レジストリは、特定の器官又は異常に対してAI支援アノテーションを実施するように事前訓練された、事前訓練されたモデル1542(たとえば、深層学習モデルなどの機械学習モデル)を記憶し得る。これらのモデルは、訓練パイプライン1404を使用することによって、さらに更新され得る。少なくとも1つの実施例では、事前インストールされたアノテーション・ツールは、新しいラベル付きクリニック・データ1312が追加されるにつれて、経時的に改善され得る。
【0172】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0173】
自律車両
図16Aは、少なくとも1つの実施例による、自律車両1600の一実例を示す。少なくとも1つの実施例では、自律車両1600(代替的に、本明細書では「車両1600」と呼ばれる)は、限定はしないが、車、トラック、バス、及び/又は1人又は複数の乗客を収容する別のタイプの車両など、乗用車(passenger vehicle)であり得る。少なくとも1つの実施例では、車両1a00は、貨物を運搬するために使用されるセミ・トラクタ・トレーラ・トラックであり得る。少なくとも1つの実施例では、車両1a00は、航空機、ロボット車両、又は他の種類の車両であり得る。
【0174】
自律車両は、米国運輸省の一部門である全米高速道路交通安全局(「NHTSA」:National Highway Traffic Safety Administration)、及び自動車技術者協会(「SAE」:Society of Automotive Engineers)の非特許文献1によって定義される自動化レベルという観点から説明され得る。1つ又は複数の実施例では、車両1600は、自律運転レベルのレベル1~レベル5のうちの1つ又は複数による機能性に対応可能であり得る。たとえば、少なくとも1つの実施例では、車両1600は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)に対応可能であり得る。
【0175】
少なくとも1つの実施例では、車両1600は、限定はしないが、シャーシ、車両本体、ホイール(たとえば、2本、4本、6本、8本、18本など)、タイヤ、車軸、及び車両の他の構成要素など、構成要素を含み得る。少なくとも1つの実施例では、車両1600は、限定はしないが、内燃機関、ハイブリッド電力プラント、完全電気エンジン、及び/又は別の推進システム・タイプなど、推進システム1650を含み得る。少なくとも1つの実施例では、推進システム1650は、車両1600のドライブ・トレインに接続され得、ドライブ・トレインは、限定はしないが、車両1600の推進を可能にするためのトランスミッションを含み得る。少なくとも1つの実施例では、推進システム1650は、(1つ又は複数の)スロットル/アクセラレータ1652から信号を受信したことに応答して制御され得る。
【0176】
少なくとも1つの実施例では、限定はしないが、ハンドルを含み得る操縦システム1654は、推進システム1650が動作しているときに(たとえば、車両が動いているときに)車両1600を(たとえば、所望の経路又はルートに沿って)操縦するために使用される。少なくとも1つの実施例では、操縦システム1654は、(1つ又は複数の)操縦アクチュエータ1656から信号を受信し得る。ハンドルは、完全自動化(レベル5)機能性について随意であり得る。少なくとも1つの実施例では、(1つ又は複数の)ブレーキ・アクチュエータ1648及び/又はブレーキ・センサから信号を受信したことに応答して車両ブレーキを動作させるために、ブレーキ・センサ・システム1646が使用され得る。
【0177】
少なくとも1つの実施例では、限定はしないが、1つ又は複数のシステム・オン・チップ(「SoC」:system on chip)(
図16Aに図示せず)及び/又は(1つ又は複数の)グラフィックス処理ユニット(「GPU」)を含み得る(1つ又は複数の)コントローラ1636は、車両1600の1つ又は複数の構成要素及び/又はシステムに(たとえば、コマンドを表す)信号を提供する。たとえば、少なくとも1つの実施例では、(1つ又は複数の)コントローラ1636は、(1つ又は複数の)ブレーキ・アクチュエータ1648を介して車両ブレーキを動作させるための信号、(1つ又は複数の)操縦アクチュエータ1656を介して操縦システム1654を動作させるための信号、及び/又は(1つ又は複数の)スロットル/アクセラレータ1652を介して推進システム1650を動作させるための信号を送出し得る。(1つ又は複数の)コントローラ1636は、自律運転を可能にし、及び/又は人間のドライバが車両1600を運転するのを支援するために、センサ信号を処理し、動作コマンド(たとえば、コマンドを表す信号)を出力する1つ又は複数の搭載(たとえば、一体型の)コンピューティング・デバイス(たとえば、スーパーコンピュータ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ1636は、自律運転機能のための第1のコントローラ1636、機能的安全機能のための第2のコントローラ1636、人工知能機能性(たとえば、コンピュータ・ビジョン)のための第3のコントローラ1636、インフォテイメント機能性のための第4のコントローラ1636、緊急事態における冗長性のための第5のコントローラ1636、及び/又は他のコントローラを含み得る。少なくとも1つの実施例では、単一のコントローラ1636が、上記の機能性のうちの2つ又はそれ以上に対処し得、2つ又はそれ以上のコントローラ1636が、単一の機能性に対処し得、及び/又はこれらの任意の組合せであり得る。
【0178】
少なくとも1つの実施例では、(1つ又は複数の)コントローラ1636は、1つ又は複数のセンサから受信されたセンサ・データ(たとえば、センサ入力)に応答して、車両1600の1つ又は複数の構成要素及び/又はシステムを制御するための信号を提供する。少なくとも1つの実施例では、センサ・データは、たとえば、限定はしないが、(1つ又は複数の)全地球的航法衛星システム(「GNSS」:global navigation satellite system)センサ1658(たとえば、(1つ又は複数の)全地球測位システム・センサ)、(1つ又は複数の)RADARセンサ1660、(1つ又は複数の)超音波センサ1662、(1つ又は複数の)LIDARセンサ1664、(1つ又は複数の)慣性測定ユニット(「IMU」:inertial measurement unit)センサ1666(たとえば、(1つ又は複数の)加速度計、(1つ又は複数の)ジャイロスコープ、(1つ又は複数の)磁気コンパス、(1つ又は複数の)磁力計など)、(1つ又は複数の)マイクロフォン1696、(1つ又は複数の)ステレオ・カメラ1668、(1つ又は複数の)広角カメラ1670(たとえば、魚眼カメラ)、(1つ又は複数の)赤外線カメラ1672、(1つ又は複数の)周囲カメラ1674(たとえば、360度カメラ)、長距離カメラ(
図16Aに図示せず)、(1つ又は複数の)中距離カメラ(
図16Aに図示せず)、(たとえば、車両1600のスピードを測定するための)(1つ又は複数の)スピード・センサ1644、(1つ又は複数の)振動センサ1642、(1つ又は複数の)操縦センサ1640、(たとえば、ブレーキ・センサ・システム1646の一部としての)(1つ又は複数の)ブレーキ・センサ、及び/又は他のセンサ・タイプから、受信され得る。
【0179】
少なくとも1つの実施例では、(1つ又は複数の)コントローラ1636のうちの1つ又は複数は、車両1600の計器クラスタ1632からの(たとえば入力データによって表される)入力を受信し、ヒューマン・マシン・インターフェース(「HMI」:human-machine interface)ディスプレイ1634、可聴アナンシエータ、拡声器を介して、及び/又は車両1600の他の構成要素を介して、(たとえば、出力データ、ディスプレイ・データなどによって表される)出力を提供し得る。少なくとも1つの実施例では、出力は、車両速度、スピード、時間、地図データ(たとえば、高精細度地図(
図16Aに図示せず)、ロケーション・データ(たとえば、地図上などの車両1600のロケーション)、方向、他の車両のロケーション(たとえば、占有グリッド)、(1つ又は複数の)コントローラ1636によって感知された物体及び物体のステータスに関する情報など、情報を含み得る。たとえば、少なくとも1つの実施例では、HMIディスプレイ1634は、1つ又は複数の物体(たとえば、道路標識、警告標識、信号の変化など)の存在に関する情報、及び/或いは、車両が行った、行っている、又はこれから行う運転操作に関する情報(たとえば、現在車線変更中、3.22km(2マイル)先の出口34Bを出る、など)を表示し得る。
【0180】
少なくとも1つの実施例では、車両1600はネットワーク・インターフェース1624をさらに含み、ネットワーク・インターフェース1624は、1つ又は複数のネットワークを介して通信するために(1つ又は複数の)ワイヤレス・アンテナ1626及び/又は(1つ又は複数の)モデムを使用し得る。たとえば、少なくとも1つの実施例では、ネットワーク・インターフェース1624は、ロング・ターム・エボリューション(「LTE」)、広帯域符号分割多元接続(「WCDMA(登録商標)」:Wideband Code Division Multiple Access)、ユニバーサル・モバイル・テレコミュニケーション・システム(「UMTS」:Universal Mobile Telecommunications System)、モバイル通信用グローバル・システム(「GSM」:Global System for Mobile communication)、IMT-CDMAマルチ・キャリア(「CDMA2000」)などを介した通信が可能であり得る。また、少なくとも1つの実施例では、(1つ又は複数の)ワイヤレス・アンテナ1626は、Bluetooth、Bluetooth低エネルギー(「LE」:Low Energy)、Z波、ZigBeeなどの(1つ又は複数の)ローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどの(1つ又は複数の)低電力ワイド・エリア・ネットワーク(「LPWAN」:low power wide-area network)を使用して、環境内の物体(たとえば、車両、モバイル・デバイスなど)間の通信を可能にし得る。
【0181】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。少なくとも1つの実施例では、推論及び/又は訓練論理715は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図16Aのシステムにおいて使用され得る。
【0182】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0183】
図16Bは、少なくとも1つの実施例による、
図16Aの自律車両1600についてのカメラ・ロケーション及び視野の一実例を示す。少なくとも1つの実施例では、カメラ及びそれぞれの視野は、1つの例示的な実施例であり、限定するものではない。たとえば、少なくとも1つの実施例では、追加及び/又は代替のカメラが含まれ得、及び/又は、カメラは車両1600上の異なるロケーションに位置し得る。
【0184】
少なくとも1つの実施例では、カメラについてのカメラ・タイプは、限定はしないが、車両1600の構成要素及び/又はシステムとともに使用するために適応され得るデジタル・カメラを含み得る。少なくとも1つの実施例では、(1つ又は複数の)カメラのうちの1つ又は複数が、自動車安全性要求レベル(「ASIL」:automotive safety integrity level)B及び/又は別のASILにおいて動作し得る。少なくとも1つの実施例では、カメラ・タイプは、実施例に応じて、毎秒60フレーム(fps:frames per second)、120fps、240fpsなど、任意の画像キャプチャ・レートが可能であり得る。少なくとも1つの実施例では、カメラは、ローリング・シャッター、グローバル・シャッター、別のタイプのシャッター、又はそれらの組合せを使用することが可能であり得る。少なくとも1つの実施例では、カラー・フィルタ・アレイは、赤色、クリア、クリア、クリア(「RCCC」:red clear clear clear)のカラー・フィルタ・アレイ、赤色、クリア、クリア、青色(「RCCB:red clear clear blue」)のカラー・フィルタ・アレイ、赤色、青色、緑色、クリア(「RBGC」:red blue green clear)のカラー・フィルタ・アレイ、Foveon X3のカラー・フィルタ・アレイ、ベイヤー・センサ(「RGGB」)のカラー・フィルタ・アレイ、モノクロ・センサのカラー・フィルタ・アレイ、及び/又は別のタイプのカラー・フィルタ・アレイを含み得る。少なくとも1つの実施例では、光感度を上げるために、RCCC、RCCB、及び/又はRBGCのカラー・フィルタ・アレイをもつカメラなど、クリア・ピクセル・カメラが使用され得る。
【0185】
少なくとも1つの実施例では、(1つ又は複数の)カメラのうちの1つ又は複数が、先進ドライバ支援システム(「ADAS」:advanced driver assistance system)機能を(たとえば、冗長設計又はフェイル・セーフ設計の一部として)実施するために使用され得る。たとえば、少なくとも1つの実施例では、車線逸脱警告、交通標識支援及びインテリジェント・ヘッドライト制御を含む機能を提供するために、多機能モノ・カメラが設置され得る。少なくとも1つの実施例では、(1つ又は複数の)カメラのうちの1つ又は複数(たとえば、カメラのすべて)が、画像データ(たとえば、ビデオ)を同時に記録し、提供し得る。
【0186】
少なくとも1つの実施例では、カメラのうちの1つ又は複数が、カメラの画像データ・キャプチャ・アビリティを妨げ得る迷光及び車内からの反射(たとえば、ダッシュボードからフロントガラスに反射される反射)をなくすために、カスタム設計の(3次元(「3D」)印刷された)アセンブリなどの取付けアセンブリにおいて取り付けられ得る。ドアミラー取付けアセンブリを参照すると、少なくとも1つの実施例では、ドアミラー・アセンブリは、カメラ取付けプレートがドアミラーの形状にマッチするように、カスタム3D印刷され得る。少なくとも1つの実施例では、(1つ又は複数の)カメラは、ドアミラーに組み込まれ得る。サイド・ビュー・カメラについて、(1つ又は複数の)カメラはまた、少なくとも1つの実施例では、キャビンの各角にある4本のピラー内に組み込まれ得る。
【0187】
少なくとも1つの実施例では、車両1600の前方の環境の部分を含む視野をもつカメラ(たとえば、正面カメラ)は、正面の経路及び障害物を識別するのを助け、並びに、コントローラ1636及び/又は制御SoCのうちの1つ又は複数の助けで、占有グリッドを生成すること及び/又は好ましい車両経路を決定することに不可欠な情報を提供するのを補助するために、周囲ビューのために使用され得る。少なくとも1つの実施例では、正面カメラは、限定はしないが、緊急ブレーキと、歩行者検出と、衝突回避とを含む、LIDARと同じADAS機能の多くを実施するために使用され得る。少なくとも1つの実施例では、正面カメラはまた、限定はしないが、車線逸脱警告(「LDW」:Lane Departure Warning)、自律走行制御(「ACC」:Autonomous Cruise Control)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
【0188】
少なくとも1つの実施例では、たとえば、CMOS(「相補型金属酸化物半導体(complementary metal oxide semiconductor)」)カラー・イメージャを含む単眼カメラ・プラットフォームを含む様々なカメラが、正面構成において使用され得る。少なくとも1つの実施例では、周辺からビューに入ってくる物体(たとえば、歩行者、横断する交通、又は自転車)を知覚するために、広角カメラ1670が使用され得る。
図16Bには1つの広角カメラ1670のみが示されているが、他の実施例では、車両1600上に(ゼロを含む)任意の数の広角カメラ1670があり得る。少なくとも1つの実施例では、特にニューラル・ネットワークがそれに対してまだ訓練されていない物体について、深度ベースの物体検出のために、(1つ又は複数の)任意の数の長距離カメラ1698(たとえば、ロングビュー・ステレオ・カメラ・ペア)が使用され得る。少なくとも1つの実施例では、(1つ又は複数の)長距離カメラ1698は、物体検出及び分類、並びに基本的な物体追跡のためにも使用され得る。
【0189】
少なくとも1つの実施例では、任意の数のステレオ・カメラ1668も、正面構成に含まれ得る。少なくとも1つの実施例では、(1つ又は複数の)ステレオ・カメラ1668のうちの1つ又は複数は、スケーラブル処理ユニットを備える一体型制御ユニットを含み得、この制御ユニットは、一体型のコントローラ・エリア・ネットワーク(「CAN」:Controller Area Network)又はイーサネット・インターフェースを単一のチップ上にもつプログラマブル論理(「FPGA」)及びマルチコア・マイクロプロセッサを提供し得る。少なくとも1つの実施例では、そのようなユニットは、画像中のすべてのポイントについての距離推定を含む、車両1600の環境の3D地図を生成するために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)ステレオ・カメラ1668のうちの1つ又は複数は、限定はしないが、(1つ又は複数の)コンパクト・ステレオ・ビジョン・センサを含み得、このセンサは、限定はしないが、車両1600からターゲット物体までの距離を測定し、生成された情報(たとえば、メタデータ)を使用して自律緊急ブレーキ及び車線逸脱警告機能をアクティブ化し得る2つのカメラ・レンズ(左及び右に1つずつ)及び画像処理チップを含み得る。少なくとも1つの実施例では、本明細書で説明されるものに加えて、又はその代替として、他のタイプの(1つ又は複数の)ステレオ・カメラ1668が使用され得る。
【0190】
少なくとも1つの実施例では、車両1600の側方の環境の部分を含む視野をもつカメラ(たとえば、サイド・ビュー・カメラ)が、周囲ビューのために使用され、占有グリッドを作成及び更新し、並びに側面衝突警告を生成するために使用される情報を提供し得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)周囲カメラ1674(たとえば、
図16Bに示されている4つの周囲カメラ1674)が、車両1600上に位置決めされ得る。少なくとも1つの実施例では、(1つ又は複数の)周囲カメラ1674は、限定はしないが、任意の数及び組合せの広角カメラ1670、(1つ又は複数の)魚眼カメラ、(1つ又は複数の)360度カメラなどを含み得る。たとえば、少なくとも1つの実施例では、4つの魚眼カメラが、車両1600の前方、後方、及び側方に位置決めされ得る。少なくとも1つの実施例では、車両1600は、3つの周囲カメラ1674(たとえば、左、右、及び後方)を使用し得、第4の周囲ビュー・カメラとして、1つ又は複数の他のカメラ(たとえば、正面カメラ)を活用し得る。
【0191】
少なくとも1つの実施例では、車両1600の後方への環境の部分を含む視野をもつカメラ(たとえば、リア・ビュー・カメラ)が、駐車支援、周囲ビュー、後方衝突警告、並びに占有グリッドの作成及び更新のために使用され得る。少なくとも1つの実施例では、限定はしないが、本明細書で説明されるように、(1つ又は複数の)正面カメラとしても好適なカメラ(たとえば、長距離カメラ1698、及び/又は(1つ又は複数の)中距離カメラ1676、(1つ又は複数の)ステレオ・カメラ1668)、(1つ又は複数の)赤外線カメラ1672など)を含む、多種多様なカメラが使用され得る。
【0192】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図16Bのシステムにおいて使用され得る。
【0193】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0194】
図16Cは、少なくとも1つの実施例による、
図16Aの自律車両1600のための例示的なシステム・アーキテクチャを示すブロック図である。少なくとも1つの実施例では、
図16C中の車両1600の構成要素、特徴、及びシステムの各々は、バス1602を介して接続されるものとして示されている。少なくとも1つの実施例では、バス1602は、限定はしないが、CANデータ・インターフェース(代替的に、本明細書では「CANバス」と呼ばれる)を含み得る。少なくとも1つの実施例では、CANバスは、ブレーキの作動、加速、ブレーキ制御、操縦、フロントガラス・ワイパなど、車両1600の様々な特徴及び機能性の制御を補助するために使用される、車両1600内部のネットワークであり得る。少なくとも1つの実施例では、バス1602は、各々がそれ自体の一意の識別子(たとえば、CAN ID)をもつ数十又はさらには数百のノードを有するように構成され得る。少なくとも1つの実施例では、バス1602は、ハンドル角度、対地スピード、エンジンの毎分回転数(「RPM」:revolutions per minute)、ボタン位置、及び/又は他の車両ステータス・インジケータを見いだすために読み取られ得る。少なくとも1つの実施例では、バス1602は、ASIL Bに準拠したCANバスであり得る。
【0195】
少なくとも1つの実施例では、CANに加えて、又はその代替として、FlexRay及び/又はイーサネットが使用され得る。少なくとも1つの実施例では、任意の数のバス1602があり得、これらのバスは、限定はしないが、0個以上のCANバス、0個以上のFlexRayバス、0個以上のイーサネット・バス、及び/又は、異なるプロトコルを使用する0個以上の他のタイプのバスを含み得る。少なくとも1つの実施例では、2つ又はそれ以上のバス1602が、異なる機能を実施するために使用され得、及び/又は、冗長性のために使用され得る。たとえば、第1のバス1602が衝突回避機能性のために使用され得、第2のバス1602が作動制御のために使用され得る。少なくとも1つの実施例では、各バス1602は、車両1600の構成要素のいずれかと通信し得、2つ又はそれ以上のバス1602が、同じ構成要素と通信し得る。少なくとも1つの実施例では、任意の数のシステム・オン・チップ(「SoC」)1604の各々、(1つ又は複数の)コントローラ1636の各々、及び/又は車両内の各コンピュータは、同じ入力データ(たとえば、車両1600のセンサからの入力)へのアクセスを有し得、共通のバス、そのようなCANバスに接続され得る。
【0196】
少なくとも1つの実施例では、車両1600は、
図16Aに関して本明細書で説明されるものなど、1つ又は複数のコントローラ1636を含み得る。(1つ又は複数の)コントローラ1636は、様々な機能のために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ1636は、車両1600の様々な他の構成要素及びシステムのいずれかに結合され得、車両1600、車両1600の人工知能、車両1600のためのインフォテイメントなどの制御のために使用され得る。
【0197】
少なくとも1つの実施例では、車両1600は、任意の数のSoC1604を含み得る。SoC1604の各々は、限定はしないが、中央処理ユニット(「CPU」)1606、グラフィックス処理ユニット(「GPU」)1608、(1つ又は複数の)プロセッサ1610、(1つ又は複数の)キャッシュ1612、(1つ又は複数の)アクセラレータ1614、(1つ又は複数の)データ・ストア1616、並びに/又は示されていない他の構成要素及び特徴を含み得る。少なくとも1つの実施例では、車両1600を様々なプラットフォーム及びシステムにおいて制御するために、(1つ又は複数の)SoC1604が使用され得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)SoC1604は、1つ又は複数のサーバ(
図16Cに図示せず)からネットワーク・インターフェース1624を介して地図のリフレッシュ及び/又は更新を取得し得る高精細度(「HD」:High Definition)地
図1622をもつシステム(たとえば、車両1600のシステム)において組み合わせられ得る。
【0198】
少なくとも1つの実施例では、(1つ又は複数の)CPU1606は、CPUクラスタ又はCPUコンプレックス(代替的に、本明細書では「CCPLEX」と呼ばれる)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)CPU1606は、複数のコア及び/又はレベル2(「L2」)キャッシュを含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)CPU1606は、コヒーレントなマルチプロセッサ構成において8つのコアを含み得る。少なくとも1つの実施例では、(1つ又は複数の)CPU1606は、4つのデュアル・コア・クラスタを含み得、各クラスタは、専用L2キャッシュ(たとえば、2MBのL2キャッシュ)を有する。少なくとも1つの実施例では、(1つ又は複数の)CPU1606(たとえば、CCPLEX)は、(1つ又は複数の)CPU1606のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時のクラスタ動作をサポートするように構成され得る。
【0199】
少なくとも1つの実施例では、(1つ又は複数の)CPU1606のうちの1つ又は複数は、電力管理能力を実装し得、電力管理能力は、限定はしないが、以下の特徴のうちの1つ又は複数を含む:個々のハードウェア・ブロックが、動的電力を節約するために、アイドル時に自動的にクロック・ゲート制御され得る;各コア・クロックは、割込み待ち(「WFI」:Wait for Interrupt)/イベント待ち(「WFE」:Wait for Event)命令の実行によりコアが能動的に命令を実行していないとき、ゲート制御され得る;各コアが独立して電力ゲート制御され得る;各コア・クラスタは、すべてのコアがクロック・ゲート制御又は電力ゲート制御されるとき、独立してクロック・ゲート制御され得る;及び/或いは、各コア・クラスタは、すべてのコアが電力ゲート制御されるとき、独立して電力ゲート制御され得る。少なくとも1つの実施例では、(1つ又は複数の)CPU1606は、電力状態を管理するための拡張アルゴリズムをさらに実装し得、許容された電力状態及び予想されるウェイクアップ時間が指定され、コア、クラスタ、及びCCPLEXのための入るべき最良の電力状態を、ハードウェア/マイクロコードが決定する。少なくとも1つの実施例では、処理コアは、ワークがマイクロコードにオフロードされたソフトウェアにおける簡単な電力状態エントリ・シーケンスをサポートし得る。
【0200】
少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、統合されたGPU(代替的に、本明細書では「iGPU」と呼ばれる)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、プログラマブルであり得、並列なワークロードについて効率的であり得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、少なくとも1つの実施例では、拡張テンソル命令セットを使用し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、1つ又は複数のストリーミング・マイクロプロセッサを含み得、各ストリーミング・マイクロプロセッサは、レベル1(「L1」)キャッシュ(たとえば、少なくとも96KBのストレージ容量をもつL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2つ又はそれ以上は、L2キャッシュ(たとえば、512KBのストレージ容量をもつL2キャッシュ)を共有し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、少なくとも8つのストリーミング・マイクロプロセッサを含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、(1つ又は複数の)コンピュート・アプリケーション・プログラミング・インターフェース(API)を使用し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、1つ又は複数の並列なコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用し得る。
【0201】
少なくとも1つの実施例では、(1つ又は複数の)GPU1608のうちの1つ又は複数は、自動車の及び組み込まれた使用事例における最良の性能のために電力最適化され得る。たとえば、1つの実施例では、(1つ又は複数の)GPU1608は、フィン電界効果トランジスタ(「FinFET」:Fin field-effect transistor)上で作製され得る。少なくとも1つの実施例では、各ストリーミング・マイクロプロセッサは、複数のブロックに区分けされたいくつかの混合精度処理コアを組み込み得る。たとえば、限定はしないが、64個のPF32コアと、32個のPF64コアとは、4つの処理ブロックに区分けされ得る。少なくとも1つの実施例では、各処理ブロックは、16個のFP32コア、8個のFP64コア、16個のINT32コア、深層学習行列算術のための2つの混合精度NVIDIA TENSOR CORE、レベル0(「L0」)命令キャッシュ、ワープ・スケジューラ、ディスパッチ・ユニット、及び/又は64KBのレジスタ・ファイルを割り振られ得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、算出とアドレッシング計算との混合によるワークロードの効率的な実行を行うために、独立した並列の整数及び浮動小数点データ経路を含み得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、並列スレッド間でよりきめ細かい同期及び協調を可能にするために、独立したスレッド・スケジューリング能力を含み得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、性能を改善すると同時にプログラミングを簡単にするために、組み合わせられたL1データ・キャッシュ及び共有メモリ・ユニットを含み得る。
【0202】
少なくとも1つの実施例では、(1つ又は複数の)GPU1608のうちの1つ又は複数は、いくつかの実例では、約900GB/秒のピーク・メモリ帯域幅を提供するために、高帯域幅メモリ(「HBM」:high bandwidth memory)及び/又は16GBのHBM2メモリ・サブシステムを含み得る。少なくとも1つの実施例では、HBMメモリに加えて、又はその代替として、グラフィックス・ダブル・データ・レート・タイプ・ファイブ同期ランダム・アクセス・メモリ(「GDDR5」:graphics double data rate type five)など、同期グラフィックス・ランダム・アクセス・メモリ(「SGRAM」:synchronous graphics random-access memory)が使用され得る。
【0203】
少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、統一メモリ技術を含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608が(1つ又は複数の)CPU1606のページ・テーブルに直接アクセスすることを可能にするために、アドレス・トランスレーション・サービス(「ATS」:address translation service)サポートが使用され得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1608のメモリ管理ユニット(「MMU」:memory management unit)がミスに遭遇したとき、アドレス・トランスレーション要求が(1つ又は複数の)CPU1606に送信され得る。少なくとも1つの実施例では、それに応答して、(1つ又は複数の)CPU1606は、それのページ・テーブルにおいて、アドレスのための仮想-物理マッピングを探し得、トランスレーションを(1つ又は複数の)GPU1608に返送する。少なくとも1つの実施例では、統一メモリ技術は、(1つ又は複数の)CPU1606と(1つ又は複数の)GPU1608の両方のメモリについて単一の統一仮想アドレス空間を可能にし、それにより、(1つ又は複数の)GPU1608のプログラミングと、(1つ又は複数の)GPU1608へのアプリケーションの移植とを簡単にし得る。
【0204】
少なくとも1つの実施例では、(1つ又は複数の)GPU1608は、他のプロセッサのメモリへの(1つ又は複数の)GPU1608のアクセスの頻度を追跡し得る任意の数のアクセス・カウンタを含み得る。少なくとも1つの実施例では、(1つ又は複数の)アクセス・カウンタは、最も頻繁にページにアクセスしているプロセッサの物理メモリにメモリ・ページが移動されることを確実にするのを助け、それにより、プロセッサ間で共有されるメモリ範囲の効率を改善し得る。
【0205】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、本明細書で説明されるものを含む、任意の数のキャッシュ1612を含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)キャッシュ1612は、(1つ又は複数の)CPU1606と(1つ又は複数の)GPU1608の両方にとって利用可能である(たとえば、(1つ又は複数の)CPU1606と(1つ又は複数の)GPU1608の両方に接続された)レベル3(「L3」)キャッシュを含むことができる。少なくとも1つの実施例では、(1つ又は複数の)キャッシュ1612は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、ラインの状態を追跡し得るライト・バック・キャッシュを含み得る。少なくとも1つの実施例では、L3キャッシュは、実施例に応じて、4MB以上を含み得るが、より小さいキャッシュ・サイズが使用され得る。
【0206】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、1つ又は複数のアクセラレータ1614(たとえば、ハードウェア・アクセラレータ、ソフトウェア・アクセラレータ、又はこれらの組合せ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC1604は、最適化されたハードウェア・アクセラレータ及び/又は大型のオンチップ・メモリを含み得るハードウェア加速クラスタを含み得る。少なくとも1つの実施例では、大型のオンチップ・メモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタが、ニューラル・ネットワーク及び他の計算を加速することを可能にし得る。少なくとも1つの実施例では、ハードウェア加速クラスタは、(1つ又は複数の)GPU1608を補完し、(1つ又は複数の)GPU1608のタスクのうちのいくつかをオフロードするために(たとえば、他のタスクを実施するために(1つ又は複数の)GPU1608のサイクルをより多く解放するために)使用され得る。少なくとも1つの実施例では、加速を受け入れるのに十分なほど安定している対象のワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(「CNN」)、リカレント・ニューラル・ネットワーク(「RNN」:recurrent neural network)など)のために、(1つ又は複数の)アクセラレータ1614が使用され得る。少なくとも1つの実施例では、CNNは、領域ベースの、すなわち領域畳み込みニューラル・ネットワーク(「RCNN」:regional convolutional neural network)、及び(たとえば、物体検出のために使用されるような)高速RCNN、又は他のタイプのCNNを含み得る。
【0207】
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ1614(たとえば、ハードウェア加速クラスタ)は、(1つ又は複数の)深層学習アクセラレータ(「DLA」:deep learning accelerator)を含み得る。(1つ又は複数の)DLAは、限定はしないが、1つ又は複数のTensor処理ユニット(「TPU」:Tensor processing unit)を含み得、1つ又は複数のTensor処理ユニットは、深層学習アプリケーション及び推論のために、追加の、毎秒10兆の演算を提供するように構成され得る。少なくとも1つの実施例では、(1つ又は複数の)TPUは、(たとえば、CNN、RCNNなどのための)画像処理機能を実施するように構成され、そのために最適化されたアクセラレータであり得る。(1つ又は複数の)DLAは、ニューラル・ネットワーク・タイプと浮動小数点演算の特定のセット、並びに推論のためにさらに最適化され得る。少なくとも1つの実施例では、(1つ又は複数の)DLAの設計は、一般的な汎用GPUよりも多くのミリメートル当たりの性能を提供し得、一般的には、CPUの性能をはるかに超える。少なくとも1つの実施例では、(1つ又は複数の)TPUは、たとえば、特徴と重みの両方のためのINT8、INT16、及びFP16のデータ・タイプをサポートする、単一インスタンスの畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実施し得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、たとえば、限定はしないが、カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォン1696からのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び車両所有者識別のためのCNN、並びに/或いはセキュリティ及び/又は安全関係イベントのためのCNNを含む、様々な機能のいずれかのための処理された又は処理されていないデータに対して、ニューラル・ネットワーク、特にCNNを、迅速に及び効率的に実行し得る。
【0208】
少なくとも1つの実施例では、(1つ又は複数の)DLAは、(1つ又は複数の)GPU1608の任意の機能を実施し得、たとえば、推論アクセラレータを使用することによって、設計者は、任意の機能のために(1つ又は複数の)DLA又は(1つ又は複数の)GPU1608のいずれかをターゲットにし得る。たとえば、少なくとも1つの実施例では、設計者は、CNN及び浮動小数点演算の処理を(1つ又は複数の)DLAに集中させ、他の機能を(1つ又は複数の)GPU1608及び/又は(1つ又は複数の)他のアクセラレータ1614に任せ得る。
【0209】
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ1614(たとえば、ハードウェア加速クラスタ)は、(1つ又は複数の)プログラマブル・ビジョン・アクセラレータ(「PVA」:programmable vision accelerator)を含み得、プログラマブル・ビジョン・アクセラレータは、本明細書では代替的にコンピュータ・ビジョン・アクセラレータと呼ばれることがある。少なくとも1つの実施例では、(1つ又は複数の)PVAは、先進ドライバ支援システム(「ADAS」)1638、自律運転、拡張現実(「AR」)アプリケーション、及び/又は仮想現実(「VR」)アプリケーションのために、コンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。(1つ又は複数の)PVAは、性能とフレキシビリティとの間の均衡を提供し得る。たとえば、少なくとも1つの実施例では、各(1つ又は複数の)PVAは、たとえば、限定はしないが、任意の数の縮小命令セット・コンピュータ(「RISC」:reduced instruction set computer)コア、ダイレクト・メモリ・アクセス(「DMA」:direct memory access)、及び/又は任意の数のベクトル・プロセッサを含み得る。
【0210】
少なくとも1つの実施例では、RISCコアは、画像センサ(たとえば、本明細書で説明されるカメラのいずれかの画像センサ)、(1つ又は複数の)画像信号プロセッサなどと対話し得る。少なくとも1つの実施例では、RISCコアの各々は、任意の量のメモリを含み得る。少なくとも1つの実施例では、RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用し得る。少なくとも1つの実施例では、RISCコアは、リアルタイム・オペレーティング・システム(「RTOS」:real-time operating system)を実行し得る。少なくとも1つの実施例では、RISCコアは、1つ又は複数の集積回路デバイス、特定用途向け集積回路(「ASIC」)、及び/又はメモリ・デバイスを使用して実装され得る。たとえば、少なくとも1つの実施例では、RISCコアは、命令キャッシュ及び/又は密結合RAMを含むことができる。
【0211】
少なくとも1つの実施例では、DMAは、(1つ又は複数の)PVAの構成要素が(1つ又は複数の)CPU1606とは無関係にシステム・メモリにアクセスすることを可能にし得る。少なくとも1つの実施例では、DMAは、限定はしないが、多次元アドレッシング及び/又はサーキュラ・アドレッシングをサポートすることを含む、PVAに最適化を提供するために使用される任意の数の特徴をサポートし得る。少なくとも1つの実施例では、DMAは、6つ又はそれ以上のアドレッシング次元までをサポートし得、これらのアドレッシング次元は、限定はしないが、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る。
【0212】
少なくとも1つの実施例では、ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのためのプログラミングを効率的でフレキシブルに実行するように設計され得るプログラマブル・プロセッサであり、信号処理能力を提供し得る。少なくとも1つの実施例では、PVAは、PVAコアと、2つのベクトル処理サブシステム・パーティションとを含み得る。少なくとも1つの実施例では、PVAコアは、プロセッサ・サブシステム、(1つ又は複数の)DMAエンジン(たとえば、2つのDMAエンジン)、及び/又は他の周辺機器を含み得る。少なくとも1つの実施例では、ベクトル処理サブシステムは、PVAの1次処理エンジンとして動作し得、ベクトル処理ユニット(「VPU」:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、「VMEM」:vector memory)を含み得る。少なくとも1つの実施例では、VPUは、たとえば、単一命令複数データ(「SIMD」:single instruction,multiple data)、超長命令語(「VLIW」)のデジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。少なくとも1つの実施例では、SIMDとVLIWとの組合せが、スループット及びスピードを向上させ得る。
【0213】
少なくとも1つの実施例では、ベクトル・プロセッサの各々は、命令キャッシュを含み得、専用メモリに結合され得る。その結果、少なくとも1つの実施例では、ベクトル・プロセッサの各々は、他のベクトル・プロセッサとは無関係に実行するように構成され得る。少なくとも1つの実施例では、特定のPVA中に含まれるベクトル・プロセッサは、データ並列処理を採用するように構成され得る。たとえば、少なくとも1つの実施例では、単一のPVA中に含まれる複数のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、ただし画像の異なる領域上で実行し得る。少なくとも1つの実施例では、特定のPVA中に含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを同じ画像上で同時に実行するか、さらには、異なるアルゴリズムを連続した画像又は画像の部分上で実行し得る。少なくとも1つの実施例では、とりわけ、任意の数のPVAがハードウェア加速クラスタ中に含まれ得、任意の数のベクトル・プロセッサがPVAの各々中に含まれ得る。少なくとも1つの実施例では、(1つ又は複数の)PVAは、システムの全体的な安全性を向上させるために、追加のエラー訂正コード(「ECC」:Error Correction Code)メモリを含み得る。
【0214】
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ1614(たとえば、ハードウェア加速クラスタ)は、(1つ又は複数の)アクセラレータ1614のための高帯域幅、低レイテンシのSRAMを提供するために、コンピュータ・ビジョン・ネットワーク・オンチップと、スタティック・ランダム・アクセス・メモリ(「SRAM」)とを含み得る。少なくとも1つの実施例では、オンチップ・メモリは、たとえば、限定はしないが、8つのフィールド構成可能メモリ・ブロックからなる少なくとも4MBのSRAMを含み得、これは、PVAとDLAの両方によってアクセス可能であり得る。少なくとも1つの実施例では、メモリ・ブロックの各ペアは、先進周辺バス(「APB」:advanced peripheral bus)インターフェースと、構成回路要素と、コントローラと、マルチプレクサとを含み得る。少なくとも1つの実施例では、任意のタイプのメモリが使用され得る。少なくとも1つの実施例では、PVA及びDLAは、メモリへの高速アクセスをPVA及びDLAに提供するバックボーンを介して、メモリにアクセスし得る。少なくとも1つの実施例では、バックボーンは、PVA及びDLAを(たとえば、APBを使用して)メモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
【0215】
少なくとも1つの実施例では、コンピュータ・ビジョン・ネットワーク・オンチップは、任意の制御信号/アドレス/データの送信の前に、PVAとDLAの両方が準備信号及び有効信号を提供すると決定するインターフェースを含み得る。少なくとも1つの実施例では、インターフェースは、制御信号/アドレス/データを送信するための別個の位相及び別個のチャネル、並びに継続的なデータ転送のためのバーストタイプ通信を提供し得る。少なくとも1つの実施例では、インターフェースは、国際標準化機構(「ISO」:International Organization for Standardization)26262又は国際電気標準会議(「IEC」:International Electrotechnical Commission)61508の規格に準拠し得るが、他の規格及びプロトコルが使用され得る。
【0216】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、リアルタイム・レイ・トレーシング・ハードウェア・アクセラレータを含み得る。少なくとも1つの実施例では、リアルタイム・レイ・トレーシング・ハードウェア・アクセラレータは、RADAR信号解釈のための、音伝搬合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波形伝搬シミュレーションのための、ローカリゼーション及び/又は他の機能を目的としたLIDARデータとの比較のための、並びに/或いは他の使用法のための、リアルタイムの視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び範囲を迅速に及び効率的に決定するために使用され得る。
【0217】
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ1614(たとえば、ハードウェア・アクセラレータ・クラスタ)は、自律運転のための多様な使用法を有する。少なくとも1つの実施例では、PVAは、ADAS及び自律車両における主要な処理段階のために使用され得るプログラマブル・ビジョン・アクセラレータであり得る。少なくとも1つの実施例では、PVAの能力は、低電力及び低レイテンシでの予測可能な処理を必要とするアルゴリズム・ドメインについて良好にマッチする。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能なランタイムを必要とする半稠密(semi-dense)又は稠密な規則的算出に対して、小さいデータ・セット上でも、良好に機能する。少なくとも1つの実施例では、車両1600などの自律車両、PVAは、それらが、物体検出及び整数数値の演算において効率的であるので、従来のコンピュータ・ビジョン・アルゴリズムを稼働するように設計される。
【0218】
たとえば、技術の少なくとも1つの実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実施するために使用される。少なくとも1つの実施例では、いくつかの実例においてセミグローバルなマッチング・ベースのアルゴリズムが使用され得るが、これは、限定するものではない。少なくとも1つの実施例では、レベル3~5の自律運転のためのアプリケーションは、動き推定/ステレオ・マッチング(たとえば、動きからの構造(structure from motion)、歩行者認識、車線検出など)をオンザフライで使用する。少なくとも1つの実施例では、PVAは、2つの単眼カメラからの入力に対して、コンピュータ・ステレオ・ビジョン機能を実施し得る。
【0219】
少なくとも1つの実施例では、PVAは、高密度オプティカル・フローを実施するために使用され得る。たとえば、少なくとも1つの実施例では、PVAは、未加工のRADARデータを(たとえば、4Dの高速フーリエ変換を使用して)処理して、処理されたRADARデータを提供することができる。少なくとも1つの実施例では、PVAは、たとえば、処理された飛行時間データを提供するために、未加工の飛行時間データを処理することによって、飛行時間の深度処理のために使用される。
【0220】
少なくとも1つの実施例では、DLAは、たとえば、限定はしないが、各物体検出についての信頼性の測度を出力するニューラル・ネットワークを含む、制御及び運転の安全性を向上させるための任意のタイプのネットワークを稼働するために使用され得る。少なくとも1つの実施例では、信頼性は、他の検出と比較した各検出の確率として、又はその相対的な「重み」を提供するものとして表されるか、又は解釈され得る。少なくとも1つの実施例では、信頼性は、システムが、どの検出が偽陽性(false positive)検出ではなく真陽性(true positive)検出と見なされるべきであるかに関して、さらなる判定を行うことを可能にする。たとえば、少なくとも1つの実施例では、システムは、信頼性についてのしきい値を設定し、しきい値を超える検出のみを真陽性検出と見なし得る。自動緊急ブレーキ(「AEB」:automatic emergency braking)システムが使用される実施例では、偽陽性検出は、車両が自動的に緊急ブレーキをかけることを引き起こし、これは明らかに望ましくない。少なくとも1つの実施例では、非常に信頼性の高い検出が、AEBのためのトリガと見なされ得る。少なくとも1つの実施例では、DLAは、信頼性値を回帰するためにニューラル・ネットワークを稼働し得る。少なくとも1つの実施例では、ニューラル・ネットワークは、とりわけ、バウンディング・ボックスの次元、(たとえば、別のサブシステムから)取得されたグランド・プレーン推定値、車両1600の向きと相関する(1つ又は複数の)IMUセンサ1666からの出力、距離、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、(1つ又は複数の)LIDARセンサ1664又は(1つ又は複数の)RADARセンサ1660)から取得された物体の3Dロケーション推定値など、パラメータの少なくとも一部のサブセットを、その入力としてとり得る。
【0221】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、(1つ又は複数の)データ・ストア1616(たとえば、メモリ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア1616は、(1つ又は複数の)SoC1604のオンチップ・メモリであり得、このオンチップ・メモリは、(1つ又は複数の)GPU1608及び/又はDLA上で実行されるべきニューラル・ネットワークを記憶し得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア1616は、容量が、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分なほど大きくなり得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア1616は、(1つ又は複数の)L2又はL3キャッシュを備え得る。
【0222】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、(1つ又は複数の)任意の数のプロセッサ1610(たとえば、組み込みプロセッサ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、ブート電力並びに管理機能及び関係するセキュリティ執行に対処するための専用プロセッサ及びサブシステムであり得る、ブート及び電力管理プロセッサを含み得る。少なくとも1つの実施例では、ブート及び電力管理プロセッサは、(1つ又は複数の)SoC1604のブート・シーケンスの一部であり得、ランタイム電力管理サービスを提供し得る。少なくとも1つの実施例では、ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、(1つ又は複数の)SoC1604の熱及び温度センサの管理、並びに/又は(1つ又は複数の)SoC1604の電力状態の管理を提供し得る。少なくとも1つの実施例では、各温度センサは、その出力周波数が温度に比例するリング発振器として実装され得、(1つ又は複数の)SoC1604は、リング発振器を使用して、(1つ又は複数の)CPU1606、(1つ又は複数の)GPU1608、及び/又は(1つ又は複数の)アクセラレータ1614の温度を検出し得る。少なくとも1つの実施例では、温度がしきい値を超えると決定された場合、ブート及び電力管理プロセッサは、温度障害ルーチンに入り、(1つ又は複数の)SoC1604を低電力状態にし、及び/又は車両1600を運転手-安全停止モード(chauffeur to safe stop mode)にし(たとえば、車両1600を安全停止させ)得る。
【0223】
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、オーディオ処理エンジンとして働き得る組み込みプロセッサのセットをさらに含み得る。少なくとも1つの実施例では、オーディオ処理エンジンは、複数のインターフェースを介した多チャネル・オーディオ、及び幅広くフレキシブルな様々なオーディオI/Oインターフェースのための、完全なハードウェア・サポートを可能にする、オーディオ・サブシステムであり得る。少なくとも1つの実施例では、オーディオ処理エンジンは、専用RAMをもつデジタル信号プロセッサをもつ専用プロセッサ・コアである。
【0224】
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、低電力センサ管理及び立ち上げ使用事例をサポートするのに必要なハードウェア特徴を提供し得る常時オン・プロセッサ・エンジンをさらに含み得る。少なくとも1つの実施例では、常時オン・プロセッサ・エンジンは、限定はしないが、プロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ及び割込みコントローラ)、様々なI/Oコントローラ周辺機器、及びルーティング論理を含み得る。
【0225】
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、安全クラスタ・エンジンをさらに含み得、安全クラスタ・エンジンは、限定はしないが、自動車用途のための安全管理に対処するための専用プロセッサ・サブシステムを含む。少なくとも1つの実施例では、安全クラスタ・エンジンは、限定はしないが、2つ又はそれ以上のプロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ、割込みコントローラなど)、及び/又はルーティング論理を含み得る。安全モードでは、2つ又はそれ以上のコアは、少なくとも1つの実施例では、ロックステップ・モードで動作し、それらの動作間で何らかの差を検出するための比較論理をもつ単一コアとして機能し得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、リアルタイム・カメラ・エンジンをさらに含み得、リアルタイム・カメラ・エンジンは、限定はしないが、リアルタイム・カメラ管理に対処するための専用プロセッサ・サブシステムを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、高ダイナミック・レンジ信号プロセッサをさらに含み得、高ダイナミック・レンジ信号プロセッサは、限定はしないが、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る。
【0226】
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1610は、ビデオ画像合成器を含み得、ビデオ画像合成器は、プレーヤ・ウィンドウのための最終画像を作り出すためにビデオ再生アプリケーションによって必要とされるビデオ後処理機能を実装する(たとえば、マイクロプロセッサ上に実装された)処理ブロックであり得る。少なくとも1つの実施例では、ビデオ画像合成器は、(1つ又は複数の)広角カメラ1670、(1つ又は複数の)周囲カメラ1674、及び/又は(1つ又は複数の)キャビン内監視カメラ・センサに対して、レンズゆがみ補正を実施し得る。少なくとも1つの実施例では、(1つ又は複数の)キャビン内監視カメラ・センサは、好ましくは、キャビン内のイベントを識別し、それに応じて応答するように構成された、(1つ又は複数の)SoC1604の別のインスタンス上で稼働しているニューラル・ネットワークによって監視される。少なくとも1つの実施例では、キャビン内システムは、限定はしないが、セルラー・サービスをアクティブ化し、電話をかけ、電子メールを書き、車両の行き先を変更し、車両のインフォテイメント・システム及び設定をアクティブ化又は変更し、或いはボイス作動式のウェブ・サーフィンを提供するために、読唇を実施し得る。少なくとも1つの実施例では、いくつかの機能は、車両が自律モードで動作しているときにドライバにとって利用可能であり、他の場合に使用不可にされる。
【0227】
少なくとも1つの実施例では、ビデオ画像合成器は、空間と時間の両方のノイズ低減のための拡張された時間的ノイズ低減を含み得る。たとえば、少なくとも1つの実施例では、ビデオ中で動きが発生した場合、ノイズ低減が空間情報に適切に重み付けし、隣接するフレームによって提供される情報の重みを減少させる。少なくとも1つの実施例では、画像又は画像の一部分が動きを含まない場合、ビデオ画像合成器によって実施される時間的ノイズ低減は、前の画像からの情報を使用して、現在の画像中のノイズを低減し得る。
【0228】
少なくとも1つの実施例では、ビデオ画像合成器はまた、入力されたステレオ・レンズ・フレームに対してステレオ平行化(stereo rectification)を実施するように構成され得る。少なくとも1つの実施例では、ビデオ画像合成器は、オペレーティング・システム・デスクトップが使用中であるとき、ユーザ・インターフェース合成のためにさらに使用され得、(1つ又は複数の)GPU1608は、新しい表面を継続的にレンダリングすることを必要とされない。少なくとも1つの実施例では、(1つ又は複数の)GPU1608が電源投入され、アクティブであり、3Dレンダリングを行っているとき、ビデオ画像合成器は、性能及び応答性を改善するために(1つ又は複数の)GPU1608をオフロードするために使用され得る。
【0229】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、カメラからのビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(「MIPI」:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、並びに/又はカメラ及び関係するピクセル入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、(1つ又は複数の)入力/出力コントローラをさらに含み得、(1つ又は複数の)入力/出力コントローラは、ソフトウェアによって制御され得、特定の役割にコミットされていないI/O信号を受信するために使用され得る。
【0230】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、周辺機器、オーディオ・エンコーダ/デコーダ(「コーデック」)、電力管理、及び/又は他のデバイスとの通信を可能にするための広範囲の周辺インターフェースをさらに含み得る。(1つ又は複数の)SoC1604は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネットを介して接続された)カメラからのデータ、センサ(たとえば、イーサネットを介して接続され得る(1つ又は複数の)LIDARセンサ1664、(1つ又は複数の)RADARセンサ1660など)からのデータ、バス1602からのデータ(たとえば、車両1600のスピード、ハンドル位置など)、(たとえば、イーサネット又はCANバスを介して接続された)(1つ又は複数の)GNSSセンサ1658からのデータなどを処理するために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)SoC1604のうちの1つ又は複数は、専用の高性能大容量ストレージ・コントローラをさらに含み得、この大容量ストレージ・コントローラは、それら自体のDMAエンジンを含み得、ルーチン・データ管理タスクから(1つ又は複数の)CPU1606を解放するために使用され得る。
【0231】
少なくとも1つの実施例では、(1つ又は複数の)SoC1604は、自動化レベル3~5に及ぶフレキシブルなアーキテクチャをもつエンドツーエンド・プラットフォームであり得、それにより、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に利用する包括的な機能的安全性アーキテクチャを提供し、フレキシブルで、信頼できる運転ソフトウェア・スタックのためのプラットフォームを、深層学習ツールとともに提供する。少なくとも1つの実施例では、(1つ又は複数の)SoC1604は、従来のシステムよりも高速で、信頼でき、さらにはエネルギー効率及び空間効率が高くなり得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ1614は、(1つ又は複数の)CPU1606、(1つ又は複数の)GPU1608、及び(1つ又は複数の)データ・ストア1616と組み合わせられたとき、レベル3~5の自律車両のための高速で効率的なプラットフォームを提供し得る。
【0232】
少なくとも1つの実施例では、コンピュータ・ビジョン・アルゴリズムはCPU上で実行され得、このアルゴリズムは、多種多様な視覚データにわたって多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベル・プログラミング言語を使用して構成され得る。しかしながら、少なくとも1つの実施例では、CPUは、しばしば、たとえば、実行時間及び電力消費に関係する要件など、多くのコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。少なくとも1つの実施例では、多くのCPUは、車両内ADASアプリケーション及び実際のレベル3~5の自律車両において使用される、複雑な物体検出アルゴリズムをリアルタイムで実行することができない。
【0233】
本明細書で説明される実施例は、複数のニューラル・ネットワークが同時に及び/又は順次実施されることを可能にし、レベル3~5の自律運転機能性を可能にするために結果が一緒に組み合わせられることを可能にする。たとえば、少なくとも1つの実施例では、DLA又は個別GPU(たとえば、(1つ又は複数の)GPU1620)上で実行しているCNNは、テキスト及び単語認識を含み得、ニューラル・ネットワークがそれについて特に訓練されていない標識を含む交通標識をスーパーコンピュータが読み、理解することを可能にする。少なくとも1つの実施例では、DLAは、標識を識別し、解釈し、標識の意味的理解を提供することができ、その意味的理解を、CPUコンプレックス上で稼働している経路計画モジュールに渡すことができる、ニューラル・ネットワークをさらに含み得る。
【0234】
少なくとも1つの実施例では、レベル3、4、又は5の運転に関して、複数のニューラル・ネットワークが同時に稼働され得る。たとえば、少なくとも1つの実施例では、電光とともに、「注意:点滅光は凍結状態(icy condition)を示す」からなる警告標識が、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。少なくとも1つの実施例では、標識自体は、第1の導入されたニューラル・ネットワーク(たとえば、訓練されたニューラル・ネットワーク)によって交通標識として識別され得、「点滅光は凍結状態を示す」というテキストは、第2の導入されたニューラル・ネットワークによって解釈され得、第2の導入されたニューラル・ネットワークは、点滅光が検出されたとき、凍結状態が存在することを車両の(好ましくはCPUコンプレックス上で実行している)経路計画ソフトウェアに知らせる。少なくとも1つの実施例では、点滅光は、第3の導入されたニューラル・ネットワークを複数のフレームにわたって動作させることによって識別され得、第3の導入されたニューラル・ネットワークが、車両の経路計画ソフトウェアに点滅光の存在(又は不在)を知らせる。少なくとも1つの実施例では、3つすべてのニューラル・ネットワークが、DLA内及び/又は(1つ又は複数の)GPU1608上などで同時に稼働し得る。
【0235】
少なくとも1つの実施例では、顔認識及び車両所有者識別のためのCNNが、カメラ・センサからのデータを使用して、車両1600の承認済みのドライバ及び/又は所有者の存在を識別し得る。少なくとも1つの実施例では、所有者がドライバ・ドアに近づき、ライトをオンにしたときに車両を解錠し、セキュリティ・モードでは、所有者が車両から離れたときに車両を使用不可にするために、常時オン・センサ処理エンジンが使用され得る。このようにして、(1つ又は複数の)SoC1604は、窃盗及び/又は自動車乗っ取りに対するセキュリティを提供する。
【0236】
少なくとも1つの実施例では、緊急車両検出及び識別のためのCNNが、マイクロフォン1696からのデータを使用して、緊急車両のサイレンを検出及び識別し得る。少なくとも1つの実施例では、(1つ又は複数の)SoC1604は、環境及び市街地の音を分類し、並びに視覚データを分類するために、CNNを使用する。少なくとも1つの実施例では、DLA上で稼働しているCNNは、緊急車両が近づいてくる相対的なスピードを(たとえば、ドップラ効果を使用することによって)識別するように訓練される。少なくとも1つの実施例では、CNNは、(1つ又は複数の)GNSSセンサ1658によって識別されるように、車両が動作している地域に特有の緊急車両を識別するようにも訓練され得る。少なくとも1つの実施例では、欧州で動作しているときは、CNNは欧州のサイレンを検出しようとし、米国にあるときは、CNNは北米のサイレンのみを識別しようとする。少なくとも1つの実施例では、緊急車両が検出されると、緊急車両安全ルーチンを実行し、車両の速度を落とし、道路脇に寄せ、車両を停止させ、及び/又は(1つ又は複数の)緊急車両が通過するまで、(1つ又は複数の)超音波センサ1662を併用して車両をアイドリングするために、制御プログラムが使用され得る。
【0237】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)CPU1618(たとえば、(1つ又は複数の)個別CPU、又は(1つ又は複数の)dCPU)を含み得、(1つ又は複数の)CPU1618は、高速相互接続(たとえば、PCIe)を介して(1つ又は複数の)SoC1604に結合され得る。少なくとも1つの実施例では、(1つ又は複数の)CPU1618は、たとえばX86プロセッサを含み得る。(1つ又は複数の)CPU1618は、たとえば、ADASセンサと(1つ又は複数の)SoC1604との間で潜在的に一貫性のない結果を調停すること、並びに/或いは、(1つ又は複数の)コントローラ1636及び/又はチップ上のインフォテイメント・システム(「インフォテイメントSoC」)1630のステータス及び健全性を監視することを含む、様々な機能のいずれかを実施するために使用され得る。
【0238】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)GPU1620(たとえば、(1つ又は複数の)個別GPU、又は(1つ又は複数の)dGPU)を含み得、(1つ又は複数の)GPU1620は、高速相互接続(たとえば、NVIDIAのNVLINK)を介して(1つ又は複数の)SoC1604に結合され得る。少なくとも1つの実施例では、(1つ又は複数の)GPU1620は、冗長な及び/又は異なるニューラル・ネットワークを実行することなどによって、追加の人工知能機能性を提供し得、車両1600のセンサからの入力(たとえば、センサ・データ)に少なくとも部分的に基づいて、ニューラル・ネットワークを訓練及び/又は更新するために使用され得る。
【0239】
少なくとも1つの実施例では、車両1600は、ネットワーク・インターフェース1624をさらに含み得、ネットワーク・インターフェース1624は、限定はしないが、(1つ又は複数の)ワイヤレス・アンテナ1626(たとえば、セルラー・アンテナ、Bluetoothアンテナなど、異なる通信プロトコルのための1つ又は複数のワイヤレス・アンテナ1626)を含み得る。少なくとも1つの実施例では、ネットワーク・インターフェース1624は、クラウドとの(たとえば、(1つ又は複数の)サーバ及び/又は他のネットワーク・デバイスとの)、他の車両との、及び/又はコンピューティング・デバイス(たとえば、乗客のクライアント・デバイス)との、インターネットを介したワイヤレス接続性を可能にするために使用され得る。少なくとも1つの実施例では、他の車両と通信するために、車両160と他の車両との間に直接リンクが確立され得、及び/又は(たとえば、ネットワークにわたって及びインターネットを介して)間接リンクが確立され得る。少なくとも1つの実施例では、直接リンクは、車両間通信リンクを使用して提供され得る。車両間通信リンクは、車両1600の近傍の車両(たとえば、車両1600の前方、側方、及び/又は後方の車両)に関する情報を車両1600に提供し得る。少なくとも1つの実施例では、前述の機能性は、車両1600の協調型適応走行制御機能性の一部であり得る。
【0240】
少なくとも1つの実施例では、ネットワーク・インターフェース1624は、変調及び復調機能性を提供し、(1つ又は複数の)コントローラ1636がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。少なくとも1つの実施例では、ネットワーク・インターフェース1624は、ベースバンドから無線周波数へのアップ・コンバージョン、及び無線周波数からベースバンドへのダウン・コンバージョンのための無線周波数フロント・エンドを含み得る。少なくとも1つの実施例では、周波数コンバージョンは、任意の技術的に実現可能な様式で実施され得る。たとえば、周波数コンバージョンは、よく知られているプロセスを通して、及び/又はスーパー・ヘテロダイン・プロセスを使用して実施され得る。少なくとも1つの実施例では、無線周波数フロント・エンド機能性は、別個のチップによって提供され得る。少なくとも1つの実施例では、ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000、Bluetooth、Bluetooth LE、Wi-Fi、Z波、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能性を含み得る。
【0241】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)データ・ストア1628をさらに含み得、(1つ又は複数の)データ・ストア1628は、限定はしないが、オフチップ(たとえば、(1つ又は複数の)SoC1604上にない)ストレージを含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア1628は、限定はしないが、RAM、SRAM、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)、ビデオ・ランダム・アクセス・メモリ(「VRAM」:video random-access memory)、フラッシュ、ハード・ディスク、並びに/或いは、少なくとも1ビットのデータを記憶し得る他の構成要素及び/又はデバイスを含む、1つ又は複数のストレージ要素を含み得る。
【0242】
少なくとも1つの実施例では、車両1600は、マッピング、知覚、占有グリッド生成、及び/又は経路計画機能を支援するために、(1つ又は複数の)GNSSセンサ1658(たとえば、GPS及び/又は補助GPSセンサ)をさらに含み得る。少なくとも1つの実施例では、たとえば、限定はしないが、イーサネット-シリアル(たとえば、RS-232)ブリッジをもつUSBコネクタを使用するGPSを含む、任意の数のGNSSセンサ1658が使用され得る。
【0243】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)RADARセンサ1660をさらに含み得る。(1つ又は複数の)RADARセンサ1660は、暗闇及び/又は厳しい気象条件においてさえ、長距離車両検出のために車両1600によって使用され得る。少なくとも1つの実施例では、RADARの機能的安全性レベルは、ASIL Bであり得る。(1つ又は複数の)RADARセンサ1660は、いくつかの実例では、未加工のデータにアクセスするためのイーサネットへのアクセスとともに、制御のために(たとえば、(1つ又は複数の)RADARセンサ1660によって生成されたデータを送信するために)、及び物体追跡データにアクセスするために、CAN及び/又はバス1602を使用し得る。少なくとも1つの実施例では、多種多様なRADARセンサ・タイプが使用され得る。たとえば、限定はしないが、(1つ又は複数の)RADARセンサ1660は、前方、後方、及び側方のRADAR使用に好適であり得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ1660のうちの1つ又は複数は、(1つ又は複数の)パルス・ドップラRADARセンサである。
【0244】
少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ1660は、狭視野の長距離、広視野の短距離、短距離側方カバレージなど、異なる構成を含み得る。少なくとも1つの実施例では、長距離RADARは、適応走行制御機能性のために使用され得る。少なくとも1つの実施例では、長距離RADARシステムは、250m範囲内などの、2つ又はそれ以上の独立した走査によって実現される広い視野を提供し得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ1660は、静的物体と移動している物体とを区別するのを助け得、緊急ブレーキ支援及び前方衝突警告のためにADASシステム1638によって使用され得る。長距離RADARシステム中に含まれる(1つ又は複数の)センサ1660は、限定はしないが、複数の(たとえば、6つ又はそれ以上の)固定RADARアンテナ、並びに高速CAN及びFlexRayインターフェースをもつモノスタティック・マルチモーダルRADARを含み得る。少なくとも1つの実施例では、6つのアンテナがある場合、中央の4アンテナは、隣接する車線におけるトラフィックからの干渉が最小の状態で、より高速で車両1600の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。少なくとも1つの実施例では、他の2つのアンテナは、視野を拡大し、これは、車両1600の車線に入るか又はそこを出る車両を迅速に検出することを可能にし得る。
【0245】
少なくとも1つの実施例では、中距離RADARシステムは、一実例として、最高160m(前方)又は80m(後方)の範囲と、最高42度(前方)又は150度(後方)の視野とを含み得る。少なくとも1つの実施例では、短距離RADARシステムは、限定はしないが、後方バンパの両端部に設置されるように設計された任意の数のRADARセンサ1660を含み得る。後方バンパの両端部に設置されたとき、少なくとも1つの実施例では、RADARセンサ・システムは、車両の後方及び隣の死角を常に監視する2本のビームを作成し得る。少なくとも1つの実施例では、短距離RADARシステムは、死角検出及び/又は車線変更支援のために、ADASシステム1638において使用され得る。
【0246】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)超音波センサ1662をさらに含み得る。車両1600の前方、後方、及び/又は側方において位置決めされ得る(1つ又は複数の)超音波センサ1662は、駐車支援のために、並びに/又は占有グリッドを作成及び更新するために、使用され得る。少なくとも1つの実施例では、多種多様な(1つ又は複数の)超音波センサ1662が使用され得、異なる検出範囲(たとえば、2.5m、4m)について(1つ又は複数の)異なる超音波センサ1662が使用され得る。少なくとも1つの実施例では、(1つ又は複数の)超音波センサ1662は、機能的安全性レベルのASIL Bにおいて動作し得る。
【0247】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)LIDARセンサ1664を含み得る。(1つ又は複数の)LIDARセンサ1664は、物体及び歩行者検出、緊急ブレーキ、衝突回避、並びに/又は他の機能のために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ1664は、機能的安全性レベルASIL Bであり得る。少なくとも1つの実施例では、車両1600は、複数のLIDARセンサ1664(たとえば、2つ、4つ、6つなど)を含み得、それらのLIDARセンサ1664は、(たとえば、データをギガビット・イーサネット・スイッチに提供するために)イーサネットを使用し得る。
【0248】
少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ1664は、360度の視野について、物体及びそれらの距離のリストを提供することが可能であり得る。少なくとも1つの実施例では、(1つ又は複数の)市販のLIDARセンサ1664は、たとえば、2cm~3cmの精度をもつ、及び100Mbpsのイーサネット接続のサポートをもつ、ほぼ100mの宣伝された範囲を有し得る。少なくとも1つの実施例では、1つ又は複数の非突出型LIDARセンサ1664が使用され得る。そのような実施例では、(1つ又は複数の)LIDARセンサ1664は、車両1600の前方、後方、側方、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ1664は、そのような実施例において、最高120度の水平視野と、35度の垂直視野とを、低反射性物体についてさえ200mの範囲で提供し得る。少なくとも1つの実施例では、(1つ又は複数の)前方に取り付けられたLIDARセンサ1664は、45度から135度の間の水平視野のために構成され得る。
【0249】
少なくとも1つの実施例では、3DフラッシュLIDARなどのLIDAR技術も使用され得る。3DフラッシュLIDARは、レーザのフラッシュを送信ソースとして使用して、車両1600の周囲を最高でほぼ200mまで照射する。少なくとも1つの実施例では、フラッシュLIDARユニットは、限定はしないが、レセプタを含み、レセプタは、レーザ・パルスの通過時間と各ピクセル上での反射光とを記録し、それらは、車両1600から物体までの範囲に対応する。少なくとも1つの実施例では、フラッシュLIDARは、非常に正確でゆがみのない周囲画像が、レーザのフラッシュごとに生成されることを可能にし得る。少なくとも1つの実施例では、4つのフラッシュLIDARセンサが、車両1600の各側面において1つ導入され得る。少なくとも1つの実施例では、3DフラッシュLIDARシステムは、限定はしないが、ファン以外に可動部品のないソリッド・ステート3D凝視アレイ(staring array)LIDARカメラ(たとえば、非走査型LIDARデバイス)を含む。少なくとも1つの実施例では、(1つ又は複数の)フラッシュLIDARデバイスは、フレーム当たり5ナノ秒のクラスI(眼に安全な)レーザ・パルスを使用し得、3D範囲のポイント・クラウド及び位置同期された(co-registered)強度データの形態で反射レーザ光をキャプチャし得る。
【0250】
少なくとも1つの実施例では、車両は、(1つ又は複数の)IMUセンサ1666をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666は、少なくとも1つの実施例では、車両1600の後方車軸の中央に位置し得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666は、たとえば、限定はしないが、(1つ又は複数の)加速度計、(1つ又は複数の)磁力計、(1つ又は複数の)ジャイロスコープ、(1つ又は複数の)磁気コンパス、及び/又は他のセンサ・タイプを含み得る。6軸の用途においてなど、少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666は、限定はしないが、加速度計とジャイロスコープとを含み得る。9軸の用途においてなど、少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666は、限定はしないが、加速度計と、ジャイロスコープと、磁力計とを含み得る。
【0251】
少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666は、微小電気機械システム(「MEMS」:micro-electro-mechanical systems)慣性センサ、高感度GPS受信機、及び先進Kalmanフィルタリング・アルゴリズムを組み合わせて、位置、速度、及び姿勢の推定値を提供する、小型の高性能GPS補強型慣性航法システム(「GPS/INS」:GPS-Aided Inertial Navigation System)として実装され得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666は、車両1600が、速度の変化を直接観察し、それを、GPSから(1つ又は複数の)IMUセンサ1666に相関させることによって、磁気センサからの入力を必要とせずに方位を推定することを可能にし得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ1666と(1つ又は複数の)GNSSセンサ1658とは、単一の統合されたユニットにおいて組み合わせられ得る。
【0252】
少なくとも1つの実施例では、車両1600は、車両1600の中及び/又はその周りに置かれた(1つ又は複数の)マイクロフォン1696を含み得る。少なくとも1つの実施例では、(1つ又は複数の)マイクロフォン1696は、とりわけ、緊急車両検出及び識別のために使用され得る。
【0253】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)ステレオ・カメラ1668、(1つ又は複数の)広角カメラ1670、(1つ又は複数の)赤外線カメラ1672、(1つ又は複数の)周囲カメラ1674、(1つ又は複数の)長距離カメラ1698、(1つ又は複数の)中距離カメラ1676、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。少なくとも1つの実施例では、カメラは、車両1600の全周辺の周りで画像データをキャプチャするために使用され得る。少なくとも1つの実施例では、使用されるカメラのタイプは、車両1600に依存する。少なくとも1つの実施例では、車両1600の周りで必要なカバレージを提供するために、カメラ・タイプの任意の組合せが使用され得る。少なくとも1つの実施例では、カメラの数は、実施例に応じて異なり得る。たとえば、少なくとも1つの実施例では、車両1600は、6台のカメラ、7台のカメラ、10台のカメラ、12台のカメラ、又は別の数のカメラを含むことができる。カメラは、一実例として、限定はしないが、ギガビット・マルチメディア・シリアル・リンク(「GMSL」:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネットをサポートし得る。少なくとも1つの実施例では、(1つ又は複数の)カメラの各々は、
図16A及び
図16Bに関して本明細書でより詳細に前に説明された。
【0254】
少なくとも1つの実施例では、車両1600は、(1つ又は複数の)振動センサ1642をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)振動センサ1642は、(1つ又は複数の)車軸など、車両1600の構成要素の振動を測定し得る。たとえば、少なくとも1つの実施例では、振動の変化は、路面の変化を示し得る。少なくとも1つの実施例では、2つ又はそれ以上の振動センサ1642が使用されるとき、路面の摩擦又はすべり量を決定するために振動の差が使用され得る(たとえば、振動の差が動力駆動車軸と自由回転車軸との間のものであるとき)。
【0255】
少なくとも1つの実施例では、車両1600は、ADASシステム1638を含み得る。ADASシステム1638は、限定はしないが、いくつかの実例では、SoCを含み得る。少なくとも1つの実施例では、ADASシステム1638は、限定はしないが、任意の数及び組合せの自律/適応/自動走行制御(「ACC」:autonomous/adaptive/automatic cruise control)システム、協調型適応走行制御(「CACC」:cooperative adaptive cruise control)システム、正面クラッシュ警告(「FCW」:forward crash warning)システム、自動緊急ブレーキ(「AEB」)システム、車線逸脱警告(「LDW」)システム、車線維持支援(「LKA」:lane keep assist)システム、死角警告(「BSW」:blind spot warning)システム、後方クロス・トラフィック警告(「RCTW」:rear cross-traffic warning)システム、衝突警告(「CW」:collision warning)システム、車線センタリング(「LC」:lane centering)システム、並びに/或いは他のシステム、特徴、及び/又は機能性を含み得る。
【0256】
少なくとも1つの実施例では、ACCシステムは、(1つ又は複数の)RADARセンサ1660、(1つ又は複数の)LIDARセンサ1664、及び/又は任意の数のカメラを使用し得る。少なくとも1つの実施例では、ACCシステムは、縦方向ACCシステム及び/又は横方向ACCシステムを含み得る。少なくとも1つの実施例では、縦方向ACCシステムは、車両1600の直前の車両までの距離を監視及び制御し、車両1600のスピードを自動的に調整して、前の車両からの安全な距離を維持する。少なくとも1つの実施例では、横方向ACCシステムは、距離の維持を実施し、必要なときに車線を変更するよう車両1600に忠告する。少なくとも1つの実施例では、横方向ACCは、LC及びCWなど、他のADAS用途に関係する。
【0257】
少なくとも1つの実施例では、CACCシステムは、他の車両からの情報を使用し、この情報は、ワイヤレス・リンクを介して、又は間接的に、ネットワーク接続を介して(たとえば、インターネットを介して)、他の車両からネットワーク・インターフェース1624及び/又は(1つ又は複数の)ワイヤレス・アンテナ1626を介して受信され得る。少なくとも1つの実施例では、直接リンクは車両間(「V2V」:vehicle-to-vehicle)通信リンクによって提供され得、間接リンクはインフラストラクチャ車両間(「I2V」:infrastructure-to-vehicle)通信リンクによって提供され得る。一般に、V2V通信概念は、直前の先行車両(たとえば、車両1600の直前で同じ車線にいる車両)に関する情報を提供し、I2V通信概念は、さらにその前の交通に関する情報を提供する。少なくとも1つの実施例では、CACCシステムは、I2V情報ソースとV2V情報ソースのいずれか又は両方を含み得る。少なくとも1つの実施例では、車両1600の前の車両の情報があれば、CACCシステムは、より信頼できるものとなり得、それは、交通の流れの円滑さを改善し、道路上での渋滞を低減する可能性を有する。
【0258】
少なくとも1つの実施例では、FCWシステムは、危険物についてドライバにアラートするように設計され、それにより、ドライバは是正アクションをとり得る。少なくとも1つの実施例では、FCWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックに電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、正面カメラ及び/又は(1つ又は複数の)RADARセンサ1660を使用する。少なくとも1つの実施例では、FCWシステムは、音、視覚的警告、振動及び/又はクイック・ブレーキ・パルスなどの形態で警告を提供し得る。
【0259】
少なくとも1つの実施例では、AEBシステムは、別の車両又は他の物体との差し迫った前方衝突を検出し、指定された時間又は距離パラメータ内にドライバが是正アクションをとらない場合、自動的にブレーキをかけ得る。少なくとも1つの実施例では、AEBシステムは、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された(1つ又は複数の)正面カメラ及び/又は(1つ又は複数の)RADARセンサ1660を使用し得る。少なくとも1つの実施例では、AEBシステムが危険物を検出したとき、AEBシステムは、通常、最初に、是正アクションをとって衝突を回避するようにドライバにアラートし、ドライバが是正アクションをとらない場合、AEBシステムは、予測される衝突を防ぐか、又は少なくともその衝撃を軽減するために、自動的にブレーキをかけ得る。少なくとも1つの実施例では、AEBシステムは、動的ブレーキ・サポート及び/又はクラッシュ直前ブレーキなどの技法を含み得る。
【0260】
少なくとも1つの実施例では、LDWシステムは、車両1600が車線の目印に交差したときにドライバにアラートするために、ハンドル又は座席の振動など、視覚的、聴覚的、及び/又は触覚的警告を提供する。少なくとも1つの実施例では、LDWシステムは、ドライバが方向指示器をアクティブ化することによって意図的な車線逸脱を示すとき、アクティブ化しない。少なくとも1つの実施例では、LDWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックに電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、正面向きのカメラを使用し得る。少なくとも1つの実施例では、LKAシステムは、LDWシステムの変形形態である。LKAシステムは、車両1600が車線から出始めた場合に車両1600を是正するために操縦入力又はブレーキ制御を提供する。
【0261】
少なくとも1つの実施例では、BSWシステムは、自動車の死角にある車両を検出し、その車両についてドライバに警告する。少なくとも1つの実施例では、BSWシステムは、合流すること又は車線を変更することが安全ではないことを示すために、視覚的、聴覚的、及び/又は触覚的なアラートを提供し得る。少なくとも1つの実施例では、BSWシステムは、ドライバが方向指示器を使用したときに追加の警告を提供し得る。少なくとも1つの実施例では、BSWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックに電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、(1つ又は複数の)背面向きのカメラ及び/又は(1つ又は複数の)RADARセンサ1660を使用し得る。
【0262】
少なくとも1つの実施例では、RCTWシステムは、車両1600が後退しているときに物体が後方カメラの範囲外で検出されたとき、視覚的、聴覚的、及び/又は触覚的な通知を提供し得る。少なくとも1つの実施例では、RCTWシステムは、クラッシュを回避するために車両ブレーキがかけられることを確実にするためのAEBシステムを含む。少なくとも1つの実施例では、RCTWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックに電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1つ又は複数の背面RADARセンサ1660を使用し得る。
【0263】
少なくとも1つの実施例では、従来のADASシステムは、偽陽性結果を出しがちなことがあり、これは、ドライバにとって迷惑であり、気が散るものであり得るが、従来のADASシステムが、ドライバにアラートし、ドライバが、安全条件が本当に存在するかどうかを判定し、それに応じて行動することを可能にするので、通常は大したことにはならない。少なくとも1つの実施例では、車両1600自体が、矛盾する結果の場合、1次コンピュータ(たとえば、第1のコントローラ1636)からの結果に従うのか、2次コンピュータ(たとえば、第2のコントローラ1636)からの結果に従うのかを判定する。たとえば、少なくとも1つの実施例では、ADASシステム1638は、バックアップ・コンピュータ合理性モジュールに知覚情報を提供するためのバックアップ及び/又は2次コンピュータであり得る。少なくとも1つの実施例では、バックアップ・コンピュータ合理性モニタが、ハードウェア構成要素上の冗長な多様なソフトウェアを稼働して、知覚及び動的運転タスクの障害を検出し得る。少なくとも1つの実施例では、ADASシステム1638からの出力は、監督MCU(supervisory MCU)に提供され得る。少なくとも1つの実施例では、1次コンピュータからの出力と2次コンピュータからの出力とが矛盾する場合、監督MCUが、安全な動作を確実にするために矛盾をどのように調和させるかを決定する。
【0264】
少なくとも1つの実施例では、1次コンピュータは、選定された結果における1次コンピュータの信頼性を示す信頼性スコアを監督MCUに提供するように構成され得る。少なくとも1つの実施例では、信頼性スコアがしきい値を超える場合、2次コンピュータが、矛盾する又は一貫性のない結果を提供するかどうかにかかわらず、監督MCUは、1次コンピュータの指示に従い得る。少なくとも1つの実施例では、信頼性スコアがしきい値を満たさない場合、及び1次コンピュータと2次コンピュータとが異なる結果(たとえば、矛盾)を示す場合、監督MCUは、コンピュータ間で調停して、適切な帰結を決定し得る。
【0265】
少なくとも1つの実施例では、監督MCUは、2次コンピュータが誤アラームを提供する条件を、1次コンピュータ及び2次コンピュータからの出力に少なくとも部分的に基づいて決定するように訓練及び構成された(1つ又は複数の)ニューラル・ネットワークを稼働するように構成され得る。少なくとも1つの実施例では、監督MCU中の(1つ又は複数の)ニューラル・ネットワークは、2次コンピュータの出力がいつ信用でき得るかと、それがいつ信用できないかとを学習し得る。たとえば、少なくとも1つの実施例では、2次コンピュータがRADARベースのFCWシステムであるとき、監督MCU中の(1つ又は複数の)ニューラル・ネットワークは、アラームをトリガする排水溝格子又はマンホール・カバーなど、実際には危険物ではない金属物体をFCWシステムがいつ識別しているかを学習し得る。少なくとも1つの実施例では、2次コンピュータがカメラ・ベースのLDWシステムであるとき、監督MCU中のニューラル・ネットワークは、自転車又は歩行者が存在し、車線逸脱が実際には最も安全な操作であるときにLDWを無効にするように学習し得る。少なくとも1つの実施例では、監督MCUは、(1つ又は複数の)ニューラル・ネットワークを、関連するメモリとともに稼働するのに好適なDLA又はGPUのうちの少なくとも1つを含み得る。少なくとも1つの実施例では、監督MCUは、(1つ又は複数の)SoC1604の構成要素を備え、及び/又はその構成要素として含められ得る。
【0266】
少なくとも1つの実施例では、ADASシステム1638は、コンピュータ・ビジョンの従来のルールを使用してADAS機能性を実施する2次コンピュータを含み得る。少なくとも1つの実施例では、2次コンピュータは、従来のコンピュータ・ビジョン・ルール(if-then)を使用し得、監督MCU中の(1つ又は複数の)ニューラル・ネットワークの存在が、信頼性、安全性及び性能を改善し得る。たとえば、少なくとも1つの実施例では、多様な実装及び意図的な非同一性が、システム全体を、特にソフトウェア(又はソフトウェアとハードウェアのインターフェース)機能性によって引き起こされる障害に対して、より障害耐性のあるものにする。たとえば、少なくとも1つの実施例では、1次コンピュータ上で稼働しているソフトウェアにおいてソフトウェア・バグ又はエラーがあり、2次コンピュータ上で稼働している非同一のソフトウェア・コードが、同じ全体的な結果を提供する場合、監督MCUは、全体的な結果が正しく、1次コンピュータ上のソフトウェア又はハードウェアにおけるバグが重大なエラーを引き起こしていないという、より高い信頼性を有し得る。
【0267】
少なくとも1つの実施例では、ADASシステム1638の出力は、1次コンピュータの知覚ブロック及び/又は1次コンピュータの動的運転タスク・ブロックにフィードされ得る。たとえば、少なくとも1つの実施例では、ADASシステム1638が、直前の物体により正面クラッシュ警告を示す場合、知覚ブロックは、物体を識別するときにこの情報を使用し得る。少なくとも1つの実施例では、2次コンピュータは、本明細書で説明されるように、訓練された、したがって偽陽性のリスクを低減する、それ自体のニューラル・ネットワークを有し得る。
【0268】
少なくとも1つの実施例では、車両1600は、インフォテイメントSoC1630(たとえば、車両内インフォテイメント・システム(IVI:in-vehicle infotainment))をさらに含み得る。SoCとして示され、説明されるが、インフォテイメント・システム1630は、少なくとも1つの実施例では、SoCでないことがあり、限定はしないが、2つ又はそれ以上の個別の構成要素を含み得る。少なくとも1つの実施例では、インフォテイメントSoC1630は、限定はしないが、ハードウェアとソフトウェアとの組合せを含み得、この組合せは、オーディオ(たとえば、音楽、パーソナル・デジタル・アシスタント、ナビゲーション命令、ニュース、ラジオなど)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続性(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データ・システム、燃料レベル、合計走行距離、ブレーキ燃料レベル、オイル・レベル、ドアの開閉、空気フィルタ情報などの車両関係情報など)を車両1600に提供するために使用され得る。たとえば、インフォテイメントSoC1630は、ラジオ、ディスク・プレーヤ、ナビゲーション・システム、ビデオ・プレーヤ、USB及びBluetooth接続性、カーピュータ、車内エンタテイメント、Wi-Fi、ハンドル・オーディオ制御、ハンズフリー・ボイス制御、ヘッドアップ・ディスプレイ(「HUD」:heads-up display)、HMIディスプレイ1634、テレマティックス・デバイス、(たとえば、様々な構成要素、特徴、及び/又はシステムを制御し、及び/又はそれらと対話するための)制御パネル、及び/又は他の構成要素を含むことができる。少なくとも1つの実施例では、インフォテイメントSoC1630は、ADASシステム1638からの情報、計画された車両操作、軌道などの自律運転情報、周囲環境情報(たとえば、交差点情報、車両情報、道路情報など)、及び/又は他の情報など、(たとえば、視覚的及び/又は聴覚的な)情報を車両の(1人又は複数の)ユーザに提供するために、さらに使用され得る。
【0269】
少なくとも1つの実施例では、インフォテイメントSoC1630は、任意の量及びタイプのGPU機能性を含み得る。少なくとも1つの実施例では、インフォテイメントSoC1630は、バス1602(たとえば、CANバス、イーサネットなど)を介して、車両1600の他のデバイス、システム、及び/又は構成要素と通信し得る。少なくとも1つの実施例では、インフォテイメントSoC1630は監督MCUに結合され得、それにより、(1つ又は複数の)1次コントローラ1636(たとえば、車両1600の1次及び/又はバックアップ・コンピュータ)が故障した場合、インフォテイメント・システムのGPUが、いくつかの自己運転機能を実施し得る。少なくとも1つの実施例では、インフォテイメントSoC1630は、本明細書で説明されるように、車両1600を運転手-安全停止モードにし得る。
【0270】
少なくとも1つの実施例では、車両1600は、計器クラスタ1632(たとえば、デジタル・ダッシュボード、電子計器クラスタ、デジタル計器パネルなど)をさらに含み得る。少なくとも1つの実施例では、計器クラスタ1632は、限定はしないが、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。少なくとも1つの実施例では、計器クラスタ1632は、限定はしないが、スピードメータ、燃料レベル、油圧、タコメータ、オドメータ、方向インジケータ、シフトレバー位置インジケータ、(1つ又は複数の)シート・ベルト警告灯、(1つ又は複数の)駐車ブレーキ警告灯、(1つ又は複数の)エンジン故障灯、補助拘束システム(たとえば、エアバッグ)情報、ライト制御、安全システム制御、ナビゲーション情報など、任意の数及び組合せの計装セットを含み得る。いくつかの実例では、情報は表示され、及び/又は、インフォテイメントSoC1630と計器クラスタ1632との間で共有され得る。少なくとも1つの実施例では、計器クラスタ1632は、インフォテイメントSoC1630の一部として含められ得、その逆もまた同様である。
【0271】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理715は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図16Cのシステムにおいて使用され得る。
【0272】
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
【0273】
図16Dは、少なくとも1つの実施例による、(1つ又は複数の)クラウド・ベースのサーバと
図16Aの自律車両1600との間の通信のためのシステム1676の図である。少なくとも1つの実施例では、システム1676は、限定はしないが、(1つ又は複数の)サーバ1678と、(1つ又は複数の)ネットワーク1690と、車両1600を含む任意の数及びタイプの車両とを含み得る。少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、限定はしないが、(総称して、本明細書ではGPU1684と呼ばれる)複数のGPU1684(A)~1684(H)、(総称して、本明細書ではPCIeスイッチ1682と呼ばれる)PCIeスイッチ1682(A)~1682(D)、及び/又は(総称して、本明細書ではCPU1680と呼ばれる)CPU1680(A)~1680(B)を含み得る。GPU1684と、CPU1680と、PCIeスイッチ1682とは、たとえば、限定はしないが、NVIDIAによって開発されたNVLinkインターフェース1688及び/又はPCIe接続1686など、高速相互接続で相互接続され得る。少なくとも1つの実施例では、GPU1684は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU1684とPCIeスイッチ1682とは、PCIe相互接続を介して接続される。少なくとも1つの実施例では、8つのGPU1684と、2つのCPU1680と、4つのPCIeスイッチ1682とが示されているが、これは限定するものではない。少なくとも1つの実施例では、(1つ又は複数の)サーバ1678の各々は、限定はしないが、任意の数のGPU1684、CPU1680、及び/又はPCIeスイッチ1682を任意の組合せで含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、各々、8つ、16個、32個、及び/又はそれ以上のGPU1684を含むことができる。
【0274】
少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、最近始まった道路工事など、予想外の又は変更された道路状態(road condition)を示す画像を表す画像データを、(1つ又は複数の)ネットワーク1690を介して、車両から受信し得る。少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、ニューラル・ネットワーク1692、更新されたニューラル・ネットワーク1692、及び/或いは、限定はしないが、交通及び道路状態に関する情報を含む、地図情報1694を、(1つ又は複数の)ネットワーク1690を介して、車両に送信し得る。少なくとも1つの実施例では、地図情報1694の更新は、限定はしないが、建築現場、穴、迂回路、洪水、及び/又は他の障害物に関する情報など、HD地
図1622についての更新を含み得る。少なくとも1つの実施例では、ニューラル・ネットワーク1692、更新されたニューラル・ネットワーク1692、及び/又は地図情報1694は、環境中の任意の数の車両から受信されたデータにおいて表された新しい訓練及び/又は経験から、並びに/或いは、データ・センタにおいて(たとえば、(1つ又は複数の)サーバ1678及び/又は他のサーバを使用して)実施された訓練に少なくとも部分的に基づいて、生じていることがある。
【0275】
少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、訓練データに少なくとも部分的に基づいて機械学習モデル(たとえば、ニューラル・ネットワーク)を訓練するために使用され得る。少なくとも1つの実施例では、訓練データは、車両によって生成され得、及び/又はシミュレーションにおいて(たとえば、ゲーム・エンジンを使用して)生成され得る。少なくとも1つの実施例では、任意の量の訓練データが、(たとえば、関連するニューラル・ネットワークが教師あり学習から恩恵を受ける場合)タグ付けされ、及び/又は他の前処理を受ける。少なくとも1つの実施例では、任意の量の訓練データが、(たとえば、関連するニューラル・ネットワークが教師あり学習を必要としない場合)タグ付けされず、及び/又は前処理されない。少なくとも1つの実施例では、機械学習モデルが訓練されると、機械学習モデルは、車両によって使用(たとえば、(1つ又は複数の)ネットワーク1690を介して車両に送信され得、及び/又は、機械学習モデルは、車両をリモートで監視するために(1つ又は複数の)サーバ1678によって使用され得る。
【0276】
少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、車両からデータを受信し、リアルタイム・インテリジェント推論のために最新のリアルタイム・ニューラル・ネットワークにデータを適用し得る。少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、(1つ又は複数の)GPU1684によって動く深層学習スーパーコンピュータ及び/又は専用AIコンピュータを含み得る。しかしながら、少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、CPUによって動くデータ・センタを使用する深層学習インフラストラクチャを含み得る。
【0277】
少なくとも1つの実施例では、(1つ又は複数の)サーバ1678の深層学習インフラストラクチャは、高速リアルタイム推論が可能であり得、その能力を使用して、車両1600中のプロセッサ、ソフトウェア、及び/又は関連するハードウェアの健全性を評定及び確認し得る。たとえば、少なくとも1つの実施例では、深層学習インフラストラクチャは、一連の画像、及び/又は(たとえば、コンピュータ・ビジョン及び/又は他の機械学習物体分類技法を介して)その一連の画像において車両1600が位置を特定した物体など、周期的な更新を車両1600から受信し得る。少なくとも1つの実施例では、深層学習インフラストラクチャは、それ自体のニューラル・ネットワークを稼働して物体を識別し、それらを、車両1600によって識別された物体と比較し得、結果がマッチせず、車両1600中のAIが故障していると深層学習インフラストラクチャが結論付けた場合、(1つ又は複数の)サーバ1678は、車両1600のフェイル・セーフ・コンピュータに、制御を掌握し、乗客に通知し、安全な駐車操作を完了するように命令する信号を、車両1600に送信し得る。
【0278】
少なくとも1つの実施例では、(1つ又は複数の)サーバ1678は、(1つ又は複数の)GPU1684と、1つ又は複数のプログラマブル推論アクセラレータ(たとえば、NVIDIAのTensorRT3)とを含み得る。少なくとも1つの実施例では、GPUによって動くサーバと推論の加速との組合せが、リアルタイム応答を可能にし得る。性能がそれほど重要ではない場合など、少なくとも1つの実施例では、CPU、FPGA、及び他のプロセッサによって動くサーバが、推論のために使用され得る。少なくとも1つの実施例では、1つ又は複数の実施例を実施するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細は、本明細書の他の場所で提供される。
【0279】
他の変形形態は、本開示の範囲内にある。したがって、開示される技法は、様々な修正及び代替構築が可能であるが、それらのいくつかの例示的な実施例が図面に示され、上記で詳細に説明された。しかしながら、特定の1つ又は複数の開示された形態に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲において定義されるように、開示の趣旨及び範囲に入るすべての修正形態、代替構築、及び等価物を網羅することを意図していることが理解されるべきである。
【0280】
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「含む、備える(comprising)」、「有する(having)」、「含む(including)」、「含んでいる(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「限定はしないが、~を含む(including, but not limited to,)」を意味する)と解釈されるべきである。「接続される」という用語は、修飾されず、物理的接続を指しているとき、何か介在するものがある場合でも、部分的に又は完全に中に含まれているか、取り付けられるか、又は互いに接合されるものとして解釈されるべきである。本明細書で値の範囲を詳述することは、本明細書に別段の記載のない限り、及び各別個の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に入る各別個の値を個々に参照する簡潔な方法として働くことを単に意図しているにすぎない。「セット」(たとえば、「項目のセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がないか又は否定されない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がないか又は否定されない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すとは限らず、サブセットと、対応するセットとは、等しくなり得る。
【0281】
「A、B、及びCのうちの少なくとも1つ」又は「A、B及びCのうちの少なくとも1つ」という形態の言い回しなどの結合語は、別段の具体的な記載がないか又はさもなければ文脈によって明確に否定されない限り、別様に、項目、用語などが、A又はB又はCのいずれか、或いはAとBとCとのセットの任意の空でないサブセットであり得ることを提示するために一般に使用される文脈で、理解される。たとえば、3つの部材を有するセットの説明的な実例では、「A、B、及びCのうちの少なくとも1つ」並びに「A、B及びCのうちの少なくとも1つ」という結合句は、次のセットのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、そのような結合語は、いくつかの実施例が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つの各々が存在することを必要とすることを全体的に暗示するものではない。さらに、別段の記載がないか又は文脈によって否定されない限り、「複数(plurality)」という用語は、複数である状態を示す(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を示す)。複数(plurality)は、少なくとも2つの項目であるが、明示的に、又は文脈によってのいずれかでそのように示されているとき、それよりも多いことがある。さらに、別段の記載がないか又はさもなければ文脈から明らかでない限り、「~に基づいて」という言い回しは、「少なくとも部分的に~に基づいて」を意味し、「~のみに基づいて」を意味しない。
【0282】
本明細書で説明されるプロセスの動作は、本明細書に別段の記載がないか又はさもなければ文脈によって明確に否定されない限り、任意の好適な順序で実施され得る。少なくとも1つの実施例では、本明細書で説明されるプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実施され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行するコード(たとえば、実行可能命令、1つ又は複数のコンピュータ・プログラム、又は1つ又は複数のアプリケーション)として実装される。少なくとも1つの実施例では、コードは、たとえば、1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形態で、コンピュータ可読記憶媒体に記憶される。少なくとも1つの実施例では、コンピュータ可読記憶媒体は、一時的信号(たとえば、伝搬する一時的な電気又は電磁送信)を除外するが、一時的信号のトランシーバ内の非一時的データ・ストレージ回路要素(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的コンピュータ可読記憶媒体である。少なくとも1つの実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的コンピュータ可読記憶媒体のセットに記憶され、この記憶媒体は、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書で説明される動作を実施させる実行可能命令を記憶している(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的コンピュータ可読記憶媒体のセットは、少なくとも1つの実施例では、複数の非一時的コンピュータ可読記憶媒体を備え、複数の非一時的コンピュータ可読記憶媒体の個々の非一時的記憶媒体のうちの1つ又は複数は、コードのすべてがないが、複数の非一時的コンピュータ可読記憶媒体は、集合的にコードのすべてを記憶している。少なくとも1つの実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的コンピュータ可読記憶媒体は命令を記憶し、メイン中央処理ユニット(「CPU」)は命令のいくつかを実行し、グラフィックス処理ユニット(「GPU」)は他の命令を実行する。少なくとも1つの実施例では、コンピュータ・システムの異なる構成要素は、別個のプロセッサを有し、異なるプロセッサが命令の異なるサブセットを実行する。
【0283】
したがって、少なくとも1つの実施例では、コンピュータ・システムは、本明細書で説明されるプロセスの動作を単独で又は集合的に実施する1つ又は複数のサービスを実装するように構成され、そのようなコンピュータ・システムは、動作の実施を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも1つの実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、分散型コンピュータ・システムが本明細書で説明される動作を実施するように、及び単一のデバイスがすべての動作を実施しないように、異なるやり方で動作する複数のデバイスを備える分散型コンピュータ・システムである。
【0284】
本明細書で提供されるあらゆる実例、又は例示的な言葉(たとえば、「など、などの(such as)」)の使用は、本開示の実施例をより明らかにすることのみを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
【0285】
本明細書で引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
【0286】
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用され得る。これらの用語は、互いに同義語として意図されていないことがあることが理解されるべきである。むしろ、特定の実例では、「接続される」又は「結合される」は、2つ又はそれ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用され得る。「結合される」はまた、2つ又はそれ以上の要素が直接互いに接触していないが、それでもなお互いに連動又は対話することを意味し得る。
【0287】
別段の具体的な記載がない限り、明細書全体を通して、「処理する(processing)」、「算出する(computing)」、「計算する(calculating)」、又は「決定する(determining)」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータを、コンピューティング・システムのメモリ、レジスタ又は他のそのような情報ストレージ、送信、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるように操作及び/又は変換する、コンピュータ又はコンピューティング・システム、或いは同様の電子コンピューティング・デバイスのアクション及び/又はプロセスを指すことが諒解され得る。
【0288】
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶され得る他の電子データに変換する任意のデバイス、又はデバイスの一部分を指し得る。非限定的な実例として、「プロセッサ」は、CPU又はGPUであり得る。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備え得る。本明細書で使用される「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実施するソフトウェア及び/又はハードウェア・エンティティを含み得る。また、各プロセスは、命令を直列で又は並列で、連続的に又は断続的に行うための複数のプロセスを指し得る。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化し得、方法がシステムと考えられ得る場合に限り、本明細書において交換可能に使用される。
【0289】
本明細書では、アナログ・データ又はデジタル・データを取得すること、獲得すること、受信すること、或いはそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及し得る。アナログ・データ及びデジタル・データを取得すること、獲得すること、受信すること、又は入力することは、関数コール、又はアプリケーション・プログラミング・インターフェースへのコールのパラメータとしてデータを受信することによってなど、様々なやり方で実現され得る。いくつかの実装形態では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、直列又は並列インターフェースを介してデータを転送することによって実現され得る。別の実装形態では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、提供するエンティティから獲得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現され得る。アナログ・データ又はデジタル・データを提供すること、出力すること、送信すること、送出すること、又は提示することにも言及し得る。様々な実例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送出する、又は提示するプロセスは、関数コールの入力又は出力パラメータ、アプリケーション・プログラミング・インターフェース又はプロセス間通信機構のパラメータとしてデータを転送することによって実現され得る。
【0290】
上記の説明は、説明された技法の例示的な実装形態について述べているが、他のアーキテクチャが、説明された機能性を実装するために使用され得、本開示の範囲内にあることが意図される。さらに、説明を目的として、責任の具体的な分散が上記で定義されたが、様々な機能及び責任は、状況に応じて異なるやり方で分散及び分割され得る。
さらに、主題は、構造的特徴及び/又は方法論的行為に特有の言語で説明されたが、添付の特許請求の範囲で特許請求される主題は、説明された特有の特徴又は行為に必ずしも限定されるとは限らないことが理解されるべきである。むしろ、特有の特徴及び行為は、特許請求の範囲を実装する例示的な形態として開示される。
【外国語明細書】