JP2023166308A - 自律システム及びアプリケーションのためのrgb-irデータ処理 - Google Patents
自律システム及びアプリケーションのためのrgb-irデータ処理 Download PDFInfo
- Publication number
- JP2023166308A JP2023166308A JP2022090067A JP2022090067A JP2023166308A JP 2023166308 A JP2023166308 A JP 2023166308A JP 2022090067 A JP2022090067 A JP 2022090067A JP 2022090067 A JP2022090067 A JP 2022090067A JP 2023166308 A JP2023166308 A JP 2023166308A
- Authority
- JP
- Japan
- Prior art keywords
- value
- infrared
- image data
- visible light
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/77—Circuits for processing the brightness signal and the chrominance signal relative to each other, e.g. adjusting the phase of the brightness signal relative to the colour signal, correcting differential gain or differential phase
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10048—Infrared image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Color Television Image Signal Generators (AREA)
- Closed-Circuit Television Systems (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
【課題】赤外線値と可視光線値とを含む画像データを処理するように構成されたシステムを提供する。【解決手段】該システムは、現在の光レベルに従って最適な画像を生成するために、IRデータと可視光線データとをどのように一緒にブレンドすべきかを決定する。該システムは、赤外線値と可視光線値との間の比較に基づいて、画像データについてのシーン検出値を算出する。そして、該システムは、画像データに適用するための、赤外線補正の量、色補正ファクタ、色飽和ファクタなどを決定することができる。そして、本システムは、赤外線補正の量、色補正ファクタ、色飽和ファクタなどに基づいて画像データを変換する。変換された画像データは、低光線シーンについて、従来利用可能であるものよりも多くの情報を含み、それにより、より高い品質の画像を作り出す。【選択図】図4
Description
本開示の実施例は、一般に画像処理に関し、より詳細には、赤色、緑色及び青色(RGB:red,green and blue)-赤外線(IR:infrared)センサからのIRデータ及び可視光線データ(たとえば、RGBデータ)に基づく、画像生成の動的制御に関する。
RGB-IRセンサが、(たとえば、自動車における)ドライバ及び乗員監視システムのために使用されるものなど、撮像システムにおいて使用される。RGB-IRセンサでは、色信号は、シーン中の可視光線の量が減少するにつれて、あまり有用でなくなる。RGB-IRセンサを使用するシステムは、概して、可視光線しきい値を有し、それを上回ると、RGBセンサからのデータが使用され、それを下回ると、IRセンサからのデータが使用される。RGB-IRシステムは、一般に、RGBセンサ・ピクセルとして、IRセンサ・ピクセルの1/4の数を有する。したがって、IRセンサ・ピクセルからの信号は、RGBセンサ・ピクセルからの信号の1/4の解像度を有する。IRセンサ・ピクセルからのそのような低減された解像度は、(たとえば、夜の)低光線設定において生成される画像の品質及び有用性を低減する。
"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)
本開示は、以下で与えられる詳細な説明から、及び本開示の様々な実施例の添付の図面から、より十分に理解されよう。しかしながら、図面は、本開示を特定の実施例に限定するものととられるべきでなく、説明及び理解のためのものにすぎない。
乗員監視システムは、一般に、単色赤外線(IR)カメラを使用し、より最近では、カラーIRカメラ(すなわち、赤色、緑色、青色、赤外線(RGB-IR:red,green,blue,infrared)カメラ)を使用し始めた。IRの使用は、ターゲット・エリア(たとえば、キャビン中のドライバ)を明るくするためにIR照明を使用することによって、カメラが夜に機能することを可能にする。RGB-IRカメラの画像センサは、一般に、ピクセル・センサの大部分に可視光線を検出させ、より小さい部分にIRを検出させる(たとえば、ピクセル・センサの1/4がIRを検出する)ように構成される。(たとえば、夜に)シーンがより暗くなるとき、可視光線のためのピクセル・センサはあまり有効でなく、旧来のシステムは、IRピクセル・センサだけを使用することに切り替わる。カラーIRから単色IRへのこの切替えは、急激であり、画像の品質及び解像度が実質的に減少(たとえば、1/4の解像度に低減)することを引き起こし得る。解像度の急激な切替え及び変更は、特定の画像品質及び解像度を使用して訓練されたコンピュータ・ビジョン・アプリケーションについて特に問題になり得、これは、より明るいシーンとより暗いシーンとの間の変更にうまく対処しないことがある。
本開示の実施例は、明るいシーンと暗いシーンとの間の遷移により良く対処する画像信号処理(ISP:Image Signal Processing)パイプラインのための技術を含む。本技術は、暗いシーンのための画像解像度を旧来達成可能であったものよりも高く保つために可視光線ピクセル・センサからの情報を使用することが可能であり、前のソリューションよりも、明るいシーンと暗いシーンとの間の遷移が得意である。たとえば、非IRピクセルによって測定されるIR信号は、いくつかのライティング条件下で使用され得、使用すべきIR信号の量は、ライティング条件に基づいて変動し得る。本技術は、周辺光線と放出された近IR光線との混合における変更に応答して、組み合わせられた近IR光線と可視光線信号の画像キャプチャ及びレンダリングをゆるやかに適応させることが可能である。
本技術は、RGB-IRカメラからの画像を分析し、(たとえば、シーンの輝度を示し得る)シーン検出値を決定する。一実例では、シーン検出値は、(たとえば、RGB-IRカメラに関連付けられたIRエミッタによって放出されたような)IRの平均強度と可視光線の平均強度との比に基づき得る。一般に、IR強度と可視光線強度との比は、日中、IR照明の強度が可視光線の強度よりも低いので、より低くなる(たとえば、1:100の比)。逆に、この比は、概して、夜に、IR照明の強度が可視光線の強度により近いので、はるかに高くなる(たとえば、1:1の比)。また、可視光線を検出するように構成されたピクセルは、概して、IRを検出する。したがって、概して、夜又は(たとえば、トンネル中の)他の低光線設定において(たとえば、太陽からの)バックグラウンド環境光線がほとんどないので、IRピクセルと可視光線ピクセル(たとえば、Gピクセル)とは、RGB-IRカメラ・システムによって出力される、同じIRを検出し、IR対可視光線について、約1:1の比を生じ得る。
RGB-IRカメラは、RGB-IRカラー・フィルタ・アレイ(CFA:color filter array)を含み得る。RGB-IR CFAは、標準ベイヤーCFAの変形形態であり、これは、赤色、緑色、又は青色光を通常通すカラー・フィルタ・アレイ中の位置のうちのいくつかを、IR波長(たとえば、近IR波長)を通し、可視光線を阻止するIRフィルタと置換する。たとえば、これはベイヤー・センサの4×4エリアをとることと、赤色フィルタのうちの2つと青色フィルタのうちの2つとをIRフィルタと置き換えることと、センサにわたって反復パターンを作成することとによって行われ得る。一般的な設計では、カメラは、RGB-IRカメラの(たとえば、940nmにおける)IRエミッタの放出スパイクに一致する、狭いバンドパスをもつIRカット・フィルタを有することになる。
R、G及びBのカラー・フィルタは、概して、IR放出に対して透過的である。その結果、IR光線は、センサのすべてのチャネルに等しく漏れる。従来、人間視覚化のために及び/又は画像システム上で動作する機械学習システムでの使用のために、高品質画像を達成するために、IRピクセル上で測定されるIR信号は、R、G及びBピクセルから減算される。シーン中の可視光線が、(たとえば、IRエミッタからの)IR光線と比較して低減されるにつれて、得られる色信号が減少し、ノイズのより多いものになり、最終的に黒色になり得る。IRのみのピクセルからの信号は、概して、機械視覚及び/又はユーザへの表示のために使用され得る1/4解像度画像を提供するために、画像信号プロセッサ中で分離される。この画像は、明るい条件と暗い条件の両方において利用可能になるが、より低い解像度は、(たとえば、すべてのピクセルがIRセンサ・ピクセルである)単色IRセンサと比較して潜在的機械視覚性能を低減する。
RGB-IRカメラを使用するシステム(たとえば、自動車の乗員監視システム(OMS:occupant monitoring system)及び/又はドライバ監視システム(DMS:driver monitoring system))は、シーン中の可視光線の量が減少するにつれて、色信号があまり有用でなくなるという問題に直面する。したがって、RGB-IRカメラを使用する従来のシステムは、可視光線しきい値を適用し、利用可能な可視光線の量がしきい値を下回るとき、そのようなシステムは、RGB-IRカメラのIRピクセル・センサの使用に遷移する。しかしながら、一般的なRGB-IRセンサにおけるIRのみのピクセルからの信号は、1/4解像度画像になり、より低い品質の画像を生じ、ひいては、単色IR情報の有用性を低減する。RGB-IRカメラを使用する従来のシステムとは対照的に、RGB-IRカメラを使用する、本明細書の実施例で説明されるシステムは、ライティング条件にかかわらず、フル解像度を維持し得る。フル解像度と1/4の解像度との間を行き来するのではなくフル解像度を維持することは、得られた画像中で処理されているデータの量を増加させ、画像の品質を増加させ、これらのシステムを訓練する効率を改善し、時間を節約し、システムの潜在的効率を増加させる。
従来、IRに起因する可視光線ピクセルのための強度のすべてが、フィルタで除去される。しかしながら、実施例では、処理論理が、決定されたシーン検出値に基づいて、可視光線ピクセルのための強度のうちのどのくらいをフィルタで除去すべきかを動的に決定する。IR信号を検出するために可視光線ピクセルを使用することによって、低光線条件で使用されるピクセルの数は増加され、したがって、低光線条件で生成される画像の解像度も増加される。シーンがより暗くなるにつれて、IRに起因する可視光線ピクセルのための信号のうちのますます多くのものが使用される。これは、RGB-IRカメラのためにあらかじめ決定された、静的ホワイト・バランス補正、色補正、色飽和(color saturation)などの値が使用される場合、正しくないホワイト・バランス、正しくない色、正しくない色飽和などを生じることがある。したがって、赤外線補正の量(たとえば、可視光線ピクセルのための測定値からどのくらいのIR信号を減算すべきか)を決定するためにシーン検出値を使用することに加えて、シーン検出値及び/又は赤外線補正の量は、ホワイト・バランス補正ファクタ(correction factor)、色補正ファクタ、色飽和ファクタなどを動的に決定するために使用され得る。これらのファクタの各々は、どのくらいのIR信号が可視光線ピクセル値からフィルタで除去されるかに応じてシフトすることになる。
したがって、シーン検出値が決定されると、それは、次いで、画像処理パイプラインの異なる部分又は構成要素によって使用される分量を決定するための入力として使用され得る。たとえば、シーン検出値は、赤外線補正の量、ホワイト・バランス補正、色補正、及び飽和をチューニングするために使用され得る。シーンが明るいから暗いに遷移するにつれて、比は(たとえば、1:100から1:1に)増加し、IR減算の割合の滑らかな減少、及び不飽和化(desaturation)の滑らかな増加があることになる。IR強度と可視光線強度との比は、関数に入力されるか又はルックアップ・テーブルのためのインデックス値として使用され得、各特定のシーン検出値(たとえば、比)は、特定のIR減算値、特定の不飽和化割合などに対応することができる。
RGB-IRカメラを使用する従来のシステムは、所与の時間にRGBピクセルからの信号又はIRカメラからの信号のいずれかを使用する。そのようなシステムは、あるしきい値に従って、シーンが明るいときに(たとえば、昼間の間に)RGBピクセルからの信号を使用することから、シーンが暗いときに(たとえば、夜間の間に)IRピクセルからの信号を使用することに切り替わる。RGBピクセルからの信号を使用することから、IRピクセルからの信号を使用することへのこの切替えは、より高い解像度のカラー画像とより低い解像度の単色IR画像との間の急激な切替えである。たとえば、従来技術システムがRGB画像を出力することから単色IR画像を出力することへ切り替わる、ある所定の及び静的しきい値があり得る。実施例は、(可視光線が支配的である)より明るいシーンにおいてよりRGB情報に基づく出力画像から、(IR照明が支配的である)より暗いシーンにおいてよりIR情報に基づく出力画像へ滑らかに遷移するために、入力としてシーン検出値を使用することによってそのような急激な切替えを回避する。所与のシーン検出値について、IRに起因するRGBピクセル・センサのための信号のある部分を完全に除去するのではなく、IRに起因する信号のその部分が使用され得る。実施例では、本技術は、解像度を一貫して保つためにより暗い条件においてRGB情報を使用し続け、RGB情報を投げ出さず、シーンが暗くなるときにIRピクセル・センサだけを使用し、これは、1/4の情報/解像度を有する出力画像を生じることになる。したがって、実施例では、低光線状況において生成される単色IR画像は、明るい光線状況において生成されるカラー画像と同じ解像度を有し得る。実施例では、標準RGB-IRカメラを使用するシステムは、周囲可視光線の低減に応答して画像品質が最小限に及びゆるやかに劣化され得る場合、機械視覚タスクと人間視覚タスクの両方のための高い利用可能性をもつフル解像度画像を提供することが可能である。
上記の技術の様々な態様が、限定としてではなく、実例として、本明細書で詳細に以下で説明される。以下で提供される実例は、1つ又は複数の画像信号プロセッサのパイプラインに組み込まれる技術について説明し、画像センサから画像が受信された後に、及びそれが永続的に記憶される前に、適用され得る。他の実例では、その技術は、画像データが永続的に記憶された後に、画像を更新するために使用され得る。
いくつかの実施例は、車のキャビン中のカメラに関して説明される。しかしながら、実施例は、他のタイプの自動車のキャビン(たとえば、飛行機のコックピット、トラックのキャビン、列車のキャビンなど)において、防犯カメラにおいて、(たとえば、自動車の外部の周囲エリアを撮像する)自動車の外部向きのカメラにおいてなど、他のアプリケーションにおいてRGB-IRカメラによって生成された画像の使用をも網羅することを理解されたい。したがって、キャビン内カメラ・システムのために使用される画像を調整することに関して本明細書で説明される実例は、実例にすぎず、これらの実例に関して説明される同じ技法は、RGB-IRカメラが使用される任意の他の設定においても適用される。
いくつかの実施例は、IR及びIRセンサに関して説明される。本明細書で使用される赤外線(IR)という用語は、旧来のIR放射(たとえば、780nmから1mmの間の波長を有する放射)並びに近IR放射(たとえば、750nmから1300nmの間の波長を有する放射)の両方を含み得ることを理解されたい。
本明細書で説明されるシステム及び方法は、限定はしないが、非自律車両、(たとえば、1つ又は複数の適応ドライバ支援システム(ADAS:adaptive driver assistance system)における)半自律車両、有人(piloted)及び無人(un-piloted)ロボット又はロボット・プラットフォーム、倉庫車両、オフロード車両、1つ又は複数のトレーラに結合された車両、飛行艇(flying vessel)、ボート、シャトル、緊急応答車両、オートバイ、電動又は原動機付き自転車、航空機、建設車両、潜水艦、ドローン、並びに/或いは他の車両タイプによって使用され得る。さらに、本明細書で説明されるシステム及び方法は、実例として、限定はしないが、機械制御、機械運動、機械運転、合成データ生成、モデル訓練、知覚、拡張現実、仮想現実、複合現実、ロボティクス、セキュリティ及び監督、自律又は半自律機械アプリケーション、深層学習、環境シミュレーション、オブジェクト若しくはアクター・シミュレーション及び/又はデジタル・ツイニング、データ・センタ処理、会話型AI、(たとえば、レイ・トレーシング、パス・トレーシングなど)光トランスポート・シミュレーション、3Dアセットのための共同コンテンツ作成、クラウド・コンピューティング、並びに/或いは任意の他の好適なアプリケーションのための、様々な目的のために使用され得る。
開示される実施例は、自動車システム(たとえば、自律又は半自律機械のための制御システム、自律又は半自律機械のための知覚システム)、ロボットを使用して実装されるシステム、航空システム、中間システム、ボーティング・システム(boating system)、スマート・エリア監視システム、深層学習動作を実施するためのシステム、シミュレーション動作を実施するためのシステム、デジタル・ツイン動作を実施するためのシステム、エッジ・デバイスを使用して実装されるシステム、1つ又は複数の仮想マシン(VM:virtual machine)を組み込んだシステム、合成データ生成動作を実施するためのシステム、データ・センタにおいて少なくとも部分的に実装されるシステム、会話型AI動作を実施するためのシステム、光トランスポート・シミュレーションを実施するためのシステム、3Dアセットのための共同コンテンツ作成を実施するためのシステム、クラウド・コンピューティング・リソースを使用して少なくとも部分的に実装されるシステム、及び/或いは他のタイプのシステムなど、様々な異なるシステムにおいて含まれ得る。
図1は、本開示のいくつかの実施例による、算出されたシーン検出値に基づいて1つ又は複数の画像の動的な変換を実施するための技術を含む例示的なコンピューティング環境100を示す。コンピューティング環境100Aは、変換された画像データ130(たとえば、変換されたカラー画像又は単色画像)を生成するために、入って来る画像データ102(たとえば、RGB-IR画像)に対して動作する、1つ又は複数の処理ユニット104(たとえば、画像信号プロセッサ(ISP:image signal processor)及び/又はISPパイプライン101のための他のプロセッサ)を含み得る。
処理ユニット104は、以下で説明されるように、(たとえば、画像分析アルゴリズム、機械学習モデル、ディスプレイへの出力などによって)下流プロセスにおいて使用され得る画像を生成するために、画像データ102を受信し、その画像データに対して1つ又は複数の動作を実施するように構成され得る。処理ユニット104は、1つ又は複数の画像のデータを処理することが可能である1つ又は複数のデバイスであるか、又はそれらを含み得る。処理ユニット104は、画像プロセッサと呼ばれることがあり、1つ又は複数の画像信号プロセッサ(ISP)、デジタル信号プロセッサ(DSP:Digital Signal Processor)、グラフィカル処理ユニット(GPU:Graphical Processing Unit)、中央処理ユニット(CPU:Central Processing Unit)、データ処理ユニット(DPU:Data Processing Unit)、フィールド・プログラマブル・ゲート・アレイ(FPGA:Field Programmable Gate Array)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、他の集積回路、又はそれらの組合せであるか、或いはそれらを含み得る。
処理ユニット104は、別のデバイス(たとえば、RGB-IRカメラ)から、アナログ信号、デジタル信号、又はそれらの組合せとして、画像データ102(たとえば、1つ又は複数の画像)を受信し得る。画像は、画像のシーケンスであり得、シーケンス中の各画像は、ビデオ・フレームであり得る。処理ユニット104は、符号化画像、生画像、又はそれらの組合せとして画像データを受信し得る。
画像データ102は、可視光線センサ・ピクセル及びIRセンサ・ピクセルからの値のセットに対応し得、セットは、サイズ(たとえば、セット・サイズ)を有し得、各値は、サイズ(たとえば、ピクセル・サイズ)を有し得る。セット・サイズは、解像度と呼ばれることがあり、ピクセルの分量で測定され得、720×480(たとえば、標準精細度(SD:Standard-Definition))、1920×1800(高精細度(HD:High Definition))、3840×2160(超高精細度(4K UHD:Ultra High Definition))、7680×4320(8K UHD)、或いは他のサイズ又は比であり得る。値サイズは、ピクセル・サイズと呼ばれることがあり、ビットの数に基づく範囲(たとえば、ピクセル値範囲)を有し得る。たとえば、値サイズは、8ビット(たとえば、範囲0~255)、10ビット(たとえば、範囲0~1023)、12ビット(たとえば、範囲0~4K)、ビットの他の数、又はそれらの組合せであり得る。値サイズ(たとえば、ピクセル・サイズ)は、それぞれの画像のダイナミック・レンジに関係し得る。
画像データ102は、赤色(R)センサ・ピクセル、緑色(G)センサ・ピクセル、青色(B)センサ・ピクセル及び赤外線(IR)センサ・ピクセルからの強度値を含む、RGB-IRカメラの多くのセンサ・ピクセルからの強度値を含み得る。画像データ102は、(たとえば、R、G、Bセンサ・ピクセルからの)カラー情報及び/又は(たとえば、IRセンサ・ピクセルからの)単色情報を含み得、静止画像(たとえば、写真)、画像のシーケンス(たとえば、ビデオのフレーム)中の画像、又はそれらの組合せに対応し得る。実施例では、画像データ102は、画像についてのヒストグラムを含む。ハードウェア構成要素(図示せず)が、生成された画像についての赤色チャネル、緑色チャネル、青色チャネル及びIRチャネルのヒストグラムを生成し得る。ヒストグラム中のエントリは、離散化された値を有し得る(たとえば、一実施例では、256個の異なる値に離散化される)。一実施例では、より高い信号のためによりも、より低い信号のために、より多くの可能な値(たとえば、ヒストグラムのためのより高い解像度)がある。
画像データ102は、シーン分析器106及び/又は処理パイプライン101に入力され得る。シーン分析器106は、画像データ102のためのシーン検出値108を生成するために画像データ(たとえば、画像ヒストグラム)の分析を実施する。シーン検出値108は、可視光線に対するIR放出の相対電力のメトリックであり、IRの強度(すなわち、電力)値及び可視光線(たとえば、R、G及び/又はB信号)の強度(すなわち、電力)値に基づいて決定され得る。実施例では、シーン検出値108は、IR強度値と1つ又は複数の可視光線強度値との間の関係に基づいて算出される。その関係は、たとえば、IR強度値と1つ又は複数の可視光線強度値との間の比であり得る。一実施例では、比は、1つ又は複数のIR強度値と1つ又は複数のG強度値との間で算出される。
一実施例では、シーン分析器106は、IRピクセル・センサのうちの1つ又は複数からの信号に基づいて平均IR強度を算出し、Gピクセル・センサのうちの1つ又は複数からの信号に基づいて平均可視光線強度を算出する。一実施例では、シーン分析器106は、次いで、平均IR強度と平均G強度との比を算出する。この比は、シーン検出値108として使用され得る。代替として、シーン検出値108は、この比から直接決定され得る。
代替又は追加として、シーン分析器106は、G、R及び/又はBピクセルの平均を算出し得、G、R及び/又はBピクセルからの平均をIRピクセルからの平均とともに使用して、シーン検出値108を決定し得る。たとえば、シーン分析器106は、R、G及びBピクセルの平均を決定し、この合計平均をIRピクセルの平均と比較して、シーン検出値108を決定し得る。追加又は代替として、中央値、最大値、最小値、4分位数(quartile)にわたる平均などの他の統計値が、R、G、B及び/又はIRピクセルに基づいて決定され得、そのような値は、シーン検出値108を決定するために使用され得る。たとえば、G、B及び/又はRピクセルの中央値、最大値、最小値、4分位数にわたる平均などと、IRピクセルの中央値、最大値、最小値、4分位数にわたる平均などとの比が、シーン検出値108について算出され、使用され得る。
いくつかの実施例では、シーン検出値108を決定するために、画像全体からのデータが使用される。たとえば、平均又は他の統計値は、Gピクセルのすべてからのデータ及びIRピクセルのすべてからのデータに基づいて決定され得る。代替として、シーン検出値108を決定するために、画像全体よりも少ないものからのデータが使用され得る。たとえば、シーンのいくつかの領域は、後の処理及び/又は判定のために、シーンの他の領域よりも重要であり得る。一実例は、乗員及び/又はドライバを示す画像の領域である。したがって、いくつかの実施例では、シーン分析器106は、シーン検出値108を決定するための画像の領域(たとえば、ドライバが概して位置する固定エリア、又は、たとえば、訓練された機械学習モデルを使用して物体検出及び/又は分類に基づいて識別された動的に決定されたエリア)からのデータだけを使用し得る。いくつかの実施例では、シーン分析器は、(たとえば、IR値及び/又は可視光線値の重み付き平均を決定するために)異なる領域/ピクセルからの値に重みを適用し、いくつかの領域/ピクセルが、算出のために他のものよりも重く重み付けされ得る。
シーン検出値108は、画像中で使用するためのIRの量を決定するために、及び/又は使用されるべきであるIRの量を考慮するために画像をどのように修正すべきかを決定するために、使用され得る。シーン検出値108が算出されると、1つ又は複数の分量110が、シーン検出値108に基づいて決定され得る。そのような分量110の実例は、IR減算ファクタである分量110A、ホワイト・バランス補正ファクタである分量110B、色補正ファクタである分量110C、及び色飽和ファクタである分量110Dを含む。分量110の各々は、画像データ102を処理するために、処理パイプライン101の異なる段階において使用され得る。これらの分量110は、カラー・チャネルから除去されないIR信号の量によって引き起こされる副作用を補償する。
可視光線センサ・ピクセルは、概して、IR放射、並びに、可視光線センサ・ピクセルが検出するように構成された可視光線の特定の波長についての放射を検出する。従来、赤外線補正は、RGB-IR画像データについて、IRセンサ・ピクセルの強度値を決定することと、次いで、周囲の可視光線センサ・ピクセル(たとえば、R、G、及びBセンサ・ピクセル)の強度値からそれらの強度値を完全に減算することとによって、実施される。しかしながら、実施例は、可視光線センサ・ピクセルが、いくつかの条件下で可視光線センサ・ピクセルの強度値に対するIR寄与のすべてを減算しないことを選定することによって、中光線条件及び低光線条件のための画像の解像度を改善するためにIR放射を検出することを利用する。
実施例では、IR減算ファクタ(たとえば、分量110A)が、シーン検出値108に基づいて決定される。IR減算ファクタは、実施すべき赤外線補正112の量を制御する。したがって、IR減算ファクタは、所与の画像について可視光線センサ・ピクセル値から減算すべきIR寄与の量を制御する。IR減算ファクタ(分量110A)に基づいて、可視光線センサ・ピクセル値へのIR寄与のわずかな量が、赤外線補正112のために減算され得る。一実施例では、IR減算値は、0から1の間の値を有するファクタである。
いくつかの実施例では、IR減算ファクタ(分量110A)が決定されると、IR減算ファクタは、以下の式に従って赤外線補正112を実施するために使用され得る。
Pout(x,y)=Pin(x,y)-IL*IRSubtractionFactor
ここで、Pinは、座標(x,y)を有するピクセルについての入力ピクセル値であり、Poutは、座標(x,y)におけるピクセルについての出力ピクセル値であり、IRSubtractionFactorは、決定されたIR減算ファクタであり、ILは、座標(x,y)を有するピクセルにおけるローカルIR平均である。
Pout(x,y)=Pin(x,y)-IL*IRSubtractionFactor
ここで、Pinは、座標(x,y)を有するピクセルについての入力ピクセル値であり、Poutは、座標(x,y)におけるピクセルについての出力ピクセル値であり、IRSubtractionFactorは、決定されたIR減算ファクタであり、ILは、座標(x,y)を有するピクセルにおけるローカルIR平均である。
一実施例では、シーン検出値は、0から1の間のどこかにあり得る。たとえば、(よく照らされる又は明るいシーンに対応する)1:100のIR強度値と可視光線強度値との比は、シーン検出値が0に近くなる(たとえば、.01)ことを引き起こし得、(十分に照らされない又は暗いシーンに対応する)1:1のIR強度値と可視光線強度値との比は、シーン検出値が1になることを引き起こし得る。一実例では、シーン検出値が0に近く、これが、シーンがよく照らされる又は十分に日光に当たっている(in full sunlight)ことを示す場合、IR減算ファクタは1であり得、IR寄与全体が可視光線ピクセル・センサ値から減算され得る。一方、シーン検出値が1に近く、これが、シーンが十分に照らされない又は暗闇であることを示す場合、IR減算値は0であり得、IR寄与がまったく可視光線ピクセル・センサ値から減算されないことがある。(たとえば、約0.2~約0.8、又は約0.3~約0.7、又は約0.4~約0.6の)中間のシーン検出値について、IR減算ファクタは、たとえば、約0.1から約0.9までの範囲の値を有し得る。シーン検出値とIR減算ファクタとの間に、逆関係があり得る。したがって、シーン検出値が増加するにつれて、IR減算ファクタは減少し得る。シーン検出値とIR減算ファクタとの間の逆関係は、線形関係又は非線形関係であり得る。
図2は、本開示のいくつかの実施例による、概念的なIR減算ファクタ曲線230を示すチャート200である。チャートのx軸がシーン検出値205に対応し、チャートのy軸がIR減算ファクタ210に対応する。IR減算ファクタ曲線230は、自然光線支配的(dominant)ゾーン215、遷移ゾーン220、及びIR支配的ゾーン225を含む、3つの概念的なゾーンに分割される。自然光線支配的ゾーン215では、概して、大量のバックグラウンド光線があり、これは、可視光線センサ・ピクセルについての強度値が比較的高くなることを引き起こし、他の領域よりも高い色忠実度をもつ高品質画像データを生じる。したがって、自然光線支配的ゾーンについて、可視光線センサ・ピクセルの強度値へのIR寄与は役に立たず、IR減算ファクタは1である(すなわち、IR寄与の100%が、可視光線センサ・ピクセルについての強度値から除去される)。一実例では、自然光線支配的ゾーンは、0~約0.4のシーン検出値を含む。
遷移ゾーン220では、シーン中の自然光線が、自然光線支配的ゾーン215においてよりも少ない。その結果、可視光線センサ・ピクセルについての強度値は、遷移ゾーン220の場合、自然光線支配的ゾーン215の場合よりも低い。可視光線センサ・ピクセルについての強度値へのIR寄与の一部を活用する(たとえば、IR寄与のすべてを減算しない)ことによって、全体的な強度値が増加され得、これは、SNRを改善することができる。したがって、遷移ゾーン220におけるシーン検出値の場合、IR減算ファクタ210は、シーン検出値205の増加とともに着実に減少し得る。
RGB-IRカメラは、シーンを照明するために、それら自体のIR光線を出力する。自然光線又はバックグラウンド光線が、(たとえば、夜に)シーン中で減少するにつれて、RGB-IRカメラによって出力されるIR光線は支配的になる。IR支配的ゾーン225では、可視光線センサ・ピクセルによって測定される強度値への寄与の大部分又はすべては、IRからのものである。旧来、(たとえば、IR支配的ゾーン225において)バックグラウンド光線がほとんどないとき、RGB-IRカメラは、IRセンサ・ピクセル情報のみを使用することに切り替える。しかしながら、これは、生成される画像の解像度を、自然に照らされる条件の下で達成される解像度の1/4に低減する。
実施例では、可視光線センサ・ピクセルからのデータは、低光線状況においてさえ使用される。実施例では、IR支配的ゾーン225では、IR減算値は、0にあるか又は0に近い。その結果、可視光線センサ・ピクセルの強度値から除去されるIR寄与は、ほとんどない。したがって、データは、低光線設定においてさえ、RGB-IRカメラのセンサ・ピクセルの大部分又はすべてのために利用可能なままである。これは、そのような低光線設定において生成される画像の解像度が、より良いライティングをもつ設定の間に達成可能である標準解像度になることを引き起こす。
IR支配的設定では、測定される放射の大部分又はすべてがIR放射である。放射(すなわち、IR放射)の同じ波長が、すべてのセンサ・ピクセルによって測定されているので、カラー情報が失われ得る。したがって、生成される画像は、単色画像であり得る。しかしながら、それらの単色画像は、低光線設定においてRGB-IRカメラを使用して旧来達成可能であったものよりも、はるかに高い解像度のものである。
図1に戻ると、赤外線補正112の調整は、ホワイト・バランス、色補正、色飽和などの変更を生じ得る。すべての条件の下で可視光線センサ・ピクセル値へのIR寄与のすべてを除去しないことによって、単一のホワイト・バランス補正、単一の色補正、単一の色飽和補正などが、RGB-IRカメラのためにアプリオリに算出され得ない。代わりに、実施される赤外線補正の量に応じて、異なる調整が、ホワイト・バランス補正114、色補正118及び色飽和124のために行われるべきである。したがって、シーン分析器106によって決定される分量110は、ホワイト・バランス補正ファクタ(分量110B)、色補正ファクタ(分量110C)、色飽和ファクタ(分量110D)などを含み得る。
いくつかの実施例では、分量110のうちのいくつか又はすべてが、シーン検出値を分量110のうちの1つ又は複数に関係付ける1つ又は複数の関数を使用して決定される。したがって、算出されたシーン検出値が関数に入力され得、関数は、1つ又は複数の分量110についての値を返し得る。いくつかの実施例では、分量110のうちのいくつか又はすべてが、1つ又は複数のルックアップ・テーブルを使用して決定される。シーン検出値108は、(1つ又は複数の)ルックアップ・テーブルへのインデックスとして使用され得、分量110のうちの1つ又は複数についての量子化された値が、(1つ又は複数の)ルックアップ・テーブルのエントリ中に含まれ得る。
一実例では、シーンが、夜間シーンであることが検出された(たとえば、シーン検出値108が高い)場合、IRが支配的であり、1:1に近いIRとGとの平均ピクセル値比があり得る。そのような高いシーン検出値108について、赤外線補正112におけるIR減算はほとんどなく、色飽和124は、カラー画像に不飽和化を適用し得(色飽和ファクタは低いことがある)、ホワイト・バランス補正ファクタ及び色補正ファクタは、色補正118及び色飽和124において0であり得る(AWB利得がユニティであり、変更なしCCM単位行列が低光線条件の下で使用されることになる)。そのような状況の下での出力は、単色画像であり得る。
別の実例では、シーンが、昼間シーンであることが検出された(たとえば、シーン検出値108が低い)場合、可視光線が支配的であり、IRと可視光線ピクセル値との低い比(たとえば、1:50、1:100など)があり得る。そのような低いシーン検出値108について、赤外線補正112における完全なIR減算があり得、色飽和124及び色補正118は、彩度情報などを保存するために、そのまま残され得る(たとえば、補正ファクタによって修正されない)。そのような状況の下での出力は、カラー画像であり得る。実施例では、IR減算の割合及び不飽和化の量は、シーン中の周囲可視光線に応じて逆関係を共有し得る。
実施例は、ライティング条件に基づくIR除去の量のチューニングを可能にし、これは、中光線シーンから低光線シーン中の画像のための、より良いSNRと色忠実度との間の妥協である。
図3は、本開示のいくつかの実施例による、シーン検出値305に基づいて画像を調整するために使用される(たとえば、図1の分量110に対応する)1つ又は複数の分量308を決定するために使用可能な例示的なルックアップ・テーブル300である。シーン検出値305が算出されると、それは、ルックアップ・テーブル300中のエントリ(たとえば、行)を見つけるためのインデックスとして使用され得る。エントリは、IR減算ファクタ310のための第1の値、ホワイト・バランス補正ファクタ315のための第2の値、色補正ファクタ320のための第3の値、色飽和ファクタ325のための第4の値などを含み得る。例示的なルックアップ・テーブル300中に含まれる例示的な値は、説明のためのものにすぎず、他の値が使用され得ることに留意されたい。
図1に戻ると、赤外線補正112の後に、自動ホワイト・バランス補正(AWB:automated white balance)114が実施され得る。ホワイト・バランス(WB:white balance)は、人に白色に見える物体が、画像において白色にレンダリングされるように、非現実的なカラー・キャストを除去するプロセスである。ホワイト・バランスは、カラー・チャネルの各々に適用するための利得の量を決定することによって実施され、各カラー・チャネルは、異なる量の利得を受信し得る。AWBの目的は、シーン中のすべての灰色の物体が、等しい量の赤色、緑色及び青色強度を有するようにすることである。適切なホワイト・バランスは、光源の「色温度」を考慮に入れ、これは、白色光線の相対的な暖かさ又は冷たさを指す。人間の眼は、異なる光源の下で何が白色であるかを判定することが非常に得意であるが、デジタル・カメラは、しばしば、オート・ホワイト・バランス(AWB:auto white balance)に関する大きい困難を有し、見苦しい(unsightly)青色、橙色、さらには緑色カラー・キャストを作成することがある。
IR信号が可視光線センサ・ピクセル値から除去されないとき、正しいホワイト・バランス補正114を実施することがより難しくなる。IR信号は、オフセットとして働く。その結果、AWBが、IR信号が残っている画像上で実施されるとき、異なる量の利得が、カラー・チャネルの各々におけるIRオフセットに適用され得、これは、紫色のキャストを生じることがある。したがって、ホワイト・バランス補正ファクタが、実施例において適用され、ホワイト・バランス補正ファクタは、可視光線センサ・ピクセル値から除去されていないIR信号の量に基づく。特に、IR信号の一部分をそのままにしておくことによって、オフセットは、カラー・チャネルの各々に導入される。このオフセットは、紫色のカラーとして現れることがある。一実施例では、より多くのIR光線が保持されるとき、システムは、十分なホワイト・バランス利得を適用することから離れ、各カラー・チャネルに等しい利得を適用することに向かう。たとえば、(たとえば、夜の)純粋なIR信号について、補正されるべき色信号がないので、利得は、カラー・チャネルのいずれにも適用されないことがある。その対極で、(たとえば、すべてのIR信号が、可視光線センサ・ピクセル値から除去されている)純粋な色信号について、(たとえば、システムの較正に基づいて決定されるような)標準の正しいホワイト・バランス量が使用される。純粋な色信号と純粋なIR信号との中間に、(たとえば、0から1の間の)ある中間ホワイト・バランス・ファクタが決定され得る。
ホワイト・バランス補正114は、決定されたホワイト・バランス補正ファクタに基づいて、赤外線補正112後の画像データ上で実施され得る。いくつかの実施例では、ホワイト・バランス補正ファクタ(分量110B)は、以下の式に従ってホワイト・バランス補正114を実施するために使用され得る。
ここで、
は、入力される赤色、緑色及び青色ピクセル値のベクトルであり、AWBfactorはホワイト・バランス補正ファクタであり、WBR、WBG及びWBBは、(たとえば、較正中に決定されるような)RGB-IRカメラからの画像のための初期の赤色、緑色及び青色ホワイト・バランス補正値であり、
は、赤色、緑色及び青色の出力ピクセル値のベクトルである。
ここで、
は、入力される赤色、緑色及び青色ピクセル値のベクトルであり、AWBfactorはホワイト・バランス補正ファクタであり、WBR、WBG及びWBBは、(たとえば、較正中に決定されるような)RGB-IRカメラからの画像のための初期の赤色、緑色及び青色ホワイト・バランス補正値であり、
は、赤色、緑色及び青色の出力ピクセル値のベクトルである。
ホワイト・バランス補正114の後に、標準のデモザイキング(demosaicing)116が実施され得る。デモザイキングは、カラー・フィルタ・アレイで覆われた画像センサから出力された不完全なカラー・サンプルからフル・カラー画像を構築するために使用される、デジタル画像プロセスである。RGB-IRカメラは、放射の特定の波長(たとえば、R、G、B及びIRセンサ・ピクセルを含む、修正されたベイヤー・パターン)に各々関連付けられた、複数のセンサ・ピクセルを含み得る。デモザイク・プロセスでは、当該のセンサ・ピクセルとは異なる1つ又は複数の波長に関連付けられた周囲のピクセルからのデータは、当該のセンサ・ピクセルについての1つ又は複数の波長の値(すなわち、電力又は強度値)を(たとえば、補間を介して)推定するために使用され得る。たとえば、デモザイク・プロセスでは、IRのみのセンサ・ピクセル(フォト・サイト)のコンテンツは、周囲のカラー・センサ・ピクセルからの同じカラー・データの補間に基づいて、そこにあったであろうカラー情報と置き換えられ得る。
デモザイキング116の後に、色補正118が、決定された色補正ファクタを使用して実施され得る。カメラ・システムにおいて使用される光学レンズ及び光学フィルタのスペクトル特性、シーンのライティング、並びに画像センサのカラー・フィルタのスペクトル特性により、カメラのRGBデータは、忠実な演色性(color rendition)を提供しないことがある。詳細には、画像センサのスペクトル特性は、人間の眼のスペクトル応答とは異なり得る。この忠実でない演色性は、大部分は、イメージャ・カラー・フィルタ・アレイのスペクトル特性と人間の眼のスペクトル応答との間の差、及びシーンのライティングから生成される。シーンのライティングから生じる色誤差は、オート・ホワイト・バランスによって制御され得る。しかし、オート・ホワイト・バランスは、イメージャ・カラー・フィルタ・アレイのスペクトル特性によって生成された色誤差を十分に低減しない。2つの種類の色補正が、主に、この色誤差を補償するために使用されている。一方は、Cr及びCbの制御を使用する、色相及び飽和制御方法である。他方は、3×3色行列方法である。
(たとえば、夜の)純粋なIR信号について、カラー・データはなく、したがって、色補正の必要がない。したがって、純粋なIR信号についての色補正のために単位行列が使用され得る。一方、純粋な色信号について、色行列の対角に強い項があり、非対角値上に負の項があることになる。較正に基づいて決定された、正しい、知られている正確な色補正値があり得るが、この正しい補正値は、IR信号が可視光線ピクセル・センサ値から完全に除去されるときのみ、適用され得る。(たとえば、0から1の間の値を有する)あるファクタが、量又は信号中に残されたIRに基づいて、算出され、正しい補正値に適用され得る。
いくつかの実施例では、色補正ファクタ(分量110C)は、以下の式に従って色補正118を実施するために使用され得る。
ここで、
は、ピクセルのための、入力される赤色、緑色及び青色値のベクトルであり、CCMfactorは色補正ファクタであり、m11~m33は、色補正のために使用される3×3色行列の値であり、
は、ピクセルのための、赤色、緑色及び青色の出力値のベクトルである。一実施例では、3×3行列係数(m11~m33)は、カメラRGB出力信号とターゲットのマクベス・カラー・チェッカーのCIE XYZ三刺激値との間の最小2乗多項式モデリングによって導出される。3×3行列係数は、他の技法を使用しても導出され得る。
ここで、
は、ピクセルのための、入力される赤色、緑色及び青色値のベクトルであり、CCMfactorは色補正ファクタであり、m11~m33は、色補正のために使用される3×3色行列の値であり、
は、ピクセルのための、赤色、緑色及び青色の出力値のベクトルである。一実施例では、3×3行列係数(m11~m33)は、カメラRGB出力信号とターゲットのマクベス・カラー・チェッカーのCIE XYZ三刺激値との間の最小2乗多項式モデリングによって導出される。3×3行列係数は、他の技法を使用しても導出され得る。
色補正118が実施された後に、グローバル・トーン・マッピング120が実施され得る。グローバル・トーン・マッピング120の後に、ローカル・トーン・マッピング122が実施され得る。
グローバル・トーン・マッピング120及びローカル・トーン・マッピング122の後に、色飽和124(すなわち、不飽和化)が、決定された色飽和ファクタ(分量110D)を使用して実施され得る。一実施例では、色飽和ファクタは、0から1の間の値を有する。色飽和124を調整することは、画像の色相、飽和及び/又は輝度を直接制御し得る。いくつかの画像は、色で飽和され得、そのような画像について不飽和化を実施することは、画像品質を改善し得る。逆に、いくつかの画像は、色飽和を増加させることから恩恵を受け得る。
いくつかの実施例では、色飽和ファクタ(分量110D)は、以下の式に従ってYUV色空間において色飽和補正124を実施するために使用され得る。
a. Yout(x,y)=Yin(x,y)
b. Uout(x,y)=Uin(x,y)*SATfactor
c. Vout(x,y)=Vin(x,y)*SATfactor
ここで、Yin、Uin及びVinは、座標(x,y)におけるピクセルのためのそれぞれの入力YUV値であり、SATfactorは色飽和補正ファクタであり、Yout、Uout及びVoutは、座標(x,y)におけるピクセルのためのそれぞれの出力YUV値である。
a. Yout(x,y)=Yin(x,y)
b. Uout(x,y)=Uin(x,y)*SATfactor
c. Vout(x,y)=Vin(x,y)*SATfactor
ここで、Yin、Uin及びVinは、座標(x,y)におけるピクセルのためのそれぞれの入力YUV値であり、SATfactorは色飽和補正ファクタであり、Yout、Uout及びVoutは、座標(x,y)におけるピクセルのためのそれぞれの出力YUV値である。
処理パイプライン101は、完全な処理パイプラインを表すものではなく、1つ又は複数の追加の動作が、本明細書において明記されるものに加えて処理パイプライン101において実施され得る。そのような追加の動作は、ISPパイプラインに対する標準動作であり、本議論にとって重大でなく、したがって、明快及び簡潔のために省略される。しかしながら、処理パイプライン101が、列挙された動作の前に、その間に、及び/又はその後に実施され得る、そのような追加の動作を含み得ることを理解されたい。
処理パイプライン101は、変換された画像データ130を出力し、それは、適宜に、可視光線ピクセル・センサのみからの、又は、可視光線ピクセル・センサとIRピクセル・センサの両方からのデータを含む、変換された画像を含み得る。ライティング条件及び/又は他のファクタに応じて、変換された画像データは、カラー画像又は単色画像を含み得、入力画像データ102と同じ色空間中に、又は、入力画像データ102と異なる色空間中にあり得る。たとえば、入力画像データ102はRGB色空間中にあり得、変換された画像データ130は、ルミナンス-クロミナンス(YUV)色空間中にあり得る。
処理パイプライン101によって出力された画像は、撮像されたシーン中の可視光線の量にかかわらず、フル解像度画像であり得る。フル解像度画像出力は、十分な自然光線をもつシーンではカラーのものであり得、カラーのための不十分な自然光線をもつシーンでは、フル解像度単色画像に滑らかに遷移する。
図4は、本開示の実施例による、RGB-IRカメラによって出力された画像データを処理し、処理に基づいて、変換された画像を出力するための方法400の1つの例示的な実例の流れ図を示す。説明を簡単にするために、本開示の方法は、一連の行為として示され、説明される。しかしながら、本開示による行為は、様々な順序で及び/又はコンカレントに、並びに、本明細書で提示及び説明されない他の行為とともに、行われ得る。さらに、開示される主題によれば、方法を実装するために、すべての図示された行為が必要とされるとは限らない。さらに、当業者は、方法が、状態図又はイベントを介して一連の相互に関係する状態として代替的に表され得ることを理解し、諒解するであろう。さらに、本明細書で開示される方法が、そのような方法をコンピューティング・デバイスにトランスポート及び転送することを容易にするために製造品に記憶されることが可能であることを諒解されたい。本明細書で使用される、「製造品」という用語は、任意のコンピュータ可読デバイス又は記憶媒体からアクセス可能なコンピュータ・プログラムを包含することを意図している。一実装形態では、方法400は、図1に示されているように処理ユニット104を使用して実施され得る。
方法400は、処理デバイス(たとえば、処理ユニット104)の処理論理によって実施され得、動作410において始まり得る。動作410において、処理論理は、赤外線値と可視光線値とを含む画像データを受信し得る。実施例では、画像データは、RGB-IRカメラによって出力されていることがある。画像は、静止画像(たとえば、写真)、画像のシーケンス(たとえば、ビデオのフレーム)中の画像、又はそれらの組合せに対応し得る。実施例では、画像データは、ピクセル値のヒストグラムを含む。
動作420において、処理論理は、シーン検出値を算出するために画像データを処理することができる。実施例では、処理論理は、画像データからの1つ又は複数のIR値と画像データからの1つ又は複数の可視光線値(たとえば、G値)との間の比較を実施し、比較に基づいてシーン検出値を決定する。シーン検出値は、IR値と可視光線値との間の関係に基づき得る。
一実施例では、ブロック422において、処理論理は、赤外線値の強度を表す第1の値を算出する。第1の値は、(たとえば、画像ヒストグラムからの)画像の赤外線値についての平均、中央値、平均値(mean)、最大値、4分位数ごとの平均、又は他の統計値を算出することに基づいて算出され得る。
一実施例では、ブロック424において、処理論理は、可視光線値の強度を表す第2の値を算出する。第2の値は、(たとえば、画像ヒストグラムからの)画像の可視光線値についての平均、中央値、平均値、最大値、4分位数ごとの平均、又は他の統計値を算出することに基づいて算出され得る。一実施例では、第2の値は、画像ヒストグラムからのG値に基づいて決定される。
一実施例では、ブロック426において、処理論理は、第1の値と第2の値との間の関係を決定する。一実施例では、その関係は、第1の値と第2の値との比である。低い比(及び対応する低いシーン検出値)は、豊富な周辺光線をもつシーンを示し得、高い比(及び対応する高いシーン検出値)は暗闇におけるシーンを示し得る。
動作430において、処理論理は、シーン検出値に基づいて1つ又は複数の分量を決定することができる。決定された分量は、たとえば、IR減算ファクタ、ホワイト・バランス補正ファクタ、色補正ファクタ及び/又は色飽和ファクタを含み得る。実施例では、IR減算ファクタの大きさが、シーン検出値の大きさに反比例して変動する。実施例では、色飽和ファクタの大きさが、シーン検出値の大きさに正比例して変動する。
一実施例では、ブロック432において、処理論理は、ルックアップ・テーブルへのインデックスとして、シーン検出値を使用する。ルックアップ・テーブル中のエントリが、算出されたシーン検出値に対応し得、シーン検出値のための指定されたIR減算ファクタ、ホワイト・バランス補正ファクタ、色補正ファクタ及び/又は色飽和ファクタなど、1つ又は複数の列挙された分量を含み得る。各シーン検出値は、分量のセットに関連付けられ得る。
一実施形態では、ブロック434において、処理論理は、1つ又は複数の関数への入力としてシーン検出値を使用し、それは、分量(たとえば、IR減算ファクタ、ホワイト・バランス補正ファクタ、色補正ファクタ、色飽和ファクタなど)を出力し得る。
ブロック440において、処理論理は、1つ又は複数の分量に基づいて画像データを変換する。これは、R、G及びBピクセル値からIR寄与のある量を減算すること、決定されたホワイト・バランス補正ファクタを使用してホワイト・バランス補正を実施すること、決定された色補正ファクタを使用して色補正を実施すること、決定された色飽和ファクタを使用して不飽和化又は飽和を実施することなどを含み得る。変換された画像データは、撮像されたシーンのライティングを決定する、カラー画像又は単色画像であり得る(たとえば、豊富な光線においてカラー及び低光線において単色)フル解像度画像を生じ得る。いくつかの実施例では、出力画像はYUV色空間である。
図5は、本開示のいくつかの実施例による、訓練された機械学習モデルを使用して、(たとえば、図4の方法に従って変換されている)変換された画像を処理するための方法のフロー・チャートである。方法500のブロック510において、処理論理は、(たとえば、方法400に従って処理された)変換された画像データを受信する。変換された画像データはフル解像度画像を含み得、それは、カラー画像又は単色画像であり得、ライティング条件を決定する。
ブロック520において、処理論理は、出力を生成するために、変換された画像データを処理する。一実施例では、ブロック522において、変換された画像データは、訓練された機械学習モデルに入力される。訓練された機械学習モデルは、画像データを処理し、出力を生成し、それは、ブロック524において受信される。
訓練された機械学習モデルは、たとえば、人工ニューラル・ネットワーク、サポート・ベクター・マシン、ランダム・フォレスト・アルゴリズム、判定ツリー、隠れマルコフ・モデル(HMM:Hidden Markov Model)、ガウス混合モデル(GMM:Gaussian Mixture Model)、回帰モデル、又は他のタイプの機械学習モデルであり得る。入力画像データが、最高の可能なSNRを有するフル解像度画像のためのものであるので、機械学習モデルの出力の精度は、1/4解像度の単色画像が機械学習モデルに入力される場合とは対照的に、増加され得る。機械学習モデルは、予測、分類、推定などである出力を生成するように訓練され得る。出力は信頼性レーティングを含み得、機械学習モデルの信頼性レーティング(及び精度)は、訓練された機械学習モデルへの入力より前に、方法400を使用して画像の変換により最大化され得る。
DMSの実例では、機械学習モデルは、自動車のためのドライバのアクティビティについてのアクティビティ分類(たとえば、ドライバの手がステアリング・ホイール上にあるかどうかを示す)、ドライバのための注意分類又は注意レベルの決定(たとえば、ドライバの視線(eyes)が道路上にあるかどうかを示す)などを出力し得る。OMSの実例では、機械学習モデルは、1つ又は複数の乗員が検出されたという指示を出力し得る。これは、たとえば、ドライバが自動車をオフにするとき、ドライバにリア・シートの幼児についてアラートするために使用され得る。
使用され得る機械学習モデルの1つのタイプは、深層ニューラル・ネットワークなど、人工ニューラル・ネットワークである。人工ニューラル・ネットワークは、概して、特徴を所望の出力空間にマッピングする分類器又は回帰層をもつ特徴表現構成要素を含む。畳み込みニューラル・ネットワーク(CNN:convolutional neural network)は、たとえば、畳み込みフィルタの複数の層をホストする。下位層において、プーリングが実施され、非線形性が対処され得、その上に多層パーセプトロンが通常付加され、畳み込み層によって抽出された最上層特徴を判定(たとえば、分類出力)にマッピングする。深層学習は、特徴抽出及び変換のために非線形処理ユニットの複数の層のカスケードを使用する機械学習アルゴリズムのクラスである。各連続層が、前の層からの出力を入力として使用する。深層ニューラル・ネットワークは、教師あり(supervised)(たとえば、分類)様式で、及び/又は教師なし(unsupervised)(たとえば、パターン解析)様式で学習し得る。深層ニューラル・ネットワークは層の階層を含み、ここで、異なる層は、異なる抽象レベルに対応する異なる表現レベルを学習する。深層学習では、各レベルは、それの入力データをわずかにより抽象的な及び複合的な表現に変換することを学習する。画像認識アプリケーションでは、たとえば、生入力は、ピクセルの行列であり得、第1の表現層は、ピクセルを抽出し、エッジを符号化し得、第2の層は、エッジの配列を合成及び符号化し得、第3の層は、より高いレベルの形状を符号化し得、第4の層は、たとえば、分類又は予測を出力し得る。特に、深層学習プロセスは、単独でどの特徴をどのレベルに最適に配置すべきかを学習することができる。「深層学習」における「深層」は、データが変換される層の数を指す。より正確には、深層学習システムは、実質的なクレジット割当て経路(CAP:credit assignment path)深度を有する。CAPは、入力から出力への変換のチェーンである。CAPは、入力と出力との間の潜在的因果関係を説明する。フィードフォワード・ニューラル・ネットワークの場合、CAPの深度は、ネットワークの深度であり得、隠れ層の数+1であり得る。信号が2回以上層を通って伝搬し得る、リカレント・ニューラル・ネットワークの場合、CAP深度は潜在的に無制限である。
一実施例では、1つ又は複数の機械学習モデルがリカレント・ニューラル・ネットワーク(RNN:recurrent neural network)である。RNNは、ニューラル・ネットワークが時間依存性をキャプチャすることを可能にするためのメモリを含むタイプのニューラル・ネットワークである。RNNは、現在の入力と過去の入力の両方に依存する入出力マッピングを学習することが可能である。RNNは、過去及び将来の走査に対処し、この連続走査情報に基づいて予測を行う。RNNは、(たとえば、固定数のクラスに属するものとして、ビデオ・データなどの時間変動するデータを分類するために)固定数の出力を生成するための訓練データセットを使用して訓練され得る。使用され得るRNNの1つのタイプは、長短期メモリ(LSTM:long short term memory)ニューラル・ネットワークである。
そのようなタスクのための共通アーキテクチャが、LSTM(長短期メモリ)である。残念ながら、LSTMは、畳み込みネットワークが行うほどうまく空間情報をキャプチャしないので、画像に好適ではない。この目的で、LSTMセル内の畳み込み演算を含んでいるLSTMの変形態である、ConvLSTMを利用することができる。ConvLSTMは、LSTMセル内の畳み込み演算を含んでいるLSTM(長短期メモリ)の変形態である。ConvLSTMは、行列乗算をLSTMセル中の各ゲートにおいて畳み込み演算と置き換える。そうすることによって、それは、多次元データにおける畳み込み演算によって、基礎をなす空間特徴をキャプチャする。ConvLSTMとLSTMとの間の主要な差は、入力次元の数である。LSTM入力データが1次元であるので、それは、ビデオ、衛星、レーダー画像データ・セットなどの空間シーケンス・データに好適でない。ConvLSTMは、その入力として3Dデータのために設計される。一実施例では、CNN-LSTM機械学習モデルが使用される。CNN-LSTMは、CNN(畳み込み層)の、LSTMとの統合である。最初に、モデルのCNN部分がデータを処理し、1次元結果がLSTMモデルを供給する。
ブロック530において、処理論理は、ブロック520において生成された出力に基づいて、1つ又は複数のアクションを実施する。アクションは、たとえば、ドライバの注意が道路上にない場合にアラートを生成すること、ドライバが、車のバック・シートに子供がいる車から出るときにアラートを生成することなどであり得る。
図6は、本開示のいくつかの実施例による、(たとえば、図4の方法に従って変換されている)変換された画像を表示するための方法のフロー・チャートである。ブロック610において、処理論理は、(たとえば、方法400に従って変換された)変換された画像データを受信する。ブロック620において、処理論理は、変換された画像データをディスプレイに出力する。たとえば、RGB-IRカメラは、自動車の乗員の画像を生成するキャビン内カメラであり得る。キャビンはモニタを含み得、変換された画像はモニタに出力され得る。たとえば、画像は、車のダッシュボード中のディスプレイに出力され、車の内部の画像を示し得る。画像は、ライティングにかかわらずフル解像度画像であり得、周囲可視光線があるとき(たとえば、日中)はカラー画像であり、周囲可視光線がまったく又はほとんどないとき(たとえば、夜)は単色画像であり得る。
図7は、コンピュータ・システム700の例示的な機械を示し、その内部で、機械に、本明細書で説明される方法論のうちのいずれか1つ又は複数を実施させるための命令のセットが実行され得る。いくつかの実施例では、コンピュータ・システム700は、キャッシュ・コントローラ、メモリ・コントローラ、又はそれらの組合せをもつプロセッサを含むコンピューティング・デバイスであり得る。代替実施例では、機械は、LAN、イントラネット、エクストラネット、及び/又はインターネットにおいて、他の機械に接続され得る(たとえば、ネットワーク化され得る)。機械は、クライアントサーバ・ネットワーク環境ではサーバ・マシン又はクライアント・マシンの容量において、ピアツーピア(又は分散)ネットワーク環境ではピア・マシンとして、或いは、クラウド・コンピューティング・インフラストラクチャ又は環境ではサーバ・マシン又はクライアント・マシンとして、動作することができる。
機械は、パーソナル・コンピュータ(PC:personal computer)、タブレットPC、セット・トップ・ボックス(STB:set-top box)、携帯情報端末(PDA:Personal Digital Assistant)、セルラー電話、ウェブ・アプライアンス、サーバ、ネットワーク・ルータ、スイッチ又はブリッジ、或いはその機械によってとられるべきアクションを指定する(連続した又はそれ以外の)命令のセットを実行することが可能な任意の機械であり得る。さらに、単一の機械が示されているが、「機械」という用語は、本明細書で説明される方法論のうちのいずれか1つ又は複数を実施するための命令のセット(又は複数のセット)を個々に又は一緒に実行する機械の任意の集合をも含むととられるものとする。
例示的なコンピュータ・システム700は、処理デバイス702(たとえば、プロセッサ200)と、メイン・メモリ704(たとえば、読取り専用メモリ(ROM:read-only memory)、フラッシュ・メモリ、同期DRAM(SDRAM:synchronous dynamic random access memory)又はRambus DRAM(RDRAM)などのダイナミック・ランダム・アクセス・メモリ(DRAM:dynamic random access memory)など)と、スタティック・メモリ706(たとえば、フラッシュ・メモリ、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)など)と、データ・ストレージ・システム718とを含み、それらは、バス730を介して互いと通信する。
処理デバイス702は、マイクロプロセッサ、中央処理ユニットなど、1つ又は複数の汎用処理デバイスを表す。より詳細には、処理デバイスは、複合命令セット・コンピューティング(CISC:complex instruction set computing)マイクロプロセッサ、縮小命令セット・コンピューティング(RISC:reduced instruction set computing)マイクロプロセッサ、超長命令語(VLIW:very long instruction word)マイクロプロセッサ、又は他の命令セットを実装するプロセッサ、又は命令セットの組合せを実装するプロセッサであり得る。処理デバイス702はまた、データ処理ユニット(DPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワーク・プロセッサなど、1つ又は複数の専用処理デバイスであり得る。処理デバイス702は、本明細書で説明される動作及びステップを実施するための命令726を実行するように構成される。コンピュータ・システム700は、ネットワーク720上で通信するためのネットワーク・インターフェース・デバイス708をさらに含むことができる。
データ・ストレージ・システム718は、本明細書で説明される方法論又は機能のうちのいずれか1つ又は複数を実施する、命令726の1つ又は複数のセット又はソフトウェアが記憶された、(非一時的コンピュータ可読媒体としても知られる)機械可読記憶媒体724を含むことができる。命令726は、コンピュータ・システム700によってそれらの実行中に、完全に又は少なくとも部分的に、メイン・メモリ704内に及び/又は処理デバイス702内にも存在することができ、メイン・メモリ704及び処理デバイス702も、機械可読記憶媒体を構成する。
一実施例では、命令726は、図1のシーン分析器106に対応する機能性を実装するための命令を含む。命令は、追加又は代替として、処理パイプライン101の赤外線補正及び/又は任意の他の機能に対応する機能性を実装するための命令を含み得る。機械可読記憶媒体724は、例示的な一実施例において単一の媒体であることが示されるが、「非一時的機械可読記憶媒体」という用語は、命令の1つ又は複数のセットを記憶する単一の媒体又は複数の媒体を含むととられるべきである。「機械可読記憶媒体」という用語は、機械が実行するための命令のセットを記憶又は符号化することが可能であり、機械に本開示の方法論のうちのいずれか1つ又は複数を実施させる、任意の媒体をも含むととられるものとする。したがって、「機械可読記憶媒体」という用語は、限定はしないが、ソリッド・ステート・メモリ、光媒体、及び磁気媒体を含むととられるものとする。
実施例では、本明細書で説明される技術は、自動車のドライバ監視システム(DMS)に及び/又は乗員監視システム(OMS)に適用される。自動車は、自律車両、半自律車両、又は手動で運転される車両であり得る。DMSシステム及びOMSシステムは、可視光線と近IR光線の両方に対して動作し得る。本明細書で説明される技術の、DMSシステム及びOMSシステムへの適用は、コスト削減のために単一のカメラを使用する機械視覚監視アプリケーションと一緒に色から恩恵を受ける遠隔会議及び/又は乗客監視アプリケーションを可能にする。
図8Aは、少なくとも1つの実施例による、自律車両800の一実例を示す。少なくとも1つの実施例では、自律車両800(代替的に、本明細書では「車両800」と呼ばれる)は、限定はしないが、車、トラック、バス、及び/又は1人又は複数の乗客を収容する別のタイプの車両など、乗用車(passenger vehicle)であり得る。少なくとも1つの実施例では、車両800は、貨物を運搬するために使用されるセミ・トラクタ・トレーラ・トラックであり得る。少なくとも1つの実施例では、車両800は、航空機、ロボット車両、又は他の種類の車両であり得る。
自律車両は、米国運輸省の一部門である全米高速道路交通安全局(「NHTSA」:National Highway Traffic Safety Administration)、及び自動車技術者協会(「SAE」:Society of Automotive Engineers)の非特許文献1によって定義される自動化レベルという観点から説明され得る。少なくとも1つの実施例では、車両800は、自律運転レベルのレベル1~レベル5のうちの1つ又は複数による機能性に対応可能であり得る。たとえば、少なくとも1つの実施例では、車両800は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)に対応可能であり得る。
少なくとも1つの実施例では、車両800は、限定はしないが、シャーシ、車両本体、ホイール(たとえば、2本、4本、6本、8本、18本など)、タイヤ、車軸、及び車両の他の構成要素など、構成要素を含み得る。少なくとも1つの実施例では、車両800は、限定はしないが、内燃機関、ハイブリッド電力プラント、完全電気エンジン、及び/又は別の推進システム・タイプなど、推進システム850を含み得る。少なくとも1つの実施例では、推進システム850は、車両800のドライブ・トレインに接続され得、ドライブ・トレインは、限定はしないが、車両800の推進を可能にするためのトランスミッションを含み得る。少なくとも1つの実施例では、推進システム850は、(1つ又は複数の)スロットル/アクセラレータ852から信号を受信したことに応答して制御され得る。
少なくとも1つの実施例では、限定はしないが、ハンドルを含み得る操縦システム854は、推進システム850が動作しているときに(たとえば、車両800が動いているときに)車両800を(たとえば、所望の経路又はルートに沿って)操縦するために使用される。少なくとも1つの実施例では、操縦システム854は、(1つ又は複数の)操縦アクチュエータ856から信号を受信し得る。少なくとも1つの実施例では、ハンドルは、完全自動化(レベル5)機能性について随意であり得る。少なくとも1つの実施例では、(1つ又は複数の)ブレーキ・アクチュエータ848及び/又はブレーキ・センサから信号を受信したことに応答して車両ブレーキを動作させるために、ブレーキ・センサ・システム846が使用され得る。
少なくとも1つの実施例では、限定はしないが、1つ又は複数のシステム・オン・チップ(「SoC」:system on chip)(図8Aに図示せず)及び/又は(1つ又は複数の)グラフィックス処理ユニット(「GPU」:graphics processing unit)を含み得る(1つ又は複数の)コントローラ836は、車両800の1つ又は複数の構成要素及び/又はシステムに(たとえば、コマンドを表す)信号を提供する。たとえば、少なくとも1つの実施例では、(1つ又は複数の)コントローラ836は、(1つ又は複数の)ブレーキ・アクチュエータ848を介して車両ブレーキを動作させるための信号、(1つ又は複数の)操縦アクチュエータ856を介して操縦システム854を動作させるための信号、(1つ又は複数の)スロットル/アクセラレータ852を介して推進システム850を動作させるための信号を送出し得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ836は、自律運転を可能にし、及び/又は人間のドライバが車両800を運転するのを支援するために、センサ信号を処理し、動作コマンド(たとえば、コマンドを表す信号)を出力する1つ又は複数の搭載(たとえば、一体型の)コンピューティング・デバイスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ836は、自律運転機能のための第1のコントローラ、機能的安全機能のための第2のコントローラ、人工知能機能性(たとえば、コンピュータ・ビジョン)のための第3のコントローラ、インフォテイメント機能性のための第4のコントローラ、緊急事態における冗長性のための第5のコントローラ、及び/又は他のコントローラを含み得る。少なくとも1つの実施例では、単一のコントローラが、上記の機能性のうちの2つ又はそれ以上に対処し得、2つ又はそれ以上のコントローラが、単一の機能性に対処し得、及び/又はこれらの任意の組合せであり得る。
少なくとも1つの実施例では、(1つ又は複数の)コントローラ836は、1つ又は複数のセンサから受信されたセンサ・データ(たとえば、センサ入力)に応答して、車両800の1つ又は複数の構成要素及び/又はシステムを制御するための信号を提供する。少なくとも1つの実施例では、センサ・データは、たとえば、限定はしないが、(1つ又は複数の)全地球的航法衛星システム(「GNSS」:global navigation satellite system)センサ858(たとえば、(1つ又は複数の)全地球測位システム・センサ)、(1つ又は複数の)RADARセンサ860、(1つ又は複数の)超音波センサ862、(1つ又は複数の)LIDARセンサ864、(1つ又は複数の)慣性測定ユニット(「IMU」:inertial measurement unit)センサ866(たとえば、(1つ又は複数の)加速度計、(1つ又は複数の)ジャイロスコープ、1つ又は複数の磁気コンパス、(1つ又は複数の)磁力計など)、(1つ又は複数の)マイクロフォン896、(1つ又は複数の)ステレオ・カメラ868、(1つ又は複数の)広角カメラ870(たとえば、魚眼カメラ)、(1つ又は複数の)赤外線カメラ872、(1つ又は複数の)周囲カメラ874(たとえば、360度カメラ)、(1つ又は複数の)キャビン・カメラ875、長距離カメラ(図8Aに図示せず)、(1つ又は複数の)中距離カメラ(図8Aに図示せず)、(たとえば、車両800のスピードを測定するための)(1つ又は複数の)スピード・センサ844、(1つ又は複数の)振動センサ842、(1つ又は複数の)操縦センサ840、(たとえば、ブレーキ・センサ・システム846の一部としての)(1つ又は複数の)ブレーキ・センサ、及び/又は他のセンサ・タイプから、受信され得る。
一実施例では、(1つ又は複数の)キャビン・カメラ875はRGB-IRカメラであり、可視光線成分とIR成分の両方を有する画像データを生成する。(1つ又は複数の)コントローラ836は、(たとえば、方法400を実施することによって)変換された画像データを生成するために、上記で説明された技法を使用して画像データを処理し得る。変換された画像データは、RGB-IRカメラによって旧来生成された画像と比較して、改善されたSNR及び/又は画像品質及び/又は解像度を有し得る。生成された画像(すなわち、変換された画像データ)は、(1つ又は複数の)コントローラ836によって1つ又は複数の訓練された機械学習モデルに入力され得、及び/或いはHMIディスプレイ834を介してドライバ又は乗員による観察のために出力され得る。
少なくとも1つの実施例では、(1つ又は複数の)コントローラ836のうちの1つ又は複数は、車両800の計器クラスタ832からの(たとえば入力データによって表される)入力を受信し、ヒューマン・マシン・インターフェース(「HMI」:human-machine interface)ディスプレイ834、可聴アナンシエータ、拡声器を介して、及び/又は車両800の他の構成要素を介して、(たとえば、出力データ、ディスプレイ・データなどによって表される)出力を提供し得る。少なくとも1つの実施例では、出力は、車両速度、スピード、時間、地図データ(たとえば、高精細度地図(図8Aに図示せず)、ロケーション・データ(たとえば、地図上などの車両800のロケーション)、方向、他の車両のロケーション(たとえば、占有グリッド)、(1つ又は複数の)コントローラ836によって感知された物体及び物体のステータスに関する情報など、情報を含み得る。たとえば、少なくとも1つの実施例では、HMIディスプレイ834は、1つ又は複数の物体(たとえば、道路標識、警告標識、信号の変化など)の存在に関する情報、及び/或いは、車両が行った、行っている、又はこれから行う運転操作に関する情報(たとえば、現在車線変更中、3.22km(2マイル)先の出口34Bを出る、など)を表示し得る。
少なくとも1つの実施例では、車両800はネットワーク・インターフェース824をさらに含み、ネットワーク・インターフェース824は、1つ又は複数のネットワークを介して通信するために(1つ又は複数の)ワイヤレス・アンテナ826及び/又は(1つ又は複数の)モデムを使用し得る。たとえば、少なくとも1つの実施例では、ネットワーク・インターフェース824は、ロング・ターム・エボリューション(「LTE」:Long-Term Evolution)、広帯域符号分割多元接続(「WCDMA(登録商標)」:Wideband Code Division Multiple Access)、ユニバーサル・モバイル・テレコミュニケーション・システム(「UMTS」:Universal Mobile Telecommunications System)、モバイル通信用グローバル・システム(「GSM」:Global System for Mobile communication)、IMT-CDMAマルチ・キャリア(「CDMA2000」)ネットワークなどを介した通信が可能であり得る。また、少なくとも1つの実施例では、(1つ又は複数の)ワイヤレス・アンテナ826は、Bluetooth、Bluetooth低エネルギー(「LE」:Low Energy)、Z波、ZigBeeなどの(1つ又は複数の)ローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどの(1つ又は複数の)低電力ワイド・エリア・ネットワーク(「LPWAN」:low power wide-area network)のプロトコルを使用して、環境内の物体(たとえば、車両、モバイル・デバイスなど)間の通信を可能にし得る。
いくつかの実施例では、以下で説明される推論及び/又は訓練論理915は、上記で説明されたように生成された変換された画像データを使用して推論及び/又は訓練動作を実施するために使用される。推論及び/又は訓練論理915に関する詳細は、図9A及び/又は図9Bと併せて本明細書で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理915は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために使用され得る。
図8Bは、少なくとも1つの実施例による、図8Aの自律車両800についてのカメラ・ロケーション及び視野の一実例を示す。少なくとも1つの実施例では、カメラ及びそれぞれの視野は、1つの例示的な実施例であり、限定するものではない。たとえば、少なくとも1つの実施例では、追加及び/又は代替のカメラが含まれ得、及び/又は、カメラは車両800上の異なるロケーションに位置し得る。
少なくとも1つの実施例では、カメラについてのカメラ・タイプは、限定はしないが、車両800の構成要素及び/又はシステムとともに使用するために適応され得るデジタル・カメラを含み得る。少なくとも1つの実施例では、(1つ又は複数の)カメラは、自動車安全性要求レベル(「ASIL」:automotive safety integrity level)B及び/又は別のASILにおいて動作し得る。少なくとも1つの実施例では、カメラ・タイプは、実施例に応じて、毎秒60フレーム(fps:frames per second)、1220fps、240fpsなど、任意の画像キャプチャ・レートが可能であり得る。少なくとも1つの実施例では、カメラは、ローリング・シャッター、グローバル・シャッター、別のタイプのシャッター、又はそれらの組合せを使用することが可能であり得る。少なくとも1つの実施例では、カラー・フィルタ・アレイは、赤色、クリア、クリア、クリア(「RCCC」:red clear clear clear)のカラー・フィルタ・アレイ、赤色、クリア、クリア、青色(「RCCB:red clear clear blue」)のカラー・フィルタ・アレイ、赤色、青色、緑色、クリア(「RBGC」:red blue green clear)のカラー・フィルタ・アレイ、Foveon X3のカラー・フィルタ・アレイ、ベイヤー・センサ(「RGGB」)のカラー・フィルタ・アレイ、単色センサのカラー・フィルタ・アレイ、RGB-IRのカラー・フィルタ・アレイ、及び/又は別のタイプのカラー・フィルタ・アレイを含み得る。少なくとも1つの実施例では、光感度を上げるために、RCCC、RCCB、及び/又はRBGCのカラー・フィルタ・アレイをもつカメラなど、クリア・ピクセル・カメラが使用され得る。一実施例では、カメラのうちの1つ又は複数がRGB-IRカメラであり、1つ又は複数のカメラによって生成された画像データは、上記で記載された技法に従って処理される。
少なくとも1つの実施例では、(1つ又は複数の)カメラのうちの1つ又は複数が、先進ドライバ支援システム(「ADAS」:advanced driver assistance system)機能を(たとえば、冗長設計又はフェイル・セーフ設計の一部として)実施するために使用され得る。たとえば、少なくとも1つの実施例では、車線逸脱警告、交通標識支援及びインテリジェント・ヘッドライト制御を含む機能を提供するために、多機能モノ・カメラが設置され得る。少なくとも1つの実施例では、(1つ又は複数の)カメラのうちの1つ又は複数(たとえば、すべてのカメラ)が、画像データ(たとえば、ビデオ)を同時に記録し、提供し得る。
少なくとも1つの実施例では、1つ又は複数のカメラは、カメラ画像データ・キャプチャ・アビリティを妨げ得る迷光及び車両800内からの反射(たとえば、ダッシュボードからフロントガラスに反射される反射)をなくすために、カスタム設計の(3次元(「3D」:three-dimensional)印刷された)アセンブリなどの取付けアセンブリにおいて取り付けられ得る。ドアミラー取付けアセンブリを参照すると、少なくとも1つの実施例では、ドアミラー・アセンブリは、カメラ取付けプレートがドアミラーの形状にマッチするように、カスタム3D印刷され得る。少なくとも1つの実施例では、(1つ又は複数の)カメラは、ドアミラーに組み込まれ得る。少なくとも1つの実施例では、サイド・ビュー・カメラについて、(1つ又は複数の)カメラは、キャビンの各角にある4本のピラー内に組み込まれ得る。
少なくとも1つの実施例では、車両800の前方の環境の部分を含む視野をもつカメラ(たとえば、正面カメラ)は、正面の経路及び障害物を識別するのを助け、並びに、(1つ又は複数の)コントローラ836及び/又は制御SoCのうちの1つ又は複数の助けで、占有グリッドを生成すること及び/又は好ましい車両経路を決定することに不可欠な情報を提供するのを補助するために、周囲ビューのために使用され得る。少なくとも1つの実施例では、正面カメラは、限定はしないが、緊急ブレーキと、歩行者検出と、衝突回避とを含む、LIDARと同様の多くのADAS機能を実施するために使用され得る。少なくとも1つの実施例では、正面カメラはまた、限定はしないが、車線逸脱警告(「LDW」:Lane Departure Warning)、自律走行制御(「ACC」:Autonomous Cruise Control)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
少なくとも1つの実施例では、たとえば、CMOS(「相補型金属酸化物半導体(complementary metal oxide semiconductor)」)カラー・イメージャを含む単眼カメラ・プラットフォームを含む様々なカメラが、正面構成において使用され得る。少なくとも1つの実施例では、周辺からビューに入ってくる物体(たとえば、歩行者、横断する交通、又は自転車)を知覚するために、広角カメラ870が使用され得る。図8Bには1つの広角カメラ870のみが示されているが、他の実施例では、車両800上に(0を含む)任意の数の広角カメラがあり得る。少なくとも1つの実施例では、特にニューラル・ネットワークがそれに対してまだ訓練されていない物体について、深度ベースの物体検出のために、(1つ又は複数の)任意の数の長距離カメラ898(たとえば、ロングビュー・ステレオ・カメラ・ペア)が使用され得る。少なくとも1つの実施例では、(1つ又は複数の)長距離カメラ898は、物体検出及び分類、並びに基本的な物体追跡のためにも使用され得る。
少なくとも1つの実施例では、任意の数のステレオ・カメラ868も、正面構成に含まれ得る。少なくとも1つの実施例では、(1つ又は複数の)ステレオ・カメラ868のうちの1つ又は複数は、スケーラブル処理ユニットを備える一体型制御ユニットを含み得、この制御ユニットは、一体型のコントローラ・エリア・ネットワーク(「CAN」:Controller Area Network)又はイーサネット・インターフェースを単一のチップ上にもつプログラマブル論理(「FPGA」)及びマルチコア・マイクロプロセッサを提供し得る。少なくとも1つの実施例では、そのようなユニットは、画像内のすべてのポイントについての距離推定を含む、車両800の環境の3D地図を生成するために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)ステレオ・カメラ868のうちの1つ又は複数は、限定はしないが、(1つ又は複数の)コンパクト・ステレオ・ビジョン・センサを含み得、このセンサは、限定はしないが、車両800からターゲット物体までの距離を測定し、生成された情報(たとえば、メタデータ)を使用して自律緊急ブレーキ及び車線逸脱警告機能をアクティブ化し得る2つのカメラ・レンズ(左及び右に1つずつ)及び画像処理チップを含み得る。少なくとも1つの実施例では、本明細書で説明されるものに加えて、又はその代替として、他のタイプの(1つ又は複数の)ステレオ・カメラ868が使用され得る。
少なくとも1つの実施例では、車両800の側方の環境の部分を含む視野をもつカメラ(たとえば、サイド・ビュー・カメラ)が、周囲ビューのために使用され、占有グリッドを作成及び更新し、並びに側面衝突警告を生成するために使用される情報を提供し得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)周囲カメラ874(たとえば、図8Bに示されている4つの周囲カメラ)が、車両800上に位置決めされ得る。少なくとも1つの実施例では、(1つ又は複数の)周囲カメラ874は、限定はしないが、任意の数及び組合せの広角カメラ、(1つ又は複数の)魚眼カメラ、(1つ又は複数の)360度カメラ、及び/又は同様のカメラを含み得る。たとえば、少なくとも1つの実施例では、4つの魚眼カメラが、車両800の前方、後方、及び側方に位置決めされ得る。少なくとも1つの実施例では、車両800は、3つの周囲カメラ874(たとえば、左、右、及び後方)を使用し得、第4の周囲ビュー・カメラとして、1つ又は複数の他のカメラ(たとえば、正面カメラ)を活用し得る。
少なくとも1つの実施例では、(1つ又は複数の)キャビン・カメラ875は、車両のキャビンのドライバ及び/又は乗客エリアを網羅する視野を有する。
少なくとも1つの実施例では、車両800後方の環境の部分を含む視野をもつカメラ(たとえば、リア・ビュー・カメラ)が、駐車支援、周囲ビュー、後方衝突警告、並びに占有グリッドの作成及び更新のために使用され得る。少なくとも1つの実施例では、限定はしないが、本明細書で説明されるように、(1つ又は複数の)正面カメラとしても好適なカメラ(たとえば、長距離カメラ898、及び/又は(1つ又は複数の)中距離カメラ876、(1つ又は複数の)ステレオ・カメラ868)、(1つ又は複数の)赤外線カメラ872など)を含む、多種多様なカメラが使用され得る。
いくつかの実施例では、推論及び/又は訓練論理915は、上記で説明されたように処理された画像データを使用して推論及び/又は訓練動作を実施するために使用される。推論及び/又は訓練論理915に関する詳細は、図9A及び/又は図9Bと併せて本明細書で提供される。
図8Cは、少なくとも1つの実施例による、図8Aの自律車両800のための例示的なシステム・アーキテクチャを示すブロック図である。少なくとも1つの実施例では、図8C中の車両800の構成要素、特徴、及びシステムの各々は、バス802を介して接続されるものとして示されている。少なくとも1つの実施例では、バス802は、限定はしないが、CANデータ・インターフェース(代替的に、本明細書では「CANバス」と呼ばれる)を含み得る。少なくとも1つの実施例では、CANは、ブレーキの作動、加速、ブレーキ制御、操縦、フロントガラス・ワイパなど、車両800の様々な特徴及び機能性の制御を補助するために使用される、車両800内部のネットワークであり得る。少なくとも1つの実施例では、バス802は、各々がそれ自体の一意の識別子(たとえば、CAN ID)をもつ数十又はさらには数百のノードを有するように構成され得る。少なくとも1つの実施例では、バス802は、ハンドル角度、対地スピード、エンジンの毎分回転数(「RPM」:revolutions per minute)、ボタン位置、及び/又は他の車両ステータス・インジケータを見いだすために読み取られ得る。少なくとも1つの実施例では、バス802は、ASIL Bに準拠したCANバスであり得る。
少なくとも1つの実施例では、CANに加えて、又はその代替として、FlexRay及び/又はイーサネット・プロトコルが使用され得る。少なくとも1つの実施例では、バス802を形成する任意の数のバスがあり得、これらのバスは、限定はしないが、0個以上のCANバス、0個以上のFlexRayバス、0個以上のイーサネット・バス、及び/又は、異なるプロトコルを使用する0個以上の他のタイプのバスを含み得る。少なくとも1つの実施例では、2つ又はそれ以上のバスが、異なる機能を実施するために使用され得、及び/又は、冗長性のために使用され得る。たとえば、第1のバスが衝突回避機能性のために使用され得、第2のバスが作動制御のために使用され得る。少なくとも1つの実施例では、バス802の各バスは、車両800の構成要素のいずれかと通信し得、バス802のうちの2つ又はそれ以上のバスが、対応する構成要素と通信し得る。少なくとも1つの実施例では、任意の数のシステム・オン・チップ(「SoC」)804(SoC804(A)及びSoC804(B)などの各々、(1つ又は複数の)コントローラ836の各々、及び/又は車両内の各コンピュータは、同じ入力データ(たとえば、車両800のセンサからの入力)へのアクセスを有し得、CANバスなどの共通のバスに接続され得る。
少なくとも1つの実施例では、車両800は、図8Aに関して本明細書で説明されるものなど、1つ又は複数のコントローラ836を含み得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ836は、様々な機能のために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ836は、車両800の様々な他の構成要素及びシステムのいずれかに結合され得、車両800、車両800の人工知能、車両800のためのインフォテイメント、及び/又は他の機能の制御のために使用され得る。
少なくとも1つの実施例では、車両800は、任意の数のSoC804を含み得る。少なくとも1つの実施例では、SoC804の各々は、限定はしないが、中央処理ユニット(「CPU」)806、グラフィックス処理ユニット(「GPU」)808、(1つ又は複数の)プロセッサ810、(1つ又は複数の)キャッシュ812、(1つ又は複数の)アクセラレータ814、(1つ又は複数の)データ・ストア816、並びに/又は示されていない他の構成要素及び特徴を含み得る。少なくとも1つの実施例では、車両800を様々なプラットフォーム及びシステムにおいて制御するために、(1つ又は複数の)SoC804が使用され得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)SoC804は、1つ又は複数のサーバ(図8Cに図示せず)からネットワーク・インターフェース824を介して地図のリフレッシュ及び/又は更新を取得し得る高精細度(「HD」)地図822をもつシステム(たとえば、車両800のシステム)において組み合わせられ得る。
少なくとも1つの実施例では、(1つ又は複数の)CPU806は、CPUクラスタ又はCPUコンプレックス(代替的に、本明細書では「CCPLEX」と呼ばれる)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)CPU806は、複数のコア及び/又はレベル2(「L2」)キャッシュを含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)CPU806は、コヒーレントなマルチプロセッサ構成において8つのコアを含み得る。少なくとも1つの実施例では、(1つ又は複数の)CPU806は、4つのデュアル・コア・クラスタを含み得、各クラスタは、専用L2キャッシュ(たとえば、2メガバイト(MB)のL2キャッシュ)を有する。少なくとも1つの実施例では、(1つ又は複数の)CPU806(たとえば、CCPLEX)は、(1つ又は複数の)CPU806のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時のクラスタ動作をサポートするように構成され得る。
少なくとも1つの実施例では、(1つ又は複数の)CPU806のうちの1つ又は複数は、電力管理能力(capability)を実装し得、電力管理能力は、限定はしないが、以下の特徴のうちの1つ又は複数を含む:個々のハードウェア・ブロックが、動的電力を節約するために、アイドル時に自動的にクロック・ゲート制御され得る;各コア・クロックは、割込み待ち(「WFI」:Wait for Interrupt)/イベント待ち(「WFE」:Wait for Event)命令の実行によりそのようなコアが能動的に命令を実行していないとき、ゲート制御され得る;各コアが独立して電力ゲート制御され得る;各コア・クラスタは、すべてのコアがクロック・ゲート制御又は電力ゲート制御されるとき、独立してクロック・ゲート制御され得る;及び/或いは、各コア・クラスタは、すべてのコアが電力ゲート制御されるとき、独立して電力ゲート制御され得る。少なくとも1つの実施例では、(1つ又は複数の)CPU806は、電力状態を管理するための拡張アルゴリズムをさらに実装し得、許容された電力状態及び予想されるウェイクアップ時間が指定され、コア、クラスタ、及びCCPLEXのための入るべき最良の電力状態がどれかを、ハードウェア/マイクロコードが決定する。少なくとも1つの実施例では、処理コアは、ワークがマイクロコードにオフロードされたソフトウェアにおける簡単な電力状態エントリ・シーケンスをサポートし得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU808は、統合されたGPU(代替的に、本明細書では「iGPU」と呼ばれる)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808は、プログラマブルであり得、並列なワークロードについて効率的であり得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808は、拡張テンソル命令セットを使用し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808は、1つ又は複数のストリーミング・マイクロプロセッサを含み得、各ストリーミング・マイクロプロセッサは、レベル1(「L1」)キャッシュ(たとえば、少なくとも96KBのストレージ容量をもつL1キャッシュ)を含み得、2つ又はそれ以上のストリーミング・マイクロプロセッサは、L2キャッシュ(たとえば、512KBのストレージ容量をもつL2キャッシュ)を共有し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808は、少なくとも8つのストリーミング・マイクロプロセッサを含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808は、(1つ又は複数の)コンピュート・アプリケーション・プログラミング・インターフェース(API)を使用し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808は、1つ又は複数の並列なコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDAモデル)を使用し得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU808のうちの1つ又は複数は、自動車の及び組み込まれた使用事例における最良の性能のために電力最適化され得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)GPU808は、フィン電界効果トランジスタ(「FinFET」:Fin field-effect transistor)回路要素上で作製され得る。少なくとも1つの実施例では、各ストリーミング・マイクロプロセッサは、複数のブロックに区分けされたいくつかの混合精度処理コアを組み込み得る。たとえば、限定はしないが、64個のPF32コアと、32個のPF64コアとは、4つの処理ブロックに区分けされ得る。少なくとも1つの実施例では、各処理ブロックは、16個のFP32コア、8個のFP64コア、16個のINT32コア、深層学習行列算術のための2つの混合精度NVIDIA Tensorコア、レベル0(「L0」)命令キャッシュ、ワープ・スケジューラ、ディスパッチ・ユニット、及び/又は64KBのレジスタ・ファイルを割り振られ得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、算出とアドレッシング計算との混合によるワークロードの効率的な実行を行うために、独立した並列の整数及び浮動小数点データ経路を含み得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、並列スレッド間でよりきめ細かい同期及び協調を可能にするために、独立したスレッド・スケジューリング能力を含み得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、性能を改善すると同時にプログラミングを簡単にするために、組み合わせられたL1データ・キャッシュ及び共有メモリ・ユニットを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU808のうちの1つ又は複数は、いくつかの実例では、約900GB/秒のピーク・メモリ帯域幅を提供するために、高帯域幅メモリ(「HBM」:high bandwidth memory)及び/又は16GBの高帯域幅メモリ第2世代(「HBM2」:high-bandwidth memory second generation)メモリ・サブシステムを含み得る。少なくとも1つの実施例では、HBMメモリに加えて、又はその代替として、グラフィックス・ダブル・データ・レート・タイプ・ファイブ同期ランダム・アクセス・メモリ(「GDDR5」:graphics double data rate type five)など、同期グラフィックス・ランダム・アクセス・メモリ(「SGRAM」:synchronous graphics random-access memory)が使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU808は、統一メモリ技術を含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU808が(1つ又は複数の)CPU806のページ・テーブルに直接アクセスすることを可能にするために、アドレス・トランスレーション・サービス(「ATS」:address translation service)サポートが使用され得る。少なくとも1つの実施例では、GPU808メモリ管理ユニット(「MMU」:memory management unit)のGPUがミスに遭遇したとき、アドレス・トランスレーション要求が(1つ又は複数の)CPU806に送信され得る。少なくとも1つの実施例では、それに応答して、(1つ又は複数の)CPU806のうちの2CPUは、それのページ・テーブルにおいて、アドレスのための仮想-物理マッピングを探し、トランスレーションを(1つ又は複数の)GPU808に返送し得る。少なくとも1つの実施例では、統一メモリ技術は、(1つ又は複数の)CPU806と(1つ又は複数の)GPU808の両方のメモリについて単一の統一仮想アドレス空間を可能にし、それにより、(1つ又は複数の)GPU808のプログラミングと、(1つ又は複数の)GPU808へのアプリケーションの移植とを簡単にし得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU808は、他のプロセッサのメモリへの(1つ又は複数の)GPU808のアクセスの頻度を追跡し得る任意の数のアクセス・カウンタを含み得る。少なくとも1つの実施例では、(1つ又は複数の)アクセス・カウンタは、最も頻繁にページにアクセスしているプロセッサの物理メモリにメモリ・ページが移動されることを確実にするのを助け、それにより、プロセッサ間で共有されるメモリ範囲の効率を改善し得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、本明細書で説明されるものを含む、任意の数のキャッシュ812を含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)キャッシュ812は、(1つ又は複数の)CPU806と(1つ又は複数の)GPU808の両方にとって利用可能である(たとえば、(1つ又は複数の)CPU806及び(1つ又は複数の)GPU808に接続された)レベル3(「L3」)キャッシュを含むことができる。少なくとも1つの実施例では、(1つ又は複数の)キャッシュ812は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、ラインの状態を追跡し得るライト・バック・キャッシュを含み得る。少なくとも1つの実施例では、L3キャッシュは、実施例に応じて、4MB以上のメモリを含み得るが、より小さいキャッシュ・サイズが使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、1つ又は複数のアクセラレータ814(たとえば、ハードウェア・アクセラレータ、ソフトウェア・アクセラレータ、又はこれらの組合せ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC804は、最適化されたハードウェア・アクセラレータ及び/又は大型のオンチップ・メモリを含み得るハードウェア加速クラスタを含み得る。少なくとも1つの実施例では、大型のオンチップ・メモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタが、ニューラル・ネットワーク及び他の計算を加速することを可能にし得る。少なくとも1つの実施例では、ハードウェア加速クラスタは、(1つ又は複数の)GPU808を補完し、(1つ又は複数の)GPU808のタスクのうちのいくつかをオフロードするために(たとえば、他のタスクを実施するために(1つ又は複数の)GPU808のサイクルをより多く解放するために)使用され得る。少なくとも1つの実施例では、加速を受け入れるのに十分なほど安定している対象のワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(「CNN」)、リカレント・ニューラル・ネットワーク(「RNN」)など)のために、(1つ又は複数の)アクセラレータ814が使用され得る。少なくとも1つの実施例では、CNNは、領域ベースの、すなわち領域畳み込みニューラル・ネットワーク(「RCNN」:regional convolutional neural network)、及び(たとえば、物体検出のために使用されるような)高速RCNN、又は他のタイプのCNNを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ814(たとえば、ハードウェア加速クラスタ)は、1つ又は複数の深層学習アクセラレータ(「DLA」:deep learning accelerator)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、限定はしないが、1つ又は複数のTensor処理ユニット(「TPU」:Tensor processing unit)を含み得、1つ又は複数のTensor処理ユニットは、深層学習アプリケーション及び推論のために、追加の、毎秒10兆の演算を提供するように構成され得る。少なくとも1つの実施例では、TPUは、(たとえば、CNN、RCNNなどのための)画像処理機能を実施するように構成され、そのために最適化されたアクセラレータであり得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、ニューラル・ネットワーク・タイプと浮動小数点演算の特定のセット、並びに推論のためにさらに最適化され得る。少なくとも1つの実施例では、(1つ又は複数の)DLAの設計は、一般的な汎用GPUよりも多くのミリメートル当たりの性能を提供し得、一般的には、CPUの性能をはるかに超える。少なくとも1つの実施例では、(1つ又は複数の)TPUは、たとえば、特徴と重みの両方のためのINT8、INT16、及びFP16のデータ・タイプをサポートする、単一インスタンスの畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実施し得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、たとえば、限定はしないが、カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び車両所有者識別のためのCNN、並びに/或いはセキュリティ及び/又は安全関係イベントのためのCNNを含む、様々な機能のいずれかのための処理された又は処理されていないデータに対して、ニューラル・ネットワーク、特にCNNを、迅速に及び効率的に実行し得る。
少なくとも1つの実施例では、(1つ又は複数の)DLAは、(1つ又は複数の)GPU808の任意の機能を実施し得、たとえば、推論アクセラレータを使用することによって、設計者は、任意の機能のために(1つ又は複数の)DLA又は(1つ又は複数の)GPU808のいずれかをターゲットにし得る。たとえば、少なくとも1つの実施例では、設計者は、CNN及び浮動小数点演算の処理を(1つ又は複数の)DLAに集中させ、他の機能を(1つ又は複数の)GPU808及び/又は(1つ又は複数の)アクセラレータ814に任せ得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ814は、プログラマブル・ビジョン・アクセラレータ(「PVA」:programmable vision accelerator)を含み得、プログラマブル・ビジョン・アクセラレータは、本明細書では代替的にコンピュータ・ビジョン・アクセラレータと呼ばれることがある。少なくとも1つの実施例では、PVAは、先進ドライバ支援システム(「ADAS」)838、自律運転、拡張現実(「AR」:augmented reality)アプリケーション、及び/又は仮想現実(「VR」:virtual reality)アプリケーションのために、コンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。少なくとも1つの実施例では、PVAは、性能とフレキシビリティとの間の均衡を提供し得る。たとえば、少なくとも1つの実施例では、各PVAは、たとえば、限定はしないが、任意の数の縮小命令セット・コンピュータ(「RISC」:reduced instruction set computer)コア、ダイレクト・メモリ・アクセス(「DMA」:direct memory access)、及び/又は任意の数のベクトル・プロセッサを含み得る。
少なくとも1つの実施例では、RISCコアは、画像センサ(たとえば、本明細書で説明される任意のカメラの画像センサ)、(1つ又は複数の)画像信号プロセッサなどと対話し得る。少なくとも1つの実施例では、各RISCコアは、任意の量のメモリを含み得る。少なくとも1つの実施例では、RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用し得る。少なくとも1つの実施例では、RISCコアは、リアルタイム・オペレーティング・システム(「RTOS」:real-time operating system)を実行し得る。少なくとも1つの実施例では、RISCコアは、1つ又は複数の集積回路デバイス、特定用途向け集積回路(「ASIC」)、及び/又はメモリ・デバイスを使用して実装され得る。たとえば、少なくとも1つの実施例では、RISCコアは、命令キャッシュ及び/又は密結合RAMを含むことができる。
少なくとも1つの実施例では、DMAは、PVAの構成要素が(1つ又は複数の)CPU806とは無関係にシステム・メモリにアクセスすることを可能にし得る。少なくとも1つの実施例では、DMAは、限定はしないが、多次元アドレッシング及び/又はサーキュラ・アドレッシングをサポートすることを含む、PVAに最適化を提供するために使用される任意の数の特徴をサポートし得る。少なくとも1つの実施例では、DMAは、6つ又はそれ以上のアドレッシング次元までをサポートし得、これらのアドレッシング次元は、限定はしないが、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る。
少なくとも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との組合せが、スループット及びスピードを向上させ得る。
少なくとも1つの実施例では、ベクトル・プロセッサの各々は、命令キャッシュを含み得、専用メモリに結合され得る。その結果、少なくとも1つの実施例では、ベクトル・プロセッサの各々は、他のベクトル・プロセッサとは無関係に実行するように構成され得る。少なくとも1つの実施例では、特定のPVA中に含まれるベクトル・プロセッサは、データ並列処理を採用するように構成され得る。たとえば、少なくとも1つの実施例では、単一のPVA中に含まれる複数のベクトル・プロセッサは、共通のコンピュータ・ビジョン・アルゴリズムを、ただし画像の異なる領域上で実行し得る。少なくとも1つの実施例では、特定のPVA中に含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを1つの画像上で同時に実行するか、さらには、異なるアルゴリズムを連続した画像又は画像の部分上で実行し得る。少なくとも1つの実施例では、とりわけ、任意の数のPVAがハードウェア加速クラスタ中に含まれ得、任意の数のベクトル・プロセッサが各PVA中に含まれ得る。少なくとも1つの実施例では、PVAは、システムの全体的な安全性を向上させるために、追加のエラー訂正コード(「ECC」:Error Correction Code)メモリを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ814は、(1つ又は複数の)アクセラレータ814のための高帯域幅、低レイテンシのSRAMを提供するために、コンピュータ・ビジョン・ネットワーク・オンチップと、スタティック・ランダム・アクセス・メモリ(「SRAM」)とを含み得る。少なくとも1つの実施例では、オンチップ・メモリは、たとえば、限定はしないが、8つのフィールド構成可能メモリ・ブロックを含む少なくとも4MBのSRAMを含み得、これは、PVAとDLAの両方によってアクセス可能であり得る。少なくとも1つの実施例では、メモリ・ブロックの各ペアは、先進周辺バス(「APB」:advanced peripheral bus)インターフェースと、構成回路要素と、コントローラと、マルチプレクサとを含み得る。少なくとも1つの実施例では、任意のタイプのメモリが使用され得る。少なくとも1つの実施例では、PVA及びDLAは、メモリへの高速アクセスをPVA及びDLAに提供するバックボーンを介して、メモリにアクセスし得る。少なくとも1つの実施例では、バックボーンは、PVA及びDLAを(たとえば、APBを使用して)メモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
少なくとも1つの実施例では、コンピュータ・ビジョン・ネットワーク・オンチップは、任意の制御信号/アドレス/データの送信の前に、PVAとDLAの両方が準備信号及び有効信号を提供すると決定するインターフェースを含み得る。少なくとも1つの実施例では、インターフェースは、制御信号/アドレス/データを送信するための別個の位相及び別個のチャネル、並びに継続的なデータ転送のためのバーストタイプ通信を提供し得る。少なくとも1つの実施例では、インターフェースは、国際標準化機構(「ISO」:International Organization for Standardization)26262又は国際電気標準会議(「IEC」:International Electrotechnical Commission)61508の規格に準拠し得るが、他の規格及びプロトコルが使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、リアルタイム・レイ・トレーシング・ハードウェア・アクセラレータを含み得る。少なくとも1つの実施例では、リアルタイム・レイ・トレーシング・ハードウェア・アクセラレータは、RADAR信号解釈のための、音伝搬合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波形伝搬シミュレーションのための、ローカリゼーション及び/又は他の機能を目的としたLIDARデータとの比較のための、並びに/或いは他の使用法のための、リアルタイムの視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び範囲を迅速に及び効率的に決定するために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ814は、自律運転のための多様な使用法を有することができる。少なくとも1つの実施例では、PVAは、ADAS及び自律車両における主要な処理段階のために使用され得る。少なくとも1つの実施例では、PVAの能力は、低電力及び低レイテンシでの予測可能な処理を必要とするアルゴリズム・ドメインについて良好にマッチする。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能なランタイムを必要とし得る半稠密(semi-dense)又は稠密な規則的算出に対して、小さいデータ・セット上でも、良好に機能する。少なくとも1つの実施例では、車両800中など、PVAは、それらが、物体検出及び整数数値の演算において効率的であり得るので、従来のコンピュータ・ビジョン・アルゴリズムを稼働するように設計され得る。
たとえば、技術の少なくとも1つの実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実施するために使用される。少なくとも1つの実施例では、いくつかの実例においてセミグローバルなマッチング・ベースのアルゴリズムが使用され得るが、これは、限定するものではない。少なくとも1つの実施例では、レベル3~5の自律運転のためのアプリケーションは、動き推定/ステレオ・マッチング(たとえば、動きからの構造(structure from motion)、歩行者認識、車線検出など)をオンザフライで使用する。少なくとも1つの実施例では、PVAは、2つの単眼カメラからの入力に対して、コンピュータ・ステレオ・ビジョン機能を実施し得る。
少なくとも1つの実施例では、PVAは、高密度オプティカル・フローを実施するために使用され得る。たとえば、少なくとも1つの実施例では、PVAは、未加工のRADARデータを(たとえば、4Dの高速フーリエ変換を使用して)処理して、処理されたRADARデータを提供することができる。少なくとも1つの実施例では、PVAは、たとえば、処理された飛行時間データを提供するために、未加工の飛行時間データを処理することによって、飛行時間の深度処理のために使用される。
少なくとも1つの実施例では、DLAは、たとえば、限定はしないが、各物体検出についての信頼性の測度を出力するニューラル・ネットワークを含む、制御及び運転の安全性を向上させるための任意のタイプのネットワークを稼働するために使用され得る。少なくとも1つの実施例では、信頼性は、他の検出と比較した各検出の確率として、又はその相対的な「重み」を提供するものとして表されるか、又は解釈され得る。少なくとも1つの実施例では、信頼性測度は、システムが、どの検出が偽陽性(false positive)検出ではなく真陽性(true positive)検出と見なされるべきであるかに関して、さらなる判定を行うことを可能にする。少なくとも1つの実施例では、システムは、信頼性についてのしきい値を設定し、しきい値を超える検出のみを真陽性検出と見なし得る。自動緊急ブレーキ(「AEB」:automatic emergency braking)システムが使用される実施例では、偽陽性検出は、車両が自動的に緊急ブレーキをかけることを引き起こし、これは明らかに望ましくない。少なくとも1つの実施例では、非常に信頼性の高い検出が、AEBのためのトリガと見なされ得る。少なくとも1つの実施例では、DLAは、信頼性値を回帰するためにニューラル・ネットワークを稼働し得る。少なくとも1つの実施例では、ニューラル・ネットワークは、とりわけ、バウンディング・ボックスの次元、(たとえば、別のサブシステムから)取得されたグランド・プレーン推定値、車両800の向きと相関する(1つ又は複数の)IMUセンサ866からの出力、距離、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、(1つ又は複数の)LIDARセンサ864又は(1つ又は複数の)RADARセンサ860)から取得された物体の3Dロケーション推定値など、パラメータの少なくとも一部のサブセットを、その入力としてとり得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、(1つ又は複数の)データ・ストア816(たとえば、メモリ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア816は、(1つ又は複数の)SoC804のオンチップ・メモリであり得、このオンチップ・メモリは、(1つ又は複数の)GPU808及び/又はDLA上で実行されるべきニューラル・ネットワークを記憶し得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア816は、容量が、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分なほど大きくなり得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア816は、(1つ又は複数の)L2又はL3キャッシュを備え得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、(1つ又は複数の)任意の数のプロセッサ810(たとえば、組み込みプロセッサ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、ブート電力並びに管理機能及び関係するセキュリティ執行に対処するための専用プロセッサ及びサブシステムであり得る、ブート及び電力管理プロセッサを含み得る。少なくとも1つの実施例では、ブート及び電力管理プロセッサは、(1つ又は複数の)SoC804のブート・シーケンスの一部であり得、ランタイム電力管理サービスを提供し得る。少なくとも1つの実施例では、ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、(1つ又は複数の)SoC804の熱及び温度センサの管理、並びに/又は(1つ又は複数の)SoC804の電力状態の管理を提供し得る。少なくとも1つの実施例では、各温度センサは、その出力周波数が温度に比例するリング発振器として実装され得、(1つ又は複数の)SoC804は、リング発振器を使用して、(1つ又は複数の)CPU806、(1つ又は複数の)GPU808、及び/又は(1つ又は複数の)アクセラレータ814の温度を検出し得る。少なくとも1つの実施例では、温度がしきい値を超えると決定された場合、ブート及び電力管理プロセッサは、温度障害ルーチンに入り、(1つ又は複数の)SoC804を低電力状態にし、及び/又は車両800を運転手-安全停止モード(chauffeur to safe stop mode)にし(たとえば、車両800を安全停止させ)得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、オーディオ処理エンジンとして働き得る組み込みプロセッサのセットをさらに含み得、オーディオ処理エンジンは、複数のインターフェースを介した多チャネル・オーディオ、及び幅広くフレキシブルな様々なオーディオI/Oインターフェースのための、完全なハードウェア・サポートを可能にする、オーディオ・サブシステムであり得る。少なくとも1つの実施例では、オーディオ処理エンジンは、専用RAMをもつデジタル信号プロセッサをもつ専用プロセッサ・コアである。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、低電力センサ管理及び立ち上げ使用事例をサポートするのに必要なハードウェア特徴を提供し得る常時オン・プロセッサ・エンジンをさらに含み得る。少なくとも1つの実施例では、常時オン・プロセッサ・エンジンは、限定はしないが、プロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ及び割込みコントローラ)、様々なI/Oコントローラ周辺機器、及びルーティング論理を含み得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、安全クラスタ・エンジンをさらに含み得、安全クラスタ・エンジンは、限定はしないが、自動車用途のための安全管理に対処するための専用プロセッサ・サブシステムを含む。少なくとも1つの実施例では、安全クラスタ・エンジンは、限定はしないが、2つ又はそれ以上のプロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ、割込みコントローラなど)、及び/又はルーティング論理を含み得る。安全モードでは、2つ又はそれ以上のコアは、少なくとも1つの実施例では、ロックステップ・モードで動作し、それらの動作間で何らかの差を検出するための比較論理をもつ単一コアとして機能し得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、リアルタイム・カメラ・エンジンをさらに含み得、リアルタイム・カメラ・エンジンは、限定はしないが、リアルタイム・カメラ管理に対処するための専用プロセッサ・サブシステムを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、高ダイナミック・レンジ信号プロセッサをさらに含み得、高ダイナミック・レンジ信号プロセッサは、限定はしないが、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ810は、ビデオ画像合成器を含み得、ビデオ画像合成器は、プレーヤ・ウィンドウのための最終画像を作り出すためにビデオ再生アプリケーションによって必要とされるビデオ後処理機能を実装する(たとえば、マイクロプロセッサ上に実装された)処理ブロックであり得る。少なくとも1つの実施例では、ビデオ画像合成器は、(1つ又は複数の)広角カメラ870、(1つ又は複数の)周囲カメラ874、及び/又は(1つ又は複数の)キャビン内監視カメラ・センサに対して、レンズゆがみ補正を実施し得る。少なくとも1つの実施例では、(1つ又は複数の)キャビン内監視カメラ・センサは、好ましくは、キャビン内のイベントを識別し、それに応じて応答するように構成された、SoC804の別のインスタンス上で稼働しているニューラル・ネットワークによって監視される。少なくとも1つの実施例では、キャビン内システムは、限定はしないが、セルラー・サービスをアクティブ化し、電話をかけ、電子メールを書き、車両の行き先を変更し、車両のインフォテイメント・システム及び設定をアクティブ化又は変更し、或いはボイス作動式のウェブ・サーフィンを提供するために、読唇を実施し得る。少なくとも1つの実施例では、いくつかの機能は、車両が自律モードで動作しているときにドライバにとって利用可能であり、他の場合に使用不可にされる。
少なくとも1つの実施例では、ビデオ画像合成器は、空間と時間の両方のノイズ低減のための拡張された時間的ノイズ低減を含み得る。たとえば、少なくとも1つの実施例では、ビデオ中で動きが発生した場合、ノイズ低減が空間情報に適切に重み付けし、隣接するフレームによって提供される情報の重みを減少させる。少なくとも1つの実施例では、画像又は画像の一部分が動きを含まない場合、ビデオ画像合成器によって実施される時間的ノイズ低減は、前の画像からの情報を使用して、現在の画像中のノイズを低減し得る。
少なくとも1つの実施例では、ビデオ画像合成器はまた、入力されたステレオ・レンズ・フレームに対してステレオ平行化(stereo rectification)を実施するように構成され得る。少なくとも1つの実施例では、ビデオ画像合成器は、オペレーティング・システム・デスクトップが使用中であるとき、ユーザ・インターフェース合成のためにさらに使用され得、(1つ又は複数の)GPU808は、新しい表面を継続的にレンダリングすることを必要とされない。少なくとも1つの実施例では、(1つ又は複数の)GPU808が電源投入され、アクティブであり、3Dレンダリングを行っているとき、ビデオ画像合成器は、性能及び応答性を改善するために(1つ又は複数の)GPU808をオフロードするために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数のSoCは、カメラからのビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(「MIPI」:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、並びに/又はカメラ及び関係するピクセル入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、(1つ又は複数の)入力/出力コントローラをさらに含み得、(1つ又は複数の)入力/出力コントローラは、ソフトウェアによって制御され得、特定の役割にコミットされていないI/O信号を受信するために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数は、周辺機器、オーディオ・エンコーダ/デコーダ(「コーデック」)、電力管理、及び/又は他のデバイスとの通信を可能にするための広範囲の周辺インターフェースをさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC804は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット・チャネルを介して接続された)カメラからのデータ、センサ(たとえば、イーサネット・チャネルを介して接続され得る(1つ又は複数の)LIDARセンサ864、(1つ又は複数の)RADARセンサ860など)からのデータ、バス802からのデータ(たとえば、車両800のスピード、ハンドル位置など)、(たとえば、イーサネット・バス又はCANバスを介して接続された)(1つ又は複数の)GNSSセンサ858からのデータなどを処理するために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)SoC804のうちの1つ又は複数のSoCは、専用の高性能大容量ストレージ・コントローラをさらに含み得、この大容量ストレージ・コントローラは、それら自体のDMAエンジンを含み得、ルーチン・データ管理タスクから(1つ又は複数の)CPU806を解放するために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC804は、自動化レベル3~5に及ぶフレキシブルなアーキテクチャをもつエンドツーエンド・プラットフォームであり得、それにより、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に利用する包括的な機能的安全性アーキテクチャを提供し、フレキシブルで、信頼できる運転ソフトウェア・スタックのためのプラットフォームを、深層学習ツールとともに提供し得る。少なくとも1つの実施例では、(1つ又は複数の)SoC804は、従来のシステムよりも高速で、信頼でき、さらにはエネルギー効率及び空間効率が高くなり得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ814は、(1つ又は複数の)CPU806、(1つ又は複数の)GPU808、及び(1つ又は複数の)データ・ストア816と組み合わせられたとき、レベル3~5の自律車両のための高速で効率的なプラットフォームを提供し得る。
少なくとも1つの実施例では、コンピュータ・ビジョン・アルゴリズムはCPU上で実行され得、このアルゴリズムは、多種多様な視覚データにわたって多種多様な処理アルゴリズムを実行するために、Cなどの高レベル・プログラミング言語を使用して構成され得る。しかしながら、少なくとも1つの実施例では、CPUは、しばしば、たとえば、実行時間及び電力消費に関係する要件など、多くのコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。少なくとも1つの実施例では、多くのCPUは、車両内ADASアプリケーション及び実際のレベル3~5の自律車両において使用される、複雑な物体検出アルゴリズムをリアルタイムで実行することができない。
本明細書で説明される実施例は、複数のニューラル・ネットワークが同時に及び/又は順次実施されることを可能にし、レベル3~5の自律運転機能性を可能にするために結果が一緒に組み合わせられることを可能にする。たとえば、少なくとも1つの実施例では、DLA又は個別GPU(たとえば、(1つ又は複数の)GPU820)上で実行しているCNNは、テキスト及び単語認識を含み得、ニューラル・ネットワークがそれについて特に訓練されていない標識を含む交通標識を読み、理解することを可能にする。少なくとも1つの実施例では、DLAは、標識を識別し、解釈し、標識の意味的理解を提供することができ、その意味的理解を、CPUコンプレックス上で稼働している経路計画モジュールに渡すことができる、ニューラル・ネットワークをさらに含み得る。
少なくとも1つの実施例では、レベル3、4、又は5の運転に関して、複数のニューラル・ネットワークが同時に稼働され得る。たとえば、少なくとも1つの実施例では、電光とともに、「注意:点滅光は凍結状態(icy condition)を示す」と記載した警告標識が、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。少なくとも1つの実施例では、そのような警告標識自体は、第1の導入されたニューラル・ネットワーク(たとえば、訓練されたニューラル・ネットワーク)によって交通標識として識別され得、「点滅光は凍結状態を示す」というテキストは、第2の導入されたニューラル・ネットワークによって解釈され得、第2の導入されたニューラル・ネットワークは、点滅光が検出されたとき、凍結状態が存在することを車両の(好ましくはCPUコンプレックス上で実行している)経路計画ソフトウェアに知らせる。少なくとも1つの実施例では、点滅光は、第3の導入されたニューラル・ネットワークを複数のフレームにわたって動作させることによって識別され得、第3の導入されたニューラル・ネットワークが、車両の経路計画ソフトウェアに点滅光の存在(又は不在)を知らせる。少なくとも1つの実施例では、3つすべてのニューラル・ネットワークが、DLA内及び/又は(1つ又は複数の)GPU808上などで同時に稼働し得る。
少なくとも1つの実施例では、顔認識及び車両所有者識別のためのCNNが、カメラ・センサからのデータを使用して、車両800の承認済みのドライバ及び/又は所有者の存在を識別し得る。少なくとも1つの実施例では、所有者がドライバ・ドアに近づき、ライトをオンにしたときに車両を解錠し、セキュリティ・モードでは、所有者がそのような車両から離れたときにそのような車両を使用不可にするために、常時オン・センサ処理エンジンが使用され得る。このようにして、(1つ又は複数の)SoC804は、窃盗及び/又は自動車乗っ取りに対するセキュリティを提供する。
少なくとも1つの実施例では、緊急車両検出及び識別のためのCNNが、マイクロフォン896からのデータを使用して、緊急車両のサイレンを検出及び識別し得る。少なくとも1つの実施例では、(1つ又は複数の)SoC804は、環境及び市街地の音を分類し、並びに視覚データを分類するために、CNNを使用する。少なくとも1つの実施例では、DLA上で稼働しているCNNは、緊急車両が近づいてくる相対的なスピードを(たとえば、ドップラ効果を使用することによって)識別するように訓練される。少なくとも1つの実施例では、CNNは、(1つ又は複数の)GNSSセンサ858によって識別されるように、車両が動作している地域に特有の緊急車両を識別するようにも訓練され得る。少なくとも1つの実施例では、欧州で動作しているときは、CNNは欧州のサイレンを検出しようとし、北米にあるときは、CNNは北米のサイレンのみを識別しようとする。少なくとも1つの実施例では、緊急車両が検出されると、緊急車両安全ルーチンを実行し、車両の速度を落とし、道路脇に寄せ、車両を停止させ、及び/又は緊急車両が通過するまで、(1つ又は複数の)超音波センサ862を併用して車両をアイドリングするために、制御プログラムが使用され得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)CPU818(たとえば、(1つ又は複数の)個別CPU、又は(1つ又は複数の)dCPU)を含み得、(1つ又は複数の)CPU818は、高速相互接続(たとえば、PCIe)を介して(1つ又は複数の)SoC804に結合され得る。少なくとも1つの実施例では、(1つ又は複数の)CPU818は、たとえばX86プロセッサを含み得る。(1つ又は複数の)CPU818は、たとえば、ADASセンサと(1つ又は複数の)SoC804との間で潜在的に一貫性のない結果を調停すること、並びに/或いは、(1つ又は複数の)コントローラ836及び/又はチップ上のインフォテイメント・システム(「インフォテイメントSoC」)830のステータス及び健全性を監視することを含む、様々な機能のいずれかを実施するために使用され得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)GPU820(たとえば、(1つ又は複数の)個別GPU、又は(1つ又は複数の)dGPU)を含み得、(1つ又は複数の)GPU820は、高速相互接続(たとえば、NVIDIAのNVLINKチャネル)を介して(1つ又は複数の)SoC804に結合され得る。少なくとも1つの実施例では、(1つ又は複数の)GPU820は、冗長な及び/又は異なるニューラル・ネットワークを実行することなどによって、追加の人工知能機能性を提供し得、車両800のセンサからの入力(たとえば、センサ・データ)に少なくとも部分的に基づいて、ニューラル・ネットワークを訓練及び/又は更新するために使用され得る。
少なくとも1つの実施例では、車両800は、ネットワーク・インターフェース824をさらに含み得、ネットワーク・インターフェース824は、限定はしないが、(1つ又は複数の)ワイヤレス・アンテナ826(たとえば、セルラー・アンテナ、Bluetoothアンテナなど、異なる通信プロトコルのための1つ又は複数のワイヤレス・アンテナ)を含み得る。少なくとも1つの実施例では、ネットワーク・インターフェース824は、他の車両及び/又はコンピューティング・デバイス(たとえば、乗客のクライアント・デバイス)との(たとえば、(1つ又は複数の)サーバ及び/又は他のネットワーク・デバイスとの)インターネット・クラウド・サービスへのワイヤレス接続性を可能にするために使用され得る。少なくとも1つの実施例では、他の車両と通信するために、車両800と他の車両との間に直接リンクが確立され得、及び/又は(たとえば、ネットワークにわたって及びインターネットを介して)間接リンクが確立され得る。少なくとも1つの実施例では、直接リンクは、車両間通信リンクを使用して提供され得る。少なくとも1つの実施例では、車両間通信リンクは、車両800の近傍の車両(たとえば、車両800の前方、側方、及び/又は後方の車両)に関する情報を車両800に提供し得る。少なくとも1つの実施例では、そのような前述の機能性は、車両800の協調型適応走行制御機能性の一部であり得る。
少なくとも1つの実施例では、ネットワーク・インターフェース824は、変調及び復調機能性を提供し、(1つ又は複数の)コントローラ836がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。少なくとも1つの実施例では、ネットワーク・インターフェース824は、ベースバンドから無線周波数へのアップ・コンバージョン、及び無線周波数からベースバンドへのダウン・コンバージョンのための無線周波数フロント・エンドを含み得る。少なくとも1つの実施例では、周波数コンバージョンは、任意の技術的に実現可能な様式で実施され得る。たとえば、周波数コンバージョンは、よく知られているプロセスを通して、及び/又はスーパー・ヘテロダイン・プロセスを使用して実施され得る。少なくとも1つの実施例では、無線周波数フロント・エンド機能性は、別個のチップによって提供され得る。少なくとも1つの実施例では、ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000、Bluetooth、Bluetooth LE、Wi-Fi、Z波、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能性を含み得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)データ・ストア828をさらに含み得、(1つ又は複数の)データ・ストア828は、限定はしないが、オフチップ(たとえば、(1つ又は複数の)SoC804上にない)ストレージを含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア828は、限定はしないが、RAM、SRAM、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)、ビデオ・ランダム・アクセス・メモリ(「VRAM」:video random-access memory)、フラッシュ・メモリ、ハード・ディスク、並びに/或いは、少なくとも1ビットのデータを記憶し得る他の構成要素及び/又はデバイスを含む、1つ又は複数のストレージ要素を含み得る。
少なくとも1つの実施例では、車両800は、マッピング、知覚、占有グリッド生成、及び/又は経路計画機能を支援するために、(1つ又は複数の)GNSSセンサ858(たとえば、GPS及び/又は補助GPSセンサ)をさらに含み得る。少なくとも1つの実施例では、たとえば、限定はしないが、イーサネット-シリアル(たとえば、RS-232)ブリッジをもつユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)コネクタを使用するGPSを含む、任意の数のGNSSセンサ858が使用され得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)RADARセンサ860をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ860は、暗闇及び/又は厳しい気象条件においてさえ、長距離車両検出のために車両800によって使用され得る。少なくとも1つの実施例では、RADARの機能的安全性レベルは、ASIL Bであり得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ860は、いくつかの実例では、未加工のデータにアクセスするためのイーサネット・チャネルへのアクセスとともに、制御のために(たとえば、(1つ又は複数の)RADARセンサ860によって生成されたデータを送信するために)、及び物体追跡データにアクセスするために、CANバス及び/又はバス802を使用し得る。少なくとも1つの実施例では、多種多様なRADARセンサ・タイプが使用され得る。たとえば、限定はしないが、(1つ又は複数の)RADARセンサ860は、前方、後方、及び側方のRADAR使用に好適であり得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ860のうちの1つ又は複数のセンサは、パルス・ドップラRADARセンサである。
少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ860は、狭視野の長距離、広視野の短距離、短距離側方カバレージなど、異なる構成を含み得る。少なくとも1つの実施例では、長距離RADARは、適応走行制御機能性のために使用され得る。少なくとも1つの実施例では、長距離RADARシステムは、250m(メートル)範囲内などの、2つ又はそれ以上の独立した走査によって実現される広い視野を提供し得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ860は、静的物体と移動している物体とを区別するのを助け得、緊急ブレーキ支援及び前方衝突警告のためにADASシステム838によって使用され得る。少なくとも1つの実施例では、長距離RADARシステム中に含まれる(1つ又は複数の)センサ860は、限定はしないが、複数の(たとえば、6つ又はそれ以上の)固定RADARアンテナ、並びに高速CAN及びFlexRayインターフェースをもつモノスタティック・マルチモーダルRADARを含み得る。少なくとも1つの実施例では、6つのアンテナがある場合、中央の4アンテナは、隣接する車線におけるトラフィックからの干渉が最小の状態で、より高速で車両800の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。少なくとも1つの実施例では、別の2つのアンテナは、視野を拡大し、これは、車両800の車線に入るか又はそこを出る車両を迅速に検出することを可能にし得る。
少なくとも1つの実施例では、中距離RADARシステムは、一実例として、最高160m(前方)又は80m(後方)の範囲と、最高42度(前方)又は150度(後方)の視野とを含み得る。少なくとも1つの実施例では、短距離RADARシステムは、限定はしないが、後方バンパの両端部に設置されるように設計された任意の数のRADARセンサ860を含み得る。後方バンパの両端部に設置されたとき、少なくとも1つの実施例では、RADARセンサ・システムは、後方向及び車両の隣の死角を常に監視する2本のビームを作成し得る。少なくとも1つの実施例では、短距離RADARシステムは、死角検出及び/又は車線変更支援のために、ADASシステム838において使用され得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)超音波センサ862をさらに含み得る。少なくとも1つの実施例では、車両800の前方、後方、及び/又は側方ロケーションにおいて位置決めされ得る(1つ又は複数の)超音波センサ862は、駐車支援のために、並びに/又は占有グリッドを作成及び更新するために、使用され得る。少なくとも1つの実施例では、多種多様な(1つ又は複数の)超音波センサ862が使用され得、異なる検出範囲(たとえば、2.5m、4m)について(1つ又は複数の)異なる超音波センサ862が使用され得る。少なくとも1つの実施例では、(1つ又は複数の)超音波センサ862は、機能的安全性レベルのASIL Bにおいて動作し得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)LIDARセンサ864を含み得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ864は、物体及び歩行者検出、緊急ブレーキ、衝突回避、並びに/又は他の機能のために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ864は、機能的安全性レベルASIL Bにおいて動作し得る。少なくとも1つの実施例では、車両800は、複数のLIDARセンサ864(たとえば、2つ、4つ、6つなど)を含み得、それらのLIDARセンサ864は、(たとえば、データをギガビット・イーサネット・スイッチに提供するために)イーサネット・チャネルを使用し得る。
少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ864は、360度の視野について、物体及びそれらの距離のリストを提供することが可能であり得る。少なくとも1つの実施例では、(1つ又は複数の)市販のLIDARセンサ864は、たとえば、2cm~3cmの精度をもつ、及び80Mbpsのイーサネット接続のサポートをもつ、ほぼ80mの宣伝された範囲を有し得る。少なくとも1つの実施例では、1つ又は複数の非突出型LIDARセンサが使用され得る。そのような実施例では、(1つ又は複数の)LIDARセンサ864は、車両800の前方、後方、側方、及び/又は角ロケーションに組み込まれ得る小さいデバイスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ864は、そのような実施例において、最高120度の水平視野と、35度の垂直視野とを、低反射性物体についてさえ200mの範囲で提供し得る。少なくとも1つの実施例では、(1つ又は複数の)前方に取り付けられたLIDARセンサ864は、45度から135度の間の水平視野のために構成され得る。
少なくとも1つの実施例では、3DフラッシュLIDARなどのLIDAR技術も使用され得る。少なくとも1つの実施例では、3DフラッシュLIDARは、レーザのフラッシュを送信ソースとして使用して、車両800の周囲を最高でほぼ200mまで照射する。少なくとも1つの実施例では、フラッシュLIDARユニットは、限定はしないが、レセプタを含み、レセプタは、レーザ・パルスの通過時間と各ピクセル上での反射光とを記録し、それらは、車両800から物体までの範囲に対応する。少なくとも1つの実施例では、フラッシュLIDARは、非常に正確でゆがみのない周囲画像が、レーザのフラッシュごとに生成されることを可能にし得る。少なくとも1つの実施例では、4つのフラッシュLIDARセンサが、車両800の各側面において1つ導入され得る。少なくとも1つの実施例では、3DフラッシュLIDARシステムは、限定はしないが、ファン以外に可動部品のないソリッド・ステート3D凝視アレイ(staring array)LIDARカメラ(たとえば、非走査型LIDARデバイス)を含む。少なくとも1つの実施例では、フラッシュLIDARデバイスは、フレーム当たり5ナノ秒のクラスI(眼に安全な)レーザ・パルスを使用し得、3D範囲のポイント・クラウド及び位置同期された(co-registered)強度データとして反射レーザ光をキャプチャし得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)IMUセンサ866をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866は、車両800の後方車軸の中央に位置し得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866は、たとえば、限定はしないが、(1つ又は複数の)加速度計、(1つ又は複数の)磁力計、(1つ又は複数の)ジャイロスコープ、磁気コンパス、複数の磁気コンパス、及び/又は他のセンサ・タイプを含み得る。6軸の用途においてなど、少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866は、限定はしないが、加速度計とジャイロスコープとを含み得る。9軸の用途においてなど、少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866は、限定はしないが、加速度計と、ジャイロスコープと、磁力計とを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866は、微小電気機械システム(「MEMS」:micro-electro-mechanical systems)慣性センサ、高感度GPS受信機、及び先進Kalmanフィルタリング・アルゴリズムを組み合わせて、位置、速度、及び姿勢の推定値を提供する、小型の高性能GPS補強型慣性航法システム(「GPS/INS」:GPS-Aided Inertial Navigation System)として実装され得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866は、車両800が、速度の変化を直接観察し、それを、GPSから(1つ又は複数の)IMUセンサ866に相関させることによって、磁気センサからの入力を必要とせずに車両800の方位を推定することを可能にし得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ866と(1つ又は複数の)GNSSセンサ858とは、単一の統合されたユニットにおいて組み合わせられ得る。
少なくとも1つの実施例では、車両800は、車両800の中及び/又はその周りに置かれた(1つ又は複数の)マイクロフォン896を含み得る。少なくとも1つの実施例では、(1つ又は複数の)マイクロフォン896は、とりわけ、緊急車両検出及び識別のために使用され得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)ステレオ・カメラ868、(1つ又は複数の)広角カメラ870、(1つ又は複数の)赤外線カメラ872、(1つ又は複数の)周囲カメラ874、(1つ又は複数の)長距離カメラ898、(1つ又は複数の)中距離カメラ876、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。少なくとも1つの実施例では、カメラは、車両800の全周辺の周りで画像データをキャプチャするために使用され得る。少なくとも1つの実施例では、どのタイプのカメラが使用されるかは、車両800に依存する。少なくとも1つの実施例では、車両800の周りで必要なカバレージを提供するために、カメラ・タイプの任意の組合せが使用され得る。少なくとも1つの実施例では、導入されるカメラの数は、実施例に応じて異なり得る。たとえば、少なくとも1つの実施例では、車両800は、6台のカメラ、7台のカメラ、10台のカメラ、12台のカメラ、又は別の数のカメラを含むことができる。少なくとも1つの実施例では、カメラは、一実例として、限定はしないが、ギガビット・マルチメディア・シリアル・リンク(「GMSL」:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット通信をサポートし得る。少なくとも1つの実施例では、各カメラは、図8A及び図8Bに関して本明細書でより詳細に前に説明されたようなものであり得る。
少なくとも1つの実施例では、車両800は、(1つ又は複数の)振動センサ842をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)振動センサ842は、(1つ又は複数の)車軸など、車両800の構成要素の振動を測定し得る。たとえば、少なくとも1つの実施例では、振動の変化は、路面の変化を示し得る。少なくとも1つの実施例では、2つ又はそれ以上の振動センサ842が使用されるとき、路面の摩擦又はすべり量を決定するために振動の差が使用され得る(たとえば、振動の差が動力駆動車軸と自由回転車軸との間のものであるとき)。
少なくとも1つの実施例では、車両800は、ADASシステム838を含み得る。少なくとも1つの実施例では、ADASシステム838は、限定はしないが、いくつかの実例では、SoCを含み得る。少なくとも1つの実施例では、ADASシステム838は、限定はしないが、任意の数及び組合せの自律/適応/自動走行制御(「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)システム、並びに/或いは他のシステム、特徴、及び/又は機能性を含み得る。
少なくとも1つの実施例では、ACCシステムは、(1つ又は複数の)RADARセンサ860、(1つ又は複数の)LIDARセンサ864、及び/又は任意の数のカメラを使用し得る。少なくとも1つの実施例では、ACCシステムは、縦方向ACCシステム及び/又は横方向ACCシステムを含み得る。少なくとも1つの実施例では、縦方向ACCシステムは、車両800の直前の別の車両までの距離を監視及び制御し、車両800のスピードを自動的に調節して、前の車両からの安全な距離を維持する。少なくとも1つの実施例では、横方向ACCシステムは、距離の維持を実施し、必要なときに車線を変更するよう車両800に忠告する。少なくとも1つの実施例では、横方向ACCは、LC及びCWなど、他のADAS用途に関係する。
少なくとも1つの実施例では、CACCシステムは、他の車両からの情報を使用し、この情報は、ワイヤレス・リンクを介して、又は間接的に、ネットワーク接続を介して(たとえば、インターネットを介して)、他の車両からネットワーク・インターフェース824及び/又は(1つ又は複数の)ワイヤレス・アンテナ826を介して受信され得る。少なくとも1つの実施例では、直接リンクは車両間(「V2V」:vehicle-to-vehicle)通信リンクによって提供され得、間接リンクはインフラストラクチャ車両間(「I2V」:infrastructure-to-vehicle)通信リンクによって提供され得る。一般に、V2V通信は、直前の先行車両(たとえば、車両800の直前で同じ車線にいる車両)に関する情報を提供し、I2V通信は、さらにその前の交通に関する情報を提供する。少なくとも1つの実施例では、CACCシステムは、I2V情報ソースとV2V情報ソースのいずれか又は両方を含み得る。少なくとも1つの実施例では、車両800の前の車両の情報があれば、CACCシステムは、より信頼できるものとなり得、それは、交通の流れの円滑さを改善し、道路上での渋滞を低減する可能性を有する。
少なくとも1つの実施例では、FCWシステムは、危険物についてドライバにアラートするように設計され、それにより、そのようなドライバは是正アクションをとり得る。少なくとも1つの実施例では、FCWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックを提供するように電気的に結合された専用プロセッサ、デジタル信号プロセッサ(「DSP」)、FPGA、及び/又はASICに結合された、正面カメラ及び/又は(1つ又は複数の)RADARセンサ860を使用する。少なくとも1つの実施例では、FCWシステムは、音、視覚的警告、振動及び/又はクイック・ブレーキ・パルスなどの形態で警告を提供し得る。
少なくとも1つの実施例では、AEBシステムは、別の車両又は他の物体との差し迫った前方衝突を検出し、指定された時間又は距離パラメータ内にドライバが是正アクションをとらない場合、自動的にブレーキをかけ得る。少なくとも1つの実施例では、AEBシステムは、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された(1つ又は複数の)正面カメラ及び/又は(1つ又は複数の)RADARセンサ860を使用し得る。少なくとも1つの実施例では、AEBシステムが危険物を検出したとき、AEBシステムは、通常、最初に、是正アクションをとって衝突を回避するようにドライバにアラートし、そのドライバが是正アクションをとらない場合、そのAEBシステムは、予測される衝突を防ぐか、又は少なくともその衝撃を軽減するために、自動的にブレーキをかけ得る。少なくとも1つの実施例では、AEBシステムは、動的ブレーキ・サポート及び/又はクラッシュ直前ブレーキなどの技法を含み得る。
少なくとも1つの実施例では、LDWシステムは、車両800が車線の目印に交差したときにドライバにアラートするために、ハンドル又は座席の振動など、視覚的、聴覚的、及び/又は触覚的警告を提供する。少なくとも1つの実施例では、LDWシステムは、ドライバが方向指示器をアクティブ化することなどによって意図的な車線逸脱を示すとき、アクティブ化しない。少なくとも1つの実施例では、LDWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックを提供するように電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、正面向きのカメラを使用し得る。少なくとも1つの実施例では、LKAシステムは、LDWシステムの変形形態である。少なくとも1つの実施例では、LKAシステムは、車両800が車両800の車線から出始めた場合に車両800を是正するために操縦入力又はブレーキ制御を提供する。
少なくとも1つの実施例では、BSWシステムは、自動車の死角にある車両を検出し、その車両についてドライバに警告する。少なくとも1つの実施例では、BSWシステムは、合流すること又は車線を変更することが安全ではないことを示すために、視覚的、聴覚的、及び/又は触覚的なアラートを提供し得る。少なくとも1つの実施例では、BSWシステムは、ドライバが方向指示器を使用したときに追加の警告を提供し得る。少なくとも1つの実施例では、BSWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックに電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、(1つ又は複数の)背面向きのカメラ及び/又は(1つ又は複数の)RADARセンサ860を使用し得る。
少なくとも1つの実施例では、RCTWシステムは、車両800が後退しているときに物体が後方カメラの範囲外で検出されたとき、視覚的、聴覚的、及び/又は触覚的な通知を提供し得る。少なくとも1つの実施例では、RCTWシステムは、クラッシュを回避するために車両ブレーキがかけられることを確実にするためのAEBシステムを含む。少なくとも1つの実施例では、RCTWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックを提供するように電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1つ又は複数の背面RADARセンサ860を使用し得る。
少なくとも1つの実施例では、従来のADASシステムは、偽陽性結果を出しがちなことがあり、これは、ドライバにとって迷惑であり、気が散るものであり得るが、従来のADASシステムが、ドライバにアラートし、そのドライバが、安全条件が本当に存在するかどうかを判定し、それに応じて行動することを可能にするので、通常は大したことにはならない。少なくとも1つの実施例では、車両800自体が、矛盾する結果の場合、1次コンピュータ(たとえば、コントローラ836のうちの第1のコントローラ)からの結果に従うのか、2次コンピュータ(たとえば、コントローラ836のうちの第2のコントローラ)からの結果に従うのかを判定する。たとえば、少なくとも1つの実施例では、ADASシステム838は、バックアップ・コンピュータ合理性モジュールに知覚情報を提供するためのバックアップ及び/又は2次コンピュータであり得る。少なくとも1つの実施例では、バックアップ・コンピュータ合理性モニタが、ハードウェア構成要素上の冗長な多様なソフトウェアを稼働して、知覚及び動的運転タスクの障害を検出し得る。少なくとも1つの実施例では、ADASシステム838からの出力は、監督MCU(supervisory MCU)に提供され得る。少なくとも1つの実施例では、1次コンピュータからの出力と2次コンピュータからの出力とが矛盾する場合、監督MCUが、安全な動作を確実にするために矛盾をどのように調和させるかを決定する。
少なくとも1つの実施例では、1次コンピュータは、選定された結果における1次コンピュータの信頼性を示す信頼性スコアを監督MCUに提供するように構成され得る。少なくとも1つの実施例では、その信頼性スコアがしきい値を超える場合、その2次コンピュータが、矛盾する又は一貫性のない結果を提供するかどうかにかかわらず、監督MCUは、その1次コンピュータの指示に従い得る。少なくとも1つの実施例では、信頼性スコアがしきい値を満たさない場合、及び1次コンピュータと2次コンピュータとが異なる結果(たとえば、矛盾)を示す場合、監督MCUは、コンピュータ間で調停して、適切な帰結を決定し得る。
少なくとも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つ又は複数の)SoC804の構成要素を備え、及び/又はその構成要素として含められ得る。
少なくとも1つの実施例では、ADASシステム838は、コンピュータ・ビジョンの従来のルールを使用してADAS機能性を実施する2次コンピュータを含み得る。少なくとも1つの実施例では、その2次コンピュータは、従来のコンピュータ・ビジョン・ルール(if-then)を使用し得、監督MCU中の(1つ又は複数の)ニューラル・ネットワークの存在が、信頼性、安全性及び性能を改善し得る。たとえば、少なくとも1つの実施例では、多様な実装及び意図的な非同一性が、システム全体を、特にソフトウェア(又はソフトウェアとハードウェアのインターフェース)機能性によって引き起こされる障害に対して、より障害耐性のあるものにする。たとえば、少なくとも1つの実施例では、1次コンピュータ上で稼働しているソフトウェアにおいてソフトウェア・バグ又はエラーがあり、2次コンピュータ上で稼働している非同一のソフトウェア・コードが、一貫性のある全体的な結果を提供する場合、監督MCUは、全体的な結果が正しく、その1次コンピュータ上のソフトウェア又はハードウェアにおけるバグが重大なエラーを引き起こしていないという、より高い信頼性を有し得る。
少なくとも1つの実施例では、ADASシステム838の出力は、1次コンピュータの知覚ブロック及び/又は1次コンピュータの動的運転タスク・ブロックにフィードされ得る。たとえば、少なくとも1つの実施例では、ADASシステム838が、直前の物体により正面クラッシュ警告を示す場合、知覚ブロックは、物体を識別するときにこの情報を使用し得る。少なくとも1つの実施例では、2次コンピュータは、本明細書で説明されるように、訓練された、したがって偽陽性のリスクを低減する、それ自体のニューラル・ネットワークを有し得る。
少なくとも1つの実施例では、車両800は、インフォテイメントSoC830(たとえば、車両内インフォテイメント・システム(IVI:in-vehicle infotainment))をさらに含み得る。SoCとして示され、説明されるが、インフォテイメント・システムSoC830は、少なくとも1つの実施例では、SoCでないことがあり、限定はしないが、2つ又はそれ以上の個別の構成要素を含み得る。少なくとも1つの実施例では、インフォテイメントSoC830は、限定はしないが、ハードウェアとソフトウェアとの組合せを含み得、この組合せは、オーディオ(たとえば、音楽、パーソナル・デジタル・アシスタント、ナビゲーション命令、ニュース、ラジオなど)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続性(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データ・システム、燃料レベル、合計走行距離、ブレーキ燃料レベル、オイル・レベル、ドアの開閉、空気フィルタ情報などの車両関係情報など)を車両800に提供するために使用され得る。たとえば、インフォテイメントSoC830は、ラジオ、ディスク・プレーヤ、ナビゲーション・システム、ビデオ・プレーヤ、USB及びBluetooth接続性、カーピュータ、車内エンタテイメント、Wi-Fi、ハンドル・オーディオ制御、ハンズフリー・ボイス制御、ヘッドアップ・ディスプレイ(「HUD」:heads-up display)、HMIディスプレイ834、テレマティックス・デバイス、(たとえば、様々な構成要素、特徴、及び/又はシステムを制御し、及び/又はそれらと対話するための)制御パネル、及び/又は他の構成要素を含むことができる。少なくとも1つの実施例では、インフォテイメントSoC830は、ADASシステム838からの情報、計画された車両操作、軌道などの自律運転情報、周囲環境情報(たとえば、交差点情報、車両情報、道路情報など)、及び/又は他の情報など、(たとえば、視覚的及び/又は聴覚的な)情報を車両800の(1人又は複数の)ユーザに提供するために、さらに使用され得る。
少なくとも1つの実施例では、インフォテイメントSoC830は、任意の量及びタイプのGPU機能性を含み得る。少なくとも1つの実施例では、インフォテイメントSoC830は、バス802を介して、車両800の他のデバイス、システム、及び/又は構成要素と通信し得る。少なくとも1つの実施例では、インフォテイメントSoC830は監督MCUに結合され得、それにより、(1つ又は複数の)1次コントローラ836(たとえば、車両800の1次及び/又はバックアップ・コンピュータ)が故障した場合、インフォテイメント・システムのGPUが、いくつかの自己運転機能を実施し得る。少なくとも1つの実施例では、インフォテイメントSoC830は、本明細書で説明されるように、車両800を運転手-安全停止モードにし得る。
少なくとも1つの実施例では、車両800は、計器クラスタ832(たとえば、デジタル・ダッシュボード、電子計器クラスタ、デジタル計器パネルなど)をさらに含み得る。少なくとも1つの実施例では、計器クラスタ832は、限定はしないが、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。少なくとも1つの実施例では、計器クラスタ832は、限定はしないが、スピードメータ、燃料レベル、油圧、タコメータ、オドメータ、方向インジケータ、シフトレバー位置インジケータ、(1つ又は複数の)シート・ベルト警告灯、(1つ又は複数の)駐車ブレーキ警告灯、(1つ又は複数の)エンジン故障灯、補助拘束システム(たとえば、エアバッグ)情報、ライティング制御、安全システム制御、ナビゲーション情報など、任意の数及び組合せの計装セットを含み得る。いくつかの実例では、情報は表示され、及び/又は、インフォテイメントSoC830と計器クラスタ832との間で共有され得る。少なくとも1つの実施例では、計器クラスタ832は、インフォテイメントSoC830の一部として含められ得、その逆もまた同様である。
いくつかの実施例では、推論及び/又は訓練論理915は、上記で説明されたように生成され得る変換された画像データを使用して推論及び/又は訓練動作を実施するために使用される。
図8Dは、少なくとも1つの実施例による、(1つ又は複数の)クラウド・ベースのサーバと図8Aの自律車両800との間の通信のためのシステム878の図である。少なくとも1つの実施例では、システム878は、限定はしないが、(1つ又は複数の)サーバ878と、(1つ又は複数の)ネットワーク890と、車両800を含む任意の数及びタイプの車両とを含み得る。少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、限定はしないが、(総称して、本明細書ではGPU884と呼ばれる)複数のGPU884(A)~1084(H)、(総称して、本明細書ではPCIeスイッチ882と呼ばれる)PCIeスイッチ882(A)~882(D)、及び/又は(総称して、本明細書ではCPU880と呼ばれる)CPU880(A)~880(B)を含み得る。少なくとも1つの実施例では、GPU884と、CPU880と、PCIeスイッチ882とは、たとえば、限定はしないが、NVIDIAによって開発されたNVLinkインターフェース888及び/又はPCIe接続886など、高速相互接続で相互接続され得る。少なくとも1つの実施例では、GPU884は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU884とPCIeスイッチ882とは、PCIe相互接続を介して接続される。8つのGPU884と、2つのCPU880と、4つのPCIeスイッチ882とが示されているが、これは限定するものではない。少なくとも1つの実施例では、(1つ又は複数の)サーバ878の各々は、限定はしないが、任意の数のGPU884、CPU880、及び/又はPCIeスイッチ882を任意の組合せで含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、各々、8つ、16個、32個、及び/又はそれ以上のGPU884を含むことができる。
少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、最近始まった道路工事など、予想外の又は変更された道路状態(road condition)を示す画像を表す画像データを、(1つ又は複数の)ネットワーク890を介して、車両から受信し得る。少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、更新された又はそうではないニューラル・ネットワーク892、及び/或いは、限定はしないが、交通及び道路状態に関する情報を含む、地図情報894を、(1つ又は複数の)ネットワーク890を介して、車両に送信し得る。少なくとも1つの実施例では、地図情報894の更新は、限定はしないが、建築現場、穴、迂回路、洪水、及び/又は他の障害物に関する情報など、HD地図822についての更新を含み得る。少なくとも1つの実施例では、ニューラル・ネットワーク892及び/又は地図情報894は、環境中の任意の数の車両から受信されたデータにおいて表された新しい訓練及び/又は経験から、並びに/或いは、データ・センタにおいて(たとえば、(1つ又は複数の)サーバ878及び/又は他のサーバを使用して)実施された訓練に少なくとも部分的に基づいて、生じていることがある。
少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、訓練データに少なくとも部分的に基づいて機械学習モデル(たとえば、ニューラル・ネットワーク)を訓練するために使用され得る。少なくとも1つの実施例では、訓練データは、車両によって生成され得、及び/又はシミュレーションにおいて(たとえば、ゲーム・エンジンを使用して)生成され得る。少なくとも1つの実施例では、任意の量の訓練データが、(たとえば、関連するニューラル・ネットワークが教師あり学習から恩恵を受ける場合)タグ付けされ、及び/又は他の前処理を受ける。少なくとも1つの実施例では、任意の量の訓練データが、(たとえば、関連するニューラル・ネットワークが教師あり学習を必要としない場合)タグ付けされず、及び/又は前処理されない。少なくとも1つの実施例では、機械学習モデルが訓練されると、機械学習モデルは、車両によって使用(たとえば、(1つ又は複数の)ネットワーク890を介して車両に送信)され得、及び/又は、機械学習モデルは、車両をリモートで監視するために(1つ又は複数の)サーバ878によって使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、車両からデータを受信し、リアルタイム・インテリジェント推論のために最新のリアルタイム・ニューラル・ネットワークにデータを適用し得る。少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、(1つ又は複数の)GPU884によって動く深層学習スーパーコンピュータ及び/又は専用AIコンピュータを含み得る。しかしながら、少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、CPUによって動くデータ・センタを使用する深層学習インフラストラクチャを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)サーバ878の深層学習インフラストラクチャは、高速リアルタイム推論が可能であり得、その能力を使用して、車両800中のプロセッサ、ソフトウェア、及び/又は関連するハードウェアの健全性を評定及び確認し得る。たとえば、少なくとも1つの実施例では、深層学習インフラストラクチャは、一連の画像、及び/又は(たとえば、コンピュータ・ビジョン及び/又は他の機械学習物体分類技法を介して)その一連の画像において車両800が位置を特定した物体など、周期的な更新を車両800から受信し得る。少なくとも1つの実施例では、深層学習インフラストラクチャは、それ自体のニューラル・ネットワークを稼働して物体を識別し、それらを、車両800によって識別された物体と比較し得、結果がマッチせず、車両800中のAIが故障していると深層学習インフラストラクチャが結論付けた場合、(1つ又は複数の)サーバ878は、車両800のフェイル・セーフ・コンピュータに、制御を掌握し、乗客に通知し、安全な駐車操作を完了するように命令する信号を、車両800に送信し得る。
少なくとも1つの実施例では、(1つ又は複数の)サーバ878は、(1つ又は複数の)GPU884と、1つ又は複数のプログラマブル推論アクセラレータ(たとえば、NVIDIAのTensorRT3デバイス)とを含み得る。少なくとも1つの実施例では、GPUによって動くサーバと推論の加速との組合せが、リアルタイム応答を可能にし得る。性能がそれほど重要ではない場合など、少なくとも1つの実施例では、CPU、FPGA、及び他のプロセッサによって動くサーバが、推論のために使用され得る。
図9Aは、(たとえば、方法400による出力として、変換された画像データを使用して)1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために使用される推論及び/又は訓練論理(ハードウェア構造)915を示す。推論及び/又は訓練論理915に関する詳細は、図9A及び/又は図9Bと併せて以下で提供される。
少なくとも1つの実施例では、推論及び/又は訓練論理915は、限定はしないが、1つ又は複数の実施例の態様において推論するために訓練及び/又は使用されるニューラル・ネットワークのニューロン又は層を構成するための順方向及び/若しくは出力の重み及び/又は入力/出力データ、並びに/或いは他のパラメータを記憶するためのコード及び/又はデータ・ストレージ901を含み得る。少なくとも1つの実施例では、訓練論理915は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ901を含むか、又はそれに結合され得、コード及び/又はデータ・ストレージ901において、整数及び/又は浮動小数点ユニット(総称して、算術論理ユニット(ALU:arithmetic logic unit))を含む論理を構成するために、重み及び/又は他のパラメータ情報がロードされるべきである。少なくとも1つの実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づいて、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901は、1つ又は複数の実施例の態様を使用する訓練及び/又は推論中の入力/出力データ及び/又は重みパラメータの順方向伝搬中に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901の任意の部分は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路の内部又は外部にあり得る。少なくとも1つの実施例では、コード及び/又はコード及び/又はデータ・ストレージ901は、キャッシュ・メモリ、動的なランダムにアドレス指定可能なメモリ(「DRAM」:dynamic randomly addressable memory)、静的なランダムにアドレス指定可能なメモリ(「SRAM」:static randomly addressable memory)、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、コード及び/又はコード及び/又はデータ・ストレージ901が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。
少なくとも1つの実施例では、推論及び/又は訓練論理915は、限定はしないが、1つ又は複数の実施例の態様において推論するために訓練及び/又は使用されるニューラル・ネットワークのニューロン又は層に対応する逆方向及び/若しくは出力の重み及び/又は入力/出力データを記憶するためのコード及び/又はデータ・ストレージ905を含み得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ905は、1つ又は複数の実施例の態様を使用する訓練及び/又は推論中の入力/出力データ及び/又は重みパラメータの逆方向伝搬中に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも1つの実施例では、訓練論理915は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ905を含むか、又はそれに結合され得、コード及び/又はデータ・ストレージ905において、整数及び/又は浮動小数点ユニット(総称して、算術論理ユニット(ALU))を含む論理を構成するために、重み及び/又は他のパラメータ情報がロードされるべきである。少なくとも1つの実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づいて、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ905の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ905の任意の部分は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路の内部又は外部にあり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ905は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ905が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901と、コード及び/又はデータ・ストレージ905とは、別個のストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901と、コード及び/又はデータ・ストレージ905とは、同じストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901と、コード及び/又はデータ・ストレージ905とは、部分的に同じストレージ構造であり、部分的に別個のストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901並びにコード及び/又はデータ・ストレージ905の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。
少なくとも1つの実施例では、推論及び/又は訓練論理915は、限定はしないが、訓練及び/又は推論コード(たとえば、グラフ・コード)に少なくとも部分的に基づく、又はそれによって示される論理演算及び/又は数学演算を実施するための、整数及び/又は浮動小数点ユニットを含む、1つ又は複数の算術論理ユニット(「ALU」)910を含み得、その結果が、アクティブ化ストレージ920に記憶されるアクティブ化(たとえば、ニューラル・ネットワーク内の層又はニューロンからの出力値)を作り出し得、これらのアクティブ化は、コード及び/又はデータ・ストレージ901並びに/或いはコード及び/又はデータ・ストレージ905に記憶される入力/出力及び/又は重みパラメータ・データの関数である。少なくとも1つの実施例では、アクティブ化ストレージ920に記憶されるアクティブ化は、命令又は他のコードを実施したことに応答して(1つ又は複数の)ALU910によって実施される線形代数及び又は行列ベースの数学に従って生成され、コード及び/又はデータ・ストレージ905並びに/或いはコード及び/又はデータ・ストレージ901に記憶された重み値は、バイアス値、勾配情報、運動量値などの他の値、或いは他のパラメータ又はハイパーパラメータとともにオペランドとして使用され、これらのいずれか又はすべてが、コード及び/若しくはデータ・ストレージ905又はコード及び/若しくはデータ・ストレージ901、或いはオンチップ又はオフチップの別のストレージに記憶され得る。
少なくとも1つの実施例では、(1つ又は複数の)ALU910は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路内に含まれるが、別の実施例では、(1つ又は複数の)ALU910は、それらを使用するプロセッサ或いは他のハードウェア論理デバイス又は回路(たとえば、コプロセッサ)の外部にあり得る。少なくとも1つの実施例では、ALU910は、プロセッサの実行ユニット内に含まれるか、或いはさもなければ、同じプロセッサ内にあるか又は異なるタイプの異なるプロセッサ(たとえば、中央処理ユニット、グラフィックス処理ユニット、固定機能ユニットなど)間で分散されているかのいずれかであるプロセッサの実行ユニットによってアクセス可能なALUのバンク内に含まれ得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901と、コード及び/又はデータ・ストレージ905と、アクティブ化ストレージ920とは、同じプロセッサ或いは他のハードウェア論理デバイス又は回路上にあり得るが、別の実施例では、それらは、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路中にあるか、或いは、同じプロセッサ又は他のハードウェア論理デバイス若しくは回路と、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路との何らかの組合せ中にあり得る。少なくとも1つの実施例では、アクティブ化ストレージ920の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。さらに、推論及び/又は訓練コードが、プロセッサ或いは他のハードウェア論理又は回路にアクセス可能な他のコードとともに記憶され、プロセッサのフェッチ、復号、スケジューリング、実行、退去(retirement)及び/又は他の論理回路を使用してフェッチ及び/又は処理され得る。
少なくとも1つの実施例では、アクティブ化ストレージ920は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、アクティブ化ストレージ920は、完全に又は部分的に、1つ又は複数のプロセッサ又は他の論理回路内にあるか、又はその外部にあり得る。少なくとも1つの実施例では、アクティブ化ストレージ920が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。少なくとも1つの実施例では、図9Aに示されている推論及び/又は訓練論理915は、GoogleからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU:inference processing unit)、又はIntel CorpからのNervana(登録商標)(たとえば、「Lake Crest」)プロセッサなど、特定用途向け集積回路(「ASIC」)と併せて使用され得る。少なくとも1つの実施例では、図9Aに示されている推論及び/又は訓練論理915は、中央処理ユニット(「CPU」)ハードウェア、グラフィックス処理ユニット(「GPU」)ハードウェア、又は、フィールド・プログラマブル・ゲート・アレイ(「FPGA」)などの他のハードウェアと併せて使用され得る。
図9Bは、少なくとも1つ又は複数の実施例による、推論及び/又は訓練論理915を示す。少なくとも1つの実施例では、推論及び/又は訓練論理915は、限定はしないが、ハードウェア論理を含み得、このハードウェア論理において、算出リソース(computational resource)が専用であるか、或いはさもなければ、ニューラル・ネットワーク内のニューロンの1つ又は複数の層に対応する重み値又は他の情報と併せてのみ使用される。少なくとも1つの実施例では、図9Bに示されている推論及び/又は訓練論理915は、GoogleからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU)、又はIntel CorpからのNervana(登録商標)(たとえば、「Lake Crest」)プロセッサなど、特定用途向け集積回路(ASIC)と併せて使用され得る。少なくとも1つの実施例では、図9Bに示されている推論及び/又は訓練論理915は、中央処理ユニット(CPU)ハードウェア、グラフィックス処理ユニット(GPU)ハードウェア、又は、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの他のハードウェアと併せて使用され得る。少なくとも1つの実施例では、推論及び/又は訓練論理915は、限定はしないが、コード及び/又はデータ・ストレージ901とコード及び/又はデータ・ストレージ905とを含み、それらは、コード(たとえば、グラフ・コード)、重み値、並びに/或いは、バイアス値、勾配情報、運動量値、及び/又は他のパラメータ若しくはハイパーパラメータ情報を含む他の情報を記憶するために使用され得る。図9Bに示されている少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901並びにコード及び/又はデータ・ストレージ905の各々は、それぞれ、算出ハードウェア902及び算出ハードウェア906など、専用算出リソースに関連する。少なくとも1つの実施例では、算出ハードウェア902及び算出ハードウェア906の各々は、線形代数関数などの数学関数を、それぞれコード及び/又はデータ・ストレージ901並びにコード及び/又はデータ・ストレージ905に記憶された情報に対してのみ実施する1つ又は複数のALUを備え、その結果が、アクティブ化ストレージ920に記憶される。
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ901及び905の各々と、対応する算出ハードウェア902及び906とは、それぞれ、ニューラル・ネットワークの異なる層に対応し、それにより、コード及び/又はデータ・ストレージ901と算出ハードウェア902との1つの「ストレージ/算出ペア901/902」から生じたアクティブ化は、ニューラル・ネットワークの概念的組織化をミラーリングするために、コード及び/又はデータ・ストレージ905と算出ハードウェア906との「ストレージ/算出ペア905/906」への入力として提供される。少なくとも1つの実施例では、ストレージ/算出ペア901/902及び905/906の各々は、2つ以上のニューラル・ネットワーク層に対応し得る。少なくとも1つの実施例では、ストレージ算出ペア901/902及び905/906の後に、又はそれらと並列に、追加のストレージ/算出ペア(図示せず)が、推論及び/又は訓練論理915中に含められ得る。
図10は、少なくとも1つの実施例が使用され得る例示的なデータ・センタ1000を示す。少なくとも1つの実施例では、データ・センタ1000は、データ・センタ・インフラストラクチャ層1010と、フレームワーク層1020と、ソフトウェア層1030と、アプリケーション層1040とを含む。
少なくとも1つの実施例では、図10に示されているように、データ・センタ・インフラストラクチャ層1010は、リソース・オーケストレータ1012と、グループ化されたコンピューティング・リソース1014と、ノード・コンピューティング・リソース(「ノードC.R.」:node computing resource)1016(1)~1016(N)とを含み得、ここで、「N」は、任意のすべての正の整数を表す。少なくとも1つの実施例では、ノードC.R.1016(1)~1016(N)は、限定はしないが、任意の数の中央処理ユニット(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、動的読取り専用メモリ)、ストレージ・デバイス(たとえば、ソリッド・ステート又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」)、電力モジュール、及び冷却モジュールなどを含み得る。少なくとも1つの実施例では、ノードC.R.1016(1)~1016(N)の中からの1つ又は複数のノードC.R.は、上述のコンピューティング・リソースのうちの1つ又は複数を有するサーバであり得る。
少なくとも1つの実施例では、グループ化されたコンピューティング・リソース1014は、1つ又は複数のラック(図示せず)内に格納されたノードC.R.の別個のグループ化、又は様々な地理的ロケーション(同じく図示せず)においてデータ・センタ中に格納された多くのラックを含み得る。グループ化されたコンピューティング・リソース1014内のノードC.R.の別個のグループ化は、1つ又は複数のワークロードをサポートするように構成されるか又は割り振られ得る、グループ化されたコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含み得る。少なくとも1つの実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のワークロードをサポートするためのコンピュート・リソースを提供するために1つ又は複数のラック内でグループ化され得る。少なくとも1つの実施例では、1つ又は複数のラックはまた、任意の数の電力モジュール、冷却モジュール、及びネットワーク・スイッチを、任意の組合せで含み得る。
少なくとも1つの実施例では、リソース・オーケストレータ1012は、1つ又は複数のノードC.R.1016(1)~1016(N)及び/又はグループ化されたコンピューティング・リソース1014を構成するか、又はさもなければ、制御し得る。少なくとも1つの実施例では、リソース・オーケストレータ1012は、データ・センタ1000のためのソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含み得る。少なくとも1つの実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はそれらの何らかの組合せを含み得る。
少なくとも1つの実施例では、図10に示されているように、フレームワーク層1020は、ジョブ・スケジューラ1022と、構成マネージャ1024と、リソース・マネージャ1026と、分散型ファイル・システム1028とを含む。少なくとも1つの実施例では、フレームワーク層1020は、ソフトウェア層1030のソフトウェア1032、及び/又はアプリケーション層1040の1つ又は複数のアプリケーション1042をサポートするためのフレームワークを含み得る。少なくとも1つの実施例では、ソフトウェア1032又は(1つ又は複数の)アプリケーション1042は、それぞれ、アマゾン・ウェブ・サービス、Google Cloud、及びMicrosoft Azureによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含み得る。少なくとも1つの実施例では、フレームワーク層1020は、限定はしないが、大規模データ処理(たとえば、「ビック・データ」)のために分散型ファイル・システム1028を利用し得るApache Spark(商標)(以下「Spark」)など、無料でオープンソースのソフトウェア・ウェブ・アプリケーション・フレームワークのタイプであり得る。少なくとも1つの実施例では、ジョブ・スケジューラ1022は、データ・センタ1000の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。少なくとも1つの実施例では、構成マネージャ1024は、ソフトウェア層1030、並びに大規模データ処理をサポートするためのSpark及び分散型ファイル・システム1028を含むフレームワーク層1020など、異なる層を構成することが可能であり得る。少なくとも1つの実施例では、リソース・マネージャ1026は、分散型ファイル・システム1028及びジョブ・スケジューラ1022をサポートするようにマッピングされたか又は割り振られた、クラスタ化された又はグループ化されたコンピューティング・リソースを管理することが可能であり得る。少なくとも1つの実施例では、クラスタ化された又はグループ化されたコンピューティング・リソースは、データ・センタ・インフラストラクチャ層1010において、グループ化されたコンピューティング・リソース1014を含み得る。少なくとも1つの実施例では、リソース・マネージャ1026は、リソース・オーケストレータ1012と協調して、これらのマッピングされた又は割り振られたコンピューティング・リソースを管理し得る。
少なくとも1つの実施例では、ソフトウェア層1030中に含まれるソフトウェア1032は、ノードC.R.1016(1)~1016(N)、グループ化されたコンピューティング・リソース1014、及び/又はフレームワーク層1020の分散型ファイル・システム1028の少なくとも部分によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、限定はしないが、インターネット・ウェブ・ページ検索ソフトウェアと、電子メール・ウイルス・スキャン・ソフトウェアと、データベース・ソフトウェアと、ストリーミング・ビデオ・コンテンツ・ソフトウェアとを含み得る。
少なくとも1つの実施例では、アプリケーション層1040中に含まれる(1つ又は複数の)アプリケーション1042は、ノードC.R.1016(1)~1016(N)、グループ化されたコンピューティング・リソース1014、及び/又はフレームワーク層1020の分散型ファイル・システム1028の少なくとも部分によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、限定はしないが、任意の数のゲノミクス・アプリケーション、コグニティブ・コンピュート、及び、訓練又は推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む、機械学習アプリケーション、又は、1つ又は複数の実施例と併せて使用される他の機械学習アプリケーションを含み得る。
少なくとも1つの実施例では、構成マネージャ1024、リソース・マネージャ1026、及びリソース・オーケストレータ1012のいずれかが、任意の技術的に実現可能な様式で獲得された任意の量及びタイプのデータに基づいて、任意の数及びタイプの自己修正アクションを実装し得る。少なくとも1つの実施例では、自己修正アクションは、データ・センタ1000のデータ・センタ・オペレータを、不良の恐れのある構成を判定し、十分に利用されていない及び/又は性能の低いデータ・センタの部分を場合によっては回避することから解放し得る。
少なくとも1つの実施例では、データ・センタ1000は、1つ又は複数の機械学習モデルを訓練するか、或いは、本明細書で説明される1つ又は複数の実施例による1つ又は複数の機械学習モデルを使用して情報を予測又は推論するためのツール、サービス、ソフトウェア又は他のリソースを含み得る。たとえば、少なくとも1つの実施例では、機械学習モデルは、データ・センタ1000に関して上記で説明されたソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練され得る。少なくとも1つの実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練された機械学習モデルは、本明細書で説明される1つ又は複数の訓練技法を通して計算された重みパラメータを使用することによって、データ・センタ1000に関して上記で説明されたリソースを使用して、情報を推論又は予測するために使用され得る。
少なくとも1つの実施例では、データ・センタは、上記で説明されたリソースを使用して訓練及び/又は推論を実施するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用し得る。その上、上記で説明された1つ又は複数のソフトウェア及び/又はハードウェア・リソースは、画像認識、音声認識、又は他の人工知能サービスなど、ユーザが、情報を訓練するか又は情報の推論を実施することを可能にするためのサービスとして構成され得る。
いくつかの実施例では、推論及び/又は訓練論理915は、上記で記載されたように生成された変換された画像データを使用して推論及び/又は訓練動作を実施するために使用される。
図11は、例示的なコンピュータ・システムを示すブロック図であり、例示的なコンピュータ・システムは、少なくとも1つの実施例による、命令を実行するための実行ユニットを含み得るプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SOC)又はそれらの何らかの組合せをもつシステム1100であり得る。少なくとも1つの実施例では、コンピュータ・システム1100は、限定はしないが、本明細書で説明される実施例などにおいて、本開示による、プロセス・データのためのアルゴリズムを実施するための論理を含む実行ユニットを採用するための、プロセッサ1102などの構成要素を含み得る。少なくとも1つの実施例では、コンピュータ・システム1100は、カリフォルニア州サンタクララのIntel Corporationから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含み得るが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含む)他のシステムも使用され得る。少なくとも1つの実施例では、コンピュータ・システム1100は、ワシントン州レドモンドのMicrosoft Corporationから入手可能なWINDOWS(登録商標)オペレーティング・システムのあるバージョンを実行し得るが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースも使用され得る。
実施例は、ハンドヘルド・デバイス及び組み込みアプリケーションなど、他のデバイスにおいて使用され得る。ハンドヘルド・デバイスのいくつかの実例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」)、及びハンドヘルドPCを含む。少なくとも1つの実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computer)、セット・トップ・ボックス、ネットワーク・ハブ、ワイド・エリア・ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも1つの実施例による1つ又は複数の命令を実施し得る任意の他のシステムを含み得る。
少なくとも1つの実施例では、コンピュータ・システム1100は、限定はしないが、プロセッサ1102を含み得、プロセッサ1102は、限定はしないが、本明細書で説明される技法による機械学習モデル訓練及び/又は推論を実施するための1つ又は複数の実行ユニット1108を含み得る。少なくとも1つの実施例では、コンピュータ・システム1100は、シングル・プロセッサ・デスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム1100は、マルチプロセッサ・システムであり得る。少なくとも1つの実施例では、プロセッサ1102は、限定はしないが、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は、たとえばデジタル信号プロセッサなど、任意の他のプロセッサ・デバイスを含み得る。少なくとも1つの実施例では、プロセッサ1102は、プロセッサ・バス1110に結合され得、プロセッサ・バス1110は、プロセッサ1102とコンピュータ・システム1100中の他の構成要素との間でデータ信号を送信し得る。
少なくとも1つの実施例では、プロセッサ1102は、限定はしないが、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)1104を含み得る。少なくとも1つの実施例では、プロセッサ1102は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有し得る。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ1102の外部に存在し得る。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せをも含み得る。少なくとも1つの実施例では、レジスタ・ファイル1106は、限定はしないが、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタを含む様々なレジスタに、異なるタイプのデータを記憶し得る。
少なくとも1つの実施例では、限定はしないが、整数演算及び浮動小数点演算を実施するための論理を含む実行ユニット1108も、プロセッサ1102中に存在する。少なくとも1つの実施例では、プロセッサ1102は、いくつかのマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」)をも含み得る。少なくとも1つの実施例では、実行ユニット1108は、パック命令セット1109に対処するための論理を含み得る。少なくとも1つの実施例では、パック命令セット1109を、命令を実行するための関連する回路要素とともに汎用プロセッサ1102の命令セットに含めることによって、多くのマルチメディア・アプリケーションによって使用される演算が、汎用プロセッサ1102中のパック・データを使用して実施され得る。1つ又は複数の実施例では、多くのマルチメディア・アプリケーションが、パック・データの演算を実施するためにプロセッサのデータ・バスの全幅を使用することによって加速され、より効率的に実行され得、これは、一度に1つのデータ要素ずつ1つ又は複数の演算を実施するために、プロセッサのデータ・バスにわたってより小さい単位のデータを転送する必要をなくし得る。
少なくとも1つの実施例では、実行ユニット1108はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用され得る。少なくとも1つの実施例では、コンピュータ・システム1100は、限定はしないが、メモリ1120を含み得る。少なくとも1つの実施例では、メモリ1120は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装され得る。少なくとも1つの実施例では、メモリ1120は、プロセッサ1102によって実行され得るデータ信号によって表される(1つ又は複数の)命令1119及び/又はデータ1121を記憶し得る。
少なくとも1つの実施例では、システム論理チップが、プロセッサ・バス1110及びメモリ1120に結合され得る。少なくとも1つの実施例では、システム論理チップは、限定はしないが、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)1116を含み得、プロセッサ1102は、プロセッサ・バス1110を介してMCH1116と通信し得る。少なくとも1つの実施例では、MCH1116は、命令及びデータ・ストレージのための、並びにグラフィックス・コマンド、データ及びテクスチャのストレージのための、高帯域幅メモリ経路1118をメモリ1120に提供し得る。少なくとも1つの実施例では、MCH1116は、プロセッサ1102と、メモリ1120と、コンピュータ・システム1100中の他の構成要素との間でデータ信号をダイレクトし、プロセッサ・バス1110と、メモリ1120と、システムI/O1122との間でデータ信号をブリッジし得る。少なくとも1つの実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供し得る。少なくとも1つの実施例では、MCH1116は、高帯域幅メモリ経路1118を通してメモリ1120に結合され得、グラフィックス/ビデオ・カード1112は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続1114を通してMCH1116に結合され得る。
少なくとも1つの実施例では、コンピュータ・システム1100は、MCH1116をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)1130に結合するためのプロプライエタリ・ハブ・インターフェース・バスである、システムI/O1122を使用し得る。少なくとも1つの実施例では、ICH1130は、ローカルI/Oバスを介していくつかのI/Oデバイスに直接接続を提供し得る。少なくとも1つの実施例では、ローカルI/Oバスは、限定はしないが、周辺機器をメモリ1120、チップセット、及びプロセッサ1102に接続するための高速I/Oバスを含み得る。実例は、限定はしないが、オーディオ・コントローラ1129と、ファームウェア・ハブ(「フラッシュBIOS」)1128と、ワイヤレス・トランシーバ1126と、データ・ストレージ1124と、ユーザ入力及びキーボード・インターフェース1125を含んでいるレガシーI/Oコントローラ1123と、ユニバーサル・シリアル・バス(「USB」)などのシリアル拡張ポート1127と、ネットワーク・コントローラ1134とを含み得る。データ・ストレージ1124は、ハード・ディスク・ドライブ、フロッピー・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備え得る。
少なくとも1つの実施例では、図11は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、図11は、例示的なシステム・オン・チップ(「SoC」)を示し得る。少なくとも1つの実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、コンピュータ・システム1100の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続される。
いくつかの実施例では、推論及び/又は訓練論理915は、上記で説明されたように生成された変換された画像データを使用して推論及び/又は訓練動作を実施するために使用される。推論及び/又は訓練論理915に関する詳細は、図9A及び/又は図9Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理915は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために図11のシステムにおいて使用され得る。
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合(overfitting)を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
図12は、少なくとも1つの実施例による、プロセッサ1210を利用するための電子デバイス1200を示すブロック図である。少なくとも1つの実施例では、電子デバイス1200は、たとえば、限定はしないが、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであり得る。
少なくとも1つの実施例では、システム1200は、限定はしないが、任意の好適な数又は種類の構成要素、周辺機器、モジュール、又はデバイスに通信可能に結合されたプロセッサ1210を含み得る。少なくとも1つの実施例では、プロセッサ1210は、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つの実施例では、図12は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、図12は、例示的なシステム・オン・チップ(「SoC」)を示し得る。少なくとも1つの実施例では、図12に示されているデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、図12の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続される。
少なくとも1つの実施例では、図12は、ディスプレイ1224、タッチ・スクリーン1225、タッチ・パッド1230、ニア・フィールド通信ユニット(「NFC」:Near Field Communication)1245、センサ・ハブ1240、熱センサ1246、エクスプレス・チップセット(「EC」:Express Chipset)1235、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)1238、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)1222、DSP1260、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)又はハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ1220、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network)1250、Bluetoothユニット1252、ワイヤレス・ワイド・エリア・ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network)1256、全地球測位システム(GPS:Global Positioning System)1255、USB3.0カメラなどのカメラ(「USB3.0カメラ」)1254、及び/或いは、たとえばLPDDR3規格において実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)1215を含み得る。これらの構成要素は、各々、任意の好適な様式で実装され得る。
少なくとも1つの実施例では、上記で説明された構成要素を通して、他の構成要素がプロセッサ1210に通信可能に結合され得る。少なくとも1つの実施例では、加速度計1241と、周囲光センサ(「ALS」:Ambient Light Sensor)1242と、コンパス1243と、ジャイロスコープ1244とが、センサ・ハブ1240に通信可能に結合され得る。少なくとも1つの実施例では、熱センサ1239と、ファン1237と、キーボード1246と、タッチ・パッド1230とが、EC1235に通信可能に結合され得る。少なくとも1つの実施例では、スピーカー1263と、ヘッドフォン1264と、マイクロフォン(「mic」)1265とが、オーディオ・ユニット(「オーディオ・コーデック及びクラスdアンプ」)1262に通信可能に結合され得、オーディオ・ユニット1262は、DSP1260に通信可能に結合され得る。少なくとも1つの実施例では、オーディオ・ユニット1264は、たとえば、限定はしないが、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスD増幅器を含み得る。少なくとも1つの実施例では、SIMカード(「SIM」)1257は、WWANユニット1256に通信可能に結合され得る。少なくとも1つの実施例では、WLANユニット1250及びBluetoothユニット1252などの構成要素、並びにWWANユニット1256は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)において実装され得る。
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理915が使用される。推論及び/又は訓練論理915に関する詳細は、図9A及び/又は図9Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理915は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために図12のシステムにおいて使用され得る。
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
図13は、少なくとも1つの実施例による、処理システムのブロック図である。少なくとも1つの実施例では、システム1300は、1つ又は複数のプロセッサ1302と1つ又は複数のグラフィックス・プロセッサ1308とを含み、単一プロセッサ・デスクトップ・システム、マルチプロセッサ・ワークステーション・システム、或いは多数のプロセッサ1302又はプロセッサ・コア1307を有するサーバ・システムであり得る。少なくとも1つの実施例では、システム1300は、モバイル・デバイス、ハンドヘルド・デバイス、又は組み込みデバイスにおいて使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
少なくとも1つの実施例では、システム1300は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディア・コンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、ハンドヘルド・ゲーム・コンソール、又はオンライン・ゲーム・コンソールを含むことができるか、或いはそれらの内部に組み込まれ得る。少なくとも1つの実施例では、システム1300は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス又はモバイル・インターネット・デバイスである。少なくとも1つの実施例では、処理システム1300はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、又は仮想現実デバイスなどのウェアラブル・デバイスを含むことができるか、それらと結合することができるか、又はそれらの内部に組み込まれ得る。少なくとも1つの実施例では、処理システム1300は、1つ又は複数のプロセッサ1302と、1つ又は複数のグラフィックス・プロセッサ1308によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
少なくとも1つの実施例では、1つ又は複数のプロセッサ1302は、各々、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実施する命令を処理するための1つ又は複数のプロセッサ・コア1307を含む。少なくとも1つの実施例では、1つ又は複数のプロセッサ・コア1307の各々は、特定の命令セット1309を処理するように構成される。少なくとも1つの実施例では、命令セット1309は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にし得る。少なくとも1つの実施例では、プロセッサ・コア1307は、各々、異なる命令セット1309を処理し得、命令セット1309は、他の命令セットのエミュレーションを容易にするための命令を含み得る。少なくとも1つの実施例では、プロセッサ・コア1307はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含み得る。
少なくとも1つの実施例では、プロセッサ1302はキャッシュ・メモリ1304を含む。少なくとも1つの実施例では、プロセッサ1302は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有することができる。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ1302の様々な構成要素の間で共有される。少なくとも1つの実施例では、プロセッサ1302はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC:Last Level Cache))(図示せず)を使用し、外部キャッシュは、知られているキャッシュ・コヒーレンシ技法を使用してプロセッサ・コア1307の間で共有され得る。少なくとも1つの実施例では、追加として、レジスタ・ファイル1306がプロセッサ1302中に含まれ、レジスタ・ファイル1306は、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタ)を含み得る。少なくとも1つの実施例では、レジスタ・ファイル1306は、汎用レジスタ又は他のレジスタを含み得る。
少なくとも1つの実施例では、1つ又は複数のプロセッサ1302は、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1302とシステム1300中の他の構成要素との間で送信するために、1つ又は複数のインターフェース・バス1310と結合される。少なくとも1つの実施例では、1つの実施例におけるインターフェース・バス1310は、ダイレクト・メディア・インターフェース(DMI:Direct Media Interface)バスのバージョンなどのプロセッサ・バスであり得る。少なくとも1つの実施例では、インターフェース1310は、DMIバスに限定されず、1つ又は複数の周辺構成要素相互接続バス(たとえば、PCI、PCI Express)、メモリ・バス、又は他のタイプのインターフェース・バスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1302は、統合されたメモリ・コントローラ1316と、プラットフォーム・コントローラ・ハブ1330とを含む。少なくとも1つの実施例では、メモリ・コントローラ1316は、メモリ・デバイスとシステム1300の他の構成要素との間の通信を容易にし、プラットフォーム・コントローラ・ハブ(PCH:platform controller hub)1330は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
少なくとも1つの実施例では、メモリ・デバイス1320は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとして働くのに好適な性能を有する何らかの他のメモリ・デバイスであり得る。少なくとも1つの実施例では、メモリ・デバイス1320は、1つ又は複数のプロセッサ1302がアプリケーション又はプロセスを実行するときの使用のためのデータ1322及び命令1321を記憶するために、システム1300のためのシステム・メモリとして動作することができる。少なくとも1つの実施例では、メモリ・コントローラ1316はまた、随意の外部グラフィックス・プロセッサ1312と結合し、外部グラフィックス・プロセッサ1312は、グラフィックス動作及びメディア動作を実施するために、プロセッサ1302中の1つ又は複数のグラフィックス・プロセッサ1308と通信し得る。少なくとも1つの実施例では、ディスプレイ・デバイス1311は、(1つ又は複数の)プロセッサ1302に接続することができる。少なくとも1つの実施例では、ディスプレイ・デバイス1311は、モバイル電子デバイス又はラップトップ・デバイスの場合のような内部ディスプレイ・デバイス、或いは、ディスプレイ・インターフェース(たとえば、DisplayPortなど)を介して取り付けられた外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも1つの実施例では、ディスプレイ・デバイス1311は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションにおいて使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD:head mounted display)を含むことができる。
少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1330は、周辺機器が高速I/Oバスを介してメモリ・デバイス1320及びプロセッサ1302に接続することを可能にする。少なくとも1つの実施例では、I/O周辺機器は、限定はしないが、オーディオ・コントローラ1346と、ネットワーク・コントローラ1334と、ファームウェア・インターフェース1328と、ワイヤレス・トランシーバ1326と、タッチ・センサ1325と、データ・ストレージ・デバイス1324(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)とを含む。少なくとも1つの実施例では、データ・ストレージ・デバイス1324は、ストレージ・インターフェース(たとえば、SATA)を介して、又は周辺構成要素相互接続バス(たとえば、PCI、PCI Express)などの周辺バスを介して、接続することができる。少なくとも1つの実施例では、タッチ・センサ1325は、タッチ・スクリーン・センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも1つの実施例では、ワイヤレス・トランシーバ1326は、Wi-Fiトランシーバ、Bluetoothトランシーバ、或いは3G、4G、又はロング・ターム・エボリューション(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバであり得る。少なくとも1つの実施例では、ファームウェア・インターフェース1328は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI:unified extensible firmware interface)であり得る。少なくとも1つの実施例では、ネットワーク・コントローラ1334は、ワイヤード・ネットワークへのネットワーク接続を可能にすることができる。少なくとも1つの実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1310と結合する。少なくとも1つの実施例では、オーディオ・コントローラ1346は、マルチチャネル高精細度オーディオ・コントローラである。少なくとも1つの実施例では、システム1300は、レガシー(たとえば、パーソナル・システム2(PS/2:Personal System 2))デバイスをシステムに結合するための随意のレガシーI/Oコントローラ1340を含む。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1330は、キーボードとマウス1343との組合せ、カメラ1344、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1342接続入力デバイスにも接続することができる。
少なくとも1つの実施例では、メモリ・コントローラ1316及びプラットフォーム・コントローラ・ハブ1330のインスタンスが、外部グラフィックス・プロセッサ1312などの慎重な外部グラフィックス・プロセッサに組み込まれ得る。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1330及び/又はメモリ・コントローラ1316は、1つ又は複数のプロセッサ1302の外部にあり得る。たとえば、少なくとも1つの実施例では、システム1300は、外部のメモリ・コントローラ1316とプラットフォーム・コントローラ・ハブ1330とを含むことができ、それらは、(1つ又は複数の)プロセッサ1302と通信しているシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺コントローラ・ハブとして構成され得る。
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理915が使用される。推論及び/又は訓練論理515に関する詳細は、図9A及び/又は図9Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理915の部分又はすべてが、グラフィックス・プロセッサ1312に組み込まれ得る。たとえば、少なくとも1つの実施例では、本明細書で説明される訓練及び/又は推論技法は、グラフィックス・プロセッサにおいて具体化されたALUのうちの1つ又は複数を使用し得る。その上、少なくとも1つの実施例では、本明細書で説明される推論及び/又は訓練動作は、図9A又は図9Bに示されている論理以外の論理を使用して行われ得る。少なくとも1つの実施例では、重みパラメータは、本明細書で説明される1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、使用事例、又は訓練技法を実施するためのグラフィックス・プロセッサのALUを構成する(示されている又は示されていない)オンチップ又はオフチップ・メモリ及び/又はレジスタに記憶され得る。
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
図14は、少なくとも1つの実施例による、1つ又は複数のプロセッサ・コア1402A~1202Nと、統合されたメモリ・コントローラ1414と、統合されたグラフィックス・プロセッサ1408とを有するプロセッサ1400のブロック図である。少なくとも1つの実施例では、プロセッサ1400は、破線ボックスによって表される追加コア1402Nまでの追加コアを含むことができる。少なくとも1つの実施例では、プロセッサ・コア1402A~1002Nの各々は、1つ又は複数の内部キャッシュ・ユニット1404A~1404Nを含む。少なくとも1つの実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュド・ユニット1406へのアクセスを有する。
少なくとも1つの実施例では、内部キャッシュ・ユニット1404A~1404Nと共有キャッシュ・ユニット1406とは、プロセッサ1400内のキャッシュ・メモリ階層を表す。少なくとも1つの実施例では、キャッシュ・メモリ・ユニット1404A~1404Nは、各プロセッサ・コア内の命令及びデータ・キャッシュの少なくとも1つのレベル、及びレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含み得、ここで、外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも1つの実施例では、キャッシュ・コヒーレンシ論理は、様々なキャッシュ・ユニット1406及び1404A~1404N間でコヒーレンシを維持する。
少なくとも1つの実施例では、プロセッサ1400は、1つ又は複数のバス・コントローラ・ユニット1416とシステム・エージェント・コア1410とのセットをも含み得る。少なくとも1つの実施例では、1つ又は複数のバス・コントローラ・ユニット1416は、1つ又は複数のPCI又はPCIエクスプレス・バスなどの周辺バスのセットを管理する。少なくとも1つの実施例では、システム・エージェント・コア1410は、様々なプロセッサ構成要素のための管理機能性を提供する。少なくとも1つの実施例では、システム・エージェント・コア1410は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合されたメモリ・コントローラ1414を含む。
少なくとも1つの実施例では、プロセッサ・コア1402A~1402Nのうちの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも1つの実施例では、システム・エージェント・コア1410は、マルチスレッド処理中にコア1402A~1402Nを協調させ、動作させるための構成要素を含む。少なくとも1つの実施例では、システム・エージェント・コア1410は、追加として、電力制御ユニット(PCU:power control unit)を含み得、PCUは、プロセッサ・コア1402A~1402N及びグラフィックス・プロセッサ1408の1つ又は複数の電力状態を調節するための論理及び構成要素を含む。
少なくとも1つの実施例では、プロセッサ1400は、追加として、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1408を含む。少なくとも1つの実施例では、グラフィックス・プロセッサ1408は、共有キャッシュ・ユニット1406、及び1つ又は複数の統合されたメモリ・コントローラ1414を含むシステム・エージェント・コア1410と結合する。少なくとも1つの実施例では、システム・エージェント・コア1410は、1つ又は複数の結合されたディスプレイへのグラフィックス・プロセッサ出力を駆動するためのディスプレイ・コントローラ1411をも含む。少なくとも1つの実施例では、ディスプレイ・コントローラ1411はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1408と結合された別個のモジュールであり得るか、又はグラフィックス・プロセッサ1408内に組み込まれ得る。
少なくとも1つの実施例では、プロセッサ1400の内部構成要素を結合するために、リング・ベースの相互接続ユニット1412が使用される。少なくとも1つの実施例では、ポイントツーポイント相互接続、切替え相互接続、又は他の技法などの代替相互接続ユニットが使用され得る。少なくとも1つの実施例では、グラフィックス・プロセッサ1408は、I/Oリンク1413を介してリング相互接続1412と結合する。
少なくとも1つの実施例では、I/Oリンク1413は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1418との間の通信を容易にするオン・パッケージI/O相互接続を含む、複数の種類のI/O相互接続のうちの少なくとも1つを表す。少なくとも1つの実施例では、プロセッサ・コア1402A~1402Nの各々と、グラフィックス・プロセッサ1408とは、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1418を使用する。
少なくとも1つの実施例では、プロセッサ・コア1402A~1402Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも1つの実施例では、プロセッサ・コア1402A~1402Nは、命令セット・アーキテクチャ(ISA:instruction set architecture)という観点から異種であり、ここで、プロセッサ・コア1402A~1402Nのうちの1つ又は複数は、共通の命令セットを実行し、プロセッサ・コア1402A~1402Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも1つの実施例では、プロセッサ・コア1402A~1402Nは、マイクロアーキテクチャという観点から異種であり、ここで、電力消費量が比較的高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数の電力コアと結合する。少なくとも1つの実施例では、プロセッサ1400は、1つ又は複数のチップ上に、又はSoC集積回路として実装され得る。
いくつかの実施例では、推論及び/又は訓練論理915は、(たとえば、RGB-IRカメラによって生成され、次いで、ライティング条件に基づいて処理された)変換された画像データを使用して推論及び/又は訓練動作を実施するために使用される。推論及び/又は訓練論理915に関する詳細は、図9A及び/又は図9Bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理915の部分又はすべてが、プロセッサ1400に組み込まれ得る。たとえば、少なくとも1つの実施例では、本明細書で説明される訓練及び/又は推論技法は、グラフィックス・プロセッサ112、(1つ又は複数の)グラフィックス・コア1402A~1402N、又は図14中の他の構成要素において具体化されたALUのうちの1つ又は複数を使用し得る。その上、少なくとも1つの実施例では、本明細書で説明される推論及び/又は訓練動作は、図9A又は図9Bに示されている論理以外の論理を使用して行われ得る。少なくとも1つの実施例では、重みパラメータは、本明細書で説明される1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、使用事例、又は訓練技法を実施するためのグラフィックス・プロセッサのALUを構成する(示されている又は示されていない)オンチップ又はオフチップ・メモリ及び/又はレジスタに記憶され得る。
そのような構成要素は、ネットワーク訓練プロセスにおける障害事例を模倣する合成データを生成するために使用され得、これは、過剰適合を回避するために合成データの量を制限しながらネットワークの性能を改善するのを助けることができる。
他の変形形態は、本開示の範囲内にある。したがって、開示される技法は、様々な修正及び代替構築が可能であるが、それらのいくつかの例示的な実施例が図面に示され、上記で詳細に説明された。しかしながら、特定の1つ又は複数の開示された形態に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲において定義されるように、開示の趣旨及び範囲に入るすべての修正形態、代替構築、及び等価物を網羅することを意図していることが理解されるべきである。
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「含む、備える(comprising)」、「有する(having)」、「含む(including)」、「含んでいる(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「限定はしないが、~を含む(including, but not limited to,)」を意味する)と解釈されるべきである。「接続される」という用語は、修飾されず、物理的接続を指しているとき、何か介在するものがある場合でも、部分的に又は完全に中に含まれているか、取り付けられるか、又は互いに接合されるものとして解釈されるべきである。本明細書で値の範囲を詳述することは、本明細書に別段の記載のない限り、及び各別個の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に入る各別個の値を個々に参照する簡潔な方法として働くことを単に意図しているにすぎない。「セット」(たとえば、「項目のセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がないか又は否定されない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がないか又は否定されない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すとは限らず、サブセットと、対応するセットとは、等しくなり得る。
「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つの項目であるが、明示的に、又は文脈によってのいずれかでそのように示されているとき、それよりも多いことがある。さらに、別段の記載がないか又はさもなければ文脈から明らかでない限り、「~に基づいて」という言い回しは、「少なくとも部分的に~に基づいて」を意味し、「~のみに基づいて」を意味しない。
本明細書で説明されるプロセスの動作は、本明細書に別段の記載がないか又はさもなければ文脈によって明確に否定されない限り、任意の好適な順序で実施され得る。少なくとも1つの実施例では、本明細書で説明されるプロセス(又はその変形形態及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実施され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行するコード(たとえば、実行可能命令、1つ又は複数のコンピュータ・プログラム、又は1つ又は複数のアプリケーション)として実装される。少なくとも1つの実施例では、コードは、たとえば、1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形態で、コンピュータ可読記憶媒体に記憶される。少なくとも1つの実施例では、コンピュータ可読記憶媒体は、一時的信号(たとえば、伝搬する一時的な電気又は電磁送信)を除外するが、一時的信号のトランシーバ内の非一時的データ・ストレージ回路要素(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的コンピュータ可読記憶媒体である。少なくとも1つの実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的コンピュータ可読記憶媒体のセットに記憶され、この記憶媒体は、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書で説明される動作を実施させる実行可能命令を記憶している(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的コンピュータ可読記憶媒体のセットは、少なくとも1つの実施例では、複数の非一時的コンピュータ可読記憶媒体を備え、複数の非一時的コンピュータ可読記憶媒体の個々の非一時的記憶媒体のうちの1つ又は複数は、コードのすべてがないが、複数の非一時的コンピュータ可読記憶媒体は、集合的にコードのすべてを記憶している。少なくとも1つの実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的コンピュータ可読記憶媒体は命令を記憶し、メイン中央処理ユニット(「CPU」)は命令のいくつかを実行し、グラフィックス処理ユニット(「GPU」)は他の命令を実行する。少なくとも1つの実施例では、コンピュータ・システムの異なる構成要素は、別個のプロセッサを有し、異なるプロセッサが命令の異なるサブセットを実行する。
したがって、少なくとも1つの実施例では、コンピュータ・システムは、本明細書で説明されるプロセスの動作を単独で又は集合的に実施する1つ又は複数のサービスを実装するように構成され、そのようなコンピュータ・システムは、動作の実施を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも1つの実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、分散型コンピュータ・システムが本明細書で説明される動作を実施するように、及び単一のデバイスがすべての動作を実施しないように、異なるやり方で動作する複数のデバイスを備える分散型コンピュータ・システムである。
本明細書で提供されるあらゆる実例、又は例示的な言葉(たとえば、「など、などの(such as)」)の使用は、本開示の実施例をより明らかにすることのみを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
本明細書で引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用され得る。これらの用語は、互いに同義語として意図されていないことがあることが理解されるべきである。むしろ、特定の実例では、「接続される」又は「結合される」は、2つ又はそれ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用され得る。「結合される」はまた、2つ又はそれ以上の要素が直接互いに接触していないが、それでもなお互いに連動又は対話することを意味し得る。
別段の具体的な記載がない限り、明細書全体を通して、「処理する(processing)」、「算出する(computing)」、「計算する(calculating)」、又は「決定する(determining)」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータを、コンピューティング・システムのメモリ、レジスタ又は他のそのような情報ストレージ、送信、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるように操作及び/又は変換する、コンピュータ又はコンピューティング・システム、或いは同様の電子コンピューティング・デバイスのアクション及び/又はプロセスを指すことが諒解され得る。
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶され得る他の電子データに変換する任意のデバイス、又はデバイスの一部分を指し得る。非限定的な実例として、「プロセッサ」は、CPU、GPU、DPU、又はハードウェア・アクセラレータであり得る。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備え得る。本明細書で使用される「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実施するソフトウェア及び/又はハードウェア・エンティティを含み得る。また、各プロセスは、命令を直列で又は並列で、連続的に又は断続的に行うための複数のプロセスを指し得る。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化し得、方法がシステムと考えられ得る場合に限り、本明細書において交換可能に使用される。
本明細書では、アナログ・データ又はデジタル・データを取得すること、獲得すること、受信すること、或いはそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及し得る。アナログ・データ及びデジタル・データを取得すること、獲得すること、受信すること、又は入力することは、関数コール、又はアプリケーション・プログラミング・インターフェースへのコールのパラメータとしてデータを受信することによってなど、様々なやり方で実現され得る。いくつかの実装形態では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、直列又は並列インターフェースを介してデータを転送することによって実現され得る。別の実装形態では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、提供するエンティティから獲得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現され得る。アナログ・データ又はデジタル・データを提供すること、出力すること、送信すること、送出すること、又は提示することにも言及し得る。様々な実例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送出する、又は提示するプロセスは、関数コールの入力又は出力パラメータ、アプリケーション・プログラミング・インターフェース又はプロセス間通信機構のパラメータとしてデータを転送することによって実現され得る。
上記の説明は、説明された技法の例示的な実装形態について述べているが、他のアーキテクチャが、説明された機能性を実装するために使用され得、本開示の範囲内にあることが意図される。さらに、説明を目的として、責任の具体的な分散が上記で定義されたが、様々な機能及び責任は、状況に応じて異なるやり方で分散及び分割され得る。
さらに、主題は、構造的特徴及び/又は方法論的行為に特有の言語で説明されたが、添付の特許請求の範囲で特許請求される主題は、説明された特有の特徴又は行為に必ずしも限定されるとは限らないことが理解されるべきである。むしろ、特有の特徴及び行為は、特許請求の範囲を実装する例示的な形態として開示される。
前の詳細な説明のいくつかの部分は、コンピュータ・メモリ内のデータ・ビットに対する動作のアルゴリズム及び記号表現に関して提示された。これらのアルゴリズム説明及び表現は、データ処理技術の当業者によって、彼らのワークの内容を他の当業者に最も効果的に伝達するために使用されるやり方である。アルゴリズムは、ここで、及び概して、所望の結果につながる動作の自己矛盾のないシーケンスであると考えられる。動作は、物理的な分量の物理的操作を必要とするものである。通常、必ずしもそうとは限らないが、これらの分量は、記憶され、組み合わせられ、比較され、さもなければ、操作されることが可能な、電気信号又は磁気信号の形態をとる。時々、主に一般的な用法という理由で、ビット、値、要素、シンボル、文字、用語、数などとしてこれらの信号を指すことは好都合であることが判明している。
しかしながら、これら及び同様の用語のすべては、適切な物理的な分量に関連付けられるべきであり、これらの分量に適用される好都合なラベルであるにすぎないことを念頭に置かれたい。本開示は、コンピュータ・システム、又は同様の電子コンピューティング・デバイスのアクション及びプロセスを指すことがあり、コンピュータ・システム、又は同様の電子コンピューティング・デバイスは、コンピュータ・システムのレジスタ及びメモリ内の物理的な(電子的な)分量として表されるデータを操作し、それを、コンピュータ・システム・メモリ又はレジスタ又は他のそのような情報ストレージ・システム内の物理的な分量として同様に表される他のデータに変換する。
本開示はまた、本明細書の動作を実施するための装置に関する。この装置は、意図された目的のために特別に構築され得るか、或いは、それは、コンピュータに記憶されたコンピュータ・プログラムによって選択的にアクティブ化又は再構成される汎用コンピュータを含むことができる。そのようなコンピュータ・プログラムは、限定はしないが、コンピュータ・システム・バスに各々結合される、フロッピー・ディスク、光ディスク、CD-ROM、及び磁気光ディスクを含む任意のタイプのディスク、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM:random access memory)、EPROM、EEPROM、磁気又は光カード、或いは電子命令を記憶するのに好適な任意のタイプの媒体など、コンピュータ可読記憶媒体に記憶され得る。
本明細書で提示されるアルゴリズム及びディスプレイは、特定のコンピュータ又は他の装置に本質的に関係しない。様々な汎用システムが、本明細書の教示によるプログラムとともに使用され得るか、又は、方法を実施するためのより特殊な装置を構築することが好都合であると判明することがある。様々なこれらのシステムのための構造は、以下の説明に記載されているように現れることになる。さらに、本開示は、特定のプログラミング言語に関して説明されない。本明細書で説明される本開示の教示を実装するために、様々なプログラミング言語が使用され得ることが諒解されよう。
本開示は、本開示に従ってプロセスを実施するようにコンピュータ・システム(又は他の電子デバイス)をプログラムするために使用され得る、命令を記憶した機械可読媒体を含むことができる、コンピュータ・プログラム製品、又はソフトウェアとして提供され得る。機械可読媒体は、機械(たとえば、コンピュータ)によって可読な形式で情報を記憶するための機構を含む。いくつかの実施例では、機械可読(たとえば、非一時的コンピュータ可読)媒体は、読取り専用メモリ(「ROM」)、ランダム・アクセス・メモリ(「RAM」)、磁気ディスク・ストレージ媒体、光記憶媒体、フラッシュ・メモリ構成要素など、機械(たとえば、コンピュータ)可読記憶媒体を含む。
上記の仕様では、本開示の実施例が、それらの特定の例示的な実施例に関して説明された。以下の特許請求の範囲に記載されている本開示の実施例のより広い趣旨及び範囲から逸脱することなく、様々な修正が、それらに対して行われ得ることが明らかであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味と見なされるべきである。
Claims (21)
- 赤外線値と可視光線値とを含む画像データを受信し、
前記画像データについてのシーン検出値であって、前記赤外線値と前記可視光線値との間の比較に基づくシーン検出値を算出し、
前記シーン検出値に基づいて、前記画像データに適用するための赤外線補正の量を制御する1つ又は複数の分量を決定し、
前記1つ又は複数の分量に基づいて前記画像データを変換する
1つ又は複数の処理ユニット
を備える、プロセッサ。 - 前記画像データが、赤色、青色、緑色、及び赤外線(RGB-IR)のためのピクセル・センサを含む画像センサの生画像データを含み、前記赤外線値が、赤外線ピクセル値を含み、前記可視光線値が、赤色ピクセル値、青色ピクセル値、及び緑色ピクセル値を含む、請求項1に記載のプロセッサ。
- 前記シーン検出値が、前記画像データ中に存在する前記赤外線値と前記可視光線値との間の関係に基づき、前記画像データに適用するための赤外線補正の量を制御し、前記赤外線補正の量が、前記シーン検出値に対する逆関係を有する、請求項1に記載のプロセッサ。
- 前記シーン検出値が、前記赤外線値の強度と前記可視光線値の強度との間の比を含む、請求項1に記載のプロセッサ。
- 前記可視光線値の前記強度が、緑色ピクセル値の強度に少なくとも部分的に基づいて決定される、請求項4に記載のプロセッサ。
- 前記1つ又は複数の処理ユニットが、
前記赤外線値の強度を表す第1の値であって、前記画像データ中の複数の赤外線ピクセル値の平均を含む第1の値を算出し、
前記可視光線値の強度を表す第2の値であって、前記画像データ中の複数の緑色ピクセル値の平均を含む第2の値を算出し、
前記第1の値及び前記第2の値に基づいて前記シーン検出値を生成する、
請求項1に記載のプロセッサ。 - 前記1つ又は複数の処理ユニットが、前記シーン検出値に基づいて、赤外線減算のための分量、ホワイト・バランスのための分量、色修正のための分量、又は飽和のための分量のうちの少なくとも1つを計算することによって、前記1つ又は複数の分量を決定する、請求項1に記載のプロセッサ。
- 前記1つ又は複数の処理ユニットが、前記1つ又は複数の分量を分量のセットから選択するためのインデックスとして前記シーン検出値を使用することによって、前記1つ又は複数の分量を決定する、請求項1に記載のプロセッサ。
- 前記1つ又は複数の分量が、赤外線減算ファクタを含み、前記1つ又は複数の処理ユニットが、前記シーン検出値に基づいて、
前記赤外線値の前記可視光線値に対する第1の比に基づいて第1のシーン検出値を算出したことに応答して、赤外線に起因する第1の量を前記可視光線値から減算させる第1の赤外線減算ファクタを決定し、
前記赤外線値の前記可視光線値に対する前記第1の比よりも高い、前記赤外線値の前記可視光線値に対する第2の比に基づいて第2のシーン検出値を算出したことに応答して、赤外線に起因する第2の量であって、前記第1の量よりも少ない第2の量を前記可視光線値から減算させる第2の赤外線減算ファクタを決定する
ことによって、前記1つ又は複数の分量を決定する、請求項1に記載のプロセッサ。 - 前記1つ又は複数の分量が、さらに、色補正ファクタ、色飽和ファクタ、又はホワイト・バランス・ファクタのうちの少なくとも1つを含み、前記1つ又は複数の処理ユニットが、前記シーン検出値に基づいて、
前記第1のシーン検出値を算出したことに応答して、第1の色補正ファクタ、第1の色飽和ファクタ、又は、赤外線に起因する前記可視光線値の第1の残りを考慮する第1のホワイト・バランス・ファクタのうちの少なくとも1つを決定し、
前記第2のシーン検出値を算出したことに応答して、第2の色補正ファクタ、第2の色飽和ファクタ、又は、赤外線に起因する前記可視光線値の第2の残りを考慮する第2のホワイト・バランス・ファクタのうちの少なくとも1つを決定する
ことによって、前記1つ又は複数の分量を決定する、請求項9に記載のプロセッサ。 - 前記1つ又は複数の分量が、赤外線減算ファクタを含み、前記1つ又は複数の処理ユニットが、前記シーン検出値に基づいて、シーン検出値を赤外線減算ファクタに関係付けるルックアップ・テーブルを使用してルックアップを実施することによって、前記1つ又は複数の分量を決定する、請求項1に記載のプロセッサ。
- 前記1つ又は複数の処理ユニットが、前記画像データを第1の色モデルから第2の色モデルに変換し、前記第1の色モデルが、赤色成分、緑色成分、及び青色成分を含み、前記第2の色モデルが、ルミナンス成分及びクロミナンス成分を含む、請求項1に記載のプロセッサ。
- 前記1つ又は複数の処理ユニットが、さらに、
入力画像データに基づいて、予測、推定、又は分類のうちの少なくとも1つを出力するように訓練された機械学習モデルを使用して、前記変換された画像データを処理し、
前記変換された画像データの入力に基づいて生成された出力が、前記画像データの入力に基づいて生成された出力の精度よりも高い、
請求項1に記載のプロセッサ。 - 赤外線値と可視光線値とを含む画像データを生成するように構成された1つ又は複数の画像センサと、
前記画像データを受信し、
前記画像データについてのシーン検出値であって、前記赤外線値と前記可視光線値との間の比較に基づくシーン検出値を算出し、
前記シーン検出値に基づいて、前記画像データに適用するための赤外線補正の量を制御する1つ又は複数の分量を決定し、
前記1つ又は複数の分量に基づいて前記画像データを変換する
1つ又は複数の処理ユニットと
を備える、システム。 - 前記変換された画像データを表示するためのディスプレイ・デバイス
をさらに備える、請求項14に記載のシステム。 - 前記1つ又は複数の画像センサが、車両の内部の前記画像データを生成するように構成され、前記ディスプレイ・デバイスが、前記車両の計器パネルに配設される、請求項15に記載のシステム。
- 前記シーン検出値が、前記画像データ中に存在する前記赤外線値と前記可視光線値との間の関係に基づき、前記画像データに適用するための赤外線補正の量を制御し、前記赤外線補正の量が、前記シーン検出値に対する逆関係を有する、請求項14に記載のシステム。
- 前記シーン検出値が、前記赤外線値の強度と前記可視光線値の強度との間の比を含む、請求項14に記載のシステム。
- 前記1つ又は複数の分量が、赤外線減算ファクタを含み、前記1つ又は複数の処理ユニットが、前記シーン検出値に基づいて、
前記赤外線値の前記可視光線値に対する第1の比に基づいて第1のシーン検出値を算出したことに応答して、赤外線に起因する第1の量を前記可視光線値から減算させる第1の赤外線減算ファクタを決定し、
前記赤外線値の前記可視光線値に対する前記第1の比よりも高い、前記赤外線値の前記可視光線値に対する第2の比に基づいて第2のシーン検出値を算出したことに応答して、赤外線に起因する第2の量であって、前記第1の量よりも少ない第2の量を前記可視光線値から減算させる第2の赤外線減算ファクタを決定する
ことによって、前記1つ又は複数の分量を決定する、請求項14に記載のシステム。 - 前記システムが、
自律的若しくは半自律的機械のための制御システム、
自律的若しくは半自律的機械のための知覚システム、
自律的若しくは半自律的機械のためのドライバ監視システム、
自律的若しくは半自律的機械のための乗員監視システム、
シミュレーション動作を実施するためのシステム、
デジタル・ツイン動作を実施するためのシステム、
深層学習動作を実施するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
1つ若しくは複数の仮想機械(VM)を組み込んだシステム、
少なくとも部分的にデータ・センタにおいて実装されるシステム、
3次元(3D)コンテンツのための共同作成プラットフォームを含むシステム、又は
少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されるシステム
のうちの少なくとも1つに含まれる、請求項14に記載のシステム。 - 赤外線値と可視光線値とを含む画像データを受信するステップと、
前記画像データについてのシーン検出値を算出するステップであって、前記シーン検出値が、前記赤外線値と前記可視光線値との間の比較に基づく、ステップと、
前記シーン検出値に基づいて1つ又は複数の分量を決定するステップであって、前記1つ又は複数の分量が、前記画像データに適用するための赤外線補正の量を制御する、ステップと、
前記1つ又は複数の分量に基づいて前記画像データを変換するステップと
を含む、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/736,648 | 2022-05-04 | ||
US17/736,648 US20230360178A1 (en) | 2022-05-04 | 2022-05-04 | Rgb-ir data processing for autonomous systems and applications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023166308A true JP2023166308A (ja) | 2023-11-21 |
Family
ID=88414348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022090067A Pending JP2023166308A (ja) | 2022-05-04 | 2022-06-02 | 自律システム及びアプリケーションのためのrgb-irデータ処理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230360178A1 (ja) |
JP (1) | JP2023166308A (ja) |
CN (1) | CN117082360A (ja) |
DE (1) | DE102023111240A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20250231048A1 (en) * | 2024-01-16 | 2025-07-17 | GM Global Technology Operations LLC | Tunnel detection system |
DE102024127402A1 (de) * | 2024-09-23 | 2025-07-10 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und vorrichtung zum optischen erfassen eines innenraums eines fahrzeugs, und fahrzeug und computerprogrammprodukt |
CN118967491B (zh) * | 2024-10-21 | 2025-01-28 | 浙江德方数据科技有限公司 | 一种动态渲染调节方法、设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101531709B1 (ko) * | 2008-10-17 | 2015-07-06 | 삼성전자 주식회사 | 고감도 컬러 영상을 제공하기 위한 영상 처리 장치 및 방법 |
JP2010103740A (ja) * | 2008-10-23 | 2010-05-06 | Panasonic Corp | デジタルカメラ |
US10091439B2 (en) * | 2009-06-03 | 2018-10-02 | Flir Systems, Inc. | Imager with array of multiple infrared imaging modules |
US10152811B2 (en) * | 2015-08-27 | 2018-12-11 | Fluke Corporation | Edge enhancement for thermal-visible combined images and cameras |
JP6441771B2 (ja) * | 2015-08-27 | 2018-12-19 | クラリオン株式会社 | 撮像装置 |
US10275855B2 (en) * | 2017-01-11 | 2019-04-30 | Microsoft Technology Licensing, Llc | Image demosaicing for hybrid optical sensor arrays |
JP2018117309A (ja) * | 2017-01-20 | 2018-07-26 | ソニーセミコンダクタソリューションズ株式会社 | 撮像装置、画像処理方法および画像処理システム |
-
2022
- 2022-05-04 US US17/736,648 patent/US20230360178A1/en active Pending
- 2022-06-02 JP JP2022090067A patent/JP2023166308A/ja active Pending
- 2022-09-22 CN CN202211160098.8A patent/CN117082360A/zh active Pending
-
2023
- 2023-05-02 DE DE102023111240.6A patent/DE102023111240A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230360178A1 (en) | 2023-11-09 |
CN117082360A (zh) | 2023-11-17 |
DE102023111240A1 (de) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12141986B2 (en) | Shape fusion for image analysis | |
US20240303836A1 (en) | Multi-object tracking using correlation filters in video analytics applications | |
US20230017261A1 (en) | Domain restriction of neural networks through synthetic data pre-training | |
US11592828B2 (en) | Using neural networks to perform fault detection in autonomous driving applications | |
US20230110027A1 (en) | Visibility distance estimation using deep learning in autonomous machine applications | |
US12332614B2 (en) | Combining rule-based and learned sensor fusion for autonomous systems and applications | |
US12026955B2 (en) | Assigning obstacles to lanes using neural networks for autonomous machine applications | |
US20230177839A1 (en) | Deep learning based operational domain verification using camera-based inputs for autonomous systems and applications | |
US20230360178A1 (en) | Rgb-ir data processing for autonomous systems and applications | |
US20240071064A1 (en) | Object detection using deep learning for real-time streaming applications | |
US20230186593A1 (en) | Glare mitigation using image contrast analysis for autonomous systems and applications | |
US20230130478A1 (en) | Hybrid solution for stereo imaging | |
US20250123605A1 (en) | Combining rule-based and learned sensor fusion for autonomous systems and applications | |
US20250068960A1 (en) | Refining machine learning models to mitigate adversarial attacks in autonomous systems and applications | |
CN118055333A (zh) | 用于自主系统和应用的图像处理管线中的延迟颜色校正 | |
US20240362897A1 (en) | Synthetic data generation using viewpoint augmentation for autonomous systems and applications | |
US12187187B1 (en) | Scene illumination detection for autonomous systems and applications | |
US12373960B2 (en) | Dynamic object detection using LiDAR data for autonomous machine systems and applications | |
US20250142207A1 (en) | Infrared illumination control for visible and infrared imaging modes | |
US20250142208A1 (en) | Selective operating mode switching for visible and infrared imaging | |
US20230260136A1 (en) | Dynamic object detection using lidar data for autonomous machine systems and applications | |
US20250022288A1 (en) | Child presence detection for in-cabin monitoring systems and applications | |
US20250244724A1 (en) | Combining rule-based and learned sensor fusion for autonomous systems and applications | |
US20250173996A1 (en) | Object boundary detection for autonomous systems and applications | |
US20240312187A1 (en) | Feature tracking for autonomous systems and applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20250305 |