(57)【要約】  システムは、1つまたは複数のコンピュータによって実装されるニューラルネットワークを備え、ニューラルネットワークは、画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークを含む。ニューラルネットワークは、画像のシーケンスを受信するように構成される。ニューラルネットワークは、画像ごとに、画像の深度を特徴付けるそれぞれの深度出力を生成するために、画像深度予測ニューラルネットワークを使用して画像のシーケンス内の各画像を処理することと、サブセット内の画像間のカメラのモーションを特徴付けるカメラモーション出力を生成するために、カメラモーション推定ニューラルネットワークを使用して画像のシーケンス内の画像のサブセットを処理することとを行うように構成される。画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークは、教師なし学習技法を使用して共同でトレーニングされている。
2021503134.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装されるニューラルネットワークを備えるシステムであって、前記ニューラルネットワークが画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークを備え、前記ニューラルネットワークが、
画像のシーケンスを受信することと、
画像ごとに、前記画像の深度を特徴付けるそれぞれの深度出力を生成するために、前記画像深度予測ニューラルネットワークを使用して画像の前記シーケンス内の各画像を処理することと、
サブセット内の前記画像間のカメラのモーションを特徴付けるカメラモーション出力を生成するために、前記カメラモーション推定ニューラルネットワークを使用して画像の前記シーケンス内の画像の前記サブセットを処理することと
を行うように構成され、
前記画像深度予測ニューラルネットワークと前記カメラモーション推定ニューラルネットワークが、教師なし学習技法を使用して共同でトレーニングされている、システム。
【請求項２】
画像の前記シーケンスが、前記カメラによってキャプチャされたビデオのフレームである、請求項1に記載のシステム。
【請求項３】
前記深度出力が、前記画像内の複数のピクセルのピクセルごとに、前記画像の焦点面から前記ピクセルに描かれたシーンのそれぞれの距離を表す推定深度値を備える、請求項1または2に記載のシステム。
【請求項４】
前記カメラモーション出力が、前記カメラの姿勢および向きを、前記サブセット内の第1の画像を撮影する間のその視点から、前記サブセット内の第2の画像を撮影する間のその視点に変換する変換行列である、請求項1から3のいずれか一項に記載のシステム。
【請求項５】
前記画像深度予測ニューラルネットワークが、畳み込みニューラルネットワーク層を含む、請求項1から4のいずれか一項に記載のシステム。
【請求項６】
前記カメラモーション推定ニューラルネットワークが、畳み込みニューラルネットワーク層を含む、請求項1から5のいずれか一項に記載のシステム。
【請求項７】
画像の前記サブセットが、画像の前記シーケンス内に2つの画像を含む、請求項1から6のいずれか一項に記載のシステム。
【請求項８】
画像の前記サブセットが、画像の前記シーケンス内に3つ以上の画像を含む、請求項1から6のいずれか一項に記載のシステム。
【請求項９】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から8のいずれか一項に記載の前記システムを実装させる命令を記憶した1つまたは複数のコンピュータストレージ媒体。
【請求項１０】
請求項1から8のいずれか一項に記載の前記ニューラルネットワークをトレーニングする方法であって、
画像のシーケンスを備えるトレーニングデータを取得するステップと、
画像の前記シーケンス内の特定の画像ごとに、
前記特定の画像の第1の深度を特徴付ける第1の深度推定値を生成するために、前記画像深度予測ニューラルネットワークを使用して前記特定の画像を処理するステップと、
第2の画像の第2の深度を特徴付ける第2の深度推定値を生成するために、前記画像深度予測ニューラルネットワークを使用して前記シーケンス内の前記特定の画像に続く前記第2の画像を処理するステップと、
カメラの姿勢および向きを、前記特定の画像を撮影する間のその視点から、前記第2の画像を撮影する間のその視点に変換する第1の変換行列を生成するために、前記カメラモーション推定ニューラルネットワークを使用して前記特定の画像と前記第2の画像を処理するステップと、
前記第1の深度推定値、前記第2の深度推定値、および前記第1の変換行列に基づいて、前記画像深度予測ニューラルネットワークと前記カメラモーション推定ニューラルネットワークのパラメータの現在の値を共同で調整するために、損失関数の勾配の推定値を逆伝播するステップと
を備える、方法。
【請求項１１】
前記損失関数が、前記特定の画像と前記第2の画像とから生成された2つの点群間のポイントツーポイント距離を最小化する3Dベースの点群アライメント損失成分を備える、請求項10に記載の方法。
【請求項１２】
前記損失関数の前記勾配の前記推定値を逆伝播するステップが、
第1の点群における点と第2の点群におけるそれらに対応する点との間の前記ポイントツーポイント距離を最小化するベストフィット変換を繰り返し推定することによって、前記3Dベースの点群アライメント損失成分を計算するステップを備える、請求項11に記載の方法。
【請求項１３】
前記損失関数が、(i)前記特定の画像、および前記第2の画像から生成された第1の再構成画像と、(ii)前記第2の画像、および前記特定の画像から生成された第2の再構成画像との測光整合性を維持する画像再構成損失成分を備える、請求項10から12のいずれか一項に記載の方法。
【請求項１４】
前記損失関数の前記勾配の前記推定値を逆伝播するステップが、
(i)前記第1の深度推定値および前記第1の変換行列に基づいて、前記第1の再構成画像における有効なピクセル座標を示す有効性マスクを分析的に計算することによって、および(ii)前記第2の深度推定値および前記第1の変換行列の逆に基づいて、前記第2の再構成画像における有効なピクセル座標を示す第2の有効性マスクを分析的に計算することによって、前記画像再構成損失成分を計算するステップを備える、請求項13に記載の方法。
【請求項１５】
前記損失関数が、(i)前記特定の画像および前記第1の再構成画像におけるパッチの類似性と、(ii)前記第2の画像および前記第2の再構成画像におけるパッチの類似性とを維持する構造化類似性損失成分を備える、請求項13または14に記載の方法。
【請求項１６】
前記損失関数が、(i)前記特定の画像内に急激な変化があるピクセル座標における前記第1の深度推定値における急激な変化と、(ii)前記第2の画像内に急激な変化があるピクセル座標における前記第2の深度推定値における急激な変化とを可能にする深度平滑性損失成分をさらに備える、請求項10から15のいずれか一項に記載の方法。
【請求項１７】
前記損失関数が、前記損失関数のそれぞれの成分の重み付き組合せである、請求項10から16のいずれか一項に記載の方法。
【請求項１８】
ミニバッチ確率的最適化を使用して、前記画像深度予測ニューラルネットワークと前記カメラモーション推定ニューラルネットワークの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項10から17のいずれか一項に記載の方法。
【請求項１９】
確率的勾配最適化を使用して、前記画像深度予測ニューラルネットワークおよび前記カメラモーション推定ニューラルネットワークの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項10から17のいずれか一項に記載の方法。
【請求項２０】
画像の前記シーケンスが、前記カメラによってキャプチャされたビデオのフレームである、請求項10から19のいずれか一項に記載の方法。
【請求項２１】
前記第2の画像が、画像の前記シーケンス内の前記特定の画像の直後に続く、請求項10から20のいずれか一項に記載の方法。
【請求項２２】
前記第1の深度推定値が、前記特定の画像内の複数のピクセルのピクセルごとに、前記特定の画像の焦点面から前記ピクセルに描かれたシーンのそれぞれの距離を表す推定深度値を備える、請求項10から21のいずれか一項に記載の方法。
【請求項２３】
前記第2の深度推定値が、前記第2の画像内の複数のピクセルのピクセルごとに、前記第2の画像の焦点面から前記ピクセルに描かれたシーンのそれぞれの距離を表す推定深度値を備える、請求項10から22のいずれか一項に記載の方法。
【請求項２４】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項10から23のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶した1つまたは複数のコンピュータストレージ媒体。
【請求項２５】
1つまたは複数のコンピュータ、および、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項10から23のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶した、1つまたは複数のストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2017年11月15日に提出された米国仮出願第62/586,611号の優先権を主張する。先行出願の開示は、本出願の開示の一部と見なされ、参照により組み込まれる。
【背景技術】
【０００２】
本出願は、ニューラルネットワークを使用した画像の処理に関する。
【０００３】
機械学習モデルは入力を受信し、受信した入力に基づいて、予測された出力などの出力を生成する。一部の機械学習モデルはパラメトリックモデルであり、受信した入力とモデルのパラメータの値に基づいて出力を生成する。
【０００４】
一部の機械学習モデルは、受信した入力の出力を生成するために複数のモデル層を使用するディープモデルである。たとえば、ディープニューラルネットワークは、出力を生成するために、出力層と、受信した入力に非線形変換をそれぞれが適用する1つまたは複数の非表示層とを含むディープ機械学習モデルである。
【発明の概要】
【課題を解決するための手段】
【０００５】
一般に、本明細書で説明する主題の1つの革新的な態様は、1つまたは複数のコンピュータによって実装されるニューラルネットワークを含むシステムにおいて具現化することができる。ニューラルネットワークは、画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークを含む。ニューラルネットワークは、画像のシーケンスを受信するように構成される。ニューラルネットワークは、画像ごとに、(i)画像の深度を特徴付けるそれぞれの深度出力を生成するために、画像深度予測ニューラルネットワークを使用して画像のシーケンス内の各画像を処理するように構成される。ニューラルネットワークは、サブセット内の画像間のカメラのモーションを特徴付けるカメラモーション出力を生成するために、カメラモーション推定ニューラルネットワークを使用して画像のシーケンス内の画像のサブセットを処理するように構成される。画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークは、教師なし学習技法を使用して共同でトレーニングされている。
【０００６】
前述および他の実施形態はそれぞれ、任意選択で、以下の特徴のうちの1つまたは複数を、単独でまたは組み合わせて含むことができる。画像のシーケンスは、カメラによってキャプチャされたビデオのフレームであり得る。深度出力は、画像の焦点面からピクセルに描かれたシーンのそれぞれの距離を表す、画像内の複数のピクセルのピクセルごとの推定深度値を含み得る。カメラモーション出力は、カメラの姿勢および向きを、サブセット内の第1の画像を撮影する間のその視点から、サブセット内の第2の画像を撮影する間のその視点に変換する変換行列であり得る。画像深度予測ニューラルネットワークは、畳み込みニューラルネットワーク層を含み得る。カメラモーション推定ニューラルネットワークは、畳み込みニューラルネットワーク層を含み得る。画像のサブセットは、画像のシーケンス内に2つの画像を含み得る。画像のサブセットは、画像のシーケンス内に3つ以上の画像を含み得る。教師なし学習技法は、ニューラルネットワークをトレーニングする方法に関して以下で説明する動作を備え得る。
【０００７】
本明細書で説明する主題の別の革新的な態様は、1つまたは複数のコンピュータによって遂行されると、1つまたは複数のコンピュータに、上記のシステムを実装させる命令で符号化された1つまたは複数のコンピュータストレージ媒体において具現化することができる。
【０００８】
本明細書で説明する主題の別の革新的な態様は、上記のシステムのニューラルネットワークをトレーニングする方法において具現化することができる。本方法は、画像のシーケンスを含むトレーニングデータを取得するステップと、画像のシーケンス内の特定の画像ごとに以下の動作を実行するステップとを含む。
【０００９】
シーケンス内の特定の画像ごとに、本方法は、特定の画像の第1の深度を特徴付ける第1の深度推定値を生成するために、画像深度予測ニューラルネットワークを使用して特定の画像を処理するステップと、第2の画像の第2の深度を特徴付ける第2の深度推定値を生成するために、深度予測ニューラルネットワークを使用してシーケンス内の特定の画像に続く第2の画像を処理するステップと、カメラの姿勢および向きを、特定の画像を撮影する間のその視点から、第2の画像を撮影する間のその視点に変換する第1の変換行列を生成するために、カメラモーション推定ニューラルネットワークを使用して特定の画像と第2の画像を処理するステップと、第1の深度推定値、第2の深度推定値、および第1の変換行列に基づいて、深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークのパラメータの現在の値を共同で調整するために、損失関数の勾配の推定値を逆伝播するステップとを含む。
【００１０】
前述および他の実施形態はそれぞれ、任意選択で、以下の特徴のうちの1つまたは複数を、単独でまたは組み合わせて含むことができる
【００１１】
損失関数は、特定の画像と第2の画像から生成された2つの点群間のポイントツーポイント距離を最小化する3Dベースの点群アライメント損失成分を含み得る。
【００１２】
損失関数は、(i)特定の画像、および第2の画像から生成された対応する再構成画像と、(ii)第2の画像、および第1の画像から生成された対応する第2の再構成画像との測光整合性(photometric consistency)を維持する画像再構成損失成分を含み得る。
【００１３】
損失関数は、(i)特定の画像および再構成画像におけるパッチの類似性と、(ii)第2の画像および第2の再構成画像におけるパッチの類似性とを維持する構造化類似性損失成分を含み得る。
【００１４】
損失関数は、(i)特定の画像内に急激な変化があるピクセル座標における第1の深度推定値における急激な変化と、(ii)第2の画像内に急激な変化があるピクセル座標における第2の深度推定値における急激な変化とを可能にする深度平滑性損失成分をさらに含み得る。
【００１５】
損失関数は、損失関数のそれぞれの成分の重み付き組合せであり得る。損失関数は、次の成分(i)3Dベースの点群アライメント損失成分、(ii)画像再構成損失成分、(iii)構造化類似性損失成分、および(iv)深度平滑性損失成分のうちの1つまたは複数の重み付き組合せであり得る。たとえば、損失関数は、(i)3Dベースの点群アライメント損失成分、(ii)画像再構成損失成分、(iii)構造化類似性損失成分、および(iv)深度平滑性損失成分の重み付き組合せであり得る。
【００１６】
損失関数の勾配の推定値を逆伝播するステップは、第1の点群における点と第2の点群におけるそれらに対応する点との間のポイントツーポイント距離を最小化するベストフィット変換を繰り返し推定することによって、3Dベースの点群アライメント損失成分を計算するステップを含み得る。
【００１７】
損失関数の勾配の推定値を逆伝播するステップは、(i)第1の深度推定値および第1の変換行列に基づいて、第1の再構成画像における有効なピクセル座標を示す有効性マスクを分析的に計算することによって、および(ii)第2の深度推定値および第1の変換行列の逆に基づいて、第2の再構成画像における有効なピクセル座標を示す第2の有効性マスクを分析的に計算することによって、再構成損失成分を計算するステップを含み得る。
【００１８】
場合によっては、本方法は、ミニバッチ確率的最適化を使用して、画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークのパラメータの現在の値を調整するステップを含み得る。場合によっては、本方法は、確率的勾配最適化を使用して、画像深度予測ニューラルネットワークおよびカメラモーション推定ニューラルネットワークのパラメータの現在の値を調整するステップを含み得る。
【００１９】
トレーニング画像のシーケンスは、カメラによってキャプチャされたビデオのフレームであり得る。第2の画像は、画像のシーケンス内の特定の画像の直後に続く場合がある。第1の深度推定値は、特定の画像の焦点面からピクセルに描かれたシーンのそれぞれの距離を表す、特定の画像内の複数のピクセルのピクセルごとの推定深度値を含み得る。第2の深度推定値は、第2の画像の焦点面からピクセルに描かれたシーンのそれぞれの距離を表す、第2の画像内の複数のピクセルのピクセルごとの推定深度値を含み得る。
【００２０】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態において実装することができる。本明細書で説明する主題は、一般に、画像のシーケンス、たとえばロボットエージェントのカメラ(すなわち、単眼ビデオ)によってキャプチャされたビデオのフレームからの深度およびカメラモーション(または、エゴモーション)の教師なし学習のためのトレーニングスキームを対象とする。トレーニングスキームは、トレーニングに非常に少ない情報源(たとえば、カメラによって撮影された単眼ビデオ)しか必要としないため、大規模で多様なデータセットにおける画像深度とカメラモーション推定ニューラルネットワークのトレーニングが可能になる。カメラは利用可能な最もユビキタスなセンサであり、高品質のカメラは安価で展開が簡単であるという事実を考慮すると、教師なし方法で、すなわち、単眼ビデオのいかなる外部ラベリングも必要とせずに、カメラによって撮影された任意の単眼ビデオでニューラルネットワークをトレーニングするトレーニングスキームの能力は、事実上無限の量のトレーニングデータを開き、したがって、アーティファクトの検知(たとえば、ラベル付きデータに存在するノイズ/エラーの検知)またはセンサ間のキャリブレーションの問題を排除する。言い換えれば、トレーニング方法は、より多くのデータをトレーニングデータとして使用できるようにし、量が制限される可能性のある特別にラベル付けされた深度データを必要としない。
【００２１】
従来の手法は、ピクセル単位または勾配ベースの損失を使用し、これは局所的な小さな近傍のピクセルのみを考慮して品質の低下を予測するが、本明細書で説明するトレーニングスキームは、3Dベースの点群アライメント損失をトレーニング損失関数に組み込むことによってシーン全体の3Dジオメトリを考慮する。3Dベースの損失は、ビデオの連続するフレーム全体で推定される3D点群とエゴモーションの整合性を強化する。
【００２２】
加えて、トレーニングスキームは、推定深度と隣接するフレームからのエゴモーションを使用して、フレーム再構成の測光品質に基づいて、新規3Dベースの損失と構造化類似性損失を組み合わせる。
【００２３】
トレーニングスキームはさらに、有用な情報が存在しない領域にペナルティを課すことを回避するために、画像再構成損失に有効性マスクを組み込む。以前の手法は、損失にそのような領域を含むため、ニューラルネットワークのパフォーマンスが低下する(たとえば、画像の深度出力にエッジアーティファクトが発生する)。有効性マスクを分析的に計算し、マスクを画像再構成損失に組み込むことによって、トレーニングスキームは、深度およびカメラモーションニューラルネットワークのパフォーマンスを向上させる。
【００２４】
加えて、トレーニングスキームは、入力画像の勾配を考慮に入れることによって、入力画像の深度推定値を正規化するために、深度平滑性損失を使用する。入力画像の勾配を考慮することによって、深度平滑性損失により、入力画像に急激な変化があるピクセル座標において深度の急激な変化が可能になり、それによって、トレーニングされた深度予測ニューラルネットワークがより現実的で正確な深度推定値を生成できるようになる。
【００２５】
上記のトレーニングスキームを使用してトレーニングされた深度予測ニューラルネットワークおよびカメラモーション推定ニューラルネットワークは、従来の方法を使用することによってトレーニングされた他のニューラルネットワークと比較して、より高い品質(たとえば、より高い精度、より高い忠実度、およびより現実的)で深度推定値およびカメラエゴモーション推定値を生成することができる。そのような推定値は、たとえばナビゲーションを支援するために、ロボットエージェントまたは自律車両の制御に使用され得る。トレーニングされたニューラルネットワークによって生成された推定値は、入力データを提供するために深度センサを較正するために高価で困難である必要はなく、安価で展開が容易な単眼ビデオカメラを使用して取得され得る。
【００２６】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２７】
【図１】例示的なニューラルネットワークシステムのアーキテクチャを示す図である。
【図２】画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークを共同でトレーニングするための例示的なプロセスの流れ図である。
【図３】3Dベースの点群アライメント損失を生成するための流れ図である。
【図４】変換行列および深度推定値におけるエラーにペナルティを課すためにICPプロセスが使用される方法を示す図である。
【発明を実施するための形態】
【００２８】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【００２９】
本明細書は、画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワークを使用して、入力画像のシーケンスから画像深度とエゴモーション推定値を生成するように構成された、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたニューラルネットワークシステムについて説明する。
【００３０】
図1は、ニューラルネットワークシステム100の例示的なアーキテクチャを示す図である。ニューラルネットワークシステム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの例であり、以下で説明されるシステム、コンポーネント、および技法を実装することができる。
【００３１】
一般に、ニューラルネットワークシステム100は、画像のシーケンス106を受信することと、画像の深度を特徴付ける深度出力を生成するためにシーケンス内の各画像を処理することと、サブセット内の画像間のカメラのモーションを特徴付けるカメラモーション出力を生成するために、シーケンス内の画像のサブセットを処理することとを行うように構成される。たとえば、画像のシーケンス106は、ロボットエージェントのカメラによってキャプチャされている単眼ビデオのフレームを含み得る。別の例として、画像のシーケンス106は、モバイルデバイスのカメラを使用して(たとえば、電話のユーザが自転車に乗っている間、手持ち型の商用電話のカメラによって)キャプチャされた単眼ビデオのフレームを含み得る。シーケンス106は、必ずしもビデオからのフレームのすべてを含む必要はない。たとえば、シーケンス106は、ビデオの1つおきのフレームを含み得る。
【００３２】
深度出力およびカメラモーション出力を生成するために、ニューラルネットワークシステム100は、画像深度予測ニューラルネットワーク102(以下、簡単にするために「深度ネットワーク102」と呼ぶ)およびカメラモーション推定ニューラルネットワーク104(以下、「カメラモーションネットワーク104」と呼ぶ)を含む。深度ネットワーク102およびカメラモーションネットワーク104の各々は、1つまたは複数の畳み込みニューラルネットワーク層を含む。いくつかの実装形態では、深度ネットワーク102およびカメラモーションネットワーク104は、完全に畳み込みニューラルネットワークである。
【００３３】
深度ネットワーク102は、深度ネットワーク102の深度パラメータの現在の値に従って、画像ごとに、画像の深度を特徴付けるそれぞれの深度出力を生成するために、画像のシーケンス106内の各画像を処理するように構成される。所与の画像に対して生成された深度出力は、所与の画像の複数のピクセルのピクセルごとの予測深度値を含む。ピクセルの深度値は、(i)所与の画像が記録される平面と、(ii)ピクセルに描かれたシーン(たとえば、オブジェクトの実際の位置または仮想位置、あるいはピクセルが描くオブジェクトの一部)との間の垂直距離の表現である。画像が記録される平面は、焦点面、たとえば、カメラまたは仮想カメラの焦点面であり得る。
【００３４】
図1の例では、深度ネットワーク102は、画像110の深度出力114を生成するために、画像のシーケンス106内の画像110を処理する。画像110は、Xtとして表すことができ、ここで、tは画像がカメラによってキャプチャされた時間である。深度出力114は、シーケンス106内の他の画像とは無関係に、現在の画像110から生成される。
【００３５】
カメラモーションネットワーク104は、カメラモーションネットワーク104のモーションパラメータの現在の値に従って、サブセット内の画像間のカメラのモーションを特徴付けるカメラモーション出力を生成するために、画像のシーケンス106内の画像のサブセットを処理するように構成される。
【００３６】
いくつかの実装形態では、画像のサブセットは、画像のシーケンス106からの2つの画像を含む。たとえば、図1に示されるように、画像のサブセットは2つの連続する画像Xt-1(108)およびXt(110)を含み、これらは、それぞれ時間t-1およびtにおいてカメラによって撮影される。カメラモーションネットワーク104は、カメラの姿勢および向きを、画像Xt-1を撮影する間のその視点から、画像Xtを撮影する間のその視点に変換する変換行列であるカメラモーション出力116を生成するために、画像Xt-1およびXtを処理する。言い換えると、カメラモーション出力116は、時間t-1から時間tまでのカメラのモーション(姿勢および向き)を表す。
【００３７】
いくつかの他の実装形態では、画像のサブセットは、画像のシーケンス106からの3つ以上の画像を含む。たとえば、画像のサブセットは、画像Xt-2、Xt-1、およびXtを含み得る。この例では、画像のサブセットを考えると、カメラモーションネットワーク104は、時間t-2から時間tまでのカメラのモーションを表すカメラモーション出力を生成する。
【００３８】
画像のシーケンスの深度出力とカメラモーション出力を効率的に生成するために、ニューラルネットワークシステム100は、教師なし学習技法を使用してトレーニングデータについて深度ネットワーク102およびカメラモーションネットワーク104を共同でトレーニングするようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスであるトレーニングエンジン118を含む。一般に、トレーニングエンジン118は、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールあるいはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用になり、他の場合では、複数のエンジンを同じコンピュータにインストールして、実行することができる。
【００３９】
特に、トレーニング中、トレーニングエンジン118は、トレーニング画像のシーケンスを含むトレーニングデータを取得する。トレーニング画像は、ロボットエージェントのカメラによってキャプチャされているビデオのフレームであり得る。
【００４０】
トレーニング画像のシーケンス内の特定の画像ごとに、トレーニングエンジン118は、以下の動作を繰り返し実行する。
【００４１】
特定の画像ごとに、トレーニングエンジン118は、深度ネットワーク102の深度パラメータの現在の値に従って、特定の画像の第1の深度を特徴付ける第1の深度推定値を生成するために、深度ネットワーク102を使用して特定の画像を処理する。トレーニングエンジン118は、第2の画像の第2の深度を特徴付ける第2の深度推定値を生成するために、深度ネットワーク102の深度パラメータの現在の値に従って、深度ネットワーク102を使用してシーケンス内の特定の画像に続く第2の画像を処理する。トレーニングエンジン118は、カメラの姿勢および向きを、特定の画像を撮影する間のその視点から、第2の画像を撮影する間のその視点に変換する第1の変換行列を生成するために、カメラモーションネットワーク104を使用して特定の画像と第2の画像を処理する。次いで、トレーニングエンジン118は、深度ネットワーク102とカメラモーションネットワーク104のパラメータの現在の値を共同で調整するために、損失関数の勾配の推定値を逆伝播する。損失関数は、第1の深度推定値、第2の深度推定値、および第1の変換行列に基づいて計算される。
【００４２】
一般に、損失関数は、(i)特定の画像から生成された第1の点群における点と、(i)第2の画像から生成された第2の点群におけるそれらの対応する点との間のポイントツーポイント距離を最小化する3Dベースの点群アライメント損失成分を含む。3Dベースの点群アライメント損失成分を生成するための処理は、図3を参照して以下で詳細に説明される。
【００４３】
損失関数は、画像再構成損失成分、構造化類似性損失成分、および深度平滑性損失成分のうちの1つまたは複数の損失成分をさらに含むことができる。画像再構成損失成分は、(i)特定の画像、および第2の画像から生成された第1の再構成画像と、(ii)第2の画像、および特定の画像から生成された第2の再構成画像との測光整合性を維持する。構造化類似性損失成分は、(i)特定の画像および第1の再構成画像におけるパッチの類似性と、(ii)第2の画像および第2の再構成画像におけるパッチの類似性とを維持する。深度平滑性損失成分は、(i)特定の画像内に急激な変化があるピクセル座標における第1の深度推定値における急激な変化と、(ii)第2の画像内に急激な変化があるピクセル座標における第2の深度推定値における急激な変化とを可能にする。
【００４４】
トレーニング中、トレーニングエンジン118は、ミニバッチ確率的最適化または確率的勾配最適化方法を使用することによって、損失関数を最小限に抑えるために、深度ネットワーク102およびカメラモーションニューラルネットワーク104のパラメータの値を調整するために上記の動作を繰り返し実行することができる。
【００４５】
深度ネットワーク102およびカメラモーションネットワーク104を共同でトレーニングするための、および損失関数内の各コンポーネントを計算するためのプロセスは、図2に関して以下でより詳細に説明される。
【００４６】
トレーニング後、ニューラルネットワークシステム100は、深度ネットワーク102の深度パラメータのトレーニングされた値に従って所与の入力画像の深度出力を生成するために、深度ネットワーク102を使用することと、カメラモーションネットワーク104のモーションパラメータのトレーニングされた値に従って、複数の入力画像のカメラモーション出力を生成するために、カメラモーションネットワーク104を使用することとを行うことができる。
【００４７】
場合によっては、ニューラルネットワークシステム100は、トレーニングされた深度ネットワーク102およびトレーニングされたカメラモーションネットワーク104、またはネットワークのパラメータのトレーニングされた値を外部システムに提供することができる。外部システムは、上述の方法で入力画像のシーケンスの深度出力およびカメラモーション出力を生成するために、トレーニングされた深度ネットワーク102およびトレーニングされたカメラモーション104を使用することができる。
【００４８】
特定の例として、トレーニング後、システム100または外部システムは、ロボットが環境と対話している間にロボットを制御するために、深度出力およびカメラモーション出力を使用することができる。深度出力とカメラモーション出力をロボットの制御ポリシまたはプランナへの入力として利用可能にすることによって、環境内において指定されたタスクを完了するためにロボットをより効果的に制御することができる。
【００４９】
図2は、画像深度予測ニューラルネットワークとカメラモーション推定ニューラルネットワーク(たとえば、図1の深度ネットワーク102およびカメラモーションネットワーク104)を共同でトレーニングするための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされた、図1のニューラルネットワークシステム100などのニューラルネットワークシステムは、プロセス200を実行することができる。
【００５０】
本システムは、画像深度予測ニューラルネットワークおよびカメラモーション推定ニューラルネットワークのパラメータ値を繰り返し更新するために、トレーニングデータに含まれるトレーニング画像の異なるシーケンスに対してプロセス200を繰り返し実行することができる。
【００５１】
本システムはトレーニング画像のシーケンスを取得する(ステップ201)。たとえば、トレーニング画像は、ロボットエージェントのカメラまたはモバイルデバイスのカメラによってキャプチャされているビデオのフレームであり得る。トレーニング画像のシーケンスは、ビデオのすべての連続フレームが含まれているとは限らない。たとえば、トレーニング画像のシーケンスは、ビデオの1つおきのフレームを含み得る。
【００５２】
トレーニング画像のシーケンス内の特定の画像Xt-1ごとに、本システムは次の動作を繰り返し実行する(ステップ202〜218)。
【００５３】
本システムは、深度ネットワークの深度パラメータの現在の値に従って、時間t-1における特定の画像Xt-1の第1の深度を特徴付ける第1の深度推定値Dt-1を生成するために、深度ネットワークを使用して特定の画像Xt-1を処理する(ステップ202)。
【００５４】
本システムは、時間tにおける第2の画像Xtの第2の深度を特徴付ける第2の深度推定値Dtを生成するために、深度ネットワークの深度パラメータの現在の値に従って、深度ネットワークを使用してシーケンス内の特定の画像Xt-1に続く第2の画像Xtを処理する(ステップ204)。
【００５５】
本システムは、第1の変換行列Ttを生成するために、カメラモーションネットワークを使用して特定の画像Xt-1および第2の画像Xtを処理する(ステップ206)。エゴモーションとも呼ばれる第1の変換行列Ttは、時間t-1から時間tまでのカメラのモーション(姿勢および向き)を表す。すなわち、第1の変換行列Ttは、カメラの姿勢および向きを、特定の画像Xt-1を撮影する間のその視点から第2の画像Xtを撮影する間のその視点に変換する。
【００５６】
深度ネットワークとカメラモーションネットワークを共同でトレーニングするための損失関数を構成するために、本システムは第1に、特定の画像Xt-1と第2の画像Xtから生成された2つの点群間のポイントツーポイント距離を最小化する3Dベースの点群アライメント損失成分を構成する(ステップ208)。
【００５７】
特に、本システムは、第2の画像Xtの第2の深度推定値Dtに基づいて、第2の画像Xtの3D点群Qtを生成する。対応する推定深度値
【００５８】
【数１】
2021503134.tif 000003
【００５９】
を有する座標(i、j)における各画像ピクセルは、次のように構造化3D点群Qtに投影することができる。
【００６０】
【数２】
2021503134.tif 000004
【００６１】
上式で、Kはカメラ固有の行列であり、座標は同次である。
【００６２】
t-1からtへのカメラのモーションを表す第1の変換行列Ttを考えると、前の画像(特定の画像Xt-1)の点群
【００６３】
【数３】
2021503134.tif 000005
【００６４】
の推定値を取得するために、本システムは次のように3D点群Qtを変換する。
【００６５】
【数４】
2021503134.tif 000006
【００６６】
上式で、
【００６７】
【数５】
2021503134.tif 000007
【００６８】
は、tからt-1へのカメラのモーションの逆を表す。
【００６９】
同様に、本システムは、特定の画像Xt-1の第1の深度推定値Dt-1に基づいて、特定の画像Xt-1の3D点群Qt-1を生成する。対応する推定深度値
【００７０】
【数６】
2021503134.tif 000008
【００７１】
を有する座標(i、j)における各画像ピクセルは、次のように構造化3D点群Qt-1に投影することができる。
【００７２】
【数７】
2021503134.tif 000009
【００７３】
上式で、Kはカメラ固有の行列であり、座標は同次である。
【００７４】
次いで、本システムは、第2の画像Xtの点群
【００７５】
【数８】
2021503134.tif 000010
【００７６】
の推定値を取得するために、次のように3D点群Qt-1を変換する。
【００７７】
【数９】
2021503134.tif 000011
【００７８】
上式で、Ttは、t-1からtまでのカメラのモーションを表す。
【００７９】
3Dベースの点群アライメント損失成分は、2つの3D点群
【００８０】
【数１０】
2021503134.tif 000012
【００８１】
からQt-1、または
【００８２】
【数１１】
2021503134.tif 000013
【００８３】
からQtを直接比較する。すなわち、場合によっては、3Dベースの点群アライメント損失成分は、(i)第2の画像の点群Qtから生成された特定の画像の点群
【００８４】
【数１２】
2021503134.tif 000014
【００８５】
の推定値を(ii)特定の画像の点群Qt-1と比較することができる。場合によっては、3Dベースの点群アライメント損失成分は、(i)特定の画像の点群Qt-1から生成された第2の画像の点群
【００８６】
【数１３】
2021503134.tif 000015
【００８７】
の推定値を(ii)第2の画像の点群Qtと比較することができる。
【００８８】
3Dベースの点群のアライメント損失成分を構成するために、本システムは、(i)2つの点群の対応する点間のポイントツーポイント距離を最小化するベストフィット変換T'と、(ii)ポイントツーポイント距離を最小化するためのICPのベストフィット変換T'が適用された後の、対応する点間の残差距離を表す残差位置合わせエラーrを計算するために、厳密な位置合わせ方法、たとえば反復最接近点(ICP)プロセスを使用する。ICPプロセスは、図3および図4を参照して以下で詳細に説明される。
【００８９】
本システムは、3Dベースの点群アライメント損失成分L3Dを次のように構成する。
【００９０】
【数１４】
2021503134.tif 000016
【００９１】
上式で、
【００９２】
【数１５】
2021503134.tif 000017
【００９３】
はL1ノルムを示し、Iは単位行列であり、rは残差位置合わせエラーである。
【００９４】
次に、本システムは、損失関数は、(i)特定の画像Xt-1、および第2の画像Xtから生成された第1の再構成画像
【００９５】
【数１６】
2021503134.tif 000018
【００９６】
と、(ii)第2の画像Xt、および特定の画像Xt-1から生成された対応する第2の再構成画像
【００９７】
【数１７】
2021503134.tif 000019
【００９８】
との測光整合性を維持する画像再構成損失成分を構成する(ステップ210)。
【００９９】
特に、本システムは推定された点群
【０１００】
【数１８】
2021503134.tif 000020
【０１０１】
を画像t-1においてカメラに
【０１０２】
【数１９】
2021503134.tif 000021
【０１０３】
として投影し、上式で、Kはカメラの固有行列である。次いで、本システムは、時間tにおける画像座標から時間t-1における画像座標へのマッピングを確立するために、この変換と射影を式(1)と組み合わせる。このマッピングに基づいて、本システムは深度出力Dtと第1の変換行列Ttに基づいてXt-1をワーピングすることによって画像
【０１０４】
【数２０】
2021503134.tif 000022
【０１０５】
を再構成する。
【０１０６】
【数２１】
2021503134.tif 000023
【０１０７】
同様に、本システムは、深度出力Dt-1および
【０１０８】
【数２２】
2021503134.tif 000024
【０１０９】
に基づいてXtをワーピングすることによって、画像
【０１１０】
【数２３】
2021503134.tif 000025
【０１１１】
を再構成し、これは第1の変換行列Ttの逆である。
【０１１２】
【数２４】
2021503134.tif 000026
【０１１３】
の計算は、Xtにおける画像座標からXt-1へのマッピングの作成を含む。しかしながら、カメラのモーションにより、Xtにおける一部のピクセル座標は、Xt-1の画像境界の外側にある座標にマッピングされ得る。フォワードエゴモーションでは、この問題は通常、Xtから
【０１１４】
【数２５】
2021503134.tif 000027
【０１１５】
を計算するときに顕著になる。そのようなピクセルを損失関数に含めると、深度およびカメラモーションネットワークのパフォーマンスが低下する。以前の手法では、この問題を無視するか、ネットワークに汎用マスクを追加することによって問題に取り組もうとし、これは、何らかの理由で説明できない領域が除外されることが予想される。しかしながら、この手法は効果的ではなく、深度画像にエッジアーティファクトが生じることがしばしばある。
【０１１６】
上記の問題を解決するために、ここでは、本システムが深度出力と第1の変換行列(エゴモーション)から有効性マスクを分析的に計算する。トレーニング画像のシーケンス内の画像Xt-1とXtのペアごとに、本システムは有効性マスクのペアMt-1とMtを作成することができる。Mt-1は、Xtから
【０１１７】
【数２６】
2021503134.tif 000028
【０１１８】
を再構成するときに有効なピクセル座標を示す。Mtは、Xt-1から
【０１１９】
【数２７】
2021503134.tif 000029
【０１２０】
を再構成するときに有効なピクセル座標を示す。
【０１２１】
より具体的には、本システムは、第1の深度推定値Dt-1と第1の変換行列Ttに基づいて、第1の再構成画像
【０１２２】
【数２８】
2021503134.tif 000030
【０１２３】
における有効なピクセル座標を示す第1の有効性マスクMt-1を分析的に計算する。本システムは、第2の深度推定値Dtおよび第1の変換行列
【０１２４】
【数２９】
2021503134.tif 000031
【０１２５】
の逆に基づいて、第2の再構成画像
【０１２６】
【数３０】
2021503134.tif 000032
【０１２７】
における有効なピクセル座標を示す第2の有効性マスクMt-2を分析的にさらに計算する。
【０１２８】
有効性マスクを計算した後、本システムは、次いで測光の整合性に基づく画像再構成損失成分を生成するために、再構成画像
【０１２９】
【数３１】
2021503134.tif 000033
【０１３０】
および
【０１３１】
【数３２】
2021503134.tif 000034
【０１３２】
を特定の画像Xtおよび第2の画像Xt-1とそれぞれ次のように比較する。
【０１３３】
【数３３】
2021503134.tif 000035
【０１３４】
上式で、
【０１３５】
【数３４】
2021503134.tif 000036
【０１３６】
は、第2の画像Xtの座標(i、j)における画像ピクセルを示し、
【０１３７】
【数３５】
2021503134.tif 000037
【０１３８】
は、再構成画像
【０１３９】
【数３６】
2021503134.tif 000038
【０１４０】
の座標(i、j)における画像ピクセルを示し、
【０１４１】
【数３７】
2021503134.tif 000039
【０１４２】
は、有効性マスクMtの座標(i、j)における画像ピクセルを示す。有効性マスクを使用することによって、本システムは画像の表示領域外での偽の損失を回避できるため、有用な情報が存在しない領域にペナルティを課すことを回避することができる。その結果、本システムは、深度およびカメラモーションネットワークの予測/推定品質を向上させることができる。
【０１４３】
続いて、本システムは構造化類似性損失成分を構成する(ステップ212)。一般に、構造化類似性損失成分は、(i)特定の画像および第1の再構成画像におけるパッチの類似性と、(ii)第2の画像および第2の再構成画像におけるパッチの類似性とを維持する。
【０１４４】
特に、本システムは、次のように定義された構造化類似性損失成分LSSIMを最小化することを目的としている。
【０１４５】
【数３８】
2021503134.tif 000040
【０１４６】
上式で、SSIM(x、y)は、2つの画像パッチxとyの間の類似性を測定し、次のように定義される。
【０１４７】
【数３９】
2021503134.tif 000041
【０１４８】
上式で、μx、σxは局所的な平均と分散である。
【０１４９】
次いで、本システムは、深度推定値を正規化するために、深度平滑性損失成分を構成する(ステップ214)。深度平滑性損失成分は、(i)特定の画像Xt-1内に急激な変化があるピクセル座標における第1の深度推定値Dt-1における急激な変化と、(ii)第2の画像Xt内に急激な変化があるピクセル座標における第2の深度推定値Dtにおける急激な変化とを可能にする。深度平滑性損失は、所与の画像Xの勾配を考慮に入れ、次のように提示することができる。
【０１５０】
【数４０】
2021503134.tif 000042
【０１５１】
上式で、Xijは所与の画像Xの座標(i、j)における画像ピクセルを示し、DijはXijに対応する推定深度値であり、δx、δyは勾配である。画像Xの勾配を考慮することによって、深度平滑性損失により、画像に急激な変化があるピクセル座標における深度の急激な変化が可能になる。
【０１５２】
本システムは損失関数を構成する(ステップ216)。いくつかの実装形態では、損失関数は、3Dベースの点群アライメント損失成分のみを含む。いくつかの実装形態では、損失関数は、3Dベースの点群アライメント損失成分と、(i)画像再構成損失成分、(ii)構造化類似性損失成分、または(iii)深度平滑性損失成分の1つまたは複数との重み付き組合せである。たとえば、損失関数は次の形式を有することができる。
【０１５３】
【数４１】
2021503134.tif 000043
【０１５４】
上式で、すべての損失成分は、取得されたトレーニングデータにおける入力画像の入力解像度から、より低い解像度の画像(たとえば、入力画像の幅と高さが
【０１５５】
【数４２】
2021503134.tif 000044
【０１５６】
【数４３】
2021503134.tif 000045
【０１５７】
または
【０１５８】
【数４４】
2021503134.tif 000046
【０１５９】
の画像)に及ぶ4つの異なるスケールsにおいて適用される。α、β、γ、ωはあらかじめ決定されたハイパーパラメータである。たとえば、α=0.85、β=0.1、γ=0.05、ω=0.15である。別の例として、α=0.5、β=0.3、γ=0.2、およびω=0である。別の例として、α=0.1、β=0.2、γ=0.3、およびω=0.4である。
【０１６０】
次いで、本システムは、深度ネットワークの深度パラメータの現在の値とカメラモーションネットワークのモーションパラメータの現在の値を共同で調整するために、損失関数の勾配の推定値を生成し、勾配の推定値を逆伝播する(ステップ218)。本システムは、ミニバッチ確率的最適化または確率的勾配最適化方法を使用することによって、損失関数を最小限に抑えるために、深度とモーションのパラメータの現在の値を共同で調整することができる。
【０１６１】
本システムは、深度ネットワークの深度パラメータのトレーニングされた値とカメラモーションネットワークのモーションパラメータのトレーニングされた値を決定するために、トレーニング画像のシーケンス内の他の画像について上記のステップ202〜218を繰り返す。
【０１６２】
図3は、3Dベースの点群アライメント損失成分を生成するための例示的なプロセス300流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、ニューラルネットワークシステムまたはニューラルネットワークシステムのコンポーネント、たとえば、適切にプログラムされた図1のニューラルネットワークシステム100のトレーニングエンジン118は、プロセス300を実行することができる。
【０１６３】
図2を参照して上述したように、3Dベースの点群アライメント損失成分(以下、3Dベース損失とも呼ばれる)を生成するために、本システムはまず、第2の画像Xtの第2の深度推定値Dtに基づいて、第2の画像Xtの3D点群Qtを生成する(ステップ304)。対応する推定深度値
【０１６４】
【数４５】
2021503134.tif 000047
【０１６５】
を有する座標(i、j)における各画像ピクセルは、式1を使用して構造化3D点群Qtに投影することができる。
【０１６６】
第1の変換行列の逆
【０１６７】
【数４６】
2021503134.tif 000048
【０１６８】
を考えると、本システムは、式2を使用して前の画像(特定の画像Xt-1)の点群
【０１６９】
【数４７】
2021503134.tif 000049
【０１７０】
を推定するために、3D点群Qtを変換する(ステップ306)。
【０１７１】
同様に、本システムは、特定の画像Xt-1の第1の深度推定値Dt-1に基づいて、特定の画像Xt-1の3D点群Qt-1を生成する(ステップ308)。対応する推定深度値
【０１７２】
【数４８】
2021503134.tif 000050
【０１７３】
を有する座標(i、j)における各画像ピクセルは、式3に基づいて構造化3D点群Qt-1に投影することができる。
【０１７４】
次いで、本システムは、式4に基づいて第2の画像Xtの点群
【０１７５】
【数４９】
2021503134.tif 000051
【０１７６】
の推定値を取得するために、第1の変換行列Ttを使用して3D点群Qt-1を変換する(ステップ310)。
【０１７７】
3Dベースの点群アライメント損失成分を構成するために、本システムは、2つの点群間のポイントツーポイント距離を最小化するベストフィット変換T'を取得するために、反復最近傍点(ICP)プロセス302を使用する。
【０１７８】
特に、ICPプロセス302は、入力として、2つの点群AおよびB、たとえば、点群
【０１７９】
【数５０】
2021503134.tif 000052
【０１８０】
およびQt-1、または点群
【０１８１】
【数５１】
2021503134.tif 000053
【０１８２】
およびQtを使用する。便宜上、以下の説明では、2つの点群
【０１８３】
【数５２】
2021503134.tif 000054
【０１８４】
およびQt-1を入力として使用する場合のICPプロセス302について説明するが、ICPプロセス302は両方の点群のペアにとって同じであることが理解されるべきである。
【０１８５】
2つの点群
【０１８６】
【数５３】
2021503134.tif 000055
【０１８７】
およびQt-1を考えると、ICPプロセス302は、Aにおける変換された点とBにおける対応する点の間の距離を最小化するベストフィット変換T'を出力する(ステップ312)。
【０１８８】
【数５４】
2021503134.tif 000056
【０１８９】
上式で、c(.)は、ICP方法によって(たとえば、単純な最近接ポイントヒューリスティックを使用することによって)検出されたポイントツーポイント対応を示す。本システムは、ピクセル座標(i、j)ごとに、残差rij=Aij-T'-1.Bc(ij)を出力するために、ICPプロセス302をさらに使用する(ステップ314)。残差は、ポイントツーポイント距離を最小化するためのICPのベストフィット変換T'が適用された後の、対応する点間の残差距離を反映する。
【０１９０】
本システムは、3Dベースの点群アライメント損失成分L3Dを次のように構成する。
【０１９１】
【数５５】
2021503134.tif 000057
【０１９２】
上式で、
【０１９３】
【数５６】
2021503134.tif 000058
【０１９４】
はL1ノルムを示し、Iは単位行列であり、rは残差位置合わせエラーである(ステップ316)。
【０１９５】
図4は、第1の変換行列(エゴモーション)Ttおよび第2の深度推定値Dtにおけるエラーにペナルティを課すために、システムがICPプロセスを使用する方法を示している。この図は、サイドミラーを備えた車の前部の上面図を示している。時間tの深度推定値Dtを考えると、本システムは点群Qtを作成し、次いでこの点群は第1の変換行列Ttによって前の画像の点群の予測
【０１９６】
【数５７】
2021503134.tif 000059
【０１９７】
に変換される。深度ネットワークとカメラモーションネットワークからの第1の変換行列TtとDtが完全な場合、
【０１９８】
【数５８】
2021503134.tif 000060
【０１９９】
はQt-1と完全に整列する。完全ではない場合、本システムは、ベストフィット変換行列Tt'および残差rtを生成するために、ICPで
【０２００】
【数５９】
2021503134.tif 000061
【０２０１】
をQt-1に調整する。次いで、本システムは、TtとDtをより適切な初期アライメントに調整するために、T'tおよびrtを使用する。より具体的には、本システムはエゴモーションTtに関する3Dベースの損失の負の勾配の近似としてT'tを使用し、深度推定値Dtに関する3Dベースの損失の負の勾配の近似としてrtを使用する。
【０２０２】
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成された」という用語を使用する。特定の動作またはアクションを実行するように構成された1つまたは複数のコンピュータのシステムは、システムにソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされており、動作時に、システムに動作またはアクションを実行させることを意味する。特定の動作またはアクションを実行するように構成された1つまたは複数のコンピュータプログラムの場合、1つまたは複数のプログラムは、データ処理装置によって遂行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【０２０３】
本明細書で説明する主題および機能動作の実施形態は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書で開示される構造を含むコンピュータハードウェア、およびそれらの構造的等価物、またはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による遂行、またはデータ処理装置の動作を制御するための有形の非一時的ストレージ媒体に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらの1つまたは複数の組合せであり得る。あるいは、またはさらに、プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置による遂行のために適切な受信装置への送信のための情報を符号化するために生成される機械生成電気信号、光信号、または電磁信号に符号化され得る。
【０２０４】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置はまた、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの特殊用途の論理回路であってもよく、またはそれをさらに含んでもよい。装置は、ハードウェアに加えて、コンピュータプログラムの遂行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組合せを構成するコードを任意で含むことができる。
【０２０５】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ、は記述されるコンピュータプログラムは、コンパイラ型またはインタープリタ型言語、あるいは宣言型または手続き型言語を含む任意の形式のプログラミング言語で記述することができ、また、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットとしてなどを含む、任意の形式で展開することができる。プログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応する。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプト、問題のプログラム専用の単一ファイル、または複数の調整ファイル、たとえば1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されているか、複数のサイトに分散され、データ通信ネットワークによって相互接続されている複数のコンピュータ上で遂行されるように展開することができる。
【０２０６】
本明細書で説明するプロセスおよび論理フローは、入力データを動作して出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを遂行する1つまたは複数のプログラム可能なコンピュータによって実行することができる。プロセスおよび論理フローはまた、FPGAまたはASICなどの専用論理回路によって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによって実行することができる。
【０２０７】
コンピュータプログラムの遂行に適したコンピュータは、汎用または専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受け取る。コンピュータの本質的な要素は、命令を実行または遂行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置とメモリは、特殊用途のロジック回路によって補完または組み込むことができる。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気-光磁気ディスク、または光ディスクを含むか、それらからデータを受信するか、それらにデータを転送するように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、たとえばモバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば例を挙げると、ユニバーサルシリアルバス(USB)フラッシュドライブなどに組み込むことができる。
【０２０８】
コンピュータプログラム命令およびデータを記憶するために適したコンピュータ可読媒体は、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【０２０９】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供することができるキーボードおよびマウスやトラックボールなどのポインティングデバイを有するコンピュータ上に実装することができる。ユーザとの対話を提供するために、他の種類のデバイスも使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの、あらゆる形態の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。加えて、コンピュータは、ユーザが使用するデバイスとの間で文書を送受信することによって、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのデバイスのウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンなどに送信し、代わりにユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【０２１０】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたはプロダクションの一般的で計算集約的な部分、すなわち推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【０２１１】
機械学習モデルは、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークなどの機械学習フレームワークを使用して実装および展開することができる。
【０２１２】
本明細書で説明する主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、またはアプリケーションサーバなどのミドルウェアコンポーネントを含むか、または、たとえば、ユーザが本明細書で説明する主題の実装形態と対話することができるグラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを備えたクライアントコンピュータなどのフロントエンドコンポーネント、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
【０２１３】
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは、通常、互いにリモートであり、通常、通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバの関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして機能するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的で、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【０２１４】
本明細書は多くの具体的な実装形態の詳細が含むが、これらは任意の発明の範囲や特許請求される範囲の限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有であり得る機能の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の機能は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈において説明される様々な機能は、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することもできる。さらに、機能は特定の組合せにおいて動作するものとして上記で説明され、最初はそのように特許請求されている場合でも、特許請求された組合せからの1つまたは複数の機能は、場合によっては組合せから削除され、特許請求された組合せはサブコンビネーションまたはサブコンビネーションのバリエーションを対象とする場合がある。
【０２１５】
同様に、動作は特定の順序で図面に示され、特許請求の範囲に記載されているが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されること、またはすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上記の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、説明されているプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できることを理解されたい。
【０２１６】
主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されたアクションは、異なる順序で実行されても、依然として望ましい結果を達成することができる。一例として、添付の図面に示されているプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序または連続した順序を必要としない。場合によっては、マルチタスクと並列処理が有利な場合がある。
【符号の説明】
【０２１７】
100  ニューラルネットワークシステム
102  深度ネットワーク
102  画像深度予測ニューラルネットワーク
104  カメラモーションネットワーク
104  カメラモーション推定ニューラルネットワーク
106  画像のシーケンス
110  画像
114  深度出力
116  カメラモーション出力
118  トレーニングエンジン
200  プロセス
300  プロセス
【図１】
2021503134.tif 000062
【図２】
2021503134.tif 000063
【図３】
2021503134.tif 000064
【図４】
2021503134.tif 000065
【国際調査報告】
2021503134.tif 000066
2021503134.tif 000067
2021503134.tif 000068