JP2022104773A - 拘束デバイスのローカリゼーション - Google Patents
拘束デバイスのローカリゼーション Download PDFInfo
- Publication number
- JP2022104773A JP2022104773A JP2021034426A JP2021034426A JP2022104773A JP 2022104773 A JP2022104773 A JP 2022104773A JP 2021034426 A JP2021034426 A JP 2021034426A JP 2021034426 A JP2021034426 A JP 2021034426A JP 2022104773 A JP2022104773 A JP 2022104773A
- Authority
- JP
- Japan
- Prior art keywords
- seatbelt
- vehicle
- image
- input image
- camera
- 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
- 230000004807 localization Effects 0.000 title abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000006870 function Effects 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 54
- 230000003213 activating effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 40
- 238000013528 artificial neural network Methods 0.000 description 43
- 230000008569 process Effects 0.000 description 34
- 238000004422 calculation algorithm Methods 0.000 description 25
- 238000013527 convolutional neural network Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 238000012986 modification Methods 0.000 description 20
- 230000004048 modification Effects 0.000 description 20
- 238000003860 storage Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000001133 acceleration Effects 0.000 description 13
- 230000033001 locomotion Effects 0.000 description 13
- 238000012549 training Methods 0.000 description 12
- 238000013135 deep learning Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 8
- 230000013016 learning Effects 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 235000019800 disodium phosphate Nutrition 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 241000269400 Sirenidae Species 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000001953 sensory effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004397 blinking Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000035045 associative learning Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 125000000914 phenoxymethylpenicillanyl group Chemical group CC1(S[C@H]2N([C@H]1C(=O)*)C([C@H]2NC(COC2=CC=CC=C2)=O)=O)C 0.000 description 1
- 229920002451 polyvinyl alcohol Polymers 0.000 description 1
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001141 propulsive effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000001020 rhythmical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R22/00—Safety belts or body harnesses in vehicles
- B60R22/48—Control systems, alarms, or interlock systems, for the correct application of the belt or harness
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R22/00—Safety belts or body harnesses in vehicles
- B60R22/48—Control systems, alarms, or interlock systems, for the correct application of the belt or harness
- B60R2022/4808—Sensing means arrangements therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R22/00—Safety belts or body harnesses in vehicles
- B60R22/48—Control systems, alarms, or interlock systems, for the correct application of the belt or harness
- B60R2022/4808—Sensing means arrangements therefor
- B60R2022/485—Sensing means arrangements therefor for sensing belt anchor position, belt orientation, or the like
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R22/00—Safety belts or body harnesses in vehicles
- B60R22/48—Control systems, alarms, or interlock systems, for the correct application of the belt or harness
- B60R2022/4883—Interlock systems
- B60R2022/4891—Interlock systems preventing use of the vehicle when the seatbelt is not fastened
-
- 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
-
- 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/20084—Artificial neural networks [ANN]
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30268—Vehicle interior
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
- Traffic Control Systems (AREA)
Abstract
【課題】拘束デバイス(たとえば、シートベルト)のローカリゼーションに関するシステム及び方法を提供すること。【解決手段】一実施例では、本開示は、シートベルト検出及びモデル化のためのシステム及び方法に関する。車両は、1個又は複数のシートベルトを着用している1人又は複数の乗員によって占有され得る。カメラ又は他のセンサが、1人又は複数の乗員の画像をキャプチャするために、車両内に置かれる。システムは、画像を分析して画像内に示されたシートベルトを検出及びモデル化する。具体的には、本システムは、画像及びシートベルトに対応し得る画像のエリアをスキャンし得る。本システムは、シートベルトに対応し得る画像の候補エリアを構築し、様々な制約に基づいて候補エリアを精緻化し得る。本システムは、シートベルトを指示する精緻化された候補エリアに基づいてモデルを構築し、画像を使用してシートベルトを指示するモデルを視覚化し得る。【選択図】図1
Description
本出願は、2020年8月28日に出願した同時係属米国特許出願第17/005,914号、題名「NEURAL NETWORK BASED DETERMINATION OF GAZE DIRECTION USING SPATIAL MODELS」、2020年8月27日に出願した同時係属米国特許出願第17/004,252号、題名「NEURAL NETWORK BASED FACIAL ANALYSIS USING FACIAL LANDMARKS AND ASSOCIATED CONFIDENCE VALUES」、及び、2020年6月18日に出願した同時係属米国特許出願第16/905,418号、題名「MACHINE LEARNING-BASED SEATBELT DETECTION AND USAGE RECOGNITION USING FIDUCIAL MARKING」の全開示をすべての目的のために参照により組み込む。
乗客又はオペレータを輸送する又は含む自動車並びに他の車両及びマシンは、様々な安全機能、たとえば、シートベルト又は他の拘束デバイス、をしばしば有する。多くの場合、安全性デバイスは、正しく使用されない場合に、効果が少なくなり得る又は無効になることさえある。たとえば、不正確に着用されたシートベルトは、正しく着用されたシートベルトよりも効果が著しく少なくなり得る。様々な試みが、そのような安全デバイスの使用を改善するために行われた。いくつかのデバイスは、特に同タイプのマシンの間の変更形態を考慮すると、困難で高価になり得る、改造型マシンを含む。一般に、車両におけるシートベルトなどの拘束デバイスの正しい使用の検出には、多くの課題があり、その成功は正確さに関して様々である。
少なくとも1個の実施例は、1個又は複数の画像から1個又は複数の拘束デバイスを識別及びモデル化するために使用される処理資源に関する。たとえば、少なくとも1個の実施例は、本明細書に記載の様々な新しい技法による1個又は複数の拘束デバイスの1個又は複数の画像から1個又は複数の拘束デバイスを識別及びモデル化するために使用されるプロセッサ又はコンピュータ・システムに関する。
拘束デバイスのローカリゼーションのための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
本明細書に記載の技法は、車両の乗員がシートベルトを着用しているかどうか、及びそれを適切に着用しているかどうかの検出など、様々な機能を実現するために、シートベルト及び他の拘束デバイスを受動的に検出する方法を提供する。車両にセットされたカメラが、画像をキャプチャし、その画像は、乗員がシートベルトを適切に着用しているかどうかを判定するために、分析される。通常は、車両のシステムは、シートベルトがロック位置にあるかどうかを検出する感覚システムを使用する。しかしながら、感覚システムが欺かれる又は永久に機能しないことがある事例が存在する。加えて、乗員はシートベルトをしているが不正確に着用している(たとえば、シートベルトが、背中の後ろで着用されている)事例が存在する。これに対抗し、交通安全性を向上させるために、本明細書に記載の技法は、車両に搭載されたカメラによってキャプチャされたビデオ/画像を使用して、シートベルトが適切に着用されているかどうかを判定する。本技法は、シートベルト自体又は任意の既存のロッキング感覚システムを物理的に修正する必要なしに、実行される。
より具体的には、システムは、先ず、キャプチャされた画像を分析して、画素がシートベルトの一部であるか背景の一部であるかを分類する。この分類は、シートベルトの一部である可能性が最も高い複数の画素候補の生成をもたらす。シートベルトの一部である画素をより正確に識別するために、本システムは、様々な情報を使用して、シートベルトの一部として識別された画像の誤認を訂正し、またその逆も行う。そのような情報は、以下を含み得る:シートベルトが車両内でどのように構築されるかなどのパラメータ/制約、ロックされたときにシートベルトが伸びるべき方向、シートベルトの物理的属性、及び画素のより正確なセットを構築するために画像をキャプチャしたカメラの構成。画素のより正確なセットを生成するための画素のフィルタリングの後、本システムは、次いで、シートベルトをパラメータ化し、高次多項式曲線を使用してシートベルトの形状をモデル化し、それは、モデル化された形状に関する外れ値である任意の画素をさらに取り除き、前に不正確にフィルタリングで取り除かれた又は閉塞された画素を回収する。最終シートベルト曲線は、乗員の安全性を向上させるために、たとえば、シートベルトが適切に着用されている(たとえば、シートベルトが、ロック位置にあり、乗員の胸を対角線的に横断して着用されている)かどうかを判定するために、使用され得る。
本明細書に記載の技法は、既存の車両システムを修正する必要なしにすべてのタイプの車両において安全機能を向上させるための方法をさらに発展させる。本技法は、車両搭載のシステム及び/又はカメラによってキャプチャされたビデオ/画像に基づいて、車両内のどの乗員が適切にシートベルトを着用しているかを識別することができる。本システムは、運転手が適切にシートベルトを着用しているかどうかを識別するだけではなく、車両内のすべての他の乗員がシートベルトを適切に着用しているかどうかを判定することもできる。本明細書に記載のシステムは、一般乗員車両のシートベルトに適用されるが、本システムはまた、シートベルト、安全装置、又は他のハーネスを必要とする他の分野(たとえば、建設機器、遊園地の乗物、4D映画館の座席)にも適用可能である。本システムは、車両内乗員監視システム(OMS:occupant monitoring system)の構成要素になり得る。
本システムは、ロバストで、様々な種類のカメラ・センサ構成、たとえば、カラー又は赤外線カメラ、通常視界又は魚眼カメラ、に適用可能になり得る。本システムは、様々な光条件、たとえば、微光条件(たとえば、夜間条件)、可変光条件(たとえば、日中条件)、及び/又はその変更形態、においてキャプチャされた画像を操作及び処理することができる。本システムは、本明細書に記載の1個又は複数の技法を介して、新しいローカル平行線パターンを判定し、画像内でマイクロスケールでパターンを検出することができる。本システムは、1個又は複数の汎用グラフィックス処理装置(GPGPU:general-purpose graphics processing unit)を使用する並列演算技法を使用して、ビデオのすべてのフレームのすべてのシートベルトを同時に効率的に判定することができる。本システムは、車両を占める1人又は複数の乗員の安全性を向上させるために、シートベルト及びシートベルト使用のリアルタイム監視を行うことができる。本システムは、画像の任意のパッチの2項分類機能を提供することができ、雑音又は偽陽性シートベルト部分候補を取り除くことができる、様々なアルゴリズムを使用することができる。本システムは、閉塞又は他の障害物を有するシートベルトもローカライズすることができる高次曲線に基づくシートベルト形状モデル化機能を使用し得る。本システムは、サブジェクトに対応するシートベルトをローカライズすることができ、異なるサイズ、形状、及び属性、たとえば、衣類タイプ及び毛髪タイプ、及び/又は他の様々な物理的外観属性、の物理的外観を含む、任意の適切な物理的外観のサブジェクトに適用可能になり得る。
図1を参照すると、図1は、本開示のいくつかの実施例による、シートベルト・ローカリゼーションのためのシステムの一実例である。本明細書に記載のこの及び他の配置は単に例として記載されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、図示されたものに加えて又はそれらの代わりに使用され得、いくつかの要素は、完全に省略され得る。さらに、本明細書に記載の要素の多数は、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサによって実施され得る。
図1は、少なくとも1個の実施例による、シートベルト・ローカリゼーションのためのシステムの実例100を示す。様々な実施例において、シートベルトのローカリゼーションは、1個又は複数の画像(たとえば、車両の運転手席又は乗客席にいる人の画像)に示された1個又は複数のシートベルトの位置、サイズ、形状、向き、及び/又は他の特徴を識別する1個又は複数のプロセスを指す。実例100は、シートベルトのローカリゼーションを示すが、任意の適切なシステムの任意の適切な拘束デバイス部分が、ローカライズされ得る、ということに留意されたい。拘束デバイスは、シートベルト(たとえば、2点式シートベルト、3点式シートベルト、4点式シートベルトなど)、安全ハーネス、又は他の車両安全性デバイスなどのデバイスを含み得る。
シートベルト・ローカライザと称され得る、シートベルト・ローカリゼーションのためのシステムは、ローカル予測器104、グローバル・アセンブラ108、及び形状モデラ116を備え得る。シートベルト・ローカリゼーションのためのシステムの様々なプロセスが、1個又は複数のグラフィックス処理装置(GPU:graphics processing unit)、たとえば、並列処理装置(PPU:parallel processing unit)、によって実行され得る。シートベルト・ローカリゼーションのためのシステムの1個又は複数のプロセスは、任意の適切な処理システム又はユニット(たとえば、GPU、PPU、中央処理装置(CPU))によって、並びに順次、並行、及び/又はその変更形態を含む、任意の適切な方式で、実行され得る。ローカル予測器104、グローバル・アセンブラ108、及び形状モデラ116は、車両に搭載された1個又は複数のコンピュータ・システムのソフトウェア・モジュールでもよい。いくつかの実例において、ローカル予測器104、グローバル・アセンブラ108、及び形状モデラ116は、1個又は複数のネットワークを介してアクセス可能なコンピュータ・サーバで実行するソフトウェア・プログラムであり、そこで、入力画像102は、1個又は複数のネットワークを介して車両の1個又は複数の計算システムからコンピュータ・サーバに提供され、そして、入力画像102の1個又は複数のシートベルトのシートベルト・ローカリゼーションの結果が、1個又は複数のネットワークを介して車両に提供し返される。シートベルト・ローカリゼーションのためのシステムへの入力は、入力画像102を含み得る。一実施例において、入力画像102は、拘束デバイス、たとえば、シートベルト、を有する車両内のエンティティの画像である。図1を参照すると、入力画像102は、車両の運転手席に座ったシートベルトを着用している人の画像でもよい。シートベルト・ローカリゼーションのためのシステムは、入力画像102のシートベルトの位置及び向きを判定することができ、入力画像102のシートベルトが正しく適用されているかをさらに判定することができる。
入力画像102は、1個又は複数の画像キャプチャ・デバイス、たとえば、カメラ又は他のデバイス、からキャプチャされた画像でもよい。入力画像102は、1個又は複数のカメラからキャプチャされたビデオのフレームでもよい。入力画像102は、車両の内部に配置された1個又は複数のカメラからキャプチャされ得る。いくつかの実施例において、入力画像102は、監視システム、携帯電話、ドローン、ハンドヘルド撮像デバイス、又は車両から別れた他の撮像システムを介するなどして、車両の外部にある1個又は複数のカメラからキャプチャされ、車両及び車両の乗員の画像をキャプチャすることができる。いくつかの実例において、入力画像は、1個又は複数の色特性の調整、アップサンプリング若しくはダウンサンプリング、クロッピング、及び/又はデータの他の処理によってさらに処理される画像キャプチャ・デバイスからキャプチャされたデータである。車両は、車両、たとえば、自律型車両、半自律型車両、マニュアル車両、及び/又はその変更形態、でもよい。一部の実例では、車両は、1個又は複数の拘束デバイスを必要とする娯楽用乗物の車両(たとえば、ジェットコースタ)、建設車両、又は他の車両である。入力画像102は、図13A~13Dに関して説明されるものなどの1個又は複数のカメラからキャプチャされ得る。入力画像102は、車両の乗員の方を向いた車両内のカメラからキャプチャされ得る。入力画像102は、カラー画像、グレースケール画像、白黒画像などでもよい。入力画像102は、異なるFOVを有する1個又は複数のカメラからキャプチャされ得る。入力画像102は、入力画像102のシートベルトと背景との低い対比をもたらし得る、最小限の色対比を有する画像でもよい。入力画像102は、1個又は複数のエンティティ、たとえば、手、腕、衣服、又は他の物体、によって閉塞され得るシートベルトを示し得る。入力画像102は、様々な場所まで移動し得る又は伸ばされ得るシートベルトを示し得る。入力画像102は、直線、又は曲線などの他の不規則な形として位置付けられ得る、シートベルトを示し得る。入力画像102は、物体又は車両移動の結果として、歪められ得る。入力画像102は、サブジェクト、たとえば、車両運転手又は乗客、とサブジェクトに適用された拘束デバイス、たとえば、シートベルト、とを示し得る。いくつかの実例において、入力画像102は、環境、たとえば、建設環境、におけるサブジェクト及び拘束デバイスを示す(たとえば、入力画像102は、安全ハーネスなどの拘束デバイスを有する建設環境におけるサブジェクトを示す)。
入力画像102は、ローカル予測器104によって受信又は他の方法で取得され得る。一部の実例では、入力画像102は、処理するための入力画像102の状態を整えるための1個又は複数の前処理動作によって、処理され、前処理動作は、動作、たとえば、特徴/コントラスト強調、雑音除去、モルフォロジ演算、サイズ変更/スケール変更、及び/又はその変更形態、を含み得る。ローカル予測器104は、実行されると入力画像をスキャンする及びシートベルトの一部である入力画像のエリアを予測する、実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。入力画像102は、画素のコレクションを含み得、そこで、入力画像102に示されたシートベルトは、複数の画素を占有し得る。任意の所与の画素について、ローカル予測器104は、画素及びそれの近隣画素からの情報を使用して、画素がシートベルトに属するか又は背景画素であるかを予測することができる。シートベルトの一部であると判定された画素は、入力画像102の前景の一部として識別され得、そして、シートベルトの一部ではないと判定された画素は、入力画像102の背景の一部として識別され得る。ローカル予測器104は、拘束デバイス(たとえば、シートベルト)を描いた又は他の方法で表す入力画像102のエリアを判定するために、入力画像102のエリアの初期分類を実行することができる。エリアは、画素、画素のコレクションなどを含み得る。エリアは、互いにごく近接し得る画素のグループ分けを含み得る。エリアは、画像の画素の連続群又は領域を含み得る。
ローカル予測器104は、それぞれ、シートベルト又はシートベルト以外を表す、値1によって指示され得る真の結果、又は値0によって指示され得る偽の結果を生成し得る。様々な実施例において、入力画像102は、雑音を含み、そして、分類結果は、最初は正しいことも正しくないこともある。一実施例において、4つの可能な事例があるが、同様に付加的事例が存在し得る:(1)画素はシートベルトの一部であり、ローカル予測器104は1を返す、真陽性、(2)画素はシートベルトの一部ではなく、ローカル予測器は1を返す、偽陽性、(3)画素はシートベルトの一部であり、ローカル予測器104は0を返す、偽陰性、及び(4)画素はシートベルトの一部ではなく、ローカル予測器104は0を返す、真陰性。ローカル予測器104は、高精度よりも高再現率を優先し得る(たとえば、ローカル予測器104は、増加する偽陽性の可能性にかかわらず、偽陰性を減らし得る)。
ローカル予測器104は、付加的情報のために近くの近隣画素を使用し得る。入力画像102の第y行及び第x列に位置する、入力画像102の画素は、p(x,y)、又は任意のその変更形態で示され得る。入力画像102の次元は、W幅、H高さ、及びKチャネル(たとえば、カラー画像ではK=3(又は4)、及びグレー画像ではK=1)として示され得る。p(x,y)及びその近隣画素は、セットSを構成し得、以下の方程式によって示され得るが、任意のその変更形態が、使用され得る:
S={pij|fdist(pij,p)≦ε,0<i≦W,0<j≦H}(1)、
そこで、fdistは、画素距離関数(たとえば、L1距離)でもよく、そして、εは、近隣の境界線を決定する閾値でもよい。
S={pij|fdist(pij,p)≦ε,0<i≦W,0<j≦H}(1)、
そこで、fdistは、画素距離関数(たとえば、L1距離)でもよく、そして、εは、近隣の境界線を決定する閾値でもよい。
一部の実例では、パッチとも称される、近隣形状の候補は、円形、長方形、正方形、及び/又はその変更形態を含む。一実施例では、ローカル予測器104は、近隣形状としてそれの中心に位置する候補画素を有する正方形を使用する。正方形の長さは、L=2k+1によって示され得、そこで、k=1,2,3…であり、そこで、セットSは、以下の方程式を介して簡略化され得るが、任意のその変更形態が、使用され得る:
S={pij|0≦|i-y|≦k,0≦|j-x|≦k} (2)。
S={pij|0≦|i-y|≦k,0≦|j-x|≦k} (2)。
ローカル予測器104は、様々な方向に沿って等方性チェックを行い得る。ローカル予測器104は、以下の式によって示され得る、二値予測結果ベクトル
を出力し得るが、任意のその変更形態が、使用され得る:
、そこで、Dは、予測するための方向の総数でもよく、θ0、θ1、…θD-1は、[0,π)の範囲内の等間隔の角度でもよく、
は、以下の式によって定義され得るが、任意のその変更形態が、使用され得る:
。
を出力し得るが、任意のその変更形態が、使用され得る:
、そこで、Dは、予測するための方向の総数でもよく、θ0、θ1、…θD-1は、[0,π)の範囲内の等間隔の角度でもよく、
は、以下の式によって定義され得るが、任意のその変更形態が、使用され得る:
。
fcriteria(x,y,θi)によって示され得る、基準関数は、入力画像102及び指定された方向θi内の任意の画素p(x,y)について、この方向におけるp及びそれの近隣Sを使用して生成されたパッチ画像が、シートベルト構成要素であるか否かを判定することができる。fpredictor(x,y)によって示され得るローカル予測器は、
のスケール関数として定義され得、以下の式によって示され得るが、任意のその変更形態が、使用され得る:
、そこで、
は、異なる方向に割り当てられた重みでもよい。重みは、1個又は複数のエンティティによって着用されるときにシートベルト形状の分布の統計的分析から判定され得る。図2及び図3は、少なくとも1個の実施例による、1個又は複数の目標方向(たとえば、パッチ方向)において1個又は複数の近隣画素を有する1個又は複数の画素のシートベルトの及びシートベルトではないパッチの実例を示す。
のスケール関数として定義され得、以下の式によって示され得るが、任意のその変更形態が、使用され得る:
、そこで、
は、異なる方向に割り当てられた重みでもよい。重みは、1個又は複数のエンティティによって着用されるときにシートベルト形状の分布の統計的分析から判定され得る。図2及び図3は、少なくとも1個の実施例による、1個又は複数の目標方向(たとえば、パッチ方向)において1個又は複数の近隣画素を有する1個又は複数の画素のシートベルトの及びシートベルトではないパッチの実例を示す。
図2を参照すると、実例200は、(a)左上に示された、シートベルト・パッチ・サンプル、(b)右上に示された、拡張されたシートベルト・パッチ、(c)左下に示された、シートベルト・パッチ投影曲線、及び(d)右下に示された、平滑化されたシートベルト曲線を含み得る。図2を参照すると、(c)シートベルト・パッチ投影曲線は、(b)拡張されたシートベルト・パッチに対応し得、(c)のx軸は、(b)のx又は水平値に対応し得、そして、(c)のy軸は、(b)の垂直画素列の画素強度の値に対応し得る。特定の画素列の画素強度は、画素強度レベルとも称される、画素列の画素のすべての画素強度の和でもよい。特定の画素の画素強度又は画素強度レベルは、画素の輝度に対応し得る(たとえば、高い強度を有する画素は、白っぽく見え得、低い強度を有する画素は、黒っぽく見え得る)。図2を参照すると、(d)平滑化されたシートベルト曲線は、(c)シートベルト・パッチ投影曲線の平滑化されたバージョンでもよい。たとえば、図2を参照すると、(c)シートベルト・パッチ投影曲線及び(d)平滑化されたシートベルト曲線の2つのピークは、(b)拡張されたシートベルト・パッチの、シートベルトの境界線に対応し得る、白い垂線に対応する。
図3を参照すると、実例300は、(e)左上に示されたシートベルトではないパッチ・サンプル、(f)右上に示された拡張されたシートベルトではないパッチ、(g)左下に示されたシートベルトではないパッチ投影曲線、及び、(h)右下に示された平滑化されたシートベルトではない曲線を含み得る。図3を参照すると、(g)シートベルトではないパッチ投影曲線は、(f)拡張されたシートベルトではないパッチに対応し得、そこで、(g)のx軸は、(f)のx又は水平値に対応し得、(g)のy軸は、(f)の垂直画素列の画素強度の値に対応し得る。特定の画素列の画素強度は、画素列の画素のすべての画素強度の和でもよい。図3を参照すると、(h)平滑化されたシートベルトではない曲線は、(f)拡張されたシートベルトではないパッチの平滑化されたバージョンでもよい。
図2及び図3は、潜在的シートベルトの及びシートベルトではないパッチ/曲線の実例を示し、シートベルトの及び/又はシートベルトではないパッチ/曲線は、その任意の変更形態でもよい、ということに留意されたい。シートベルト・パッチ・サンプルは、1個又は複数のシートベルトを示し得る画像(たとえば、入力画像102)の任意のパッチ又は領域に対応し得、対応するシートベルト・パッチ曲線は、シートベルト・パッチ・サンプルに少なくとも部分的に基づく任意の適切な形状を有し得る。
様々な情報は、図2及び図3から決定され得る。一事例において、シートベルトの端は、パッチのスケールに基づいてパッチ方向において2つのほぼ平行な線を生成し得る(たとえば、パッチが十分小さい場合)ので、構造化された端が観測され、そこでは、カメラ-シートベルトの相対的幾何学的関係に基づいて、構造化された端は、端の間の距離範囲、及びその変更形態に関してパラメータ化され得る。
シートベルトは、様々な色、たとえば、黒、灰色、黄褐色など、であり得るので、強度及び/又は飽和領域もまた、観測され得、そこでは、画素値は、様々な環境の変化(たとえば、照明)とともに変化し得るが、シートベルト画素値は、いくつかの強度範囲を有し得る(たとえば、シートベルト画素は、純白であることはめったにない)。
一実施例において、シートベルトは、ベルトに沿って類似の質感を有し得るので、表面の滑らかさもまた、観測され、そこで、様々なシートベルト領域内の画素は、滑らかさに関して限られた多様性を有し得る。
一実施例において、fstructure、fintensity、及びfsmoothnessは、以下のように二値関数として示される:
fcriteria(x,y,θi)=fstructure(x,y,θi)∩fintensity(x,y,θi)∩fsmoothness(x,y,θi) (6)。
構造基準fstructureは、画素の近隣内のシートベルト境界線の平行な端をどのように表すかとして定義され得る、タスクに関して特徴付けられ得る。ローカル予測器104は、候補シートベルト端を識別及びローカライズし、候補シートベルト端を使用してシートベルトの画素をシートベルトではない画素(たとえば、雑音)と区別することができる。
fcriteria(x,y,θi)=fstructure(x,y,θi)∩fintensity(x,y,θi)∩fsmoothness(x,y,θi) (6)。
構造基準fstructureは、画素の近隣内のシートベルト境界線の平行な端をどのように表すかとして定義され得る、タスクに関して特徴付けられ得る。ローカル予測器104は、候補シートベルト端を識別及びローカライズし、候補シートベルト端を使用してシートベルトの画素をシートベルトではない画素(たとえば、雑音)と区別することができる。
シートベルト・パッチは、1個又は複数の方向を有し得、各パッチについて、ローカル予測器104は、パッチ方向に沿ってシートベルト境界線が存在するかどうかを判定することができる。パッチ方向は、範囲[0,π)内のDカテゴリへと等間隔にされ得(たとえば、式(3)において示されるように)、そこでは、シートベルトがどのように向けられているかにかかわらず、それの向きは、カテゴリのうちの1個に分類され得る。所与のパッチ方向θiについて、ローカル予測器104は、θiと平行なシートベルト端があるかどうかを確認することができる。ローカル予測器104は、任意の適切な方向におけるシートベルト・パッチ、及びシートベルトの方向に沿ったシートベルトの境界線を判定することができる。
図4は、少なくとも1個の実施例による、シートベルト・パッチ・ジオメトリの実例400を示す。シートベルト・パッチ・ジオメトリは、特定のシートベルト・パッチの1個又は複数のジオメトリ又は幾何学的特徴、たとえば、パッチ方向、角度、向き、サイズ、境界線など、を指し得る。図4は、潜在的シートベルト・パッチ・ジオメトリの実例を示し、シートベルト・パッチ・ジオメトリは、任意のその変更形態でもよい、ということに留意されたい。シートベルト・パッチは、1個又は複数のシートベルトを示し得る画像(たとえば、入力画像102)の任意のパッチ又は領域に対応し得、対応するシートベルト・パッチ・ジオメトリは、シートベルト・パッチの形状又はジオメトリに少なくとも部分的に基づく任意の適切なジオメトリを有し得る。図4を参照すると、画素p(x,y)の周りに生成されたパッチ内の各画素(i,j)について、画素(x’,y’)からの値は、以下の式を使用して、画像(たとえば、入力画像102)から取得され得るが、任意のその変更形態が、使用され得る:
、そこで、i=1、2、…、L及びj=1、2、…、Lである。
、そこで、i=1、2、…、L及びj=1、2、…、Lである。
ローカル予測器104は、1個又は複数の式、たとえば、前述のような式(7)、を使用してシートベルトのパッチ及び/又はシートベルトではないパッチを取得し得る。ローカル予測器104は、パッチが構造化された端のペアを有するか否かを判定することができる。パッチの端は、各行内の同位置における突然の画素強度の変化を有する位置合わせした画素行の1個又は複数の連続でもよい。その変化は、画素強度インクリメント又はデクリメントでもよい。突然の変化のインデックスは、線が位置し得る場所になり得る。一部の実例では、2つの平行線の一事例において、パッチは、構造化された端を有する。
ローカル予測器104は、2次元(2D)勾配演算を使用して突然の強度変化の大きさをキャプチャし、パッチ方向に沿って累積してシートベルト端を背景雑音と区別することができる。fpatch(x,y,θ,j)は、投影後の結果として生じた曲線として定義され得、以下の式によって示され得るが、任意のその変更形態が、使用され得る:
、そこで、jは、可変インデックス作成パッチ列でもよく、iは、行インデックスでもよく、f(x,y,θ,i,j)は、パッチ強度関数でもよい。図2の(c)及び図3の(g)は、曲線の実例を示し得る。
、そこで、jは、可変インデックス作成パッチ列でもよく、iは、行インデックスでもよく、f(x,y,θ,i,j)は、パッチ強度関数でもよい。図2の(c)及び図3の(g)は、曲線の実例を示し得る。
曲線は、様々な摂動、たとえば、照明の変化、並びに他の雑音の影響を受け得る。ローカル予測器104は、サビツキ-ゴーレイ(Savtzsky-Golay)アルゴリズムなどのアルゴリズムを適用して、さらなる処理のために曲線を滑らかにすることができる。f’patch(x,y,θ,j)は、フィルタ処理された曲線として定義され得、以下の式によって示され得るが、任意のその変更形態が、使用され得る:
、そこで、tは、畳み込み係数の数でもよく、Ckは、それぞれの係数でもよい。図2の(d)及び図3の(h)は、フィルタ処理された曲線の実例を示し得る。
、そこで、tは、畳み込み係数の数でもよく、Ckは、それぞれの係数でもよい。図2の(d)及び図3の(h)は、フィルタ処理された曲線の実例を示し得る。
構造化された端を有するシートベルト・パッチは、図5に示されたものに類似するフィルタ処理された曲線パターンを有し得るが、シートベルトではないパッチは、ランダム曲線を有し得る。ローカル予測器104は、曲線から様々な特性を抽出してシートベルト・パターン、たとえば、端の間の距離dedges及びピーク値差dpeaks、を認識することができる。一実施例では、fstructure(x,y,θi)は、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
。ローカル予測器104は、任意の所与の曲線の2つのピーク値(たとえば、peakleft及びpeakright)と、それらのそれぞれのインデックス(たとえば、idxleft及びidxright)とを識別してdedges及びdpeaksを判定することができる。
。ローカル予測器104は、任意の所与の曲線の2つのピーク値(たとえば、peakleft及びpeakright)と、それらのそれぞれのインデックス(たとえば、idxleft及びidxright)とを識別してdedges及びdpeaksを判定することができる。
図5は、少なくとも1個の実施例による、構造化された端のローカリゼーションの実例500を示す。実例500は、シートベルト・パッチ曲線からのシートベルトの端の判定、たとえば、図2及び図3に示されているもの、を示す。図5は、シートベルト・パッチ曲線からの構造化された端の潜在的ローカリゼーションの一実例を示しており、シートベルト・パッチ曲線からの構造化された端のローカリゼーションは、任意のその変更形態でもよい、ということに留意されたい。シートベルト・パッチ曲線は、1個又は複数のシートベルトを示し得る、画像(たとえば、入力画像102)の任意の適切なパッチ又は領域に対応し得、シートベルト・パッチ曲線からの構造化された端の対応するローカリゼーションは、シートベルト・パッチ曲線に少なくとも部分的に基づく任意の適切な端又は特徴を示し得る。
図5を参照すると、特定の曲線内の2つの最も大きい点は、最も高いピークの近くに位置し得るので、その選択は、不正確なことがあるため、ローカル予測器104は、特定の曲線内の2つの最も大きい点を選択することもしないこともある。図5を参照すると、曲線が、2つの部分に切り込む場合、2つのピークは、分離され得、両方のピークは、各点を横切って最大点を見つけることによってローカル予測器104によって取得され得る。1次元の2クラスの分類タスクが、idxoptimalによって示された、最適な切り取り場所の発見を介して、使用され得る。クラス間距離は、以下の式によって定義され得る、idxoptimalに関して最大化され得るが、任意のその変更形態が、使用され得る:
、そこでは、一実施例では、
、
、
、
、及び
である。
、そこでは、一実施例では、
、
、
、
、及び
である。
ローカル予測器104は、idxoptimalを少なくとも決定することによって、非線形最適化タスクを解決することができる。ローカル予測器104は、[1,idxoptimal]及び(idxoptimal,L]において最大要素の場所を捜すことによってidxleft及びidxrightを計算することができる。それらのそれぞれの関数値は、peakleft及びpeakrightになり得る。
シートベルト画素強度は、様々な環境照明に応答して異なる及び変化することが可能である。環境照明は、車両の車内灯などの様々な光源を含み得る。ローカル予測器104は、画素の強度分布を学習することができる。δmin及びδmaxは、シートベルト・ローカリゼーション事例の下界及び上界としてセットされ得る。fpatch(x,y,θ)の加重強度は、dintensityとして示され得、以下の式を介して計算され得るが、任意のその変更形態が、使用され得る:
、そこでは、
は、シートベルト・パッチ内の各画素に割り当てられたガウス配分重量になり得る。
、そこでは、
は、シートベルト・パッチ内の各画素に割り当てられたガウス配分重量になり得る。
様々な実施例では、シートベルト表面は、最小限の強度変化を有して滑らかである。強度分散が、滑らかさを評価するための基準として関心領域ω内で使用され得る。一実施例では、dsmoothnessは、以下の方によって定義されるが、任意のその変更形態が、使用され得る:
。
一実施例では、fsmoothnessは、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
。
。
一実施例では、fsmoothnessは、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
。
ローカル予測器104は、入力画像102において示されたシートベルトに潜在的に対応し得る入力画像102の1個又は複数の画素の1個又は複数の指示を含み得る、画素候補106を出力し得る。画素候補106は、画素候補106から不的確な候補を取り除く及び適格のシートベルト画素候補を選択的にまとめることができる、グローバル・アセンブラ108に入力され得る。
グローバル・アセンブラ108は、実行されると、形状及び位置などのシートベルト属性に基づいて偽陽性を取り除くことによって陽性シートベルト部分候補をまとめる、実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。グローバル・アセンブラ108は、1セットの制約を画素候補106に適用して画素候補106を絞り込んで適格の画素候補114を取得することができる。1セットの制約は、入力画像102をキャプチャしたカメラのパラメータ(たとえば、カメラ・レンズ寸法、焦点、主点、歪みパラメータ)、標準シートベルト寸法範囲(たとえば、幅及び/又は長さの範囲)、標準シートベルト特徴及び/又はパラメータ(たとえば、標準シートベルト色、材料)、車両パラメータ(たとえば、車両レイアウト、車両構成要素)などの特徴を含み得る。そのセットの制約を固守しない又は他の方法でそれに従わない画素候補106の画素候補が、取り除かれて適格の画素候補114を決定し得る(たとえば、標準シートベルト幅範囲より有意に長い幅を有するシートベルトを示す画素候補は、取り除かれ得る)ように、グローバル・アセンブラ108は、1セットの制約を画素候補106に適用することができる。
グローバル・アセンブラ108は、自動位置マスク生成110及び幅範囲推定112を含み得る。自動位置マスク生成110は、1個又は複数のシートベルトを示す入力画像102などの画像の1個又は複数の画像マスクを生成する実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。幅範囲推定112は、画像、たとえば、入力画像102、に示されたシートベルトの幅の範囲を推定する、実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。
一実施例では、3点シートベルトについて、シートベルトは、点と称される3つのアンカーを有する:Atrによって示された右上のアンカー、Ablによって示された左下のアンカー、及び、Abrによって示された右下のアンカー。右上のアンカー並びに右下のアンカーから来るベルトは、バックルを使用して左下のアンカーに挿入され得る。右上のアンカー及び右下のアンカーに関連する本明細書に記載の技法は、右下のアンカーに、左下のアンカーに、又は任意の適切な拘束デバイスのアンカーに同様に適用され得る。一部の実施例では、シートベルトのアンカーは、動かせる。すなわち、たとえば、3点シートベルトの1個又は複数のシートベルト・アンカーは、様々な方向に調整され、回転され、及び/又は肩書を有し得る。一部の実施例では、1個又は複数のシートベルト・アンカーは、特定の角度への傾きを介して調整される。一部の事例では、シートベルト・アンカーは、旅客車両の側部ドアに取り付けられた取付板に接続される。シートベルト・アンカーは、取付板に対して移動され得る(たとえば、上に、下に、左に、又は右にスライドさせることによって)。
スプリングを使用してベルトを締めるためのアンカー内部の一定力が存在し得、固定カメラを介して観測されるシートベルト画素の位置分布は、制限されたエリア内に存在し得る。一部の実例では、グローバル・アセンブラ108は、シートベルト画素の位置分布を学習する様々なマシン学習アルゴリズムを含む。様々な実施例では、シートベルトは、一般に、車両システム(たとえば、娯楽システム、運転手補助システム)内のハンドル又はその他の上に現れない。一部の実例では、画像フレーム内のシートベルト幅の範囲は、シートベルト候補をフィルタリングするためにグローバル・アセンブラ108によって推定される。グローバル・アセンブラ108は、フレーム内の複数のシートベルトを処理し得る。一部の実施例では、グローバル・アセンブラ108の1個又は複数のプロセスが、アルゴリズム・レベル並列化を使用して、並行して実行される。アルゴリズム・レベル並列化は、並行して実行され得るプロセス(たとえば、シートベルト・ローカリゼーションのためのシステムによって実行されるプロセス又は動作)が、先ず識別され、次いで並行に実行される、プロセスを指し得る。グローバル・アセンブラ108は、様々な最適化技法、たとえば、画像ダウンサンプリング、画素ステップ調整、角度サンプリングなど、を実行し得る。
自動位置マスク生成110は、画像、たとえば、入力画像102、内のシートベルトの位置の可視指示でもよい、シートベルト位置マスクを生成することができる。自動位置マスク生成110は、カメラ、たとえば、入力画像102をキャプチャしたカメラ、の1個又は複数の態様を分析することができる1個又は複数のソフトウェア・プログラムを含み得る。自動位置マスク生成110は、カメラの様々な構成を分析してシートベルト位置マスク、たとえば、カメラのキャリブレーション、カメラ姿勢、カメラ・レンズのタイプなど、を生成することができる。自動位置マスク生成110は、カメラ・キャリブレーション、カメラ・ローカリゼーション、及び3D再構成を実行することができる1個又は複数の構成要素を含み得る。カメラ・キャリブレーションは、カメラ(たとえば、赤外線(IR)カメラ、RGB(red-green-blue)カメラ、カラー・カメラなど)のキャリブレーションを行うことができる及びカメラの内部属性、たとえば、焦点レンズ、主点、又は歪みのないパラメータ、を処理することによってカメラからの画像を処理することができる1個又は複数の関数及び/又はプロセスを含み得る。カメラ・ローカリゼーションは、所定のワールド座標系においてカメラの6つの自由度(6DOF)位置情報を提供することができる1個又は複数の関数及び/又はプロセスを含み得る。3D再構成は、エンコードされたタグの使用を介して3D空間において任意の点の座標を判定することができる1個又は複数の関数及び/又はプロセスを含み得る。カメラ・ローカリゼーションは、車両座標系に関するカメラの6DOF姿勢を判定することができる、及びカメラ座標系内のシートベルト・アンカーの座標又は場所を取得することができる、プロセスを含み得る。カメラ・ローカリゼーションは、車両の1個又は複数のモデルを使用してシートベルト・アンカーの座標又は場所を判定することができる。3D再構成は、シートベルト・アンカーとカメラ座標系との間の相対的関係を計算することができるプロセスを含み得る。
一実施例において、カメラ(たとえば、入力画像102をキャプチャするカメラ)は、本質的パラメータK、及び付帯的パラメータR及びTでキャリブレーションされる。シートベルトは、Atr(Xtr,Ytr,Ztr)及びAbl(Xbl,Ybl,Zbl)によって示されたアンカーを有し得る。自動位置マスク生成110は、画像座標系内の、アンカーの場所と称される、アンカーの対応座標を取得することができる。一実施例では、アンカーの画像の場所は、Ai(xi,yi)、i=tr、blによって示されるが、そこでは、以下の式の任意のその変更形態が、使用され得る:
、
そこで、sは倍率でもよく、iはtr、blに対応し得る。
、
そこで、sは倍率でもよく、iはtr、blに対応し得る。
シートベルトの位置分布の大多数は、長い軸の端として2つのアンカーを使用する楕円に入り得る。一実施例では、長軸の距離は、dmajorによって示され、以下の式によって定義され得るが、任意のその変更形態が、使用され得る:
。
。
自動位置マスク生成110は、様々なシートベルトを締めるプロセスを分析することができる1個又は複数のマシン学習アルゴリズムを介して短軸距離を取得することができる。一実施例では、短軸距離は、dminorによって示され、セット位置マスクは、Slocationによって示され、それは、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
。点は、楕円ローカル座標系において定義され得、そこで、原点0ellipseは、画像座標
を有するセグメントAblAtrの中点にあってもよく、x軸は、AblからAtrまでの点でもよく、y軸は、x軸の90度の時計回り回転を介して取得され得る。画像座標内の対応する座標は、(xglobal,yglobal)によって示すことができ、そこでは:
、但し、
である。自動位置マスク生成110は、画像座標において位置マスクSlocationを取得することができる。マスクの外のローカル予測器104によって生成されたシートベルト画素候補は、省略され得る。
。点は、楕円ローカル座標系において定義され得、そこで、原点0ellipseは、画像座標
を有するセグメントAblAtrの中点にあってもよく、x軸は、AblからAtrまでの点でもよく、y軸は、x軸の90度の時計回り回転を介して取得され得る。画像座標内の対応する座標は、(xglobal,yglobal)によって示すことができ、そこでは:
、但し、
である。自動位置マスク生成110は、画像座標において位置マスクSlocationを取得することができる。マスクの外のローカル予測器104によって生成されたシートベルト画素候補は、省略され得る。
幅範囲推定112は、画像(たとえば、入力画像102)のシートベルトの、幅サイズとも称される、幅の範囲を推定することができる。シートベルト標準幅は、46~49mmの範囲(たとえば、5.08cm(2インチ))になり得、そこで、ほとんどのベルトは、概して、約47mm、又は任意の適切な範囲の任意の適切な値になり得る。画像のシートベルトの幅は、シートベルトの姿勢に依存し得る。ベルトが、カメラ撮像センサと平行である又はカメラの方へ伸ばされた場合、シートベルト幅は、増え得る。ベルト表面が、画像センサと直角を成す又はカメラからさらに離れる場合、シートベルト幅は、減り得る。シートベルト幅の下限τminは、1個又は複数の感度要件に少なくとも部分的に基づいて、セットされ得る。一実施例では、τminは、雑音パターンを含むことを避けるために、τmaxの半分にセットされる。
一実施例において、2つのアンカーの中央にあるシートベルト点は、Ps(Xs,Ys,Zs)によって示され、シートベルト標準幅は、dstdによって示され、そこで、Spairによって示される、別の端の可能な対応点は、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
。
。
普通の乗客の腕の距離は、darmによって示され得、そこでは、乗客がベルトを握り、カメラに向けてベルトを押すとき、最大幅τmaxが生じ得る。一実施例では、新しいシートベルト点座標セットは、Snewによって示され、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
。
。
幅範囲推定112は、新しい点の場所のエンベロープを抽出し、幅の上界τmaxを推定することができる。シートベルト幅が、構造化された端の閾値を決定するために使用され得、τmaxより大きいことを必要とされ得るパッチ・サイズLを決定するために使用され得る。グローバル・アセンブラ108は、単一画像内の複数のシートベルトの位置を決定するために使用され得る。グローバル・アセンブラ108は、各シートベルト領域の位置マスクを生成することができる。
グローバル・アセンブラ108は、1個又は複数のグラフィックス処理装置(GPU)を使用して画像(たとえば、入力画像102)を処理することができる。グローバル・アセンブラ108は、1個又は複数のGPUの複数のスレッドを使用して複数のパッチを同時に処理することができる。グローバル・アセンブラ108は、1個又は複数のGPUの作業ストリームを使用してシートベルト領域を並行して処理することができる。グローバル・アセンブラ108は、1個又は複数のGPUの1個又は複数のスレッドを並行して又は同時に使用して画像の1個又は複数のエリアを処理することができる。グローバル・アセンブラ108は、複数のフレームの処理を1個又は複数のGPUの異なる計算ユニットに割り当ててフレーム・レベル加速を達成することができる。グローバル・アセンブラ108は、入力画像をダウンサンプリングして入力画像の処理における計算資源の使用を減らすことができる。グローバル・アセンブラ108は、他の方法で又は画像の画素ごとの横断に加えて、複数の異なる方向で画像(たとえば、入力画像102)を処理することができる。グローバル・アセンブラ108は、パッチ方向角度の離散化を調整して計算資源の使用を減らすことができる。グローバル・アセンブラ108は、入力画像102に示された1個又は複数のシートベルトに対応する入力画像102の画素を含み得る、適格の画素候補114をまとめる又は他の方法で決定することができる。
適格の画素候補114は、各シートベルト関心領域のシートベルトの画素候補のセットを含み得る。適格の画素候補114はまた、候補画素、画素候補、候補、及び/又はその変更形態として参照され得る。形状モデラ116は、実行されるとグローバル・アセンブラ108からの出力(たとえば、適格の画素候補114)に基づいて幾何学的シートベルト形状モデルを構築し、入力画像上にモデルをマップする、実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。形状モデラ116は、適格の画素候補114から雑音候補を取り除き、シートベルト形状をモデル化することができる。
一実施例では、ローカル予測器104からの候補のセットは、Spredictorによって示され、位置マスクは、Slocationによって示され、そこで、Spredictor内の形状モデル化Smodelingの候補は、以下の式によって定義されるが、任意のその変更形態が、使用され得る:
Smodeling={(x,y)|(x,y)∈Slocation&&fpredictor(x,y)≧γpre} (22)、
そこで、γpreは、パッチ方向の総数に比例し得る、応答数を予測するための閾値になり得る。
Smodeling={(x,y)|(x,y)∈Slocation&&fpredictor(x,y)≧γpre} (22)、
そこで、γpreは、パッチ方向の総数に比例し得る、応答数を予測するための閾値になり得る。
形状モデラ116は、高次多項式曲線を介してシートベルトの形状をモデル化することができる。高次多項式曲線は、2より高い次数を有する多項式曲線を指し得る。形状モデラ116は、任意の適切な次数の多項式曲線を介してシートベルトの形状をモデル化することができる。多項式曲線の次数は、シートベルトの形状の複雑性に対応し得、より高い次数はより複雑な形状(たとえば、よく多くの曲線、振動などを有する形状)に対応し得る。一部の実例では、乗客は、運転しながらシートベルトを押しのけることができ、それは、x軸に沿った様々な場所、複数のy値、をもたらし、これは、適用不可能な多項式モデルをもたらし得る。一実施例では、形状モデラ116は、以下の式を介してグローバル画像座標をアンカー・ローカル座標系に変換するが、任意のその変更形態が、使用され得る:
。
。
図6は、少なくとも1個の実施例による、候補マップの実例600を示す。実例600は、グローバル画像座標からアンカー・ローカル座標系への変換の後の候補マップを示し得る。図6は、潜在的候補及び候補への曲線適合の一実例を示し、候補及び適合曲線は、任意のその変更形態でもよい、ということに留意されたい。潜在的候補は、1個又は複数のシートベルトを示し得る画像(たとえば、入力画像102)の画素の任意の適切な画素又は領域に対応し得、潜在的候補への対応する曲線適合は、任意の適切なシートベルト形状を指示し得る。
実例600は、シートベルトの候補画素とシートベルトの形状に対応する候補画素への曲線(たとえば、高次多項式曲線)適合とを示し得る。様々なユーザが、様々な形状にシートベルトを伸ばし得るので、シートベルトの形状をモデル化するための高次多項式回帰が、使用され得る。一実施例では、観測された点は、(xi,yi)によって示され、そこで、yiは以下の式に対応するが、任意のその変更形態が、使用され得る:
、そこで、β0、β1、β2…βNは、係数でもよく、Nは、多項式次数でもよい。多項式曲線が、シートベルトの形状に対応する又はそれを近似するように、多項式曲線の係数が、決定され得る。
、そこで、β0、β1、β2…βNは、係数でもよく、Nは、多項式次数でもよい。多項式曲線が、シートベルトの形状に対応する又はそれを近似するように、多項式曲線の係数が、決定され得る。
形状モデラ116は、雑音を減らすための様々なアルゴリズム、たとえば、M推定器サンプル・コンセンサス(MSAC:M-estimator sample consensus)アルゴリズム、を使用することができる。形状モデラ116は、視覚化のためにグローバル画像面に曲線を変換することができる。形状モデラ116は、シートベルトの形状及び/又は場所を少なくとも近似するシートベルトを示す画像(たとえば、入力画像102)からシートベルト形状のモデルを決定することができる。形状モデラ116はさらに、画像(たとえば、入力画像102)において識別されたシートベルトが正しく適用されているかを判定することができる。一部の実例では、形状モデラ116は、モデルに基づいてシートベルトが正しく適用されているかを推測するようにトレーニングされた1個又は複数のニューラル・ネットワークにシートベルトのモデルを提供する。1個又は複数のニューラル・ネットワークは、形状モデラ116から取得されたシートベルト・モデルに基づいて、シートベルトが正しく適用されているかを判定し、形状モデラ116にシートベルトが正しく適用されているかどうかの指示を提供することができる。形状モデラ116は、モデル化された入力画像118として、モデル化されたシートベルト形状並びにモデル化されたシートベルト形状に対応するシートベルトが正しく適用されているかを視覚化することができる。一実施例では、モデル化された入力画像118は、視覚化されたシートベルト形状のモデルを有する入力画像102である。モデル化された入力画像118は、1個又は複数の視覚化を介して指示された入力画像102のシートベルトの位置及び形状、たとえば、シートベルトの視覚境界など、を有する入力画像102を示し得る。モデル化された入力画像118はさらに、シートベルトが着用された及び/又は正しく適用されたかを指示し得る1個又は複数の視覚化を含み得る。
たとえば、図1を参照すると、モデル化された入力画像118は、シートベルトの視覚境界と、シートベルトが着用され正しく適用されているという、「シートベルト:オン」によって示された、指示とを含む。シートベルトが着用され正しく適用されているという指示は、様々な方法、たとえば、「シートベルト:オン」、「シートベルト:適用済み」など、で表示され得る。シートベルトは着用されているが不正確に適用されているという指示は、様々な方法、たとえば、「シートベルト:オフ」、「シートベルト:不正確」など、で表示され得る。シートベルトは着用されていないという指示は、様々な方法、たとえば、「シートベルト:オフ」、「シートベルト:不適用」など、で表示され得る。正しく適用されている又は適切な場所にあるシートベルトは、ロック位置にあり、乗員の胸を対角線的に横断して着用されたシートベルトでもよい。不正確に適用された又は不適切な場所にあるシートベルトは、正しく適用されていない又は適切な場所にないシートベルトでもよい。
シートベルト・ローカリゼーションのためのシステムは、車両の1個又は複数のシステムにシートベルトのモデル並びにシートベルトが正しく適用されているかの指示を提供することができる。一部の実例では、シートベルト・ローカリゼーションのためのシステムは、1個又は複数のコンピュータ・サーバを実行しており、そこでは、シートベルトのモデルとシートベルトが正しく適用されているかの指示とが、1個又は複数の通信ネットワークを介して、車両の1個又は複数のシステムに提供される。車両のシステムは、シートベルトのモデル及びシートベルトが正しく適用されているかの指示の取得の結果として様々なアクションを実行することができる。車両のシステムは、シートベルトが着用されていない又は着用されているが不正確に適用されている場合に、警告指示を提供することができる。警告指示は、警告音などの音声指示、警告灯などの可視指示、警告振動などの物理的指示などでもよい。車両のシステムは、シートベルトが着用されていない又は着用されているが不正確に適用されている場合に、車両の1個又は複数の推進システムに車両の推進を中止又は停止させることができる。車両のシステムは、シートベルトが着用されていない又は着用されているが不正確に適用されている場合に、様々なシステム(たとえば、安全監視システム)に1個又は複数のネットワークを介して指示を提供することができる。
シートベルト・ローカリゼーションのためのシステムは、受動システムでもよい。本システムは、シートベルトの1個又は複数の画像から車両の乗員のシートベルトを検出するために車両の既存のシステムへの修正を必要としないことが可能である。本システムは、車両の1個又は複数のセンサからの入力或いは車両の1個又は複数のシステムへの修正を必要としない検出を指し得る、シートベルトの受動的検出が可能である(たとえば、本システムは、車両のシートベルトが識別マークを有することを必要としなくてもよい)。シートベルト・ローカリゼーションのためのシステムは、複数の画像から決定されたモデルを結合して最終シートベルト・モデルを決定することができる。一部の実例では、シートベルト・ローカリゼーションのためのシステムは、乗員及び対応するシートベルトを示す1セットの画像から1セットのシートベルトをローカライズ及びモデル化し、そこで、システムは、モデルを結合して乗員の対応するシートベルトの最終シートベルト・モデルを決定する。シートベルト・ローカリゼーションのためのシステムは、最終シートベルト・モデルの信頼性が高められるように、決定されたシートベルト・モデルを共に結合又は他の方法で増強して最終シートベルト・モデルを決定する。シートベルト・ローカリゼーションのためのシステムは、シートベルト・モデル間の類似性及び差を評価して最終シートベルト・モデルを決定することによって、シートベルト・モデルを結合することができる。シートベルト・ローカリゼーションのためのシステムは、1個又は複数の画像から行われた推定を結合して最終シートベルト・モデルを決定し、最終シートベルト・モデルの信頼性を高めることができる。
一部の実例では、シートベルト・ローカリゼーションのためのシステムが、1個又は複数のアクティブなシートベルト検出システムと併せて使用され得る。アクティブなシートベルト検出システムは、車両のシートベルトを直接検出及びローカライズするために使用される車両の1個又は複数のシステムを指し得る。アクティブなシートベルト検出システムは、シートベルトを検出及びローカライズするための様々なセンサ、たとえば、圧力センサ、重量センサ、運動センサ、又は他のセンサ、の使用を含み得、車両の既存のシステムへの修正を必要とし得る(たとえば、アクティブなシートベルト検出システムは、車両のシートベルトが識別マークを有することを必要とし得る)。シートベルト・ローカリゼーションのためのシステムは、シートベルトをローカライズし、1個又は複数のアクティブなシートベルト検出システムからの入力を使用して、ローカライズされたシートベルトが正しく決定されたことを検証することができる。別法として、本システムは、1個又は複数のアクティブなシートベルト検出システムからローカライズされたシートベルトの1個又は複数のモデルを受信し、1個又は複数の画像を介してシートベルトをローカライズして、ローカライズされたシートベルトの1個又は複数のモデルが正しく決定されたことを検証することができる。本システムは、1個又は複数の車両システム、たとえば、アクティブなシートベルト検出システム、から入力を受信又は取得してシートベルトをローカライズすることができる。たとえば、シートベルト・ローカリゼーションのためのシステムは、車両のセンサ、たとえば、圧力センサ・データ、重量センサ・データ、運動センサ・データなど、からデータを取得し、前述の技法に関してデータを使用して車両内のシートベルトの画像からシートベルトをローカライズ及びモデル化する。センサ・データは、画素候補をフィルタリングするための制約を決定するために使用され得る(たとえば、センサ・データは、センサ・データによって提供された情報に準拠しない画素候補の不的確な候補を取り除くために使用され得る、シートベルトの場所又は位置を示す情報を提供することができる)。
シートベルト・ローカリゼーションのためのシステムは、パッチ・マッチング及びパッチ精緻化プロセス、たとえば、前述のもの及び/又は様々なアルゴリズム、たとえば、パッチ・マッチ・アルゴリズム、混合分解能パッチ・マッチング(MRPM:mixed-resolution patch-matching)アルゴリズム、及び/又はその変更形態、を介してシートベルトをローカライズする及びモデル化することができる。パッチ・マッチング・プロセスは、1個又は複数のニューラル・ネットワークへの入力として画像パッチを取得してパッチ特性を抽出し、パッチの類似点を評価することができる。シートベルト・ローカリゼーションのためのシステムは、シートベルト・パッチの特性、特徴、動きなどを定義する又は他の方法で提供され、様々なパッチ・マッチング・プロセスを使用して推定シートベルト・パッチを構築し、推定シートベルト・パッチを精緻化して最終シートベルト・モデルを決定することができる。パッチ・マッチングは、空間及び/又は時間次元上でもよい。
図7は、少なくとも1個の実施例による、複数のシートベルト・ローカリゼーションの実例700を示す。入力画像702、シートベルト・ローカライザ704、及びモデル化された入力画像706は、図1~6に関して説明されたものに従い得る。シートベルト・ローカライザ704は、実行されると1個又は複数の画像から1個又は複数の拘束デバイスをモデル化する実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。シートベルト・ローカライザ704は、入力画像702を取得又は他の方法で受信し、拘束デバイス(たとえば、シートベルト)を表す入力画像702のエリアの初期分類を実行し、1セットの制約を入力画像702のエリアに適用して初期分類を精緻化して精緻化された分類を取得し、精緻化された分類に少なくとも部分的に基づいて拘束デバイスのモデルを生成することができる。シートベルト・ローカライザ704は、画像(たとえば、入力画像702)に示された複数のシートベルトを識別及びモデル化することができる。
図7を参照すると、入力画像702は、車両の内部にある1個又は複数のカメラからキャプチャされた画像でもよい。入力画像702は、左側に示され得る、乗客、及び、右側に示され得る、運転手を含む、車両の乗員を示し得る。入力画像702は、シートベルトを正しく着用している乗客と、シートベルトを正しく着用している運転手とを示し得る。シートベルト・ローカライザ704は、入力画像702を分析して入力画像702のシートベルトを識別及びモデル化することができる。シートベルト・ローカライザ704は、モデル化された入力画像706を介して、モデル化されたシートベルトを視覚化することができる。
図7を参照すると、モデル化された入力画像706は、シートベルト及び指示されたシートベルト状況(たとえば、向き/場所)を有する入力画像702を示し得る。シートベルト・ローカライザ704は、入力画像702に示された乗客に関して、初期分類を実行し、初期分類を精緻化して精緻化された分類を取得し、乗客のシートベルトの精緻化された分類に基づいてモデルを生成し、そして、入力画像702に示された運転手に関して、第2の初期分類を実行し、第2の初期分類を精緻化して第2の精緻化された分類を取得し、運転手のシートベルトの第2の精緻化された分類に基づいて第2のモデルを生成することができる。
モデル化された入力画像706は、乗客のシートベルトの状況を指示する対応ラベルを有する乗客のシートベルトの第1の可視指示を含み得る。図7を参照すると、モデル化された入力画像706は、左側に、乗客のシートベルトを指示するボックスと、乗客のシートベルトが着用され正しく適用されていることを指示するラベル「シートベルト:オン」とを示し得る。モデル化された入力画像706は、運転手のシートベルトの状況を指示する対応ラベルを有する運転手のシートベルトの第2の可視指示を含み得る。図7を参照すると、モデル化された入力画像706は、右側に、運転手のシートベルトを指示するボックスと、運転手のシートベルトが着用され正しく適用されていることを指示するラベル「シートベルト:オン」とを示し得る。
図8は、少なくとも1個の実施例による、シートベルト・ローカリゼーションの実例800を示す。入力画像802、シートベルト・ローカライザ804、及びモデル化された入力画像806は、図1~6に関して説明されたものに従い得る。シートベルト・ローカライザ804は、実行されると1個又は複数の画像から1個又は複数の拘束デバイスをモデル化する実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。シートベルト・ローカライザ804は、入力画像802を取得又は他の方法で受信し、拘束デバイス(たとえば、シートベルト)を表す入力画像802のエリアの初期分類を実行し、1セットの制約を入力画像802のエリアに適用して初期分類を精緻化して精緻化された分類を取得し、精緻化された分類に少なくとも部分的に基づいて拘束デバイスのモデルを生成することができる。シートベルト・ローカライザ804は、画像(たとえば、入力画像802)に示されたシートベルトを識別及びモデル化することができる。
図8を参照すると、入力画像802は、車両の内部にある1個又は複数のカメラからキャプチャされた画像でもよい。入力画像802は、中心に示され得る、運転手を含む、車両の乗客を示し得る。入力画像802は、運転手がシートベルトを不正確に着用している(たとえば、運転手が背中の後ろにシートベルトを着けている)ことを示し得る。シートベルト・ローカライザ804は、入力画像802を分析して入力画像802のシートベルトを識別及びモデル化することができる。シートベルト・ローカライザ804は、モデル化された入力画像806を介してモデル化されたシートベルトを視覚化することができる。
図8を参照すると、モデル化された入力画像806は、シートベルト及び指示されたシートベルト状況(たとえば、向き/場所)を有する入力画像802を示し得る。モデル化された入力画像806は、運転手のシートベルトの状況を指示する対応ラベルを有する運転手のシートベルトの第1の可視指示を含み得る。図8を参照すると、モデル化された入力画像806は、運転手のシートベルトを指示するボックスと、運転手のシートベルトが不正確にだが着用されていることを指示するラベル「シートベルト:オフ」とを示し得る。
図9は、少なくとも1個の実施例による、シートベルト・ローカリゼーションの実例900を示す。入力画像902、シートベルト・ローカライザ904、及びモデル化された入力画像906は、図1~6に関して説明されたものに従い得る。シートベルト・ローカライザ904は、実行されると1個又は複数の画像から1個又は複数の拘束デバイスをモデル化する実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。シートベルト・ローカライザ904は、入力画像902を取得又は他の方法で受信し、拘束デバイス(たとえば、シートベルト)を表す入力画像902のエリアの初期分類を実行し、1セットの制約を入力画像902のエリアに適用して初期分類を精緻化して精緻化された分類を取得し、精緻化された分類に少なくとも部分的に基づいて拘束デバイスのモデルを生成することができる。シートベルト・ローカライザ904は、画像(たとえば、入力画像902)に示されたシートベルトを識別及びモデル化することができる。
図9を参照すると、入力画像902は、車両の内部にある1個又は複数のカメラからキャプチャされた画像でもよい。入力画像902は、中心に示され得る、運転手を含む、車両の乗客を示し得る。入力画像902は、運転手がシートベルトを不正確に着用している(たとえば、運転手が脇の下にシートベルトを着けている)ことを示し得る。シートベルト・ローカライザ904は、入力画像902を分析して入力画像902のシートベルトを識別及びモデル化することができる。シートベルト・ローカライザ904は、モデル化された入力画像906を介してモデル化されたシートベルトを視覚化することができる。
図9を参照すると、モデル化された入力画像906は、シートベルト及び指示されたシートベルト状況(たとえば、向き/場所)を有する入力画像902を示し得る。モデル化された入力画像906は、運転手のシートベルトの状況を指示する対応ラベルを有する運転手のシートベルトの第1の可視指示を含み得る。図9を参照すると、モデル化された入力画像906は、運転手のシートベルトを指示するボックスと、運転手のシートベルトが不正確にだが着用されていることを指示するラベル「シートベルト:オフ」とを示し得る。
図10は、少なくとも1個の実施例による、シートベルト・ローカリゼーションの実例1000を示す。モデル化された入力画像1002は、図1~6に従って説明されたものに従い得る。シートベルト・ローカライザは、実行されると1個又は複数の画像から1個又は複数の拘束デバイスをモデル化する実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。シートベルト・ローカライザは、入力画像を取得又は他の方法で受信し、拘束デバイス(たとえば、シートベルト)を表す入力画像のエリアの初期分類を実行し、1セットの制約を入力画像のエリアに適用して初期分類を精緻化して精緻化された分類を取得し、精緻化された分類に少なくとも部分的に基づいて拘束デバイスのモデルを生成し、モデル化された入力画像1002としてモデルを視覚化することができる。
モデル化された入力画像1002は、1個又は複数のカメラからキャプチャされ得る入力画像に基づき得る。入力画像は、標準FOVを有するカメラからキャプチャされ得る。シートベルト・ローカライザは、任意のFOVの画像から1個又は複数のシートベルトを識別及びモデル化することができる。シートベルト・ローカライザは、シートベルトの部分を示し得る画像から1個又は複数のシートベルトを識別及びモデル化することができる。図10を参照すると、モデル化された入力画像1002は、影付きの領域によって識別されたシートベルトとシートベルトが着用され正しく適用されていることを指示する対応ラベル「シートベルト:オン」とを有する標準FOV画像を示し得る。
図11は、少なくとも1個の実施例による、シートベルト・ローカリゼーションの実例1100を示す。モデル化された入力画像1102は、図1~6に関して説明されたものに従い得る。シートベルト・ローカライザは、実行されると1個又は複数の画像から1個又は複数の拘束デバイスをモデル化する実行可能命令を有する1個又は複数のハードウェア及び/又はソフトウェア計算資源のコレクションでもよい。シートベルト・ローカライザは、入力画像を取得又は他の方法で受信し、拘束デバイス(たとえば、シートベルト)を表す入力画像のエリアの初期分類を実行し、1セットの制約を入力画像のエリアに適用して初期分類を精緻化して精緻化された分類を取得し、精緻化された分類に少なくとも部分的に基づいて拘束デバイスのモデルを生成し、モデル化された入力画像1102としてモデルを視覚化することができる。
モデル化された入力画像1102は、1個又は複数のカメラからキャプチャされ得る入力画像に基づき得る。入力画像は、シートベルトを運転手の体から押しのけた運転手を示し得る。シートベルト・ローカライザは、任意の適切な場所にある(たとえば、押しのけられた、伸ばされた、引っ込められた)1個又は複数のシートベルトを示す画像から1個又は複数のシートベルトを識別及びモデル化することができる。図11を参照すると、モデル化された入力画像1102は、点線の曲線によって識別されたシートベルトとシートベルトは着用されているが正しく適用されていないことを示す対応ラベル「シートベルト:オフ」とを有する画像を示し得る。
図7~11は、1個又は複数のシートベルトを識別、モデル化、視覚化、及びラベル付けするシートベルト・ローカライザの実例を示すが、シートベルト・ローカライザは、任意の適切な方式で1個又は複数のシートベルトを識別、モデル化、視覚化、及びラベル付けすることができる、ということに留意されたい。シートベルト・ローカライザは、アウトライン、ボックス、曲線、境界ボックス、影付きの領域、模様付きの領域、又は他の指示を介して1個又は複数のシートベルトを指示することによって画像内の1個又は複数のシートベルトを視覚化することができる。シートベルト・ローカライザは、様々な指示、たとえば、シンボル、文字、ラベル、又は他の指示、を介して画像内の1個又は複数のシートベルトにラベル付けすることができる。シートベルトが着用され正しく適用されているという指示は、様々な方法、たとえば、以下を指示する車両内の表示画面上のテキストを表示すること、で示され得る:「シートベルト:オン」、「シートベルト:適用済み」、「シートベルト:正しく適用されている」、など。シートベルトが不正確にだが着用されたという指示は、様々な方法、たとえば、「シートベルト:オフ」、「シートベルト:不正確」、「シートベルト:不正確に適用されている」など、で表示され得る。シートベルトは着用されていないという指示は、様々な方法、たとえば、「シートベルト:オフ」、「シートベルト:不適用」、「シートベルト不適用」など、で示され得る。指示はまた、音声指示(たとえば、コンピュータ音声指示)、可視指示(たとえば、指示光、スイッチ)、物理的指示(たとえば、指示振動)などを含み得る。
ここで図12を参照すると、本明細書に記載の方法1200の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。本方法はまた、コンピュータ記憶媒体に記憶された、コンピュータが使用可能な命令として実施され得る。本方法は、いくつか例を挙げると、独立型アプリケーション、サービス又はホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、或いは別の製品へのプラグインによって提供され得る。加えて、方法1200は、実例として、図1のシートベルト・ローカリゼーションのためのシステムに関して、説明される。しかしながら、これらの方法は、本明細書に記載されたものを含むが、これらに限定されない、任意の1個のシステム、又はシステムの任意の組合せによって、追加で又は別法として実行され得る。
図12は、本開示のいくつかの実施例による、入力画像のモデルを生成するための方法1200を示す流れ図である。方法1200は、ブロック1202において、入力画像を取得することを含む。入力画像は、サブジェクト、たとえば、運転手、乗客、又は他の乗員、及びサブジェクトに適用された拘束デバイス、たとえば、シートベルト、安全ハーネス、又は他の拘束デバイス、を表し得る。入力画像は、車両の内部に位置し得る1個又は複数の画像キャプチャ・デバイス、たとえば、カメラ又は他のデバイス、からキャプチャされた画像でもよい。
方法1200は、ブロック1204において、画素候補を決定することを含む。方法1200の少なくとも一部を実行するシステムは、拘束デバイスを表すものとしての画像のエリアの初期分類を実行し得る。初期分類は、画素候補の決定をもたらし得る。入力画像の任意の所与の画素について、システムは、画素及びそれの近隣画素情報を使用して、画素がシートベルトに属するか背景画素であるかを予測することができる。システムは、拘束デバイス(たとえば、シートベルト)を示す又は他の方法で表す入力画像のエリアを決定して画素候補を決定することができる。
方法1200は、ブロック1206において、偽陽性を取り除いて適格の画素候補を決定することを含む。方法1200の少なくとも一部を実行するシステムは、1セットの制約を画像のエリアに適用して初期分類を精緻化して精緻化された分類を取得することができる。精緻化された分類は、適格の画素候補の決定をもたらし得る。そのセットの制約は、入力画像をキャプチャしたカメラのパラメータ(たとえば、カメラ・レンズ寸法、焦点、主点、歪みパラメータ)、標準シートベルト寸法範囲(たとえば、幅及び/又は長さの範囲)、標準シートベルト特徴及び/又はパラメータ(たとえば、標準シートベルト色、材料)、車両パラメータ(たとえば、車両レイアウト、車両構成要素)などの特徴を含み得る。そのセットの制約を固守しない又は他の方法でそれに従わない画素候補の画素は、取り除かれて適格の画素候補を決定することができるように、システムは、そのセットの制約を画素候補に適用することができる。
方法1200は、ブロック1208において、適格の画素候補に基づいてモデルを構築することを含む。方法1200の少なくとも一部を実行するシステムは、精緻化された分類に少なくとも部分的に基づいて拘束デバイスのモデルを生成することができる。システムは、シートベルトに対応する適格の画素候補の画素に基づいてモデルを生成することができる。方法1200は、ブロック1210において、入力画像にモデルをマッピングすることを含む。システムは、モデル化された入力画像として入力画像上にモデルを視覚化することができる。モデル化された入力画像は、シートベルトの場所/向き/位置、並びにシートベルトが着用されているか、着用されていないか、適用されているか、又は不正確に適用されているかを指示するシートベルトの状況の指示を含み得る。
例示的自律型車両
図13Aは、本開示のいくつかの実施例による、例示的自律型車両1300を示す。自律型車両1300(或いは、本明細書で「車両1300」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気若しくは原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、及び/又は別のタイプの車両(たとえば、無人の及び/又は1人若しくは複数の旅客を乗せるもの)を含み得るが、これらに限定されない。自律型車両は、一般に、米国運輸省道路交通安全局(NHTSA:National Highway Traffic Safety Administration)、米国運輸省の部署、及び自動車技術者協会(SAE:Society of Automotive Engineers)「Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicle」(2018年6月15日に公開された規格番号J3016-201806、2016年9月30日に公開された規格番号J3016-201609、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。移動車1300は、自律運転レベルのレベル3~レベル5のうちの1個又は複数による機能の能力を有し得る。たとえば、移動車1300は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
図13Aは、本開示のいくつかの実施例による、例示的自律型車両1300を示す。自律型車両1300(或いは、本明細書で「車両1300」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気若しくは原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、及び/又は別のタイプの車両(たとえば、無人の及び/又は1人若しくは複数の旅客を乗せるもの)を含み得るが、これらに限定されない。自律型車両は、一般に、米国運輸省道路交通安全局(NHTSA:National Highway Traffic Safety Administration)、米国運輸省の部署、及び自動車技術者協会(SAE:Society of Automotive Engineers)「Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicle」(2018年6月15日に公開された規格番号J3016-201806、2016年9月30日に公開された規格番号J3016-201609、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。移動車1300は、自律運転レベルのレベル3~レベル5のうちの1個又は複数による機能の能力を有し得る。たとえば、移動車1300は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
移動車1300は、移動車のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。移動車1300は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム1350を含み得る。推進システム1350は、移動車1300の推進力を有効にするために、トランスミッションを含み得る、移動車1300のドライブ・トレインに接続され得る。推進システム1350は、スロットル/加速装置1352からの信号の受信に応答して制御され得る。
ハンドルを含み得る、ステアリング・システム1354は、推進システム1350が動作しているときに(たとえば、移動車が移動中のときに)移動車1300のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム1354は、ステアリング・アクチュエータ1356から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能のオプションでもよい。
ブレーキ・センサ・システム1346は、ブレーキ・アクチュエータ1348及び/又はブレーキ・センサからの信号の受信に応答して移動車ブレーキを動作させるために使用され得る。
1個又は複数のCPU、システム・オン・チップ(SoC:system on Chip)1304(図13C)及び/又はGPUを含み得る、コントローラ1336は、移動車1300の1個若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1個又は複数のブレーキ・アクチュエータ1348を介して移動車ブレーキを動作させて、1個又は複数のステアリング・アクチュエータ1356を介してステアリング・システム1354を動作させて、及び/又は1個若しくは複数のスロットル/加速装置1352を介して推進システム1350を動作させるために、信号を送ることができる。コントローラ1336は、センサ信号を処理する、並びに律的運転を可能にするために及び/又は運転者の移動車1300の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1個又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ1336は、自律運転機能のための第1のコントローラ1336、機能的安全性機能のための第2のコントローラ1336、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ1336、インフォテインメント機能のための第4のコントローラ1336、緊急状態における冗長性のための第5のコントローラ1336、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ1336が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ1336が、単一の機能、及び/又はその任意の組合せを処理することができる。
コントローラ1336は、1個又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して移動車1300の1個又は複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ1358(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ1360、超音波センサ1362、LIDARセンサ1364、慣性計測装置(IMU:inertial measurement unit)センサ1366(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン1396、ステレオ・カメラ1368、ワイドビュー・カメラ1370(たとえば、魚眼カメラ)、赤外線カメラ1372、サラウンド・カメラ1374(たとえば、360度カメラ)、長距離及び/又は中距離カメラ1398、スピード・センサ1344(たとえば、移動車1300のスピードを測定するための)、振動センサ1342、ステアリング・センサ1340、ブレーキ・センサ1346(たとえば、ブレーキ・センサ・システム1346の一部としての)、及び/又は他のセンサ・タイプから受信され得る。
コントローラ1336のうちの1個又は複数のコントローラは、移動車1300の計器群1332から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ1334、可聴式アナンシエータ、ラウドスピーカ、及び/又は移動車1300の他の構成要素を介して提供することができる。出力は、移動車ベロシティ、スピード、時間、マップ・データ(たとえば、図13CのHDマップ1322)、位置データ(たとえば、マップ上などの、移動車の1300の位置)、方向、他の移動車の位置(たとえば、占有グリッド)、コントローラ1336によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ1334は、1個又は複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在、及び/又は移動車が行った、行っている、又は行うであろう運転操作(たとえば、今、車線変更をしていること、3.22km(2マイル)内の出口34Bを出ることなど)に関する情報を表示することができる。
移動車1300はさらに、1個又は複数のワイヤレス・アンテナ1326及び/又はモデムを使用して1個又は複数のネットワークを介して通信することができるネットワーク・インターフェース1324を含む。たとえば、ネットワーク・インターフェース1324は、LTE、WCDMA、UMTS、GSM、CDMA2000などを介する通信の能力を有し得る。ワイヤレス・アンテナ1326はまた、ブルートゥース、ブルートゥースLE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、移動車、モバイル・デバイスなど)の間の通信を可能にすることができる。
図13Bは、本開示のいくつかの実施例による、図13Aの例示的自律型車両1300のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1個の例示的実施例であり、制限することは意図されていない。たとえば、追加の及び/又は代替カメラが含まれ得る、及び/又はカメラは移動車1300の異なる位置に置かれ得る。
カメラのカメラ・タイプは、移動車1300の構成要素及び/又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(ASIL:automotive safety integrity level)Bにおいて及び/又は別のASILにおいて動作することができる。カメラ・タイプは、実施例に応じて、60フレーム/秒(fps)、120fps、240fpsなど、任意の画像キャプチャ・レートの能力を有し得る。カメラは、ロール・シャッタ、グローバル・シャッタ、別のタイプのシャッタ、又はその組合せを使用する能力を有し得る。いくつかの実例では、カラー・フィルタ・アレイは、RCCC(red clear clear clear)カラー・フィルタ・アレイ、RCCB(red clear clear blue)カラー・フィルタ・アレイ、RBGC(red blue green clear)カラー・フィルタ・アレイ、Foveon X3カラー・フィルタ・アレイ、Bayerセンサ(RGGB)カラー・フィルタ・アレイ、モノクロ・センサ・カラー・フィルタ・アレイ、及び/又は別のタイプのカラー・フィルタ・アレイを含み得る。一部の実施例では、RCCC、RCCB、及び/又はRBGCカラー・フィルタ・アレイを有するカメラなどのクリア画素カメラは、光感度を上げるための取り組みにおいて使用され得る。
いくつかの実例では、カメラのうちの1個又は複数が、高度運転者支援システム(ADAS:advanced driver assistance system)機能(たとえば、冗長又はフェイルセーフ設計の一部として)を実行するために使用され得る。たとえば、多機能モノ・カメラは、車線逸脱警報、交通標識アシスト及びインテリジェント・ヘッドランプ制御を含む機能を提供するために設置され得る。カメラのうちの1個又は複数(たとえば、すべてのカメラ)が、画像データ(たとえば、ビデオ)を同時に記録及び提供することができる。
カメラのうちの1個又は複数は、カメラの画像データ・キャプチャ能力を妨げることがある自動車内からの迷光及び反射(たとえば、フロントガラスのミラーにおいて反射されたダッシュボードからの反射)を取り除くために、カスタム設計された(3D印刷された)部品などの取付部品において取り付けられ得る。サイドミラー取付部品を参照すると、サイドミラー部品は、カメラ取付板がサイドミラーの形状に合うように、カスタム3D印刷され得る。いくつかの実例では、カメラは、サイドミラー内に統合され得る。サイドビュー・カメラについては、カメラはまた、キャビンの各角にある4個の支柱内に統合され得る。
移動車1300の前の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1個又は複数のコントローラ1336及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい移動車進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(「LDW(Lane Departure Warning)」)、自律的クルーズ制御(「ACC(Autonomous Cruise Control)」)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交差する交通又は自転車)からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ1370でもよい。図13Bにはワイドビュー・カメラは1個だけ示されているが、移動車1300には任意の数のワイドビュー・カメラ1370が存在し得る。加えて、長距離カメラ1398(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ1398はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
1個又は複数のステレオ・カメラ1368もまた、前向きの構成に含まれ得る。ステレオ・カメラ1368は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(たとえば、FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、移動車の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ1368は、2個のカメラ・レンズ(左と右に1個ずつ)と、移動車から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ1368が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
移動車1300の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ1374(たとえば、図13Bに示されるような4個のサラウンド・カメラ1374)は、移動車1300の周囲に位置付けられ得る。サラウンド・カメラ1374は、ワイドビュー・カメラ1370、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、移動車の前、後ろ、及び側面に配置され得る。代替配置において、移動車は、3個のサラウンド・カメラ1374(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1個又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
移動車1300の後ろに対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ1398、ステレオ・カメラ1368)、赤外線カメラ1372など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
図13Cは、本開示のいくつかの実施例による、図13Aの例示的自律型車両1300の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素は共に除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
図13Cの移動車1300の構成要素、特徴、及びシステムのそれぞれは、バス1302を介して接続されるものとして図示されている。バス1302は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、本明細書で「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキ、ステアリング、フロントガラス・ワイパなどの作動など、移動車1300の様々な特徴及び機能の制御を助けるために使用される移動車1300内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の移動車状況指標を見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
バス1302は、CANバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、CANバスに加えて、又はこの代替として、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス1302を表すために使用されているが、これは制限することを意図されていない。たとえば、1個又は複数のCANバス、1個又は複数のFlexRayバス、1個又は複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1個若しくは複数の他のタイプのバスを含み得る、任意の数のバス1302が存在し得る。いくつかの実例では、2個以上のバス1302が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス1302は衝突回避機能のために使用されてもよく、第2のバス1302は作動制御のために使用されてもよい。任意の実例において、各バス1302は、移動車1300の構成要素のいずれかと通信し得、2個以上のバス1302が同じ構成要素と通信し得る。いくつかの実例では、移動車内の各SoC1304、各コントローラ1336、及び/又は各コンピュータは、同じ入力データ(たとえば、移動車1300のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
移動車1300は、図13Aに関して本明細書で説明されるものなど、1個又は複数のコントローラ1336を含み得る。コントローラ1336は、様々な機能のために使用され得る。コントローラ1336は、移動車1300の様々な他の構成要素及びシステムのいずれかに連結されてもよく、移動車1300、移動車1300の人工知能、移動車1300のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
移動車1300は、システム・オン・チップ(SoC)1304を含み得る。SoC1304は、CPU1306、GPU1308、プロセッサ1310、キャッシュ1312、加速装置1314、データ・ストア1316、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC1304は、様々なプラットフォーム及びシステム内の移動車1300を制御するために使用され得る。たとえば、SoC1304は、1個又は複数のサーバ(たとえば、図13Dのサーバ1378)からネットワーク・インターフェース1324を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ1322を有するシステム(たとえば、移動車1300のシステム)において結合され得る。
CPU1306は、CPUクラスタ又はCPU複合体(或いは、本明細書で「CCPLEX」とも称される)を含み得る。CPU1306は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施例では、CPU1306は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施例では、CPU1306は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU1306(たとえば、CCPLEX)は、CPU1306のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
CPU1306は、以下の特徴のうちの1個又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU1306は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
GPU1308は、統合されたGPU(或いは、本明細書で「iGPU」と称される)を含み得る。GPU1308は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU1308は、強化されたテンソル命令セットを使用することができる。GPU1308は、1個又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施例では、GPU1308は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU1308は、コンピュータベースのアプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU1308は、1個又は複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用することができる。
GPU1308は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、GPU1308は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは制限することを意図されておらず、GPU1308は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合精度NVIDIAテンソル・コア、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
GPU1308は、一部の実例では、900GB/秒のピーク・メモリ帯域幅に関して、提供するための高帯域幅メモリ(HBM:high bandwidth memory)及び/又は16GBHBM2メモリ・サブシステムを含み得る。いくつかの実例では、HBMメモリに加えて、又はこれの代わりに、グラフィックス・ダブル・データ・レート・タイプ5同期ランダム・アクセス・メモリ(GDDR5:graphics double data rate type five synchronous random-access memory)などの同期グラフィックス・ランダム・アクセス・メモリ(SGRAM:synchronous graphics random-access memory)が使用され得る。
GPU1308は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU1308がCPU1306ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU1308メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU1306に送信され得る。応答して、CPU1306は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU1308に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU1306とGPU1308との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU1308へのアプリケーションのGPU1308プログラミング及び移植を単純化する。
加えて、GPU1308は、他のプロセッサのメモリへのGPU1308のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
SoC1304は、本明細書に記載のものを含む任意の数のキャッシュ1312を含み得る。たとえば、キャッシュ1312は、CPU1306とGPU1308との両方に利用可能な(たとえば、CPU1306とGPU1308との両方に接続された)L3キャッシュを含み得る。キャッシュ1312は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、4MB以上を含み得る。
SoC1304は、車両1300の様々なタスク又は動作のいずれか(たとえば、処理DNN)に関して処理を実行する際に活用され得る論理演算ユニット(ALU:arithmetic logic unit)を含み得る。加えて、SoC1304は、システム内で数学演算を実行するための浮動小数点演算ユニット(FPU:floating point unit)(又は他のマス・コプロセッサ又は数値演算コプロセッサ・タイプ)を含み得る。たとえば、SoC104は、CPU1306及び/又はGPU1308内の実行ユニットとして統合された1個又は複数のFPUを含み得る。
SoC1304は、1個又は複数の加速装置1314(たとえば、ハードウェア・加速装置、ソフトウェア・加速装置、又はその組合せ)を含み得る。たとえば、SoC1304は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU1308を補完するために及びGPU1308のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU1308のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置1314は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
加速装置1314(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(DLA:deep learning accelerator)を含み得る。DLAは、深層学習アプリケーション及び推論のために1秒あたり追加の10兆の動作を提供するように構成することができる1個又は複数のテンソル処理ユニット(TPU:Tensor processing unit)を含み得る。TPUは、画像処理機能(たとえば、CNN、RCNNなどの)を実行するように構成及び最適化された加速装置でもよい。DLAはさらに、特定のセットのニューラル・ネットワーク・タイプ及び浮動小数点演算、並びに推論のために最適化され得る。DLAの設計は、汎用GPUよりも1ミリメートルあたりより多くのパフォーマンスを提供することができ、CPUのパフォーマンスを大きく超える。TPUは、たとえば、特徴と重みとの両方についてINT8、INT16、及びFP16データ・タイプをサポートする、単一インスタンス畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実行することができる。
DLAは、以下を含むがこれらに限定されない、様々な機能のいずれかのために処理済み又は未処理のデータでニューラル・ネットワーク、特にCNN、を迅速に及び効率的に実行することができる:カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び移動車所有者識別のためのCNN、及び/又は、セキュリティ及び/又は安全性関連イベントのためのCNN。
DLAは、GPU1308の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU1308のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU1308及び/又は他の加速装置1314に任せることができる。
加速装置1314(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(PVA:programmable vision accelerator)を含み得る。PVAは、高度運転者支援システム(ADAS:advanced driver assistance system)、自律運転、及び/又は拡張現実(AR:augmented reality)及び/又は仮想現実(VR:virtual reality)アプリケーションのためのコンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。PVAは、パフォーマンスと柔軟性との間のバランスをもたらすことができる。たとえば、各PVAは、たとえば、任意の数の縮小命令セット・コンピュータ(RISC:reduced instruction set computer)コア、直接メモリ・アクセス(DMA:direct memory access)、及び/又は任意の数のベクトル・プロセッサを含み得るが、これらに限定されない。
RISCコアは、画像センサ(たとえば、本明細書に記載のカメラのうちのいずれかのカメラの画像センサ)、画像信号プロセッサ、及び/又は同類のものと相互作用することができる。それぞれのRISCコアは、任意の量のメモリを含み得る。RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用することができる。いくつかの実例では、RISCコアは、リアルタイム・オペレーティング・システム(RTOS:real-time operating system)を実行することができる。RISCコアは、1個又は複数の集積回路デバイス、特定用途向け集積回路(ASIC)、及び/又はメモリデバイスを使用して、実装され得る。たとえば、RISCコアは、命令キャッシュ及び/又はしっかりと結合されたRAMを含み得る。
DMAは、CPU1306から独立したシステム・メモリにPVAの構成要素がアクセスすることを可能にし得る。DMAは、多次元アドレス指定及び/又は循環アドレス指定をサポートすることを含むがこれに限定されないPVAに最適化をもたらすために使用される任意の数の特徴をサポートすることができる。いくつかの実例では、DMAは、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る、6次元まで又はそれ以上のアドレス指定をサポートすることができる。
ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのプログラミングを効率的に柔軟に実行する及び信号処理能力を提供するように設計され得るプログラマブル・プロセッサでもよい。いくつかの実例では、PVAは、PVAコア及び2個のベクトル処理サブシステム・パーティションを含み得る。PVAコアは、プロセッサ・サブシステム、DMAエンジン(たとえば、2個のDMAエンジン)、及び/又は他の周辺装置を含み得る。ベクトル処理サブシステムは、PVAの1次的処理エンジンとして動作することができ、ベクトル処理ユニット(VPU:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、VMEM)を含み得る。VPUコアは、たとえば、単一の命令、複数のデータ(SIMD)、超長命令語(VLIW:very long instruction word)デジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。SIMD及びVLIWの組合せは、スループット及びスピードを高めることができる。
それぞれのベクトル・プロセッサは、命令キャッシュを含み得、専用のメモリに連結され得る。結果として、一部の実例では、それぞれのベクトル・プロセッサは、他のベクトル・プロセッサから独立して実行するように構成され得る。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、データ並列処理を用いるように構成され得る。たとえば、一部の実施例では、単一のPVAに含まれる複数のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、しかし画像の異なる領域上で、実行することができる。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを、同じ画像上で、同時に実行することができ、或いは順次画像又は画像の部分で異なるアルゴリズムを実行することさえできる。特に、任意の数のPVAは、ハードウェア加速クラスタに含まれ得、任意の数のベクトル・プロセッサは、それぞれのPVAに含まれ得る。加えて、PVAは、全体的システム安全性を高めるために、追加のエラー訂正コード(ECC:error correcting code)メモリを含み得る。
加速装置1314(たとえば、ハードウェア加速クラスタ)は、加速装置1314のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC61508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
いくつかの実例では、SoC1304は、2018年8月10日に出願された米国特許出願第16/101,232号に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。一部の実施例では、1個又は複数の木の走査ユニット(TTU:tree traversal unit)が、1個又は複数のレイトレーシング関連動作を実行するために使用され得る。
加速装置1314(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。PVAは、ADAS及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。PVAの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、PVAは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、PVAは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
たとえば、本技術の1個の実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは制限することを意図されていない。レベル3~5の自律運転のための多数のアプリケーションは、動き推定/ステレオ・マッチング・オンザフライ(たとえば、SFM(structure from motion)、歩行者認識、レーン検出など)を必要とする。PVAは、2個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
いくつかの実例では、PVAは、高密度のオプティカル・フローを実行するために使用され得る。たとえば、PVAは、未加工のRADARデータを処理して(たとえば、4D高速フーリエ変換を使用して)、次のRADARパルスを放射する前に処理済みのRADAR信号を提供するために、使用され得る。他の実例において、PVAは、たとえば、飛行データの未加工の時間を処理して飛行データの処理済み時間を提供することにより、飛行深度処理の時間に使用される。
DLAは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するために使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が偽陽性検出ではなくて真陽性検出と考えられるべきであるかに関するさらなる決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動緊急ブレーキ(AEB:automatic emergency braking)システムにおいて、偽陽性検出は、移動車に緊急ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、AEBのトリガとして考えられるべきである。DLAは、信頼性値を退行するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、(たとえば、別のサブシステムから)取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、LIDARセンサ1364又はRADARセンサ1360)から取得された物体の移動車1300方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ1366出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
SoC1304は、データ・ストア1316(たとえば、メモリ)を含み得る。データ・ストア1316は、SoC1304のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア1316は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア1316は、L2又はL3キャッシュ1312を備え得る。データ・ストア1316の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置1314に関連するメモリの参照を含み得る。
SoC1304は、1個又は複数のプロセッサ1310(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ1310は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC1304ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC1304熱及び温度センサの管理、及び/又はSoC1304電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC1304は、リング発振器を使用してCPU1306、GPU1308、及び/又は加速装置1314の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC1304をより低い電力状態に置く及び/又は移動車1300をショーファーの安全停止モードにする(たとえば、移動車1300を安全停止させる)ことができる。
プロセッサ1310は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
プロセッサ1310は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
プロセッサ1310は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
プロセッサ1310は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
プロセッサ1310は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
プロセッサ1310は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ1370で、サラウンド・カメラ1374で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、移動車の目的地を変更する、移動車のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU1308は、新しい表面を連続してレンダリングために必要とされない。GPU1308の電源が入れられ、3Dレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、GPU1308をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
SoC1304は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、及び/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC1304は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
SoC1304は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC1304は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ1364、RADARセンサ1360など)、バス1302からのデータ(たとえば、移動車1300のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ1358からのデータを処理するために使用され得る。SoC1304は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU1306を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
SoC1304は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC1304は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置1314が、CPU1306と結合されるとき、GPU1308、及びデータ・ストア1316は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、移動車内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU1320)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを移動車の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を移動車の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU1308上などで、同時に実行することができる。
いくつかの実例では、顔認識及び移動車所有者識別のためのCNNは、カメラ・センサからのデータを使用して移動車1300の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに移動車を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が移動車を離れるときに移動車の動作を停止させるために、使用され得る。このようにして、SoC1304は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン1396からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC1304は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施例では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ1358によって識別されるように、移動車が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ1362の支援を受けて、移動車を減速する、道の端に停止させる、移動車を駐車する、及び/又は移動車をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
移動車は、高速相互接続(たとえば、PCIe)を介してSoC1304に連結され得るCPU1318(たとえば、個別のCPU、又はdCPU)を含み得る。CPU1318は、たとえば、X86プロセッサを含み得る。CPU1318は、たとえば、ADASセンサとSoC1304との間の潜在的に不整合の結果を調停すること、及び/又はコントローラ1336及び/又はインフォテインメントSoC1330の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
移動車1300は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC1304に連結され得るGPU1320(たとえば、個別のGPU、又はdGPU)を含み得る。GPU1320は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、移動車1300のセンサからの入力(たとえば、センサ・データ)に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
移動車1300は、1個又は複数のワイヤレス・アンテナ1326(たとえば、セルラ・アンテナ、ブルートゥース・アンテナなど、異なる通信プロトコルのための1個又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース1324をさらに含み得る。ネットワーク・インターフェース1324は、インターネットを介するクラウドとの(たとえば、サーバ1378及び/又は他のネットワーク・デバイスとの)、他の移動車との、及び/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の移動車と通信するために、直接リンクが2個の移動車の間に確立され得る、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、移動車対移動車通信リンクを使用し、提供され得る。移動車対移動車通信リンクは、移動車1300に近接する移動車(たとえば、移動車1300の前の、横の、及び/又は後ろの移動車)に関する移動車1300情報を提供することができる。この機能は、移動車1300の共同適応クルーズ制御機能の一部でもよい。
ネットワーク・インターフェース1324は、変調及び復調機能を提供する及びコントローラ1336がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース1324は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA、UMTS、GSM、CDMA2000、ブルートゥース、ブルートゥースLE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
移動車1300は、チップ外の(たとえば、SoC1304外の)ストレージを含み得るデータ・ストア1328をさらに含み得る。データ・ストア1328は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1個又は複数の記憶素子を含み得る。
車両1300は、GNSSセンサ1358(たとえば、GPS、及び/又は支援されたGPSセンサ)をさらに含み得、マッピング、知覚、占有グリッド生成、及び/又は進路計画策定機能を支援する。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ1358が、使用され得る。
移動車1300は、RADARセンサ1360をさらに含み得る。RADARセンサ1360は、暗闇及び/又は厳しい気象条件においても、長距離移動車検出のために移動車1300によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ1360は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ1360によって生成されたデータを送信するために)CAN及び/又はバス1302を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして制限なしに、RADARセンサ1360は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
RADARセンサ1360は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、適応クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ1360は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で移動車1300の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、移動車1300のレーンに入る又はこれを去る移動車を迅速に検出することを可能にする。
一実例として、中距離RADARシステムは、1360m(前)又は80m(後)までの範囲、及び42度(前)又は1350度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、移動車の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
移動車1300は、超音波センサ1362をさらに含み得る。移動車1300の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ1362は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ1362が使用され得、異なる超音波センサ1362が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ1362は、ASIL Bの機能的安全性レベルにおいて動作することができる。
移動車1300はLIDARセンサ1364を含み得る。LIDARセンサ1364は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ1364は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、移動車1300は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ1364を含み得る。
いくつかの実例では、LIDARセンサ1364は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ1364は、たとえば、2cm~3cmの精度を有し、100Mbpsイーサネット(登録商標)接続のサポートを有して、約100mの広告された範囲を有し得る。いくつかの実例では、1個又は複数の非突出LIDARセンサ1364が、使用され得る。そのような実例では、LIDARセンサ1364は、移動車1300の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ1364は、低反射物体についても200mの範囲を有し、120度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ1364は、45度と135度との間の水平視野向けに構成され得る。
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで移動車の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、移動車から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、移動車1300の各側面に1個ずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ1364は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
移動車は、IMUセンサ1366をさらに含み得る。一部の実例では、IMUセンサ1366は、移動車1300の後部車軸の中央に位置付けられ得る。IMUセンサ1366は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ1366は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ1366は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
一部の実施例では、IMUセンサ1366は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ1366は、GPSからIMUセンサ1366までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を移動車1300が推定することを可能にし得る。いくつかの実例では、IMUセンサ1366及びGNSSセンサ1358は、単一の統合されたユニットにおいて結合され得る。
移動車は、移動車1300内及び/又は周囲に置かれたマイクロフォン1396を含み得る。マイクロフォン1396は、中でも、緊急車両検出及び識別のために使用され得る。
移動車は、ステレオ・カメラ1368、ワイドビュー・カメラ1370、赤外線カメラ1372、サラウンド・カメラ1374、長距離及び/又は中距離カメラ1398、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、移動車1300の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、移動車1300の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、移動車1300の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、移動車は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、図13A及び図13Bに関連して本明細書においてさらに詳しく説明される。
移動車1300は、振動センサ1342をさらに含み得る。振動センサ1342は、車軸など、移動車の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ1342が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
移動車1300は、ADASシステム1338を含み得る。一部の実例では、ADASシステム1338は、SoCを含み得る。ADASシステム1338は、自律/適応/自動クルーズ制御(ACC:autonomous/adaptive/automatic cruise control)、共同適応クルーズ制御(CACC:cooperative adaptive cruise control)、前方衝突警報(FCW:forward crash warning)、自動緊急ブレーキ(AEB:automatic emergency braking)、車線逸脱警報(LDW:lane departure warning)、レーン・キープ・アシスト(LKA:lane keep assist)、死角警報(BSW:blind spot warning)、後部交差交通警報(RCTW:rear cross-traffic warning)、衝突警報システム(CWS:collision warning system)、レーン・センタリング(LC:lane centering)、及び/又は他の特徴及び機能を含み得る。
ACCシステムは、RADARセンサ1360、LIDARセンサ1364、及び/又はカメラを使用し得る。ACCシステムは、縦ACC及び/又は横ACCを含み得る。縦ACCは、移動車1300の直ぐ前の移動車までの距離を監視及び制御し、前方の移動車からの安全距離を維持するために移動車速度を自動的に調整する。横ACCは、距離の保持を実行し、必要なときにレーンを変更するように移動車1300にアドバイスする。横ACCは、LC及びCWSなどの他のADASアプリケーションに関連する。
CACCは、ワイヤレス・リンクを介して他の移動車からネットワーク・インターフェース1324及び/又はワイヤレス・アンテナ1326を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の移動車からの情報を使用する。直接リンクは、移動車対移動車(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対移動車(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の移動車(たとえば、移動車1300と同じレーン内にある、移動車1300の直ぐ前の移動車)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。移動車1300の前方の移動車の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
運転者が修正行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1360を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
AEBシステムは、別の移動車又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1360を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突切迫ブレーキなどの技法を含み得る。
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、移動車1300が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、移動車1300が車線をはみ出し始めた場合に移動車1300を修正するためにステアリング入力又はブレーキを提供する。
BSWシステムは、自動車の死角において移動車の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。本システムは、運転者が方向指示灯を使用するとき、付加的な警告を提供することができる。BSWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、後ろ側を向いたカメラ及び/又はRADARセンサ1360を使用することができる。
RCTWシステムは、車両1300がバックしているときにリアカメラの範囲外で物体が検出されたときに、視覚的、可聴式、及び/又は触覚的通知を提供することができる。いくつかのRCTWシステムは、衝突を避けるために車両ブレーキが適用されることを確実にするために、AEBを含む。RCTWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1個又は複数の後ろを向いたRADARセンサ1360を使用することができる。
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のADASシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある偽陽性結果を生み出す傾向にあることがあった。しかしながら、自律型車両1300では、結果が矛盾する場合には、移動車1300自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ1336又は第2のコントローラ1336)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ADASシステム1338は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム1338からの出力は、監督MCUに提供され得る。1次的コンピュータ及び2次的コンピュータからの出力が矛盾する場合、監督MCUは、安全な動作を確実にするためにその矛盾をどのように調整するかを決定する必要がある。
いくつかの実例では、1次的コンピュータは、選択された結果における1次的コンピュータの信頼性を指示する、信頼性スコアを監督MCUに提供するように構成され得る。信頼性スコアが閾値を超えた場合、監督MCUは、2次的コンピュータが矛盾する又は不整合の結果を与えるかどうかにかかわらず、1次的コンピュータの指示に従い得る。信頼性スコアが閾値を満たさない場合、及び1次的及び2次的コンピュータが異なる結果を示す(たとえば、矛盾する)場合、監督MCUは、コンピュータの間で調停して適切な結果を決定することができる。
監督MCUは、2次的コンピュータが誤ったアラームを提供する状態を、1次的コンピュータ及び2次的コンピュータからの出力に基づいて、判定するようにトレーニング及び構成されたニューラル・ネットワークを実行するように構成され得る。したがって、監督MCU内のニューラル・ネットワークは、2次的コンピュータの出力が信頼され得るとき、及びそれが信頼され得ないときを学習することができる。たとえば、2次的コンピュータがRADARベースのFCWシステムであるとき、監督MCU内のニューラル・ネットワークは、アラームをトリガする下水溝の鉄格子又はマンホールの蓋など、実際には危険ではない金属製の物をいつFCWが識別しているかを学習することができる。同様に、2次的コンピュータがカメラベースのLDWシステムであるとき、監督MCU内のニューラル・ネットワークは、自転車に乗った人又は歩行者が存在し、車線逸脱が、実際には、最も安全な操作であるときに、LDWを無視することを学習することができる。監督MCU上で実行中のニューラル・ネットワークを含む実施例では、監督MCUは、関連メモリを有するニューラル・ネットワークを実行するのに適したDLA又はGPUのうちの少なくとも1個を含み得る。好ましい実施例において、監督MCUは、SoC1304の構成要素を備え得る、及び/又はSoC1304の構成要素として含まれ得る。
他の実例において、ADASシステム1338は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータによって使用されるソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
いくつかの実例では、ADASシステム1338の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム1338が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に偽陽性のリスクを減らす、独自のニューラル・ネットワークを有し得る。
移動車1300は、インフォテインメントSoC1330(たとえば、移動車内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の個別の構成要素を含み得る。インフォテインメントSoC1330は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの移動車関連情報)を移動車1300に提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC1330は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース接続、カーピュータ、車内エンターテインメント、Wi-Fi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ1334、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/又はシステムを制御する及び/又はこれと相互に作用するための)、及び/又は他の構成要素を含んでもよい。インフォテインメントSoC1330は、ADASシステム1338からの情報、計画された移動車操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、移動車情報、道路情報など)、及び/又は他の情報など、移動車のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
インフォテインメントSoC1330は、GPU機能性を含み得る。インフォテインメントSoC1330は、バス1302(たとえば、CANバス、イーサネット(登録商標)など)を介して、移動車1300の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ1336(たとえば、移動車1300の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC1330は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC1330は、本明細書に記載のように、移動車1300をショーファーの安全停止モードにすることができる。
移動車1300は、計器群1332(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群1332は、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。計器群1332は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シートベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントSoC1330及び計器群1332の間で表示及び/又は共有され得る。言い換えれば、計器群1332は、インフォテインメントSoC1330の一部として含まれてもよく、逆もまた同様である。
図13Dは、本開示のいくつかの実施例による、図13Aのクラウドベースのサーバと例示的自律型車両1300との間の通信のシステム図である。システム1376は、サーバ1378、ネットワーク1390、及び、移動車1300を含む移動車を含み得る。サーバ1378は、複数のGPU1384(A)~1384(H)(本明細書でGPU1384と総称される)、PCIeスイッチ1382(A)~1382(H)(本明細書でPCIeスイッチ1382と総称される)、及び/又はCPU1380(A)~1380(B)(本明細書でCPU1380と総称される)を含み得る。GPU1384、CPU1380、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLinkインターフェース1388及び/又はPCIe接続1386などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU1384は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU1384及びPCIeスイッチ1382は、PCIe相互接続を介して接続される。8個のGPU1384、2個のCPU1380、及び2個のPCIeスイッチが図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ1378は、任意の数のGPU1384、CPU1380、及び/又はPCIeスイッチを含み得る。たとえば、サーバ1378は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU1384を含み得る。
サーバ1378は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク1390を介して、移動車から、受信することができる。サーバ1378は、ニューラル・ネットワーク1392、更新されたニューラル・ネットワーク1392、及び/又は、交通及び道路状態に関する情報を含むマップ情報1394をネットワーク1390を介して移動車に送信することができる。マップ情報1394の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ1322の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク1392、更新されたニューラル・ネットワーク1392、及び/又はマップ情報1394は、環境において任意の数の移動車から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ1378及び/又は他のサーバを使用する)データセンタにおいて実行されたトレーニングに基づいて、生じた可能性がある。
サーバ1378は、トレーニング・データに基づいてマシン学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、移動車によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。トレーニングは、たとえば以下のクラスを含むがこれらに限定されない、任意の1個又は複数のクラスのマシン学習技法に従って、実行され得る:監視されたトレーニング、半監視されたトレーニング、監視されていないトレーニング、自己学習、強化学習、連合型学習、転移学習、特徴学習(主要構成要素及びクラスタ分析を含む)、マルチ線形部分空間学習、多様体学習、表現学習(予備辞書学習を含む)、ルールに基づくマシン学習、異常検出、及びそれらの変更形態若しくは組合せ。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、移動車によって使用され得(たとえば、ネットワーク1390を介して移動車に送信される)、及び/又は、マシン学習モデルは、移動車を遠隔監視するために、サーバ1378によって使用され得る。
いくつかの実例では、サーバ1378は、移動車からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ1378は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU1384によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ1378は、CPU電源式データセンタのみを使用する深層学習インフラストラクチャを含み得る。
サーバ1378の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して移動車1300内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、移動車1300がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、移動車1300からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他のマシン学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、移動車1300によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、移動車1300内のAIは正常に機能していないという結論を下した場合、サーバ1378は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように移動車1300のフェイルセーフ・コンピュータに命じる移動車1300への信号を送信することができる。
推論のために、サーバ1378は、GPU1384及び1個又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
例示的計算デバイス
図14は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス1400の一実例のブロック図である。計算デバイス1400は、以下のデバイスを直接的に又は間接的につなぐ相互接続システム1402を含み得る:メモリ1404、1個又は複数の中央処理装置(CPU)1406、1個又は複数のグラフィック処理ユニット(GPU)1408、通信インターフェース1410、入力/出力(I/O)ポート1412、入力/出力構成要素1414、電力供給装置1416、1個又は複数の提示構成要素1418(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット1420。
図14は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス1400の一実例のブロック図である。計算デバイス1400は、以下のデバイスを直接的に又は間接的につなぐ相互接続システム1402を含み得る:メモリ1404、1個又は複数の中央処理装置(CPU)1406、1個又は複数のグラフィック処理ユニット(GPU)1408、通信インターフェース1410、入力/出力(I/O)ポート1412、入力/出力構成要素1414、電力供給装置1416、1個又は複数の提示構成要素1418(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット1420。
図14の様々なブロックは、線で相互接続システム1402を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素1418は、I/O構成要素1414と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU1406及び/又はGPU1408はメモリを含み得る(たとえば、メモリ1404は、GPU1408、CPU1406、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図14の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、「拡張現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図14の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
相互接続システム1402は、1個又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。相互接続システム1402は、1個又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VESA(video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。一部の実施例では、構成要素の間に直接接続が存在する。一実例として、CPU1406は、メモリ1404に直接接続され得る。さらに、CPU1406は、GPU1408に直接接続され得る。構成要素の間に直接、又はポイント対ポイント接続が存在する場合、相互接続システム1402は、接続を実施するためのPCIeリンクを含み得る。これらの実例では、PCIバスは、計算デバイス1400に含まれる必要はない。
メモリ1404は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス1400によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ1404は、オペレーティング・システムなど、(たとえば、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用し得る及び計算デバイス1400によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
コンピュータ記憶媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1個又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、コンピュータ記憶媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
CPU1406は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1400の1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。CPU1406は、多数のソフトウェア・スレッドを同時に処理する能力を有する1個又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU1406は、任意のタイプのプロセッサを含み得、実装された計算デバイス1400のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス1400のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたAdvanced RISC Machines(ARM)プロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス1400は、計算コプロセッサなど、1個又は複数のマイクロプロセッサ又は補助コプロセッサ内の1個又は複数のCPU1406を含み得る。
CPU1406に加えて又はその代わりに、GPU1408は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1400の1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。GPU1408のうちの1個若しくは複数は、統合されたGPU(たとえば、CPU1406のうちの1個又は複数とでもよく、及び/又はGPU1408のうちの1個若しくは複数は、離散GPUでもよい。実施例では、GPU1408のうちの1個又は複数は、CPU1406のうちの1個又は複数のコプロセッサでもよい。GPU1408は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、計算デバイス1400によって使用され得る。たとえば、GPU1408は、GPUによる汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU1408は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU1408は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU1406からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU1408は、画素データ又は任意の他の適切なデータ、たとえばGPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば表示メモリ、を含み得る。表示メモリは、メモリ1404の一部として含まれ得る。GPU1408は、並行して動作する(たとえば、リンクを介して)2個以上のGPUを含み得る。リンクは、GPUに直接接続することができ(たとえば、NVLINKを使用して)、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。共に結合されるとき、各GPU1408は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、独自のメモリを含むことができ、又は他のGPUとメモリを共有することができる。
CPU1406及び/又はGPU1408に加えて又はその代わりに、論理ユニット1420は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1400のうちの1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。実施例では、CPU1406、GPU1408、及び/又は論理ユニット1420は、方法、プロセス及び/又はその部分の任意の組合せを離散的に又は合同で実行することができる。論理ユニット1420のうちの1個若しくは複数は、CPU1406及び/若しくはGPU1408のうちの1個若しくは複数の一部でもよく及び/又はそこで統合されてもよく、及び/又は、論理ユニット1420のうちの1個若しくは複数は、CPU1406及び/若しくはGPU1408に対する離散構成要素であっても若しくは他の方法でそれらの外部にあってもよい。実施例では、論理ユニット1420のうちの1個又は複数は、CPU1406のうちの1個若しくは複数及び/又はGPU1408のうちの1個若しくは複数のコプロセッサでもよい。
論理ユニット1420の実例は、1個又は複数の処理コア及び/又はその構成要素、たとえば、テンソル・コア(TC:Tensor Core)、テンソル処理ユニット(TPU:Tensor Processing Unit)、画素ビジュアル・コア(PVC:Pixel Visual Core)、ビジョン処理ユニット(VPU:Vision Processing Unit)、グラフィックス処理クラスタ(GPC:Graphics Processing Cluster)、テクスチャ処理クラスタ(TPC:Texture Processing Cluster)、ストリーミング・マルチプロセッサ(SM:Streaming Multiprocessor)、木の走査ユニット(TTU:Tree Traversal Unit)、人工知能加速装置(AIA:Artificial Intelligence Accelerator)、深層学習加速装置(DLA:Deep Learning Accelerator)、論理演算ユニット(ALU)、特定用途向け集積回路(ASIC)、浮動小数点演算ユニット(FPU)、I/Oエレメント、周辺構成要素相互接続(PCI)又は周辺構成要素相互接続エクスプレス(PCIe)エレメント、及び/又は同類のもの、を含む。
通信インターフェース1410は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス1400が他の計算デバイスと通信することを可能にする、1個又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース1410は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース、ブルートゥースLE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
I/Oポート1412は、そのうちのいくつかは計算デバイス1400に内蔵(たとえば、統合)され得る、I/O構成要素1414、提示構成要素1418、及び/又は他の構成要素を含む、他のデバイスに計算デバイス1400が論理的に連結されることを可能にすることができる。例示的なI/O構成要素1414は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素1414は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス1400のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス1400は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス1400は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス1400によって使用され得る。
電力供給装置1416は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置1416は、計算デバイス1400の構成要素が動作することを可能にするために計算デバイス1400に電力を提供することができる。
提示構成要素1418は、ディスプレイ(たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はその組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素1418は、他の構成要素(たとえば、GPU1408、CPU1406など)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。
本開示は、コンピュータ又は、携帯情報端末若しくは他のハンドヘルド・デバイスなどの、他のマシンによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又はマシン使用可能命令との一般的関連において説明されることがある。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造体などを含むプログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、家電製品、汎用コンピュータ、より特殊な計算デバイスなどを含む、様々な構成で実施され得る。本開示はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型コンピューティング環境において実施され得る。
本明細書では、2個以上の要素に関する「及び/又は」の記述は、1個の要素のみ、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素A、要素B、及び/又は要素C」は、要素Aのみ、要素Bのみ、要素Cのみ、要素A及び要素B、要素A及び要素C、要素B及び要素C、或いは、要素A、B、及びCを含み得る。加えて、「要素A又は要素Bのうちの少なくとも1個」は、要素Aの少なくとも1個、要素Bの少なくとも1個、或いは、要素Aの少なくとも1個及び要素Bの少なくとも1個を含み得る。さらに、「要素A及び要素Bのうちの少なくとも1個」は、要素Aのうちの少なくとも1個、要素Bのうちの少なくとも1個、或いは、要素Aのうちの少なくとも1個及び要素Bのうちの少なくとも1個を含み得る。
本開示の主題は、法定の要件を満たすために特異性を有して記述されている。しかしながら、その記述自体が本開示の範囲を制限することは意図されていない。そうではなくて、本発明者は、請求されている主題が、他の現在の又は未来の技術と併せて、異なるステップ又は本文書に記載されたものと類似のステップの組合せを含むように、他の形で実施され得ることを意図している。さらに、「ステップ」及び/又は「ブロック」という用語は、使用される方法の異なる要素を含意するように本明細書で使用され得るが、これらの用語は、個別のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて本明細書で開示される様々なステップの間に何らかの特定の順番を暗示するものとして解釈されるべきではない。
Claims (20)
- サブジェクト及び前記サブジェクトに対応する拘束デバイスを表す画像を受信するステップと、
前記拘束デバイスを表すものとしての前記画像のエリアの初期分類を実行するステップと、
1セットの制約を前記画像の前記エリアに適用して前記初期分類を精緻化して精緻化された分類を取得するステップと、
前記精緻化された分類に少なくとも部分的に基づいて、前記拘束デバイスの適用を示すモデルを生成するステップと
を含む、方法。 - 前記初期分類が、画素及び指定された方向に沿った複数の近隣画素を使用して、前記拘束デバイスの一部である1セットの画素を決定することによって実行される、請求項1に記載の方法。
- 前記拘束デバイスの一部である前記1セットの画素を決定することが、前記画素及び前記指定された方向に沿った前記複数の近隣画素の強度レベルに少なくとも部分的に基づく、請求項2に記載の方法。
- 前記拘束デバイスが、前記拘束デバイスの幅サイズと車両内の前記拘束デバイスの1個又は複数のアンカーとを少なくとも含む、1個又は複数の属性を備える、請求項1に記載の方法。
- 前記画像が、カメラのキャリブレーション、カメラ姿勢、及びカメラ・レンズのタイプを少なくとも含む、1個又は複数の構成を備える前記カメラによってキャプチャされる、請求項1に記載の方法。
- 前記拘束デバイスが前記サブジェクトに対して不適切な場所にあることを指示するための信号をアクティブにするステップ
をさらに含む、請求項1に記載の方法。 - 前記拘束デバイスの形状を近似する前記モデルを使用して、前記サブジェクトに対する前記拘束デバイスの場所を判定するステップ
をさらに含む、請求項1に記載の方法。 - システムであって、
1個又は複数のプロセッサと、
コンピュータ実行可能命令を記憶するメモリと
を備え、前記コンピュータ実行可能命令が、
サブジェクトに適用された拘束デバイスを表すものとしての画像のエリアの初期分類を実行すること、
1セットの制約を前記画像の前記エリアに適用して前記初期分類を精緻化して精緻化された分類を取得すること、及び
前記精緻化された分類に少なくとも部分的に基づいて、前記拘束デバイスの適用を示すモデルを生成すること
を前記システムに行わせるために前記1個又は複数のプロセッサによって実行可能である、システム。 - 前記モデルが、前記拘束デバイスの形状にマッチするように計算された係数を有する多項式曲線を含む、請求項8に記載のシステム。
- 前記システムが、並列処理装置(PPU)を備え、
前記画像が、1個又は複数のエリアを含み、
前記1個又は複数のエリアが、前記PPUの1個又は複数のスレッドを並行して使用して分類される、請求項8に記載のシステム。 - 前記モデルが、前記拘束デバイスが前記サブジェクトに正しく適用されているかを指示する、請求項8に記載のシステム。
- 前記1セットの制約が、幅の範囲を少なくとも含む、請求項8に記載のシステム。
- 前記画像の前記エリアが、前記画像の1個又は複数の画素のグループ分けに対応する、請求項8に記載のシステム。
- 前記画像が、車両の1個又は複数のシステムからの1個又は複数のネットワークから取得される、請求項8に記載のシステム。
- 前記拘束デバイスの前記モデルが、前記1個又は複数のネットワークを介して前記車両の前記1個又は複数のシステムに提供される、請求項14に記載のシステム。
- 車両であって、
推進システムと、
前記車両の少なくとも1人の乗客の画像をキャプチャすることができる画像キャプチャ・デバイスと、
命令を含むコンピュータ・システムと
を備え、前記命令が、少なくとも、
サブジェクト及び前記サブジェクトに適用された拘束デバイスを表す画像にアクセスすること、
前記拘束デバイスを表すものとしての前記画像のエリアの初期分類を実行すること、
1セットの制約を前記画像の前記エリアに適用して前記初期分類を精緻化して精緻化された分類を取得すること、
前記精緻化された分類に少なくとも部分的に基づいて、前記拘束デバイスの適用を示すモデルを生成すること、及び
前記モデルに少なくとも部分的に基づいて前記車両の少なくとも1個のサブシステムの機能を制御すること
を行うために前記コンピュータ・システムによって実行可能である、車両。 - 前記拘束デバイスが、前記車両のシートベルトである、請求項16に記載の車両。
- 前記車両の前記1個のサブシステムが、前記拘束デバイスが着用され正しく適用されているかどうかを指示する警告システムである、請求項16に記載の車両。
- 前記車両の前記1個のサブシステムが、前記推進システムを介して前記車両の推進を制御するための信号を送る、請求項16に記載の車両。
- 前記車両の前記1個のサブシステムが、前記拘束デバイスが着用され正しく適用されているかどうかの指示を1個又は複数のリモート・システムに送信する、請求項16に記載の車両。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/137,256 US20220203930A1 (en) | 2020-12-29 | 2020-12-29 | Restraint device localization |
US17/137,256 | 2020-12-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022104773A true JP2022104773A (ja) | 2022-07-11 |
Family
ID=81972208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021034426A Pending JP2022104773A (ja) | 2020-12-29 | 2021-03-04 | 拘束デバイスのローカリゼーション |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220203930A1 (ja) |
JP (1) | JP2022104773A (ja) |
CN (1) | CN114684062A (ja) |
DE (1) | DE102021132987A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11951935B2 (en) * | 2021-07-22 | 2024-04-09 | GM Global Technology Operations LLC | System and method for assessing seatbelt routing using seatbelt routing zones that are based on size and shape of occupant |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008130219A1 (en) * | 2007-04-19 | 2008-10-30 | Tele Atlas B.V. | Method of and apparatus for producing road information |
AU2007361004A1 (en) * | 2007-11-16 | 2009-05-22 | Tele Atlas B.V. | Method of and apparatus for producing lane information |
US8989483B2 (en) * | 2011-06-10 | 2015-03-24 | Sri International | Method and apparatus for inferring the geographic location of captured scene depictions |
US9330296B2 (en) * | 2013-03-15 | 2016-05-03 | Sri International | Recognizing entity interactions in visual media |
US10121254B2 (en) * | 2013-08-29 | 2018-11-06 | Disney Enterprises, Inc. | Methods and systems of detecting object boundaries |
CN104417490B (zh) * | 2013-08-29 | 2017-12-26 | 同观科技(深圳)有限公司 | 一种汽车安全带检测方法及装置 |
US9676356B2 (en) * | 2014-03-10 | 2017-06-13 | Ford Global Technologies Llc | System and method for seatbelt use monitoring |
US9365186B2 (en) * | 2014-08-17 | 2016-06-14 | Toyota Motor Engineering & Manufacturing North America, Inc. | Advanced seatbelt interlock using video recognition |
US9650016B2 (en) * | 2014-12-04 | 2017-05-16 | GM Global Technology Operations LLC | Detection of seatbelt position in a vehicle |
US9818048B2 (en) * | 2015-01-19 | 2017-11-14 | Ebay Inc. | Fine-grained categorization |
WO2016201609A1 (zh) | 2015-06-15 | 2016-12-22 | 北京大学深圳研究生院 | 金属氧化物薄膜晶体管、显示面板及两者的制备方法 |
CN106332049B (zh) | 2015-06-16 | 2019-07-19 | 深圳市中兴微电子技术有限公司 | 一种终端及终端卡的自适配方法 |
CN105373779B (zh) * | 2015-11-10 | 2018-09-28 | 北京数字智通科技有限公司 | 一种车辆安全带智能检测方法及智能检测系统 |
CN106446767A (zh) * | 2016-07-30 | 2017-02-22 | 桐城市祥瑞机动车辆检测有限公司 | 一种基于视频分析的未系安全带行为检测方法 |
JP6629434B2 (ja) * | 2016-08-31 | 2020-01-15 | 東芝デジタルソリューションズ株式会社 | 装着検出装置、撮影装置、拘束装置及び装着検出プログラム |
US10962939B1 (en) * | 2017-04-18 | 2021-03-30 | Amazon Technologies, Inc. | Fine-grain content moderation to restrict images |
WO2018213346A1 (en) * | 2017-05-15 | 2018-11-22 | Joyson Safety Systems Acquisition Llc | Detection and monitoring of occupant seat |
US10838425B2 (en) * | 2018-02-21 | 2020-11-17 | Waymo Llc | Determining and responding to an internal status of a vehicle |
US11507800B2 (en) * | 2018-03-06 | 2022-11-22 | Adobe Inc. | Semantic class localization digital environment |
US10953850B1 (en) * | 2018-04-05 | 2021-03-23 | Ambarella International Lp | Seatbelt detection using computer vision |
US10818028B2 (en) * | 2018-12-17 | 2020-10-27 | Microsoft Technology Licensing, Llc | Detecting objects in crowds using geometric context |
US11046273B2 (en) * | 2019-01-22 | 2021-06-29 | GM Global Technology Operations LLC | Seat belt status determining system and method |
US10850702B2 (en) * | 2019-03-18 | 2020-12-01 | Pony Ai Inc. | Vehicle seat belt monitoring |
US20210086715A1 (en) * | 2019-09-25 | 2021-03-25 | AISIN Technical Center of America, Inc. | System and method for monitoring at least one occupant within a vehicle using a plurality of convolutional neural networks |
CN111476224B (zh) * | 2020-06-28 | 2020-10-09 | 杭州鸿泉物联网技术股份有限公司 | 安全带检测方法、装置、电子设备及系统 |
CN111950348A (zh) * | 2020-06-29 | 2020-11-17 | 北京百度网讯科技有限公司 | 安全带的佩戴状态识别方法、装置、电子设备和存储介质 |
-
2020
- 2020-12-29 US US17/137,256 patent/US20220203930A1/en active Pending
-
2021
- 2021-03-04 JP JP2021034426A patent/JP2022104773A/ja active Pending
- 2021-12-14 DE DE102021132987.6A patent/DE102021132987A1/de active Pending
- 2021-12-28 CN CN202111628623.XA patent/CN114684062A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114684062A (zh) | 2022-07-01 |
US20220203930A1 (en) | 2022-06-30 |
DE102021132987A1 (de) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11841458B2 (en) | Domain restriction of neural networks through synthetic data pre-training | |
US11508049B2 (en) | Deep neural network processing for sensor blindness detection in autonomous machine applications | |
US20240127454A1 (en) | Intersection region detection and classification for autonomous machine applications | |
US11934955B2 (en) | Neural network based facial analysis using facial landmarks and associated confidence values | |
US20240034260A1 (en) | In-cabin hazard prevention and safety control system for autonomous machine applications | |
US11688074B2 (en) | Data augmentation including background modification for robust prediction using neural networks | |
US11841987B2 (en) | Gaze determination using glare as input | |
US20230054759A1 (en) | Object tracking using lidar data for autonomous machine applications | |
US20220135075A1 (en) | Safety decomposition architecture for autonomous machine applications | |
US20230110713A1 (en) | Training configuration-agnostic machine learning models using synthetic data for autonomous machine applications | |
US11886634B2 (en) | Personalized calibration functions for user gaze detection in autonomous driving applications | |
US20240059295A1 (en) | Multi-view geometry-based hazard detection for autonomous systems and applications | |
US20230341235A1 (en) | Automatic graphical content recognition for vehicle applications | |
CN116767245A (zh) | 使用自主系统和应用的神经网络的地图信息对象数据管理 | |
US20220203930A1 (en) | Restraint device localization | |
CN116263688A (zh) | 在自主系统和应用程序中使用特征描述符绘图进行单个和跨传感器对象追踪 | |
US11704814B2 (en) | Adaptive eye tracking machine learning model engine | |
CN116263944A (zh) | 针对自主系统和应用程序使用图像对比度分析的眩光减轻 | |
JP2023051713A (ja) | 自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 | |
US20240022601A1 (en) | Detecting identity spoofing attacks in multi-sensor systems and applications | |
CN117011329A (zh) | 用于自主系统和应用的对象追踪和碰撞时间估计 | |
CN117516565A (zh) | 用于在自主系统和应用中导航的车道偏置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240228 |