JP2022132075A - 自律運転アプリケーションにおけるディープ・ニューラル・ネットワーク知覚のためのグラウンド・トゥルース・データ生成 - Google Patents
自律運転アプリケーションにおけるディープ・ニューラル・ネットワーク知覚のためのグラウンド・トゥルース・データ生成 Download PDFInfo
- Publication number
- JP2022132075A JP2022132075A JP2021202139A JP2021202139A JP2022132075A JP 2022132075 A JP2022132075 A JP 2022132075A JP 2021202139 A JP2021202139 A JP 2021202139A JP 2021202139 A JP2021202139 A JP 2021202139A JP 2022132075 A JP2022132075 A JP 2022132075A
- Authority
- JP
- Japan
- Prior art keywords
- annotation
- lidar
- frame
- scenes
- camera
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title abstract description 51
- 230000008447 perception Effects 0.000 title description 17
- 238000002372 labelling Methods 0.000 claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 87
- 238000012545 processing Methods 0.000 claims description 48
- 238000013135 deep learning Methods 0.000 claims description 11
- 238000012800 visualization Methods 0.000 claims description 11
- 230000002123 temporal effect Effects 0.000 claims description 9
- 239000000523 sample Substances 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 56
- 238000001514 detection method Methods 0.000 description 41
- 238000010801 machine learning Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 23
- 238000003860 storage Methods 0.000 description 22
- 238000013527 convolutional neural network Methods 0.000 description 21
- 230000000670 limiting effect Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000012549 training Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 239000013598 vector Substances 0.000 description 16
- 238000013481 data capture Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 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 10
- 238000012805 post-processing Methods 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 10
- 238000000275 quality assurance Methods 0.000 description 9
- 238000013439 planning Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 235000019800 disodium phosphate Nutrition 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 241000269400 Sirenidae Species 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000001976 improved effect Effects 0.000 description 4
- 230000002452 interceptive effect Effects 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
- 238000009877 rendering Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000008093 supporting effect 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
- 241000282412 Homo Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001149 cognitive effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 206010034960 Photophobia Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 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
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 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
- 230000006872 improvement Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000000644 propagated effect Effects 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
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/004—Annotating, labelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】注釈パイプラインに関するシステム及び方法を提供する。【解決手段】DNN(ディープ・ニューラル・ネットワーク)の2D及び/又は3Dグラウンド・トゥルース・データの生成に使用する注釈パイプライン100は、最初に、センサ・データを、異なるタイプのセンサでキャプチャし、類似の世界状態を表すセンサ・データのフレームを整列させるために同期する。整列したフレームを、注釈を付けるべき注釈場面のシーケンスへとサンプリング及びパッケージ化する。注釈プロジェクトを、モジュール・タスクに分解し、ラベル付けツールへとエンコードする。タスクの間、注釈場面における各タイプのセンサ・データを、同時に提示する。情報は、センサ・モダリティを横断して投影されて有用なコンテキスト情報を提供する。すべての注釈タスクが完了した後、結果として生じるグラウンド・トゥルース・データは、任意の適切なフォーマットでエクスポートされる。【選択図】図1
Description
本発明は、自律運転アプリケーションにおけるディープ・ニューラル・ネットワーク知覚のためのグラウンド・トゥルース・データ生成に関する。
監視なしに自律的に及び安全に車両を運転するためのシステムを設計することは極めて難しい。自律型車両は、車両の進路に沿った他の物体又は構造物との衝突を回避するために、注意深い-複雑な環境において移動する及び静的な障害物を識別する及びそれに反応するための驚くべき能力を有する知覚及びアクション・システムを利用する-運転者の機能的等価物として実行する能力を少なくとも有するべきである。したがって、環境の有生物体(たとえば、乗用車、歩行者など)及び他の部分のインスタンスを検出するための能力は、しばしば、自律運転知覚システムにとって不可欠である。従来の知覚方法は、しばしば、カメラ又はLiDARセンサに依存して環境内の物体を検出しており、ディープ・ニューラル・ネットワーク(DNN:deep neural network)を使用してLiDAR及びカメラ知覚を実行する様々な手法が、開発されている。そのようなDNNのクラスには、透視図においてカメラ画像のパノラマ的区分化を実行するDNNと、LiDAR点群からのトップ・ダウン又は「鳥瞰図」(BEV:Bird’s Eye View)物体検出を実行するDNNとが含まれる。
適切な精度で知覚を実行するようにDNNをトレーニングするために、DNNは、正確なグラウンド・トゥルース・データでトレーニングされる必要がある。リアルタイムのDNN知覚は、通常は、計算の制約により2次元(2D)で実行され、したがって、これらのネットワークのグラウンド・トゥルースは、通常は、2Dで与えられる。しかしながら、技術が進むにつれて、3次元(3D)知覚が実用的になり始めており、高品質3Dグラウンド・トゥルース・データに対する満たされていない必要性が存在する。
自律運転アプリケーションにおけるDNN知覚のためのグラウンド・トゥルースを生成するための従来の技法は、様々な欠点を有する。第1のDNNが透視図においてカメラ画像のパノラマ的区分化を実行する、及び第2のDNNがLiDAR点群のトップ・ダウン投影画からの物体検出を実行する、前述の例を取り上げる。この場合、第1のDNNは、グラウンド・トゥルース注釈を有するカメラ画像を必要とすることになり、第2のDNNは、グラウンド・トゥルース注釈を有するトップ・ダウンLiDAR投影画を必要とすることになる。従来、これらのタイプのグラウンド・トゥルース注釈は、別個のラベル付けプロセスにおいて生成される。しかしながら、ある種の状況では、正確なラベルを生成することは難しい又は不可能ですらある。LiDAR及びRADARラベル付けを例として取り上げると、これらのモダリティは、疎データを生成し、正確なラベルを適用するために必要とされる粒度及びコンテキストを時として欠いている。トップ・ダウン・ビューでは、これらの物体のトップ・ダウン・ビューは、しばしば、ポール、木の幹、又は茂みのような他の物体のトップ・ダウン・ビューに類似して見えるので、歩行者又は自転車を区別することが難しい又は不可能なことすらあり得る。結果として、従来のラベル付け技法は、エラーを有するグラウンド・トゥルース・データをもたらし得る。理想的には、これらのエラーは、品質チェック中に発見されるが、それでもスループット及び効率に悪影響を及ぼし、並びに計算資源を浪費する。
本開示の実施例は、ディープ・ニューラル・ネットワーク(DNN)、たとえば、自律型又は半自律型車両、ロボット、又は他の物体タイプにおいて知覚を実行するもの、のための2D及び/又は3Dグラウンド・トゥルース・データを生み出す注釈パイプラインに関する。
一般に、本明細書に記載の注釈パイプラインは、高品質グラウンド・トゥルース・データの生産を効率化する改良されたワークフロー及びソフトウェア・インターフェースである。最初に、センサ・データは、キャプチャ・セッション中に異なるタイプのセンサ(センサ・モダリティ)でキャプチャされ得る。異なるセンサからのデータは、類似の世界状態を表すセンサ・データのフレームを整列させるために、同期化され得る。LiDAR及びカメラを含む一実例において、LiDARスピンが、環境の異なる部分を進む及び見るとき、任意の所与のLiDARスピンの時間的に最も近いカメラ・フレームが、LiDARスピン開始角度に対するカメラの視野角及びLiDARスピンがカメラの視野と整列するのにどのくらいかかるかに基づいて、選択され得る。いくつかの実施例において、LiDARスピン開始に対するカメラごとの時間又はインデックス・オフセットが、LiDARフレームと各カメラのカメラ・フレームを整列させるために、決定及び/又は適用され得る。一般に、異なるタイプのセンサ・データのフレームは、注釈を付けるべき注釈場面のシーケンスへと整列、サンプリング、及びパッケージ化され得る。
いくつかの実施例において、注釈プロジェクトは、異なるラベラに割り当てられ得る、モジュール・タスクに分解され得る。カメラ及びLiDARを含む非限定的実例において、最初にシーケンス内のいくつかの又はすべてのカメラ画像が、注釈を付けられ得、次いで、シーケンス内のいくつかの又はすべてのLiDARフレームが、注釈を付けられ得(たとえば、第1のトップ・ダウン2D境界ボックス、次いで3D境界ボックス)、連続的注釈場面において現れる物体が、リンクされ得、次いで、両方のセンサ・モダリティ(LiDAR及びカメラ・フレーム)において現れる物体が、ともにリンクされ得る。注釈タスクは、タスクをラベラに割り当てる及びタスクを通してラベラを導くウィザードを使用して入力の順番を配置する、ラベル付けツールへとエンコードされ得る。注釈タスクの間、注釈場面における各タイプのセンサ・データが、ラベラに提示され得る(たとえば、サイド・バイ・サイド)、及び/又は、情報が、異なるタイプのセンサ・データの間の対応などの有用なコンテキスト情報を提供するために、センサ・モダリティを横断して投影され得る。いくつかの実施例において、ラベル付けツールは、シーケンス内の各注釈場面の物体ごとの注釈手順を通してラベラを進ませることができる。
注釈プロジェクト内のいくつかの又はすべての注釈タスクが完了した後、結果として生じたグラウンド・トゥルース・データは、任意の適切なフォーマットでエクスポートされ得る。したがって、1つ又は複数のマシン学習モデルは、エクスポートされたグラウンド・トゥルース・データを使用して、トレーニングされ得る。
ディープ・ニューラル・ネットワーク知覚のためのグラウンド・トゥルース・データを生成するための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
前述の問題への1つの潜在的解決法は、有用なコンテキスト情報を提供することによってラベラを支援することができる、センサ・モダリティを横断した情報の投影である。しかしながら、この可能性は、いくつかの課題をもたらす。従来、グラウンド・トゥルースLiDAR注釈は、トップ・ダウン2D境界ボックスに制限されたが、トップ・ダウン境界ボックスは、カメラ空間内に上手く投影せず、ラベラを助けるのに十分な付加的コンテキストを提供しないことがある。さらに、異なるセンサ・モダリティの間の完璧な時間的整列を得ることが不可能な場合、それは難しい。理想的シナリオにおいて、複数のセンサ(たとえば、カメラ及びLiDARセンサ)を有する構成を想定しても、トリガは、特定の時点において適用され、すべてのセンサは、同時に始動する。実際に、この理想的シナリオは、異なるタイプのセンサ、遅延線の差、サンプリング周波数の差(たとえば、30fpsで作動するカメラ対10fpsで作動するLiDAR)、及び同類のものを同期させる、カメラを同期させる課題のため、ほぼ不可能である。具体的実例としてLiDAR及びカメラを取り上げると、LiDARセンサは、スピンするのに時間を要し(たとえば、100ミリ秒/回転)、したがって、LiDARスピンの位置に関して特定のカメラを完全に同期させることは、困難であり、しばしば実際には不可能である。各センサの個々の較正は、しばしば、完全な整列のために必要とされるすべての自由度を回復することはできないので、センサの間の空間的整列にも実用限界が存在し得る。結果として、センサ・モダリティを横断して情報を投影することは、異なる世界状態からの情報を混ぜ、潜在的には利益を無効にすることがある。
これらの及び他の課題に対処するために、自律型又は半自律型車両、ロボット、又は他の物体タイプにおいて知覚を実行するものなどの、ディープ・ニューラル・ネットワーク(DNN)のための2D及び/又は3Dグラウンド・トゥルース・データを生み出す注釈パイプラインに関する、システム及び方法が開示される。本開示は、例示的自律型車両1400(その実例は図14A~14Dに関して本明細書で説明され、本明細書で別法として「車両1400」又は「自己車両1400」と称される)に関して説明されることがあるが、これは限定を意図していない。たとえば、本明細書に記載のシステム及び方法は、非自律型車両、半自律型車両(たとえば、1つ又は複数の高度運転者支援システム(ADAS:advanced driver assistance system)における)、ロボット、倉庫車両、オフロード車両、飛行船舶、ボート、及び/又は他のタイプの車両におけるDNNのためのグラウンド・トゥルース・トレーニング・データを生成するために使用され得る。加えて、本開示は、自律運転に関して説明されることがあるが、これは限定を意図していない。たとえば、本明細書に記載のシステム及び方法は、ロボット工学(たとえば、ロボットのための進路プランニング)、航空システム(たとえば、ドローン又は他の航空機のための進路プランニング)、船舶システム(たとえば、ボート又は他の船舶のための進路プランニング)、並びに/又は、たとえば、ローカリゼーション、進路プランニング、及び/若しくは他のプロセスのための他の技術分野、においてDNNのためのトレーニング・データを生成するために使用され得る。
一般に、本明細書に記載の注釈パイプラインは、先行技法より高品質のグラウンド・トゥルース・データの生産を合理化する改良されたワークフロー及びソフトウェア・インターフェースである。最初に、センサ・データは、キャプチャ・セッション中に異なるタイプのセンサ(センサ・モダリティ)でキャプチャされる。注釈タスクを支援することができる有用なコンテキスト情報を識別するために、異なるセンサ・モダリティからのデータが、注釈場面のシーケンス(たとえば、ほぼその時間に取得されたセンサ・データのセット)を構成するために同期化される。シーケンスの所望の区分が、ラベル付けのために選択及び設計され得、所望の注釈が、1セットの線形タスクへと分解され得る。異なるタスクは、センサ・タイプ、ラベル付けされている物体のタイプ、注釈詳細のレベル、及び/又はその他に基づいて分割され得る。タスクは、タスクをラベラに割り当てる及びタスクを通してラベラを導くウィザードを使用して入力の順番を配置する、ラベル付けツールへと入力又は他の方法でエンコードされ得る。注釈タスクの間、注釈場面におけるセンサ・データの各タイプが、ラベラに提示され得る(たとえば、サイド・バイ・サイド)、及び/又は、情報が、有用なコンテキスト情報、たとえば、異なるタイプのセンサ・データの間の対応、を提供するために、センサ・モダリティを横断して投影され得る。場合によっては、いくつかのタイプの注釈が、自動的に生成され得る。いくつかの又はすべての注釈タスクが完了するとき、ラベル付けツールは、任意の適切なフォーマットで結果として生じたグラウンド・トゥルース注釈をエクスポートすることができる。
いくつかの実施例において、注釈プロジェクトは、異なるラベラに割り当てられ得る、モジュール・タスクに分解され得る。カメラ及びLiDARを含む非限定的実例において、最初にシーケンス内のいくつかの又はすべてのカメラ画像がラベルを付けられ、次いで、シーケンス内のいくつかの又はすべてのLiDARフレームがラベルを付けられ(たとえば、第1のトップ・ダウン2D境界ボックス、次いで、3D境界ボックス)、連続的注釈場面において現れる物体がリンクされ得、次いで、両方のセンサ・モダリティにおいて出現する物体がともにリンクされる。追加で又は別法として、注釈プロジェクトは、ラベルのタイプ(たとえば、所与のタスクにおいて、乗用車、交通標識、又は道路場面におけるいくつかの他の要素のみにラベルを付ける)、詳細のレベル(たとえば、所与のタスクにおいて、物体フットプリントのポリラインのみを適用する又は完全3D境界ボックスを適用する)に基づいて、及び/又は他のやり方で、複数の段階又はタスクに分割することができる。注釈プロジェクトを分解すること及び個別のプロジェクト特有のタスクを実行するようにラベラに促すことによって、注釈パイプラインはモジュール化され得、そのようにして、ラベラは一度に個別のタスクに集中することができる。
任意の所与の注釈タスクの間、ラベル付けツールのインターフェースは、注釈場面において異なるタイプのセンサ・データを提示して(たとえば、サイド・バイ・サイド)及び/又はセンサ・モダリティを横断して情報を投影して、有用なコンテキスト情報を提供することができる。投影された情報は、センサ検出(たとえば、点、平面、走査線)、注釈、センサ・データのフレーム内の特定の位置を指定する入力プローブ、及び/又は他の情報を含み得る。注釈タスクの間にコンテキスト情報を提示することによって、ラベラは、より正確なラベルを適用することができる。たとえば、1群の歩行者が、少数の点検出のみを有するLiDARデータの特定のフレームにおいて表されることがあるが、対応するカメラ・フレームを提示することによって、ラベラは、LiDARデータでは隠された歩行者を容易に見ることができる。同様に、ラベラが、どのタイプの障害物が特定のLiDAR検出によって表されているかを確信できない場合、いくつかの実施例において、ラベラは、LiDAR検出をクリックすることができ、視覚化が、カメラ・フレーム内の対応する点(たとえば、ピックアップ・トラックを識別する)において適用され得る。ラベラは、次いで、LiDARフレーム上に適切なラベルを適用することができ得る。
本明細書に記載のラベル付けツール及び注釈パイプラインは、先行技法を超えて様々な利益を提供することができる。一般に、センサ・データを見ている人間のラベラに追加コンテキストを提供することは、手動ラベル付けの精度及び効率を向上させ、前には不可能だったいくつかのタイプのグラウンド・トゥルース・ラベルを可能にする。たとえば、(ステッチされた)カメラ画像などの追加コンテキストを有するLiDARデータを提示することによって、ラベラは、3D LiDARラベル、たとえば、3D境界ボックス、をここでは正確に生成することができる。LiDAR空間において注釈を付けられた3D境界ボックスで、それらのラベルは、より正確なカメラ・ラベルをラベラが生成することを可能にすることができる、カメラ・ラベル付けのための有用なコンテキストを提供するために、対応するカメラ画像に投影され得る。結果として、本明細書に記載の技法は、より正確なDNNをトレーニングするために使用することができる、グラウンド・トゥルースのより正確な表現の仕様を提供する。
さらに、ラベル付けの間に追加コンテキストをラベラに提示することは、一般に、ラベラがラベルを製造することをより容易にする。たとえば、異なるタイプのセンサ・データのサイド・バイ・サイド・ビューを提示すること及び/又はセンサ・モダリティを横断する対応を示すことは、認知的負荷を減らして及び認識の速度を上げて、ラベラがデータを理解することをより容易にする。結果として、本明細書に記載のラベル付けツールは、先行技法と比較して、コンピュータとのラベラの相互作用をより効率的にする。この改良は、効率及びスループットに関してワークフロー全体を助け、結果として、先行技法よりも計算資源の必要性を減らす。言い換えれば、ツールが優れているほど、ラベル付けはより効率的になり、スループットはより高くなる。ツールをより使い易くすることによって、本技法の様々な態様は、先行技法よりも再作業の量を減らすことによって注釈ワークフローの速度を上げる。
さらに、容易に消化されやすいタスクへと注釈タスクを分割すること及び注釈プロジェクトを分解することは、注釈プロセスを合理化し、情報オーバーロードの発生を減らす。従来、多数の企業は、一度にセンサ・データの各フレームに適用可能なすべての注釈タスクを実行するようにラベラに命じており、それは、相当なトレーニングを必要とする複雑なラベル付けプロセスをもたらす。必要とされる注釈をより小さな、消化されやすいタスクに分解することによって、タスクは、多数のラベラに割り当てることができ、ラベル付けパイプラインをよりスケーラブルにする。さらに、センサ・タイプによって注釈タスクを分割することによって、ラベル付けプロセスは、センサ・モダリティ間の時間的又は空間的不整合の影響を受けにくい。たとえば、LiDARフレーム及び対応するカメラ・フレームが、完全に整列させられない場合でも、LiDAR注釈タスクはLiDARフレームにおいて直接実行されるので、ラベル精度への影響は最小限である。この実例において、対応するカメラ・フレームは、単に柔軟なガイダンスとして使用され、したがって、不整合は、グラウンド・トゥルースとしてハードコード化されない。最後に、異なるセンサ・モダリティ及び/又は注釈場面を横断して前に作られた注釈をラベラが関連付ける、リンク設定タスクを含む実施例では、このタスクをその他の後に配置することによって、ラベラは、両方のセンサ・モダリティ及び/又は注釈場面から注釈を見直すのに適した場所にあるので、リンク設定タスクは、品質チェックの機能を果たすことができる。結果として、このリンク設定タスクを使用することは、別個の品質チェックを実行する必要性をなくし、ワークフロー全体をさらに改善する。
そのようなものとして、本明細書に記載のラベル付けツール及び注釈パイプラインは、より正確なDNNをトレーニングするために使用され得る、グラウンド・トゥルースのより正確な表現を生成するために使用され得る。
例示的グラウンド・トゥルース注釈パイプライン
ディープ・ニューラル・ネットワーク(DNN)は、物体検出及び分類などの様々なタスクのために用いられ得る。これらなどのDNNのためのトレーニング・データを取得するために、注釈パイプラインは、グラウンド・トゥルース・データを生成するために使用され得る。一般に、注釈パイプラインによって生み出されたグラウンド・トゥルース・データは、トレーニングされることになるDNNのタイプに基づいて、カスタマイズされ得る。知覚を実行するDNNのために、注釈パイプラインは、2D及び/又は3Dグラウンド・トゥルース・データ、たとえば、ラベル付けされたカメラ画像(たとえば、透視図における)、LiDAR若しくはRADARデータ(たとえば、トップ・ダウン・ビューにおける)、及び/又は他のセンサ・データを生み出すためにカスタマイズされ得る。ある種の実施例が、知覚を実行するDNNに関して説明されるが、本明細書に記載の技法は、他のタイプのDNNのためのグラウンド・トゥルース・データを生み出すようになされ得る。
ディープ・ニューラル・ネットワーク(DNN)は、物体検出及び分類などの様々なタスクのために用いられ得る。これらなどのDNNのためのトレーニング・データを取得するために、注釈パイプラインは、グラウンド・トゥルース・データを生成するために使用され得る。一般に、注釈パイプラインによって生み出されたグラウンド・トゥルース・データは、トレーニングされることになるDNNのタイプに基づいて、カスタマイズされ得る。知覚を実行するDNNのために、注釈パイプラインは、2D及び/又は3Dグラウンド・トゥルース・データ、たとえば、ラベル付けされたカメラ画像(たとえば、透視図における)、LiDAR若しくはRADARデータ(たとえば、トップ・ダウン・ビューにおける)、及び/又は他のセンサ・データを生み出すためにカスタマイズされ得る。ある種の実施例が、知覚を実行するDNNに関して説明されるが、本明細書に記載の技法は、他のタイプのDNNのためのグラウンド・トゥルース・データを生み出すようになされ得る。
図1を参照すると、図1は、本開示のいくつかの実施例による、例示的注釈パイプライン100を示すデータ流れ図である。本明細書に記載のこの及び他の構成は単に実例として記載されていることを理解されたい。他の構成及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ化など)が、図示されたものに加えて又はそれらの代わりに使用され得、いくつかの要素は、完全に省略され得る。さらに、本明細書に記載の要素の多数は、個別の若しくは分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサによって実施され得る。
高いレベルで、注釈パイプライン100は、高品質グラウンド・トゥルース・データの生産を合理化するワークフロー及びソフトウェア・インターフェースを含み得る。図1に示す実例において、注釈パイプライン100は、データ・キャプチャ110、センサ・データ整列120、場面生成130、場面キュレーション140、注釈150、後処理160、品質保証チェック170、グラウンド・トゥルース・データ・エクスポート180、及びグラウンド・トゥルース・データ消費190を含む。たとえば、現実世界データのデータ・キャプチャ110は、異なるタイプのセンサ(センサ・モダリティ)からセンサ・データを収集するために実行することができ、そして、類似の世界状態のセンサ・データ(たとえば、ほぼ同時にキャプチャされたセンサ・データ)が、注釈タスクの間にともにグループ化され、提示され得るように、異なるタイプのセンサ・データのセンサ・データ整列120が、センサ・データを同期するために実行され得る。場面生成130は、注釈場面のシーケンス(たとえば、ほぼその時間に取得されたセンサ・データのセット、たとえば、場面シーケンス145)を構成するために用いられ得る。たとえば、センサ・データ整列120は、センサ・データのキャプチャ時間又は何らかの他のインデックスにオフセットを加えることを含むことができ、場面生成130は、センサ・データをサンプリングすること及び/又はシーケンス内の各注釈場面の投影画像を生成することを含み得る。場面キュレーション140は、注釈場面の1つ又は複数の区分(たとえば、雨のないデータ・キャプチャ・セッションの区分)を選択する及び注釈の区分を指示するために、実行され得る。
高いレベルで、ウェブ・ツールなどのソフトウェア・ツール(ラベル付けツールとも称される)は、注釈150を容易にするために使用され得る。一般に、特定の注釈プロジェクトは、センサ・タイプ、ラベルを付けられている物体のタイプ、注釈詳細のレベル、及び/又はその他に基づいてプロジェクトを分割する及び異なるタスクを規定することができる、ラベル付けレシピを形成する1セットの線形タスクへと分解及び/又は配置され得る。タスクは、ラベラにタスクを割り当てる及び注釈タスクを通してラベラを導くウィザードを使用して入力の順序を配置することができる、ラベル付けツールへと入力又は他の方法でエンコードされ得る。LiDAR及びカメラ・グラウンド・トゥルース・データの例示的注釈プロジェクトでは、最初にシーケンス内のいくつかの又はすべてのカメラ画像がラベルを付けられ、次いで、シーケンス内のいくつかの又はすべてのLiDARフレームがラベルを付けられ(たとえば、カメラ及びLiDAR出力152)、次いで、複数のLiDARフレームにおいて現れる物体が、互いに関連付けられ(たとえば、LiDAR追跡出力154)、次いで、複数のセンサ・モダリティにおいて現れる物体が、ともにリンクされる(たとえば、カメラ+LiDARリンク設定出力156)。いくつかの実施例において、LiDARラベル付けは、2D境界ボックスを有するLiDARフレームに先ずラベルを付けること、次いで、3D境界ボックス又は直方体を有するLiDARフレームにラベルを付けること(たとえば、3D LiDARラベル付け出力155)を含み得る。ラベル付けツール及びこの例示的注釈プロジェクトについてはさらに詳しく後述する。
高レベルの概要を続けると、ラベラが、プロジェクトにおいて注釈タスクを完了した後、後処理160が、人間が、通常は、生み出すことができない注釈を生成する、たとえば、深度値を生成する、ために、適用され得る。いくつかの実施例において、品質保証チェック170が、潜在的エラーを識別する及び再作業のためにある特定の注釈場面にタグを付けるために、ラベル付けされたデータで実行され得る。いくつかの実施例において、品質保証チェック170は、注釈150、たとえば、リンク・タスク、の間に注釈タスクへと少なくとも部分的に組み込むことができ、後処理160の後の別個の品質保証チェックの必要性をなくすることができる。いくつかの又はすべての注釈タスクが完了した後、結果として生じたグラウンド・トゥルース・データは、自動的にトリガされるか手動でトリガされるかにかかわらず、任意の適切なフォーマットでラベル付けツールからエクスポートされ得(グラウンド・トゥルース・データ・エクスポート180)、グラウンド・トゥルース・データは、たとえば、対応するDNNをトレーニングするためにグラウンド・トゥルース・データを使用することによって、消費され得る(グラウンド・トゥルース・データ消費190)。
一般に、グラウンド・トゥルース・データは、現実世界データから少なくとも部分的に生成され得る。したがって、いくつかの実施例においてデータ・キャプチャ110を実行するために、1つ又は複数の車両(たとえば、図14A~Dの車両1400)は、現実世界(たとえば、物理)環境内の車両の1つ又は複数のセンサからセンサ・データを収集することができる。車両のセンサは、グローバル・ナビゲーション衛星システム・センサ1458(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ1460、超音波センサ1462、LiDARセンサ1464、慣性計測装置(IMU:inertial measurement unit)センサ1466(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、自己運動センサ、マイクロフォン1496、ステレオ・カメラ1468、ワイドビュー・カメラ1470(たとえば、魚眼カメラ)、赤外線カメラ1472、サラウンド・カメラ1474(たとえば、360度カメラ)、長距離及び/又は中距離カメラ1498、速度センサ1444(たとえば、車両の速度を測定するための)、振動センサ1442、ステアリング・センサ1440、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム1446の一部としての)、並びに/或いは他のセンサ・タイプを含み得るが、これらに限定されない。車両は、自律型車両、半自律型車両、非自律型車両を含み得、及び/又は車両1400以外の物体若しくは車両、たとえば、ロボット、ドローン、船舶、飛行機、無人航空機(UAV:unmanned aerial vehicle)など、を含み得る。
車両は、様々なタイプの車両ハードウェアを含み得る。たとえば、車両ハードウェアは、センサによって(たとえば、車両ハードウェアによって実行されている自律運転ソフトウェア・スタックのセンサ・マネージャを使用して)生成されるセンサ・データを管理する責任を有し得る。いくつかの実施例において、車両は、1つ又は複数のマップ(たとえば、3Dマップ)、ローカリゼーション構成要素、知覚構成要素、及び/又は同類のものを使用して世界を管理する世界状態マネージャを有する自律運転ソフトウェア・スタックを含み得る。自律運転ソフトウェア・スタックは、プランニング構成要素(たとえば、プランニング層の一部としての)、制御構成要素(たとえば、制御層の一部としての)、作動構成要素(たとえば、作動層の一部としての)、障害物回避構成要素(たとえば、障害物回避層の一部としての)、及び/又は他の構成要素を含み得る。一般に、いくつかの実施例において、車両ハードウェアは、センサ・データ、1つ若しくは複数のマシン学習モデル(たとえば、ニューラル・ネットワーク)、及び/又は同類のものに基づいて現実世界環境を通して車両を制御するために使用されるハードウェアを含み得る。そのようなものとして、様々なタイプの車両ハードウェアが、車両内のインストールのために及び/又は現実世界物理環境を通した車両のナビゲーションを少なくとも部分的に制御する自律運転ソフトウェア・スタックを実行する際に車両によって使用するために構成され得る。
一般に、データ・キャプチャ110は、異なるタイプのセンサ(センサ・モダリティ)、たとえば、LiDAR及び車両に搭載された1つ又は複数のカメラ、で現実世界環境を観測することによってセンサ・データをキャプチャすることを含み得る。一般に、センサ・データは、様々な理由、たとえば、遅延線の差、サンプリング周波数の差(たとえば、30fpsで動作するカメラ対10fpsで動作するLiDAR)、異なるトリガ時間、及び他の理由、で異なる周波数において異なるセンサから取得され得る。グループ化を円滑にする及び類似の世界状態のセンサ・データ(たとえば、ほぼ同時にキャプチャされたセンサ・データ)を提示するために、センサ・データ整列120は、異なるセンサ・モダリティからのセンサ・データを同期化するために、実行され得る。いくつかの実施例において、特定のセンサが、参照センサとして使用され得る。非参照センサは、子センサと称され得る。参照センサからのセンサ・データの所与のフレーム(参照フレーム)について、時間デルタなどのオフセットが、参照フレームと各子センサからのセンサ・データの時間的に最も近いフレームとの間で識別され得る。各子センサのオフセットは、子センサからのセンサ・データのキャプチャ時間又は何らかの他のインデックスに記録及び/又は適用され得る。
具体的実例としてLiDAR及びカメラを挙げると、いくつかの実施例において、LiDARは、参照センサとして選択され得、各カメラの時間的に最も近いフレームが、LiDARスピン開始角度に対するカメラの視野角に基づいて選択され得、カメラごとの時間又はインデックス・オフセットが、LiDARスピン開始に関連して適用され得る。図2は、本開示のいくつかの実施例による、LiDARスピンと2つのカメラとの間の例示的整列を示す図である。スピンが開始したとき(t+0ms)を指す、参照時間スタンプtを有する完了したLiDARスピンについて考える。例示的LiDARセンサを使用して、スピンを完了するのに100msを要し(スピン継続期間)、スピン周波数は10Hzであると想定する。図2では、例示的LiDARフレーム210は、経時的なLiDARスピンの進捗を表すために、円と重ね合わされている。この実例において、矢印220は、スピンが開始したときの、時間t+0msにおけるLiDARスピンの視野の中心の向きを表す。スピンは、時計回りの方向にt+50msにおいて矢印225まで、t+75msにおいて矢印230まで進み、t+100msにおいて、スピンが終了した場所を示す、矢印220に戻る。
図2において、2つのカメラ、前向きのカメラ240及び後ろ向きのカメラ250、の視野はまた、LiDARフレーム210の上に重ね合わされている。LiDARフレーム210に時間的に最も近い各カメラからのフレームを識別するために、各カメラに関するLiDARスピンの進捗及び向きが、決定され得、LiDARに関連するオフセットが、いつLiDARスピンがカメラの視野に到達するかに基づいて、各カメラについて決定され得る。たとえば、t+50ms(矢印225)において、LiDARスピンは、前向きのカメラ240の視野へと進んでおり、したがって、50msのオフセットが、前向きのカメラ240について使用され得る。後ろ向きのカメラ250などのいくつかの子センサについて、子センサによって観測されたセンサ・データは、LiDARスピンの互いに素な又は不完全な部分に対応するセクタを有し得、したがって、LiDARスピンと完全に整列する子センサからのセンサ・データの特定のフレームを選択することは不可能なことがある。一般に、子センサからのセンサ・データの任意のフレームが、選択され得る。図2に示す実例では、t+100ms(矢印220)におけるLiDARスピンの最後に又はその近くでキャプチャされたフレームが、選択され得る。
例示的フレーム選択及び対応するオフセットは、参照フレーム270(たとえば、LiDARフレーム210を表す)、フレーム280(たとえば、前向きのカメラ240を表す)、及びフレーム290(たとえば、後ろ向きのカメラ250を表す)を有する、軸260上に示されている。子センサによってキャプチャされたセンサ・データの時間的に最も近いフレームは、子センサの視野の中心を表すLiDARスピンの部分と完全に整列しないことがあることに留意されたい。たとえば、LiDARフレーム(たとえば、参照フレーム270)は、50msでキャプチャされた前向きのカメラからの画像に対応することになる世界状態を表し得るが、そのカメラによってキャプチャされた時間的に最も近い画像は、40又は45msにおいてキャプチャされた可能性がある(たとえば、フレーム280)。その場合、45msにおいてキャプチャされた画像が、選択され、LiDARフレームとペアにされ得る、及び/又は対応するオフセット(たとえば、45ms)が、識別され、対応する子センサ(たとえば、前向きのカメラ240)と関連付けられ得る。
一般に、各子センサについて識別されたオフセットは、子センサからのセンサ・データのキャプチャ時間若しくは他のインデックスに記録及び/又は適用され得る。たとえば、センサ・セットアップは未加工センサ・データを生み出すと想定し、そこで各センサからのセンサ・データは、個別にインデックスを付けられる。いくつかの実施例において、特定の子センサの識別されたオフセットは、子センサのセンサ・データのインデックスを調節する(又は、整列させられたセンサ・データのインデックスを識別する)ために、適用され得る。したがって、センサごとのオフセットを決定及び/又は適用することは、異なるタイプのセンサ・データを整列させる役割を果たし得る(たとえば、それらのインデックスを整列させることによって)。図3は、本開示のいくつかの実施例による、センサ・データ・インデックスの例示的整列を示すテーブルである。この実例において、センサ・データのインデックスは、列320(LiDARフレーム・インデックス)及び列330~360(異なるカメラによってキャプチャされた画像のインデックス)に示されている。この実例において、年代順場面インデックスは列310に含まれ、そして、各場面インデックス値について、テーブル内の対応する行は、整列させられたセンサ・データ(たとえば、特定の注釈場面の)を識別するインデックスを含む。この実例において、各子センサ(たとえば、各カメラ)の識別されたオフセットは、子センサによってキャプチャされたセンサ・データの時間的に最も近いフレームの対応するインデックスを識別するために、各参照フレームに関連して適用されている。
図1に戻ると、場面生成130は、注釈場面のシーケンス(たとえば、ほぼその時間に取得されたセンサ・データのセット、たとえば、場面シーケンス145)を構成するために実行され得る。一般に、参照及び子センサ・データは、識別されたオフセットを使用して、サンプリングされ得る。未加工センサ・データが、画像フォーマット(たとえば、LiDAR又はRADAR点群)内にない場合、いくつかの実施例において、未加工センサ・データ(たとえば、点群)は、投影画像(たとえば、トップ・ダウンの画像)を形成するために、投影され得る。LiDARが参照センサとして使用される及びカメラが子センサとして使用される実例を続けると、LiDARデータ(たとえば、LiDAR点群)の各フレームについて、注釈場面は、LiDAR点群を投影して、それぞれのカメラから投影画像(たとえば、トップ・ダウンの画像)及びサンプリング画像(たとえば、対応するオフセット及び/又はインデックスに基づく)を生成して、各カメラによってキャプチャされた時間的に最も近い画像を識別することによって、構成され得る。投影画像(LiDARフレーム)及びカメラ画像(複数の画像からともにステッチされたカメラ・フレーム及び/又は合成画像若しくはパノラマ)は、注釈場面として互いにパッケージ化、グループ化、又は他の方法で関連付けされ得る。プロセスは、たとえば、各参照フレームの注釈場面を生成又は他の方法で識別するために、繰り返され得る。いくつかの実施例において、場面キュレーション140は、注釈場面の1つ又は複数の区分(たとえば、雨のないデータ・キャプチャ・セッションの区分)を選択する及びラベル付けのために区分を指定するために、実行され得る。
図4は、本開示のいくつかの実施例による、データ・キャプチャ・セッション410、注釈場面415、及び注釈場面の区分421、422、423の一実例を示す図である。たとえば、データ・キャプチャ・セッション410は大都市のダウンタウンを通して実行され、センサはデータ・キャプチャ・セッション410の間に定期的にセンサ・データをキャプチャすると想定する。非限定的実例として、LiDARスピンは、100msごとに生じ得、1セットのカメラは、25ms(又はいくらかの他の増分)ごとに一度それぞれ写真を撮り得る。場面415は、キャプチャされたデータから構成され得る(図4では、連続的場面の間の仕切りは示されていない)。場合によっては、すべての場面が有用であるわけではない。たとえば、降水を頻繁に経験する都市では、場面415は、データ・キャプチャ・セッション410の間に雨が降ったときにキャプチャされた場面415を取り除くために、フィルタ処理され得る(たとえば、フロントガラス又はレンズ上に雨粒が存在したので)。一般に、任意のタイプのフィルタが、適用され得る(たとえば、自動的に又は手動で、数的又は視覚的特徴、メタデータ・タグ、時間スタンプ、或いはその他に基づいて)。そのようなものとして、場面415は、対象の特定の区分(たとえば、区分421、422、423)を識別するために、キュレートされ得、識別された区分内の場面(たとえば、異なるセンサ・モダリティからのセンサ・データ)は、注釈のために指定(たとえば、タグ付け又は他の方法で識別)され得る。
ここで図1に戻ると、注釈150は、ウェブ・ツールなどのソフトウェア・ツール(ラベル付けツールとも称される)を使用する人間ラベラによって、実行され得る。一般に、ソフトウェア・ツールは、ラベルを付けられることになる注釈場面(たとえば、異なるセンサ・モダリティからのセンサ・データ)及び1つ又は複数の注釈タスクを識別及び/又は提供するプロジェクト管理者からの入力を受け付ける1つ又は複数のインターフェース(たとえば、グラフィカル・ユーザ・インターフェース)を含み得る。所望の注釈が、ラベル付けレシピを形成する1セットの線形タスクへと分解及び/又は配置され得、タスクのエンコードされた表現が、ラベル付けツールに入力され得る。異なるタスクは、センサ・タイプ、ラベルを付けられることになる物体のタイプ若しくはクラス(たとえば、所与のタスクにおいて、道路場面内の乗用車、交通標識、又は何らかの他の要素にのみラベルを付ける)、注釈詳細のレベル(たとえば、所与のタスクにおいて、ラベル境界ボックス対シルエット、物体フットプリントのポリラインのみを適用する、完全3D境界ボックスを適用する、LiDARにおいてトップ・ダウン2D境界ボックスを適用して、次いで、後続のパスにおいて3Dにアップグレードする)に基づいて、及び/又は他の方法で、分割され得る-そして、ラベル付けツールは、タスクを分割する及び/又はエンコードするように構成され得る。いくつかの実施例において、別個のタスクが、障害物、車両(たとえば、乗用車、バス、トラックなど)、交通弱者(たとえば、オートバイ、自転車、歩行者など)、環境の部分(たとえば、走行可能な空間、歩道、建物、木、ポールなど)、そのサブクラス(たとえば、歩いている歩行者)、その何らかの組合せ、及び/又はその他のラベル付けのために入力され得る。
注釈タスクは、ラベル付けツールへと入力又は他の方法でエンコードされ得、ラベル付けツールは、異なる注釈タスクの性能を結集することができる。たとえば、ラベル付けツールは、任意の適切な方式で、たとえば、ラベラ可用性、指定されたタスク順序、又はその他に基づいて、タスクを割り当てることによって、ラベラにタスクを割り当てることができる。いくつかの実施例において、ラベル付けツールは、タスクを通してラベラを導くウィザードを使用して、特定のタスクのための入力(たとえば、注釈)の順序を配置することができる。いくつかのタスクの間、注釈場面における各タイプのセンサ・データが、ラベラに提示され得る(たとえば、サイド・バイ・サイド)、及び/又は、情報が、有用なコンテキスト情報、たとえば、異なるタイプのセンサ・データの間の対応、を提供するために、センサ・モダリティを横断して投影され得る。
一般に、ラベル付けツールは、グラウンド・トゥルース注釈(たとえば、境界、囲われた領域、クラス・ラベル)を規定する入力を受け付けることができ、ラベル付けツールは、センサ・データと注釈を関連付けることができる。センサ・データ(たとえば、LiDARデータのフレーム、RBG画像)は、センサ・データにおける関連物体のインスタンスの位置、ジオメトリ、向き、及び/又はクラスを識別するラベル又は他のマーカで注釈を付けられ得る(たとえば、手動で、自動的になど)。注釈は、2D及び/又は3D描画機能性、別のタイプの適切なソフトウェア機能性、を使用するラベル付けツールへと入力され得る、並びに/又は手描き及びインポートされ得る。一般に、注釈は、合成的に製造する(たとえば、コンピュータ・モデル又はレンダリングから生成する)こと、現実に製造する(たとえば、現実世界データから設計及び製造する)こと、マシン自動化すること(たとえば、特徴分析を使用して、及び、データから特徴を抽出し、次いで、ラベルを生成することを学習して)、人が注釈を付けること(たとえば、ラベラ、又は注釈エキスパート、が注釈を入力すること)、及び/又はその組合せ(たとえば、人間がポリラインの頂点を識別する、マシンが、ポリゴン・ラスタライザを使用して、ポリゴンを生成する)が可能である。一般に、注釈は、2D及び/又は3D境界ボックス、閉じられたポリライン、或いは描かれた、注釈を付けられた、重ね合わされた、及び/又は他の方法でセンサ・データと関連付けられた他の境界形状を含み得る。
カメラ及びLiDARを含む非限定的実例として、最初にシーケンス内のいくつかの又はすべてのカメラ画像がラベル付けされ、次いで、シーケンス内のいくつかの又はすべてのLiDARフレームがラベル付けされ(たとえば、第1のトップ・ダウン2D境界ボックス、次いで、3D境界ボックス)、複数の注釈場面において現れる物体が、次いで、リンクされ(たとえば、既にラベル付けされたカメラ画像及びLiDARフレームについて)、次いで、複数のセンサ・モダリティにおいて現れる物体が、ともにリンクされるように、注釈プロジェクトは、順序付けられた注釈タスクで指定され得る。いくつかの実施例において、ラベル付けツールは、特定の注釈タスクの間に注釈場面内の両方のタイプのセンサ・データ(たとえば、LiDARフレーム及びカメラ画像)を同時に提示することができる、及び/又はセンサ・モダリティを横断する情報を投影して有用なコンテキスト情報、たとえば、異なるタイプのセンサ・データの間の対応、を提供することができる。いくつかの実施例において、補助的特徴は、前のフレームから注釈付きの物体に対して反復処理する(iterate through)ことができ、現在のフレームにおいて対応する物体を見つけるようにラベラに促すことができる。
カメラ及びLiDARを含む実例を続けると、図5~10は、LiDAR及びカメラ・フレームの支援された3Dグラウンド・トゥルース・ラベル付けのためのラベル付けツールの例示的ユーザ・インターフェースを示す。ラベラがシーケンス内のいくつかの又はすべてのカメラ画像に最初に注釈を付ける第1の注釈タスク、ラベラがシーケンス内のいくつかの又はすべてのLiDARフレームの第1のパスにおいてトップ・ダウン2D境界ボックスに注釈を付ける第2の注釈タスク、ラベラがシーケンス内のラベル付けされたLiDARフレームの第2のパスにおいて3D境界ボックスに注釈を付ける第3の注釈タスク、ラベラがシーケンス内の異なる注釈場面を横断して同じ物体をリンクする第4の注釈タスク、及び、ラベラがシーケンス内の各注釈場面内のLiDAR及びカメラ・フレームを横断して同じ物体をリンクする第5の注釈タスクを含む、例示的注釈プロジェクトについて考える。図5は、画像ラベル付け(たとえば、第1の注釈タスク)のための例示的ユーザ・インターフェースのイラストレーションであり、図6~8は、カメラ支援型LiDARラベル付け(たとえば、第2の及び第3の注釈タスク)のための例示的ユーザ・インターフェースのイラストレーションであり、図9は、LiDAR追跡(たとえば、第4の注釈タスク)のための例示的ユーザ・インターフェースのイラストレーションであり、図10は、本開示のいくつかの実施例による、カメラ-LiDARリンク設定(たとえば、第5の注釈タスク)のための例示的ユーザ・インターフェースのイラストレーションである。
ここで図5を見ると、図5は、本開示のいくつかの実施例による、画像ラベル付けのための例示的ユーザ・インターフェース500を示す。ユーザ・インターフェース500は、ラベル付けされることになる特定のカメラ画像510を提示するパネルと、様々な描画及び/又は注釈機能をアクティブにする様々な相互作用要素を有するラベル付けパネルとを含む。この実例において、ラベル付けパネルは、アクティブなとき、ユーザが画像510の境界及び/又は対応する囲われた領域を識別する及びラベル付けすることを可能にする、タグ・ボタン560を含む。一般に、ユーザ・インターフェース500は、任意の知られている2D又は3D描画又は注釈ソフトウェア機能性を組み込むことができる。非限定的実例として、ユーザは、画像510において(たとえば、境界ボックスの最初のコーナーを識別する位置において)クリックすること、最初のコーナーから2D境界ボックスを伸ばすためにドラッグすること、及び境界ボックスが所望のサイズであるときに(たとえば、最初のものとは反対の第2のコーナーを識別する位置において)離すことによって、2D境界ボックスなどのポリゴンを指定することができる。いくつかの実施例において、ユーザ・インターフェース500は、ユーザが画像510を横断してズーム及び/又はパンすることを可能にし得る。そのようなものとして、ユーザは、任意の数の領域(たとえば、領域520)を描く又は他の方法で識別することができる。いくつかの実施例において(たとえば、ユーザ・インターフェース500~1000のいずれかにおいて)、ラベル付けツールは、センサ・データの前のフレームからの注釈で1セットの注釈を初期化することができ、ラベラは、現在のフレームに適合するように注釈を調節することができる。そのようなものとして、ラベル付けツールは、何度も何度も同じ物体の注釈を作成し直す必要性を減らす又はなくすることができる。
いくつかの実施例(たとえば、ユーザ・インターフェース500~1000のいずれか)において、ラベル付けツールは、センサ・データの特定のフレーム内の注釈付きの物体のリスト(たとえば、リスト570)又は他の識別を含むラベル付けパネルを含み得る。リスト内の各エントリは、タグ・ボタン580及びコメント・ボタン585などの1つ又は複数の相互作用要素を含み得る。タグ・ボタン580(又は何らかの他の相互作用要素)は、画像内の対応する注釈を選択若しくは識別する(たとえば、注釈を編集する入力を可能にする)、クラス・ラベルを選択若しくは編集するようにユーザに促す、又はその他の機能を果たすことができる。コメント・ボタン585は、注釈に関する任意の注記を規定するテキスト入力を受け付けることができる。これらは、単に実例として意図されており、任意の適切な描画又は注釈機能性が、ラベル付けツール内に組み込まれ得る。いくつかの実施例において、ラベル付けツールは、時間において前後に(すなわち、シーケンス内の前の及び次のフレームを)ナビゲートする入力を受け付けてデータのユーザの理解を向上させることができる。ユーザが、画像のラベル付けを完了したとき、ユーザは、ユーザが終了したという指示を提供することができる(たとえば、送信ボタン590をクリックすることによって)。
図6は、本開示のいくつかの実施例による、カメラ支援型LiDARラベル付けのための例示的ユーザ・インターフェース600のイラストレーションである。ユーザ・インターフェース600は、ラベル付けされることになる特定のLiDARフレーム620を提示するパネルを含む。いくつかの実施例において、ユーザ・インターフェース600は、ラベル付けされることになる特定のLiDARフレーム620、並びに同じ注釈場面からの対応する画像610を同時に提示することができる。たとえば、提示される画像は、合成画像を形成するためにともにステッチされた、周囲のカメラからの、同じ注釈場面内の画像で構成された空間的に登録された360度ビュー画像でもよい。一般に、ユーザ・インターフェース600は、LiDARフレーム620と画像610との間の対応(たとえば、対応する領域)の視覚化を提示することができる。いくつかの実施例において、ユーザ・インターフェース600は、フレームのうちの1つにおいてユーザがズーム及び/又はパンすることを可能にすることができ、ユーザ・インターフェース600は、対応する調節をその他に行うことができる。
いくつかの実施例において、ラベル付けツールは、センサ・モダリティを横断して情報を投影して、センサ・データを横断する対応を示すことができる。たとえば、特定の画像をキャプチャしたカメラの知られている向き及び位置が、環境の3D表現(たとえば、3D LiDAR座標)へと画像を投影しない及び特定の画像画素に対応する3D位置(たとえば、LiDAR空間における)を識別するために、使用され得る。他の方向において投影するために、LiDAR空間内の特定の3D位置が、画像をキャプチャしたカメラの知られている向き及び位置を使用して、画像空間へと投影され得る。一般に、様々なタイプの情報が、LiDARフレームから対応する画像、たとえば、検出(たとえば、点、平面)、注釈、又は他の領域、へと投影され得る。いくつかの実施例において、ユーザ・インターフェース600は、センサ・モダリティを横断して、ユーザの入力と移動する、入力プローブの位置を投影することができる。たとえば、ユーザが、LiDARフレーム620上にマウスを置くとき、入力プローブ640(拡大された領域630にも示された)が、LiDAR空間内の対応する3D位置を識別する(たとえば、ゼロのz値、適合されたグラウンド・プレーンのz値などを設定することなどによって)ために、使用され得、3D位置が、画像610内の対応する点650を示すために、画像空間へと投影され得る。いくつかの実施例において、入力プローブは、反対方向において追加で又は別法として投影され得る(たとえば、画像610の指定された点が、LiDARフレーム620へと投影され得る)。センサ・モダリティを横断する対応を示すことによって、ユーザ・インターフェース600は、より正確な注釈をラベラが生成するのを助けるための有用なコンテキスト情報を提供することができる。
いくつかの実施例において、各LiDARスピンの最初のステップとして、ラベラは、グラウンド・プレーンをLiDARスピンに適合させるように促され得る。いくつかの実施例において、前のLiDARスピンからの適合されたグラウンド・プレーンは、現在のスピンへと伝搬され得、ラベラは、現在の平面に前の平面を微調整するように促され得、ラベル付けプロセスの速度を上げることができる。いくつかの実施例において、このデータ適合されたグラウンド・プレーンは、トップ・ダウンのLiDAR注釈のz値を提供することができる。したがって、受信された注釈は、指定されたグラウンド・プレーンに整列させられ得、トップ・ビュー注釈の精度を高めることができる。追加で又は別法として、いくつかの実施例において、ユーザ・インターフェース600は、前のLiDARスピンからの注釈で1セットの注釈を初期化することができ、ラベラは、現在のスピンに適合するように注釈を調節することができる。そのようなものとして、ラベル付けツールは、何度も何度も同じ物体の注釈を作成し直す必要性を減らす又はなくすことができる。
いくつかの実施例において、ユーザ・インターフェース600は、LiDARフレーム620の2Dポリゴン領域、及び/又は2Dポリゴン領域によって表された物体の向きを指定する入力注釈を受け付けることができる。LiDARフレーム620は、3Dデータ(たとえば、LiDAR点群)の投影画でもよいので、入力注釈は、LiDAR空間内の対応する3D表現に適応し得る。たとえば、LiDARフレーム620がトップ・ダウン投影画像である一部の場合には、注釈を付けられた領域は、LiDAR座標系(たとえば、ゼロのz値、適合されたグラウンド・プレーンのz値を有する)内のXY平面において作成され得、2Dの注釈付き領域は、以下でさらに詳しく説明するように、3Dに拡張され得る(たとえば、後続の注釈タスクにおいてなど、注釈場面のシーケンスを通して後続のパスにおいて)。
図7は、本開示のいくつかの実施例による、向きベクトルを有するカメラ支援型LiDARラベル付けのための例示的ユーザ・インターフェース700のイラストレーションである。ユーザ・インターフェース600のように、ユーザ・インターフェース700は、LiDARフレーム720のポリゴン領域を指定する入力注釈を受け付けることができる。この実例において、ラベラは、規定された境界ボックス730を有する。いくつかの実施例において、ラベル付けツールは、向きベクトル740(たとえば、向きの方向においてクリック及びドラッグインすることによって)、クラス・ラベル750、又は他のタイプの注釈を規定する入力を受け付けることができる。ユーザ・インターフェース600のように、ユーザ・インターフェース700は、注釈タスクを支援するために、LiDARフレーム720と画像710との間の対応(たとえば、対応する領域)の視覚化を提示することができる。この実例において、LiDARフレーム720において表された物体のクラス及び向きは、画像710において知覚可能である。結果として、LiDARフレーム720と関連して(たとえば、同時に)画像710を提示することによって、ラベラは、クラス及び向きを知覚することができ、それによって、対応する注釈をエンコードすることができる。
図8は、本開示のいくつかの実施例による、3D境界ボックスを有するカメラ支援型LiDARラベル付けのための例示的ユーザ・インターフェース800のイラストレーションである。いくつかの実施例において、カメラ支援型LiDARラベル付けは、2D及び3D注釈のための別個のタスクへと分解され得る。3D注釈は、手動で及び/又は自動的に生成され得る。たとえば、LiDARラベル付けは、2D注釈(たとえば、2D境界ボックス)を規定する入力を受け付ける第1のパス、及び2D注釈を3D注釈(たとえば、3D境界ボックス)へと適応させる入力を受け付ける第2のパス又は3D注釈を2D注釈から自動的に生成する第2の段階(たとえば、図1の後処理160の一部としての)へと分解され得る。2D注釈を3D注釈へと適応させる入力を受け付けることを含む例示的実施例において、トップ・ダウンのLiDARフレームのシーケンスを介する最初のパスの間に2D注釈(たとえば、境界ボックス)の仕様を受信した後、ラベル付けツールは、物体ごとの手順を通してラベラを導くことができる。この実例において、各物体(たとえば、第1のパスの間に規定された各2D注釈)について、ラベル付けツールは、現在のLiDARフレーム内の物体のビューにおいてズームされた、整列させられた物体を提示することができる。たとえば、現在のLiDARフレーム(たとえば、LiDAR点群)の未加工データは、それぞれがユーザ・インターフェース800において提示され得る、1つ又は複数のビュー、たとえば、物体の前向きのビュー(たとえば、前向きのビュー830)、物体の横向きのビュー(たとえば、横向きのビュー820)、及び物体のトップ・ダウン・ビュー(たとえば、トップ・ダウン・ビュー840)、へと投影され得る。いくつかの実施例において、LiDAR点群の3D表現が、追加で又は別法として提示され得る(たとえば、3Dビュー810)。
ユーザ・インターフェース800は、任意のビュー内の各物体の次元及び/又は向き(たとえば、ヨー、ピッチ、ロール)を規定するようにラベラに促すことができる。第1のパスが2Dで行われる実例では、最初の2D注釈が、提示され得る(ビュー810、820、830、840のそれぞれにおいて)。トップ・ダウン・ビューにおいて作られた2D注釈は、前向きのビュー830及び横向きのビュー820において線として最初に視覚化され得る、及び/又はトップ・ダウン・ビュー840及び3Dビュー810においてすべての2つの次元において視覚化され得ることに留意されたい。図8に示す実例において、ラベラは、たとえば、頂点を配置すること、ハンドルをドラッグすること、又は任意のビュー内の注釈の表現(たとえば、それぞれのビュー810、820、830、840内の境界ボックス815、825、835、845)を他の方法で定義若しくは操作することによって、2D注釈を3D注釈へと適応させる又は3D注釈を他の方法で規定することができる。いくつかの実施例において、1つのビューにおいて注釈を修正することは、修正が可視である任意の他のビューにおいて注釈を更新する。そのようなものとして、ラベラは、3D注釈をLiDARデータ(たとえば、LiDAR点群)に適合させることができる。ラベラが特定の物体の3D注釈を規定した後、ユーザは、注釈を送信して(たとえば、次ボタンをクリックすること又は何らかの他の相互作用要素をアクティブにすることによって)LiDARフレーム内の次の物体に進むことができる。
図9は、本開示のいくつかの実施例による、LiDAR追跡のための例示的ユーザ・インターフェース900のイラストレーションである。この実例において、ユーザ・インターフェース900は、連続的LiDARフレーム910及び920、並びに同じ注釈場面からのそれぞれの画像930及び940を提示する。ラベル付けツールは、前のフレームにおける物体(たとえば、前の注釈タスクの間に入力された注釈)に対して反復処理することができ、ユーザ・インターフェース900は、対応する注釈(たとえば、前の注釈タスクの間に入力された)を現在のフレームにおいて見つけるようにラベラに促すことができる。いくつかの実施例において、物体検出及び追跡は、経時的なフレームからフレームへの注釈付き物体の移動を追跡する、及び/又は人間ラベラによる確認若しくは微調整のためにリンクを初期化するために、適用され得る。図9に示す実例では、ラベラは、注釈950及び960を同じ物体として識別することができる。場合によっては、物体は、いくつかのフレームでは閉塞されるが、他では閉塞されないことがある。そのようなものとして、いくつかの実施例において、ラベル付けツールは、互いに素なフレームを横断して物体をリンクする入力(注釈)を受け付けることができる(たとえば、ジャンプ)。
いくつかの実施例において、ユーザ・インターフェース900は、物体が位置すると予測された推定領域を強調することができる。たとえば、第1のフレーム(たとえば、LiDARデータの)内の現在の又は選択された物体の1つ又は複数の位置価が、データをキャプチャしたセンサの知られている自己運動(たとえば、データ・キャプチャ車両の知られている自己運動)を補完するように調節され得る。非限定的実例として、物体の注釈(たとえば、境界ボックス)の1つ若しくは複数の位置価及び/又はLiDARデータ(たとえば、境界ボックスの中心点、境界ボックスのコーナー)の第1のフレーム内の物体の1つ若しくは複数の代表位置価は、自己運動補完され得、ユーザ・インターフェース900は、LiDARデータの第2のフレーム内の対応する予測された領域をハイライトする、アウトライン化する、それにパンする、ズームする、及び/又は他の方法で強調することができる。例示的実装形態において、ラベラが、前の注釈場面からのラベル付けされた物体に対して反復処理するとき、ユーザ・インターフェース900は、前の注釈場面からのラベル付けされた物体が、後続の注釈場面内にあると予測された、視覚化を提示することによって、たとえば、センサ・データ内の推定された領域へとズームインすることによって、ラベラを導くことができる。そのようなものとして、ユーザ・インターフェース900は、場面から場面への対応する物体の識別においてラベラを導くことができる。いくつかの実施例において、自己運動補完は、より低いサンプリング率で有用な予測をさらに提供することができるので、比較的低いサンプリング率でも、ユーザ・インターフェース900は、有用なガイダンスをさらに提供することができる。
図9では、ユーザ・インターフェース900は、対応する注釈機能をアクティブにする様々な相互作用要素を含む、ラベル付けパネル970を含む。たとえば、ラベル・ペア・ボタン975は、アクティブなとき、ユーザが注釈を識別し、リンクする(たとえば、新しいリンクを入力する)ことを可能にし得る。マッチしない理由980のうちの1つが、1つのフレームからの注釈は隣接フレームにおいて不可視又はラベル付けされないことを示すために、選択され得る。いくつかの実施例において、ラベル付けパネル970は、提示されている連続的フレームのサムネイル画像(たとえば、サムネイル985a、985b)を提示することができ、カメラ及び/又はLiDARフレーム注釈発行にフラグを付ける入力を受け付けることができる。そのようなものとして、注釈がセンサ・データのフレームを横断してリンクされる注釈タスクは、品質保証チェック(たとえば、図1の品質保証チェック170)の機能を少なくとも部分的に果たし得る。ラベラが、隣接フレームのペアにおける注釈のリンク設定を完了したとき、ラベラは、リンクを確認990して隣接フレームの次のペアに進むことができる。この実例は、ラベラが、複数のLiDARフレームにおいて現れる物体をリンクする、注釈タスクを示すが、いくつかの実施例は、追加で又は別法として、複数のカメラ・フレームにおいて現れる物体をラベラがリンクする注釈タスクを含み得る。
図10は、本開示のいくつかの実施例による、カメラ-LiDARのリンク設定のための例示的ユーザ・インターフェース1000のイラストレーションである。この実例において、ユーザ・インターフェース1000は、LiDARフレーム1020、並びに同じ注釈場面からのそれぞれの画像1010を提示する。ラベル付けツールは、注釈場面(たとえば、前の注釈タスクの間に入力された注釈)内の物体に対して反復処理することができ、ユーザ・インターフェース1000は、対応する注釈を他のセンサ・モダリティにおいて見つけるようにラベラを促すことができる。一般に、特定のセンサからのセンサ・データからの注釈、物体追跡、及び/又は物体検出は、異なるセンサからのセンサ・データからの同じ物体の対応する注釈、物体追跡、及び/又は物体検出にリンクされ得る。たとえば、ラベラは、注釈1040及び1050を同じ物体として識別することができる。
いくつかの実施例において、ユーザ・インターフェース1000は、物体が位置すると予測された推定領域を強調することができる。たとえば、第1のフレーム(たとえば、カメラ・フレーム又はLiDARフレーム)内の現在の又は選択された物体の1つ又は複数の位置価は、第2のフレーム(たとえば、LiDARフレーム又はカメラ・フレーム)へと投影され得、データをキャプチャしたセンサの知られている自己運動(たとえば、データ・キャプチャ車両の知られている自己運動)を補完するために調節され得る。非限定的実例として、物体の注釈の1つ若しくは複数の位置価(たとえば、境界ボックス)及び/又はセンサ・データの第1のフレーム内の物体の1つ若しくは複数の代表位置価(たとえば、境界ボックスの中心点、境界ボックスのコーナー)は、第2のフレームへと投影され得、自己運動補完され得、ユーザ・インターフェース1000は、第2のフレーム内の対応する予測された領域をハイライトする、アウトライン化する、それにパンする、ズームする、及び/又は他の方法で強調することができる。そのようなものとして、ユーザ・インターフェース1000は、センサ・モダリティの間の知られている対応を活用して、センサ・モダリティを横断する対応する物体の識別においてラベラを導くことができる。
ユーザ・インターフェース900のように、ユーザ・インターフェース1000は、対応する注釈機能をアクティブにする様々な相互作用要素を含む、ラベル付けパネル1060を含む。いくつかの実施例において、ユーザ・インターフェース900は、カメラ及び/又はLiDARフレーム注釈発行にフラグを付ける入力を受け付けることができる。そのようなものとして、注釈がセンサ・モダリティを横断してリンクされる注釈タスクは、品質保証チェック(たとえば、図1の品質保証チェック170)の機能を少なくとも部分的に果たし得る。ラベラが、注釈場面においてセンサ・モダリティを横断して注釈にリンクを付けることを完了したとき、ラベラは、リンクを確認990して、隣接フレームの次のペアに進むことができる。前述の論考は、LiDAR対カメラのリンク設定に注目しているが、任意のタイプのセンサ・データが、任意の他のタイプのセンサ・データにリンクされ得る(2つの異なるタイプの同じセンサからのセンサ・データ間のリンク設定、たとえば、カメラ対カメラのリンク設定、を含む)。追加で又は別法として、注釈タスクは、統合する、並べ替える、分割する、或いは他のやり方で配置することができる。たとえば、いくつかの実施例において、LiDARラベル付けは、LiDAR対カメラのリンク設定と同じ注釈タスクにおいて実行され得る(たとえば、カメラ画像内の物体にラベルを付けた後、同時にLiDARフレーム内の対応する物体をリンク及びラベル付けする)。これらは、単に実例として意図されており、他の変更形態が、本開示の範囲内で実装され得る。
ここで図1に戻ると、いくつかの実施例において、後処理160は、人間が通常は知覚することはできない特徴を自動的に検出するために、実行され得る。非限定的実例として、画像処理は、深い深度値を判定する(たとえば、画素ごとの深度値を予測するマシン学習モデルを使用して)ために、カメラ画像に適用され得、深度値又はそのサブセット(たとえば、最も近い又は平均深度などの、各注釈の代表深度)が、画像と関連付けられ得る。場合によっては、後処理160は、任意の自動的に検出された特徴を再計算するために及び/又は対応の視覚化を改善する(たとえば、対応するカメラ画像へと3D LiDARラベルを投影し返すことによって)ために、再実行され得る(たとえば、改良された較正に基づいて)。いくつかの実施例において、注釈プロジェクトは、人間ラベラによって手動で生成された及び/又は自動的に生成された(たとえば、後処理160の間に)注釈の精度を確認するために、1つ又は複数の手動品質保証チェック170を含み得る。図11は、本開示のいくつかの実施例による、例示的グラウンド・トゥルース注釈のイラストレーションである。
いくつかの実施例において、後処理160が、トレーニングされることになるマシン学習モデルの出力のビュー、サイズ、及び次元性にマッチするエンコードされた表現へとグラウンド・トゥルース注釈を変換するために、実行され得る。たとえば、マシン学習モデルが、分類データ(たとえば、各チャネルが異なるクラス信頼度マップを出力する、1つ又は複数のチャネル)を出力する場合、センサ・データの所与のフレームにおけるグラウンド・トゥルース注釈は、各クラスの対応するクラス信頼度マップへと変換され得る。非限定的実例として、所与のクラスについて、そのクラスの注釈付き領域内に入る画素の値は、ポジティブ分類を示す値(たとえば、1)に設定され得、画像内のその他の画素の値は、ネガティブ分類を示す値(たとえば、0)に設定され得る。そのようなものとして、異なるクラス信頼度マップが、積み重ねられて、マシン学習モデルの出力にマッチするグラウンド・トゥルース・テンソルを形成し得る。
別の実例では、マシン学習モデルが、インスタンス回帰データ(たとえば、1つ又は複数のチャネルを出力し、そこで、各チャネルは、位置、ジオメトリ、及び/又は向きデータなどの異なるタイプの物体インスタンス・データを退行する場合、それぞれの注釈の位置、ジオメトリ、向き、及び/又はクラスは、トレーニングされることになるマシン学習モデルの出力のビュー、サイズ、及び次元性にマッチする物体インスタンス・データを生成するために使用され得る。たとえば、注釈と含まれる各画素について、注釈は、対応する位置、ジオメトリ、及び/又は向き情報(たとえば、各画素、物体高さ、物体幅、物体向き(たとえば、投影画像の向きに対する回転角度)、及び/又は同類のものに関連して物体がどこに位置するか-たとえば、物体中心)を計算するために使用され得る。計算された物体インスタンス・データが、グラウンド・トゥルース・テンソルの対応するチャネルに記憶され得る。これらは、ごくわずかな実例であり、他のタイプの後処理160が、追加で又は別法として実行され得る。
注釈プロジェクト内のいくつかの又はすべての注釈タスクが完了した後、結果として生じたグラウンド・トゥルース・データは、任意の適切なフォーマットでエクスポートされ得る(たとえば、図1のグラウンド・トゥルース・データ・エクスポート180)。グラウンド・トゥルース・データは、トレーニングされることになるマシン学習モデルによって受け付けられた入力のタイプにマッチする対応する入力トレーニング・データとペアにされ得る。そのようなものとして、1つ又は複数のマシン学習モデルは、入力トレーニング・データ及びエクスポートされたグラウンド・トゥルース・データを使用して、トレーニングされ得る(たとえば、図1のグラウンド・トゥルース・データ消費190)。たとえば、1つ又は複数の損失関数(たとえば、単一の損失関数、分類損失及び/又は回帰損失などの各出力タイプの損失関数など)が、グラウンド・トゥルースへのマシン学習モデルの出力の精度を比較するために使用され得、マシン学習モデルのパラメータは、精度が最適又は許容レベルに到達するまで、更新され得る(たとえば、バックワード・パス、逆伝播、フォワード・パスなどを使用して)。
ここで図12及び13を参照すると、本明細書で説明される、方法1200及び1300の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって、実施され得る。方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法は、いくつか例を挙げると、独立型アプリケーション、サービス又はホスト型サービス(独立型の又は別のホスト型サービスと組み合わせた)、或いは別の製品へのプラグインによって提供され得る。加えて、方法1200及び1300は、例として、図1の注釈パイプライン100に関して、理解され得る。しかしながら、これらの方法は、本明細書に記載のものを含むが、これらに限定されない、任意の1つのシステム、又は任意の組合せのシステムによって、追加で又は別法として、実行され得る。
図12は、本開示のいくつかの実施例による、異なるタイプのセンサからのセンサ・データのグラウンド・トゥルース注釈を生成するための方法1200を示す流れ図である。方法1200は、ブロックB1202において、キャプチャ・セッションの間に異なるタイプのセンサでキャプチャされたセンサ・データにアクセスすることを含む。たとえば、1つ又は複数の車両(たとえば、図14A~Dの車両1400)は、現実世界(たとえば、物理)環境内の車両の1つ又は複数のセンサからセンサ・データを収集することができる(たとえば、図1のデータ・キャプチャ110の一部として)。センサ・データは、任意の方式で記憶及びアクセスされ得る。
方法1200は、ブロックB1204において、センサ・データを同期化する少なくとも1つのオフセットを識別して注釈場面のシーケンスを構成することを含み、各注釈場面は、異なるタイプのセンサのうちの2つ以上のセンサからのセンサ・データのフレームを含む。たとえば、センサ・データは、異なる周波数で異なるセンサから取得され得るので、センサ・データは、類似の世界状態のセンサ・データのグループ化を容易にするために、整列させられ得る(たとえば、図1のセンサ・データ整列120)。いくつかの実施例において、特定のセンサが、参照センサとして使用され得る。非参照センサは、子センサと称され得る。参照センサからのセンサ・データの所与のフレーム(参照フレーム)について、時間デルタなどのオフセットが、参照フレームと各子センサからのセンサ・データの時間的に最も近いフレームとの間で識別され得る。各子センサのオフセットは、子センサからのセンサ・データのキャプチャ時間又は何らかの他のインデックスに記憶及び/又は適用され得る。一般に、参照及び子センサ・データは、各注釈場面の異なるセンサからのセンサ・データのフレームを識別及び構成するために、識別されたオフセットを使用して、サンプリングされ得る。
方法1200は、ブロックB1206において、グラウンド・トゥルース注釈で注釈場面に注釈を付けるために複数の線形注釈タスクを、ラベル付けツールへと、エンコードすることを含む。一般に、ラベル付けツールは、ラベル付けされることになる注釈場面(たとえば、異なるセンサ・モダリティからのセンサ・データ)及び1つ又は複数の注釈タスクを識別及び/又は提供するプロジェクト管理者からの入力を受け付ける1つ又は複数のインターフェース(たとえば、グラフィカル・ユーザ・インターフェース)を含み得る。所望の注釈が、1セットの線形タスクへと分解され得、タスクのエンコードされた表現が、ラベル付けツールに入力され得る(たとえば、図1の注釈パイプライン100における注釈150の一部として)。
方法1200は、ブロックB1208において、ラベル付けツールを使用して注釈タスクをラベラに割り当てることを含む。たとえば、図1の注釈パイプライン100における注釈150の一部として、ラベル付けツールは、任意の適切な方式で、たとえば、ラベラ可用性、規定されたタスク順序、又はその他に基づいてタスクを割り当てることによって、各注釈タスクを特定のラベラに割り当てることができる。
方法1200は、ブロックB1210において、ラベル付けツールを使用して、注釈場面のシーケンスを通してラベラを導くことを含む。たとえば、図1の注釈パイプライン100における注釈150の一部として、ラベル付けツールは、タスクを通してラベラを導くウィザードを使用して特定のタスクの入力(たとえば、注釈)の順序を配置することができる。
方法1200は、ブロックB1212において、注釈場面において、異なるタイプのセンサのうちの2つ以上のセンサからの、センサ・データを提示しながら、注釈タスクによって定義されたグラウンド・トゥルース注釈のセットを規定する入力を促す及び受け付けるためにラベル付けツールを使用することを、各注釈場面について含む。たとえば、図1の注釈パイプライン100における注釈150の一部として、ラベル付けツールは、特定のタスクの入力の順序を配置することができる(たとえば、シーケンス内の各注釈場面の物体ごとの注釈手順をウォーク・スルーすることによって)。図6は、ラベル付けツールが異なるタイプのセンサからのセンサ・データを同時に提示することができる、及びセンサ・モダリティを横断して情報を投影してセンサ・データを横断する対応を示すことができる、例示的実施例を示す。
方法1200は、ブロックB1214において、グラウンド・トゥルース注釈の表現をエクスポートすることを含む。たとえば、注釈プロジェクト内のいくつかの又はすべての注釈タスクが完了した後、結果として生じたグラウンド・トゥルース・データは、任意の適切なフォーマットでエクスポートされ得る(たとえば、図1のグラウンド・トゥルース・データ・エクスポート180)。
図13は、本開示のいくつかの実施例による、LiDAR及びカメラ・フレームのグラウンド・トゥルース注釈を生成するための方法1300を示す流れ図である。方法1300は、ブロックB1302において、キャプチャ・セッションの間にキャプチャされたセンサ・データにアクセスすることを含み、センサ・データは、LiDARセンサからのLiDARフレーム及び少なくとも1つのカメラからのカメラ・フレームを含む。たとえば、1つ又は複数の車両(たとえば、図14A~Dの車両1400)は、現実世界(たとえば、物理)環境内の車両の1つ又は複数のセンサからセンサ・データを収集することができる(たとえば、図1のデータ・キャプチャ110の一部として)。車両センサは、1つ又は複数のLiDARセンサ及び1つ又は複数のカメラを含み得る。キャプチャされたセンサ・データは、任意の時間にアクセスされ得る。
方法1300は、ブロックB1304において、注釈場面のシーケンスを構成するためにカメラ・フレームをLiDARフレームと同期化する、少なくとも1つのカメラのうちの各カメラについての、オフセットを識別することを含み、各注釈場面は、LiDARフレームのうちの1つ及びカメラ・フレームのうちの少なくとも1つを含む。たとえば、LiDARスピンが、環境の異なる部分を進む及び見るとき、任意の所与のLiDARスピンの時間的に最も近いカメラ・フレームが、LiDARスピン開始角度に対するカメラの視野角及びLiDARスピンがカメラの視野(たとえば、その中心などの一部分)と整列するのにどのくらい時間がかかるかに基づいて、選択され得る。一般に、LiDARスピン開始に対するカメラごとの時間又はインデックス・オフセットが、各カメラのカメラ・フレームをLiDARフレームと整列させるために、決定及び/又は適用され得る。したがって、各LiDARフレーム及び時間的に最も近いカメラ・フレーム(たとえば、各カメラの)は、シーケンスを構成するために、対応する注釈場面へとサンプリング及びパッケージ化され得る。
方法1300は、ブロックB1306において、グラウンド・トゥルース注釈で注釈場面に注釈を付けるために複数の線形注釈タスクを、ラベル付けツールへと、エンコードすることを含む。一般に、ラベル付けツールは、ラベル付けされることになる注釈場面(たとえば、異なるセンサ・モダリティからのセンサ・データ)及び1つ又は複数の注釈タスクを識別及び/又は提供するプロジェクト管理者からの入力を受け付ける1つ又は複数のインターフェース(たとえば、グラフィカル・ユーザ・インターフェース)を含み得る。所望の注釈が、1セットの線形タスクへと分解され得、タスクのエンコードされた表現が、ラベル付けツールへと入力され得る(たとえば、図1の注釈パイプライン100における注釈150の一部として)。
方法1300は、ブロックB1308において、ラベル付けツールを使用して注釈場面のシーケンスを通してラベラを導くことを含む。たとえば、図1の注釈パイプライン100における注釈150の一部として、ラベル付けツールは、タスクを通してラベラを導くウィザードを使用して、特定のタスクの入力(たとえば、注釈)の順序を配置することができる。
方法1300は、ブロックB1310において、注釈場面においてLiDARフレームとカメラ・フレームのうちの少なくとも1つとを提示しながら、注釈タスクによって定義されたグラウンド・トゥルース注釈のセットを規定する入力を促す及び受け付けるためにラベル付けツールを使用することを、各注釈場面について、含む。たとえば、図1の注釈パイプライン100における注釈150の一部として、ラベル付けツールは、特定のタスクの入力の順序を配置することができる(たとえば、シーケンス内の各注釈場面の物体ごとの注釈手順をウォーク・スルーすることによって)。図6は、ラベル付けツールがLiDAR及びカメラ・フレームを同時に提示することができる、及びLiDARからカメラに及び/又はその逆に情報を投影することができる、例示的実施例を示す。
方法1300は、ブロックB1312において、グラウンド・トゥルース注釈の表現をエクスポートすることを含む。たとえば、注釈プロジェクト内のいくつかの又はすべての注釈タスクが完了した後、結果として生じたグラウンド・トゥルース・データは、任意の適切なフォーマットでエクスポートされ得る(たとえば、図1のグラウンド・トゥルース・データ・エクスポート180)。そのようなものとして、1つ又は複数のマシン学習モデルは、エクスポートされたグラウンド・トゥルース・データを使用して、トレーニングされ得る(たとえば、図1のグラウンド・トゥルース・データ消費190)。
例示的自律型車両
図14Aは、本開示のいくつかの実施例による、例示的自律型車両1400の図である。自律型車両1400(或いは本明細書で「車両1400」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気又は原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、及び/又は別のタイプの車両(たとえば、無人の及び/又は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、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。移動車1400は、自律運転レベルのレベル3~レベル5のうちの1個又は複数による機能の能力を有し得る。たとえば、移動車1400は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
図14Aは、本開示のいくつかの実施例による、例示的自律型車両1400の図である。自律型車両1400(或いは本明細書で「車両1400」と称される)は、旅客車両、たとえば、乗用車、トラック、バス、ファースト・レスポンダ車両、シャトル、電気又は原動機付自転車、オートバイ、消防車、警察車両、救急車、ボート、建設車両、潜水艦、ドローン、及び/又は別のタイプの車両(たとえば、無人の及び/又は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、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。移動車1400は、自律運転レベルのレベル3~レベル5のうちの1個又は複数による機能の能力を有し得る。たとえば、移動車1400は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
移動車1400は、移動車のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。移動車1400は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム1450を含み得る。推進システム1450は、移動車1400の推進力を有効にするために、トランスミッションを含み得る、移動車1400のドライブ・トレインに接続され得る。推進システム1450は、スロットル/加速装置1452からの信号の受信に応答して制御され得る。
ハンドルを含み得る、ステアリング・システム1454は、推進システム1450が動作しているときに(たとえば、移動車が移動中のときに)移動車1400のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム1454は、ステアリング・アクチュエータ1456から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能のオプションでもよい。
ブレーキ・センサ・システム1446は、ブレーキ・アクチュエータ1448及び/又はブレーキ・センサからの信号の受信に応答して移動車ブレーキを動作させるために使用され得る。
1個又は複数のシステム・オン・チップ(SoC:system on Chip)1404(図14C)及び/又はGPUを含み得る、コントローラ1436は、移動車1400の1個若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1個又は複数のブレーキ・アクチュエータ1448を介して移動車ブレーキを動作させて、1個又は複数のステアリング・アクチュエータ1456を介してステアリング・システム1454を動作させて、1個又は複数のスロットル/加速装置1452を介して推進システム1450を動作させるために、信号を送ることができる。コントローラ1436は、センサ信号を処理する、並びに律的運転を可能にするために及び/又は運転者の移動車1400の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1個又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ1436は、自律運転機能のための第1のコントローラ1436、機能的安全性機能のための第2のコントローラ1436、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ1436、インフォテインメント機能のための第4のコントローラ1436、緊急状態における冗長性のための第5のコントローラ1436、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ1436が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ1436が、単一の機能、及び/又はその任意の組合せを処理することができる。
コントローラ1436は、1個又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して移動車1400の1個若しくは複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ1458(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ1460、超音波センサ1462、LIDARセンサ1464、慣性計測装置(IMU:inertial measurement unit)センサ1466(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン1496、ステレオ・カメラ1468、ワイドビュー・カメラ1470(たとえば、魚眼カメラ)、赤外線カメラ1472、サラウンド・カメラ1474(たとえば、360度カメラ)、長距離及び/又は中距離カメラ1498、スピード・センサ1444(たとえば、移動車1400のスピードを測定するための)、振動センサ1442、ステアリング・センサ1440、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム1446の一部としての)、及び/又は他のセンサ・タイプから受信され得る。
コントローラ1436のうちの1個又は複数のコントローラは、移動車1400の計器群1432から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ1434、可聴式アナンシエータ、ラウドスピーカ、及び/又は移動車1400の他の構成要素を介して提供することができる。出力は、移動車ベロシティ、スピード、時間、マップ・データ(たとえば、図14CのHDマップ1422)、位置データ(たとえば、マップ上などの、移動車の1400の位置)、方向、他の移動車の位置(たとえば、占有グリッド)、コントローラ1436によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ1434は、1個又は複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在、及び/又は移動車が行った、行っている、又は行うであろう運転操作(たとえば、今、車線変更をしていること、3.22km(2マイル)内の出口34Bを出ることなど)に関する情報を表示することができる。
移動車1400はさらに、1個若しくは複数のワイヤレス・アンテナ1426及び/又はモデムを使用して1個若しくは複数のネットワークを介して通信することができるネットワーク・インターフェース1424を含む。たとえば、ネットワーク・インターフェース1424は、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000などを介する通信の能力を有し得る。ワイヤレス・アンテナ1426はまた、ブルートゥース(登録商標)、ブルートゥースLE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、移動車、モバイル・デバイスなど)の間の通信を可能にすることができる。
図14Bは、本開示のいくつかの実施例による、図14Aの例示的自律型車両1400のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1個の例示的実施例であり、制限することは意図されていない。たとえば、追加の及び/又は代替カメラが含まれ得る、及び/又はカメラは移動車1400の異なる位置に置かれ得る。
カメラのカメラ・タイプは、移動車1400の構成要素及び/又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(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個の支柱内に統合され得る。
移動車1400の前の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1個若しくは複数のコントローラ1436及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい移動車進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(「LDW(Lane Departure Warning)」)、自律的クルーズ制御(「ACC(Autonomous Cruise Control)」)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交差する交通又は自転車)からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ1470でもよい。図14Bにはワイドビュー・カメラは1個だけ示されているが、移動車1400には任意の数のワイドビュー・カメラ1470が存在し得る。加えて、長距離カメラ1498(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ1498はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
1個又は複数のステレオ・カメラ1468もまた、前向きの構成に含まれ得る。ステレオ・カメラ1468は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、移動車の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ1468は、2個のカメラ・レンズ(左と右に1個ずつ)と、移動車から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ1468が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
移動車1400の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ1474(たとえば、図14Bに示されるような4個のサラウンド・カメラ1474)は、移動車1400上に位置付けられ得る。サラウンド・カメラ1474は、ワイドビュー・カメラ1470、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、移動車の前、後ろ、及び側面に配置され得る。代替配置において、移動車は、3個のサラウンド・カメラ1474(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1個又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
移動車1400の後ろに対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ1498、ステレオ・カメラ1468)、赤外線カメラ1472など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
図14Cは、本開示のいくつかの実施例による、図14Aの例示的自律型車両1400の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素はともに除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
図14Cの移動車1400の構成要素、特徴、及びシステムのそれぞれは、バス1402を介して接続されるものとして図示されている。バス1402は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキ、ステアリング、フロント・ガラス・ワイパなどの作動など、移動車1400の様々な特徴及び機能の制御を助けるために使用される移動車1400内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の移動車状況指標を見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
バス1402は、CANバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、CANバスに加えて、又はこのその代替として、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス1402を表すために使用されているが、これは制限することを意図されていない。たとえば、1個若しくは複数のCANバス、1個若しくは複数のFlexRayバス、1個若しくは複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1個若しくは複数の他のタイプのバスを含み得る、任意の数のバス1402が存在し得る。いくつかの実例では、2個以上のバス1402が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス1402は衝突回避機能のために使用されてもよく、第2のバス1402は作動制御のために使用されてもよい。任意の実例において、各バス1402は、移動車1400の構成要素のいずれかと通信し得、2個以上のバス1402が同じ構成要素と通信し得る。いくつかの実例では、移動車内の各SoC1404、各コントローラ1436、及び/又は各コンピュータは、同じ入力データ(たとえば、移動車1400のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
移動車1400は、図14Aに関して本明細書で説明されるものなど、1個又は複数のコントローラ1436を含み得る。コントローラ1436は、様々な機能のために使用され得る。コントローラ1436は、移動車1400の様々な他の構成要素及びシステムのいずれかに連結されてもよく、移動車1400、移動車1400の人工知能、移動車1400のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
移動車1400は、システム・オン・チップ(SoC)1404を含み得る。SoC1404は、CPU1406、GPU1408、プロセッサ1410、キャッシュ1412、加速装置1414、データ・ストア1416、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC1404は、様々なプラットフォーム及びシステム内の移動車1400を制御するために使用され得る。たとえば、SoC1404は、1個又は複数のサーバ(たとえば、図14Dのサーバ1478)からネットワーク・インターフェース1424を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ1422を有するシステム(たとえば、移動車1400のシステム)において結合され得る。
CPU1406は、CPUクラスタ又はCPU複合体(或いは、「CCPLEX」とも称される)を含み得る。CPU1406は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施例では、CPU1406は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施例では、CPU1406は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU1406(たとえば、CCPLEX)は、CPU1406のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
CPU1406は、以下の特徴のうちの1個又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU1406は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
GPU1408は、統合されたGPU(或いは本明細書において「iGPU」と称される)を含み得る。GPU1408は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU1408は、強化されたテンソル命令セットを使用することができる。GPU1408は、1個又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施例では、GPU1408は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU1408は、計算アプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU1408は、1個若しくは複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用することができる。
GPU1408は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、GPU1408は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは制限することを意図されておらず、GPU1408は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合精度NVIDIAテンソル・コア、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
GPU1408は、一部の実例では、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)が使用され得る。
GPU1408は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU1408がCPU1406ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU1408メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU1406に送信され得る。応答して、CPU1406は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU1408に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU1406とGPU1408との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU1408へのアプリケーションのGPU1408プログラミング及び移植を単純化する。
加えて、GPU1408は、他のプロセッサのメモリへのGPU1408のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
SoC1404は、本明細書に記載のものを含む任意の数のキャッシュ1412を含み得る。たとえば、キャッシュ1412は、CPU1406とGPU1408との両方に利用可能な(たとえば、CPU1406とGPU1408との両方に接続された)L3キャッシュを含み得る。キャッシュ1412は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、4MB以上を含み得る。
SoC1404は、車両1400の様々なタスク又は動作のいずれか(たとえば、処理DNN)に関して処理を実行する際に活用され得る論理演算ユニット(ALU:arithmetic logic unit)を含み得る。加えて、SoC1404は、システム内で数学演算を実行するための浮動小数点演算ユニット(FPU:floating point unit)(又は他のマス・コプロセッサ又は数値演算コプロセッサ・タイプ)を含み得る。たとえば、SoC104は、CPU1406及び/又はGPU1408内の実行ユニットとして統合された1個又は複数のFPUを含み得る。
SoC1404は、1個又は複数の加速装置1414(たとえば、ハードウェア・加速装置、ソフトウェア・加速装置、又はその組合せ)を含み得る。たとえば、SoC1404は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU1408を補完するために及びGPU1408のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU1408のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置1414は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
加速装置1414(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(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は、GPU1408の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU1408のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU1408及び/又は他の加速装置1414に任せることができる。
加速装置1414(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(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は、CPU1406から独立したシステム・メモリに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)メモリを含み得る。
加速装置1414(たとえば、ハードウェア加速クラスタ)は、加速装置1414のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC61508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
いくつかの実例では、SoC1404は、2018年8月10日に出願された米国特許出願第16/101,232号に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。一部の実施例では、1個又は複数の木の走査ユニット(TTU:tree traversal unit)が、1個又は複数のレイトレーシング関連動作を実行するために使用され得る。
加速装置1414(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。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センサ1464又はRADARセンサ1460)から取得された物体の移動車1400方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ1466出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
SoC1404は、データ・ストア1416(たとえば、メモリ)を含み得る。データ・ストア1416は、SoC1404のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア1416は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア1412は、L2又はL3キャッシュ1412を備え得る。データ・ストア1416の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置1414に関連するメモリの参照を含み得る。
SoC1404は、1個又は複数のプロセッサ1410(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ1410は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC1404ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC1404熱及び温度センサの管理、及び/又はSoC1404電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC1404は、リング発振器を使用してCPU1406、GPU1408、及び/又は加速装置1414の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC1404をより低い電力状態に置く及び/又は移動車1400をショーファーの安全停止モードにする(たとえば、移動車1400を安全停止させる)ことができる。
プロセッサ1410は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
プロセッサ1410は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
プロセッサ1410は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
プロセッサ1410は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
プロセッサ1410は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
プロセッサ1410は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ1470で、サラウンド・カメラ1474で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、移動車の目的地を変更する、移動車のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU1408は、新しい表面を連続してレンダリングために必要とされない。GPU1408の電源が入れられ、3Dレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、GPU1408をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
SoC1404は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、及び/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC1404は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
SoC1404は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC1404は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ1464、RADARセンサ1460など)、バス1402からのデータ(たとえば、移動車1400のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ1458からのデータを処理するために使用され得る。SoC1404は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU1406を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
SoC1404は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC1404は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置1414が、CPU1406と結合されるとき、GPU1408、及びデータ・ストア1416は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、移動車内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU1420)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを移動車の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を移動車の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU1408上などで、同時に実行することができる。
いくつかの実例では、顔認識及び移動車所有者識別のためのCNNは、カメラ・センサからのデータを使用して移動車1400の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに移動車を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が移動車を離れるときに移動車の動作を停止させるために、使用され得る。このようにして、SoC1404は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン1496からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC1404は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施例では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ1458によって識別されるように、移動車が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ1462の支援を受けて、移動車を減速する、道の端に停止させる、移動車を駐車する、及び/又は移動車をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
移動車は、高速相互接続(たとえば、PCIe)を介してSoC1404に連結され得るCPU1418(たとえば、個別のCPU、又はdCPU)を含み得る。CPU1418は、たとえば、X86プロセッサを含み得る。CPU1418は、たとえば、ADASセンサとSoC1404との間の潜在的に不整合の結果を調停すること、及び/又はコントローラ1436及び/又はインフォテインメントSoC1430の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
移動車1400は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC1404に連結され得るGPU1420(たとえば、個別のGPU、又はdGPU)を含み得る。GPU1420は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、移動車1400のセンサからの入力(たとえば、センサ・データ)に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
移動車1400は、1個又は複数のワイヤレス・アンテナ1426(たとえば、セルラ・アンテナ、ブルートゥース・アンテナなど、異なる通信プロトコルのための1個又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース1424をさらに含み得る。ネットワーク・インターフェース1424は、インターネットを介するクラウドとの(たとえば、サーバ1478及び/又は他のネットワーク・デバイスとの)、他の移動車との、及び/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の移動車と通信するために、直接リンクが2個の移動車の間に確立され得る、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、移動車対移動車通信リンクを使用し、提供され得る。移動車対移動車通信リンクは、移動車1400に近接する移動車(たとえば、移動車1400の前の、横の、及び/又は後ろの移動車)に関する移動車1400情報を提供することができる。この機能は、移動車1400の共同適応クルーズ制御機能の一部でもよい。
ネットワーク・インターフェース1424は、変調及び復調機能を提供する及びコントローラ1436がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース1424は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA、UMTS、GSM、CDMA2000、ブルートゥース、ブルートゥースLE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
移動車1400は、チップ外の(たとえば、SoC1404外の)ストレージを含み得るデータ・ストア1428をさらに含み得る。データ・ストア1428は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1個又は複数の記憶素子を含み得る。
車両1400は、GNSSセンサ1458をさらに含み得る。GNSSセンサ1458(たとえば、GPS、支援されたGPSセンサ、ディファレンシャルGPS(DGPS)センサなど)は、マッピング、知覚、占有グリッド生成、及び/又は進路計画策定機能を支援する。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ1458が、使用され得る。
移動車1400は、RADARセンサ1460をさらに含み得る。RADARセンサ1460は、暗闇及び/又は厳しい気象条件においても、長距離移動車検出のために移動車1400によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ1460は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ1460によって生成されたデータを送信するために)CAN及び/又はバス1402を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして制限なしに、RADARセンサ1460は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
RADARセンサ1460は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、適応クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ1460は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で移動車1400の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、移動車1400のレーンに入る又はこれを去る移動車を迅速に検出することを可能にする。
一実例として、中距離RADARシステムは、1460m(前)又は80m(後)までの範囲、及び42度(前)又は1450度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、移動車の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
移動車1400は、超音波センサ1462をさらに含み得る。移動車1400の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ1462は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ1462が使用され得、異なる超音波センサ1462が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ1462は、ASIL Bの機能的安全性レベルにおいて動作することができる。
移動車1400はLIDARセンサ1464を含み得る。LIDARセンサ1464は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ1464は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、移動車1400は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ1464を含み得る。
いくつかの実例では、LIDARセンサ1464は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ1464は、たとえば、2cm~3cmの精度を有し、1400Mbpsイーサネット(登録商標)接続のサポートを有して、約1400mの広告された範囲を有し得る。いくつかの実例では、1個又は複数の非突出したLIDARセンサ1464が、使用され得る。そのような実例では、LIDARセンサ1464は、移動車1400の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ1464は、低反射物体についても200mの範囲を有し、120度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ1464は、45度と135度との間の水平視野向けに構成され得る。
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで移動車の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、移動車から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、移動車1400の各側面に1個ずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ1464は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
移動車は、IMUセンサ1466をさらに含み得る。一部の実例では、IMUセンサ1466は、移動車1400の後部車軸の中央に位置付けられ得る。IMUセンサ1466は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ1466は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ1466は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
一部の実施例では、IMUセンサ1466は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ1466は、GPSからIMUセンサ1466までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を移動車1400が推定することを可能にし得る。いくつかの実例では、IMUセンサ1466及びGNSSセンサ1458は、単一の統合されたユニットにおいて結合され得る。
移動車は、移動車1400内及び/又は周囲に置かれたマイクロフォン1496を含み得る。マイクロフォン1496は、中でも、緊急車両検出及び識別のために使用され得る。
移動車は、ステレオ・カメラ1468、ワイドビュー・カメラ1470、赤外線カメラ1472、サラウンド・カメラ1474、長距離及び/又は中距離カメラ1498、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、移動車1400の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、移動車1400の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、移動車1400の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、移動車は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、図14A及び図14Bに関連して本明細書においてさらに詳しく説明される。
移動車1400は、振動センサ1442をさらに含み得る。振動センサ1442は、車軸など、移動車の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ1442が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
移動車1400は、ADASシステム1438を含み得る。一部の実例では、ADASシステム1438は、SoCを含み得る。ADASシステム1438は、自律/適応/自動クルーズ制御(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センサ1460、LIDARセンサ1464、及び/又はカメラを使用し得る。ACCシステムは、縦ACC及び/又は横ACCを含み得る。縦ACCは、移動車1400の直ぐ前の移動車までの距離を監視及び制御し、前方の移動車からの安全距離を維持するために移動車速度を自動的に調整する。横ACCは、距離の保持を実行し、必要なときにレーンを変更するように移動車1400にアドバイスする。横ACCは、LCA及びCWSなどの他のADASアプリケーションに関連する。
CACCは、ワイヤレス・リンクを介して他の動車からネットワーク・インターフェース1424及び/又はワイヤレス・アンテナ1426を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の移動車からの情報を使用する。直接リンクは、移動車対移動車(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対移動車(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の移動車(たとえば、移動車1400と同じレーン内にある、移動車1400の直ぐ前の移動車)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。移動車1400の前方の移動車の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
運転者が修正行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1460を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
AEBシステムは、別の移動車又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ1460を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突切迫ブレーキなどの技法を含み得る。
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、移動車1400が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動部品など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、移動車1400が車線をはみ出し始めた場合に移動車1400を修正するためにステアリング入力又はブレーキを提供する。
BSWシステムは、自動車の死角において移動車の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。システムは、運転者が方向指示器を使用するときに、付加的警告を提供することができる。BSWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、後ろ側を向いたカメラ及び/又はRADARセンサ1460を使用することができる。
RCTWシステムは、車両1400がバックしているときにリアカメラの範囲外で物体が検出されたときに視覚的、可聴式、及び/又は触覚的通知を提供することができる。いくつかのRCTWシステムは、衝突を回避するために車両ブレーキが適用されることを確実にするために、AEBを含む。RCTWシステムは、運転者フィードバック、たとえば、ディスプレイ、スピーカ、及び/又は振動部品、に電気的に結合された、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1個又は複数の後ろを向いたRADARセンサ1460を使用することができる。
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のADASシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両1400では、結果が矛盾する場合には、移動車1400自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ1436又は第2のコントローラ1436)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ADASシステム1438は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム1438からの出力は、監督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は、SoC1404の構成要素を備え得る、及び/又はSoC1404の構成要素として含まれ得る。
他の実例において、ADASシステム1438は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータ上のソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
いくつかの実例では、ADASシステム1438の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム1438が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
移動車1400は、インフォテインメントSoC1430(たとえば、移動車内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の個別の構成要素を含み得る。インフォテインメントSoC1430は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの移動車関連情報)を移動車1400に提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC1430は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース接続、カーピュータ、車内エンターテインメント、Wi-Fi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ1434、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/又はシステムを制御する及び/又はこれと相互に作用するための)、及び/又は他の構成要素でもよい。インフォテインメントSoC1430は、ADASシステム1438からの情報、計画された移動車操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、移動車情報、道路情報など)、及び/又は他の情報など、移動車のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
インフォテインメントSoC1430は、GPU機能性を含み得る。インフォテインメントSoC1430は、バス1402(たとえば、CANバス、イーサネット(登録商標)など)を介して、移動車1400の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ1436(たとえば、移動車1400の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC1430は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC1430は、本明細書に記載のように、移動車1400をショーファーの安全停止モードにすることができる。
移動車1400は、計器群1432(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群1432は、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。計器群1432は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントSoC1430及び計器群1432の間で表示及び/又は共有され得る。言い換えれば、計器群1432は、インフォテインメントSoC1430の一部として含まれてもよく、逆もまた同様である。
図14Dは、本開示のいくつかの実施例による、図14Aのクラウドベースのサーバと例示的自律型車両1400との間の通信のシステム図である。システム1476は、サーバ1478、ネットワーク1490、及び、移動車1400を含む移動車を含み得る。サーバ1478は、複数のGPU1484(A)~1484(H)(本明細書でGPU1484と総称される)、PCIeスイッチ1482(A)~1482(H)(本明細書でPCIeスイッチ1482と総称される)、及び/又はCPU1480(A)~1480(B)(本明細書でCPU1480と総称される)を含み得る。GPU1484、CPU1480、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLinkインターフェース1488及び/又はPCIe接続1486などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU1484は、NVLink及び/又はNVSwitch SoCを介して接続され、GPU1484及びPCIeスイッチ1482は、PCIe相互接続を介して接続される。8個のGPU1484、2個のCPU1480、及び2個のPCIeスイッチが図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ1478は、任意の数のGPU1484、CPU1480、及び/又はPCIeスイッチを含み得る。たとえば、サーバ1478は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU1484を含み得る。
サーバ1478は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク1490を介して、移動車から、受信することができる。サーバ1478は、ニューラル・ネットワーク1492、更新されたニューラル・ネットワーク1492、及び/又は、交通及び道路状態に関する情報を含むマップ情報1494をネットワーク1490を介して移動車に送信することができる。マップ情報1494の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ1422の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク1492、更新されたニューラル・ネットワーク1492、及び/又はマップ情報1494は、環境において任意の数の移動車から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ1478及び/又は他のサーバを使用する)データセンタにおいて実行されたトレーニングに基づいて、生じた可能性がある。
サーバ1478は、トレーニング・データに基づいてマシン学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、移動車によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。トレーニングは、たとえば以下のクラスを含むがこれらに限定されない、任意の1個又は複数のクラスのマシン学習技法に従って、実行され得る:監視されたトレーニング、半監視されたトレーニング、監視されていないトレーニング、自己学習、強化学習、連合型学習、転移学習、特徴学習(主要構成要素及びクラスタ分析を含む)、マルチ線形部分空間学習、多様体学習、表現学習(予備辞書学習を含む)、ルールに基づくマシン学習、異常検出、及びそれらの変更形態若しくは組合せ。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、移動車によって使用され得(たとえば、ネットワーク1490を介して移動車に送信される)、及び/又は、マシン学習モデルは、移動車を遠隔監視するために、サーバ1478によって使用され得る。
いくつかの実例では、サーバ1478は、移動車からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ1478は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU1484によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ1478は、CPU電源式データセンタのみを使用する深層学習インフラストラクチャを含み得る。
サーバ1478の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して移動車1400内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、移動車1400がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、移動車1400からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他のマシン学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、移動車1400によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、移動車1400内のAIは正常に機能していないという結論を下した場合、サーバ1478は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように移動車1400のフェイルセーフ・コンピュータに命じる移動車1400への信号を送信することができる。
推論のために、サーバ1478は、GPU1484及び1個又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
例示的計算デバイス
図15は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス1500の一実例のブロック図である。計算デバイス1500は、以下のデバイスを間接的に又は直接的につなぐ相互接続システム1502を含み得る:メモリ1504、1個又は複数の中央処理装置(CPU)1506、1個又は複数のグラフィック処理ユニット(GPU)1508、通信インターフェース1510、入力/出力(I/O)ポート1512、入力/出力構成要素1514、電力供給装置1516、1個又は複数の提示構成要素1518(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット1520。少なくとも1個の実施例において、計算デバイス1500は、1個又は複数の仮想マシン(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU1508のうちの1個又は複数は、1個又は複数のvGPUを含み得、CPU1506のうちの1個又は複数は、1個又は複数のvCPUを含み得、及び/又は、論理ユニット1520のうちの1個又は複数は、1個又は複数の仮想論理ユニットを含み得る。そのようなものとして、計算デバイス1500は、個別の構成要素(たとえば、計算デバイス1500専用の全GPU)、仮想構成要素(たとえば、計算デバイス1500専用のGPUの一部分)、又はその組合せを含み得る。
図15は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス1500の一実例のブロック図である。計算デバイス1500は、以下のデバイスを間接的に又は直接的につなぐ相互接続システム1502を含み得る:メモリ1504、1個又は複数の中央処理装置(CPU)1506、1個又は複数のグラフィック処理ユニット(GPU)1508、通信インターフェース1510、入力/出力(I/O)ポート1512、入力/出力構成要素1514、電力供給装置1516、1個又は複数の提示構成要素1518(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット1520。少なくとも1個の実施例において、計算デバイス1500は、1個又は複数の仮想マシン(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU1508のうちの1個又は複数は、1個又は複数のvGPUを含み得、CPU1506のうちの1個又は複数は、1個又は複数のvCPUを含み得、及び/又は、論理ユニット1520のうちの1個又は複数は、1個又は複数の仮想論理ユニットを含み得る。そのようなものとして、計算デバイス1500は、個別の構成要素(たとえば、計算デバイス1500専用の全GPU)、仮想構成要素(たとえば、計算デバイス1500専用のGPUの一部分)、又はその組合せを含み得る。
図15の様々なブロックは、線で相互接続システム1502を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素1518は、I/O構成要素1514と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU1506及び/又はGPU1508はメモリを含み得る(たとえば、メモリ1504は、GPU1508、CPU1506、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図15の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図15の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
相互接続システム1502は、1個又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。相互接続システム1502は、1個又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VESA(video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。一部の実施例では、構成要素の間に直接接続が存在する。一実例として、CPU1506は、メモリ1504に直接接続され得る。さらに、CPU1506は、GPU1508に直接接続され得る。構成要素の間に直接、又はポイント対ポイント接続が存在する場合、相互接続システム1502は、接続を実施するためのPCIeリンクを含み得る。これらの実例では、PCIバスは、計算デバイス1500に含まれる必要はない。
メモリ1504は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス1500によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ1504は、オペレーティング・システムなど、(たとえば、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用し得る及び計算デバイス1500によってアクセスし得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
コンピュータ記憶媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1個又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、コンピュータ記憶媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
CPU1506は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1500の1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。CPU1506は、多数のソフトウェア・スレッドを同時に処理する能力を有する1個又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU1506は、任意のタイプのプロセッサを含み得、実装された計算デバイス1500のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス1500のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたAdvanced RISC Machines(ARM)プロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス1500は、計算コプロセッサなど、1個又は複数のマイクロプロセッサ又は補助コプロセッサ内の1個又は複数のCPU1506を含み得る。
CPU1506に加えて又はその代わりに、GPU1508は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1500の1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。GPU1508のうちの1個若しくは複数は、統合されたGPU(たとえば、CPU1506のうちの1個又は複数とでもよく、及び/又はGPU1508のうちの1個若しくは複数は、離散GPUでもよい。実施例では、GPU1508のうちの1個又は複数は、CPU1506のうちの1個又は複数のコプロセッサでもよい。GPU1508は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、計算デバイス1500によって使用され得る。たとえば、GPU1508は、GPUによる汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU1508は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU1508は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU1506からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU1508は、画素データ又は任意の他の適切なデータ、たとえばGPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば表示メモリ、を含み得る。表示メモリは、メモリ1504の一部として含まれ得る。GPU1508は、並行して動作する(たとえば、リンクを介して)2個以上のGPUを含み得る。リンクは、GPUに直接接続することができ(たとえば、NVLINKを使用して)、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。ともに結合されるとき、各GPU1508は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、独自のメモリを含むことができ、又は他のGPUとメモリを共有することができる。
CPU1506及び/又はGPU1508に加えて又はその代わりに、論理ユニット1520は、コンピュータ可読命令のうちの少なくともいくつかを実行して計算デバイス1500のうちの1個又は複数を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。実施例では、CPU1506、GPU1508、及び/又は論理ユニット1520は、方法、プロセス及び/又はその部分の任意の組合せを離散的に又は合同で実行することができる。論理ユニット1520のうちの1個若しくは複数は、CPU1506及び/若しくはGPU1508のうちの1個若しくは複数の一部でもよく及び/又はそこで統合されてもよく、及び/又は、論理ユニット1520のうちの1個若しくは複数は、CPU1506及び/若しくはGPU1508に対する離散構成要素であっても若しくは他の方法でそれらの外部にあってもよい。実施例では、論理ユニット1520のうちの1個又は複数は、CPU1506のうちの1個若しくは複数及び/又はGPU1508のうちの1個若しくは複数のコプロセッサでもよい。
論理ユニット1520の実例は、1個又は複数の処理コア及び/又はその構成要素、たとえば、テンソル・コア(TC:Tensor Core)、テンソル処理ユニット(TPU:Tensor Processing Unit)、画素ビジュアル・コア(PVC:Pixel Visual Core)、ビジョン処理ユニット(VPU:Vision Processing Unit)、グラフィックス処理クラスタ(GPC:Graphics Processing Cluster)、テクスチャ処理クラスタ(TPC:Texture Processing Cluster)、ストリーミング・マルチプロセッサ(SM:Streaming Multiprocessor)、木の走査ユニット(TTU:Tree Traversal Unit)、人工知能加速装置(AIA:Artificial Intelligence Accelerator)、深層学習加速装置(DLA:Deep Learning Accelerator)、論理演算ユニット(ALU)、特定用途向け集積回路(ASIC)、浮動小数点演算ユニット(FPU)、入力/出力(I/O)エレメント、周辺構成要素相互接続(PCI)又は周辺構成要素相互接続エクスプレス(PCIe)エレメント、及び/又は同類のもの、を含む。
通信インターフェース1510は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス1500が他の計算デバイスと通信することを可能にする、1個又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース1510は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース、ブルートゥースLE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
I/Oポート1512は、そのうちのいくつかは計算デバイス1500に内蔵(たとえば、統合)され得る、I/O構成要素1514、提示構成要素1518、及び/又は他の構成要素を含む、他のデバイスに計算デバイス1500が論理的に連結されることを可能にすることができる。例示的なI/O構成要素1514は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素1514は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス1500のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス1500は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス1500は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス1500によって使用され得る。
電力供給装置1516は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置1516は、計算デバイス1500の構成要素が動作することを可能にするために計算デバイス1500に電力を提供することができる。
提示構成要素1518は、ディスプレイ(たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はその組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素1518は、他の構成要素(たとえば、GPU1508、CPU1506など)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。
例示的データ・センタ
図16は、本開示の少なくとも1個の実施例において使用され得る例示的データ・センタ1600を示す。データ・センタ1600は、データ・センタ・インフラストラクチャ層1610、フレームワーク層1620、ソフトウェア層1630、及び/又はアプリケーション層1640を含み得る。
図16は、本開示の少なくとも1個の実施例において使用され得る例示的データ・センタ1600を示す。データ・センタ1600は、データ・センタ・インフラストラクチャ層1610、フレームワーク層1620、ソフトウェア層1630、及び/又はアプリケーション層1640を含み得る。
図16に示すように、データ・センタ・インフラストラクチャ層1610は、資源オーケストレータ1612、グループ化された計算資源1614、及びノード計算資源(「ノードC.R.」)1616(1)~1616(N)を含み得、そこで、「N」は、任意の整数の、自然数を表す。少なくとも1個の実施例において、ノードC.R.1616(1)~1616(N)は、任意の数の中央処理装置(「CPU」)又は他のプロセッサ(加速装置、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサ若しくはグラフィックス・プロセッシング・ユニット(GPU)などを含む)、メモリ・デバイス(たとえば、動的リード・オンリ・メモリ)、記憶デバイス(たとえば、ソリッド・ステート若しくはディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」)デバイス、ネットワーク・スイッチ、仮想マシン(「VM」)、電力モジュール、及び/又は冷却モジュールなどを含み得るが、これらに限定されない。いくつかの実施例において、ノードC.R.1616(1)~1616(N)のうちの1個又は複数のノードC.R.は、前述の計算資源のうちの1個又は複数を有するサーバに対応し得る。加えて、いくつかの実施例において、ノードC.R.1616(1)~16161(N)は、1個若しくは複数の仮想構成要素、たとえば、vGPU、vCPU、及び/若しくは同類のもの、を含み得る、並びに/又は、ノードC.R.1616(1)~1616(N)のうちの1個若しくは複数は、仮想マシン(VM)に対応し得る。
少なくとも1個の実施例において、グループ化された計算資源1614は、1個又は複数のラック(図示せず)内に収容された別個のグループのノードC.R.1616、或いは様々な地理的場所(やはり図示せず)にあるデータ・センタに収容された多数のラックを含み得る。グループ化された計算資源1614内の別個のグループのノードC.R.1616は、1個又は複数のワークロードをサポートするように構成する又は割り当てることができる、グループ化された計算、ネットワーク、メモリ又はストレージ資源を含み得る。少なくとも1個の実施例において、CPU、GPU、及び/又は他のプロセッサを含むいくつかのノードC.R.1616は、1個又は複数のワークロードをサポートするための計算資源を提供するために、1個又は複数のラック内にグループ化され得る。1個又は複数のラックはまた、任意の組合せで、任意の数の電力モジュール、冷却モジュール、及び/又はネットワーク・スイッチを含み得る。
資源オーケストレータ1622は、1個若しくは複数のノードC.R.1616(1)~1616(N)及び/又はグループ化された計算資源1614を構成又は他の方法で制御することができる。少なくとも1個の実施例において、資源オーケストレータ1622は、データ・センタ1600のソフトウェア設計インフラストラクチャ(「SDI」)管理エンティティを含み得る。資源オーケストレータ1622は、ハードウェア、ソフトウェア、又はその何らかの組合せを含み得る。
少なくとも1個の実施例において、図16に示すように、フレームワーク層1620は、ジョブ・スケジューラ1632、構成マネージャ1634、資源マネージャ1636、及び/又は分散型ファイル・システム1638を含み得る。フレームワーク層1620は、ソフトウェア層1630のソフトウェア1632及び/又はアプリケーション層1640の1個若しくは複数のアプリケーション1642をサポートするためにフレームワークを含み得る。ソフトウェア1632又はアプリケーション1642は、ウェブベースのサービス・ソフトウェア又はアプリケーション、たとえば、アマゾン・ウェブ・サービス、グーグル・クラウド及びMicrosoft Azureによって提供されるもの、をそれぞれ含み得る。フレームワーク層1620は、大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システム1638を使用し得るApache Spark(商標)(以下「Spark」)などのフリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。少なくとも1個の実施例において、ジョブ・スケジューラ1632は、データ・センタ1600の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。構成マネージャ1634は、異なる層、たとえば、ソフトウェア層1630と、大規模データ処理をサポートするためのSpark及び分散型ファイル・システム1638を含むフレームワーク層1620、を構成する能力を有し得る。資源マネージャ1636は、分散型ファイル・システム1638及びジョブ・スケジューラ1632のサポートのためにマップされた又は割り当てられたクラスタ化された又はグループ化された計算資源を管理する能力を有し得る。少なくとも1個の実施例において、クラスタ化された又はグループ化された計算資源は、データ・センタ・インフラストラクチャ層1610にグループ化された計算資源714を含み得る。資源マネージャ1036は、資源オーケストレータ1612と調整して、これらのマップされた又は割り当てられた計算資源を管理することができる。
少なくとも1個の実施例において、ソフトウェア層1630に含まれるソフトウェア1632は、ノードC.R.1616(1)~1616(N)の少なくとも部分、グループ化された計算資源1614、及び/又はフレームワーク層1620の分散型ファイル・システム1638によって使用されるソフトウェアを含み得る。1個又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含み得るが、これらに限定されない。
少なくとも1個の実施例において、アプリケーション層1640に含まれるアプリケーション1642は、ノードC.R.1616(1)~1616(N)の少なくとも部分、グループ化された計算資源1614、及び/又はフレームワーク層1620の分散型ファイル・システム1638によって使用される1個又は複数のタイプのアプリケーションを含み得る。1個又は複数のタイプのアプリケーションは、任意の数のゲノミクス・アプリケーション、認知計算、並びに、トレーニング若しくは推論ソフトウェア、マシン学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)、及び/又は1個若しくは複数の実施例と併せて使用される他のマシン学習アプリケーションを含む、マシン学習アプリケーションを含み得るが、これらに限定されない。
少なくとも1個の実施例において、構成マネージャ1634、資源マネージャ1636、及び資源オーケストレータ1612のうちのいずれかは、任意の技術的に可能な方式で取得される任意の量及びタイプのデータに基づいて任意の数及びタイプの自己書換え型アクションを実装することができる。自己書換え型アクションは、よくない可能性のある構成決定を行うこと並びにデータ・センタの十分に活用されていない及び/又は実行の不十分な部分を恐らく回避することからデータ・センタ1600のデータ・センタ・オペレータを解放し得る。
データ・センタ1600は、1個又は複数のマシン学習モデルをトレーニングする或いは本明細書に記載の1個又は複数の実施例による1個又は複数のマシン学習モデルを使用して情報を予測する又は推論するために、ツール、サービス、ソフトウェア或いは他の資源を含み得る。たとえば、マシン学習モデルは、データ・センタ1600に関して前述されたソフトウェア及び/又は計算資源を使用するニューラル・ネットワーク・アーキテクチャによる重量パラメータの計算によって、トレーニングされ得る。少なくとも1個の実施例において、1個又は複数のニューラル・ネットワークに対応するトレーニングされた又は配備されたマシン学習モデルは、たとえば、本明細書に記載のものに限定されない、1個又は複数のトレーニング技法を介して計算された重量パラメータを使用することによって、データ・センタ1600に関して前述された資源を使用して情報を推論又は予測するために使用され得る。
少なくとも1個の実施例において、データ・センタ1600は、前述の資源を使用するトレーニング及び/又は推論の実行のために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、及び/又は他のハードウェア(若しくはそれに対応する仮想計算資源)を使用することができる。さらに、前述の1個又は複数のソフトウェア及び/又はハードウェア資源は、情報の推論をユーザがトレーニング又は実行することを可能にするためのサービス、たとえば、画像認識、音声認識、又は他の人工知能サービス、として構成され得る。
例示的ネットワーク環境
本開示の実施例の実装において使用するのに適したネットワーク環境は、1個若しくは複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図15の計算デバイス1500の1個又は複数のインスタンスで実装され得る- たとえば、各デバイスは、計算デバイス1500の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ1600の一部として含まれ得、その実例は、図16に関して本明細書でさらに詳述される。
本開示の実施例の実装において使用するのに適したネットワーク環境は、1個若しくは複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図15の計算デバイス1500の1個又は複数のインスタンスで実装され得る- たとえば、各デバイスは、計算デバイス1500の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ1600の一部として含まれ得、その実例は、図16に関して本明細書でさらに詳述される。
ネットワーク環境の構成要素は、ワイヤード、ワイヤレス、又はその両方でもよい、ネットワークを介して互いに通信し得る。ネットワークは、複数のネットワーク、又はネットワークのネットワークを含み得る。実例として、ネットワークは、1個若しくは複数のワイド・エリア・ネットワーク(WAN)、1個若しくは複数のローカル・エリア・ネットワーク(LAN)、1個若しくは複数のパブリック・ネットワーク、たとえば、インターネット及び/若しくは公衆交換電話網(PSTN)、並びに/又は1個若しくは複数のプライベート・ネットワークを含み得る。ネットワークが、ワイヤレス電気通信ネットワークを含む場合、構成要素、たとえば、基地局、通信塔、或いはアクセス・ポイント(並びに他の構成要素)、は、ワイヤレス接続を提供し得る。
互換性のあるネットワーク環境は、1個又は複数のピア・ツー・ピア・ネットワーク環境- その場合、サーバはネットワーク環境に含まれないことがある- と、1個又は複数のクライアント・サーバ・ネットワーク環境- その場合、1個又は複数のサーバがネットワーク環境に含まれ得る- とを含み得る。ピア・ツー・ピア・ネットワーク環境では、サーバに関して本明細書に記載した機能性は、任意の数のクライアント・デバイスで実装され得る。
少なくとも1個の実施例において、ネットワーク環境は、1個又は複数のクラウドベースのネットワーク環境、分散型計算環境、その組合せなどを含み得る。クラウドベースのネットワーク環境は、フレームワーク層、ジョブ・スケジューラ、資源マネージャ、並びに、1個若しくは複数のコア・ネットワーク・サーバ及び/又はエッジ・サーバを含み得る、サーバのうちの1個又は複数で実装された分散型ファイル・システムを含み得る。フレームワーク層は、ソフトウェア層のソフトウェア及び/又はアプリケーション層の1個若しくは複数のアプリケーションをサポートするために、フレームワークを含み得る。ソフトウェア又はアプリケーションは、それぞれ、ウェブベースのサービス・ソフトウェア又はアプリケーションを含み得る。実施例において、クライアント・デバイスのうちの1個又は複数は、ウェブベースのサービス・ソフトウェア又はアプリケーションを使用し得る(たとえば、1個又は複数のアプリケーション・プログラミング・インターフェース(API)を介してサービス・ソフトウェア及び/又はアプリケーションにアクセスすることによって)。フレームワーク層は、たとえば大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システムを使用し得る、フリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。
クラウドベースのネットワーク環境は、本明細書に記載の計算及び/又はデータ・ストレージ機能(又は1個若しくは複数のその部分)の任意の組合せを実施するクラウド計算及び/又はクラウド・ストレージを提供し得る。これらの様々な機能のいずれも、セントラル又はコア・サーバ(たとえば、州、領域、国、世界にわたって分散され得る1個又は複数のデータ・センタなどの)から複数の場所に分散され得る。ユーザ(たとえば、クライアント・デバイス)への接続が、エッジ・サーバに比較的近い場合、コア・サーバは、機能性の少なくとも一部分をエッジ・サーバに任じ得る。クラウドベースのネットワーク環境は、プライベート(たとえば、単一の組織に制限される)でもよく、パブリック(たとえば、多数の組織に利用可能)、及び/又はその組合せ(たとえば、ハイブリッド・クラウド環境)でもよい。
クライアント・デバイスは、図15に関して本明細書に記載の例示的計算デバイス1500の構成要素、特徴、及び機能性のうちの少なくともいくつかを含み得る。実例として、及び制限ではなく、クライアント・デバイスは、パーソナル・コンピュータ(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 (20)
- 異なるタイプのセンサを使用してキャプチャされたセンサ・データにアクセスするステップと、
注釈場面のセットを構成するステップであって、前記セット内の少なくとも1つの注釈場面が、前記異なるタイプのセンサのうちの2つ以上のセンサのそれぞれからの前記センサ・データのフレームを含み、構成するステップが、前記異なるタイプのセンサのうちの2つ以上のセンサからの前記センサ・データを整列させる1つ又は複数の時間的オフセットの表現に少なくとも基づく、ステップと、
グラウンド・トゥルース注釈で前記注釈場面に注釈を付けるための複数の注釈タスクの表現を、ラベル付けツールによって生成するステップと、
前記複数の注釈タスクのうちの少なくとも1つの注釈タスクのための入力を、前記ラベル付けツールを使用して受け付けるステップであって、前記入力が、前記少なくとも1つの注釈タスクによって定義される前記グラウンド・トゥルース注釈のセットで前記注釈場面のセットからの1つ又は複数の注釈場面に注釈を付ける、受け付けるステップと、
前記グラウンド・トゥルース注釈の前記セットの表現をエクスポートするステップと
を含む、方法。 - 前記異なるタイプのセンサが、LiDARセンサ及びカメラを含み、前記1つ又は複数の時間的オフセットの前記表現が、LiDARスピンが前記カメラの視野内であるとき、前記LiDARセンサの前記LiDARスピンの開始に対する遅延を含む、請求項1に記載の方法。
- 前記異なるタイプのセンサが、LiDARセンサ及び1つ又は複数のカメラを含み、前記複数の注釈タスクが、
前記注釈場面のセット内のカメラ・フレームの注釈を含む第1の注釈タスクと、
前記注釈場面のセット内のLiDARフレームの、2次元空間における注釈を含む第2の注釈タスクと、
前記注釈場面のセット内の複数の注釈場面において現れる注釈のリンク設定を含む第3の注釈タスクと
を含む、請求項1に記載の方法。 - 前記複数の注釈タスクがさらに、
前記注釈場面のセット内の前記LiDARフレームの、3次元空間における注釈を含む第4の注釈タスクと、
前記注釈場面のセット内の任意の特定の注釈場面においてLiDARフレーム及びカメラ・フレームの両方において現れる注釈のリンク設定を含む第5の注釈タスクと
を含む、請求項3に記載の方法。 - 前記複数の注釈タスクが、異なるタイプの物体の注釈又は異なるレベルの注釈詳細を別個の注釈タスクへと分割する、請求項1に記載の方法。
- 前記ラベル付けツールによって、前記複数の注釈タスクのうち特定の注釈タスクの間の前記注釈場面のセット内の特定の注釈場面について、前記特定の注釈タスクの間の前記注釈場面のセット内の先行する注釈場面の注釈の先行するセットで注釈のセットを初期化するステップをさらに含む、請求項1に記載の方法。
- 前記注釈場面のセット内の特定の注釈場面が、第1のタイプのセンサからの前記センサ・データの第1のフレーム及び第2のタイプのセンサからの前記センサ・データの第2のフレームを含み、前記方法が、前記ラベル付けツールによって、
前記第1のフレームの一部分と前記第2のフレームの一部分との対応を、前記第1のフレームの前記一部分の座標から前記第2のフレームの前記一部分の座標へと情報を投影することによって識別するステップと、
前記対応の視覚化の提示を引き起こすステップと
をさらに含む、請求項1に記載の方法。 - 前記注釈場面のセット内の特定の注釈場面が、第1のタイプのセンサからの前記センサ・データの第1のフレーム及び第2のタイプのセンサからの前記センサ・データの第2のフレームを含み、前記方法が、前記ラベル付けツールによって、
入力プローブによって識別される前記第1のフレームの一部分を決定するステップと、
前記第1のフレームの前記一部分の座標を前記第2のフレームの対応する一部分の座標へと投影するステップと、
前記第2のフレームの前記対応する一部分の視覚化を引き起こすステップと
をさらに含む、請求項1に記載の方法。 - 前前記ラベル付けツールによって、前記少なくとも1つの注釈タスクの間に物体ごとの手順をウォーク・スルーするステップをさらに含み、前記物体ごとの手順が、前記複数の注釈タスクのうちの前の注釈タスクの間に受信された、前記注釈場面のセットのうちの注釈場面の少なくとも1つの注釈について、
前記注釈場面内の前記注釈のズームインされたビューの提示を引き起こすステップと、
前記注釈を調節又は確認する入力を促す及び受け付けるステップと
を含む、請求項1に記載の方法。 - 前記ラベル付けツールによって、
前記ラベル付けツールの1つ又は複数のラベル付けインターフェースにおいて前記少なくとも1つの注釈タスクについて、前記注釈場面に対して反復処理するステップと、
前記異なるタイプのセンサのうちの前記2つ以上のセンサのそれぞれからの前記センサ・データの前記フレームの提示を引き起こしながら、前記少なくとも1つの注釈場面について、前記少なくとも1つの注釈タスクによって定義される前記グラウンド・トゥルース注釈の対応するセットを識別する入力を促す及び受け付けるステップと
をさらに含む、請求項1に記載の方法。 - キャプチャ・セッションの間にキャプチャされたセンサ・データにアクセスすることであって、前記センサ・データが、LiDARセンサからのLiDARフレーム及び少なくとも1つのカメラからのカメラ・フレームを含む、アクセスすることと、
特定のLiDARフレームと特定のカメラ・フレームとの間の時間的オフセットの表現に少なくとも基づいて、注釈場面のセットを構成することであって、前記注釈場面のセット内の特定の注釈場面が、前記LiDARフレームのうちの前記特定のLiDARフレーム及び前記カメラ・フレームのうちの前記特定のカメラ・フレームを含む、構成することと、
ラベル付けツールによって、グラウンド・トゥルース注釈で前記注釈場面のセット内の前記注釈場面に注釈を付けるための複数の注釈タスクの表現を生成することと、
前記ラベル付けツールを使用して、前記複数の注釈タスクのうちの少なくとも1つの注釈タスクのための入力を受け付けることであって、前記入力が、前記少なくとも1つの注釈タスクによって定義される前記グラウンド・トゥルース注釈のセットで前記注釈場面のセット内の前記注釈場面のうちの1つ又は複数に注釈を付ける、受け付けることと、
前記グラウンド・トゥルース注釈のセットの表現をエクスポートすることと
を行うための1つ又は複数の回路を備える、プロセッサ。 - 前記時間的オフセットの前記表現が、LiDARスピンが前記少なくとも1つのカメラの視野内にあるとき、前記LiDARスピンの開始に関連する遅延を含む、請求項11に記載のプロセッサ。
- 前記複数の注釈タスクが、
前記注釈場面のセット内の前記カメラ・フレームのセットの注釈を含む第1の注釈タスクと、
前記注釈場面のセット内の前記LiDARフレームのセットの、2次元空間における注釈を含む第2の注釈タスクと、
前記注釈場面のセット内の複数の注釈場面において現れる注釈のリンク設定を含む第3の注釈タスクと
を含む、請求項11に記載のプロセッサ。 - 前記1つ又は複数の回路がさらに、前記複数の注釈タスクのうちの特定の注釈タスクの間の前記注釈場面のセット内の少なくとも1つの注釈場面について、前記特定の注釈タスクの間の前記注釈場面のセット内の先行する注釈場面の注釈の先行するセットで注釈のセットを初期化するためのものである、請求項11に記載のプロセッサ。
- 前記1つ又は複数の回路がさらに、
前記特定のLiDARフレームの座標から前記特定のカメラ・フレームの座標へと情報を投影することによって前記特定のLiDARフレームの一部分と前記特定のカメラ・フレームの一部分との対応を識別し、
前記対応の視覚化の提示を引き起こすためのものである、
請求項11に記載のプロセッサ。 - 前記1つ又は複数の回路がさらに、
入力プローブによって識別される前記特定のLiDARフレームの一部分を決定し、
前記特定のLiDARフレームの前記一部分の座標を前記特定のカメラ・フレームの対応する一部分の座標へと投影し、
前記特定のカメラ・フレームの前記対応する一部分の視覚化を引き起こすためのものである、
請求項11に記載のプロセッサ。 - 前記1つ又は複数の回路がさらに、前記少なくとも1つの注釈タスクの間の物体ごとの手順に対して反復処理するためのものであり、前記物体ごとの手順が、前記複数の注釈タスクのうちの前の注釈タスクの間に受信された注釈場面の少なくとも1つの注釈について、
前記注釈場面内の前記注釈のズームインされたビューの提示を引き起こすことと、
前記注釈を調節又は確認する入力を促す及び受け付けることと
を含む、請求項11に記載のプロセッサ。 - 1つ又は複数の処理ユニットと、
前記1つ又は複数の処理ユニットによって実行されるとき、前記1つ又は複数の処理ユニットに動作を実行させる命令を記憶する1つ又は複数のメモリ・ユニットとを備え、前記動作が、
ラベル付けツールによって、注釈場面のセットにグラウンド・トゥルース注釈で注釈を付けるための複数の注釈タスクの表現を生成することであって、前記注釈場面のセット内の少なくとも1つの注釈場面が、異なるタイプのセンサからのセンサ・データの整列させられたフレームを含む、生成することと、
前記ラベル付けツールを使用して、前記複数の注釈タスクのうちの少なくとも1つの注釈タスクについて、
前記ラベル付けツールの1つ又は複数のラベル付けインターフェースにおいて前記注釈場面のセットに対して反復処理すること、及び、
前記異なるタイプのセンサのうちの2つ以上のセンサからのセンサ・データの前記整列させられたフレームのセットの提示を引き起こしならが、前記少なくとも1つの注釈場面についての入力を受け付けることであって、前記入力が、前記少なくとも1つの注釈タスクによって定義される前記グラウンド・トゥルース注釈のセットを識別する、受け付けることを行うことと、
前記グラウンド・トゥルース注釈の前記セットの表現をエクスポートすることとを含む、システム。 - 特定の注釈場面が、第1のタイプのセンサからの前記センサ・データの第1のフレーム及び第2のタイプのセンサからの前記センサ・データの第2のフレームを含み、前記動作がさらに、前記ラベル付けツールによって、
前記第1のフレームの一部分の座標から前記第2のフレームの一部分の座標へと情報を投影することによって前記第1のフレームの前記一部分と前記第2のフレームの前記一部分との対応を識別することと、
前記対応の視覚化の提示を引き起こすことと
を含む、請求項18に記載のシステム。 - 前記システムが、
自律又は半自律マシンのための制御システム、
自律又は半自律マシンのための知覚システム、
シミュレーション動作を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
1つ又は複数の仮想マシン(VM)を組み込むシステム、
データ・センタにおいて少なくとも部分的に実装されるシステム、或いは、
クラウド計算資源を使用して少なくとも部分的に実装されるシステム
のうちの少なくとも1つに含まれる、請求項18に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/187,350 US20220277193A1 (en) | 2021-02-26 | 2021-02-26 | Ground truth data generation for deep neural network perception in autonomous driving applications |
US17/187,350 | 2021-02-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022132075A true JP2022132075A (ja) | 2022-09-07 |
Family
ID=82799371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021202139A Pending JP2022132075A (ja) | 2021-02-26 | 2021-12-14 | 自律運転アプリケーションにおけるディープ・ニューラル・ネットワーク知覚のためのグラウンド・トゥルース・データ生成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220277193A1 (ja) |
JP (1) | JP2022132075A (ja) |
CN (1) | CN114973050A (ja) |
DE (1) | DE102022104026A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11068742B2 (en) * | 2019-10-30 | 2021-07-20 | Scenera, Inc. | Curation of custom workflows using multiple cameras |
WO2022271750A1 (en) * | 2021-06-21 | 2022-12-29 | Cyngn, Inc. | Three-dimensional object detection with ground removal intelligence |
CN115619960A (zh) * | 2021-07-15 | 2023-01-17 | 北京小米移动软件有限公司 | 图像处理的方法、装置及电子设备 |
EP4407482A1 (en) * | 2023-01-24 | 2024-07-31 | Volvo Car Corporation | Training and operating an object detecting system for a vehicle |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018213338A1 (en) * | 2017-05-15 | 2018-11-22 | Ouster, Inc. | Augmenting panoramic lidar results with color |
US11644834B2 (en) * | 2017-11-10 | 2023-05-09 | Nvidia Corporation | Systems and methods for safe and reliable autonomous vehicles |
US20190346842A1 (en) * | 2018-05-11 | 2019-11-14 | Honeywell International Inc. | Transferring annotations to images captured by remote vehicles between displays |
US10747224B2 (en) * | 2018-06-19 | 2020-08-18 | Toyota Research Institute, Inc. | Debugging an autonomous driving machine learning model |
US11393097B2 (en) * | 2019-01-08 | 2022-07-19 | Qualcomm Incorporated | Using light detection and ranging (LIDAR) to train camera and imaging radar deep learning networks |
US20220012518A1 (en) * | 2020-07-08 | 2022-01-13 | Here Global B.V. | Method and apparatus for presenting object annotation tasks |
US11769006B2 (en) * | 2020-07-15 | 2023-09-26 | Adobe Inc. | Parsing and reflowing infographics using structured lists and groups |
-
2021
- 2021-02-26 US US17/187,350 patent/US20220277193A1/en active Pending
- 2021-12-14 JP JP2021202139A patent/JP2022132075A/ja active Pending
-
2022
- 2022-02-21 DE DE102022104026.7A patent/DE102022104026A1/de active Pending
- 2022-02-24 CN CN202210173371.4A patent/CN114973050A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022104026A1 (de) | 2022-09-01 |
US20220277193A1 (en) | 2022-09-01 |
CN114973050A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11688181B2 (en) | Sensor fusion for autonomous machine applications using machine learning | |
JP2022546397A (ja) | 自律運転アプリケーションのためのマップ作成及びローカリゼーション | |
JP2022538813A (ja) | 自律マシン・アプリケーションのための交差点領域検出及び分類 | |
JP2023507695A (ja) | 自律運転アプリケーションのための3次元交差点構造予測 | |
WO2021041854A1 (en) | Object detection and classification using lidar range images for autonomous machine applications | |
JP2023503729A (ja) | 自律運転アプリケーションのための曲線適合を使用するランドマーク検出 | |
JP2021089723A (ja) | LiDAR知覚のためのマルチビュー・ディープ・ニューラル・ネットワーク | |
JP2023509831A (ja) | 自律マシン・アプリケーションにおける車線変更プランニング及び制御 | |
JP2022536030A (ja) | ビデオ分析アプリケーションにおける相関フィルタを使用した複数物体追跡 | |
US12039663B2 (en) | 3D surface structure estimation using neural networks for autonomous systems and applications | |
JP2023031237A (ja) | 自律マシン・アプリケーションのためのLiDARデータを使用する物体追跡 | |
US11954914B2 (en) | Belief propagation for range image mapping in autonomous machine applications | |
US20220277193A1 (en) | Ground truth data generation for deep neural network perception in autonomous driving applications | |
US20230213945A1 (en) | Obstacle to path assignment for autonomous systems and applications | |
US20230135088A1 (en) | 3d surface reconstruction with point cloud densification using deep neural networks for autonomous systems and applications | |
US12100230B2 (en) | Using neural networks for 3D surface structure estimation based on real-world data for autonomous systems and applications | |
US11840238B2 (en) | Multi-view geometry-based hazard detection for autonomous systems and applications | |
US20230136235A1 (en) | 3d surface reconstruction with point cloud densification using artificial intelligence for autonomous systems and applications | |
US20230406315A1 (en) | Encoding junction information in map data | |
JP2023088849A (ja) | 自律型システム及びアプリケーションにおける特徴ディスクリプタ・マッピングを使用した単一及びアクロス・センサ物体追跡 | |
US20220340149A1 (en) | End-to-end evaluation of perception systems for autonomous systems and applications | |
JP2023071168A (ja) | 自律マシン・アプリケーションのための粒子ベース危険検出 | |
US20230298361A1 (en) | Image to world space transformation for ground-truth generation in autonomous systems and applications | |
JP2023001859A (ja) | 駐車に適した車両進路計画立案の並列処理 | |
JP2022117916A (ja) | 自律マシン・アプリケーションのための配備されたディープ・ニューラル・ネットワークのパッチ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240912 |