JP2023503827A - アップサンプリング、損失、および損失均衡による深度データモデルトレーニング - Google Patents
アップサンプリング、損失、および損失均衡による深度データモデルトレーニング Download PDFInfo
- Publication number
- JP2023503827A JP2023503827A JP2022527901A JP2022527901A JP2023503827A JP 2023503827 A JP2023503827 A JP 2023503827A JP 2022527901 A JP2022527901 A JP 2022527901A JP 2022527901 A JP2022527901 A JP 2022527901A JP 2023503827 A JP2023503827 A JP 2023503827A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- data
- loss
- machine learning
- difference
- 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
- 238000012549 training Methods 0.000 title abstract description 76
- 238000013499 data model Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 117
- 238000009499 grossing Methods 0.000 claims abstract description 19
- 238000010801 machine learning Methods 0.000 claims description 167
- 230000009471 action Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 51
- 230000004807 localization Effects 0.000 description 24
- 230000015654 memory Effects 0.000 description 23
- 238000004422 calculation algorithm Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 16
- 230000008447 perception Effects 0.000 description 15
- 230000011218 segmentation Effects 0.000 description 14
- 230000001953 sensory effect Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000005259 measurement Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010238 partial least squares regression Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012628 principal component regression Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000013488 ordinary least square regression Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 230000003936 working memory Effects 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
画像データに基づいて深度データを決定するためにMLモデルをトレーニングする技術が本明細書で説明される。トレーニングは立体画像データと深度データ(例えば、lidarデータ)とを使用できる。第1の(例えば左)画像は、予測された視差および/または深度データを出力できるMLモデルに入力できる。予測された視差データを第2の画像データ(例えば右画像)と共に使用し第1の画像を再構築できる。第1のおよび再構築された画像の差を使用し損失を決定できる。損失は、ピクセル、平滑化、構造的類似性、および/または一貫性損失を含み得る。さらに、深度データと予測された深度データの差および/または予測された視差データと予測された深度データの差を決定でき、MLモデルは、様々な損失に基づいてトレーニングできる。従って、技術は、自己教師ありトレーニングおよび教師ありトレーニングを使用しMLモデルをトレーニングできる。
Description
[関連出願の相互参照]
本特許出願は、2019年11月14日に出願されたシリアル番号16/684,568を有する「DEPTH DATA MODEL TRAINING WITH UPSAMPLING, LOSSES, AND LOSS BALANCING」と題する米国実用特許出願の優先権を主張し、2019年11月14日に出願されたシリアル番号16/684,554を有する「DEPTH DATA MODEL TRAINING」と題する米国実用特許出願の優先権を主張する。出願シリアル番号16/684,568および16/684,554は、参照により本明細書に完全に組み込まれる。
本特許出願は、2019年11月14日に出願されたシリアル番号16/684,568を有する「DEPTH DATA MODEL TRAINING WITH UPSAMPLING, LOSSES, AND LOSS BALANCING」と題する米国実用特許出願の優先権を主張し、2019年11月14日に出願されたシリアル番号16/684,554を有する「DEPTH DATA MODEL TRAINING」と題する米国実用特許出願の優先権を主張する。出願シリアル番号16/684,568および16/684,554は、参照により本明細書に完全に組み込まれる。
車両は、センサを使用してセンサデータをキャプチャし、環境内のオブジェクトを検出できる。正確かつ精密なセンサデータは、例えば、自律車両が環境を横断するのを支援できる。いくつかの例では、センサは、限られた範囲を有し、および/または環境に関連付けられた低密度のデータを提供し得る。
詳細な説明は、添付の図面を参照して説明される。図面において、参照番号の最も左の数字は、その参照番号が最初に現れる図面を識別する。異なる図面における同じ参照番号の使用は、類似または同一のコンポーネントまたは機能を示す。
本開示は、画像データに基づいて深度データを決定するために機械学習モデルをトレーニングするためのシステム、方法、および装置を説明する。トレーニングは、立体画像データおよび深度データ(例えば、lidarデータ)に基づくことができる。完全にトレーニングされた場合、機械学習モデルは、画像データ(例えば、単一の画像)を受信でき、画像内のピクセルに関連付けられた予測された深度情報を出力できる。立体画像のペアの左画像と右画像との間のシーンの差に基づく立体画像を使用して、機械学習モデルをトレーニングできる。例えば、第1の画像(例えば、左画像)を、予測された深度データを出力できる機械学習モデルに入力できる。予測された深度データを第2の画像データ(例えば、右画像)と組み合わせて使用して、第1の画像を再構築できる。第1の画像と再構築された第1の画像との間の差を使用して損失を決定できる。損失の例は、ピクセル損失、平滑化損失、構造的類似性損失、および/または一貫性損失を含むが、これらに限定されない。さらに、深度データ(例えば、グランドトゥルース深度を表す)と予測された深度データとの間の差を決定でき、機械学習モデルを本明細書で説明される損失に基づいてトレーニングできる。従って、技術は、自己教師ありトレーニング(例えば、立体画像に基づく)および教師ありトレーニング(例えば、深度データに基づく)を使用して、機械学習モデルをトレーニングできる。
機械学習モデルは、ピクセル損失、平滑化損失、構造的類似性損失、一貫性損失(例えば、左/右一貫性損失、深度/視差損失など)などを含むがこれらに限定されない様々な損失に少なくとも部分的に基づいてトレーニングされ得る。様々な損失の詳細は本開示を通して説明される。
いくつかの例では、本明細書で説明される技術は、ピクセル損失を決定することを含むことができる。例えば、動作は、左画像データ内のピクセルと再構築された左画像データ内の対応するピクセルとの間の差を決定することを含むことができる。いくつかの例では、ピクセル損失は、対応するピクセル間の強度値(例えば、R、G、B値)の差を表すことができる。理解できるように、動作は、右画像データ内のピクセルと再構築された右画像データ内の対応するピクセル(例えば、環境の同じ部分を表すピクセル)との間の差を決定することを含むことができる。いくつかの例では、ピクセル損失が閾値を上回る場合、これは、画像データ内のピクセルが再構築された画像データ内のピクセルに対応しないことを示し得(例えば、閉塞に起因して)、そのケースにおいては、特定のピクセルに関連付けられたピクセル損失をトレーニングの目的のために無視できる。
いくつかの例では、本明細書で説明される技術は平滑化損失を決定することを含むことができる。例えば、動作は、本明細書で説明される損失を決定する前、後、または組み合わせて、画像のパッチの平均化を実行することを含むことができる。いくつかの例では、平滑化損失を、画像データ内で検出されたエッジに基づいて重みを下げることができる。いくつかの例では、平滑化損失を単一の画像に関して評価できる。
いくつかの例では、本明細書で説明される技術は構造的類似性損失を決定することを含むことができる。例えば、動作は、第1の画像および再構築された第1の画像のパッチまたは領域を比較することを含むことができる。パッチの平均RGB値を決定し、第1のパッチからの(例えば、第1の画像からの)データを第2のパッチからの(例えば、再構築された第1の画像からの)データと比較するなど、様々なパッチ上で動作を実行できる。いくつかの例では、構造的類似性損失は、対応する第1および第2のパッチにおけるエッジまたは不連続部の位置および/または存在を比較することを含むことができる。従って、構造的類似性損失は、それぞれの画像の一般的なレイアウトまたは構造に関する情報を決定することができ、ここで、パッチ間の差は損失を表すことができる。
いくつかの例では、本明細書で説明される技術は一貫性損失を決定することを含むことができる。例えば、本明細書で説明される技術を使用して、再構築された第1の画像(例えば、右画像データおよび第1の予測された深度情報に基づく再構築された左画像)および再構築された第2の画像(例えば、左画像データおよび第2の予測された深度情報に基づく再構築された右画像)を決定できる。一貫性損失(例えば、左/右一貫性損失)を再構築された第1の画像と再構築された第2の画像との間の差に基づいて決定できる。
いくつかの例では、一貫性損失は、機械学習モデルの異なる出力ヘッドからのデータ間の一貫性を強制できる。例えば、機械学習モデルの第1の出力ヘッドは、本明細書で説明される自己教師技術に基づいて(例えば、画像ベースの教師(supervision)に基づいて)、視差データ、予測された深度データ、および/または逆予測された深度データを出力できる。いくつかの例では、機械学習モデルの第2の出力ヘッドは、本明細書で説明される完全教師技術に基づいて(例えば、lidarベース(または深度データベース)の教師(supervision)に基づいて)深度データを出力できる。一貫性損失は、第1の出力ヘッドによって出力される深度情報(または視差情報)が第2の出力ヘッドによって出力される深度情報と一貫するように、2つまたは複数の出力間の一貫性を強制できる。出力間の差を、機械学習モデルがトレーニングされるときに出力間の差を最小化するための損失として使用できる。
いくつかの例では、構造的類似性損失および/または一貫性損失は、データのピクセルまたはパッチに関連付けられた分類情報に少なくとも部分的に基づくことができる。例えば、構造的類似性および/または一貫性を、同じ分類を有するパッチまたはピクセル、または他のセグメンテーション情報の間でのみ強制できる。
いくつかのケースでは、機械学習モデルは様々な予測された深度データを出力できる。例えば、機械学習モデルは、深度データ、逆深度データ、視差データなどを出力できる。いくつかの例では、深度データおよび/または逆深度データは、原点(例えば、画像センサまたは深度センサに関連付けられた位置)と環境内のオブジェクト(いくつかの例では、ピクセル座標を通過する原点からの光線に沿って決定され得る)との間の測定値を表すことができる。いくつかの例では、視差データは、第1の画像(例えば、左画像)と第2の画像(例えば、右画像)との間のピクセル(またはデータ要素)の水平方向のシフトを表すことができる。いくつかの例では、視差データは、立体画像センサに関連付けられた内因性および/または外因性情報によって深度データに関連できる。
いくつかの例では、機械学習モデルは、別々に深度データおよび視差データを決定できる。上述のように、およびいくつかの例では、深度データと視差データとの間の差を決定でき、これは、様々な予測されたデータ間の一貫性を強制するために一貫性損失(例えば、深度/視差一貫性損失)を表すことができる。
いくつかの例では、機械学習モデルの出力は、離散的な出力を表すことができる、または連続的な出力値を表すことができる。例えば、機械学習モデルは、画像データに関連付けられた離散的な深度部分/ビンを決定できる。そのようなビンは、深度、逆深度、視差、または深度の任意の他の表現のいずれかにおいて、直線的または非直線的であり得る。いくつかの例では、機械学習モデルは、連続的な出力として連続的な深度値を出力できる(例えば、機械学習モデルは、そのようなビニング動作を実行することなく、10.65メートルの深度値を出力できる)。従って、連続オフセットは、離散的な深度ビンが使用されているかどうかにかかわらず、深度値間の段階的な移行を提供できる。少なくともいくつかの例では、ビニングおよびオフセットの組み合わせが使用され得る(例えば、モデルは、(ビンの「中心」から測定され得るように)細かいオフセットに加えて、ビンの「粗い」測定値を出力し得る)。いくつかの例では、機械学習アルゴリズムは深度ビンに関連付けられた損失関数および/またはソフトマックス損失を使用して、連続オフセットを決定できる。
いくつかの例では、機械学習モデルの態様は、第1の解像度または詳細のレベルにて特徴マップを決定すること、次いで、特徴マップをアップサンプリングして、様々なレベルで異なる情報を決定すること、を含むことができる。いくつかの例では、特徴マップは、機械学習モデルのエンコーダ部分またはデコーダ部分などの、機械学習モデルの一部の中間出力に対応し得る。いくつかの例では、本技術は、ローカル平面ガイダンスに基づいて1つまたは複数の特徴マップをアップサンプリングすることを含むことができ、これは、アップサンプリング用の方向および/または大きさに関連付けられたユニットベクトルを予測することを含むことができる。いくつかの例では、ローカル平面ガイダンスは、バイリニアアップサンプリング技術とは対照的に、形状ベースのアップサンプリング技術(例えば、球、平面、または他の形状を使用してアップサンプリングする)の例であり得る。
いくつかの例では、損失のいずれかは、L1損失(平均絶対エラー)、L2損失(平均二乗エラー)、尤度損失、ログ損失、クロスエントロピー損失、ヒンジ損失、ヒューバー損失などを表すことができる。
いくつかの例では、本明細書で説明される技術は、損失バランシングを使用して、機械学習モデルをトレーニングするための損失を、組み合わせる、集約する、またはそうでなければ決定することができる。例えば、ピクセル損失、平滑化損失、構造的類似性損失、左/右一貫性損失、深度/視差一貫性損失などの本明細書で説明される様々な損失を、損失バランシング技術を使用して組み合わせて、トレーニング(例えば、機械学習モデルを通じたバックプロパゲーション)のための「最終」損失を決定できる。いくつかの例では、損失を、1つまたは複数の重みに少なくとも部分的に基づいて組み合わせるまたは集約することができる。いくつかの例では、トレーニング動作の態様として、重みを学習できる。いくつかの例では、そのような学習は等分散性に基づくことができる。いくつかの例では、等分散性は、様々な損失に関連付けられた不確実性に少なくとも部分的に基づいて、損失に関連付けられた1つまたは複数の重みを決定し得る。
機械学習モデルをトレーニングするためのグランドトゥルースとしてトレーニング画像データとトレーニングlidarデータを使用して、機械学習モデルをトレーニングできる。従って、本明細書で説明される技術は、教師なしトレーニング、自己教師ありトレーニング、半教師ありトレーニング、完全教師ありトレーニング、またはそれらの任意の組合せを含み得る。機械学習モデルをトレーニングする追加の例は、例えば、「Dense Depth Estimation of Image Data」と題され、2017年11月03日に出願された米国特許出願第15/803,682号に見出すことができ、その全体が参照により本明細書に組み込まれる。いくつかの例では、トレーニング画像データは、トレーニングlidarデータと比較して、より高い解像度で、またはより高い密度のデータを表すデータを含むことができる。例示のみの目的のために、トレーニング画像データは、各々が数百万ピクセルを有する3つのチャネル(例えば、赤、緑、青)からのデータを含むことができ、一方、トレーニング画像データに対応するトレーニングlidarデータは、数十万点、またはそれ未満のオーダーを含むことができる。従って、トレーニング画像データと対応するトレーニングlidarデータの量との間の差に基づいて、画像データの特定のピクセルが対応するlidar測定値を有し得ないことを理解することができる。いくつかの例では、本明細書で説明される動作は、トレーニング画像データの個々のピクセルのうちのいくつかまたはすべてが深度データに関連付けられることができるように、画像データに対応する深度データ(例えば、単深度データ)を提供できる。
いくつかの例では、例えば、RGBデータに対応する3つのチャネル、lidar(または他の深度データ)が特定のピクセルに対して利用可能であるかどうかを示すバイナリ表示(例えば、バイナリチャネル)に対応する1つのチャネル、および/または特定のピクセルに関連付けられた深度測定値に対応できる1つのチャネルを含む追加のデータのチャネルを使用して、機械学習アルゴリズムをトレーニングできる。いくつかの例では、深度測定値をグランドトゥルースと見なすことができ、ここで、トレーニングされている機械学習モデルは深度データを決定して、グランドトゥルースおよび生成された深度データとの間の差を最小化できる。理解できるように、任意の数のチャネルおよび/またはデータのタイプを、機械学習モデルをトレーニングするために、および展開された機械学習アルゴリズムへの入力として使用できる。いくつかの例では、バイナリチャネルを省略できる。
トレーニングされた機械学習モデルを、単一の画像センサからのデータから深度データを生成するために送信すること、またはそうでなければ実装することができる。すなわち、トレーニングされた機械学習モデルは、入力として画像データを受信し得、画像データの一部または全てのピクセルに関連付けられた深度データを出力し得る。いくつかの例では、深度データを後続の処理のために格納できる。例えば、自律車両のいくつかのアプリケーションまたはシステムは、深度データを、ローカライゼーション、知覚(例えば、環境内のオブジェクトの検出、識別、セグメンテーション、分類、トラッキングなど)、相対的深度データ生成などのために使用できる。理解できるように、これらの用途は例であり、そのような例および深度データまたは測定された深度データの使用は限定を意図していない。画像ベースの深度データを決定し、使用する追加の例は、例えば、「Depth from Vision」と題され、2019年5月9日に出願された米国特許出願第16/408,407号に見出すことができ、その全体が参照により本明細書に組み込まれる。
いくつかの例では、画像ベースのセグメンテーション技術を使用し、動的オブジェクトを除去して、トレーニング動作を改善できる。例えば、画像ベースのセグメンテーション技術を使用して、画像データ内に表される動的オブジェクトに関連付けられたデータを識別および除去/破棄でき、それによって、残りのデータは環境内の静的オブジェクトを表すことができる。機械学習モデルによって予測される視差データが、環境内のオブジェクトの移動ではなく、立体画像センサ構成に基づくことができるように、例えば、動的オブジェクト(例えば、車両、歩行者、自転車乗り、動物、デブリなど)に関連付けられた深度データを画像データから除外できる。Lidarベースのセグメンテーション技術を使用して、例えば、機械学習モデルのトレーニングを目的として、動的オブジェクトに関連付けられたデータを識別および除去する/破棄もできる。
上記で紹介したように、車両は、機械学習モデルによって生成された深度データを使用して、知覚動作を含む動作を実行して、例えば、他の動作の中で、環境のオブジェクトを検出、識別、セグメント化、分類、および/または追跡できる。いくつかの例では、深度データを使用して、オブジェクトに関連付けられた3次元バウンディングボックス(または、そうでなければ、マスク)を生成できる。
いくつかの例では、本明細書で説明される技術は、画像センサ(例えば、赤緑色(RGB)カメラ、強度カメラ(グレースケール)、赤外線カメラ、紫外線カメラなど)、深度カメラ(例えば、RGB-Dカメラ)、飛行時間センサ(time-of-flight sensor)、lidarセンサ、radarセンサ、sonarセンサ、などを含むシステムに実装され、ハードウェアまたはソフトウェアの障害の場合に、システムに冗長性を提供できる。例えば、深度カメラ、lidarセンサ、および/またはradarセンサが閉塞される、または機能不全を起こしている場合、本明細書で説明される技術を画像センサと共に使用して、冗長性および/またはバックアップを提供し、密度の高い深度情報を多くの状況下で利用可能にできること確実にすることができる。従って、本明細書で説明される技術は、例えば、マシンビジョンシステムにさらなる改善を提供できる。
本明細書に記載の深度データ生成技術は、後続の動作を実行して自律車両(または他のシステム)を制御するための追加の深度データを提供することによって、コンピューティングデバイスの機能を改善できる。例えば、画像データに関連付けられた深度データは、ローカライゼーション、知覚(例えば、検出、識別、セグメンテーション、分類、追跡など)、ルートプランニング、軌道生成などの後続のプロセスをより正確に実行することを可能にしでき、必要とされる処理能力をより少なくし得る、および/または必要とされるメモリをより少なくし得る。例えば、いくつかの例では、自律車両の軌道を生成することにおいて、より速いおよび/またはより正確なセグメンテーションを使用でき、これは、自律車両の乗員の安全性を改善できる。さらに、いくつかの例では、本明細書で説明される技術を、センサの較正を検証するために使用でき、センサ測定値が不正確であるかどうかを決定するためにエラーチェックまたは投票を提供でき(例えば、深度測定値を別の深度センサと比較することによって)、および/または他のセンサが閉塞または無効である場合のフォールバックとして使用できる。いくつかの例では、そのような自己教師および教師技術(共に、半教師ありトレーニングを含み得る)を使用して機械学習モデルをトレーニングすることは、これらの技術なしでトレーニングされたモデルよりも正確な深度推定値を出力し得る機械学習モデルを提供する。コンピュータの機能に対するこれらおよび他の改善について、本明細書で説明される。
本明細書で説明される技術は、多くの手法に実装できる。例示的な実施形態は、下記の図面を参照して以下に提供される。自律車両のコンテキストで説明されるが、本明細書で説明される方法、装置、およびシステムは、様々なシステム(例えば、センサシステム、またはロボットプラットフォーム)に適用でき、自律車両に限定されない。一例では、同様の技術をドライバーの制御する車両において利用し得、そのようなシステムは、様々な操作を実行することが安全であるか否かの表示を提供し得る。別の例では、本技術を、製造組立ラインのコンテキスト、航空測量のコンテキスト、または航海のコンテキストにおいて、利用できる。さらに、本明細書で説明される技術は、リアルデータ(例えば、センサを用いてキャプチャされる)、シミュレートデータ(例えば、シミュレーターによって生成される)、またはその2つの任意の組み合わせで使用できる。
図1は、立体画像データ、深度データ、および様々な損失に基づく機械学習モデルのトレーニングの例示的なプロセスの図解フロー図100である。
動作は、立体画像センサ102から画像データをキャプチャおよび/または受信することを含むことができる。例えば、立体画像センサ102は、環境の右画像104および左画像106をキャプチャできる。右画像104および左画像106に例示されるように、画像データは、自律車両が横断している環境を表すことができる。
動作は、lidarセンサ108(lidarセンサ108とも称される)から深度データをキャプチャおよび/または受信することをさらに含むことができる。例えば、lidarセンサ108は、右画像104および/または左画像106によって表される環境の少なくとも一部を表す深度データ110をキャプチャできる。いくつかの例では、lidarセンサ108を、センサが環境の同じ部分をキャプチャするように、立体画像センサ102と組み合わせて整列および/または較正できる。いくつかの例では、深度データは、lidarセンサによってキャプチャされた深度データに加えて、またはその代わりに、飛行時間センサによってキャプチャされ得る。
上述のように、右画像104および/または左画像106は、環境を表す数百万のRGBピクセルを表すことができる。立体画像センサ102は、センサが少なくとも部分的に重複する視野をキャプチャする左画像センサおよび右画像センサ(例えば、図2に示すように)を含むことができる。いくつかの例では、lidarセンサ108は、左画像センサまたは右画像センサに関連付けられた視野の少なくとも一部に対応する環境の少なくとも一部をキャプチャできる。いくつかの例では、画像データは、異なる方向に関連付けられた様々な画像センサによってキャプチャされ得る。すなわち、本明細書で説明される技術は、立体画像センサに限定されず、いくつかの共通の可視性を共有するマルチビューの幾何学形状を有する画像センサを含み得る。
右画像104および左画像106に対応する画像データ、ならびに深度データ110を、機械学習コンポーネント112をトレーニングするために機械学習コンポーネント112に入力できる。本明細書で説明されるように、機械学習コンポーネント112をトレーニングして、入力画像データに基づいて最終的に深度データを出力できる。いくつかの例では、機械学習コンポーネント112を様々なコンポーネント114に少なくとも部分的に基づいてトレーニングできる。いくつかの例では、そのようなコンポーネント114は、本明細書で説明されるように、様々な損失コンポーネントおよび/またはアーキテクチャコンポーネントを表し得る。
例えば、コンポーネント114は、限定ではないが、ピクセルごとの損失(ピクセル損失とも呼ばれる)の1つまたは複数、平滑化損失コンポーネント、構造的類似性損失コンポーネント、一貫性損失コンポーネント(例えば、左/右一貫性、深度/視差一貫性、エッジベースの一貫性、セグメンテーションベースの一貫性など)、スケーリングコンポーネント、順序回帰コンポーネント、L2損失コンポーネント、損失バランシングコンポーネント、ローカル平面ガイダンスコンポーネント(a local planar guidance component)、等分散性コンポーネント、などを含むことができる。前述のコンポーネントの追加の詳細は、上記および本開示を通して説明される。
機械学習コンポーネント112をトレーニングすると、機械学習コンポーネント112を使用して、画像データ(例えば、単一の画像センサからの画像データ)に基づいて環境の深度データを決定できる。そのような深度データは、環境を横断する自律車両と関連して使用できる。いくつかの例では、深度データを後続の処理のために格納できる。例えば、自律車両のいくつかのアプリケーションまたはシステムは、深度データを、ローカライゼーション、知覚(例えば、環境内のオブジェクトの検出、識別、セグメンテーション、分類、追跡など)、相対的深度データ生成などのために使用できる。理解できるように、これらの用途は例であり、そのような例および深度データまたは測定された深度データの使用は限定を意図していない。
図2は画像データと再構築された画像データとの差に基づいて損失を決定することに基づいて機械学習モデルをトレーニングする例示的なプロセスの図解フロー図200である。
動作は、本明細書で説明されるように、立体画像センサによってキャプチャされた画像データをキャプチャおよび/または受信することを含むことができる。例えば、第1の画像センサ202(例えば、立体画像センサの対の左画像センサ)は、環境の左画像106をキャプチャできる。第2の画像センサ204(例えば、立体画像の対の右画像センサ)は、環境の右画像104をキャプチャできる。左画像106は、第1の画像センサ202に関連付けられた視野206を表すことができ、一方で、右画像104は、第2の画像センサ204に関連付けられた視野208を表すことができる。視野の少なくとも一部は、重複部分210として図示されるように、重複できる。理解できるように、視野206および208の少なくとも一部は重複しなくてもよい。
次に、左画像106を、図1の機械学習コンポーネント112に対応し得る機械学習コンポーネント212に入力できる。図2は機械学習コンポーネント212に入力されている左画像106を示すが、動作は、図3に関連して説明されるように、ならびに本開示を通じて、右画像104を機械学習コンポーネントに左画像106の入力と直列または並行して入力することを含むことができる。
いくつかの例では、動作は、左画像106および右画像104内の対応する点がピクセルの同じ行内にあるように、左画像106および右画像104を修正することを含むことができる。いくつかの例では、画像データを修正することは、視差および/またはワーピング動作を決定するための動作を単純化できる。
機械学習コンポーネント212は、左画像106に少なくとも部分的に基づいて、予測された逆深度データ214を決定できる。いくつかの例では、機械学習コンポーネント212は、深度データ、視差データなどを出力できる。いくつかの例では、予測された逆深度データ214は、計算の効率のための逆深度値を表すことができる。
動作は、予測された逆深度データ214および右画像104を逆ワーピングコンポーネント216に入力することを含むことができる。逆ワーピングコンポーネント216は、予測された逆深度データ214に基づいて、ならびに内部カメラパラメータ(例えば、レンズ歪み、焦点距離など)および/または外部カメラパラメータ(例えば、個々の画像センサおよび立体画像センサの姿勢(例えば、方向)など)に基づいて、右画像104をワーピングする機能を含むことができる。例えば、予測された逆深度データ214、右画像104、およびカメラ固有情報が与えられると、逆ワーピングコンポーネント216は、点間の視差を決定し、その視差を使用して再構築された左画像218を決定できる。
再構築された左画像218および左画像106を損失コンポーネント220に入力して、左画像106と再構築された左画像218との間の異または損失を決定できる。いくつかの例では、右画像104が左画像106と重複しないエリアは、再構築された左画像218についてのヌルデータをもたらすことができる。そのようなヌルデータを領域222として表すことができ、これはトレーニングのための損失を決定するときに重みを下げられる、または除外され得る。
本明細書で説明されるように、損失コンポーネント220は、機械学習コンポーネント212をトレーニングするための様々な損失を決定できる。例えば、損失成分は、ピクセル損失、平滑化損失、構造的類似性損失、一貫性損失などを決定できる。
いくつかの例では、動作は、左画像データに基づいて再構築された右画像を生成することと、左画像データに基づいて予測された逆深度データ(または予測された視差データ)を生成することとを含み得る(逆もまた同様である)。
図3は、立体画像データに関連付けられた損失に基づいて機械学習モデルをトレーニングする例示的なプロセスの図解フロー図300である。図3の態様は、図1および図2に関連して説明した1つまたは複数のコンポーネントによって実行でき、これは、明確性のために省略できる。
例えば、動作は、左画像106をキャプチャまたは受信し、予測された逆深度データ302(例えば、左画像106に基づく)を決定することを含むことができる。さらに、動作は、右画像104をキャプチャまたは受信し、予測された逆深度データ304(例えば、右画像104に基づく)を決定することを含むことができる。予測される深度データを決定することは、技術的許容範囲内で、直列または並列で実行できる。
動作は、図2で上述したように、予測された逆深度データ302および右画像104に基づいて、再構築された左画像306を決定することをさらに含むことができる。さらに、動作は、本明細書で説明されるように、予測された逆深度データ304および左画像106に基づいて、再構築された右画像308を決定することを含むことができる。
1つまたは複数の損失(例えば、損失310)を、再構築された左画像306および左画像106に少なくとも部分的に基づいて決定できる。いくつかの例では、損失310は、ピクセル損失、平滑化損失、構造的類似性損失、一貫性損失(例えば、左/右の一貫性、エッジベースの一貫性、セグメンテーションベースの一貫性など)のうちの1つまたは複数を表すことができる。いくつかの例では、一貫性損失(例えば、左/右の一貫性損失)は、画像データおよび再構築された画像データ内のピクセル間の合計またはそうでなければ集約された差を表すことができる。いくつかの例では、一貫性損失は、再構築された画像(例えば、再構築された左画像306および再構築された右画像308)間の差に対応できる。
同様に、1つまたは複数の損失(例えば、損失312)を、再構築された右画像308および右画像104に少なくとも部分的に基づいて決定できる。いくつかの例では、損失312のカテゴリ/タイプは、損失310に実質的に対応できる。
損失310および312を、組み合わして、合計して、またはそうでなければ集約して、損失314を決定できる。本明細書で説明される機械学習モデルを損失314に少なくとも部分的に基づいてトレーニングできる。
図4は、自己教師出力および教師出力に関連付けられた損失に基づいて機械学習モデルをトレーニングする例示的なプロセスの図解フロー図400である。
上述したように、トレーニング動作は、立体画像センサによってキャプチャされた画像データ(例えば、右画像104および左画像106として表される)をキャプチャおよび/または受信することを含むことができる。トレーニング動作は、深度データ110(例えば、1つまたは複数のlidarセンサおよび/または飛行時間センサによってキャプチャされた)をキャプチャおよび/または受信することをさらに含むことができる。右画像104、左画像106、および深度データ110を、機械学習コンポーネント402に入力できる。
いくつかの例では、機械学習コンポーネント402は、ニューラルネットワーク、畳み込みニューラルネットワーク、再帰型ニューラルネットワークなどを含むことができる。いくつかの例では、機械学習コンポーネント402は、それぞれ図1および図2で説明した機械学習コンポーネント112および212に対応できる。
機械学習コンポーネント402は、画像データ(例えば、右画像104および/または左画像106)および/または深度データ110に少なくとも部分的に基づいて、1つまたは複数の特徴マップを決定できる。いくつかの例では、機械学習コンポーネント402は、1つまたは複数の特徴マップをアップサンプリングコンポーネント404に出力できる。いくつかの例では、アップサンプリングコンポーネント404は、機械学習コンポーネント402とは別個のコンポーネントであってもよく、または機械学習コンポーネント402に組み込まれてもよい。いくつかの例では、アップサンプリングコンポーネント404は、機械学習モデルのデコーダ部分を表してもよく、またはその一部であってもよい。
いくつかの例では、アップサンプリングコンポーネントは、ローカル平面ガイダンスに少なくとも部分的に基づいて、1つまたは複数の特徴マップを様々な解像度レベルにアップサンプリングし得る。いくつかの例では、ローカル平面ガイダンスは、アップサンプリングのための個々のピクセルまたは特徴の方向および/または大きさに関連付けられた単位ベクトルを予測する機能を含むことができる。
機械学習コンポーネント402および/またはアップサンプリングコンポーネント404は、出力406を決定することができ、これは、自己教師出力408(例えば、逆深度マップ、視差、深度など)および/または教師出力410(例えば、深度など)を含み得る。
いくつかの例では、自己教師出力408は、本明細書で説明されるように、再構築された画像データに関連して決定された損失に少なくとも部分的に基づくことができる。
いくつかの例では、教師出力410は、予測された深度データをグランドトゥルースデータとして深度データ110と比較することに少なくとも部分的に基づくことができる。
いくつかの例では、機械学習コンポーネント402は、自己教師出力408および教師出力410を出力するためにニューラルネットワークの別個の出力ヘッドを含み得る。出力406を損失コンポーネント412に入力して、データに基づいて様々な損失を決定し得る。
例えば、損失コンポーネント412は、一貫性損失および/または損失バランシングを決定できる。例えば、一貫性損失は、自己教師出力408(例えば、視差データとして表される)と教師出力410(例えば、深度データとして表される)との間の差を決定できる。このような一貫性損失は、深度/視差一貫性損失と呼ぶことができる。
いくつかの例では、一貫性損失を片側的であることができ(例えば、自己教師出力に関連付けられた第1の損失を決定するためのグランドトゥルースとして教師出力を使用する、または教師出力に関連付けられた第2の損失を決定するためのグランドトゥルースとして自己教師出力を使用する)、または一貫性損失を両側的であることができる(例えば、自己教師出力に関連付けられた第1の損失を決定するためのグランドトゥルースとして教師出力を使用し、教師出力に関連付けられた第2の損失を決定するためのグランドトゥルースとして自己教師出力を使用し、第1の損失および第2の損失に基づいて第3の損失を決定する)。いくつかの例では、一貫性損失は、エッジベースの一貫性損失(例えば、画像と再構築された画像との間のエッジに基づく一貫性)またはセグメンテーションベースの一貫性損失(例えば、データの分類間またはデータ間のインスタンスセグメンテーションの一貫性)とすることができる。
いくつかの例では、教師ありトレーニングに関連付けられた損失(例えば、グランドトゥルースを表すlidarデータに基づいて)は、順序回帰に少なくとも部分的に基づくことができる。いくつかの例では、順序回帰に基づく損失は、エラーとグランドトゥルースの値との間の差に比例する、または関連することができる。
損失コンポーネント412は、損失バランシングのための機能性をさらに含むことができる。例えば、動作は、ピクセル損失、平滑化損失、構造的類似性損失、一貫性損失などの様々な損失を決定することを含むことができる。そのような損失を合計または集約して、するための集約された損失を決定して、トレーニングのために機械学習コンポーネント402を通してバックプロパゲートできる。いくつかの例では、損失を、各損失に関連付けられた重みおよび/または不確実性に従って合計できる。いくつかの例では、重みをトレーニングプロセスの一部として学習できる。いくつかの例では、損失に関連付けられた重みを、等分散性に少なくとも部分的に基づいて決定できる。
図5は、本明細書で説明する技術を実装するための例示的なシステム500のブロック図を示す。少なくとも1つの例では、システム500は、車両502を含むことができる。図示された例示的なシステム500では、車両502は自律車両であるが、車両502は任意の他のタイプの車両とすることができる。
車両502は、米国国民高速道路交通安全局によって発行されるレベル5分類に従って動作するよう構成された自律車両などの無人運転車両とするこができ、これは、ドライバー(または乗員)が車両を常時制御することを期待することなく、全行程のすべての安全上重要な機能を実行することが可能な車両を説明している。そのような例では、車両502は、すべての駐車機能を含む、行程の開始から完了までのすべての機能を制御するよう構成されることができるため、ドライバーならびに/またはステアリングホイール、アクセルペダル、および/もしくはブレーキペダルのような車両502を駆動するための制御を含まなくてよい。これは単なる例であり、本明細書で説明するシステムおよび方法を、ドライバーが常に手動で制御する必要がある車両から、部分的または完全に自律的に制御されているものまでを含む任意の地上、空中、または水上車両に組み込み得る。
車両502は、1つまたは複数のコンピューティングデバイス504、1つまたは複数のセンサシステム506、1つまたは複数のエミッタ508、1つまたは複数の通信接続部510(通信デバイスおよび/またはモデムとも呼ばれる)、少なくとも1つの直接接続部512(例えば、車両502と物理的に結合してデータを交換する、および/または電力を供給するための)、および1つまたは複数の駆動システム514を含むことができる。1つまたは複数のセンサシステム506は、環境に関連付けられたセンサデータをキャプチャするように構成できる。
1つまたは複数のセンサシステム506は、飛行時間センサ、位置センサ(GPS、コンパスなど)、慣性センサ(慣性測定装置(IMU)、加速度計、磁力計、ジャイロスコープなど)、lidarセンサ、radarセンサ、sonarセンサ、赤外線センサ、カメラ(RGB、IR、強度、深度など)、マイクセンサ、環境センサ(温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサー、ホイールエンコーダなどを含むことができる。1つまたは複数のセンサシステム506は、センサのこれらのまたは他のタイプのそれぞれの複数のインスタンスを含むことができる。例えば、飛行時間センサは、車両502の角、前部、後部、側部、および/または上部に配置された個々の飛行時間センサを含むことができる。別の例として、カメラセンサは車両502の外部および/または内部のさまざまな位置に配置された複数のカメラを含むことができる。1つまたは複数のセンサシステム506は、コンピューティングデバイス504に入力を提供できる。
車両502はまた、光および/または音を放出するための1つまたは複数のエミッタ508を含むことができる。この例における1つまたは複数のエミッタ508は、車両502の乗客と通信するための内部オーディオおよびビジュアルエミッタを含む。限定ではなく例として、内部エミッタは、スピーカー、ライト、標識、ディスプレイ画面、タッチスクリーン、触覚エミッタ(例えば、振動および/またはフォースフィードバック)、機械式アクチュエータ(例えば、シートベルトテンショナ、シートポジショナ、ヘッドレストポジショナなど)などを含むことができる。この例の1つまたは複数のエミッタ508はまた、外部エミッタを含む。限定ではなく例として、この例示の外部エミッタは、走行の方向または車両の作動の他のインジケータ(例えば、インジケータライト、標識、ライトアレイなど)を信号で送るためのライト、および音響ビームステアリング技術を備え得る1つまたは複数の歩行者または他の近くの車両と音声で通信するための1つまたは複数のオーディオエミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)を含む。
車両502はまた、車両502と1つまたは複数の他のローカルまたはリモートコンピューティングデバイス(例えば、リモートテレオペレーションコンピューティングデバイス)またはリモートサービスとの間の通信を可能にする1つまたは複数の通信接続部510を含むことができる。例えば、1つまたは複数の通信接続部510は車両502および/または1つまたは複数の駆動システム514上の他のローカルコンピューティングデバイスとの通信を容易にできる。また、1つまたは複数の通信接続部510は、車両502が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能にできる。
1つまたは複数の通信接続部510は、コンピューティングデバイス504を別のコンピューティングデバイスまたは1つまたは複数の外部ネットワーク534(例えば、インターネット)に接続するための物理的および/または論理的インターフェースを含むことができる。例えば、1つまたは複数の通信接続部510は、IEEE802.11規格によって定義された周波数を介するようなWi-Fiベースの通信、Bluetoothなどの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4GLTE、5Gなど)、衛星通信、専用狭域通信(DSRC)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースで接続することを可能にする任意の適切な有線または無線通信プロトコルを可能にできる。
少なくとも1つの例では、車両502は、1つまたは複数の駆動システム514を含むことができる。いくつかの例では、車両502は、単一の駆動システム514を有することができる。少なくとも1つの例では、車両502が複数の駆動システム514を有する場合、個々の駆動システム514は車両502の両端部(例えば前部および後部など)に位置できる。少なくとも1つの例では、駆動システム514は駆動システム514および/または車両502の周辺のコンディションを検出する1つまたは複数のセンサシステム506を含むことができる。限定ではなく例として、センサシステム506は、駆動システムのホイールの回転を感知するための1つまたは複数のホイールエンコーダ(例えばロータリーエンコーダー)、駆動システムの方向と加速度を測定するための慣性センサ(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラまたはその他の画像センサ、駆動システムの周囲のオブジェクトを音響的に検出するための超音波センサ、lidarセンサ、radarセンサなど、を含むことができる。一部のセンサ、ホイールエンコーダなど、は駆動システム514に固有とすることができる。いくつかのケースでは、駆動システム514上のセンサシステム506は、車両502の対応するシステム(例えば、センサシステム506)と重複または補完できる。
駆動システム514は、高電圧バッテリー、車両を推進するモーター、バッテリーからの直流を他の車両システムで使用するための交流に変換するインバーター、ステアリングモーターおよびステアリングラックを含むステアリングシステム(電動とすることができる)、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し制御を維持するブレーキ力分散用の安定性制御システム、HVACシステム、照明(例えば車両の外部環境を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば冷却システム、安全システム、車載充電システム、DC/DCコンバーター、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどのその他の電装コンポーネント)を含む多くの車両システムを含むことができる。さらに、駆動システム514は、センサシステム506からデータを受信および前処理し、様々な車両システムの動作を制御できる駆動システムコントローラを含むことができる。いくつかの例では、駆動システムコントローラは、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサと通信可能に結合されたメモリを含むことができる。メモリは駆動システム514の様々な機能を実行する1つまたは複数のコンポーネントを格納できる。さらに、駆動システム514はまた、それぞれの駆動システムによる1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続部を含む。
コンピューティングデバイス504は、1つまたは複数のプロセッサ516および1つまたは複数のプロセッサ516と通信可能に結合されたメモリ518を含むことができる。図示の例では、コンピューティングデバイス504のメモリ518は、ローカライゼーションコンポーネント520、機械学習コンポーネント524を備える知覚コンポーネント522、予測コンポーネント526、計画コンポーネント528、マップコンポーネント530、および1つまたは複数のシステムコントローラ532を格納する。例示の目的でメモリ518内に存在するものとして示されているが、ローカライゼーションコンポーネント520、知覚コンポーネント522、機械学習コンポーネント524、予測コンポーネント526、計画コンポーネント528、マップコンポーネント530、および1つまたは複数のシステムコントローラ532は、追加的にまたは代替的に、コンピューティングデバイス504(例えば、車両502の異なるコンポーネントに格納されている)にアクセス可能である、および/または車両502(例えば、遠隔に格納されている)にアクセス可能であることができる、ことが企図される。
コンピューティングデバイス504のメモリ518において、ローカライゼーションコンポーネント520はセンサシステム506からデータを受信して、車両502の位置を決定する機能を含むことができる。例えば、ローカライゼーションコンポーネント520は、環境の3次元マップを含み、および/または要求/受信でき、マップ内の自律車両の位置を継続的に決定できる。いくつかの例では、ローカライゼーションコンポーネント520は、SLAM(ローカリゼーションとマッピングの同時実行)またはCLAMS(キャリブレーション、ローカリゼーションとマッピングの同時実行)を使用し、飛行時間データ、画像データ、lidarデータ、radarデータ、sonarデータ、IMUデータ、GPSデータ、ホイールエンコーダデータ、またはそれらの任意の組み合わせなどを受信して、自律車両の位置を正確に決定できる。いくつかの例では、本明細書で説明されるように、ローカライゼーションコンポーネント520は車両502の様々なコンポーネントにデータを提供して、軌道を生成するための自律車両の初期位置を確定できる。
上述したように、ローカライゼーションコンポーネント520は、機械学習モデルコンポーネント524によって生成された深度データを使用して、上述した動作を実行して、車両502の位置を決定できる。深度データは、3次元マップ(例えば、メッシュ)と比較するためのローカルマップを提供できる。いくつかの例では、ローカライゼーションコンポーネント520は、ローカルマップ、3次元マップ、および/または1つまたは複数のセンサシステム506に関連付けられたエラーを決定する機能を提供できる。例えば、ローカライゼーションコンポーネント520は車両502に関連付けられた位置エラー(例えば、ドリフトエラー)を決定できる。動作中の時間が経つにつれて、エラーが蓄積され、位置決めおよび/または軌道データにおけるエラーをもたらし得る。いくつかの例では、ローカライゼーションコンポーネント520は、例えば、位置エラーが閾値を満たす、または超えることに基づいてエラーを決定できる。いくつかの例では、ローカライゼーションコンポーネント520は、位置エラーに基づいて、1つまたは複数のセンサシステム506に関連付けられた較正調整を決定できる。
例示のみを目的として、ローカライゼーションコンポーネント520は、1つまたは複数のセンサシステム506からのGPSデータに基づいて車両の位置を決定できる。しかし、ローカルマップの比較は、車両がGPSデータによって示される位置とは異なる位置にあることを示す可能性がある。従って、ローカライゼーションコンポーネント520は、GPSセンサおよび/またはローカルマップにエラーが存在することを示すことができる。
いくつかの例では、ローカライゼーションコンポーネント520は3次元マップに関連付けられた更新を決定できる。例示のみを目的として、1つまたは複数のセンサシステム506は、ローカライゼーションコンポーネント520に位置データを提供できる。加えて、ローカライゼーションコンポーネント520は、ローカルマップと3次元マップとの比較に基づいて位置を決定できる。しかし、比較は、ローカルマップの1つまたは複数の点が3次元マップに対応しないことを示す可能性がある。これは、3次元マップが古いことを示すことができる。ローカライゼーションコンポーネント520は、ローカルマップと3次元マップとの間の差を更新されたマップとして決定し、マップの更新を格納する、または例えば、ネットワーク534を介してマップのデータサーバにマップの更新を提供できる。
知覚コンポーネント522は、オブジェクトの検出、セグメンテーション、および/または分類を実行するための機能を含むことができる。いくつかの例では、知覚コンポーネント522は、車両502に近接するエンティティの存在および/またはエンティティタイプ(例えば、車、歩行者、自転車乗り、建物、木、路面、縁石、歩道、不明など)としてのエンティティの分類を示す処理済みセンサデータを提供できる。追加および/または代替の例では、知覚コンポーネント522は、検出されたエンティティおよび/またはエンティティが位置する環境に関連付けられた1つまたは複数の特性を示す処理済みセンサデータを提供できる。いくつかの例では、エンティティに関連付けられた特性は、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、オリエンテーション、エンティティタイプ(分類など)、エンティティの速度、エンティティの範囲(サイズ)などを含むことができるが、これらに限定されない。環境に関連付けられた特性は、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、暗闇/光の表示などを含むことができるが、これらに限定されない。
上述のように、知覚コンポーネント522は、知覚アルゴリズムを使用して、センサデータに基づいて環境内のオブジェクトに関連付けられた知覚ベースのバウンディングボックスを決定できる。例えば、知覚コンポーネント522は、画像データを受信および画像データを分類して、オブジェクトが画像データ内に表されていることを決定できる。次いで、検出アルゴリズムを使用して、知覚コンポーネント522は、2次元バウンディングボックスおよび/またはオブジェクトに関連付けられた知覚ベースの3次元バウンディングボックスを生成できる。知覚コンポーネント522はさらに、オブジェクトに関連付けられた3次元バウンディングボックスを生成できる。上述したように、3次元バウンディングボックスは、オブジェクトに関連付けられた位置、方向、姿勢、および/またはサイズ(例えば、長さ、幅、高さなど)などの追加情報を提供できる。
知覚コンポーネント522は、知覚コンポーネント522によって生成された知覚データを格納するための機能を含むことができる。いくつかの例では、知覚コンポーネント522は、オブジェクトタイプとして分類されているオブジェクトに対応するトラックを決定できる。例示のみを目的として、センサシステム506を使用する知覚コンポーネント522は、環境の1つまたは複数の画像をキャプチャできる。センサシステム506は、歩行者などのオブジェクトを含む環境の画像をキャプチャできる。歩行者は、時間Tにおいて第1の位置に、時間T+tにおいて第2の位置にいることができる(例えば、時間Tの後の時間tのスパン中の移動)。換言すれば、歩行者は、この期間中に第1の位置から第2の位置まで移動できる。そのような移動を、例えば、オブジェクトに関連付けられた格納された知覚データとしてログに記録できる。
格納された知覚データは、いくつかの例では、車両によってキャプチャされた融合した知覚データを含むことができる。融合した知覚データは、画像センサ、lidarセンサ、radarセンサ、飛行時間センサ、sonarセンサ、全地球測位システムセンサ、内部センサ、および/またはこれらの任意の組み合わせなどのセンサシステム506からのセンサデータの融合または他の組み合わせを含むことができる。格納された知覚データは、追加的または代替的に、センサデータに表されるオブジェクト(例えば、歩行者、車両、建物、路面など)の意味分類を含む分類データを含むことができる。格納された知覚データは、追加的または代替的に、環境を通る動的オブジェクトとして分類されるオブジェクトの動きに対応するトラックデータ(位置、方向、センサ特徴など)を含むことができる。トラックデータは、経時的に複数の異なるオブジェクトの複数のトラックを含むことができる。このトラックデータをマイニングして、オブジェクトが止まっている(例えば、静止している)または移動している(例えば、歩行、走行など)時に、特定のタイプのオブジェクト(例えば、歩行者、動物など)の画像を識別できる。この例では、コンピューティングデバイスは、歩行者に対応するトラックを決定する。
知覚コンポーネント522は機械学習コンポーネント524を含むことができ、これは、本明細書で説明される技術に従ってトレーニングされ、画像データに基づいて深度データを決定できる。いくつかの例では、機械学習コンポーネント524は、画像データ(例えば、単一の画像フレーム)を受信する機能を含むことができ、画像データ内の各ピクセルに関連付けられた深度データを出力できる。いくつかのケースでは、機械学習コンポーネント524は、1つまたは複数の他のセンサが機能していないコンポーネントである場合に、バックアップコンポーネントとして機能することができ、いくつかの例では、機械学習コンポーネント524は、本明細書で説明されるように、ローカライゼーションコンポーネント520、知覚コンポーネント522、予測コンポーネント526、および/または計画コンポーネント528の深度データの主要なソースとして機能できる。
予測コンポーネント526は、環境内の1つまたは複数のオブジェクトの可能な位置の予測確率を表す1つまたは複数の確率マップを生成できる。例えば、予測コンポーネント526は、車両502からの閾値距離内の車両、歩行者、動物などについての1つまたは複数の確率マップを生成できる。いくつかの例では、予測コンポーネント526は、オブジェクトのトラックを測定し、観測されたおよび予測された挙動に基づいて、離散化された予測確率マップ、ヒートマップ、確率分布、離散化された確率分布、および/またはオブジェクトについての軌道を生成できる。いくつかの例では、1つまたは複数の確率マップは、環境内の1つまたは複数のオブジェクトの意図を表すことができる。
計画コンポーネント528は、環境を通り横断するために車両502が辿る経路を決定できる。例えば、計画コンポーネント528は、様々なルートおよび経路ならびに様々なレベルの詳細を決定できる。いくつかの例では、計画コンポーネント528は、第1の位置(例えば、現在の位置)から第2の位置(例えば、目標の位置)へ進行するためのルートを決定できる。この説明を目的に、ルートは2つの位置の間を走行するための一連の経由地点にできる。非限定的な例示として、経由地点は、道路、交差点、全地球測位システム(GPS)の座標などを含む。さらに、計画コンポーネント528は、第1の位置から第2の位置へのルートの少なくとも一部に沿って自律車両をガイドするための命令を生成できる。少なくとも1つの例において、計画コンポーネント528は、自律車両を一連の経由地点の第1の経由地点から一連の経由地点の第2の経由地点までどのようにガイドすべきかを決定できる。いくつかの例では、命令は経路または経路の一部とすることができる。いくつかの例では、複数の経路をreceding horizon技術に従って、実質的に同時に(すなわち、技術的許容差内で)生成できる。最も高い信頼水準を有する後退データ範囲内の複数の経路の単一の経路を、車両を動作させるために選択し得る。
他の例では、計画コンポーネント528は、代替的にまたは追加的に、知覚コンポーネント522および/または予測コンポーネント526からのデータを使用して、車両502が環境を通り横断するために辿る経路を決定できる。例えば、計画コンポーネント528は、環境に関連付けられたオブジェクトに関して、知覚コンポーネント522および/または予測コンポーネント526からデータを受信できる。このデータを使用して、計画コンポーネント528は、環境内のオブジェクトを回避する、第1の位置(例えば、現在の位置)から第2の位置(例えば、目標の位置)まで移動するルートを決定できる。少なくともいくつかの例では、そのような計画コンポーネント528は、そのような衝突のない経路がないと決定し、次に、車両502をすべての衝突を回避するおよび/またはそうでなければ損傷を軽減する、安全な停止へ導く経路を提供し得る。
メモリ518は、環境内をナビゲートするために車両502によって使用できる1つまたは複数のマップ530をさらに含むことができる。この説明の目的上、マップは、限定しないが、トポロジ(交差点のような)、通り、山脈、道路、地形、および一般的な環境などの環境についての情報を提供可能である2次元、3次元、またはN次元でモデル化された任意の数のデータ構造とすることができる。いくつかの例では、マップは、テクスチャ情報(例えば、色情報(例えば、RGB色情報、ラボ色情報、HSV/HSL色情報)など)、強度情報(例えば、LIDAR情報、RADAR情報など)、空間情報(例えば、メッシュに投影された画像データ、個々の「サーフェル」(例えば、個々の色および/または強度に関連付けられたポリゴン))、反射率情報(例えば、鏡面反射率情報、再帰反射率情報、BRDF情報、BSSRDF情報など)を含むことができるが、これらに限定されない。1つの例では、マップは、環境の3次元メッシュを含むことができる。いくつかの例では、マップの個々のタイルが環境の個別の部分を表すように、マップをタイルフォーマットで格納でき、本明細書で説明するように、必要に応じて作業メモリにロードできる。少なくとも1つの例では、1つまたは複数のマップ530は、少なくとも1つのマップ(例えば、画像および/またはメッシュ)を含むことができる。いくつかの例では、車両502は、マップ530に少なくとも部分的に基づいて制御できる。すなわち、マップ530を、ローカライゼーションコンポーネント520、知覚コンポーネント522、機械学習コンポーネント524、予測コンポーネント226、および/または計画コンポーネント528に関連して使用して、車両502の位置を決定する、環境内のオブジェクトを識別する、オブジェクトおよび/または車両502に関連付けられた予測確率を生成する、および/または環境内でナビゲートするための経路および/または軌道を生成することができる。
いくつかの例では、1つまたは複数のマップ530は、ネットワーク534を介してアクセス可能なリモートコンピューティングデバイス(コンピューティングデバイス536など)に格納できる。いくつかの例では、複数のマップ530は、例えば、特性(例えば、エンティティのタイプ、時刻、曜日、季節など)に基づいて格納できる。複数のマップ530を格納することは同様のメモリ要件を有することができるが、マップ内のデータにアクセスできる速度を増加できる。
少なくとも1つの例では、コンピューティングデバイス504は1つまたは複数のシステムコントローラ532を含むことができ、これは、車両502のステアリング、推進、ブレーキ、安全性、エミッタ、通信、および他のシステムを制御するように構成できる。これらのシステムコントローラ532は、駆動システム514の対応するシステムおよび/または車両502の他のコンポーネントと通信する、および/または制御することができ、これらは、計画コンポーネント528から提供される経路に従って動作するように構成され得る。
車両502は、ネットワーク534を介してコンピューティングデバイス536に接続でき、1つまたは複数のプロセッサ538および1つまたは複数のプロセッサ538と通信可能に結合されたメモリ540を含むことができる。少なくとも1つの例において、1つまたは複数のプロセッサ538はプロセッサ516に類似でき、メモリ540はメモリ518に類似できる。図示の例では、コンピューティングデバイス536のメモリ540は、画像データコンポーネント544、深度データコンポーネント546、機械学習コンポーネント548、逆ワーピングコンポーネント550、アップサンプリングコンポーネント552、および損失コンポーネント554を含むトレーニングコンポーネント542を格納する。少なくとも1つの例では、機械学習コンポーネント548は、トレーニング後、機械学習コンポーネント524に類似できる。説明のためにメモリ540に存在するものとして示されているが、トレーニングコンポーネント542、画像データコンポーネント544、深度データコンポーネント546、機械学習コンポーネント548、逆ワーピングコンポーネント550、アップサンプリングコンポーネント552、および損失コンポーネント554は、追加的にまたは代替的に、コンピューティングデバイス536(例えば、コンピューティングデバイス536の異なるコンポーネントに格納されている)にアクセス可能、および/またはコンピューティングデバイス536(例えば、遠隔に格納されている)にアクセス可能であることができる、ことが企図される。
本明細書で説明されるように、トレーニングコンポーネント542は、機械学習コンポーネント548をトレーニングして、画像データに基づいて深度データを生成できる。トレーニングコンポーネント542は、機械学習コンポーネント548への入力としてトレーニングデータを決定できる。例えば、トレーニングデータは、車両によってキャプチャされるトレーニング画像データなどのセンサデータを含むことができる。いくつかの例では、画像データは、修正された画像データおよび/または合成画像データとすることができる。加えて、トレーニングデータは、グランドトゥルースデータとして、lidarデータ、飛行時間データ、および/またはradarデータなどのセンサデータを含むことができる。
いくつかの例では、画像データコンポーネント544は、立体画像センサによってキャプチャされた画像データを受信する機能を含むことができる。いくつかの例では、画像データコンポーネント544は、歪みを除去することおよび/または画像を互いに対して修正することなどによって、トレーニングのために画像データを前処理できる。歪みの例は、レンズ歪み、色補正などを含み得る。画像データを補正する例は、第1の画像データ内のピクセルが第2の画像データ内の対応するピクセルと同じ行になるように画像データを整列させることを含み得る。
いくつかの例では、深度データコンポーネント546は、1つまたは複数のlidarセンサ、飛行時間センサ、radarセンサなどによってキャプチャされた深度データを受信する機能を含むことができる。いくつかの例では、深度データコンポーネント546は、深度データの対応する点が立体画像データの左画像データおよび/または右画像データ内の特定のピクセルに関連付けられるように、画像データに対して深度データを整列または登録できる。
機械学習コンポーネント548は、トレーニングコンポーネント542によって提供されるトレーニングデータ(例えば、画像データコンポーネント544および/または深度データコンポーネント546によって提供される)を使用して、機械学習モデルをトレーニングして、トレーニング画像データに関連付けられた深度データを決定できる。機械学習コンポーネント548がトレーニングされると、機械学習コンポーネント548を(トレーニングされた)機械学習コンポーネント524として、車両502内に展開できる。
いくつかの例では、逆ワーピングコンポーネント550は、推定された深度データ(例えば、機械学習コンポーネントによって出力された)に基づいて、および第2の画像データに基づいて、再構築された第1の画像を生成またはそうでなければ決定する機能を含むことができる。例えば、逆ワーピングコンポーネント550は、予測された深度データに少なくとも部分的に基づいて、水平走査線(a horizontal scan line)に沿って第2の画像からピクセルをシフトして、再構築された第1の画像を生成できる。
いくつかの例では、アップサンプリングコンポーネント552は、機械学習コンポーネントによって出力される1つまたは複数の特徴マップをアップサンプリングする機能を含むことができる。いくつかの例では、アップサンプリングコンポーネント552は、ローカル平面ガイダンス(LPG)に基づくことができる。いくつかの例では、アップサンプリングコンポーネント552を機械学習モデルのデコーダ部分に含むことができるまたは別個のコンポーネントとすることができる。
いくつかの例では、損失コンポーネント554は、本明細書で説明されるように、自己教師および/または教師損失を決定する機能を含むことができる。損失は、ピクセル損失、平滑化損失、構造的類似性損失、一貫性損失(例えば、左/右の一貫性損失、深度/視差一貫性損失、エッジベースの一貫性損失、セグメンテーションベースの一貫性損失など)を含み得るが、これらに限定されない。いくつかの例では、損失のいずれかは、L1損失(平均絶対誤差)、L2損失(平均二乗誤差)、尤度損失、ログ損失、クロスエントロピー損失、ヒンジ損失、ヒューバー損失などを表すことができる。種々の損失の詳細は本開示を通して論じられる。
コンピューティングデバイス504のプロセッサ516およびコンピューティングデバイス536のプロセッサ538は、本明細書で説明されるように、データを処理し動作を実施するための命令を実行可能な任意の適切なプロセッサとすることができる。限定ではなく例として、プロセッサ516および538は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、または電子データを処理して当該電子データをレジスタまたはメモリに格納できる他の電子データに変換する他の任意のデバイスまたはデバイスの一部を含むことができる。いくつかの例では、集積回路(例えば、ASICなど)、ゲートアレイ(例えば、FPGAなど)、および他のハードウェアデバイスはまた、それらが符号化された命令を実装するよう構成される限り、プロセッサと見なすことができる。
コンピューティングデバイス504のメモリ518およびコンピューティングデバイス536のメモリ540は、非一時的コンピュータ可読媒体の例である。メモリ518および540は、オペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納して、本明細書に記載の方法および様々なシステムに起因する機能を実装できる。様々な実装形態では、メモリ518および540を、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を格納可能な他の任意のタイプのメモリなど、任意の適切なメモリ技術を用いて実装できる。本明細書で説明されるアーキテクチャ、システム、および個々の要素は、多くの他の論理的、プログラム的、および物理的なコンポーネントを含むことができ、添付図面に図示されるそれらは、単に本明細書での説明に関連する例にすぎない。
いくつかの例では、本明細書で説明されるコンポーネントのうちのいくつかまたはすべての態様は、任意のモデル、アルゴリズムおよび/または機械学習アルゴリズムを含むことができる。例えば、いくつかの事例では、メモリ518および540内のコンポーネントは、ニューラルネットワークとして実装できる。
本明細書で説明するように、例示的なニューラルネットワークは、入力データを一連の接続された層に通して出力を生成する生物学的に着想を得たアルゴリズムである。ニューラルネットワークの各層はまた別のニューラルネットワークを含むことができる、または任意の数の層(畳み込みかどうかに関係なく)を含むこともできる。本開示のコンテキストで理解できるように、ニューラルネットワークは機械学習を利用でき、これは学習されたパラメータに基づいて出力が生成されるようなアルゴリズムの広範なクラスを指すことができる。
ニューラルネットワークのコンテキストで説明されるが、任意のタイプの機械学習を本開示と一致して使用できる。例えば、機械学習または機械学習アルゴリズムは、回帰アルゴリズム(例えば、通常最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、段階的回帰、多変量適応回帰スプライン(MARS)、局所的に推定される散布図の平滑化(LOESS)、インスタンスベースのアルゴリズム(例えば、リッジ回帰、最小絶対値縮小選択演算子(LASSO)、弾性ネット、最小角回帰(LARS)、決定木アルゴリズム(例えば、分類回帰木(CART)、反復二分法3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定切り株、条件付き決定木)、ベイジアンアルゴリズム(例えば、ナイーブベイズ、ガウスナイーブベイズ、多項式ナイーブベイズ、平均1依存性推定器(AODE)、ベイジアン信頼度ネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k平均法、kメジアン法、期待値最大化(EM)、階層的クラスタリング)、関連規則学習アルゴリズム(例えば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、動径基底関数ネットワーク(RBFN))、深層学習アルゴリズム(例えば、深層ボルツマンマシン(DBM)、深層信頼ネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層型オートエンコーダ)、次元削減アルゴリズム(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元スケーリング(MDS)、射影追跡法、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、フレキシブル判別分析(FDA))、アンサンブルアルゴリズム(例えば、ブースティング、ブートストラップ集約(バギング)、エイダブースト、階層型一般化(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰木(GBRT)、ランダムフォレスト)、SVM(サポートベクトルマシン)、教師あり学習、教師なし学習、半教師あり学習などを含むことができるが、これらに限定されない。
アーキテクチャの追加の例は、ResNet50、ResNet101、VGG、DenseNet、PointNetなどのニューラルネットワークを含む。
従って、本明細書で説明される技術は、画像データに基づいて環境の深度データを決定し、自律車両の安全な動作を可能にするための堅牢な実施形態を提供する。
図6および7は、本開示の例による例示的なプロセスを示す。これらのプロセスは論理フローグラフとして図示され、このそれぞれの動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実装できる一連の操作を表す。ソフトウェアのコンテキストにおいては、動作は1つまたは複数のコンピュータ可読記録媒体に格納されたコンピュータ実行可能命令を表し、コンピュータ実行可能命令は、1つまたは複数のプロセッサで実行されると、列挙した動作を実行する。一般に、コンピュータ実行可能命令は、特定の機能を実行する、または特定の抽象的データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載される順序は限定して解釈されることを意図しておらず、任意の数の記載される動作を任意の順序でおよび/または並行し結合して、プロセスを実施できる。
図6は、画像ベースの深度データを生成するための機械学習モデルをトレーニングするための例示的なプロセス600である。例えば、プロセス600の一部または全ては、本明細書に説明するように、図5の1つまたは複数のコンポーネントによって実行できる。例えば、プロセス600のいくつかまたは全ては、車両コンピューティングデバイス504によって実行できる。
動作602において、プロセスは、立体画像データおよび立体画像データに関連付けられた深度データを受信することを含むことができる。いくつかの例では、動作602は、車両が環境を横断するときに、1つまたは複数の自律車両によってキャプチャされた立体画像データおよび深度データを受信することを含むことができる。上述のように、いくつかの例では、環境の少なくとも一部は、立体の両方の画像の対の内に表される。さらに、いくつかの例では、深度データを立体画像データの少なくとも一部に関連付けて、グランドトゥルース深度値を提供できる。上述のように、いくつかの例では、画像データは、共視性を含む任意のマルチビューシステムによってキャプチャされてもよく、立体画像センサに限定されない。いくつかの例では、深度データを1つまたは複数のlidarセンサおよび/または1つまたは複数の飛行時間センサによってキャプチャできる。
動作604において、プロセスは、左画像データを機械学習(ML)モデルに入力することを含むことができる。いくつかの例では、機械学習モデルを、画像データに関連付けられた予測された深度情報を出力するように構成できる。いくつかの例では、本明細書で説明されるように、MLモデルに関連付けられた重みを、第1の時間にてランダム値で初期化でき、第1の時間の後の1つまたは複数の第2の時間で損失のバックプロパゲーションを介して調整できる。
動作606において、プロセスは、MLモデルから、左画像データに関連付けられた予測された深度情報を受信することを含むことができる。上述のように、予測された深度情報は、深度値(例えば、メートル単位)、逆深度値(例えば、1/メートル)、または視差データ(例えば、ある画像から別の画像へのピクセルの水平変位を測定することであり、当該ピクセルは両方の画像内の同じオブジェクトまたは点を表す)を含み得るが、これらに限定されない。いくつかの例では、MLモデルは、画像データの一部またはすべてのピクセルについて予測された深度情報を出力できる。
動作608において、プロセスは、予測された深度情報(動作606からの)および右画像データに少なくとも部分的に基づいて、再構築された左画像データを決定することを含むことができる。いくつかの例では、動作608は、予測された深度情報に基づいて右画像をワーピングして、再構築された左画像データを決定することを含むことができる。いくつかの例では、ワーピングを、アルゴリズム的に、または機械学習モデルによって実行できる。
動作610において、プロセスは、左画像データと再構築された左画像データとの間の第1の差を決定することを含むことができる。いくつかの例では、動作610は、ピクセル損失、平滑化損失(例えば、単一の画像に基づき得る)、構造的類似性損失、および/または一貫性損失(本明細書で説明される追加データに従う)を含むが、これらに限定されない1つまたは複数の損失を決定することを含むことができる。
理解できるように、動作604、606、608、および610は、入力として左画像データのコンテキストにおいて説明される。プロセス600は、右画像データに対する同様の動作を含むことができる。
動作612において、右画像データを機械学習(ML)モデルに入力することを含むことができるプロセスを、プロセスは含むことができる。動作612は、実施形態に応じて、上述した動作604と同様であり得る、および任意選択であり得る。
動作614において、MLモデルから、右画像データに関連付けられた予測された深度情報を受信することを含むことができるプロセスを、プロセスは含むことができる。動作614は、実施形態に応じて、上述した動作606と同様であり得る、および任意選択であり得る。
動作616において、プロセスは、予測された深度情報(動作614からの)および左画像データに少なくとも部分的に基づいて、再構築された右画像データを決定することを含むことができる。動作616は、実施形態に応じて、上述した動作608と同様であり得る、および任意選択であり得る。
動作618において、プロセスは、右画像データと再構築された右画像データとの間の第2の差を決定することを含むことができる。動作618は、実施形態に応じて、上述した動作610と同様であり得る、および任意選択であり得る。
動作620において、プロセスは、深度データ(例えば、動作602で受信されたlidarデータおよび/または飛行時間データ)と予測された深度情報との間の第3の差を決定することを含むことができる。いくつかの例では、予測された深度情報は、左画像データ(例えば、動作606からの)に関連付けられ得る、または予測された深度情報は右画像データ(例えば、動作614からの)に関連付けられ得る。
動作622において、プロセスは、第1の差(および/または第2の差)および第3の差に少なくとも部分的に基づいて損失を決定することを含むことができる。いくつかの例では、第1の差、第2の差、または第3の差のうちの少なくとも1つは、L2損失を含む。いくつかの例では、動作622は、実施形態に基づいて、決定された差に基づいて、損失を合計、集約、またはそうでなければ決定することを含むことができる。
動作624において、プロセスは、損失に少なくとも部分的に基づいて、機械学習モデルをトレーニングして、トレーニングされた機械学習モデルを生成することを含むことができる。例えば、損失を、機械学習モデルを通じてバックプロパゲートして、様々な作動関数の1つまたは複数の重みを調整して、全体的な損失を最小化できる。
いくつかの例では、プロセス600は、本明細書で説明されるように、機械学習モデルを自律車両(または他のデバイスもしくはコンポーネント)に送信して、画像データに基づいて深度データを決定することをさらに含むことができる。さらに、動作は、画像ベースの深度データに少なくとも部分的に基づいて軌道を決定すること、および/または軌道を辿るように車両を制御することを含むことができる。
図7は、画像ベースの深度データを生成するための機械学習モデルをトレーニングするための別の例示的なプロセス700である。例えば、プロセス700の一部または全部を、本明細書で説明するように、図5の1つまたは複数のコンポーネントによって実行できる。例えば、プロセス700のうちのいくつかまたは全ては、車両コンピューティングデバイス504によって実行できる。
動作702において、プロセスは、立体画像データおよび立体画像データに関連付けられた深度データ(例えば、lidarデータおよび/または飛行時間データ)を受信することを含むことができる。いくつかの例では、動作702は、動作602に実質的に対応できる。
動作704において、プロセスは、機械学習モデルに入力された第1の画像データに少なくとも部分的に基づいて、予測された深度情報および予測された視差情報を決定することを含むことができる。いくつかの例では、動作704は、動作604、606、612、および/または614の態様に実質的に対応できる、および/または含むことができる。いくつかの例では、動作704は、ローカル平面ガイダンスアップサンプリング706に少なくとも部分的に基づくことができる。例えば、機械学習モデルは、機械学習モデルのエンコーダ部分によって出力される1つまたは複数の特徴マップをアップサンプリングするデコーダ部分を含むことができる。いくつかの例では、予測される深度情報がローカル平面ガイダンスアップサンプリングに少なくとも部分的に基づくことができるように、デコーダはローカル平面ガイダンスを使用して特徴マップをアップサンプリングすることができる。
動作708において、プロセスは、予測された視差情報および第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することを含むことができる。いくつかの例では、動作708は、動作608および/または616の態様に実質的に対応できる、および/または含むことができる。
動作710において、プロセスは、第1の画像データと再構築された第1の画像データとの間の第1の差を決定することを含むことができる。いくつかの例では、動作710は、動作610および/または動作618の態様に実質的に対応できる、および/または含むことができる。
動作712において、プロセスは、深度データと予測された深度情報との間の第2の差を決定することを含むことができる。いくつかの例では、動作712は、実質的に動作620の態様に対応できる、および/または含むことができる。
動作714において、プロセスは、一貫性損失を決定するかどうかを決定することを含むことができる。YESである場合、プロセスは動作716に続く。NOの場合、プロセスは動作718に続く。
動作716において、プロセスは、予測された深度情報と視差情報との間の第3の差を決定することを含むことができる。いくつかの例では、第3の差は、本明細書で説明されるように、深度/視差一貫性損失を表すことができる。例えば、機械学習モデルは、自己教師ありトレーニング(画像ベースのトレーニング)に基づいて予測された深度情報(および/または予測された逆深度情報または視差情報)を出力する第1の出力ヘッドと、教師ありトレーニング(lidarベースのトレーニング)に基づいて予測された深度情報を出力する第2の出力ヘッドとを含み得る。
動作718において、プロセスは、機械学習モデルをトレーニングするために損失バランシングをするかどうかを決定することを含むことができる。YESである場合、プロセスは動作720に続く。NOの場合、プロセスは動作722に続く。
動作720において、プロセスは、差に関連付けられた重みを決定することを含むことができる。例えば、動作720は、重み(例えば、スカラー値)を決定(例えば、学習)して、様々な差(例えば、第1の差、第2の差、および/または第3の差)に重み付けすることを含むことができる。いくつかの例では、動作720は、様々な損失に関連付けられた等分散性および/または不確実性に少なくとも部分的に基づくことができる。
動作722において、プロセスは、第1の差および第2の差(ならびに/または第3の差および/もしくは重み)に少なくとも部分的に基づいて損失を決定することを含むことができる。1つの例では、第1の差、第2の差、および/または第3の差のうちの少なくとも1つは、要素724として表されるL2損失を含む。
動作726において、プロセスは、損失に少なくとも部分的に基づいて、機械学習モデルをトレーニングして、トレーニングされた機械学習モデルを生成することを含むことができる。いくつかの例では、動作726は、実質的に動作624の態様に対応できる、および/または含むことができる。
[例示的な発明内容]
A:1つまたは複数のプロセッサと、コンピュータ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と、を含むシステムであって、前記コンピュータ実行可能命令が実行されると、前記1つまたは複数のプロセッサに、機械学習モデルをトレーニングして、深度情報を決定することであって、前記トレーニングが、立体画像センサによってキャプチャされた画像データを受信することであって、前記画像データは、左画像センサによってキャプチャされた左画像データと、右画像センサによってキャプチャされた右画像データとを含む、ことと、lidarセンサによってキャプチャされたlidarデータを受信することであって、前記lidarデータは前記画像データの一部に関連付けられている、ことと、前記左画像データを前記機械学習モデルに入力することと、前記機械学習モデルから、前記左画像データに関連付けられた予測された深度情報を受信することと、前記予測された深度情報および前記右画像データに少なくとも部分的に基づいて、再構築された左画像データを決定することと、前記左画像データと前記再構築された左画像データとの間の第1の差を決定することと、前記予測された深度情報の少なくとも一部と前記lidarデータとの間の第2の差を決定することと、前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、機械学習モデルをトレーニングして、機械学習モデルを生成することと、を含む、こと、を含む動作を実行させる、システム。
A:1つまたは複数のプロセッサと、コンピュータ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と、を含むシステムであって、前記コンピュータ実行可能命令が実行されると、前記1つまたは複数のプロセッサに、機械学習モデルをトレーニングして、深度情報を決定することであって、前記トレーニングが、立体画像センサによってキャプチャされた画像データを受信することであって、前記画像データは、左画像センサによってキャプチャされた左画像データと、右画像センサによってキャプチャされた右画像データとを含む、ことと、lidarセンサによってキャプチャされたlidarデータを受信することであって、前記lidarデータは前記画像データの一部に関連付けられている、ことと、前記左画像データを前記機械学習モデルに入力することと、前記機械学習モデルから、前記左画像データに関連付けられた予測された深度情報を受信することと、前記予測された深度情報および前記右画像データに少なくとも部分的に基づいて、再構築された左画像データを決定することと、前記左画像データと前記再構築された左画像データとの間の第1の差を決定することと、前記予測された深度情報の少なくとも一部と前記lidarデータとの間の第2の差を決定することと、前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、機械学習モデルをトレーニングして、機械学習モデルを生成することと、を含む、こと、を含む動作を実行させる、システム。
B:前記動作が、前記機械学習モデルを、自律車両を制御するために、前記自律車両に送信することと、をさらに含む、段落Aに記載のシステム。
C:前記予測された深度情報が、深度データ、逆深度データ、または、視差データの少なくとも一つを含む、段落AまたはBに記載のシステム。
D:前記第1の差が、前記左画像データの第1のピクセルに関連付けられた第1の強度値と、前記再構築された左画像データ内の第2のピクセルに関連付けられた第2の強度値との差を表すピクセル損失、または、前記左画像データおよび前記再構築された左画像データに関連付けられたエッジまたは不連続の少なくとも1つに関連付けられた構造的類似性損失の少なくとも一つを含む、段落A乃至Cのいずれかに記載のシステム。
E:前記予測された深度情報が、離散的な深度値に関連付けられている、段落A乃至Dのいずれかに記載のシステム。
F:第1の視野を含む第1の画像センサによってキャプチャされた第1の画像データを受信することと、第2の視野を含む第2の画像センサによってキャプチャされた第2の画像データを受信することであって、前記第1の視野の少なくとも一部が前記第2の視野の少なくとも一部に関連付けられている、ことと、深度センサによってキャプチャされた深度データを受信することであって、前記深度データは、前記第1の画像データまたは前記第2の画像データの少なくとも1つの一部に関連付けられている、ことと、前記第1の画像データを機械学習モデルに入力することと、前記機械学習モデルから、前記第1の画像データに関連付けられた予測された深度情報を受信することと、前記予測された深度情報および前記第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することと、前記第1の画像データと前記再構築された第1の画像データとの間の第1の差を決定することと、前記予測された深度情報と前記深度データとの間の第2の差を決定することと、前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、前記機械学習モデルに関連付けられたパラメータを調整して、トレーニングされた機械学習モデルを生成することと、を含む方法。
G:前記トレーニングされた機械学習モデルを、自律車両を制御するために、前記自律車両に送信することと、をさらに含む段落Fに記載の方法。
H:前記予測された深度情報が、深度データ、逆深度データ、または視差データの少なくとも一つを含む、段落FまたはGに記載の方法。
I:前記第1の差は、前記第1の画像データの第1のピクセルに関連付けられた第1の強度値と、前記再構築された第1の画像データ内の第2のピクセルに関連付けられた第2の強度値との差を表すピクセル損失を含む、段落F乃至Hのいずれかに記載の方法。
J:前記再構築された第1の画像データに少なくとも部分的に基づいて、平滑化損失を含む第3の差を決定することをさらに含み、前記平滑化損失に関連付けられた重み付けは、前記第1の画像データまたは前記再構築された第1の画像データの少なくとも1つに表されるエッジに少なくとも部分的に基づいている、段落F乃至Iのいずれかに記載の方法。
K:前記第1の差が、前記第1の画像データの一部に関連付けられた平均値または共分散の少なくとも1つに少なくとも部分的に基づく構造的類似性損失を含む、段落F乃至Jのいずれかに記載の方法。
L:前記予測された深度情報が、形状ベースのアップサンプリングに少なくとも部分的に基づいている、段落F乃至Kのいずれかに記載の方法。
M:前記再構築された第1の画像データを決定することが、前記予測された深度情報に少なくとも部分的に基づいて前記第2の画像データをワーピングすることを含む、段落F乃至Lのいずれかに記載の方法。
N:前記予測された深度情報は、第1の予測された深度情報であり、前記方法は、前記第2の画像データを前記機械学習モデルに入力することと、前記機械学習モデルから、前記第2の画像データに関連付けられた第2の予測された深度情報を受信することと、前記第2の予測された深度情報および前記第1の画像データに少なくとも部分的に基づいて、再構築された第2の画像データを決定することと、前記第2の画像データと前記再構築された第2の画像データとの間の第3の差を決定することと、前記第3の差に少なくとも部分的に基づいて前記損失をさらに決定することと、をさらに含む、段落F乃至Mのいずれかに記載の方法。
O:1つまたは複数プロセッサによって実行可能な命令を格納する1つまたは複数の非一時的コンピュータ可読媒体であって、前記命令が実行されると、前記1つまたは複数のプロセッサに、立体画像センサの第1の画像センサによってキャプチャされた第1の画像データを受信することと、前記立体画像センサの第2の画像センサによってキャプチャされた第2の画像データを受信することと、深度センサによってキャプチャされた深度データを受信することであって、前記深度データは、前記第1の画像データまたは前記第2の画像データの少なくとも1つの一部に関連付けられている、ことと、前記第1の画像データを機械学習モデルに入力することと、前記機械学習モデルから、前記第1の画像データに関連付けられた予測された深度情報を受信することと、前記予測された深度情報および前記第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することと、前記第1の画像データと前記再構築された第1の画像データとの間の第1の差を決定することと、前記予測された深度情報と前記深度データとの間の第2の差を決定することと、前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、前記機械学習モデルのパラメータを調整して、トレーニングされた機械学習モデルを生成することと、を含む動作を実行させる、1つまたは複数の非一時的コンピュータ可読媒体。
P:前記動作が、前記トレーニングされた機械学習モデルを、自律車両を制御するために、前記自律車両に送信することをさらに含む、段落Oに記載の1つまたは複数の非一時的コンピュータ可読媒体。
Q:前記第1の差が、ピクセル損失、平滑化損失、または、構造的類似性損失の少なくとも一つを含む、段落OまたはPに記載の1つまたは複数の非一時的コンピュータ可読媒体。
R:前記予測された深度情報が、離散的な深度値に関連付けられている、段落O乃至Qのいずれかに記載の1つまたは複数の非一時的コンピュータ可読媒体。
S:前記予測された深度情報が第1の予測された深度情報であり、前記動作が、前記第2の画像データを前記機械学習モデルに入力することと、前記機械学習モデルから、前記第2の画像データに関連付けられた第2の予測された深度情報を受信することと、前記第2の予測された深度情報および前記第1の画像データに少なくとも部分的に基づいて、再構築された第2の画像データを決定することと、前記第2の画像データと前記再構築された第2の画像データとの間の第3の差を決定することと、前記第3の差に少なくとも部分的に基づいて前記損失をさらに決定することと、をさらに含む、段落O乃至Rのいずれかに記載の1つまたは複数の非一時的コンピュータ可読媒体。
T:前記動作が、前記第1の画像データまたは前記第2の画像データの少なくとも1つで表されるオブジェクトに関連付けられた意味情報を受信することと、をさらに含み、前記損失は、前記意味情報に少なくとも部分的に基づいている段落O乃至Sのいずれかに記載の1つまたは複数の非一時的コンピュータ可読媒体。
U:1つまたは複数のプロセッサと、コンピュータ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と、を含むシステムであって、前記コンピュータ実行可能命令が実行されると、前記1つまたは複数のプロセッサに、立体画像センサによってキャプチャされた画像データを受信することであって、前記画像データは、左画像センサによってキャプチャされた左画像データと、右画像センサによってキャプチャされた右画像データとを含む、ことと、lidarセンサによってキャプチャされたlidarデータを受信することであって、前記lidarデータは前記画像データの一部に関連付けられている、ことと、前記左画像データを機械学習モデルに入力することと、前記機械学習モデルから、前記左画像データに関連付けられた予測された視差情報および予測された深度情報を受信することと、前記予測された視差情報および前記右画像データに少なくとも部分的に基づいて、再構築された左画像データを決定することと、前記左画像データと前記再構築された左画像データとの間の第1の差を決定することと、前記予測された深度情報と前記lidarデータとの間の第2の差を決定することと、前記予測された視差情報と前記予測された深度情報との間の第3の差を決定することと、前記第1の差、前記第2の差、または前記第3の差の少なくとも1つに関連付けられた重みを決定することと、前記第1の差、前記第2の差、前記第3の差、および前記重みに少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、機械学習モデルをトレーニングして、トレーニングされた機械学習モデルを生成することと、を含む動作を実行させる、システム。
V:前記動作が、形状ベースのアップサンプリングに少なくとも部分的に基づいて、前記機械学習モデルの中間出力を決定することと、をさらに含み、前記予測された視差情報または前記予測された深度情報の少なくとも1つは、前記中間出力に少なくとも部分的に基づいている段落Uに記載のシステム。
W:前記第3の差が一貫性損失を表す、段落UまたはVに記載のシステム。
X:前記重みが、不確実性に少なくとも部分的に基づいて学習された重みである、段落U乃至Wのいずれかに記載のシステム。
Y:前記動作が、前記トレーニングされた機械学習モデルを、自律車両を制御するために、前記自律車両に送信することをさらに含む、段落U乃至Xのいずれかに記載のシステム。
Z:第1の視野を含む第1の画像センサによってキャプチャされた第1の画像データを受信することと、第2の視野を含む第2の画像センサによってキャプチャされた第2の画像データを受信することであって、前記第1の視野の少なくとも一部が前記第2の視野の少なくとも一部に関連付けられている、ことと、深度センサによってキャプチャされた深度データを受信することであって、前記深度データは、前記第1の画像データまたは前記第2の画像データの少なくとも1つの一部に関連付けられている、ことと、前記第1の画像データを機械学習モデルに入力することと、前記機械学習モデルから、前記第1の画像データに関連付けられた予測された視差情報および予測された深度情報を受信することと、前記予測された視差情報および前記第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することと、前記第1の画像データと前記再構築された第1の画像データとの間の第1の差を決定することと、前記予測された深度情報と前記深度データとの間の第2の差を決定することと、前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、前記機械学習モデルのパラメータを調整して、トレーニングされた機械学習モデルを生成することと、を含む方法。
AA:前記トレーニングされた機械学習モデルを、自律車両を制御するために、前記自律車両に送信することをさらに含む、段落Zに記載の方法。
AB:前記予測された深度情報が、深度データ、逆深度データ、または、視差データの少なくとも一つを含む、段落ZまたはAAに記載の方法。
AC:前記予測された視差情報と前記予測された深度情報との間の第3の差を決定することと、前記第3の差に少なくとも部分的に基づいて前記損失をさらに決定することと、をさらに含む、段落Z乃至ABのいずれかに記載の方法。
AD:前記第3の差が一貫性損失を表す、段落ACに記載の方法。
AE:前記第1の差、または前記第2の差の少なくとも1つに関連付けられた重みを決定することと、前記重みに少なくとも部分的に基づいて前記損失をさらに決定することと、をさらに含む、段落Z乃至ADのいずれかに記載の方法。
AF:前記重みが、不確実性に少なくとも部分的に基づいて学習された重みである、段落AEに記載の方法。
AG:前記再構築された第1の画像データを決定することが、前記予測された視差情報に少なくとも部分的に基づいて前記第2の画像データをワーピングすることを含む、段落Z乃至AFのいずれかに記載の方法。
AH:前記第1の差が、ピクセル損失、または、構造的類似性損失の少なくとも一つを含む、段落Z乃至AGのいずれかに記載の方法。
AI:1つまたは複数プロセッサによって実行可能な命令を格納する1つまたは複数の非一時的コンピュータ可読媒体であって、前記命令が実行されると、前記1つまたは複数のプロセッサに、第1の視野を含む第1の画像センサによってキャプチャされた第1の画像データを受信することと、第2の視野を含む第2の画像センサによってキャプチャされた第2の画像データを受信することであって、前記第1の視野の少なくとも一部が前記第2の視野の少なくとも一部に関連付けられている、ことと、深度センサによってキャプチャされた深度データを受信することであって、前記深度データは、前記第1の画像データまたは前記第2の画像データの少なくとも1つの一部に関連付けられている、ことと、前記第1の画像データを前記機械学習モデルに入力することと、前記機械学習モデルから、前記第1の画像データに関連付けられた予測された視差情報および予測された深度情報を受信することと、前記予測された視差情報および前記第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することと、前記第1の画像データと前記再構築された第1の画像データとの間の第1の差を決定することと、前記予測された深度情報と前記深度データとの間の第2の差を決定することと、前記予測された視差情報と前記予測された深度情報との間の第3の差を決定することと、前記第1の差、前記第2の差、または前記第3の差の少なくとも1つに関連付けられた重みを決定することと、前記第1の差、前記第2の差、前記第3の差、および前記重みに少なくとも部分的に基づいて損失を決定することと、前記損失に少なくとも部分的に基づいて、前記機械学習モデルのパラメータを調整して、トレーニングされた機械学習モデルを生成することと、を含む動作を実行させる、1つまたは複数の非一時的コンピュータ可読媒体。
AJ:前記予測された深度情報が、形状ベースのアップサンプリングに少なくとも部分的に基づいている、段落AIに記載の1つまたは複数の非一時的コンピュータ可読媒体。
AK:前記重みが前記第1の差に関連付けられた第1の重みであり、前記動作が、前記第2の差または前記第3の差の少なくとも1つに関連付けられた第2の重みを決定することであって、前記第2の重みは前記第1の重みと異なる、ことと、前記第2の重みに少なくとも部分的に基づいて前記損失をさらに決定することと、をさらに含む、段落AIまたはAJに記載の1つまたは複数の非一時的コンピュータ可読媒体。
AL:前記第1の重みおよび前記第2の重みが、学習された重みである、段落AKに記載の1つまたは複数の非一時的コンピュータ可読媒体。
AM:前記動作が、前記第1の画像データまたは前記第2の画像データの少なくとも1つで表されるオブジェクトに関連付けられた意味情報を受信することと、をさらに含み、前記損失は、前記意味情報に少なくとも部分的に基づいている段落AI乃至ALのいずれかに記載の1つまたは複数の非一時的コンピュータ可読媒体。
AN:前記意味情報は、静的分類、動的分類、またはオブジェクトタイプ分類の少なくとも1つを含む、段落AMに記載の1つまたは複数の非一時的コンピュータ可読媒体。
上記で説明された例示的な発明内容が、1つの特定の実施形態に関して説明される一方で、本明細書のコンテキストにおいて、例示的な発明の内容はまた、方法、デバイス、システム、コンピュータ可読媒体、および/または別の実施形態を介して実施できることを理解されたい。さらに、例A乃至ANのいずれかは、単独で、または任意の他の1つもしくは複数の例A乃至ANと組み合わせて実装され得る。
[結論]
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、追加、置換、およびそれらの同等物が、本明細書で説明する技術の範囲内に含まれる。
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、追加、置換、およびそれらの同等物が、本明細書で説明する技術の範囲内に含まれる。
例示の説明では、本明細書の一部を形成する添付の図面を参照するが、これは例示として請求される主題の具体的な例を示す。他の例を使用でき、構造的変更などの変更または代替を行うことできることを理解されたい。そのような例示、変更または代替は、意図して請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書のステップは特定の順序で提示できるが、場合によっては、説明したシステムおよび方法の機能を変更することなく、特定の入力を異なる時間または異なる順序で提供するように、順序を変更できる。開示された手順はまた異なる順序で実行できる。さらに、本明細書にある様々な計算は開示された順序で実行される必要はなく、計算の代替順序を使用する他の例を容易に実装できる。並べ替えに加えて、計算はまた同じ結果となるサブ計算に分解できる。
Claims (15)
- 第1の視野を含む第1の画像センサによってキャプチャされた第1の画像データを受信することと、
第2の視野を含む第2の画像センサによってキャプチャされた第2の画像データを受信することであって、前記第1の視野の少なくとも一部が前記第2の視野の少なくとも一部に関連付けられている、ことと、
深度センサによってキャプチャされた深度データを受信することであって、前記深度データは、前記第1の画像データまたは前記第2の画像データの少なくとも1つの一部に関連付けられている、ことと、
前記第1の画像データを機械学習モデルに入力することと、
前記機械学習モデルから、前記第1の画像データに関連付けられた予測された深度情報を受信することと、
前記予測された深度情報および前記第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することと、
前記第1の画像データと前記再構築された第1の画像データとの間の第1の差を決定することと、
前記予測された深度情報と前記深度データとの間の第2の差を決定することと、
前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、
前記損失に少なくとも部分的に基づいて、前記機械学習モデルに関連付けられたパラメータを調整して、トレーニングされた機械学習モデルを生成することと、
を含む方法。 - 前記トレーニングされた機械学習モデルを、自律車両を制御するために、前記自律車両に送信することと、をさらに含む請求項1に記載の方法。
- 前記予測された深度情報が、
深度データ、
逆深度データ、または、
視差データの少なくとも一つを含む、請求項1または2に記載の方法。 - 前記第1の差は、前記第1の画像データの第1のピクセルに関連付けられた第1の強度値と、前記再構築された第1の画像データ内の第2のピクセルに関連付けられた第2の強度値との差を表すピクセル損失を含む、請求項1乃至3のいずれか一項に記載の方法。
- 前記再構築された第1の画像データに少なくとも部分的に基づいて、平滑化損失を含む第3の差を決定することをさらに含み、前記平滑化損失に関連付けられた重み付けは、前記第1の画像データまたは前記再構築された第1の画像データの少なくとも1つに表されるエッジに少なくとも部分的に基づいている、請求項1乃至4のいずれか一項に記載の方法。
- 前記第1の差が、
前記第1の画像データの一部に関連付けられた平均値または共分散、または、
前記第1の画像データおよび前記再構築された第1の画像データに関連付けられたエッジまたは不連続性の少なくとも1つに、少なくとも部分的に基づく構造的類似性損失を含む、請求項1乃至5のいずれか一項に記載の方法。 - 前記予測された深度情報が、形状ベースのアップサンプリングに少なくとも部分的に基づいている、請求項1乃至6のいずれか一項に記載の方法。
- 前記再構築された第1の画像データを決定することが、前記予測された深度情報に少なくとも部分的に基づいて前記第2の画像データをワーピングすることを含む、請求項1乃至7のいずれか一項に記載の方法。
- 前記予測された深度情報は、第1の予測された深度情報であり、前記方法は
前記第2の画像データを前記機械学習モデルに入力することと、
前記機械学習モデルから、前記第2の画像データに関連付けられた第2の予測された深度情報を受信することと、
前記第2の予測された深度情報および前記第1の画像データに少なくとも部分的に基づいて、再構築された第2の画像データを決定することと、
前記第2の画像データと前記再構築された第2の画像データとの間の第3の差を決定することと、
前記第3の差に少なくとも部分的に基づいて前記損失をさらに決定することと、
をさらに含む、請求項1乃至8のいずれか一項に記載の方法。 - コンピュータ上で実行されると、請求項1乃至9のいずれか一項に記載の方法を実施するコード化された命令を含むコンピュータプログラム製品。
- 1つまたは複数プロセッサによって実行可能な命令を格納する1つまたは複数の非一時的コンピュータ可読媒体であって、前記命令が実行されると、前記1つまたは複数のプロセッサに、
立体画像センサの第1の画像センサによってキャプチャされた第1の画像データを受信することと、
前記立体画像センサの第2の画像センサによってキャプチャされた第2の画像データを受信することと、
深度センサによってキャプチャされた深度データを受信することであって、前記深度データは、前記第1の画像データまたは前記第2の画像データの少なくとも1つの一部に関連付けられている、ことと、
前記第1の画像データを機械学習モデルに入力することと、
前記機械学習モデルから、前記第1の画像データに関連付けられた予測された深度情報を受信することと、
前記予測された深度情報および前記第2の画像データに少なくとも部分的に基づいて、再構築された第1の画像データを決定することと、
前記第1の画像データと前記再構築された第1の画像データとの間の第1の差を決定することと、
前記予測された深度情報と前記深度データとの間の第2の差を決定することと、
前記第1の差および前記第2の差に少なくとも部分的に基づいて損失を決定することと、
前記損失に少なくとも部分的に基づいて、前記機械学習モデルのパラメータを調整して、トレーニングされた機械学習モデルを生成することと、
を含む動作を実行させる、1つまたは複数の非一時的コンピュータ可読媒体。 - 前記第1の差が、
ピクセル損失、
平滑化損失、または、
構造的類似性損失の少なくとも一つを含む、請求項11に記載の1つまたは複数の非一時的コンピュータ可読媒体。 - 前記予測された深度情報が、離散的な深度値に関連付けられている、請求項11または12に記載の1つまたは複数の非一時的コンピュータ可読媒体。
- 前記予測された深度情報が第1の予測された深度情報であり、前記動作が、
前記第2の画像データを前記機械学習モデルに入力することと、
前記機械学習モデルから、前記第2の画像データに関連付けられた第2の予測された深度情報を受信することと、
前記第2の予測された深度情報および前記第1の画像データに少なくとも部分的に基づいて、再構築された第2の画像データを決定することと、
前記第2の画像データと前記再構築された第2の画像データとの間の第3の差を決定することと、
前記第3の差に少なくとも部分的に基づいて前記損失をさらに決定することと、
をさらに含む、請求項11乃至13のいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。 - 前記動作が、
前記第1の画像データまたは前記第2の画像データの少なくとも1つで表されるオブジェクトに関連付けられた意味情報を受信することと、をさらに含み、
前記損失は、前記意味情報に少なくとも部分的に基づいている、請求項11乃至14のいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/684,568 | 2019-11-14 | ||
US16/684,568 US11157774B2 (en) | 2019-11-14 | 2019-11-14 | Depth data model training with upsampling, losses, and loss balancing |
US16/684,554 | 2019-11-14 | ||
US16/684,554 US20210150278A1 (en) | 2019-11-14 | 2019-11-14 | Depth data model training |
PCT/US2020/059686 WO2021096806A1 (en) | 2019-11-14 | 2020-11-09 | Depth data model training with upsampling, losses, and loss balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023503827A true JP2023503827A (ja) | 2023-02-01 |
JPWO2021096806A5 JPWO2021096806A5 (ja) | 2023-11-17 |
Family
ID=75912561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022527901A Pending JP2023503827A (ja) | 2019-11-14 | 2020-11-09 | アップサンプリング、損失、および損失均衡による深度データモデルトレーニング |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4058974A4 (ja) |
JP (1) | JP2023503827A (ja) |
CN (1) | CN114981834A (ja) |
WO (1) | WO2021096806A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117981324A (zh) * | 2021-09-30 | 2024-05-03 | Oppo广东移动通信有限公司 | 使用多传感器协作的图像和视频编码 |
CN113591823B (zh) * | 2021-10-08 | 2022-03-25 | 北京的卢深视科技有限公司 | 深度预测模型的训练及人脸深度图像的生成方法、装置 |
GB2611765B (en) * | 2021-10-08 | 2024-01-31 | Samsung Electronics Co Ltd | Method, system and apparatus for monocular depth estimation |
CN117333626B (zh) * | 2023-11-28 | 2024-04-26 | 深圳魔视智能科技有限公司 | 图像采样数据获取方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150020175A (ko) * | 2012-04-24 | 2015-02-25 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
GB2553782B (en) * | 2016-09-12 | 2021-10-20 | Niantic Inc | Predicting depth from image data using a statistical model |
WO2019182974A2 (en) * | 2018-03-21 | 2019-09-26 | Nvidia Corporation | Stereo depth estimation using deep neural networks |
CN109146944B (zh) * | 2018-10-30 | 2020-06-26 | 浙江科技学院 | 一种基于深度可分卷积神经网络的视觉深度估计方法 |
CN110175986B (zh) * | 2019-04-23 | 2021-01-08 | 浙江科技学院 | 一种基于卷积神经网络的立体图像视觉显著性检测方法 |
-
2020
- 2020-11-09 WO PCT/US2020/059686 patent/WO2021096806A1/en unknown
- 2020-11-09 CN CN202080092205.0A patent/CN114981834A/zh active Pending
- 2020-11-09 EP EP20888621.8A patent/EP4058974A4/en active Pending
- 2020-11-09 JP JP2022527901A patent/JP2023503827A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4058974A4 (en) | 2023-12-13 |
WO2021096806A1 (en) | 2021-05-20 |
CN114981834A (zh) | 2022-08-30 |
EP4058974A1 (en) | 2022-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681046B2 (en) | Depth data model training with upsampling, losses and loss balancing | |
US10937178B1 (en) | Image-based depth data and bounding boxes | |
US11748909B2 (en) | Image-based depth data and localization | |
US11003945B2 (en) | Localization using semantically segmented images | |
US10984543B1 (en) | Image-based depth data and relative depth data | |
US11295161B2 (en) | Localization using semantically segmented images | |
US11188091B2 (en) | Mesh decimation based on semantic information | |
US20210150278A1 (en) | Depth data model training | |
US20220274625A1 (en) | Graph neural networks with vectorized object representations in autonomous vehicle systems | |
US10884428B2 (en) | Mesh decimation techniques and validation | |
JP2023503827A (ja) | アップサンプリング、損失、および損失均衡による深度データモデルトレーニング | |
CN114072841A (zh) | 根据图像使深度精准化 | |
US11614742B2 (en) | Height estimation using sensor data | |
US11538185B2 (en) | Localization based on semantic objects | |
US20220185331A1 (en) | Calibration based on semantic objects | |
US20220176988A1 (en) | Determining inputs for perception system | |
WO2023043638A1 (en) | Associating image data and depth data for depth determination | |
US11270437B1 (en) | Top-down segmentation pixel orientation and distance | |
US11761780B1 (en) | Determining data for semantic localization | |
WO2019173078A1 (en) | Mesh decimation techniques | |
US11636685B1 (en) | Multi-resolution top-down segmentation | |
US11983933B1 (en) | Boundary aware top-down trajectory prediction | |
WO2023219893A1 (en) | Sensor calibration validation | |
EP4260154A1 (en) | Localization based on semantic objects | |
WO2023150430A1 (en) | Distance representation and encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231109 |