JP2022117916A - 自律マシン・アプリケーションのための配備されたディープ・ニューラル・ネットワークのパッチ - Google Patents
自律マシン・アプリケーションのための配備されたディープ・ニューラル・ネットワークのパッチ Download PDFInfo
- Publication number
- JP2022117916A JP2022117916A JP2021107164A JP2021107164A JP2022117916A JP 2022117916 A JP2022117916 A JP 2022117916A JP 2021107164 A JP2021107164 A JP 2021107164A JP 2021107164 A JP2021107164 A JP 2021107164A JP 2022117916 A JP2022117916 A JP 2022117916A
- Authority
- JP
- Japan
- Prior art keywords
- dnn
- pnn
- nodes
- output
- data
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 64
- 238000012549 training Methods 0.000 claims description 59
- 238000013135 deep learning Methods 0.000 claims description 13
- 238000004088 simulation Methods 0.000 claims description 9
- 230000009471 action Effects 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000013138 pruning Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 33
- 230000004927 fusion Effects 0.000 abstract description 30
- 230000009849 deactivation Effects 0.000 abstract description 3
- 239000010410 layer Substances 0.000 description 95
- 230000015654 memory Effects 0.000 description 54
- 230000006870 function Effects 0.000 description 51
- 238000001514 detection method Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 28
- 238000003860 storage Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 22
- 238000013527 convolutional neural network Methods 0.000 description 21
- 239000013598 vector Substances 0.000 description 21
- 238000010801 machine learning Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 15
- 238000012360 testing method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 230000003190 augmentative effect Effects 0.000 description 6
- 238000013439 planning Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 235000019800 disodium phosphate Nutrition 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 241000269400 Sirenidae Species 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 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 4
- 229920002451 polyvinyl alcohol Polymers 0.000 description 4
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 4
- 239000002356 single layer Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000012419 revalidation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 101100175317 Danio rerio gdf6a gene Proteins 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000002059 diagnostic imaging Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- PVFZKRMYBKEXBN-UHFFFAOYSA-N piperidine;piperidine-1-carbodithioic acid Chemical compound C1CCNCC1.SC(=S)N1CCCCC1 PVFZKRMYBKEXBN-UHFFFAOYSA-N 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012706 support-vector machine Methods 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
- 206010034960 Photophobia Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 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
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
- G05B13/027—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
- B60W2050/0018—Method for the design of a control system
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0062—Adapting control system settings
- B60W2050/0075—Automatic parameter input, automatic initialising or calibrating means
- B60W2050/0083—Setting, resetting, calibration
- B60W2050/0088—Adaptive recalibration
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/403—Image sensing, e.g. optical camera
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Game Theory and Decision Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Human Computer Interaction (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
- Image Analysis (AREA)
Abstract
【課題】ディープ・ニューラル・ネットワーク(DNN)の故障モードで効果的に動作するようにトレーニングされたパッチ・ニューラル・ネットワーク(PNN)を配備することによる、DNNの故障モードの迅速な解決を提供する。【解決手段】PNNは、DNNと同じ又は付加的データに作用し、DNNの故障モードに対処するDNNを使用して生成されたものに加えて新しい信号を生成する。融合機構は、DNN/PNNの組合せの所与のインスタンスにどの出力が依拠するかを決定するために使用される。結果として、DNNの故障モードは、DNNの最小限の非アクティブ化若しくは停止時間、DNNを使用して制御される特徴、及び/又は全体としての半自律又は自律機能性を必要とするタイムリーな方式で対処される。【選択図】図1A
Description
自律型車両及び半自律型車両は、ディープ・ニューラル・ネットワーク(DNN:deep neural network)を活用して動作中の様々なタスク-たとえば、制限なしに、物体の検出、分類、及び/若しくは追跡、進路プランニング、制御決定、障害物回避、並びに/又は他の運転関連タスク-の実行を助ける。自律及び半自律運転操作の安全重視の特質により、これらのDNNは、正確及び精密でなければならないが、操作可能な車両における配備の前に広範囲の検証及び検査も受けなければならない。たとえば、DNNのトレーニング、検査、及び検証には、場合によっては-特に、規制及び/又は相手先商標製品製造会社(OEM:original equipment manufacturer)要件が満たされなければならない場合には-6カ月から1年以上を要する。たとえば、OEMは、再トレーニングされたDNNが、たとえばDNNの検査中に数千マイルにわたって、観測されるシステムのビヘイビアの変化をもたらさないことを要求することがある。この非常に長いスケジュールは、車両の自律機能性に関わる安全上の注意による消費者の期待するターンアラウンド・タイムとは正反対にある。たとえば、消費者は、半自律又は自律特徴を使用して車両を操作して快適に感じるためには、故障モードが数時間又は数日以内に対処されることを期待し得る。
従来の手法は、DNNの故障モードに対応するトレーニング・データ・インスタンスを含む付加的トレーニング・データを使用してDNNを再トレーニングすることによって、この問題に対処する。この再トレーニング及び検証期間中-たとえば、6カ月から1年以上-DNNは、故障モードがまだ存在する状態で動作させられ得る又はDNNの非アクティブ化をもたらし得、その特徴は、DNN、及び/又は全体としての半自律若しくは自律機能性を使用して制御される。しかしながら、これらの再トレーニングされたDNNが使用される場合でも、再トレーニングされたDNNは、トレーニング、検査、又は検証中に識別されなかった新しい又は付加的故障モードに悩まされ得る。たとえば、識別された故障モードに対処するための再トレーニング中に、検査、トレーニング、及び検証中には具体化しなかった新しい故障モード-たとえば、予想しない物体タイプ又は道路プロファイル又は姿勢タイプ、ある種の気象条件の影響などによる-が、表面化し得る。それぞれの新しい故障モードは、次いで、車両の1つ又は複数の特徴が延長された期間にわたって使用不可能である結果をもたらし得るカスケード効果を生み出し-それによって、否定的なユーザ体験及び潜在的には消費者による製品への信頼の欠如を引き起こし-、DNNが再トレーニングされることを必要とする。そのようなものとして、これらの再検証手法は、長期にわたり、費用がかかり、運転可能な環境に配備されたDNNの故障モードのパッチのためには一般的に実行不可能である。
本開示の実施例は、ディープ・ニューラル・ネットワーク(DNN)のためのパッチのトレーニング及び配備に関する。DNNの配備される動作中に発見されたDNN故障モードの迅速な解決を可能にするシステム及び方法について、開示する。たとえば、故障モードが実現されるたびにDNNを再トレーニング、再検査、及び再検証することに加えて又はその代わりに、故障モードのDNNで効果的に動作するようにトレーニングされた1つ又は複数のパッチ・ニューラル・ネットワーク(PNN:patch neural network)が、DNNに要求せずに故障モードに対処する-少なくとも一時的に-ように配置され得、特徴は、DNN、及び/又は非アクティブ化されることになる全体としての半自律又は自律機能性を使用して制御される。結果として、DNN又はシステムの他の部分の停止時間は、従来のシステムと比較して、劇的に減らされ得る。加えて、PNNの配備中、DNNの更新バージョンは、車両における配備より前にトレーニング、試験、及び検証され得、その時点で、DNNの故障モードに対処するために使用される特定のPNNは、もはや必要とされなくなり得る。
PNNは、DNNと同じ又は付加的データに作用し得、DNNを使用して生成されたものに加えて新しい信号を生成し得る。たとえば、実施例において、PNNは、DNNの故障モードに対処する出力を生成する-DNNと類似の又は同じ出力タイプを計算することに加えて-ようにトレーニングされ得る。融合機構が、DNN及びPNNの出力を評価するために及び/又はDNN/PNNの組合せの所与のインスタンスについてどの出力に依拠すべきかを決定するための付加的基準を評価するために、使用され得る。トレーニング中、PNNのパラメータ(たとえば、重み及びバイアス)は、DNNの故障モードに対処するために選択される新しいトレーニング・データに加えたDNNをトレーニングするために使用される初期トレーニング・データの組合せを使用して、トレーニングされ得る。PNNの新しい又は更新された出力に加えてDNNの出力をPNNが再作成することを可能にしながら、DNNの初期性能が維持されるように、DNNのパラメータは、DNNのトレーニング中、固定又は凍結され得る。PNNの導入は、入力データを処理するために必要とされるPNNの付加的ノード及び/又は層により、付加的計算を必要とし得る。そのようなものとして、PNNは、層全体及び/又は層のノードを取り除いてシステムへのPNNの計算及びレイテンシの影響を減らすために、トレーニング中に枝刈りを受け得る。
いくつかの実施例において、トレーニングされた後、PNN及び/又は融合機構は、
消費者車両に無線で(OTA:over the air)プッシュされ得、受動又は非アクティブ・モードで実行され得、そこでは、コードは、実行されるが、作動又は作用させられない。この(たとえば、受動)モード中に記録されたデータは、PNN及び/若しくは融合機構の性能を検証するために、又はどこで付加的トレーニングが必要とされるかを指示するために、評価され得る。そのようなものとして、システム内のPNN機能性のトレーニング及び検証は、配備されたDNNを既に実行している車両の消費者フリート(consumer fleet)を活用することによって、促進され得る-それによって、PNNの厳しい検査及び検証標準に加えて消費者の高速ターンアラウンド・タイム期待値を満たす可能性を高める。
消費者車両に無線で(OTA:over the air)プッシュされ得、受動又は非アクティブ・モードで実行され得、そこでは、コードは、実行されるが、作動又は作用させられない。この(たとえば、受動)モード中に記録されたデータは、PNN及び/若しくは融合機構の性能を検証するために、又はどこで付加的トレーニングが必要とされるかを指示するために、評価され得る。そのようなものとして、システム内のPNN機能性のトレーニング及び検証は、配備されたDNNを既に実行している車両の消費者フリート(consumer fleet)を活用することによって、促進され得る-それによって、PNNの厳しい検査及び検証標準に加えて消費者の高速ターンアラウンド・タイム期待値を満たす可能性を高める。
ディープ・ニューラル・ネットワーク(DNN)のパッチのトレーニング及び配備のための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
ディープ・ニューラル・ネットワーク(DNN)のパッチのトレーニング及び配備に関するシステム及び方法について、開示する。本開示は、例示的自律型車両500(本明細書で別法として「車両500」又は「エゴ車両500」と称され、その実例は図5A~5Dを参照して説明される)に関して説明されることがあるが、これは限定を意図していない。たとえば、本明細書に記載のシステム及び方法は、制限なしに、非自律型車両、半自律型車両(たとえば、1つ又は複数の適応型運転者支援システム(ADAS:adaptive driver assistance system)における)、操縦される若しくは操縦されないロボット若しくはロボット・プラットフォーム、倉庫車両、オフロード車両、1つ又は複数のトレーラに連結された車両、飛行船舶、ボート、シャトル、緊急対応車両、オートバイ、電気若しくは原動機付自転車、航空機、建設車両、潜水艦、ドローン、及び/又は他の車両タイプによって使用され得る。加えて、本開示は、半自律又は自律マシン機能性に関して説明されることがあるが、これは限定を意図しておらず、本明細書に記載のシステム及び方法は、拡張現実、仮想現実、複合現実、ロボット工学、セキュリティ及び監視、自律若しくは半自律マシン・アプリケーション、医用画像アプリケーション、言語処理アプリケーション、スマート・ホーム・アプリケーション、深層学習アプリケーション、及び/又は、ニューラル・ネットワーク若しくは他のタイプのマシン学習モデルが使用され得る、任意の他の技術空間において使用され得る。
図1Aを参照すると、図1Aは、本開示のいくつかの実施例による、配備中のパッチ・ニューラル・ネットワーク(PNN)104Bを実行するための例示的プロセスを示すデータ流れ図である。本明細書に記載のこの及び他の配置は、単に実例として説明されていることを理解されたい。他の構成及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ化など)が、図示されたものに加えて又はそれらの代わりに使用され得、いくつかの要素は、完全に省略され得る。さらに、本明細書に記載の要素の多数は、個別の若しくは分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサによって実施され得る。いくつかの実施例において、ディープ・ニューラル・ネットワーク(DNN)104(たとえば、PNN104B及び/又はベースDNN104Aを含む)のトレーニング及び/又は配備は、図5A~5Dの車両500、図6の例示的計算デバイス600、及び/又は図7の例示的データ・センタ700に関して本明細書で説明されるのと類似の構成要素、特徴、及び/又は機能性を使用して、少なくとも部分的に、実行され得る。DNN104は、結合されたDNN104-たとえば、ベースDNN104A及びPNN104Bの組合せを含む-と本明細書で称され得る。
プロセス100は、1つ又は複数のソース(たとえば、車両500のセンサ、ロボット、VR、AR、若しくは複合現実システム、医用画像デバイス、音声処理のためのデバイスのマイクロフォン、及び/又は別のソース・タイプ)から入力データ102を生成及び/又は受信することを含み得る。いくつかの実施例において、入力データ102(別法として「センサ・データ102」と称される)は、非限定的実例として、車両(たとえば、本明細書に記載の図5A~5Dの車両500)の1つ又は複数のセンサから、受信され得る。センサ・データ102は、任意の数の動作-たとえば、物体検出、分類、及び/又は追跡、進路プランニング、制御動作、交差点構造検出、道路レイアウト決定、マッピング及びローカリゼーションなど-を実行するために、1つ又は複数のベースDNN104A及び/又は1つ又は複数のPNN104Bのトレーニング及び/又は配備中に、プロセス100内で、車両500によって、使用され得る。トレーニング中、センサ・データ102は、DNN、たとえば、DNN104、をトレーニングするためのセンサ・データを生成する1個若しくは複数のデータ収集車を使用して生成され得る、及び/又は事前に生成され、トレーニング・データ・セットに含まれ得る。トレーニング中に使用されるセンサ・データ102は、追加で又は別法として、シミュレーションされたセンサ・データ(たとえば、仮想環境において仮想車両の1個又は複数の仮想センサを使用して生成されるセンサ・データ)及び/又は拡張センサ・データ(たとえば、それぞれ、1個又は複数のデータ収集車を使用して生成された及び仮想データで修正されたセンサ・データ)を使用して生成され得る。車両500においてトレーニング及び配備された後は、センサ・データ102は、本明細書に記載のように、車両500の1個又は複数のセンサによって生成され得、様々な出力106を計算するためにDNN104によって処理され得る。
PNN104Bのトレーニング中など、いくつかの実施例において、トレーニング・センサ・データは、PNN104Bが対処するようにトレーニングされたベースDNN104Aの1つ又は複数の故障モードを説明するようにベースDNN104Aをトレーニングするために使用されるそれ以上の追加及び/又は代替トレーニング・データを含み得る。たとえば、エンド・ユーザの製品又はシステムにおけるベースDNN104Aの故障モードが、識別され得、故障モードをもたらした入力データ102が、収集され、PNN104Bをトレーニングするために使用され得る。いくつかの実施例において、ベースDNN104A及び/又はPNN104Bのシャドウ・モードは、ベースDNN104Aが故障を経験した場合及び/又はPNN104Bの出力106がより信頼できる若しくは正確であると判定された場合に入力データ・インスタンスを識別するために使用され得る。ベースDNN104Aの故障モードに対応するこれらの識別された入力データ・インスタンスはまた、1つ又は複数のデータ集合体車両から、車両の消費者フリートから、及び/又はシミュレーション環境内の付加的トレーニング入力データの集合体を導くために使用され得る(たとえば、ベースDNN104Aが、電動スクータに関する故障モードを有する場合、PNN104Bをトレーニングするための合成トレーニング・データ・インスタンスを生成するために、電動スクータを含んで、シミュレーションが実行され得る)。
したがって、センサ・データ102は、たとえば及び図5A~5Cを参照すると、RADARセンサ560、超音波センサ562、LIDARセンサ564、ステレオ・カメラ568、ワイドビュー・カメラ570(たとえば、魚眼カメラ)、赤外線カメラ572、サラウンド・カメラ574(たとえば、360度カメラ)、長距離及び/若しくは中範囲カメラ578、マイクロフォン596、IMUセンサ566、GNSSセンサ558、速度センサ544、並びに/又は他のセンサ・タイプを含む車両500のセンサのいずれかからのセンサ・データ102を含み得るが、これらに限定されない。別の実例として、センサ・データ102は、仮想(たとえば、試験)環境内の仮想車両又は他の仮想物体の任意の数のセンサから生成された仮想(たとえば、シミュレーションされた又は拡張)センサ・データを含み得る。そのような一実例において、仮想センサは、シミュレーションされる環境(たとえば、DNNパフォーマンスを試験、トレーニング、及び/又は検証するために使用される)内の仮想車両又は他の仮想物体に対応し得、仮想センサ・データは、シミュレーションされた又は仮想環境内の仮想センサによってキャプチャされたセンサ・データを表し得る。そのようなものとして、仮想センサ・データを使用することによって、本明細書に記載のDNN104は、そのような試験の安全性は低くなり得る、現実世界環境外のより極端なシナリオの試験を可能にし得る、シミュレーション環境におけるシミュレーション又は拡張データを使用して、試験、トレーニング、及び/又は検証され得る。
いくつかの実施例において、センサ・データ102は、画像を表す画像データ、ビデオを表す画像データ(たとえば、ビデオのスナップショット)、及び/又はセンサの知覚フィールドの表現を表すセンサ・データ(たとえば、LIDARセンサの深度図、超音波センサの値グラフなど)を含み得る。センサ・データ102が、画像データを含む場合、たとえば、JPEG(Joint Photographic Experts Group)若しくは輝度/クロミナンス(YUV:Luminance/Chrominance)フォーマットなどの圧縮画像、H.264/AVC(Advanced Video Coding)若しくはH.265/HEVC(High Efficiency Video Coding)などの圧縮ビデオ・フォーマットから生じるフレームのような圧縮画像、RCCB(Red Clear Blue)、RCCC(Red Clear)、若しくは他のタイプの画像センサなどに由来するものなどの未加工画像、及び/又は他のフォーマットを含むがこれらに限定されない、任意のタイプの画像データ・フォーマットが、使用され得る。加えて、いくつかの実例において、センサ・データ102は、前処理なしに(たとえば、未加工の又はキャプチャされたフォーマットにおいて)プロセス100内で使用され得るが、他の実例において、センサ・データ102は、前処理(たとえば、ノイズ・バランシング、デモザイク処理、スケーリング、クロップ、拡張、ホワイト・バランシング、トーン・カーブ調整など、たとえば、センサ・データ・プリプロセッサ(図示せず)を使用する)を受け得る。本明細書では、センサ・データ102は、未処理のセンサ・データ、前処理されたセンサ・データ、又はその組合せを指し得る。
ベースDNN104A及び/又はPNN104Bをトレーニングするために使用される入力データ102は、初期の入力データ(たとえば、1つ又は複数の画像センサによってキャプチャされるものとしての)、ダウンサンプリングされた入力データ、アップサンプリングされた入力データ、クロップされた若しくは関心領域(ROI:region of interest)の入力データ、他の方法で拡張された入力データ、及び/又はその組合せを含み得る。DNN104が許容又は最適レベルの正確性に収束するまで、DNN104は、1つ又は複数の損失関数を使用し、入力データ102並びに対応するグラウンド・トゥルース・データを使用して、トレーニングされ得る。
DNN104-たとえば、ベースDNN104A及び/又はPNN104B-が車両500以外で実装される、実施例において、入力データ102は、DNNが処理する能力を有し得る、任意のタイプのデータを含み得る。たとえば、入力データ102は、オーディオ・データ(たとえば、スペクトログラム)、画像データ、テキスト・データ、位置データ、センサ・データ(たとえば、LiDARセンサ、RADARセンサなどからの)、及び/又はDNNによって処理するための適切なフォーマットで(たとえば、入力ベクトル又はテンソルとして)表すことができる他のデータ・タイプを含み得る。
入力データ102は、1つ又は複数のDNN104-ベースDNN104A及びPNN104Bを含み得る-に適用され得る。たとえば、ベースDNN104Aは、1つ又は複数の故障モードを有した-配備後又は動作中に-初期の又は前にトレーニングされたDNNを含み得る。たとえば、物体検出に関して、ベースDNN104Aが交通弱者(VRU:vulnerable road user)を識別するようにトレーニングされた場合に、故障モードは生じ得る。そのような一実例において、配備された後には、スクータ-たとえば、電動スクータ-に乗った人を含むVRUに直面したとき、ベースDNN104Aは、十分正確ではないと判定され得る。そのようなものとして、PNN104Bは、専用電動スクータ検出器としてトレーニングされ得る。別の実例として、たとえば、ベースDNN104Aの出力に基づいて車両500が横断するのが困難な道路の特定の区間のパッチ適用に関して、PNN104Bは、その道路の特定の区間及び/又はその道路の特定の区間に類似する複数の道路区間に対処するようにトレーニングされ得る。そのようなものとして、既存の信号112が、たとえば、車両600がその道路の区間にある又はそこに近づいていることを示す、マッピング又はナビゲーション・システムから受信され得るとき、PNN104Bの出力は、ベースDNN104Aの不正確性又は故障モードを説明するために使用され得る。さらなる一実例として、物体分類に関して、車両分類器としてトレーニングされたベースDNN104Aは、正確に新しい乗用車モデル-たとえば、未来の出現するトラック-を分類するのに困難なときを有し得る。この実例では、PNN104Bは、新しい乗用車モデルを正確に分類するようにトレーニングされ得る。
実例が、DNN104としてのニューラル・ネットワークの使用に関して、本明細書で説明されているが、これは限定を意図していない。たとえば、そして制限なしに、本明細書に記載のDNN104は、任意のタイプのマシン学習モデル、たとえば、線形回帰、ロジスティック回帰、決定木、サポート・ベクトル・マシン(SVM:support vector machine)、ナイーブ・ベイズ、k近傍法(Knn:k-nearest neighbor)、K平均クラスタリング、ランダム・フォレスト、次元縮小アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク(たとえば、オートエンコーダ、畳み込み、再発、パーセプトロン、長/短期メモリ(LSTM:Long/Short Term Memory)、ホップフィールド、ボルツマン、ディープ・ビリーフ、デコンボリューション、敵対的生成、液体状態マシンなど)を使用するマシン学習モデル、及び/又は他のタイプのマシン学習モデル、を含み得る。PNN104Bは、ベースDNN104Aと同タイプのDNNを含み得る、又は異なるタイプのDNNを含み得る。
ベースDNN104Aは、トレーニング・データ・セットでトレーニング、試験、及び検証され得、検証された後には、車両500において使用するために配備され得る。故障モードが識別されると、PNN104Bは、実施例では、ベースDNN104Aの故障モードを説明するために生成又は取得された追加又は代替トレーニング・データとともにベースDNN104Aをトレーニングするために使用されるトレーニング・データ・セットからのトレーニング・データの一部又はすべてを、使用するトレーニングを受けることによって、ベースDNN104Aの故障モードを直す又は説明するようにトレーニングされ得る。PNN104Bのトレーニング中、ベースDNN104Aのパラメータ(たとえば、重み及びバイアス)は、ベースDNN104Aがそれの前の検証状態から変更されないように、固定され得る。加えて、ベースDNN104AがPNN104Bの層又はノードの出力を処理しないように、PNN104Bのノードの出力とベースDNN104Aのノードの入力との関係は、固定又は0に設定され得る。これに対して、ベースDNN104Aのノードの出力とPNN104Bのノードの入力との関係に関連するパラメータは、PNN104Bが、PNN104Bのノード又は層に加えてベースDNN104Aのノード又は層の出力を処理するように、トレーニングされ得る。
たとえば、図1Bに示すように、入力データ102は、ベースDNN104AとPNN104Bとの両方の層126(たとえば、入力層126A-1及び126B-1)に適用され得、ベースDNN104Aの層126Aの出力は、次の層126Aの入力及びPNN104Bの次の層126Bの入力に渡され得、その一方で、PNN104Bの層126Bの出力は、PNN104Bの次の層126Bの入力のみに渡され得る。図1BのDNN/PNNの組合せの拡大図が、図2Aに示されている。そのような一実例において、ベースDNN104Aの完全性は、保持され得、その一方で、PNN104Bは、ベースDNN104Aの故障モードのみに対処し得る。PNN104Bは、実施例において、ベースDNN104Aの出力106A及び/又はベースDNN104Aのそれら以上の追加又は代替出力106Bのそれぞれを予測することができる。たとえば、ベースDNN104Aが、車両クラス及び自転車乗用者クラスの信頼性値を計算するようにトレーニングされる場合、PNN104Bは、PNN104Bの車両クラス、自転車乗用者クラス、及び付加的クラス-たとえば、電動スクータ・クラス-の信頼性値を計算するようにトレーニングされ得る。そのようなものとして、融合機構108が、PNN104Bの出力106Bは所与の反復又は時間ステップのために使用されるべきであることを示す場合、出力106Bは、ベースDNN104Aのそれら及びPNN104Bのそれらを含み得る。そのような一実例において、PNN104Bの付加的な、修正された、又は代替の出力は、依拠されるべきであるが、融合機構108が、PNN104Bの出力106BにベースDNN104Aの出力のインスタンスを含むことによって、所与の反復又は時間ステップについて依拠するための誤った出力を指示したインスタンスでは、融合された出力114は、まだ正確になり得る(たとえば、融合機構108が、所与の反復のためにベースDNN104Aを適切に選択した場合、融合された出力114は、ベースDNN104Aの出力106Aをまだ反映し得る)。そのようなものとして、更新されたベースDNN104Aが、完全な再検証プロセスを受けるまで、PNN104Bは、規制機関及び/又はOEMの検査及び検証要件により、ベースDNN104Aの故障モードのみについて実装され得る、より優れた-故障モードが補正された-バージョンのベースDNN104Aを実行するようにトレーニングされ得る。
しかしながら、いくつかの実施例において、PNN104Bは、ベースDNN104Aの出力106Aに関して固有の出力106Bを計算するようにトレーニングされ得る。さらに、図2B及び3Aに関して本明細書で説明されるものなどの、実施例において、単一出力が、ベースDNN104A(たとえば、PNN104Bが、融合機構108の決定に基づいて、選択的にオフにされる又は他の方法で非アクティブ化される場合)又はベースDNN104A及びPNN104Bの組合せ(たとえば、PNN104Bが、融合機構108の決定に基づいて、選択的にオンにされる又は他の方法でアクティブにされる場合)を使用して、計算され得る。
図1B、2A~2B、及び3A~3Bの図は、ベースDNN104Aの各層126Aに対応するPNN104Bの層126Bを含むが、これは限定を意図していない。たとえば、ベースDNN104Aの各層126Aは、対応する層126BをPNN104Bに有さなくてもよい。そのようなものとして、ベースDNN104Aの1つ又は複数の最初の層126Aは、PNN104Bの対応する層126Bを含まなくてもよく、PNN層126Bは、ベースDNN104Aの層126Aのシーケンスに沿った何らかのポイントで開始し得る。非限定的実例として、ベースDNN104Aの特徴抽出器層126A-たとえば、特徴マップを計算するベースDNN104Aの層126A-は、PNN104Bの対応する層126BがPNN104Bの出力106Bの計算において正確に使用されることを必要としないということが決定され得る。そのようなものとして、PNN104Bの層126Bは、ベースDNN104Aの特徴抽出器層126Aの後まで含まれなくてもよい。PNN層が導入された後は、結合されたベースDNN/PNNネットワークの各次の層は、PNN層126BとベースDNN層126Aとの両方を含み得る。
図1Cを参照すると、図1Cは、ベースDNN104A及びPNN104Bの様々な層の実装形態を示す。図1Cの各図は、入力層、出力層、又は入力層と出力層との間の層でもよい、単一層に対応する。たとえば、ベースDNN実装形態120は、入力(たとえば、ベクトル又はテンソル)、X、124A(たとえば、ベースDNN104Aの入力層126Aへの入力データ102に対応する入力又はベースDNN104Aの前の層126Aからの入力)を受信する及び出力(たとえば、ベクトル又はテンソル)、Y、128Aを計算するベースDNN104Aの単一層126A-たとえば、重み、W、を有する-の一実装形態を示す。この層126Aの重み、W、(及び/又は他のパラメータ)は、車両500におけるベースDNN104Aの配備より先に前もってトレーニングされ得る。
DNN実装形態122A(たとえば、結合されたベースDNN/PNN実装形態)は、入力、X、124Aを受信する及び出力、Y、128Aを計算するベースDNN104Aの単一層126A-たとえば、重み、W、を有する-と、入力、X、124A及び入力、X’、124Bを受信する及び出力、Y’、128Bを計算するPNN104Bの単一層126B-たとえば、重み、W’、を有する-との一実装形態を示す。そのようなものとして、マトリックス乗算動作による2つの別個のベクトル又はテンソルが、実行され得る。PNN104Bの層126BがベースDNN104Aの第1の又は入力層に対応する場合など、いくつかの実例において、X’入力は、ベースDNN104Aへの入力として提供されるもの以外の付加的入力データ102を含み得る。たとえば、ベースDNN104Aの入力データ102は、画像を含み得、PNN104Bの入力データ102は、画像及び/又は別の入力タイプ、たとえば、別の画像、異なるセンサ(たとえば、速度センサ、位置センサなど)からの信号、及び/又は別の入力データ・タイプ、を含み得る。PNN104Bの層126Bが入力層以外の層又はベースDNN104Aの第1の層に対応する場合など、他の実例において、X’入力は、PNN104Bの前の層126BのY’出力に対応し得る。たとえば、第1のPNN層126Bが導入された後は、第1のPNN層126Bは、ベースDNN層126Aとは異なる出力、Y’、を出力し得、したがって、次のPNN層126Bは、X’入力としてY’出力を受信し得る。そのようなものとして、PNN層126Bは、入力、X’、に加えてベースDNN層126Aが受信する入力、X、を受信し得る。
DNN実装形態122A(たとえば、結合されたベースDNN/PNN実装形態)は、対応する追加の層126Bを既存の層126Aに追加することを含む。実装形態122Aのそれらに類似の個別の層を使用するPNN104Bは、比較的小さくてもよく、X及びX’の入力連結と出力Y’とを受信し得る。トレーニング・プロセス中に、パッチ層126Bのみが、トレーニングされ得る。
DNN実装形態122Bは、ベースDNN104Aの層126AとPNN104Bの層126Bとの両方を説明する拡張層を含む単一結合層126C-ノードの出力若しくはPNN104Bの値とノードへの入力若しくはベースDNN104Aの値との関係に対応する重み、W、W’、及びゼロ132、を有する-の例示的実装形態を示す。そのようなものとして、結合された層126は、X及びX’を表す連結入力(たとえば、ベクトル又はテンソル)124A及び124Bを受信することができ、Y及びY’を表す連結出力(たとえば、ベクトル又はテンソル)128A及び128Bを出力することができる。ゼロ132は、X及びX’を含む連結入力のそれとマッチするために、ベースDNN104Aの初期の層126Aの次元性を増やすことができ、追加の入力X’と初期の出力Yとの関係の重みを表すことができる。そのようなものとして、マトリックス乗算動作による単一ベクトル又はテンソルが、実行され得るが、結果は、DNN実装形態122Aを使用することと同じになり得る。
トレーニング・プロセス中、PNN104Bに対応する重み、W’、のサブセットのみが、トレーニングされ得る。初期の出力、Y、を変わらずに保つために、追加の入力X’と初期の出力Yとのすべての関係が、取り除かれる(たとえば、それらの関係の重みは、ゼロに設定及び維持される)。
実装形態122A及び122Bは、結果として生じるDNN機能性に関して同等になり得る。加えて、W’は、両方の実装形態において同じになり得るので、2つのバージョンの間の単純な移行が、実現され得る。たとえば、第1の実装形態122Aは、重みW’をトレーニングするために使用され得、第2の実装形態122Bは、DNN104の配備において使用され得る。実装形態122Aの利点は、すべての層のX入力が、初期のベースDNN104Aを使用して、事前計算され得、PNN104Bのみが、トレーニング中に考慮され得る-たとえば、層126Bは、ベースDNN104Aの層126Aとは別個なので-ということである。これは、PNN104Bのトレーニング・プロセスを増やし得るが、追加のストレージ及び帯域幅を必要とし得る。加えて、層は個別なので、層の最適化は、効果が弱くなり得、それによって、実装形態122Bが用いられるときより潜在的に遅い推論をもたらす。第2の実装形態122Bの利点は、最適化ツール(たとえば、NVIDIAのTensorRT最適化ツール)との互換性を含む。たとえば、新しい又は付加的層は追加されない-たとえば、既存の層のみが拡張される-ので、モデル推論との最適化問題は少ない。実装形態122Bの不利点は、ゼロ値化された重みを記憶するための要件(たとえば、モデル・サイズへの最小限の増加)と、結合されたPNNノード及びベースDNNノードを含むDNN全体がPNN104Bのトレーニングにおいて使用される必要があること(実装形態122Aを使用して重みW’をトレーニングすること及びそれらを実装形態122Bに変換することによって克服され得る)である。
任意の実例において、PNN104Bがトレーニングされた後は、1つ又は複数の枝刈り動作が、正確な出力106Bの計算において不必要なPNN104Bの層又はノードを取り除くために、実行され得る。たとえば、低レベルの特徴抽出器層は、パッチを適用される必要はない可能性があり、したがって、ベースDNN104Aの低レベルの特徴抽出器層126Aに対応するPNN層126Bが、取り除かれ得る-又はそのノードが、層126Bのサイズを減らすために、取り除かれ得る。そのようなものとして、トレーニング中、様々な枝刈り動作の前及び後の出力が、PNN104Bのサイズ及び正確性のトレードオフを決定するために、比較され得る。
いくつかの実例において、2つ以上のPNN104Bが、ベースDNN104Aにパッチを適用するようにトレーニングされ得る。たとえば、付加的故障モードが、第1のPNN104Bが配備された後に、表面化し得、別の又は代替PNN104Bが、付加的及び/又は前の故障モードについてトレーニングされ得る。いくつかの実施例において、第2のPNN104Bは、新しい故障モードのパッチに加えて第1のPNN104Bのパッチを含み得る-PNN104Bのスタッキングを回避するために。たとえば、既存のPNN104Bが、取り除かれ得、新しい又は更新されたPNN104Bが、両方の故障モードを説明するために、既存のPNN104Bに取って代わり得るように、第2のPNN104Bは、別の故障モードに加えて車両500において配備された既存のPNN104Bの故障モードにパッチを適用するようにトレーニングされ得る。しかしながら、実施例において、2つ以上のPNN104Bが、単一ベースDNN104Aにパッチを適用するために配備され得る。いくつかの実施例において、新しい又は更新されたPNN104Bが配備された後は、融合機構108はまた、更新を必要とし得る。たとえば、新しい又は更新されたゲーティングNN110が、新しい又は更新されたPNN104Bを説明するためにトレーニングされ得る。
図1Aを再び参照すると、融合機構108は、出力106-たとえば、ベースDNN104Aからの出力106A及びPNN104Bからの出力106B-を使用して、融合された出力114を決定することができる。たとえば、融合機構108は、出力106A及び106Bからの値(たとえば、DNN104が物体分類DNNである場合の物体タイプに対応する信頼性値)、1つ若しくは複数のゲーティングNN110からの出力、及び/又は既存の信号112(たとえば、地理、気象、照明、又は他の情報に対応する)を使用して、出力106A又は106Bのどちらが所与の反復に依拠するかを決定することができる。融合機構108は、ルールに基づく(たとえば、学習されたのではない)決定機構、学習された決定機構、又はその組合せでもよい。融合機構(たとえば、ベースDNN104A及びPNN104Bの出力、既存の信号112、又はゲーティングNN110からの信頼性)の選択は、PNN104Bがそれについてトレーニングされた、ベースDNN104Aの故障モード・タイプに基づき得る。ゲーティングNN110が使用される場合、ゲーティングNN110は、故障モード又はシナリオを検出するようにトレーニングされ得る。ゲーティングNN110は、ベースDNN104A及び/又はPNN104Bの入力データ102並びに、いくつかの実施例において、DNN104の内部状態(図示せず)にアクセスすることができ得る。たとえば、ゲーティングNN110は、2つのデータ・タイプを区別するために、両方の新しい故障モード・シナリオからのデータ並びに初期のデータを有する分類器としてトレーニングされ得る。ゲーティングNN110-たとえば、特定のデータ・タイプを検出するためにのみトレーニングされた-の簡潔性により、ゲーティングNN110は、少量のトレーニング・データのみに関する高性能を有してトレーニングするのが速い小さなネットワークとして実装され得る。
たとえば、PNN104Bが、故障(たとえば、特定の交差点、出口ランプ、車道などに対処できないこと)に基づいて、位置についてトレーニングされる場合、既存の信号112が、使用され得る。たとえば、GNSSデータは、PNN104Bがパッチを適用するようにトレーニングされた、位置に車両500が近づいている又はそこに位置するときに指示するために使用され得る。別の実例として、車両検出器は、その固有の又は異常な形状により、新モデル又は原型車両の検出に失敗し得る。このタイプの実例において、融合機構108は、ベースDNN104A及びPNN104Bの出力からの信頼性を使用し得る、並びに/又は入力データ102(たとえば、実施例における、ベースDNN104A及び/又はPNN104Bと同じ入力データ102)を分析する及びどの出力を使用するかを指示する2進出力を出力するゲーティングNN110を使用することができる。たとえば、PNN104Bの信頼性が、車両タイプに関して高く、ベースDNN104Aの信頼性が、それのクラスのそれぞれについて低い場合、PNN104Bの出力は、依拠され得る。別の実例として、PNN104Bの出力が、所与の反復の融合された出力114として依拠され得るように、ゲーティングNN110は、未来の車両が検出されるとき、「1」の値を出力するようにトレーニングされ得る。
そのようなものとして、異なる故障タイプは、異なるパッチ適用戦略-PNN104Bのタイプ及びそこで使用される融合機構108を含む-を必要とし得る。自律又は半自律運転に関するPNN104Bの少数の非限定的例示的使用事例は、新しい特徴を追加すること、道路の特定の区間にパッチを適用すること、又は既存の特徴を改良することを含み得る。たとえば、新しい特徴を追加するために、ベースDNN104Aは、電動スクータが普及したのより前に、配備されてあり得る。電動スクータ運転者は、交通弱者(VRU)と考えられ得、VRUを識別又は検出するようにトレーニングされたベースDNN104Aは電動スクータ・ライダをVRUとして検出するのに失敗したと判定され得る。この実例では、PNN104Bは、専用電動スクータ検出器としてトレーニングされ得、融合機構108は、ベースDNN104Aの他のVRU検出器と連結され得る-たとえば、歩行者、自転車乗用者など。
道路の特定の区間にパッチを適用することに関して、道路及び/又は交差点を通じた車線保持又は進路プランニングに役立つように配備されたベースDNN104Aは、特定の区間又は道路若しくは交差点で故障モードを有し得る-たとえば、不十分な道路標識、固有の交差点設計などにより。車両500は、走行表面を横断しながら適切に車線保持することができない可能性がある。この実例では、PNN104Bは、ベースDNN104Aが取り組む道路の特定の区間における車線保持のためにトレーニング及び検証され得る。そのような一実例において、融合機構108は、GNSS信号、高解像度(HD:high definition)マップへのローカリゼーション(たとえば、車両500のセンサからのセンサ・データを使用する)、及び/又は道路の特定の区間若しくは交差点についての専用ランドマーク検出器のトレーニングを含み得る。そのようなものとして、車両500はPNN104Bに対応する道路の区間にあることを示す、信号が受信されるとき、PNN104Bの出力106Bが使用され得る。
既存の特徴、たとえば、車両検出器、が改善されることになる場合、ベースDNN104Aは、特定のタイプの車両の予測において不正確になり得る-たとえば、新モデル又は設計。そのような一実例では、新しい車両モデルの外観は、類似のモデルに近すぎることがあり、PNN104Bに区別を強いることは、困難なことがあるので、新しい乗用車検出のための専用PNN104Bのトレーニングは、機能しないことがある。また、PNN104Bの誤検出率の検証は、ベースDNN104Aの完全な再検証なしに可能でないことがあるので、新しい特徴を追加する実例におけるように出力を単純に連結させることは、実現不可能なことがある。結果として、PNN104Bの誤検出率も信頼性出力も単独では、必要とされる安全性レベルに到達するのに十分ではないことがあるので、ベースDNN104Aの出力106A及びPNN104Bの出力106Bの両方が、決定を行うために使用され得る。しかしながら、2つの出力106の組合せは、適切なレベルの安全性を達し得る-たとえば、融合機構108が機能せず、且つPNN104Bが誤検出を有する場合にのみ、最終出力信号における誤検出は生じ得る。
図2Bを参照すると、図1B及び2AのベースDNN/PNNの組合せに対する代替アーキテクチャが、示されている。そのような一実例において、PNN104Bのノードは、ベースDNN104Aの既存のノードの入力に追加され得る。したがって、PNN104Bは、故障モードの既存のDNN出力を訂正することを学習し得るので、PNN104Bは、それ自体の出力を生成する必要はない可能性がある。PNN104Bがオフにされるとき、ベースDNN104Aは、パッチ適用の前のように正確に動き得る。しかしながら、ベースDNN出力106A及びPNN出力106Bの両方は、各反復において計算されないので、両方の出力が必要とされる場合、推論は、分析の2つの出力を取得するために2回実行することを必要とされ得る-それは、計算を増加させる及びレイテンシを増やす。
図3A~3Bを参照すると、図3A~3Bは、PNNの選択的アクティブ化を有するDNN及びPNNアーキテクチャの実例を示す。たとえば、図3Aに関して、融合機構108は、既存の信号112及び/又はゲーティングNN110に基づいて、PNN104Bのノードをオン又はアクティブにするかどうかを決定し得る。たとえば、PNN104Bのノードが、オフ又は非アクティブ化されるとき、PNN104Bのノードのそれぞれのパラメータの値(たとえば、重み及びバイアス)は、ゼロに固定され得る。これは、PNN104Bが追加されたのより前のように正確に-ビット・アキュレート-ベースDNN104Aが動作することを保証する。DNN104Bのノードをオン又はアクティブにすることは、PNN104Bのトレーニングされたパラメータが正常に動作することを可能にする。このアーキテクチャの利益は、PNN104Bが、アクティブにされるとき、故障モード中のベースDNN104Aの決定に影響を与え得るということになり得る。加えて、PNN104Bは、新しい又は代替出力に加えてベースDNN104Aの各出力を計算することを必要とされないので、PNN104Bは、より小さくなり得る。しかしながら、誤検出シナリオ-たとえば、融合機構108がパッチを誤ってアクティブにする場合-において、結果は、ベースDNN104Aの初期の出力の別のインスタンスを含まないPNN104Bの出力の使用である。これは、別個の出力106-たとえば、出力106A及び106B-が計算される実施例において(たとえば、図1B及び3Bのそれらなどの実施例において)よりも、誤検出シナリオ中により正確でない結果をもたらし得る。単一出力106として示されているが、ベースDNN/PNNの組合せは、本明細書に記載のものなどの実施例において、別個の出力ヘッドを含み得る。
さらに、いくつかの実施例において、ソフト・オン/オフ・スイッチが、PNN104Bのために使用され得る。たとえば、PNN104Bをオン又はオフにする代わりに、PNN104BなしからPNN104Bの使用までの段階的移行が、適用され得る。これは、倍率、たとえば、0.0(PNN104Bの適用無し)から1.0(完全なPNN104Bの適用)まで、をパッチ・ノードの出力に乗じることによって、達成され得る。
別の実例として、及び図3Bに関して、ベースDNN104Aの情報処理が、PNN104Bがアクティブにされないとき、それの初期状態から変更されなくてもよいように、PNN104Bは、ベースDNN104Aとは別個でもよい。たとえば、図1Bに関して、PNN104Bの追加されたノードは、ベースDNN104Aの情報処理に影響を与える。そのようなものとして、図3Bのアーキテクチャは、図1Bのそれと類似しているが、融合機構108の決定に基づくPNN104Bの選択的アクティブ化を可能にする。結果として、誤検出シナリオは、ベースDNN104Aの冗長出力をまだ含み得、検出漏れ出力は、パッチ適用より前のベースDNN104Aのそれらに類似の出力をもたらすことになる。そのようなものとして、計算は、PNN104Bがオフにされるインスタンスにおいて、減らされ得る。
いくつかの実施例において、PNN104B及び融合機構108は、現実世界の試験データ及び/又はシミュレーションされた試験データ-たとえば、シミュレーション環境における-を使用して、試験及び検証され得る。たとえば、PNN104B及び/又は融合機構108は、再シミュレーション装置、NVIDIAのDriveSIM、及び/又は現実世界において試験され得る。いくつかの実施例において、消費者フリート外で試験及び検証された後は、PNN104及び/又は融合機構108(たとえば、ゲーティングNN110)は、「シャドウ」モードの名でも知られる受動(非アクティブ)モードで実行するために消費者車両に無線で(OTA)プッシュされ得る。受動モードは、基礎コードが実行することを可能にし得るが、出力106については作動させられない。結果として、消費者フリートは動作を継続するので、大規模な検査が、短時間で実行され得る。融合機構108がPNN104Bに切り替えることを決定する出来事及び/又はベースDNN104A及びPNN104Bの出力が一致しない出来事が、記録及び分析され得る。PNN104Bへの切り替えが、融合機構が正しく機能していることとPNN104BがベースDNN104Aの故障モードを正しく回復させることとを検証するために使用され得る。不一致記録は、PNN104Bが正常条件の下で正しく動作することを検証するために使用され得る-たとえば、PNN104Bが、誤って選択され得る場合、PNN104Bの出力106Bは、ベースDNN104Aの出力106Aのそれらをやはり正確に反映するべきである。
ベースDNN104Aに加えてPNN104B及び融合機構108を実装するために、PNN104B及び融合機構108の必要な計算が、事前に割り当てられ得る-たとえば、十分なバッファ・スペースが、PNN104B及び融合機構108をサポートするために、ベースDNN104Aの最初の配備時に車両500において使用されないままになり得る。PNN104Bに関して、これは、結合されたすべてのPNN104Bのために利用可能な重み及びノードの最大数が予め定められ得ることを意味し得る。そのようなものとして、この事前に割り当てられた量は、PNN104Bの設計決定に織り込まれ得る。融合機構108の計算を事前に割り当てるために、最大CPU、GPU、DPU、アクセラレータ、及び/又は必要とされる他のオンチップ資源の推定値が、決定され得る。そのようなものとして、変更は、付加的検証作業を必要とし得るので、PNN104B及び融合機構108の両方が、スケジューラの変更を回避するために、計算グラフに「ダミー」又はプレースホルダとして追加され得る。
いくつかの実施例において、パッチ・バージョニング・システムは、誰がPNN104Bを要求したか、誰が及びいつPNN104Bをトレーニングしたか、誰が及びいつPNN104Bを検証したか、誰が、いつ、及びどの車両にPNN104Bを配備したかなど、配備されたPNN104Bを追跡するために実装され得る。加えて、少なくとも部分的に、PNN104Bのトレーニング及び配備と同時に及び/又はその後に、更新されたベースDNN104Aは、たとえば、次の主要なDNNリリース中に、車両500にプッシュされるために、トレーニング、試験、及び検証され得る。そのようなものとして、PNN104B及び融合機構108は、更新されたベースDNN104Aのトレーニング、検査、及び検証期間(たとえば、いくつかのインスタンスでは、6カ月から1年)中の一時的処置として機能し得る。
ここで図4を参照すると、本明細書に記載の方法400の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法400はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法400は、いくつか例を挙げると、独立型アプリケーション、サービス又はホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、或いは別の製品へのプラグインによって提供され得る。加えて、方法400は、例として、図1のプロセス100及び図5A~5Dの車両500に関して説明されている。しかしながら、追加で又は別法として、この方法400は、本明細書に記載のものを含むがこれらに限定されない、任意の1個のシステム内で、又はシステムの任意の組合せで、実行され得る。
図4は、本開示のいくつかの実施例による、配備中のPNN104Bを実行するための方法400を示す流れ図である。方法400は、ブロックB402において、第1のデータをディープ・ニューラル・ネットワーク(DNN)及びパッチ・ニューラル・ネットワーク(PNN)に適用することを含む。たとえば、入力データ102は、ベースDNN104A及びPNN104Bに適用され得る。
方法400は、ブロックB404において、第2のデータを計算するために第1のデータを処理することを含み、その処理は、以下を含む:(1)DNNがDNNの1つ又は複数のノードの第1の出力を処理することと、(2)PNNがPNNの1つ又は複数のノードの第2の出力及びDNNの1つ又は複数のノードの1つ又は複数の第1の出力のうちの少なくとも1つの第1の出力を処理すること。たとえば、ベースDNN104Aの層126Aのノードは、ベースDNN104Aの層126Aの他のノードの出力を処理し得、PNN104Bは、ベースDNN104Aの層126Aのノードの出力とPNN104Bの層126Bのノードの出力との両方を処理し得る。最終的に、ベースDNN104Aは、出力106Aを計算し得、PNN104Bは、出力106Bを計算し得る。しかしながら、実施例において、出力は、少なくとも図3Aに関して本明細書で説明されるように、PNN104Bのアクティブ化又は非アクティブ化に応じた単一の結合された出力でもよい。このようにして、ベースDNN104Aは、パッチ適用の前に同様に動作し得、PNN104Bは、ベースDNN104Aの故障シナリオに対処し得る。
方法400は、ブロックB406において、第2のデータに少なくとも部分的に基づいて1つ又は複数の動作を実行することを含む。たとえば、出力106は、車両500による1つ又は複数の動作、たとえば、物体検出、分類、及び/又は追跡、進路プランニング、制御決定、障害物回避、及び/又は類似のもの、を実行するために使用され得る。
結果として、PNN104Bは、ベースDNN104Aの完全な再検証を必要とせずにベースDNN104Aの故障シナリオに対処するための高速ターンアラウンド・タイムを有して実装され得る。これは、車両500-又は他の基礎システム-が動作を継続することを可能にし得、その一方で、更新されたベースDNN104Aは、故障モードを説明するためにトレーニング及び検証される。加えて、ベースDNN104Aの機能性は、PNN104Bと使用するときに、変化しないままであり得、検証されたベースDNN104Aは、故障モードに対応しないすべてのインスタンスにおいてまだ依拠され得るので、リスクは、安全重視のアプリケーション-たとえば、自律又は半自律運転-において最小限に抑えられ得る。
例示的自律型車両
図5Aは、本開示のいくつかの実施例による、例示的自律型車両500の図である。自律型車両500(本明細書で別法として「車両500」と称する)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気若しくは原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、トレーラに連結された車両、及び/又は別のタイプの車両(たとえば、無人の及び/又は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、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。車両500は、自律運転レベルのレベル3~レベル5のうちの1つ又は複数による機能の能力を有し得る。たとえば、車両500は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
図5Aは、本開示のいくつかの実施例による、例示的自律型車両500の図である。自律型車両500(本明細書で別法として「車両500」と称する)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気若しくは原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、トレーラに連結された車両、及び/又は別のタイプの車両(たとえば、無人の及び/又は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、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。車両500は、自律運転レベルのレベル3~レベル5のうちの1つ又は複数による機能の能力を有し得る。たとえば、車両500は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
車両500は、車両のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。車両500は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム550を含み得る。推進システム550は、車両500の推進力を有効にするために、トランスミッションを含み得る、車両500のドライブ・トレインに接続され得る。推進システム550は、スロットル/加速装置552からの信号の受信に応答して制御され得る。
ハンドルを含み得る、ステアリング・システム554は、推進システム550が動作しているときに(たとえば、車両が移動中のときに)車両500のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム554は、ステアリング・アクチュエータ556から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能のオプションでもよい。
ブレーキ・センサ・システム546は、ブレーキ・アクチュエータ548及び/又はブレーキ・センサからの信号の受信に応答して車両ブレーキを動作させるために使用され得る。
1つ又は複数のシステム・オン・チップ(SoC:system on Chip)504(図5C)及び/又はGPUを含み得る、コントローラ536は、車両500の1つ若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1つ又は複数のブレーキ・アクチュエータ548を介して車両ブレーキを動作させて、1つ又は複数のステアリング・アクチュエータ556を介してステアリング・システム554を動作させて、1つ又は複数のスロットル/加速装置552を介して推進システム550を動作させるために、信号を送ることができる。コントローラ536は、センサ信号を処理する、並びに律的運転を可能にするために及び/又は運転者の車両500の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1つ又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ536は、自律運転機能のための第1のコントローラ536、機能的安全性機能のための第2のコントローラ536、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ536、インフォテインメント機能のための第4のコントローラ536、緊急状態における冗長性のための第5のコントローラ536、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ536が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ536が、単一の機能、及び/又はその任意の組合せを処理することができる。
コントローラ536は、1つ又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して車両500の1つ若しくは複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ558(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ560、超音波センサ562、LIDARセンサ564、慣性計測装置(IMU:inertial measurement unit)センサ566(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン596、ステレオ・カメラ568、ワイドビュー・カメラ570(たとえば、魚眼カメラ)、赤外線カメラ572、サラウンド・カメラ574(たとえば、360度カメラ)、長距離及び/又は中距離カメラ598、スピード・センサ544(たとえば、車両500のスピードを測定するための)、振動センサ542、ステアリング・センサ540、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム546の一部としての)、及び/又は他のセンサ・タイプから受信され得る。
コントローラ536のうちの1つ又は複数のコントローラは、車両500の計器群532から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ534、可聴式アナンシエータ、ラウドスピーカ、及び/又は車両500の他の構成要素を介して提供することができる。出力は、車両ベロシティ、スピード、時間、マップ・データ(たとえば、図5CのHDマップ522)、位置データ(たとえば、マップ上などの、車両500の位置)、方向、他の車両の位置(たとえば、占有グリッド)、コントローラ536によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ534は、1つ又は複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在、及び/又は車両が行った、行っている、又は行うであろう運転操作(たとえば、今、車線変更をしていること、3.22km(2マイル)内の出口34Bを出ることなど)に関する情報を表示することができる。
車両500はさらに、1つ若しくは複数のワイヤレス・アンテナ526及び/又はモデムを使用して1つ若しくは複数のネットワークを介して通信することができるネットワーク・インターフェース524を含む。たとえば、ネットワーク・インターフェース524は、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000などを介する通信の能力を有し得る。ワイヤレス・アンテナ526はまた、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、車両、モバイル・デバイスなど)の間の通信を可能にすることができる。
図5Bは、本開示のいくつかの実施例による、図5Aの例示的自律型車両500のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1つの例示的実施例であり、制限することは意図されていない。たとえば、追加の及び/又は代替カメラが含まれ得る、及び/又はカメラは車両500の異なる位置に置かれ得る。
カメラのカメラ・タイプは、車両500の構成要素及び/又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(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個の支柱内に統合され得る。
車両500の前の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1つ若しくは複数のコントローラ536及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい車両進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(「LDW(Lane Departure Warning)」)、自律的クルーズ制御(「ACC(Autonomous Cruise Control)」)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交差する交通又は自転車)からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ570でもよい。図5Bにはワイドビュー・カメラは1つだけ示されているが、車両500には任意の数のワイドビュー・カメラ570が存在し得る。加えて、長距離カメラ598(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ598はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
1つ又は複数のステレオ・カメラ568もまた、前向きの構成に含まれ得る。ステレオ・カメラ568は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、車両の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ568は、2個のカメラ・レンズ(左と右に1つずつ)と、車両から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ568が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
車両500の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ574(たとえば、図5Bに示されるような4個のサラウンド・カメラ574)は、車両500上に位置付けられ得る。サラウンド・カメラ574は、ワイドビュー・カメラ570、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、車両の前、後ろ、及び側面に配置され得る。代替配置において、車両は、3個のサラウンド・カメラ574(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1つ又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
車両500の後ろに対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ598、ステレオ・カメラ568)、赤外線カメラ572など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
図5Cは、本開示のいくつかの実施例による、図5Aの例示的自律型車両500の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素はともに除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
図5Cの車両500の構成要素、特徴、及びシステムのそれぞれは、バス502を介して接続されるものとして図示されている。バス502は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキ、ステアリング、フロント・ガラス・ワイパなどの作動など、車両500の様々な特徴及び機能の制御を助けるために使用される車両500内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の車両状況指標を見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
バス502は、CANバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、CANバスに加えて、又はこのその代替として、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス502を表すために使用されているが、これは制限することを意図されていない。たとえば、1つ若しくは複数のCANバス、1つ若しくは複数のFlexRayバス、1つ若しくは複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1つ若しくは複数の他のタイプのバスを含み得る、任意の数のバス502が存在し得る。いくつかの実例では、2個以上のバス502が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス502は衝突回避機能のために使用されてもよく、第2のバス502は作動制御のために使用されてもよい。任意の実例において、各バス502は、車両500の構成要素のいずれかと通信し得、2個以上のバス502が同じ構成要素と通信し得る。いくつかの実例では、車両内の各SoC504、各コントローラ536、及び/又は各コンピュータは、同じ入力データ(たとえば、車両500のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
車両500は、図5Aに関して本明細書で説明されるものなど、1つ又は複数のコントローラ536を含み得る。コントローラ536は、様々な機能のために使用され得る。コントローラ536は、車両500の様々な他の構成要素及びシステムのいずれかに連結されてもよく、車両500、車両500の人工知能、車両500のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
車両500は、システム・オン・チップ(SoC)504を含み得る。SoC504は、CPU506、GPU508、プロセッサ510、キャッシュ512、加速装置514、データ・ストア516、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC504は、様々なプラットフォーム及びシステム内の車両500を制御するために使用され得る。たとえば、SoC504は、1つ又は複数のサーバ(たとえば、図5Dのサーバ578)からネットワーク・インターフェース524を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ522を有するシステム(たとえば、車両500のシステム)において結合され得る。
CPU506は、CPUクラスタ又はCPU複合体(或いは、「CCPLEX」とも称される)を含み得る。CPU506は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施例では、CPU506は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施例では、CPU506は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU506(たとえば、CCPLEX)は、CPU506のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
CPU506は、以下の特徴のうちの1つ又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU506は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
GPU508は、統合されたGPU(或いは本明細書において「iGPU」と称される)を含み得る。GPU508は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU508は、強化されたテンソル命令セットを使用することができる。GPU508は、1つ又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施例では、GPU508は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU508は、計算アプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU508は、1つ若しくは複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用することができる。
GPU508は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、GPU508は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは制限することを意図されておらず、GPU508は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合精度NVIDIAテンソル・コア、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
GPU508は、一部の実例では、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)が使用され得る。
GPU508は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU508がCPU506ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU508メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU506に送信され得る。応答して、CPU506は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU508に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU506とGPU508との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU508へのアプリケーションのGPU508プログラミング及び移植を単純化する。
加えて、GPU508は、他のプロセッサのメモリへのGPU508のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
SoC504は、本明細書に記載のものを含む任意の数のキャッシュ512を含み得る。たとえば、キャッシュ512は、CPU506とGPU508との両方に利用可能な(たとえば、CPU506とGPU508との両方に接続された)L3キャッシュを含み得る。キャッシュ512は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、4MB以上を含み得る。
SoC504は、車両500の様々なタスク又は動作のいずれか(たとえば、処理DNN)に関して処理を実行する際に活用され得る論理演算ユニット(ALU:arithmetic logic unit)を含み得る。加えて、SoC504は、システム内で数学演算を実行するための浮動小数点演算ユニット(FPU:floating point unit)(又は他のマス・コプロセッサ又は数値演算コプロセッサ・タイプ)を含み得る。たとえば、SoC104は、CPU506及び/又はGPU508内の実行ユニットとして統合された1つ又は複数のFPUを含み得る。
SoC504は、1つ又は複数の加速装置514(たとえば、ハードウェア・加速装置、ソフトウェア・加速装置、又はその組合せ)を含み得る。たとえば、SoC504は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU508を補完するために及びGPU508のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU508のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置514は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
加速装置514(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(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は、GPU508の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU508のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU508及び/又は他の加速装置514に任せることができる。
加速装置514(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(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は、CPU506から独立したシステム・メモリに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)メモリを含み得る。
加速装置514(たとえば、ハードウェア加速クラスタ)は、加速装置514のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC61508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
いくつかの実例では、SoC504は、特許文献1に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。一部の実施例では、1つ又は複数の木の走査ユニット(TTU:tree traversal unit)が、1つ又は複数のレイトレーシング関連動作を実行するために使用され得る。
加速装置514(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。PVAは、ADAS及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。PVAの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、PVAは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、PVAは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
たとえば、本技術の1つの実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは制限することを意図されていない。レベル3~5の自律運転のための多数のアプリケーションは、動き推定/ステレオ・マッチング・オンザフライ(たとえば、SFM(structure from motion)、歩行者認識、レーン検出など)を必要とする。PVAは、2個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
いくつかの実例では、PVAは、高密度のオプティカル・フローを実行するために使用され得る。処理されたRADARを提供するために未加工のRADARデータを処理する(たとえば、4D高速フーリエ変換を使用して)ことによる。他の実例において、PVAは、たとえば、飛行データの未加工の時間を処理して飛行データの処理済み時間を提供することにより、飛行深度処理の時間に使用される。
DLAは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するために使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が誤判定検出ではなくて真陽性検出と考えられるべきであるかに関するさらなる決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動非常ブレーキ(AEB:automatic emergency braking)システムにおいて、誤判定検出は、車両に非常ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、AEBのトリガとして考えられるべきである。DLAは、信頼性値を回帰するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、(たとえば、別のサブシステムから)取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、LIDARセンサ564又はRADARセンサ560)から取得された物体の車両500方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ566出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
SoC504は、データ・ストア516(たとえば、メモリ)を含み得る。データ・ストア516は、SoC504のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア516は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア512は、L2又はL3キャッシュ512を備え得る。データ・ストア516の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置514に関連するメモリの参照を含み得る。
SoC504は、1つ又は複数のプロセッサ510(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ510は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC504ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC504熱及び温度センサの管理、及び/又はSoC504電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC504は、リング発振器を使用してCPU506、GPU508、及び/又は加速装置514の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC504をより低い電力状態に置く及び/又は車両500をショーファーの安全停止モードにする(たとえば、車両500を安全停止させる)ことができる。
プロセッサ510は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
プロセッサ510は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
プロセッサ510は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
プロセッサ510は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
プロセッサ510は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
プロセッサ510は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ570で、サラウンド・カメラ574で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、車両の目的地を変更する、車両のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU508は、新しい表面を連続してレンダリングために必要とされない。GPU508の電源が入れられ、3Dレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、GPU508をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
SoC504は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、及び/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC504は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
SoC504は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC504は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ564、RADARセンサ560など)、バス502からのデータ(たとえば、車両500のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ558からのデータを処理するために使用され得る。SoC504は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU506を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
SoC504は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC504は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置514が、CPU506と結合されるとき、GPU508、及びデータ・ストア516は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、車両内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU520)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを車両の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を車両の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU508上などで、同時に実行することができる。
いくつかの実例では、顔認識及び車両所有者識別のためのCNNは、カメラ・センサからのデータを使用して車両500の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに車両を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が車両を離れるときに車両の動作を停止させるために、使用され得る。このようにして、SoC504は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン596からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC504は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施例では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ558によって識別されるように、車両が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ562の支援を受けて、車両を減速する、道の端に停止させる、車両を駐車する、及び/又は車両をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
車両は、高速相互接続(たとえば、PCIe)を介してSoC504に連結され得るCPU518(たとえば、個別のCPU、又はdCPU)を含み得る。CPU518は、たとえば、X86プロセッサを含み得る。CPU518は、たとえば、ADASセンサとSoC504との間の潜在的に不整合の結果を調停すること、及び/又はコントローラ536及び/又はインフォテインメントSoC530の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
車両500は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC504に連結され得るGPU520(たとえば、個別のGPU、又はdGPU)を含み得る。GPU520は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、車両500のセンサからの入力(たとえば、センサ・データ)に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
車両500は、1つ又は複数のワイヤレス・アンテナ526(たとえば、セルラ・アンテナ、ブルートゥース(登録商標)・アンテナなど、異なる通信プロトコルのための1つ又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース524をさらに含み得る。ネットワーク・インターフェース524は、インターネットを介するクラウドとの(たとえば、サーバ578及び/又は他のネットワーク・デバイスとの)、他の車両との、及び/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の車両と通信するために、直接リンクが2個の車両の間に確立され得る、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、車両対車両通信リンクを使用し、提供され得る。車両対車両通信リンクは、車両500に近接する車両(たとえば、車両500の前の、横の、及び/又は後ろの車両)に関する車両500情報を提供することができる。この機能は、車両500の共同適応クルーズ制御機能の一部でもよい。
ネットワーク・インターフェース524は、変調及び復調機能を提供する及びコントローラ536がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース524は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
車両500は、チップ外の(たとえば、SoC504外の)ストレージを含み得るデータ・ストア528をさらに含み得る。データ・ストア528は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1つ又は複数の記憶素子を含み得る。
車両500は、GNSSセンサ558をさらに含み得る。GNSSセンサ558(たとえば、GPS、支援されたGPSセンサ、ディファレンシャルGPS(DGPS)センサなど)は、マッピング、知覚、占有グリッド生成、及び/又は進路計画策定機能を支援する。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ558が、使用され得る。
車両500は、RADARセンサ560をさらに含み得る。RADARセンサ560は、暗闇及び/又は厳しい気象条件においても、長距離車両検出のために車両500によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ560は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ560によって生成されたデータを送信するために)CAN及び/又はバス502を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして制限なしに、RADARセンサ560は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
RADARセンサ560は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、適応クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ560は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で車両500の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、車両500のレーンに入る又はこれを去る車両を迅速に検出することを可能にする。
一実例として、中距離RADARシステムは、560m(前)又は80m(後)までの範囲、及び42度(前)又は550度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、車両の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
車両500は、超音波センサ562をさらに含み得る。車両500の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ562は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ562が使用され得、異なる超音波センサ562が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ562は、ASIL Bの機能的安全性レベルにおいて動作することができる。
車両500はLIDARセンサ564を含み得る。LIDARセンサ564は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ564は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、車両500は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ564を含み得る。
いくつかの実例では、LIDARセンサ564は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ564は、たとえば、2cm~3cmの精度を有し、500Mbpsイーサネット(登録商標)接続のサポートを有して、約500mの広告された範囲を有し得る。いくつかの実例では、1つ又は複数の非突出したLIDARセンサ564が、使用され得る。そのような実例では、LIDARセンサ564は、車両500の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ564は、低反射物体についても200mの範囲を有し、120度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ564は、45度と135度との間の水平視野向けに構成され得る。
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで車両の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、車両から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、車両500の各側面に1つずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ564は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
車両は、IMUセンサ566をさらに含み得る。一部の実例では、IMUセンサ566は、車両500の後部車軸の中央に位置付けられ得る。IMUセンサ566は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ566は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ566は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
一部の実施例では、IMUセンサ566は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ566は、GPSからIMUセンサ566までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を車両500が推定することを可能にし得る。いくつかの実例では、IMUセンサ566及びGNSSセンサ558は、単一の統合されたユニットにおいて結合され得る。
車両は、車両500内及び/又は周囲に置かれたマイクロフォン596を含み得る。マイクロフォン596は、中でも、緊急車両検出及び識別のために使用され得る。
車両は、ステレオ・カメラ568、ワイドビュー・カメラ570、赤外線カメラ572、サラウンド・カメラ574、長距離及び/又は中距離カメラ598、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、車両500の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、車両500の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、車両500の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、車両は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、図5A及び図5Bに関連して本明細書においてさらに詳しく説明される。
車両500は、振動センサ542をさらに含み得る。振動センサ542は、車軸など、車両の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ542が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
車両500は、ADASシステム538を含み得る。一部の実例では、ADASシステム538は、SoCを含み得る。ADASシステム538は、自律/適応/自動クルーズ制御(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センサ560、LIDARセンサ564、及び/又はカメラを使用し得る。ACCシステムは、縦ACC及び/又は横ACCを含み得る。縦ACCは、車両500の直ぐ前の車両までの距離を監視及び制御し、前方の車両からの安全距離を維持するために車両速度を自動的に調整する。横ACCは、距離の保持を実行し、必要なときにレーンを変更するように車両500にアドバイスする。横ACCは、LCA及びCWSなどの他のADASアプリケーションに関連する。
CACCは、ワイヤレス・リンクを介して他の車両からネットワーク・インターフェース524及び/又はワイヤレス・アンテナ526を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の車両からの情報を使用する。直接リンクは、車両対車両(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対車両(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の車両(たとえば、車両500と同じレーン内にある、車両500の直ぐ前の車両)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。車両500の前方の車両の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
運転者が修正行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ560を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
AEBシステムは、別の車両又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ560を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突切迫ブレーキなどの技法を含み得る。
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、車両500が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、車両500が車線をはみ出し始めた場合に車両500を修正するためにステアリング入力又はブレーキを提供する。
BSWシステムは、自動車の死角において車両の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。システムは、運転者が方向指示器を使用するとき、付加的警報を提供し得る。BSWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に連結された、専用プロセッサ、DSP、FPGA、及び/又はASICに連結された、後ろ側を向いたカメラ及び/又はRADARセンサ560を使用し得る。
RCTWシステムは、車両500がバックしているときにリアカメラの範囲外で物体が検出されたときに視覚的、可聴式、及び/又は触覚的通知を提供することができる。いくつかのRCTWシステムは、衝突を回避するために車両ブレーキが適用されることを確実にするために、AEBを含む。RCTWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に連結された、専用プロセッサ、DSP、FPGA、及び/又はASICに連結された、1つ又は複数の後ろを向いたRADARセンサ560を使用することができる。
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のADASシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両500では、結果が矛盾する場合には、車両500自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ536又は第2のコントローラ536)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ADASシステム538は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム538からの出力は、監督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は、SoC504の構成要素を備え得る、及び/又はSoC504の構成要素として含まれ得る。
他の実例において、ADASシステム538は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータ上のソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
いくつかの実例では、ADASシステム538の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム538が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
車両500は、インフォテインメントSoC530(たとえば、車両内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の個別の構成要素を含み得る。インフォテインメントSoC530は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの車両関連情報)を車両500に提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC530は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース(登録商標)接続、カーピュータ、車内エンターテインメント、Wi-Fi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ534、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/又はシステムを制御する及び/又はこれと相互に作用するための)、及び/又は他の構成要素でもよい。インフォテインメントSoC530は、ADASシステム538からの情報、計画された車両操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、車両情報、道路情報など)、及び/又は他の情報など、車両のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
インフォテインメントSoC530は、GPU機能性を含み得る。インフォテインメントSoC530は、バス502(たとえば、CANバス、イーサネット(登録商標)など)を介して、車両500の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ536(たとえば、車両500の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC530は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC530は、本明細書に記載のように、車両500をショーファーの安全停止モードにすることができる。
車両500は、計器群532(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群532は、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。計器群532は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントSoC530及び計器群532の間で表示及び/又は共有され得る。言い換えれば、計器群532は、インフォテインメントSoC530の一部として含まれてもよく、逆もまた同様である。
図5Dは、本開示のいくつかの実施例による、図5Aのクラウドベースのサーバと例示的自律型車両500との間の通信のシステム図である。システム576は、サーバ578、ネットワーク590、及び、車両500を含む車両を含み得る。サーバ578は、複数のGPU584(A)~584(H)(本明細書でGPU584と総称される)、PCIeスイッチ582(A)~582(H)(本明細書でPCIeスイッチ582と総称される)、及び/又はCPU580(A)~580(B)(本明細書でCPU580と総称される)を含み得る。GPU584、CPU580、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLinkインターフェース588及び/又はPCIe接続586などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU584は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU584及びPCIeスイッチ582は、PCIe相互接続を介して接続される。8個のGPU584、2個のCPU580、及び2個のPCIeスイッチが図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ578は、任意の数のGPU584、CPU580、及び/又はPCIeスイッチを含み得る。たとえば、サーバ578は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU584を含み得る。
サーバ578は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク590を介して、車両から、受信することができる。サーバ578は、ニューラル・ネットワーク592、更新されたニューラル・ネットワーク592、及び/又は、交通及び道路状態に関する情報を含むマップ情報594をネットワーク590を介して車両に送信することができる。マップ情報594の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ522の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク592、更新されたニューラル・ネットワーク592、及び/又はマップ情報594は、環境において任意の数の車両から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ578及び/又は他のサーバを使用する)データ・センタにおいて実行されたトレーニングに基づいて、生じた可能性がある。
サーバ578は、トレーニング・データに基づいてマシン学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、車両によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。トレーニングは、たとえば以下のクラスを含むがこれらに限定されない、任意の1つ又は複数のクラスのマシン学習技法に従って、実行され得る:監視されたトレーニング、半監視されたトレーニング、監視されていないトレーニング、自己学習、強化学習、連合型学習、転移学習、特徴学習(主要構成要素及びクラスタ分析を含む)、マルチ線形部分空間学習、多様体学習、表現学習(予備辞書学習を含む)、ルールに基づくマシン学習、異常検出、及びそれらの変更形態若しくは組合せ。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、車両によって使用され得(たとえば、ネットワーク590を介して車両に送信される)、及び/又は、マシン学習モデルは、車両を遠隔監視するために、サーバ578によって使用され得る。
いくつかの実例では、サーバ578は、車両からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ578は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU584によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ578は、CPU電源式データ・センタのみを使用する深層学習インフラストラクチャを含み得る。
サーバ578の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して車両500内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、車両500がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、車両500からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他のマシン学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、車両500によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、車両500内のAIは正常に機能していないという結論を下した場合、サーバ578は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように車両500のフェイルセーフ・コンピュータに命じる車両500への信号を送信することができる。
推論のために、サーバ578は、GPU584及び1つ又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
例示的計算デバイス
図6は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス600の一実例のブロック図である。計算デバイス600は、以下のデバイスを間接的に又は直接的につなぐ相互接続システム602を含み得る:メモリ604、1つ又は複数の中央処理装置(CPU)606、1つ又は複数のグラフィック処理ユニット(GPU)608、通信インターフェース610、入力/出力(I/O)ポート612、入力/出力構成要素614、電力供給装置616、1つ又は複数の提示構成要素618(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット620。少なくとも1つの実施例において、計算デバイス600は、1つ又は複数の仮想マシン(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU608のうちの1つ又は複数は、1つ又は複数のvGPUを含み得、CPU606のうちの1つ又は複数は、1つ又は複数のvCPUを含み得、及び/又は、論理ユニット620のうちの1つ又は複数は、1つ又は複数の仮想論理ユニットを含み得る。そのようなものとして、計算デバイス600は、個別の構成要素(たとえば、計算デバイス600専用の全GPU)、仮想構成要素(たとえば、計算デバイス600専用のGPUの一部分)、又はその組合せを含み得る。
図6は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス600の一実例のブロック図である。計算デバイス600は、以下のデバイスを間接的に又は直接的につなぐ相互接続システム602を含み得る:メモリ604、1つ又は複数の中央処理装置(CPU)606、1つ又は複数のグラフィック処理ユニット(GPU)608、通信インターフェース610、入力/出力(I/O)ポート612、入力/出力構成要素614、電力供給装置616、1つ又は複数の提示構成要素618(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット620。少なくとも1つの実施例において、計算デバイス600は、1つ又は複数の仮想マシン(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU608のうちの1つ又は複数は、1つ又は複数のvGPUを含み得、CPU606のうちの1つ又は複数は、1つ又は複数のvCPUを含み得、及び/又は、論理ユニット620のうちの1つ又は複数は、1つ又は複数の仮想論理ユニットを含み得る。そのようなものとして、計算デバイス600は、個別の構成要素(たとえば、計算デバイス600専用の全GPU)、仮想構成要素(たとえば、計算デバイス600専用のGPUの一部分)、又はその組合せを含み得る。
図6の様々なブロックは、線で相互接続システム602を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素618は、I/O構成要素614と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU606及び/又はGPU608はメモリを含み得る(たとえば、メモリ604は、GPU608、CPU606、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図6の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図6の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
相互接続システム602は、1つ又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。相互接続システム602は、1つ又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VESA(video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。一部の実施例では、構成要素の間に直接接続が存在する。一実例として、CPU606は、メモリ604に直接接続され得る。さらに、CPU606は、GPU608に直接接続され得る。構成要素の間に直接、又はポイント対ポイント接続が存在する場合、相互接続システム602は、接続を実施するためのPCIeリンクを含み得る。これらの実例では、PCIバスは、計算デバイス600に含まれる必要はない。
メモリ604は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス600によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ604は、オペレーティング・システムなど、(たとえば、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用し得る及び計算デバイス600によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
コンピュータ記憶媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1つ又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、コンピュータ記憶媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
CPU606は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス600の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。CPU606は、多数のソフトウェア・スレッドを同時に処理する能力を有する1つ又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU606は、任意のタイプのプロセッサを含み得、実装された計算デバイス600のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス600のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたAdvanced RISC Machines(ARM)プロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス600は、計算コプロセッサなど、1つ又は複数のマイクロプロセッサ又は補助コプロセッサ内の1つ又は複数のCPU606を含み得る。
CPU606に加えて又はその代わりに、GPU608は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス600の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。GPU608のうちの1つ若しくは複数は、統合されたGPU(たとえば、CPU606のうちの1つ又は複数とでもよく、及び/又はGPU608のうちの1つ若しくは複数は、離散GPUでもよい。実施例では、GPU608のうちの1つ又は複数は、CPU606のうちの1つ又は複数のコプロセッサでもよい。GPU608は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、計算デバイス600によって使用され得る。たとえば、GPU608は、GPUによる汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU608は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU608は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU606からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU608は、画素データ又は任意の他の適切なデータ、たとえばGPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば表示メモリ、を含み得る。表示メモリは、メモリ604の一部として含まれ得る。GPU608は、並行して動作する(たとえば、リンクを介して)2個以上のGPUを含み得る。リンクは、GPUに直接接続することができ(たとえば、NVLINKを使用して)、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。ともに結合されるとき、各GPU608は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、独自のメモリを含むことができ、又は他のGPUとメモリを共有することができる。
CPU606及び/又はGPU608に加えて又はその代わりに、論理ユニット620は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス600のうちの1つ又は複数を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するように構成され得る。実施例では、CPU606、GPU608、及び/又は論理ユニット620は、方法、プロセス及び/又はその部分の任意の組合せを離散的に又は合同で実行することができる。論理ユニット620のうちの1つ若しくは複数は、CPU606及び/若しくはGPU608のうちの1つ若しくは複数の一部でもよく及び/又はそこで統合されてもよく、及び/又は、論理ユニット620のうちの1つ若しくは複数は、CPU606及び/若しくはGPU608に対する離散構成要素であっても若しくは他の方法でそれらの外部にあってもよい。実施例では、論理ユニット620のうちの1つ又は複数は、CPU606のうちの1つ若しくは複数及び/又はGPU608のうちの1つ若しくは複数のコプロセッサでもよい。
論理ユニット620の実例は、1つ又は複数の処理コア及び/又はその構成要素、たとえば、テンソル・コア(TC:Tensor Core)、テンソル処理ユニット(TPU:Tensor Processing Unit)、画素ビジュアル・コア(PVC:Pixel Visual Core)、ベクトル処理ユニット(VPU:Vector 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)エレメント、データ処理ユニット(DPU:Data Processing Unit)、周辺構成要素相互接続(PCI)又は周辺構成要素相互接続エクスプレス(PCIe)エレメント、及び/又は同類のもの、を含む。
通信インターフェース610は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス600が他の計算デバイスと通信することを可能にする、1つ又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース610は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
I/Oポート612は、そのうちのいくつかは計算デバイス600に内蔵(たとえば、統合)され得る、I/O構成要素614、提示構成要素618、及び/又は他の構成要素を含む、他のデバイスに計算デバイス600が論理的に連結されることを可能にすることができる。例示的なI/O構成要素614は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素614は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス600のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス600は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス600は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス600によって使用され得る。
電力供給装置616は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置616は、計算デバイス600の構成要素が動作することを可能にするために計算デバイス600に電力を提供することができる。
提示構成要素618は、ディスプレイ(たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はその組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素618は、他の構成要素(たとえば、GPU608、CPU606など)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。
例示的データ・センタ
図7は、本開示の少なくとも1つの実施例において使用され得る例示的データ・センタ700を示す。データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及び/又はアプリケーション層740を含み得る。
図7は、本開示の少なくとも1つの実施例において使用され得る例示的データ・センタ700を示す。データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及び/又はアプリケーション層740を含み得る。
図7に示すように、データ・センタ・インフラストラクチャ層710は、資源オーケストレータ712、グループ化された計算資源714、及びノード計算資源(「ノードC.R.」)716(1)~716(N)を含み得、そこで、「N」は、任意の整数の、自然数を表す。少なくとも1つの実施例において、ノードC.R.716(1)~716(N)は、任意の数の中央処理装置(「CPU」)又は他のプロセッサ(加速装置、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサ若しくはグラフィックス・プロセッシング・ユニット(GPU)などを含む)、メモリ・デバイス(たとえば、動的リード・オンリ・メモリ)、記憶デバイス(たとえば、ソリッドステート若しくはディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」)デバイス、ネットワーク・スイッチ、仮想マシン(「VM」)、電力モジュール、及び/又は冷却モジュールなどを含み得るが、これらに限定されない。いくつかの実施例において、ノードC.R.716(1)~716(N)のうちの1つ又は複数のノードC.R.は、前述の計算資源のうちの1つ又は複数を有するサーバに対応し得る。加えて、いくつかの実施例において、ノードC.R.716(1)~7161(N)は、1つ若しくは複数の仮想構成要素、たとえば、vGPU、vCPU、及び/若しくは同類のもの、を含み得る、並びに/又は、ノードC.R.716(1)~716(N)のうちの1つ若しくは複数は、仮想マシン(VM)に対応し得る。
少なくとも1つの実施例において、グループ化された計算資源714は、1つ又は複数のラック(図示せず)内に収容された別個のグループのノードC.R.716、或いは様々な地理的場所(やはり図示せず)にあるデータ・センタに収容された多数のラックを含み得る。グループ化された計算資源714内の別個のグループのノードC.R.716は、1つ又は複数のワークロードをサポートするように構成する又は割り当てることができる、グループ化された計算、ネットワーク、メモリ又はストレージ資源を含み得る。少なくとも1つの実施例において、CPU、GPU、及び/又は他のプロセッサを含むいくつかのノードC.R.716は、1つ又は複数のワークロードをサポートするための計算資源を提供するために、1つ又は複数のラック内にグループ化され得る。1つ又は複数のラックはまた、任意の組合せで、任意の数の電力モジュール、冷却モジュール、及び/又はネットワーク・スイッチを含み得る。
資源オーケストレータ722は、1つ若しくは複数のノードC.R.716(1)~716(N)及び/又はグループ化された計算資源714を構成又は他の方法で制御することができる。少なくとも1つの実施例において、資源オーケストレータ722は、データ・センタ700のソフトウェア設計インフラストラクチャ(「SDI」)管理エンティティを含み得る。資源オーケストレータ722は、ハードウェア、ソフトウェア、又はその何らかの組合せを含み得る。
少なくとも1つの実施例において、図7に示すように、フレームワーク層720は、ジョブ・スケジューラ732、構成マネージャ734、資源マネージャ736、及び/又は分散型ファイル・システム738を含み得る。フレームワーク層720は、ソフトウェア層730のソフトウェア732及び/又はアプリケーション層740の1つ若しくは複数のアプリケーション742をサポートするためにフレームワークを含み得る。ソフトウェア732又はアプリケーション742は、ウェブベースのサービス・ソフトウェア又はアプリケーション、たとえば、アマゾン・ウェブ・サービス、グーグル・クラウド及びMicrosoft Azureによって提供されるもの、をそれぞれ含み得る。フレームワーク層720は、大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システム738を使用し得るApache Spark(商標)(以下「Spark」)などのフリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。少なくとも1つの実施例において、ジョブ・スケジューラ732は、データ・センタ700の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。構成マネージャ734は、異なる層、たとえば、ソフトウェア層730と、大規模データ処理をサポートするためのSpark及び分散型ファイル・システム738を含むフレームワーク層720、を構成する能力を有し得る。資源マネージャ736は、分散型ファイル・システム738及びジョブ・スケジューラ732のサポートのためにマップされた又は割り当てられたクラスタ化された又はグループ化された計算資源を管理する能力を有し得る。少なくとも1つの実施例において、クラスタ化された又はグループ化された計算資源は、データ・センタ・インフラストラクチャ層710にグループ化された計算資源714を含み得る。資源マネージャ1036は、資源オーケストレータ712と調整して、これらのマップされた又は割り当てられた計算資源を管理することができる。
少なくとも1つの実施例において、ソフトウェア層730に含まれるソフトウェア732は、ノードC.R.716(1)~716(N)の少なくとも部分、グループ化された計算資源714、及び/又はフレームワーク層720の分散型ファイル・システム738によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含み得るが、これらに限定されない。
少なくとも1つの実施例において、アプリケーション層740に含まれるアプリケーション742は、ノードC.R.716(1)~716(N)の少なくとも部分、グループ化された計算資源714、及び/又はフレームワーク層720の分散型ファイル・システム738によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、任意の数のゲノミクス・アプリケーション、認知計算、並びに、トレーニング若しくは推論ソフトウェア、マシン学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)、及び/又は1つ若しくは複数の実施例と併せて使用される他のマシン学習アプリケーションを含む、マシン学習アプリケーションを含み得るが、これらに限定されない。
少なくとも1つの実施例において、構成マネージャ734、資源マネージャ736、及び資源オーケストレータ712のうちのいずれかは、任意の技術的に可能な方式で取得される任意の量及びタイプのデータに基づいて任意の数及びタイプの自己書換え型アクションを実装することができる。自己書換え型アクションは、よくない可能性のある構成決定を行うこと並びにデータ・センタの十分に活用されていない及び/又は実行の不十分な部分を恐らく回避することからデータ・センタ700のデータ・センタ・オペレータを解放し得る。
データ・センタ700は、1つ又は複数のマシン学習モデルをトレーニングする或いは本明細書に記載の1つ又は複数の実施例による1つ又は複数のマシン学習モデルを使用して情報を予測する又は推論するために、ツール、サービス、ソフトウェア或いは他の資源を含み得る。たとえば、マシン学習モデルは、データ・センタ700に関して前述されたソフトウェア及び/又は計算資源を使用するニューラル・ネットワーク・アーキテクチャによる重量パラメータの計算によって、トレーニングされ得る。少なくとも1つの実施例において、1つ又は複数のニューラル・ネットワークに対応するトレーニングされた又は配備されたマシン学習モデルは、たとえば、本明細書に記載のものに限定されない、1つ又は複数のトレーニング技法を介して計算された重量パラメータを使用することによって、データ・センタ700に関して前述された資源を使用して情報を推論又は予測するために使用され得る。
少なくとも1つの実施例において、データ・センタ700は、前述の資源を使用するトレーニング及び/又は推論の実行のために、CPU、特定用途向け集積回路(ASIC)、GPU、DPU、FPGA、及び/又は他のハードウェア(若しくはそれに対応する仮想計算資源)を使用することができる。さらに、前述の1つ又は複数のソフトウェア及び/又はハードウェア資源は、情報の推論をユーザがトレーニング又は実行することを可能にするためのサービス、たとえば、画像認識、音声認識、又は他の人工知能サービス、として構成され得る。
例示的ネットワーク環境
本開示の実施例の実装において使用するのに適したネットワーク環境は、1つ若しくは複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図6の計算デバイス600の1つ又は複数のインスタンスで実装され得、たとえば、各デバイスは、計算デバイス600の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ700の一部として含まれ得、その実例は、図7に関して本明細書でさらに詳述される。
本開示の実施例の実装において使用するのに適したネットワーク環境は、1つ若しくは複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図6の計算デバイス600の1つ又は複数のインスタンスで実装され得、たとえば、各デバイスは、計算デバイス600の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ700の一部として含まれ得、その実例は、図7に関して本明細書でさらに詳述される。
ネットワーク環境の構成要素は、ワイヤード、ワイヤレス、又はその両方でもよい、ネットワークを介して互いに通信し得る。ネットワークは、複数のネットワーク、又はネットワークのネットワークを含み得る。実例として、ネットワークは、1つ若しくは複数のワイド・エリア・ネットワーク(WAN)、1つ若しくは複数のローカル・エリア・ネットワーク(LAN)、1つ若しくは複数のパブリック・ネットワーク、たとえば、インターネット及び/若しくは公衆交換電話網(PSTN)、並びに/又は1つ若しくは複数のプライベート・ネットワークを含み得る。ネットワークが、ワイヤレス電気通信ネットワークを含む場合、構成要素、たとえば、基地局、通信塔、或いはアクセス・ポイント(並びに他の構成要素)、は、ワイヤレス接続を提供し得る。
互換性のあるネットワーク環境は、1つ又は複数のピア・ツー・ピア・ネットワーク環境(その場合、サーバはネットワーク環境に含まれないことがある)と、1つ又は複数のクライアント・サーバ・ネットワーク環境(その場合、1つ又は複数のサーバがネットワーク環境に含まれ得る)とを含み得る。ピア・ツー・ピア・ネットワーク環境では、サーバに関して本明細書に記載した機能性は、任意の数のクライアント・デバイスで実装され得る。
少なくとも1つの実施例において、ネットワーク環境は、1つ又は複数のクラウドベースのネットワーク環境、分散型計算環境、その組合せなどを含み得る。クラウドベースのネットワーク環境は、フレームワーク層、ジョブ・スケジューラ、資源マネージャ、並びに、1つ若しくは複数のコア・ネットワーク・サーバ及び/又はエッジ・サーバを含み得る、サーバのうちの1つ又は複数で実装された分散型ファイル・システムを含み得る。フレームワーク層は、ソフトウェア層のソフトウェア及び/又はアプリケーション層の1つ若しくは複数のアプリケーションをサポートするために、フレームワークを含み得る。ソフトウェア又はアプリケーションは、それぞれ、ウェブベースのサービス・ソフトウェア又はアプリケーションを含み得る。実施例において、クライアント・デバイスのうちの1つ又は複数は、ウェブベースのサービス・ソフトウェア又はアプリケーションを使用し得る(たとえば、1つ又は複数のアプリケーション・プログラミング・インターフェース(API)を介してサービス・ソフトウェア及び/又はアプリケーションにアクセスすることによって)。フレームワーク層は、たとえば大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システムを使用し得る、フリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。
クラウドベースのネットワーク環境は、本明細書に記載の計算及び/又はデータ・ストレージ機能(又は1つ若しくは複数のその部分)の任意の組合せを実施するクラウド計算及び/又はクラウド・ストレージを提供し得る。これらの様々な機能のいずれも、セントラル又はコア・サーバ(たとえば、州、領域、国、世界にわたって分散され得る1つ又は複数のデータ・センタなどの)から複数の場所に分散され得る。ユーザ(たとえば、クライアント・デバイス)への接続が、エッジ・サーバに比較的近い場合、コア・サーバは、機能性の少なくとも一部分をエッジ・サーバに任じ得る。クラウドベースのネットワーク環境は、プライベート(たとえば、単一の組織に制限される)でもよく、パブリック(たとえば、多数の組織に利用可能)、及び/又はその組合せ(たとえば、ハイブリッド・クラウド環境)でもよい。
クライアント・デバイスは、図6に関して本明細書に記載の例示的計算デバイス600の構成要素、特徴、及び機能性のうちの少なくともいくつかを含み得る。実例として、及び制限ではなく、クライアント・デバイスは、パーソナル・コンピュータ(PC)、ラップトップ・コンピュータ、モバイル・デバイス、スマートフォン、タブレット・コンピュータ、スマート・ウォッチ、ウェアラブル・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、MP3プレーヤ、仮想現実ヘッドセット、全地球測位システム(GPS)又はデバイス、ビデオ・プレイヤ、ビデオカメラ、監視デバイス又はシステム、車両、ボート、飛行船、仮想マシン、ドローン、ロボット、ハンドヘルド通信デバイス、病院デバイス、ゲーミング・デバイス又はシステム、娯楽システム、車両コンピュータ・システム、組み込み型システム・コントローラ、リモート制御、器具、民生用電子デバイス、ワークステーション、エッジ・デバイス、これらの描写されたデバイスの任意の組合せ、或いは任意の他の適切なデバイスとして実施され得る。
本開示は、コンピュータ又は、携帯情報端末若しくは他のハンドヘルド・デバイスなどの、他のマシンによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又はマシン使用可能命令との一般的関連において説明されることがある。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造体などを含むプログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、家電製品、汎用コンピュータ、より特殊な計算デバイスなどを含む、様々な構成で実施され得る。本開示はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型コンピューティング環境において実施され得る。
本明細書では、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 (25)
- 第1のデータをディープ・ニューラル・ネットワーク(DNN)及びパッチ・ニューラル・ネットワーク(PNN)に適用するステップと、
第2のデータを計算するために前記第1のデータを処理するステップと
を含む方法であって、前記処理するステップが、
前記DNNのノードの第1のサブセットを使用して、前記第1のデータに少なくとも部分的に基づいて、第1の出力を計算するステップ、
前記DNNの前記ノードの第2のサブセットを使用して、前記第1の出力を処理するステップ、
前記PNNのノードの第1のサブセットを使用して、前記第1のデータに少なくとも部分的に基づいて、第2の出力を計算するステップ、
前記PNNの前記ノードの第2のサブセットを使用して、前記第1の出力及び前記第2の出力を処理するステップ、及び
前記第2のデータに少なくとも部分的に基づいて1つ又は複数の動作を実行するステップ
を含む、方法。 - 前記PNNの前記ノードを含む前記PNNのPNN層が、前記DNNの前記ノードを含む前記DNNのDNN層とは別個である、請求項1に記載の方法。
- より大きなDNNの1つ又は複数の層が、前記PNNの前記ノード及び前記DNNの前記ノードを備える、請求項1に記載の方法。
- 前記第2のデータが、前記DNNの最終出力及び前記PNNの最終出力を表す、請求項1に記載の方法。
- 前記PNNの最終出力が、前記DNNの前記最終出力によって表される少なくとも1つの出力タイプ及び前記DNNの前記最終出力によって表されない少なくとも1つの出力タイプを含む、請求項4に記載の方法。
- 前記DNNの前記最終出力及び前記PNNの前記最終出力を分析するステップに少なくとも部分的に基づいて、出力選択を決定するステップ
をさらに含み、
前記1つ又は複数の動作を実行するステップが、前記出力選択に少なくとも部分的に基づく、請求項4に記載の方法。 - 前記出力選択を決定するステップが、前記出力選択として前記DNNの前記最終出力又は前記PNNの前記最終出力を使用するかどうかを指示する2進決定を出力するゲーティング・ニューラル・ネットワーク(GNN)を使用して実行される、請求項6に記載の方法。
- 前記分析するステップが、前記DNNの前記最終出力に関連する第1の信頼性値及び前記PNNの前記最終出力に関連する第2の信頼性値を分析するステップを含み、
前記出力選択を決定するステップが、前記第1の信頼性値及び前記第2の信頼性値を分析するステップに少なくとも部分的に基づいて前記出力選択を選択するステップを含む、請求項6に記載の方法。 - 1つ又は複数の受信された信号に少なくとも部分的に基づいて前記DNNの前記最終出力又は前記PNNの前記最終出力を使用することを決定するステップをさらに含む、請求項4に記載の方法。
- 前記1つ又は複数の受信された信号が、位置、気象条件、照明条件、又は時刻に対応する、請求項9に記載の方法。
- 前記方法が、
自律又は半自律マシンのための制御システム、
自律又は半自律マシンのための知覚システム、
シミュレーション動作を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
1つ又は複数の仮想マシン(VM)を組み込むシステム、
データ・センタにおいて少なくとも部分的に実装されるシステム、或いは、
クラウド計算資源を使用して少なくとも部分的に実装されるシステム
のうちの少なくとも1つによって実行される、請求項1に記載の方法。 - 前記PNNの前記ノードの第1のパラメータがトレーニングされ、一方、前記DNNの前記ノードの第2のパラメータが固定される、請求項1に記載の方法。
- 前記第2の出力と前記DNNの前記ノードのうちの1つ又は複数との関係に関連する重みが、ゼロに固定される、請求項1に記載の方法。
- 自律型車両を制御するための出力を生成するためのシステム・オン・チップ(SoC)
を備えるシステムであって、前記SoCが、
ニューラル・ネットワークを実行するためのプロセッサ
を備え、前記ニューラル・ネットワークが、
第1のセンサ・データを処理して第1の出力を計算するための第1のセットの初期ノード及び前記第1のデータを処理して第2の出力を計算するための第1のセットのパッチ・ノードを含む第1の層と、
前記第1の層に続く第2の層であって、前記第1の出力を処理して第3の出力を計算するための第2のセットの初期ノードと、前記第1の出力及び前記第2の出力を処理して第4の出力を計算するための第2のセットのパッチ・ノードとを含む第2の層と
を含む、システム。 - 前記第1のセットのノードが、前記第2のセットのノードとは別個にトレーニングされ、前記第2のセットのノードのトレーニング中、前記第1のセットのノードに関連するパラメータが固定される、請求項14に記載のシステム。
- 1つ又は複数のゼロが、前記第2のセットのパッチ・ノードに対応するマトリックスの次元性にマッチするように前記第2のセットの初期ノードに対応するマトリックスに追加され、前記1つ又は複数のゼロが、前記第1のセットのパッチ・ノード及び前記第2のセットの初期ノードの前記第2の出力の関係の間の重みに対応する、請求項14に記載のシステム。
- 前記ニューラル・ネットワークが、第1の個別の層としての前記第1のセットの初期ノード及び第2の個別の層としての前記第1のセットのパッチ・ノードでトレーニングされ、
トレーニング後、前記第1の層が、前記第1のセットの初期ノードに関連する重みと前記第1のセットのパッチ・ノードに関連する重みを連結させることによって生成される、請求項14に記載のシステム。 - トレーニング中、前記ニューラル・ネットワークが、前記ニューラル・ネットワークの1つ又は複数の層に対応する1つ又は複数のセットのパッチ・ノードを取り除くための枝刈り動作を受ける、請求項14に記載のシステム。
- 第1のデータをディープ・ニューラル・ネットワーク(DNN)及びパッチ・ニューラル・ネットワーク(PNN)に適用し、
第2のデータを計算するために前記第1のデータを処理する
ための1つ又は複数の回路を備えるプロセッサであって、前記処理することが、
前記DNNのノードの第1のサブセットを使用して、前記第1のデータに少なくとも部分的に基づいて、第1の出力を計算すること、
前記DNNの前記ノードの第2のサブセットを使用して、前記第1の出力を処理すること、
前記PNNのノードの第1のサブセットを使用して、前記第1のデータに少なくとも部分的に基づいて、第2の出力を計算すること、
前記PNNの前記ノードの第2のサブセットを使用して、前記第1の出力及び前記第2の出力を処理すること、及び、
前記第2のデータに少なくとも部分的に基づいて1つ又は複数の動作を実行すること
を含む、プロセッサ。 - 前記PNNの前記ノードが、前記DNNの1つ又は複数の層とは別個の前記PNNの1つ又は複数の層に対応する、請求項19に記載のプロセッサ。
- 前記PNNの前記ノードが、結合された層を生成するために前記DNNの前記ノードに加えて含まれる、請求項19に記載のプロセッサ。
- 前記プロセッサが、
自律又は半自律マシンのための制御システム、
自律又は半自律マシンのための知覚システム、
シミュレーション動作を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
1つ又は複数の仮想マシン(VM)を組み込むシステム、
データ・センタにおいて少なくとも部分的に実装されるシステム、或いは、
クラウド計算資源を使用して少なくとも部分的に実装されるシステム、
のうちの少なくとも1つに含まれる、請求項19に記載のプロセッサ。 - 前記PNNの前記ノードの第1のパラメータがトレーニングされ、一方、前記DNNの前記ノードの第2のパラメータが固定される、請求項19に記載のプロセッサ。
- 前記PNNの前記ノードの前記第2の出力と前記DNNの前記ノードとの関係に関連する重みがゼロに固定される、請求項19に記載のプロセッサ。
- 前記PNNが、シャドウ・モードにおいて前記PNNを実行することによって、少なくとも部分的に検証される、請求項19に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/164,362 US20220244727A1 (en) | 2021-02-01 | 2021-02-01 | Patching deployed deep neural networks for autonomous machine applications |
US17/164,362 | 2021-02-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022117916A true JP2022117916A (ja) | 2022-08-12 |
Family
ID=82402832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021107164A Pending JP2022117916A (ja) | 2021-02-01 | 2021-06-29 | 自律マシン・アプリケーションのための配備されたディープ・ニューラル・ネットワークのパッチ |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220244727A1 (ja) |
JP (1) | JP2022117916A (ja) |
CN (1) | CN114841336A (ja) |
DE (1) | DE102022101775A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230070759A (ko) * | 2021-11-15 | 2023-05-23 | 한국전자통신연구원 | 자원 중심 네트워크의 메모리 주소 할당 방법 및 장치 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016201609A (ja) | 2015-04-08 | 2016-12-01 | 日本電気通信システム株式会社 | 加入者端末装置、通信サービス提供システム、通信制御方法、及び、通信制御プログラム |
JP6211030B2 (ja) | 2015-04-14 | 2017-10-11 | 三菱電機株式会社 | 電子制御装置および電子制御装置の製造方法 |
US9691019B1 (en) * | 2017-03-07 | 2017-06-27 | Google Inc. | Depth concatenation using a matrix computation unit |
US10410115B2 (en) * | 2017-04-28 | 2019-09-10 | Intel Corporation | Autonomous machines through cloud, error corrections, and predictions |
US11995539B2 (en) * | 2017-06-09 | 2024-05-28 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for re-learning trained model |
US10997729B2 (en) * | 2018-11-30 | 2021-05-04 | Baidu Usa Llc | Real time object behavior prediction |
US10977501B2 (en) * | 2018-12-21 | 2021-04-13 | Waymo Llc | Object classification using extra-regional context |
US11875551B2 (en) * | 2020-06-09 | 2024-01-16 | Navbirswagen Aktiengesellschaft | Collecting and processing data from vehicles |
-
2021
- 2021-02-01 US US17/164,362 patent/US20220244727A1/en active Pending
- 2021-06-29 JP JP2021107164A patent/JP2022117916A/ja active Pending
-
2022
- 2022-01-26 DE DE102022101775.3A patent/DE102022101775A1/de active Pending
- 2022-01-27 CN CN202210102357.5A patent/CN114841336A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022101775A1 (de) | 2022-08-04 |
US20220244727A1 (en) | 2022-08-04 |
CN114841336A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7399164B2 (ja) | 駐車スペース検出に適したスキューされたポリゴンを使用した物体検出 | |
US20230017261A1 (en) | Domain restriction of neural networks through synthetic data pre-training | |
US11592828B2 (en) | Using neural networks to perform fault detection in autonomous driving applications | |
JP2022538813A (ja) | 自律マシン・アプリケーションのための交差点領域検出及び分類 | |
JP2023507695A (ja) | 自律運転アプリケーションのための3次元交差点構造予測 | |
JP2022530091A (ja) | 自律マシン・アプリケーションにおける交差点姿勢検出 | |
JP2023531330A (ja) | マシン学習を使用した自律マシン・アプリケーションのためのセンサ融合 | |
JP2023503729A (ja) | 自律運転アプリケーションのための曲線適合を使用するランドマーク検出 | |
JP2022536030A (ja) | ビデオ分析アプリケーションにおける相関フィルタを使用した複数物体追跡 | |
JP2023509831A (ja) | 自律マシン・アプリケーションにおける車線変更プランニング及び制御 | |
CN114155272A (zh) | 自主机器应用中的自适应目标跟踪算法 | |
US20220391766A1 (en) | Training perception models using synthetic data for autonomous systems and applications | |
JP2023031237A (ja) | 自律マシン・アプリケーションのためのLiDARデータを使用する物体追跡 | |
US20230110713A1 (en) | Training configuration-agnostic machine learning models using synthetic data for autonomous machine applications | |
US20230130814A1 (en) | Yield scenario encoding for autonomous systems | |
US12055412B2 (en) | System and methods for updating high definition maps | |
JP2023051713A (ja) | 自律マシン・アプリケーションにおける深層学習を使用する視認距離推定 | |
JP2023131069A (ja) | 自律システム及びアプリケーションのためのニューラル・ネットワークを使用したマップ情報の物体データ・キュレーション | |
US20230406315A1 (en) | Encoding junction information in map data | |
JP2023071168A (ja) | 自律マシン・アプリケーションのための粒子ベース危険検出 | |
US20220340149A1 (en) | End-to-end evaluation of perception systems for autonomous systems and applications | |
US20220250624A1 (en) | Multi-view geometry-based hazard detection for autonomous systems and applications | |
WO2024015632A1 (en) | Surround scene perception using multiple sensors for autonomous systems and applications | |
US20240227824A9 (en) | Asynchronous in-system testing for autonomous systems and applications | |
US20220379913A1 (en) | Perception-based sign detection and interpretation for autonomous machine systems and applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240322 |