(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-13
(45)【発行日】2023-06-21
(54)【発明の名称】ニューラルネットワークを使用したシーンの理解および生成
(51)【国際特許分類】
G06T 7/00 20170101AFI20230614BHJP
【FI】
G06T7/00 350C
【外国語出願】
(21)【出願番号】P 2021101631
(22)【出願日】2021-06-18
(62)【分割の表示】P 2019523597の分割
【原出願日】2017-11-04
【審査請求日】2021-06-22
(32)【優先日】2016-11-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-08-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ダニーロ・ヒメネス・レゼンデ
(72)【発明者】
【氏名】セイエド・モハマダリ・エスラミ
(72)【発明者】
【氏名】カロル・グレゴール
(72)【発明者】
【氏名】フレデリック・オリヴィエ・ベッセ
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】国際公開第2016/088437(WO,A1)
【文献】Kihyuk Sohn, et al.,Learning Structured Output Representation using Deep Conditional Generative Models,Advances in Neural Information Processing Systems 28(NIPS 2015),2015年
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
(57)【特許請求の範囲】
【請求項1】
特定のシーンを特徴づける複数の観測を受信するステップであって、各観測は前記特定のシーンの画像、および前記画像をキャプチャしたカメラのロケーションを特定するデータを含む、ステップと、
観測ニューラルネットワークを使用して前記複数の観測のそれぞれを処理するステップであって、前記観測ニューラルネットワークは、前記観測のそれぞれについて、
前記観測を処理して、前記観測の
低次元表現を出力として生成するように構成される、ステップと、
前記観測の前記
低次元表現を結合することによって
数値表現を決定するステップと、
新しいカメラのロケーションを特定するデータを受信するステップと、
ジェネレータニューラルネットワークを使用して前記新しいカメラのロケーションを特定する前記データおよび前記
数値表現を処理して、前記特定のシーンの新しい画像を生成するステップであって、前記特定のシーンの前記新しい画像は、前記新しいカメラのロケーションでのカメラから得られた画像に対応し、かつ前記複数の観測に含まれた画像ではない、ステップと
を含む、コンピュータにより実施される方法。
【請求項2】
前記
数値表現が前記特定のシーンの基礎を成すコンテンツを表現する数値のコレクションである、請求項1に記載の方法。
【請求項3】
前記
数値表現が前記特定のシーンの意味論的な描写である、請求項1または2のいずれか一項に記載の方法。
【請求項4】
前記観測の前記
低次元表現を結合するステップが、
前記
低次元表現を加算して、前記
数値表現を生成するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記ジェネレータニューラルネットワークが、
複数のタイムステップのそれぞれにおいて、
前記タイムステップについての1つまたは複数の潜在変数をサンプリングすることと、
深層畳み込みニューラルネットワークを使用して、隠れ状態、前記サンプリングされた潜在変数、前記
数値表現、および前記新しいカメラのロケーションを特定する前記データを処理することによって、前記タイムステップの時点での隠れ状態を更新して、前記更新された隠れ状態を生成することと、
前記複数のタイムステップにおける最後のタイムステップの後、
前記最後のタイムステップの後前記更新された隠れ状態から前記特定のシーンの前記新しい画像を生成することと
を行うように構成される、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記最後のタイムステップの後前記更新された隠れ状態から前記特定のシーンの前記新しい画像を生成するステップが、
前記最後のタイムステップの後前記更新された隠れ状態からピクセル十分統計量を生成するステップと、
前記ピクセル十分統計量を使用して前記新しい画像内のピクセルのカラー値をサンプリングするステップと
を含む、請求項5に記載の方法。
【請求項7】
前記ジェネレータニューラルネットワークおよび前記観測ニューラルネットワークが、事後ニューラルネットワークと併せてトレーニングされており、前記トレーニングの間、複数のトレーニング観測および対象観測を受信することと、前記1つまたは複数の潜在変数についての分布を定義する事後出力を生成することとを行うように構成されている、請求項5または6のいずれか一項に記載の方法。
【請求項8】
前記観測ニューラルネットワークがトレーニングされており、特定のカメラのロケーションとの組み合わせでジェネレータニューラルネットワークによって使用され得る
数値表現を生成し、前記特定のカメラのロケーションから得られた前記特定のシーンの特定の画像の再構築を生成する、請求項1から7のいずれか一項に記載の方法。
【請求項9】
特定の動画を特徴づける複数の観測を受信するステップであって、各観測は前記特定の動画からの動画フレーム、および前記特定の動画における前記動画フレームのタイムスタンプを特定するデータを含む、ステップと、
観測ニューラルネットワークを使用して前記複数の観測のそれぞれを処理するステップであって、前記観測ニューラルネットワークは、前記観測のそれぞれについて、
前記観測を処理して、前記観測の
低次元表現を出力として生成するように構成されるステップと、
前記観測の前記
低次元表現を結合することによって
数値表現を決定するステップと、
新しいタイムスタンプを特定するデータを受信するステップと、
ジェネレータニューラルネットワークを使用して前記新しいタイムスタンプを特定する前記データおよび前記
数値表現を処理して、前記特定の動画における新しい動画フレームを生成するステップであって、前記特定の動画における前記新しい動画フレームは、前記特定の動画における前記新しいタイムスタンプでの動画フレームに対応し、かつ前記複数の観測に含まれた動画フレームではない、ステップと
を含む、コンピュータにより実施される方法。
【請求項10】
前記
数値表現が前記特定の動画の基礎を成すコンテンツを表現する数値のコレクションである、請求項9に記載の方法。
【請求項11】
前記
数値表現が前記特定の動画の意味論的な描写である、請求項9または10のいずれか一項に記載の方法。
【請求項12】
前記観測の前記
低次元表現を結合するステップが、
前記
低次元表現を加算して、前記
数値表現を生成するステップ
を含む、請求項9から11のいずれか一項に記載の方法。
【請求項13】
前記ジェネレータニューラルネットワークが、
複数のタイムステップのそれぞれにおいて、
前記タイムステップについての1つまたは複数の潜在変数をサンプリングすることと、
深層畳み込みニューラルネットワークを使用して、隠れ状態、前記サンプリングされた潜在変数、前記
数値表現、および前記新しいタイムスタンプを特定する前記データを処理することによって、前記タイムステップの時点での隠れ状態を更新して、前記更新された隠れ状態を生成することと、
前記複数のタイムステップにおける最後のタイムステップの後、
前記最後のタイムステップの後前記更新された隠れ状態から前記新しい動画フレームを生成することと
を行うように構成される、請求項9から12のいずれか一項に記載の方法。
【請求項14】
前記新しい動画フレームを生成するステップが、
前記最後のタイムステップの後前記更新された隠れ状態からピクセル十分統計量を生成するステップと、
前記ピクセル十分統計量を使用して前記新しい動画フレーム内のピクセルのカラー値をサンプリングするステップと
を含む、請求項13に記載の方法。
【請求項15】
前記ジェネレータニューラルネットワークおよび前記観測ニューラルネットワークが、事後ニューラルネットワークと併せてトレーニングされており、前記トレーニングの間、複数のトレーニング観測および対象観測を受信することと、前記1つまたは複数の潜在変数についての分布を定義する事後出力を生成することとを行うように構成されている、請求項13または14のいずれか一項に記載の方法。
【請求項16】
前記観測ニューラルネットワークがトレーニングされており、特定のタイムスタンプとの組み合わせでジェネレータニューラルネットワークによって使用され得る
数値表現を生成し、前記特定のタイムスタンプにおける前記特定の動画からの特定の動画フレームの再構築を生成する、請求項9から15のいずれか一項に記載の方法。
【請求項17】
特定の画像を特徴づける複数の観測を受信するステップであって、各観測は前記特定の画像のクロップ、および前記特定の画像における前記クロップのロケーションおよび大きさを特定するデータを含む、ステップと、
観測ニューラルネットワークを使用して前記複数の観測のそれぞれを処理するステップであって、前記観測ニューラルネットワークは、前記観測のそれぞれについて、
前記観測を処理して、前記観測の
低次元表現を出力として生成するように構成される、ステップと、
前記観測の前記
低次元表現を結合することによって
数値表現を決定するステップと、
新しいクロップのロケーションおよび新しいクロップの大きさを特定するデータを受信するステップと、
ジェネレータニューラルネットワークを使用して前記新しいクロップのロケーションおよび前記新しいクロップの大きさを特定する前記データおよび前記
数値表現を処理して、前記特定の画像の新しいクロップを生成するステップであって、前記特定の画像の前記新しいクロップは、前記新しいクロップのロケーションで前記新しいクロップの大きさを有するクロップに対応し、かつ前記複数の観測に含まれたクロップではない、ステップと
を含む、コンピュータにより実施される方法。
【請求項18】
前記
数値表現が前記特定の画像の基礎を成すコンテンツを表現する数値のコレクションである、請求項17に記載の方法。
【請求項19】
前記
数値表現が前記特定の画像の意味論的な描写である、請求項17または18のいずれか一項に記載の方法。
【請求項20】
前記観測の前記
低次元表現を結合するステップが、
前記
低次元表現を加算して、前記
数値表現を生成するステップ
を含む、請求項17から19のいずれか一項に記載の方法。
【請求項21】
前記ジェネレータニューラルネットワークが、
複数のタイムステップのそれぞれにおいて、
前記タイムステップについての1つまたは複数の潜在変数をサンプリングすることと、
深層畳み込みニューラルネットワークを使用して、隠れ状態、前記サンプリングされた潜在変数、前記
数値表現、ならびに前記新しいクロップのロケーションおよび前記新しいクロップの大きさを特定する前記データを処理することによって、前記タイムステップの時点での隠れ状態を更新して、前記更新された隠れ状態を生成することと、
前記複数のタイムステップにおける最後のタイムステップの後、
前記最後のタイムステップの後前記更新された隠れ状態から前記特定の画像の前記新しいクロップを生成することと
を行うように構成される、請求項17から20のいずれか一項に記載の方法。
【請求項22】
前記最後のタイムステップの後前記更新された隠れ状態から前記特定の画像の前記新しいクロップを生成するステップが、
前記最後のタイムステップの後前記更新された隠れ状態からピクセル十分統計量を生成するステップと、
前記ピクセル十分統計量を使用して前記新しいクロップ内のピクセルのカラー値をサンプリングするステップと
を含む、請求項21に記載の方法。
【請求項23】
前記ジェネレータニューラルネットワークおよび前記観測ニューラルネットワークが、事後ニューラルネットワークと併せてトレーニングされており、前記トレーニングの間、複数のトレーニング観測および対象観測を受信することと、前記1つまたは複数の潜在変数についての分布を定義する事後出力を生成することとを行うように構成されている、請求項21または22のいずれか一項に記載の方法。
【請求項24】
前記観測ニューラルネットワークがトレーニングされており、特定のクロップのロケーションおよび特定のクロップの大きさとの組み合わせでジェネレータニューラルネットワークによって使用可能な
数値表現を生成し、前記特定のクロップのロケーションで前記特定のクロップの大きさを有する前記特定の画像の特定のクロップの再構築を生成する、請求項17から23のいずれか一項に記載の方法。
【請求項25】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載の方法の動作を実行させる命令を記憶した1つまたは複数の記憶デバイスと
を備えるシステム。
【請求項26】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載の方法の動作を実行させる命令を記憶した1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書はニューラルネットワークを使用した画像の処理に関する。
【背景技術】
【0002】
ニューラルネットワークは、1つまたは複数の非線形ユニットの層を利用して、受信した入力について出力を予測する機械学習モデルである。いくつかのニューラルネットワークは出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層の入力として使用される。ネットワークの各層はそれぞれのパラメータの集合の現在の値にしたがって受信した入力から出力を生成する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本明細書はある環境の意味論的な表現(semantic representation)を生成する1つまたは複数のロケーションにおける、1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシーン理解システム(scene understanding system)を説明する。システムは環境を特徴づける観測(observation)を受信し、それぞれの観測は環境の画像および対応する視点データを含む。例えば、環境はあるシーン、例えば物体を含む三次元の部屋であってもよく、画像はそのシーンの画像であってもよく、視点データは各画像について画像をキャプチャしたカメラのロケーションを特定することができる。システムは環境の意味論的な表現、すなわち、観測ニューラルネットワークで観測を処理することによって、観測画像の特定のピクセル値から抽象化された環境の基礎を成すコンテンツの描写を生成する。システムは意味論的な表現に対していかなる明示的な制約または構造を課すものではなく、システムは任意の視点データから環境の新しい画像をレンダリングするのに十分表現的である意味論的な表現を生成するためにトレーニングされる。
【課題を解決するための手段】
【0004】
第1の態様によると、特定のシーンを特徴づける複数の観測を受信するステップであって、各観測は特定のシーンの画像、および画像をキャプチャしたカメラのロケーションを特定するデータを含む、ステップと、観測ニューラルネットワークを使用して複数の観測のそれぞれを処理するステップであって、観測ニューラルネットワークは、観測のそれぞれについて、観測を処理して観測の低次元表現を生成するように構成される、ステップと、観測の低次元表現を結合することによって特定のシーンの数値表現を決定するステップと、を行うように構成される、シーン理解システムが提供される。
【0005】
本手法のいくつかの利点を後述する。方法/システムの実装によって生み出される表現は、例えば一般的な画像解析/予測システムとして、または強化ラーニングシステムのフロントエンドとして、など多くの用途を有する。
【0006】
いくつかの実装形態において、数値表現は特定のシーンの基礎を成すコンテンツを表現する数値のコレクションである。
【0007】
いくつかの実装形態において、上述したように、数値表現は特定のシーンの意味論的な描写である。
【0008】
いくつかの実装形態において、観測の低次元表現を結合するステップは、低次元表現を加算して数値表現を生成するステップを含む。
【0009】
いくつかの実装形態において、システムは、新しいカメラのロケーションを特定するデータを受信するステップと、ジェネレータニューラルネットワークを使用して新しいカメラのロケーションを特定するデータおよび特定のシーンの数値表現を処理して新しいカメラのロケーションにあるカメラから得られた特定のシーンの新しい画像を生成するステップと、を行うようにさらに構成される。本明細書において使用されるように、カメラのロケーションへの言及はポジションおよび/または見る方向を含むものとして解釈される。したがって、新しいカメラのロケーションは新しいカメラのポジションおよび新しいカメラの見る方向または光軸方向の、一方または両方を含むことができる。ジェネレータニューラルネットワークは、例えば、新しい画像(または後述するように、動画フレームまたはクロップ(crop))に関するピクセル値を決定するための潜在変数の集合についての事前分布を決定することができる。潜在変数はジェネレータニューラルネットワークによって推論される変数を含むことができ、新しいカメラのロケーションおよび特定のシーンの数値表現を特定するデータによって条件づけられ得る。
【0010】
したがって、いくつかの実装形態において、ジェネレータニューラルネットワークは、複数のタイムステップのそれぞれにおいて、そのタイムステップについての1つまたは複数の潜在変数をサンプリングすることと、深層畳み込みニューラルネットワーク(deep convolutional neural network)を使用して、隠れ状態、サンプリングされた潜在変数、数値表現、および新しいカメラのロケーションを特定するデータを処理することによって、そのタイムステップ時点での隠れ状態を更新し、更新された隠れ状態を生成することと、複数のタイムステップにおける最後のタイムステップの後、最後のタイムステップの後更新された隠れ状態から特定のシーンの新しい画像を生成することとを行うように構成される。
【0011】
いくつかの実装形態において、最後のタイムステップの後更新された隠れ状態から特定のシーンの新しい画像を生成するステップは、最後のタイムステップの後更新された隠れ状態からピクセル十分統計量(pixel sufficient statistics)を生成するステップと、ピクセル十分統計量を使用して新しい画像内のピクセルのカラー値などのピクセル値をサンプリングするステップと、を含む。例示のピクセル十分統計量は、後でより詳細に説明する。
【0012】
いくつかの実装形態において、ジェネレータニューラルネットワークおよび観測ニューラルネットワークは、事後ニューラルネットワークと併せてトレーニングされており、トレーニングの間、複数のトレーニング観測および対象観測を受信することと、1つまたは複数の潜在変数についての分布を定義する事後出力を生成することとを行うように構成されている。事後モデルの使用は任意選択である。しかしながら、現在の勾配が事後ニューラルネットワークならびに観測およびジェネレータニューラルネットワークにバックプロパゲーションされ得る場合、それによって、潜在変数について事後分布を学習する。新しい画像を推論するために使用される時、例えば事後分布からサンプリングすることによって事後出力はピクセル値を生成するために使用することができる。事後ニューラルネットワークを使用することは、より正確な画像再構築を提供する助力となることができる。そのような事後モデルは、後述の第2および第3の態様にあり得る。
【0013】
いくつかの実装形態において、観測ニューラルネットワークはトレーニングされており、特定のカメラのロケーションとの組み合わせでジェネレータニューラルネットワークによって使用され得る数値表現を生成し、特定のカメラのロケーションから得られた特定のシーンの特定の画像の正確な再構築を生成する。
【0014】
第2の態様によると、特定の動画を特徴づける複数の観測を受信するステップであって、各観測は特定の動画からの動画フレーム、および特定の動画における動画フレームのタイムスタンプを特定するデータを含む、ステップと、観測ニューラルネットワークを使用して複数の観測のそれぞれを処理するステップであって、観測ニューラルネットワークは、観測のそれぞれについて、観測を処理して観測の低次元表現を生成するように構成されるステップと、観測の低次元表現を結合することによって特定の動画の数値表現を決定するステップと、を行うように構成される、シーン理解システムが提供される。
【0015】
いくつかの実装形態において、数値表現は特定の動画の基礎を成すコンテンツを表現する数値のコレクションである。
【0016】
いくつかの実装形態において、数値表現は特定の動画の意味論的な描写である。
【0017】
いくつかの実装形態において、観測の低次元表現を結合するステップは、低次元表現を加算して数値表現を生成するステップを含む。
【0018】
いくつかの実装形態において、システムは、新しいタイムスタンプを特定するデータを受信するステップと、ジェネレータニューラルネットワークを使用して新しいタイムスタンプを特定するデータおよび特定の動画の数値表現を処理して特定の動画における新しいタイムスタンプでの新しい動画フレームを生成するステップと、を行うようにさらに構成される。
【0019】
いくつかの実装形態において、ジェネレータニューラルネットワークは、複数のタイムステップのそれぞれにおいて、そのタイムステップについての1つまたは複数の潜在変数をサンプリングすることと、深層畳み込みニューラルネットワークを使用して、隠れ状態、サンプリングされた潜在変数、数値表現、および新しいタイムスタンプを特定するデータを処理することによって、そのタイムステップ時点での隠れ状態を更新し、更新された隠れ状態を生成することと、複数のタイムステップにおける最後のタイムステップの後、最後のタイムステップの後更新された隠れ状態から新しい動画フレームを生成することとを行うように構成される。
【0020】
いくつかの実装形態において、新しい動画フレームを生成するステップは、最後のタイムステップの後更新された隠れ状態からピクセル十分統計量を生成するステップと、ピクセル十分統計量を使用して新しい動画フレーム内のピクセルのカラー値などのピクセル値をサンプリングするステップと、を含む。
【0021】
いくつかの実装形態において、ジェネレータニューラルネットワークおよび観測ニューラルネットワークは、事後ニューラルネットワークと併せてトレーニングされており、トレーニングの間、複数のトレーニング観測および対象観測を受信することと、1つまたは複数の潜在変数についての分布を定義する事後出力を生成することとを行うように構成されている。
【0022】
いくつかの実装形態において、観測ニューラルネットワークはトレーニングされており、特定のタイムスタンプとの組み合わせでジェネレータニューラルネットワークによって使用され得る数値表現を生成し、特定のタイムスタンプでの特定の動画から特定の動画フレームの正確な再構築を生成する。
【0023】
第3の態様によると、特定の画像を特徴づける複数の観測を受信するステップであって、各観測は特定の画像のクロップ、および特定の画像内のクロップのロケーションおよび大きさを特定するデータを含む、ステップと、観測ニューラルネットワークを使用して複数の観測のそれぞれを処理するステップであって、観測ニューラルネットワークは、観測のそれぞれについて、観測を処理して観測の低次元表現を生成するように構成されるステップと、観測の低次元表現を結合することによって特定の画像の数値表現を決定するステップと、を行うように構成される、シーン理解システムが提供される。
【0024】
いくつかの実装形態において、数値表現は特定の画像の基礎を成すコンテンツを表現する数値のコレクションである。
【0025】
いくつかの実装形態において、数値表現は特定の画像の意味論的な描写である。
【0026】
いくつかの実装形態において、観測の低次元表現を結合するステップは、低次元表現を加算して数値表現を生成するステップを含む。
【0027】
いくつかの実装形態において、システムは、新しいクロップのロケーションおよび新しいクロップの大きさを特定するデータを受信するステップと、ジェネレータニューラルネットワークを使用して新しいクロップのロケーションおよび新しいクロップの大きさを特定するデータおよび特定の画像の数値表現を処理して新しいクロップのロケーションで新しいクロップの大きさを有する特定の画像の新しいクロップを生成するステップと、を行うようにさらに構成される。
【0028】
いくつかの実装形態において、ジェネレータニューラルネットワークは、複数のタイムステップのそれぞれにおいて、そのタイムステップについての1つまたは複数の潜在変数をサンプリングすることと、深層畳み込みニューラルネットワークを使用して、隠れ状態、サンプリングされた潜在変数、数値表現、および新しいクロップのロケーションおよび新しいクロップの大きさを特定するデータを処理することによって、そのタイムステップ時点での隠れ状態を更新し、更新された隠れ状態を生成することと、複数のタイムステップにおける最後のタイムステップの後、最後のタイムステップの後更新された隠れ状態から特定の画像の新しいクロップを生成することとを行うように構成される。
【0029】
いくつかの実装形態において、最後のタイムステップの後更新された隠れ状態から特定の画像の新しいクロップを生成するステップは、最後のタイムステップの後更新された隠れ状態からピクセル十分統計量を生成するステップと、ピクセル十分統計量を使用して新しいクロップ内のピクセルのカラー値などのピクセル値をサンプリングするステップと、を含む。
【0030】
いくつかの実装形態において、ジェネレータニューラルネットワークおよび観測ニューラルネットワークは、事後ニューラルネットワークと併せてトレーニングされており、トレーニングの間、複数のトレーニング観測および対象観測を受信することと、1つまたは複数の潜在変数についての分布を定義する事後出力を生成することとを行うように構成されている。
【0031】
いくつかの実装形態において、観測ニューラルネットワークはトレーニングされており、特定のクロップのロケーションおよび特定のクロップの大きさとの組み合わせでジェネレータニューラルネットワークによって使用され得る数値表現を生成し、特定のクロップのロケーションで特定のクロップの大きさを有する特定の画像の特定のクロップの正確な再構築を生成する。
【0032】
上述の第1、第2、および第3の態様ならびにそれらのそれぞれのさらなる特徴は組み合わされてもよい。したがって、例えば、新しい動画フレームは、異なるカメラのロケーションで、および/または新しい時間において、および/または新しいクロップで、生成されてもよい。
【0033】
上記態様は、あらゆる便利な形態で実装され得る。例えば、態様および実装形態は、有形の搬送媒体(例えば、ディスク)または非有形の搬送媒体(例えば、通信信号)であってもよい適切な搬送媒体上で搬送され得る適切なコンピュータプログラムによって実装され得る。態様はまたコンピュータプログラムを実行するプログラム可能なコンピュータの形態を取り得る好適な装置を使用して実装されてもよい。
【0034】
本明細書において記載される主題の特定の実施形態は、以下の利点の1つまたは複数を実現するように実装され得る。
【0035】
本明細書において記載される主題の特定の実施形態は、以下の利点の1つまたは複数を実現するように実装され得る。本明細書において記載されるようなシーン理解システムは、ラベルなしトレーニングデータに基づいてシーンの意味論的な描写を生成するが、シーン分類または意味論的なセグメント化などの従来のシーン理解の方法はラベル付きトレーニングデータを必要とする。したがって、本明細書において記載されるようなシステムが必要とするのは、いくつかの従来のシステムに比べ、例えばラベル付けによってトレーニングデータを前処理するための短い時間および少ない計算リソースである。さらに、ラベルなしトレーニングデータはラベル付きトレーニングデータよりも容易に利用可能であるため、本明細書において記載されるようなシステムはラベル付きトレーニングデータを必要とするいくつかの従来のシステムに比べてトレーニングデータのより大きなコレクション上でトレーニングすることができ、それによって本明細書において記載されるようなシステムはいくつかの従来のシステムによって生み出されるようなものよりも優れた意味論的な表現を生み出すことができる。
【0036】
本明細書において記載されるシーン理解システムは明示的なメカニズムを含み、環境の様々な見え方が互いにどのように関連しているかをシステムが学習することを促し、それによってシステムは無条件密度モデル(unconditional density model)など従来のシステムよりも優れた意味論的な表現を生み出す。
【0037】
本明細書において記載されるようなシーン理解システムは、環境の観測を処理する他のシステムにモジュールとして含まれてもよい。そのようなシステムの堅牢性および効率は、観測それ自身を直接処理する代わりに、シーン理解システムによって生成される観測の低次元数値表現を処理することによって改善され得る。特に、シーン理解システムによって生成される低次元数値表現を処理するために必要とされる計算リソースをより少なくできる。例えば、シーン理解システムは強化ラーニングシステムに含まれることができ、強化ラーニングシステムが環境の生の観測を直接処理する代わりに、強化ラーニングシステムによって処理するための環境の観測の低次元表現を生成する。
【0038】
本明細書の主題の1つまたは複数の実施形態の詳細が添付の図面および以下の発明を実施するための形態において説明される。主題の他の特徴、態様、および利点は、発明を実施するための形態、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0039】
【
図2】シーン理解システムを使用する、環境の意味論的な表現を生成することについての例示の処理の流れ図である。
【
図3】シーン理解システムをトレーニングすることについての例示の処理の流れ図である。
【
図4】ジェネレータモデルを使用して画像をレンダリングすること、および事前分布を生成することについての例示の処理の流れ図である。
【
図5】事後モデルを使用して事後分布を生成することについての例示の処理の流れ図である。
【発明を実施するための形態】
【0040】
異なる図面における同様の参照符号および表記は、同様の要素を指す。
【0041】
図1は例示のシーン理解システム100を示す。シーン理解システム100は、1つまたは複数のロケーションにおいて1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例であり、以下で説明するシステム、コンポーネント、および手法が実装される。
【0042】
システム100は環境122を特徴づける観測102を受信し、ここで観測は画像118および対応する視点データ120を含む。
【0043】
いくつかの実装形態において、環境122はシーン、例えば自然界のシーンまたはコンピュータで生成したシーンであり、画像118はシーンの画像、例えばRGB画像であり、視点データ120はそれぞれの画像118をキャプチャしたカメラのそれぞれのロケーションを特定するものであり、例えば何らかの固定座標系に対するカメラの三次元ポジション、ヨー、およびピッチである。
【0044】
いくつかの他の実装形態において、環境122は動画、例えば自然界またはコンピュータで生成した世界を描写する動画であり、画像118はその動画からの動画フレームであり、視点データ120はそれぞれの動画フレームのそれぞれのタイムスタンプを特定するものである。
【0045】
さらに他の実装形態において、環境122は特定の画像、例えばカメラによってキャプチャされた自然界の画像またはコンピュータで生成された画像であり、画像118は特定の画像のクロップ、すなわち、特定の画像のサブ画像であり、視点データ120は、画像118を定義する特定の画像のクロップのパラメータ、例えば、特定の画像のクロップを定義するバウンディングボックス(bounding box)の頂点の座標、を特定するものである。
【0046】
観測ニューラルネットワーク104は、環境122を特徴づける観測102のそれぞれを入力として受信し、本明細書において観測ニューラルネットワークパラメータと称されるパラメータの集合の値にしたがって観測102のそれぞれを処理し、それぞれ観測102の低次元数値表現を生成すること、を行うように構成される畳み込みニューラルネットワークである。システム100はそれぞれ観測102の低次元数値表現を結合して、環境122の数値的な意味論的な表現106、すなわち観測画像118の特定のピクセル値から抽象化された環境122の基礎を成すコンテンツの描写、を出力として生成する。
【0047】
システム100はそれぞれの観測の低次元表現を結合して意味論的な表現106を生成する。いくつかの場合においては、システム100は順列不変変換(permutation invariant transformation)、すなわち低次元表現が結合される順序に対して不変である変換、にしたがってそれぞれの観測の低次元表現を結合する。例えば、システム100はそれぞれの観測102の低次元表現を、それらを要素ごとに合計することによって結合して意味論的な表現106を生成することができる。いくつかの場合においては、システム100はそれぞれの観測の低次元表現をリカレントニューラルネットワーク(RNN)の入力として順次に提供することによってそれらを結合し、リカレントニューラルネットワークの最終的な状態を意味論的な表現106であると決定する。
【0048】
システム100は、トレーニング目的関数116を最適化することによってシステム100をトレーニングするトレーニングエンジン124以上に、意味論的な表現106に対していかなる明示的な制約または構造を課すものではない。意味論的な表現106は、環境122の意味論的な表現106を仮定する場合、ジェネレータモデル110が任意の新しい視点データ、すなわちクエリ視点データ108から、環境122の新しい画像、すなわち出力画像114をレンダリングできるために十分表現的であるべきである。
【0049】
例えば、環境122がシーンであり、クエリ視点データ108がそのシーン内のカメラの新しいロケーションを特定する場合、出力画像114は新しいカメラのロケーションでのカメラによって得られたシーンの予測される新しい画像であり得る。
【0050】
別の例として、環境122は動画であり、クエリ視点データ108がその動画の新しいタイムスタンプを特定する場合、出力画像114はその動画における新しいタイムスタンプでの、予測される新しい動画フレームであり得る。
【0051】
さらに別の例として、環境122が特定の画像であり、クエリ視点データ108がその特定の画像のクロップの新しいパラメータを特定する場合、出力画像114は新しいパラメータに対応する特定の画像の、予測される新しいクロップであり得る。
【0052】
ジェネレータモデル110は意味論的な表現106およびクエリ視点データ108を入力として受信し、本明細書においてジェネレータモデルパラメータと称されることになるパラメータの集合にしたがって入力を処理し、出力画像114についてのピクセル十分統計量、および1つまたは複数の潜在変数、すなわち入力として受信したものよりもジェネレータモデル110に対する入力を条件としてジェネレータモデル110によって値が推論される変数の集合について、本明細書において事前分布と称される確率分布、を出力として生成することを行うように構成される。出力画像/動画、フレーム/クロップについてのピクセル十分統計量とは、確率分布のパラメータを特定するデータを指し、例えば、出力画像114(または動画フレームまたはクロップ)におけるそれぞれのピクセルについての強度の予測される分布を表現する正規分布の平均および標準偏差であり、すなわち、そこからそれぞれのピクセルについての強度がサンプリングされ得る。いくつかの実装形態において、それぞれのピクセルについての強度はRGB強度であってもよく、確率分布は三次元、例えば、三次元の正規分布であってもよい。システムは、出力画像114についてのピクセル十分統計量にしたがって出力画像114のそれぞれのピクセルの強度をサンプリングすることによって、出力画像114を決定する。出力画像114をレンダリングすること、およびジェネレータモデル110を使用して事前分布を生成することについての例示の処理を、
図4を参照して説明する。
【0053】
いくつかの実装形態において、システム100は事後モデル112を含み、トレーニングエンジン124によってシステム100をトレーニングすることを容易にしている。事後モデル112は環境の意味論的な表現106、クエリ視点データ108、およびクエリ視点データ108に対応する環境の画像を受信し、本明細書において事後モデルパラメータと称されることになるパラメータの集合にしたがって入力を処理し、潜在変数について本明細書において事後分布と称される確率分布を出力として生成すること、を行うように構成される。事後モデルパラメータは、ニューラルネットワークの重みづけを含むことができる。事後モデル112を使用して事後分布を生成することについての例示の処理を、
図5を参照して説明する。
【0054】
トレーニングエンジン124は、観測ニューラルネットワークパラメータおよびジェネレータモデルパラメータの値を調節することによって、観測ニューラルネットワーク104およびジェネレータモデル110を併せてトレーニングし、クエリ視点データ108に対応する正確な出力画像114を生成する確率を向上させる。具体的に、トレーニングエンジン124は観測ニューラルネットワークパラメータおよびジェネレータモデルパラメータの値を、目的関数116に基づいて決定された勾配をバックプロパゲーションすることによって調節する。目的関数が事後モデル112によって生成される事後分布に依存する実装形態については、勾配をバックプロパゲーションすることはジェネレータモデルパラメータおよび観測ニューラルネットワークパラメータに加えて事後モデルパラメータの値を調節することを伴う。システム100をトレーニングすることについての例示の処理を、
図3を参照して説明する。
【0055】
いったんトレーニングされると、観測ニューラルネットワーク104は、環境の観測を処理する他のシステムにモジュールとして含まれてもよい。そのようなシステムの堅牢性および効率は、観測それ自身を直接処理する代わりに、観測ニューラルネットワーク104によって生成される観測の低次元数値表現を処理することによって改善され得る。例えば、環境と対話するエージェントを、環境の観測を処理してエージェントによって受信される累積報酬を最大化するであろうアクションを決定する強化ラーニングシステムによってトレーニングすることができる。観測ニューラルネットワークは強化ラーニングシステムに含まれることができ、強化ラーニングシステムが観測を直接処理してエージェントによって実施されるアクションを決定する代わりに、強化ラーニングシステムによって処理するための環境の観測の低次元表現を生成し、エージェントによって実施されるアクションを決定する。いくつかの場合においては、環境はシミュレーションされた環境であってもよく、エージェントはシミュレーションされた環境を通過することによってそのシミュレーションされた環境と対話する1つまたは複数のコンピュータプログラムとして実装されてもよい。いくつかの他の場合においては、環境は実世界の環境であってもよく、エージェントは実世界の環境と対話する機械的なエージェントであってもよい。例えば、エージェントはタスクを実施するロボット、またはその環境を通過する自律型もしくは半自律型の車両であってもよい。
【0056】
図2はシーン理解システムを使用する、環境の意味論的な表現を生成することについての例示の処理200の流れ図である。便宜上、処理200は1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実施されるものとして説明される。例えば、本明細書にしたがって適切にプログラムされるシーン理解システム、例えば
図1のシーン理解システム100、は処理200を実施することができる。
【0057】
システムは環境を特徴づける観測を受信し、ここで観測はペアリングされた画像および視点データ(ステップ202)を含む。いくつかの実装形態において、環境はシーン、例えば自然界のシーンまたはコンピュータで生成したシーンであり、画像はシーンの画像、例えばRGB画像であり、視点データはそれぞれの画像をキャプチャしたカメラのそれぞれのロケーションを特定するものであり、例えばカメラの三次元ポジション、ヨー、およびピッチである。いくつかの他の実装形態において、環境は動画、例えば自然界またはコンピュータで生成した世界を描写する動画であり、画像はその動画からの動画フレームであり、視点データはそれぞれの動画フレームのそれぞれのタイムスタンプを特定するものである。さらに他の実装形態において、環境は特定の画像、例えばカメラによってキャプチャされた自然界の画像またはコンピュータで生成された画像であり、画像は特定の画像のクロップ、すなわち、特定の画像のサブ画像であり、視点データは、画像を定義する特定の画像のクロップのパラメータ、例えば、特定の画像のクロップを定義するバウンディングボックスの頂点の座標、を特定するものである。
【0058】
観測ニューラルネットワークは観測ニューラルネットワークパラメータの値にしたがって観測のそれぞれを処理し、出力としてそれぞれの観測の低次元表現を生成する(ステップ204)。
【0059】
いくつかの実装形態において、観測ニューラルネットワークは視点データおよび対応する画像の連結を入力として受信するように構成される。本明細書において、視点データおよび対応する画像または特徴マップを連結することは、対応する画像または特徴マップの空間次元における視点データの値を「ブロードキャスト(broadcasting)」し、正しい大きさを取得すること、すなわち対応する画像または特徴マップのそれぞれの空間次元に沿って視点データの値を反復して付加することを指す。特徴マップとは、ネットワーク入力を処理することに応答する、ニューラルネットワークの隠れ層において生成される活性化のアレイを指す。
【0060】
いくつかの他の実装形態において、観測ニューラルネットワークは画像を観測ニューラルネットワークの第1の層への入力として受信するように構成され、システムは視点データを観測ニューラルネットワークの1つまたは複数の中間層、すなわち、第1の層の後の1つまたは複数の層の特徴マップと連結することによって観測ニューラルネットワークに視点データを提供し、連結された特徴マップと視点データを入力として観測ニューラルネットワークの次の層、すなわち中間層の後の層へ提供する。
【0061】
システムはそれぞれの観測の低次元表現を結合して環境の意味論的な表現を生成する(ステップ206)。いくつかの実装形態において、システムは順列不変変換、すなわち低次元表現が結合される順序に対して不変である変換、にしたがって、例えば、要素ごとにそれらを合計することにより、それぞれの観測の低次元表現を結合して意味論的な表現を生成する。いくつかの他の実装形態において、システムはそれぞれの観測の低次元表現をRNNの入力として順次に提供することによってそれらを結合し、リカレントニューラルネットワークの最終的な状態を意味論的な表現であると決定する。
【0062】
図3はシーン理解システムをトレーニングすることについての例示の処理300の流れ図である。便宜上、処理300は1つまたは複数のロケーションに位置する1つまたは複数のコンピュータを含むエンジンによって実施されるものとして説明される。例えば、本明細書にしたがって適切にプログラムされるトレーニングエンジン、例えば
図1のトレーニングエンジン124、は処理300を実施することができる。
【0063】
エンジンはトレーニングデータの集合において特定の環境に対応するランダムな数の観測を選択する(ステップ302)。トレーニングデータは同一のタイプの複数の環境、すなわち複数のシーン環境または複数の動画環境、に対応する観測の集合、を含む。一般的に、異なる環境は異なる数の対応する観測を有することができる。
【0064】
エンジンは選択された観測を入力として、観測ニューラルネットワークパラメータの値にしたがって選択された観測を処理する観測ニューラルネットワークに提供し、環境の意味論的な表現を生成する(ステップ304)。環境の意味論的な表現を生成する処理が
図2を参照して説明される。
【0065】
エンジンは、特定の環境に対応する、本明細書において対象観測と称される、さらなる観測をトレーニングデータの集合から選択する(ステップ306)。例えば、エンジンはステップ302で選択されなかった観測の中から、特定の環境に対応する観測をランダムにサンプリングすることができる。
【0066】
システムはその対象観測、すなわち対象画像および対象視点データ、ならびに環境の意味論的な表現を入力として事後モデルに提供し、事後モデルは事後モデルパラメータの集合の値にしたがってその入力を処理し、出力として潜在変数の集合についての事後分布を生成する(ステップ308)。事後分布を生成する処理が
図5を参照して説明される。
【0067】
システムは環境の意味論的な表現および対象観測の対象の視点データをジェネレータモデルに提供し、ジェネレータモデルは、ジェネレータモデルパラメータの集合の値および事後モデルによって生成された事後分布にしたがって意味論的な表現および対象の視点データを処理し、出力画像についてのピクセル十分統計量および潜在変数の集合についての事前分布を出力として生成する(ステップ312)。ジェネレータモデルおよび事後モデルによって生成される事後分布を使用する、出力画像についての事前分布およびピクセル十分統計量を生成することについての例示の処理が
図4を参照して説明される。具体的に、
図4のステップ408において、システムは事後モデルによって生成されるタイムステップについての事後分布からサンプリングすることによって、それぞれのタイムステップに対応する潜在変数の値を決定する。
【0068】
エンジンは損失関数の勾配を決定し、その勾配をバックプロパゲーションしてシステムのパラメータを調節する(ステップ316)。いくつかの実装形態において、損失関数は次のように与えられる(または、含む):
logpθ(x│z,y) - KL[q(z|x,y)||pψ(z|y)]
ここで、yは対象の視点データであり、xは対象画像であり、pθ(x│z,y)は事後モデルによって生成された事後分布にしたがってジェネレータモデルによって生成された出力画像のピクセル十分統計量による対象画像xの確率であり、pψ(z|y)はジェネレータモデルによって決定された潜在変数についての事前分布であり、q(z|x,y)は事後モデルによって生成された潜在変数についての事後分布であり、KLはカルバック・ライブラー・ダイバージェンス尺度、すなわち1つの確率分布が別のものからどれだけ異なっているかの尺度である。これらの実装形態において、勾配をバックプロパゲーションすることはジェネレータモデル、事後モデル、および観測ニューラルネットワークのパラメータを調節して損失関数を最小化することを伴う。
【0069】
図4はジェネレータニューラルネットワークを使用して画像をレンダリングすること、および事前分布を生成することについての例示の処理400の流れ図である。便宜上、処理400は1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実施されるものとして説明される。例えば、本明細書にしたがって適切にプログラムされるシーン理解システム、例えば
図1のシーン理解システム100、は処理400を実施することができる。
【0070】
ジェネレータモデルは環境の意味論的な表現および視点データを受信する(ステップ402)。例えば、環境がシーンである場合、視点データはそのシーンにおけるカメラのロケーションを特定することができる。別の例として、環境が動画である場合、視点データはその動画のタイムスタンプを特定することができる。さらに別の例として、環境が特定の画像である場合、視点データはその特定の画像のクロップのパラメータを特定することができる。
【0071】
システムは例えば、ジェネレータモデルのリカレントニューラルネットワークの状態を初期化する(ステップ404)。いくつかの実装形態において、リカレントニューラルネットワークは畳み込みスキップコネクション(skip-connection)長短期記憶(LSTM)ネットワークであり、システムはジェネレータモデルのリカレントニューラルネットワークの状態を、それらをゼロに設定することにより初期化する。すなわち:
【0072】
【0073】
ここで
【0074】
【0075】
はタイムステップゼロにおけるセル状態を表し、
【0076】
【0077】
はタイムステップゼロにおけるスキップコネクション状態を表し、
【0078】
【0079】
はタイムステップゼロにおける出力状態を表す。
【0080】
所定の数のタイムステップのそれぞれにおいて、ジェネレータモデルの潜在変数ニューラルネットワークは潜在変数ニューラルネットワークパラメータの集合にしたがって、そのタイムステップについてのリカレントニューラルネットワークの状態を処理し、出力としてタイムステップに対応する潜在変数の部分集合についての事前分布の十分統計量の集合を生成する(ステップ406)。いくつかの実装形態において、潜在変数ニューラルネットワークはタイムステップについてのリカレントニューラルネットワークの出力状態を処理し、出力として事前分布の十分統計量の集合を生成する。いくつかの実装形態において、潜在変数ニューラルネットワークは畳み込みニューラルネットワークである。
【0081】
それぞれのタイムステップにおいて、ジェネレータモデルはタイムステップに対応する潜在変数の値を決定する(ステップ408)。システムをトレーニングしている間、
図3の処理300を参照して説明されるように、ジェネレータモデルは事後モデルによって生成された事後分布からサンプリングすることによりタイムステップに対応する潜在変数の値を決定する。以前には見られなかった視点に対応する環境の新しい画像を生成するために、ジェネレータモデルは、ジェネレータモデルによって生成された事前分布から、またはいくつかの場合においては、標準正規分布(すなわち、平均値が0および分散が1の正規分布)から、サンプリングすることによりタイムステップに対応する潜在変数の値を決定する。
【0082】
ジェネレータモデルは、リカレントニューラルネットワークパラメータの集合にしたがって、意味論的な表現、視点データ、リカレントニューラルネットワークの1つまたは複数の現在の状態、およびタイムステップについての1つまたは複数の潜在変数の値を処理することによって、タイムステップについてのジェネレータモデルの状態を更新する(ステップ410)。例えば、ジェネレータモデルは以下の関係にしたがってジェネレータモデルの状態を更新することができる:
【0083】
【0084】
【0085】
ここで
【0086】
【0087】
は畳み込みLSTMネットワークの状態更新を表現し、Δは転置された畳み込み層であり、vqは視点データであり、rは環境の意味論的な表現であり、
【0088】
【0089】
は時間(l+1)におけるリカレントニューラルネットワークのセル状態であり、
【0090】
【0091】
は時間(l+1)におけるリカレントニューラルネットワークの出力状態であり、zlはタイムステップについての潜在変数である。
【0092】
システムは、現在のタイムステップが所定の数のタイムステップの最終タイムステップかどうかを判断する(ステップ412)。
【0093】
現在のタイムステップが所定の数のタイムステップの最終タイムステップではないと判断することに応答して、システムはステップ406に戻り、先行のステップを反復する。
【0094】
現在のタイムステップが所定の数のタイムステップの最終タイムステップであると判断することに応答して、システムはリカレントニューラルネットワークの現在の状態を入力としてデコーダニューラルネットワークに提供すること、およびデコーダニューラルネットワークパラメータの集合にしたがって状態を処理することによって、新しい視点データに対応する環境の新しい画像を生成する(ステップ414)。いくつかの実装形態において、システムはリカレントニューラルネットワークのスキップコネクション状態を入力としてデコーダニューラルネットワークに提供する。デコーダニューラルネットワークは出力画像のピクセルの強度についてのピクセル十分統計量を出力として生成し、システムはピクセル十分統計量にしたがって出力画像をサンプリングする。例えば、環境がシーンであり視点データがそのシーン内のカメラの新しいロケーションを特定する場合、出力画像は新しいカメラのロケーションでのカメラによって得られたシーンの、予測される新しい画像であり得る。別の例として、環境は動画であり、視点データがその動画の新しいタイムスタンプを特定する場合、出力画像はその動画における新しいタイムスタンプでの、予測される新しい動画フレームであり得る。さらに別の例として、環境が特定の画像であり視点データがその特定の画像のクロップの新しいパラメータを特定する場合、出力画像は新しいパラメータに対応する特定の画像の、予測される新しいクロップであり得る。
【0095】
図5は事後モデルを使用して潜在変数について事後分布を生成することについての例示の処理500の流れ図である。便宜上、処理500は1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実施されるものとして説明される。例えば、本明細書にしたがって適切にプログラムされるシーン理解システム、例えば
図1のシーン理解システム100、は処理500を実施することができる。
【0096】
事後モデルは環境の意味論的な表現、視点データ、および視点データに対応する環境の画像を受信する(ステップ502)。例えば、環境がシーンであり視点データがそのシーン内のカメラのロケーションを特定する場合、画像はそのカメラのロケーションでのカメラによって得られたシーンの、画像であり得る。別の例として、環境は動画であり、視点データがその動画のタイムスタンプを特定する場合、画像はその動画におけるタイムスタンプでの、新しい動画フレームであり得る。さらに別の例として、環境が特定の画像であり視点データがその特定の画像のクロップのパラメータを特定する場合、画像はパラメータに対応する特定の画像の、クロップであり得る。
【0097】
システムは、事後モデルのリカレントニューラルネットワークの状態を初期化する(ステップ504)。いくつかの実装形態において、リカレントニューラルネットワークは畳み込みLSTMネットワークであり、システムは事後モデルのリカレントニューラルネットワークの状態を、それらをゼロに設定することにより初期化する。すなわち:
【0098】
【0099】
ここで
【0100】
【0101】
はセル状態を表し、
【0102】
【0103】
はタイムステップゼロにおける出力状態を表す。
【0104】
所定の数のタイムステップのそれぞれにおいて、事後モデルの潜在変数ニューラルネットワークは潜在変数ニューラルネットワークパラメータの集合にしたがって、そのタイムステップについてのリカレントニューラルネットワークの現在の状態を処理し、タイムステップに対応する潜在変数の部分集合についての事後分布の十分統計量の集合を出力として生成する(ステップ506)。いくつかの実装形態において、事後モデルによって処理された現在の状態は、事後モデルのリカレントニューラルネットワークの出力状態である。いくつかの実装形態において、事後モデルの潜在変数ニューラルネットワークは畳み込みニューラルネットワークである。
【0105】
それぞれのタイムステップにおいて、事後モデルはそのタイムステップについての事後分布からサンプリングし、タイムステップに対応する潜在変数の部分集合についての値を決定する(ステップ508)。
【0106】
事後モデルは意味論的な表現、視点データ、事後モデルのリカレントニューラルネットワークの1つまたは複数の現在の状態、タイムステップについての事後分布からサンプリングしたタイムステップについての1つまたは複数の潜在変数を処理することによって、またいくつかの実装形態において、事後モデルのリカレントニューラルネットワークのパラメータの集合にしたがってジェネレータモデルのリカレントニューラルネットワークの1つまたは複数の現在の状態を処理することによって、タイムステップについての事後モデルの状態を更新する(ステップ510)。例えば、事後モデルは以下の関係にしたがって事後モデルの状態を更新することができる:
【0107】
【0108】
ここで、
【0109】
【0110】
は事後モデルの畳み込みLSTMネットワークの状態更新を表現し、xqは環境の画像であり、vqは視点データであり、rは環境の意味論的な表現であり、
【0111】
【0112】
は時間(l+1)における事後モデルのリカレントニューラルネットワークのセル状態であり、
【0113】
【0114】
は時間(l+1)における事後モデルのリカレントニューラルネットワークの出力状態であり、
【0115】
【0116】
は時間lにおけるジェネレータモデルのリカレントニューラルネットワークの出力状態であり、
【0117】
【0118】
はタイムステップlにおけるジェネレータモデルのリカレントニューラルネットワークのスキップコネクション状態を表し、zlは事後分布からサンプリングされたタイムステップについての潜在変数である。
【0119】
システムは、現在のタイムステップが所定の数のタイムステップの最終タイムステップかどうかを判断する(ステップ512)。
【0120】
現在のタイムステップが所定の数のタイムステップの最終タイムステップであると判断することに応答して、事後モデルはタイムステップのそれぞれについて1つまたは複数の潜在変数について事後分布を出力する(ステップ514)。
【0121】
本明細書では用語「構成される」をシステムおよびコンピュータプログラムのコンポーネントと関連付けて使用する。特定の動作またはアクションを実施するように構成される1つまたは複数のコンピュータのシステムについては、システムにはソフトウェア、ファームウェア、ハードディスクまたはその組み合わせがインストールされており、動作時にはそれらがシステムに動作またはアクションを実施させることを意味する。特定の動作またはアクションを実施するように構成される1つまたは複数のコンピュータプログラムについては、1つまたは複数のプログラムがデータ処理装置によって実行される時、装置に動作またはアクションを実施させる命令を含むことを意味する。
【0122】
本明細書において記載される主題の実施形態および機能的な動作は、本明細書において開示される構造およびその構造的な等価物を含む、デジタル電子回路、有形に具体化されているコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、またはそれらの1つまたは複数の組み合わせにおいて実装することができる。本明細書において記載される主題の実施形態は1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のため、またはデータ処理装置の動作を制御するために、有形な非一時的記憶媒体上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュール、として実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの1つまたは複数の組み合わせであってもよい。代替で、または追加で、プログラム命令は人工的に生成された伝播信号、例えばデータ処理装置によって実行されるために好適な受信機装置に送信するために情報をエンコードするために生成された、機械生成の電気的、光学的、または電磁気的な信号、にエンコードすることができる。
【0123】
用語「データ処理装置」はデータ処理を行うハードウェアを指し、データ処理のためのすべての種類の装置、デバイス、および機械を包含し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。装置はまた特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)であってよく、またはこれらをさらに含んでもよい。装置は、任意選択で、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つもしくは複数の組み合わせを構成するコードを含んでもよい。
【0124】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと称され得るまたは記載され得るコンピュータプログラムは、コンパイラ型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含むあらゆる形態のプログラム言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に好適な他の単位としての形態を含む、あらゆる形態として展開することができる。プログラムは、ファイルシステム内のファイルに対応することができるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータを保有するファイルの一部に記憶することができ、例えばマークアップ言語文書、対象のプログラム専用の単一のファイル、または複数のコーディネートされたファイル、例えば1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル、に記憶された1つまたは複数のスクリプトなどである。コンピュータプログラムは、1つのサイトに位置するまたは複数のサイトにまたがって分散される1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され、データ通信ネットワークで相互接続することができる。
【0125】
本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実施するためにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを参照するために、広範に使用される。一般的に、エンジンは、1つまたは複数のロケーションにおいて1つまたは複数のコンピュータにインストールされる、1つまたは複数のソフトウェアモジュールもしくはコンポーネントとして実装されることになる。いくつかの場合においては、1つまたは複数のコンピュータは特定のエンジンに専用となり、他の場合では、複数のエンジンを同一のコンピュータまたは複数のコンピュータ上にインストールして実行することができる。
【0126】
本明細書に記載される処理および論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実施し、入力データを演算することまたは出力を生成することによって機能を実施することができる。処理および論理フローはまた、特殊目的論理回路、例えばFPGAもしくはASICによって、または特殊目的論理回路と1つまたは複数のプログラムされたコンピュータとの組み合わせによって、実施することができる。
【0127】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは特殊目的のマイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理装置に基づくことができる。一般的に、中央処理装置は読み取り専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受信する。コンピュータの本質的な要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、特殊目的論理回路によって補うことができ、または特殊目的論理回路に組み込むことができる。一般的に、コンピュータはまたデータを記憶するために、例えば、磁気的、磁気光学的ディスク、または光学ディスクなど、1つまたは複数の大容量記憶デバイスを含み、または1つまたは複数の大容量記憶デバイスからデータを受信し、または1つまたは複数の大容量記憶デバイスにデータを送信するため、またはその両方のために、動作可能に接続される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、いくつかの例を挙げると、例えば携帯電話、携帯情報端末(PDA)、モバイル型の音声もしくは動画プレーヤ、ゲーム機、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブ、に埋め込むことができる。
【0128】
コンピュータプログラム命令およびデータを記憶するために好適なコンピュータ読み取り可能媒体は、例として半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば内部ハードディスクまたは取り外し可能ディスク、磁気光学的ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、非揮発性のメモリ、媒体、およびメモリデバイスのすべての形態を含む。
【0129】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、キーボード、およびポインティングデバイス、例えばマウスまたはトラックボールを有するコンピュータ上に実装することができ、それによってユーザはコンピュータに入力を与えることができる。同様に他の種類のデバイスを、ユーザとの対話を提供するために使用することができる。例えば、ユーザに提供されるフィードバックはあらゆる形態の感覚的なフィードバック、例えば視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバックであってよく、ユーザからの入力は、音響、発話または触覚的な入力を含む、あらゆる形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信すること、およびそのようなデバイスから文書を受信することによって、ユーザと対話することができ、例えばウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、である。また、コンピュータはテキストメッセージまたは他の形態のメッセージを、個人のデバイス、例えばメッセージングアプリケーションを実行中のスマートフォン、に送信することによって、および返信としてユーザから応答的なメッセージを受信することによって、ユーザと対話することができる。
【0130】
機械学習モデルを実装するためのデータ処理装置はまた、例えば機械学習トレーニングまたはプロダクション、すなわち推論、ワークロードの共通および計算集中部分を処理するための特殊目的ハードウェアアクセラレータユニットを含むことができる。
【0131】
機械学習モデルは機械学習フレームワーク、例えば、TensorFlow framework、Microsoft Cognitive Toolkit framework、Apache Singa framework、またはApache MXNet framework、を使用して実装され、展開することができる。
【0132】
本明細書において記載される主題の実施形態はバックエンドコンポーネント、例えば、データサーバとして、を含むコンピューティングシステム、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含むコンピューティングシステム、またはフロントエンドコンポーネント、例えば、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはそれを通じてユーザが本明細書において記載される主題の実装形態と対話することができるアプリを有するクライアントコンピュータを含むコンピューティングシステム、または1つまたは複数のそのようなバックエンド、ミドルウェア、フロントエンドコンポーネントのあらゆる組み合わせ、に実装することができる。システムのコンポーネントは、デジタルデータ通信のあらゆる形態または媒体、例えば通信ネットワークによって、相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、例えばインターネットが挙げられる。
【0133】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般的に、互いに離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行しており、互いのクライアント-サーバ関係を有しているコンピュータプログラムのおかげで成立する。いくつかの実施形態において、例えばクライアントとして振る舞うデバイスと対話するユーザにデータを表示する目的のため、およびそのようなユーザからユーザ入力を受信する目的のために、サーバはデータ、例えばHTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、例えばユーザ対話の結果は、サーバにおいてデバイスから受信することができる。
【0134】
本明細書は多くの具体的な実装形態の詳細を含む一方で、これらはあらゆる発明の範囲または特許請求され得る範囲に対する限定と解釈されるべきではなく、特定の発明の特定の実施形態に特異的であり得る特徴の説明と解釈されるべきである。別個の実施形態の文脈において本明細書で記載される特定の特徴は、単一の実施形態において組み合わせとして実装されてもよい。逆に、単一の実施形態の文脈において記載される様々な特徴はまた、複数の実施形態に別個に、またはあらゆる好適なサブ組み合わせとして実装されてもよい。さらに、特徴はある組み合わせにおいて振る舞うとして上述され得、また初めにそのようなものとして特許請求されさえもするが、特許請求される組み合わせからの1つまたは複数の特徴は、いくつかの場合、その組み合わせから切り出され、特許請求される組み合わせはサブ組み合わせまたはサブ組み合わせの変形を対象とすることができる。
【0135】
同様に、動作は特定の順序で図面に描写され、また特許請求の範囲に列挙されるが、これは所望の結果を達成するために、そのような動作が示される特定の順序もしくは順次に実施されること、またはすべての例示される動作が実施されること、を要求するものとして理解されるべきではない。ある状況においては、マルチタスクおよび並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムのモジュールとコンポーネントの分離は、すべての実施形態においてそのような分離を要求するものとして理解されるべきではなく、記載されるプログラムコンポーネントおよびシステムは全体的に単一のソフトウェア製品に一体化すること、または複数のソフトウェア製品にパッケージングすることができることが理解されるべきである。
【0136】
主題の特定の実施形態が説明されてきた。他の実施形態が以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に列挙されるアクションを異なる順で実施することができるが、なお所望の結果を達成することができる。一例として、添付の図面において描写される処理は、所望の結果を達成するために、必ずしも示される特定の順序、または順次であることを要求しない。いくつかの場合においては、マルチタスクおよび並列処理が有利であり得る。
【符号の説明】
【0137】
100 シーン理解システム
102 観測
104 観測ニューラルネットワーク
106 意味論的な表現
108 クエリ視点データ
110 ジェネレータモデル
112 事後モデル
114 出力画像
116 目的関数
118 画像
120 視点データ
122 環境
124 トレーニングエンジン