(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024169343
(43)【公開日】2024-12-05
(54)【発明の名称】美的制御可能な立体視変換
(51)【国際特許分類】
G06T 19/00 20110101AFI20241128BHJP
G06T 7/00 20170101ALI20241128BHJP
H04N 13/268 20180101ALI20241128BHJP
【FI】
G06T19/00 F
G06T7/00 350C
H04N13/268
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024078523
(22)【出願日】2024-05-14
(31)【優先権主張番号】63/503,931
(32)【優先日】2023-05-23
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/473,947
(32)【優先日】2023-09-25
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
(71)【出願人】
【識別番号】500324510
【氏名又は名称】ディズニー エンタープライジーズ インコーポレイテッド
(71)【出願人】
【識別番号】505012874
【氏名又は名称】アイトゲノシシュ・テクニシェ・ホッホシューレ・チューリッヒ
(74)【代理人】
【識別番号】100073184
【弁理士】
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100175042
【弁理士】
【氏名又は名称】高橋 秀明
(74)【代理人】
【識別番号】100224775
【弁理士】
【氏名又は名称】南 毅
(72)【発明者】
【氏名】クリストファー リチャード シュレーアース
(72)【発明者】
【氏名】ダニエル クリスティーナ コスタ
(72)【発明者】
【氏名】エリカ ヴァリス ドゲット
(72)【発明者】
【氏名】シノブ ハットリ
(72)【発明者】
【氏名】エヴァン パトリック ジェイコブス
(72)【発明者】
【氏名】ルーカス フランチェスコ メール
(72)【発明者】
【氏名】マイケル カジミール リード
【テーマコード(参考)】
5B050
5L096
【Fターム(参考)】
5B050AA08
5B050AA09
5B050BA06
5B050BA13
5B050CA01
5B050DA01
5B050EA19
5B050FA02
5B050FA05
5B050FA06
5L096EA03
5L096FA18
5L096FA69
5L096GA10
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
【課題】本発明は、立体視変換を行う技術を示す。
【解決手段】この技術は、第1の機械学習モデルによって、入力画像に描かれたオブジェクトと関連付けられた奥行情報を生成するステップを含む。本技術は、第2の組の機械学習モデルによって、入力画像について奥行情報に基づいた視差マップを生成するステップも含む。本技術は、更に、第2の組の機械学習モデルによって、入力画像から特徴データを抽出して、その特徴データを、生成された視差マップに基づいてワープさせるステップを含む。本技術は、更に、第2の組の機械学習モデルによって、入力画像と出力画像を一緒に見た際に立体視対の画像を形成するように出力画像を生成するステップを含む。様々な機械学習モデルで用いる関数および変形は、全微分可能で、機械学習モデルのエンドツーエンド訓練の改良を可能にする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
立体視変換を行うコンピュータを利用した方法において、
入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、該入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記入力画像から、該入力画像内の前記画素を表す特徴データを抽出するステップと、
前記特徴データによって表された各画素に、前記予想視差マップに基づいて、オフセットを適用するステップと、
前記特徴データによって表され、同じ画素位置にオフセットされた複数のオフセット画素を特定するステップと、
各前記複数のオフセット画素に、視認性値を、前記予想視差マップに基づいて付与するステップと、
各前記複数のオフセット画素を、前記視認性値に基づいて、該複数のオフセット画素の1つの画素が視認可能で、その他の該複数のオフセット画素が隠れるように変更するステップと、
出力画像を、前記特徴データおよび前記変更した複数のオフセット画素に基づいて、前記入力画像と該出力画像が立体視対の画像を形成するように生成するステップと
を含むコンピュータを利用した方法。
【請求項2】
前記予想視差マップを生成するステップは、
前記入力画像の解像度を下げたバージョンを生成するステップと、
画素毎の奥行値を、前記入力画像の前記解像度を下げたバージョンに描かれた前景および背景オブジェクトを表す画素に付与するステップと、
前記視差マップにおいて、画素毎の予想視差値を前記奥行値に基づいて付与して、該予想視差マップで前景オブジェクトを表す画素に、背景オブジェクトを表す画素より大きい視差値を付与するステップと、
前記入力画像の前記解像度を下げたバージョンと関連付けられた画素毎の前記視差マップの値を、該入力画像の元の解像度にアップサンプリングするステップと
を含むものである、請求項1に記載のコンピュータを利用した方法。
【請求項3】
前記入力画像について、1つ以上のユーザによるアノテーションを受け付けるステップであって、各該ユーザによるアノテーションは、該入力画像の選択部分の特定、および、該選択部分と関連付けられたグラウンドトゥルース視差値を含むものであるステップと、
前記入力画像の前記選択部分についての前記画素毎の予想視差値を、該入力画像の該選択部分についての前記関連付けられたグラウンドトゥルース視差値とアラインさせるステップと
を更に含む、請求項2に記載のコンピュータを利用した方法。
【請求項4】
前記入力画像についての各前記1つ以上のユーザによるアノテーションは、該入力画像の一部を囲む境界ボックス、該入力画像の部分を示す1つ以上のブラシストローク、または、該入力画像に描かれたオブジェクトの手動選択の少なくとも1つを含むものである、請求項3に記載のコンピュータを利用した方法。
【請求項5】
各前記複数のオフセット画素を変更するステップは、
前記複数のオフセット画素について関連付けられた前記視差マップの値を比較するステップと、
前記複数のオフセット画素の前記1つの画素を、最も高い視差マップの値を有する該複数のオフセット画素の該1つの画素に基づいて視認可能なようにレンダリングし、一方、より低い視差マップの値を有する同じ画素位置の画素を隠すようにするステップと
を含むものである、請求項1に記載のコンピュータを利用した方法。
【請求項6】
前記1つ以上の機械学習モデルによって行われる全ての関数および変形は、全微分可能である、請求項1に記載のコンピュータを利用した方法。
【請求項7】
前記抽出した特徴データによって表された各オフセット画素に前記オフセットを適用した後に、該特徴データにおける画像背景の一部がディスオクルージョンされる画素位置を表すディスオクルージョンマスクを生成するステップと、
前記ディスオクルージョンマスクによって表された前記画素位置を、前記画像背景から選択された画像データで補完するステップと、
前記出力画像を、前記変更した複数のオフセット画素、および、前記補完された前記ディスオクルージョンマスクによって表された画素位置に基づいて生成するステップと
を更に含む、請求項1に記載のコンピュータを利用した方法。
【請求項8】
前記ディスオクルージョンマスクによって表された画素位置を補完するのに用いた前記画像データは、近傍系自己アテンション技術を適用することによって選択されたものである、請求項7に記載のコンピュータを利用した方法。
【請求項9】
前記入力画像は、ビデオシーケンスの単一のフレームであり、方法は、更に、
入力として、1つ以上のキーフレームを受け付けて、各該キーフレームは、前記入力画像から時間的距離に位置する前記ビデオシーケンスからのフレームを含むものであるステップと、
各前記キーフレームについての予想視差マップを、該キーフレーム内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記キーフレームおよび前記入力画像に描かれたオブジェクトの位置の変化を記述する該入力画像と各該キーフレームの間の動きベクトルを、各該キーフレームについての予想視差マップに基づいて作成するステップと、
各前記キーフレームから、キーフレーム特徴データを抽出するステップと、
前記動きベクトルを、各前記キーフレームについて抽出した前記キーフレーム特徴データに適用して、前記ディスオクルージョンマスクによって表された画素位置を補完するステップを導くステップと、
を含む、請求項7に記載のコンピュータを利用した方法。
【請求項10】
複数のキーフレームを入力として受け付けて、該複数のキーフレームは、前記入力画像から指数関数的に増加する時間的距離で選択されるものである、請求項9に記載のコンピュータを利用した方法。
【請求項11】
1つ以上の非一時的なコンピュータ読取可能媒体において、該媒体は命令を記憶し、該命令は、1つ以上の処理部によって実行された時に、該1つ以上の処理部に、
入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、該入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記入力画像から、該入力画像内の前記画素を表す特徴データを抽出するステップと、
前記特徴データによって表された各画素に、前記予想視差マップに基づいて、オフセットを適用するステップと、
前記特徴データによって表され、同じ画素位置にオフセットされた複数のオフセット画素を特定するステップと、
各前記複数のオフセット画素に、視認性値を、前記予想視差マップに基づいて付与するステップと、
各前記複数のオフセット画素を、前記視認性値に基づいて、該複数のオフセット画素の1つの画素が視認可能で、その他の該複数のオフセット画素が隠れるように変更するステップと、
出力画像を、前記特徴データおよび前記変更した複数のオフセット画素に基づいて、前記入力画像および該出力画像が立体視対の画像を形成するように生成するステップと
を行わせるものである1つ以上の非一時的なコンピュータ読取可能媒体。
【請求項12】
前記命令は、更に、前記1つ以上の処理部に、
前記入力画像の解像度を下げたバージョンを生成するステップと、
画素毎の奥行値を、前記入力画像の前記解像度を下げたバージョンに描かれた前景および背景オブジェクトを表す画素に付与するステップと、
前記視差マップにおいて、画素毎の予想視差値を前記奥行値に基づいて付与して、該予想視差マップで前景オブジェクトを表す画素に、背景オブジェクトを表す画素より大きい視差値を付与するステップと、
前記入力画像の前記解像度を下げたバージョンと関連付けられた画素毎の前記視差マップの値を、該入力画像の元の解像度にアップサンプリングするステップと
を行わせるものである、請求項11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【請求項13】
前記命令は、更に、前記1つ以上の処理部に、
前記入力画像について、1つ以上のユーザによるアノテーションを受け付けるステップであって、各該ユーザによるアノテーションは、該入力画像の選択部分の特定、および、該選択部分と関連付けられたグラウンドトゥルース視差値を含むものであるステップと、
前記入力画像の前記選択部分についての前記画素毎の予想視差値を、該入力画像の該選択部分についての前記関連付けられたグラウンドトゥルース視差値とアラインさせるステップと
を行わせるものである、請求項12に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【請求項14】
各前記複数のオフセット画素を変更するステップを行わせる命令は、更に、前記1つ以上の処理部に、
前記複数のオフセット画素について前記関連付けられた視差マップの値を比較するステップと、
前記複数のオフセット画素の前記1つの画素を、最も高い視差マップの値を有する該複数のオフセット画素の該1つの画素に基づいて視認可能なようにレンダリングし、一方、より低い視差マップの値を有する同じ画素位置の画素を隠すようにするステップと
を行わせるものである、請求項11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【請求項15】
前記命令は、更に、前記1つ以上の処理部に、
前記抽出した特徴データによって表された各オフセット画素に前記オフセットを適用した後に、該特徴データにおける画像背景の一部がディスオクルージョンされる画素位置を表すディスオクルージョンマスクを生成するステップと、
前記ディスオクルージョンマスクによって表された前記画素位置を、前記画像背景から選択された画像データで補完するステップと、
前記出力画像を、前記変更した複数のオフセット画素、および、前記補完された前記ディスオクルージョンマスクによって表された画素位置に基づいて生成するステップと
を行わせるものである、請求項11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【請求項16】
前記入力画像は、ビデオシーケンスの単一のフレームであり、
前記命令は、更に、前記1つ以上の処理部に、
入力として、1つ以上のキーフレームを受け付けて、各該キーフレームは、前記入力画像から時間的距離に位置する前記ビデオシーケンスからのフレームを含むものであるステップと、
各前記キーフレームについての予想視差マップを、該キーフレーム内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記キーフレームおよび前記入力画像に描かれたオブジェクトの位置の変化を記述する該入力画像と各該キーフレームの間の動きベクトルを、各該キーフレームについての前記予想視差マップに基づいて作成するステップと、
各前記キーフレームから、キーフレーム特徴データを抽出するステップと、
前記動きベクトルを、各前記キーフレームについて抽出した前記キーフレーム特徴データに適用して、前記ディスオクルージョンマスクによって表された画素位置を補完するステップを導くステップと
を行わせるものである、請求項15に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【請求項17】
機械学習モデルを立体視変換を行うように訓練するコンピュータを利用した方法において、
画素毎の奥行、および、入力画像に描かれたオブジェクトと関連付けられた視差値を予想する第1のニューラルネットワークを実行するステップと、
前記第1のニューラルネットワークのパラメータを、前記予想視差値と関連付けられた第1の計算した訓練損失に基づいて更新するステップと、
前記第1のニューラルネットワークを繰返し実行して、該第1のニューラルネットワークの前記パラメータを更新するステップと、
前記第1の計算した訓練損失が第1の閾値未満の場合に、前記第1のニューラルネットワークの実行を終了するステップと、
前記第1のニューラルネットワークの前記パラメータを一定に保持しながら、該第1のニューラルネットワークおよび第2の組のニューラルネットワークを順次実行するステップと、
前記第2の組のニューラルネットワークのパラメータを、予想出力画像と関連付けられた第2の計算した訓練損失に基づいて更新するステップと、
前記第2の組のニューラルネットワークの前記パラメータを更新しながら、前記第1のニューラルネットワークおよび該第2の組のニューラルネットワークの第1の反復順次実行を開始するステップと、
前記第2の計算した訓練損失が第2の閾値未満の場合に、前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークの前記第1の反復順次実行を終了するステップと、
前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークを順次実行するステップと、
前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークを、前記予想出力画像と関連付けられた第3の計算した訓練損失に基づいて更新するステップと、
前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークの前記パラメータを更新しながら、該第1のニューラルネットワークおよび該第2の組のニューラルネットワークの第2の反復順次実行を開始するステップと、
前記第3の計算した訓練損失が第3の閾値未満の場合に、前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークの前記第2の反復順次実行を終了するステップと
を含むコンピュータを利用した方法。
【請求項18】
前記第1の計算した訓練損失は、前記第1のニューラルネットワークからの前記予想視差値と既知の訓練データセット視差値の間の距離L1を示す視差損失Ldである、請求項17に記載のコンピュータを利用した方法。
【請求項19】
前記第2の計算した訓練損失は、
a)前記予想出力画像とグラウンドトゥルース画像対訓練データとの画素毎の比較から特定した距離L1を表すフレーム損失LL1と、
b)高レベルセマンティック特徴量の前記予想出力画像と前記グラウンドトゥルース画像対訓練データの差を表す知覚損失LFと
の少なくとも一方を含むものである、請求項18に記載のコンピュータを利用した方法。
【請求項20】
前記第3の計算した訓練損失は、
L=LL1+γ・LF+δ・Ld
によって与えられる合計訓練損失Lであり、但し、γ、δは、各々、知覚損失LFおよび視差損失Ldと関連付けられた訓練可能な重みパラメータである、請求項19に記載のコンピュータを利用した方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、「ARTISTICALLY CONTROLLABLE STEREO CONVERSION」という名称で2023年9月25日に出願された米国特許出願第18/473,947号の優先権の利益を主張し、その特許出願は、「ARTISTICALLY CONTROLLABLE ARTIFICIAL INTELLIGENCE STEREO CONVERSION」という名称で2023年5月23日に出願された米国特許仮出願第63/503,931号の優先権の利益を主張するものである。これらの関連出願の主題は、参照により本願に組み込まれる。
【技術分野】
【0002】
本開示の実施形態は、概して、機械学習およびコンピュータビジョンに関し、より具体的には、人工知能を用いて美的に制御可能な立体視変換を行う技術に関する。
【背景技術】
【0003】
立体視変換とは、従来の単眼視(非立体視)ビデオシーケンスから、立体視ビデオコンテンツを生成することを称する。例えば、ライブアクションフィーチャフィルムは、立体視で撮影されないことが多いが、映画スタジオは、フィルムの立体視バージョンを製作して、そのフィルムの非立体視バージョンと共に配給するのが望ましいものでありうる。これは、製作後処理として実施される立体視変換を通して実現される。更に、映画スタジオは大量のレガシーコンテンツを保有していることが多く、立体視変換は、スタジオがこのレガシーコンテンツを観客に立体視で観せるのを可能にする。
【0004】
既存の立体視変換技術は、コンピュータグラフィックス(CG)ワーピングモデルを用いて、立体視変換を行いうる。これらの技術は、まず、対象フレームについて、シーン内の様々なオブジェクト同士の間で知覚される奥行の相対差(本明細書において、「視差値」と称する)を特定する。次に、この技術は、視差値を用いて、逆ワーピングまたはオプティカルフローを適用して、入力画像から出力画像を生成する。
【0005】
上記技術の1つの欠点は、ユーザが既知の基準入力フレームに基づく追加情報を提供する機構がないことである。追加情報の例は、そのフレームについての明示的視差値または値範囲、そのフレームの関心点、若しくは領域のアノテーション、または、そのフレームにおける固定した背景としての領域の特定を含む。
【0006】
他の既存の技術は、ディープニューラルネットワークを用いて、まず、提供された画像について、妥当な奥行情報を生成するように予め訓練したモデルを適用することによって、単一の入力画像から立体視対の画像を生成する。奥行情報を用いて、立体視対を形成するのに必要な第2の画像を合成し、予想視差マップも生成する。上記技術と同様に、ディープニューラルネットワーク技術の1つの欠点は、ユーザが、明示的視差値を提供するか、別の方法で入力画像にアノテーションを加えるかによって、推論時間の処理に亘って美的制御を行うことができないことである。更に、ニューラルネットワークを用いた技術は、ニューラルネットワークモデル自体、または、補助機能および特徴のいずれかで、微分不可能な関数または変形を用いることが多く、それは、立体視変換モデルのエンドツーエンド訓練の効率に影響を与える。
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここまでに示したように、本分野において、ビデオフレームまたはシーケンスをAI立体視変換するためのより効果的な技術が必要である。
【課題を解決するための手段】
【0008】
本発明の一実施形態は、立体視変換を行うための技術を示す。この技術は、入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップを含む。この技術は、入力画像から、入力画像内の画素を表す特徴データを抽出するステップと、特徴データによって表された各画素に、予想視差マップに基づいて、オフセットを適用するステップも含む。この技術は、更に、その特徴データによって表され、同じ画素位置にオフセットされた複数の画素を特定するステップと、各複数の画素に、視認性値を、予想視差マップに基づいて付与するステップとを含む。この技術は、更に、各複数の画素を、視認性値に基づいて、複数の画素の1つの画素が視認可能で、その他の複数の画素が隠れるように変更するステップと、出力画像を、変更した複数の画素に基づいて、入力画像と出力画像が立体視対の画像を形成するように生成するステップとを含む。
【発明の効果】
【0009】
本開示の技術の従来の技術と比べた1つの技術的利点は、様々な立体視変換ステップで用いられる関数および変形が全微分可能で、開示した立体視変換モデルのエンドツーエンド訓練の改良が可能であることである。更に、本開示の技術は、ユーザからの任意の美的制御の入力を可能にし、入力フレーム以外の更なる入力を考慮するオプションも可能にする。更に、本開示の技術は、奥行を考慮したスプラッティングおよびインペイントを行うために、入力フレームからの予想視差を組み込み、対応する出力フレームを生成合成する際に、既知の基準入力フレームからの視差情報を用いる。多数の入力フレームを任意で用いることも、本開示の技術が多数の予想出力ビデオフレームに亘って時間的一貫性を高めるのを可能にする。これらの技術的利点は、従来のアプローチと比べて、1つ以上の技術的改良点を提供する。
【0010】
様々な実施形態の上記特徴を詳細に理解しうるように、上記記載では簡単に説明した本発明の概念を、より詳しく、様々な実施形態を参照して記載し、それらのいくつかは、添付の図面に示している。但し、添付の図面は、本発明の概念の典型的な実施形態のみを示したものであり、したがって、本発明の範囲を限定すると、いかなる点でも解釈されるべきではなく、他の同等に効果的な実施形態が存在することに留意すべきである。
【図面の簡単な説明】
【0011】
【
図1】様々な実施形態の1つ以上の態様を実施するように構成されたコンピュータシステムを示す。
【
図2】様々な実施形態による
図1の訓練エンジンのより詳細な図である。
【
図3A】様々な実施形態による
図1の立体視変換エンジンのより詳細な図である。
【
図3B】様々な実施形態による
図1の立体視変換エンジンのより詳細な図である。
【
図4】いくつかの実施形態による例示的な入力画像、および、入力画像に適用された様々なワーピングおよび視差推定処理の結果を示す。
【
図5】様々な実施形態によるディープラーニングモデルを立体視変換を行うように訓練する方法のステップのフローチャートである。
【
図6】様々な実施形態による単一の入力画像に立体視変換を行う方法のステップのフローチャートである。
【
図7】様々な実施形態による入力画像としての単一のビデオフレームに、近傍ビデオフレームをキーフレームとして用いて立体視変換を行う方法のステップのフローチャートである。
【発明を実施するための形態】
【0012】
次の記載において、様々な実施形態をより完全に理解しうるように多数の具体的な詳細事項を示している。しかしながら、当業者には、本発明の概念を、これらの具体的な詳細事項の1つ以上を有さずに実行しうることが明らかだろう。
【0013】
システム概観
図1は、様々な実施形態の1つ以上の態様を実施するように構成された計算装置100を示している。一実施形態において、計算装置100は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、パーソナルデジタルアシスタント(PDA)、タブレットコンピュータ、または、入力を受け付け、データを処理し、任意で画像を表示するように構成された任意の他の種類の計算装置を含み、1つ以上の実施形態を実施するのに適したものである。計算装置100は、メモリ116に常駐する訓練エンジン122および立体視変換エンジン124を実行させるように構成される。
【0014】
但し、本明細書に記載の計算装置は例示にすぎず、任意の他の技術的に実現可能な構成も本開示の範囲である。例えば、訓練エンジン122および立体視変換エンジン124の多数のインスタンスは、分散および/またはクラウド計算システムの1組のノード上で実行されて、計算装置100の機能を実施しうる。他の例において、訓練エンジン122、および/または、立体視変換エンジン124は、様々な組のハードウェア、様々な種類の装置または環境で実行されて、訓練エンジン122、および/または、立体視変換エンジン124は異なる利用事例または応用例に適合されうる。第3の例において、訓練エンジン122および立体視変換エンジン124は、異なる計算装置、および/または、異なる組の計算装置上で実行されうる。
【0015】
一実施形態において、計算装置100は、限定するものではないが、1つ以上の処理部102、1つ以上の入力/出力(I/O)装置108に連結された入力/出力(I/O)装置インターフェース104、メモリ116、記憶部114、および、ネットワークインターフェース106を接続するインターコネクト(バス)112を含む。処理部102は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、特定用途向け集積回路回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、人工知能(AI)アクセラレータ、任意の他の種類の処理装置、または、GPUと協働で動作するように構成されたCPUなどの異なる処理部の組合せとして実装された任意の適切な処理部でありうる。概して、処理部102は、データを処理、および/または、ソフトウェアアプリケーションを実行可能である任意の技術的に実現可能なハードウェア部でありうる。更に、本開示のコンテキストにおいて、計算装置100に示した計算要素は、物理的計算システム(例えば、データセンタのシステム)に対応するか、計算クラウド内で実行される仮想計算インスタンスでありうる。
【0016】
I/O装置108は、キーボード、マウス、タッチ感応スクリーンなどの入力提供可能な装置、更に、表示装置などの出力提供可能な装置も含む。更に、I/O装置108は、タッチスクリーン、ユニバーサルシリアルバス(USB)ポートなど、入力の受付と出力の提供の両方が可能な装置を含みうる。I/O装置108は、様々な種類の入力を計算装置100のエンドユーザ(例えば、デザイナー)から受け付けると共に、表示デジタル画像、デジタルビデオまたはテキストなどの様々な種類の出力を計算装置100のエンドユーザに提供するように構成されうる。いくつかの実施形態において、I/O装置108の1つ以上は、計算装置100をネットワーク110に連結するように構成される。
【0017】
ネットワーク110は、任意の技術的に実現可能な種類の通信ネットワークであり、計算装置100と、ウェブサーバ、他のネットワークでつながった計算装置などの外部のエンティティまたは装置との間でのデータ交換を可能にする。例えば、ネットワーク110は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、無線(WiFi)ネットワーク、および/または、インターネットを含みうる。
【0018】
記憶部114は、アプリケーションおよびデータのための非揮発性記憶部を含み、固定または取外し自在ディスクドライブ、フラッシュメモリ装置、CD-ROM、DVD-ROM、Blu-Ray、HD-DVD、または、他の磁気、光学、若しくは、固体記憶装置を含みうる。訓練エンジン122および立体視変換エンジン124は、記憶部114に記憶されて、実行時に、メモリ116にロードされうる。
【0019】
メモリ116は、ランダムアクセスメモリ(RAM)モジュール、フラッシュメモリ部、または、任意の他の種類のメモリ部、または、それらの組合せを含む。処理部102、I/O装置インターフェース104、および、ネットワークインターフェース106は、データをメモリ116から読み出し、メモリ116に書き込むように構成される。メモリ116は、処理部102によって実行されうる様々なソフトウェアプログラム、および、そのソフトウェアプログラムと関連付けられたアプリケーションデータを含み、訓練エンジン122および立体視変換エンジン124を含む。
【0020】
いくつかの実施形態において、訓練エンジン122は、1つ以上の機械学習モデルを立体視変換を行うように訓練する。立体視変換において、画像またはビデオフレームのコンテンツを変更して、入力画像またはビデオフレームと立体視対を形成する対応する出力画像を生成する。立体視変換エンジン124は、機械学習モデルを実行して、予想出力画像またはフレームを、提供された画像またはビデオフレームから生成する。本明細書の記載を通して、「フレーム」および「ビデオフレーム」という用語を、交換可能に用いている。
【0021】
より具体的には、訓練エンジン122および立体視変換エンジン124は、入力画像またはビデオフレームに立体視変換を行う1つ以上の機械学習モデルを、訓練および実行するように構成される。入力画像またはビデオフレームは、任意で、アノテーションされた視差推定またはカメラ位置/ポーズ情報などの追加情報を含む。ビデオフレームが入力として提供された場合には、追加情報は、すぐ隣りのビデオフレーム、または、入力ビデオフレームから所定の時間的距離内の近傍ビデオフレームも含みうる。隣り、または、近傍のビデオフレームを用いて予想出力ビデオフレームの生成を知らせて、入力および出力ビデオフレームによって形成された立体視対における奥行の知覚性を改良しうる。
【0022】
立体視変換
図2は、いくつかの実施形態による
図1の訓練エンジン122を、より詳細に示している。訓練エンジン122は、入力画像またはビデオフレームを変更して予想出力画像250を製作する機械学習モデル230を訓練する。予想出力画像250、および、対応する入力画像またはビデオフレームが、立体視対の画像を形成する。この立体視対の画像を一緒に見た際に、シーンにおける様々なオブジェクト同士の間で、および、オブジェクトと背景の間で相対的奥行の錯覚を提供するシーンが描かれる。図示したように、訓練エンジン122は、機械学習モデル230、訓練データ210、および、訓練データ前処理エンジン220を含む。
【0023】
訓練データ210は、コンピュータージェネレイテッドイメジェリー(CGI)画像212を含みうる。CGI画像は、仮想3次元空間内のオブジェクトおよび/または背景を描く2次元画像またはビデオフレームである。様々な実施形態において、各CGI画像212は、更に、CGI画像に描かれたオブジェクト、および/または、背景を記述する明示的位置、サイズ、および、形状データを含む。
【0024】
訓練データ210は、既存の3次元(3D)映画シーケンス214も含みうる。3D映画シーケンス214は、多数のフレームを含み、各フレームは、立体視対の画像を含む。既に記載したように、この立体視対の画像を一緒に見た際に、シーンにおける様々なオブジェクト同士の間で、および、オブジェクトと背景の間で相対的奥行の錯覚を提供するシーンが描かれる。
【0025】
訓練データ前処理エンジン220は、訓練データ210を処理し、次に、処理した訓練データを、機械学習モデル230に提供する。例えば、様々な実施形態において、訓練データ前処理エンジン220は、CGI画像212、および、関連付けられた明示的位置、サイズ、および、形状データを処理して、CGI画像212に描かれた様々なオブジェクト、および/または、背景の間の相対的奥行を計算する。訓練データ前処理エンジン220は、シーンに描かれたオブジェクトについてのグラウンドトゥルース視差値を、これらの計算した相対的奥行に基づいて計算する。様々な実施形態において、視差は、立体視対の一方の画像(例えば、左側の画像)でオブジェクトが描かれた位置と、立体視対の他方の画像(例えば、右側の画像)で同じオブジェクトが描かれた位置の間の画素で表したオフセットを称する。この立体視対の2つの画像の間のオブジェクトの位置のオフセットは、観察者が立体視対を一緒に見た際に、望ましい奥行の錯覚を提供する。
【0026】
様々な実施形態において、訓練データ210は、既存の3D映画シーケンス214を含む。これらの既存の3D映画シーケンス214は、各々、フレームシーケンスを含み、各フレームは、立体視対の画像として表される。様々な実施形態において、既存の3D映画シーケンス214に含まれる全ての立体視対の画像が、立体視変換機械学習モデルのための訓練データとして有用なわけではない。そのような実施形態において、訓練データ前処理エンジン220は、望ましくないフレームまたはフレームシーケンスを、3D映画シーケンス214から除去する。例えば、訓練データ前処理エンジン220は、既存の3D映画シーケンス214から、黒色または空白フレームなど、有用な情報を含まないか、ほとんど含まないフレームを除去する。訓練データ前処理エンジン220は、既存の3D映画シーケンス214から、スタジオイントロまたはプロデューサーのクレジットなどの3D効果が適用されていないフレームシーケンスも除去しうる。3D効果が適用されていないフレームでは、立体視画像対の両方の画像は同一となり、機械学習モデル230のために有用な訓練情報を生じないものでありうる。
【0027】
訓練データ前処理エンジン220は、更に、既存の3D映画シーケンス214のフレームについて視差推定を行いうる。訓練データ前処理エンジン220は、立体視対の画像を含むフレームについて、そのフレームについての視差値を、そのフレームの立体視対の一方の画像でのオブジェクト位置を立体視対の他方の画像での同じオブジェクトの位置を比較した相対差に基づいて推定する。
【0028】
既存の3D映画シーケンス214は、各々、数十万個もの個別フレームを含みうる。様々な実施形態において、訓練データ前処理エンジン220は、3D映画シーケンスを多数のショットに分割し、各ショットは、相関したフレームの連続したシーケンスを含みうる。例えば、1つのショットは、二人のキャラクターの間での会話シーンで、一方、次のショットは、街を走り抜けるカーチェイスを描くものでありうる。訓練データ前処理エンジン220は、既存のシーン選択ツールを用いて、既存の3D映画シーケンス214を複数のショットに分割するか、既存の3D映画シーケンス214が、3D映画シーケンス内の個別ショットの最初と最後を線引きする、例えば、タイムスタンプまたはフレーム番号などの編集決定リストを含みうる。
【0029】
訓練データ前処理エンジン220は、望ましくないフレームまたはフレームシーケンスを除去し、3D映画シーケンスをショットに分割した後に、訓練データ前処理エンジン220は、代表的フレームまたはフレームシーケンスをショットから選択し、更に、そのショットをフィルタリングして不適切なフレームを除去した後に、訓練データとして用いる。不適切なフレームは、所定の最小レベルと最大レベルの間に当てはまらない平均輝度を有しうる。不適切なフレームを示す他の例は、多数の画素が垂直視差を示す場合、つまり、立体視対の一方の画像における特定のオブジェクトの表現が、立体視対の他方の画像におけるそのオブジェクト表現と比べて垂直にオフセットした場合である。水平視差のオフセットと異なり、垂直視差のオフセットは、立体視対で知覚される奥行の錯覚に寄与せず、不十分な3D効果または視差推定不足を示しうる。同様に、所定の閾値(例えば、5画素)未満の水平視差を有する画素を高いパーセントで含むフレームは、そのフレームについて推定された視差値に基づいて、適用された3D効果が最小であることを示しうる。
【0030】
訓練エンジン122が機械学習モデル230を画像に立体視変換を行うように訓練するいくつかの実施形態において、訓練データ前処理エンジン220は、既に記載したように、不適切なフレームをフィルタリングして除去した後のショットから、代表的フレームを選択しうる。訓練エンジン122が機械学習モデル230を画像シーケンスに立体視変換を行うように訓練する他の実施形態において、訓練データ前処理エンジン220は、代表的フレームシーケンスを、オブジェクトの動きを、ほとんど示さないか、全く示さないショット(つまり、静止ショット)のフレームシーケンスを更にフィルタリングして除去した後の特定のショットから選択しうる。例えば、訓練データ前処理エンジン220は、隣り合ったフレーム間で最小オブジェクト動き閾値を設定しうる。限定するものではない1つの例において、最小オブジェクト動き閾値は、隣り合ったフレーム間で8画素でありうる。
【0031】
機械学習モデル230は、視差推定ネットワーク235を含む。視差推定ネットワーク235は、CGI画像、または、既存の3D映画シーケンスからの代表的フレームシーケンスの1つのフレームのいずれかである前処理された訓練データを、入力として受け取る。視差推定ネットワーク235への入力画像が既存の3D映画シーケンスからの代表的フレームシーケンスの1つのフレームである様々な実施形態において、視差推定ネットワーク235は、そのフレームからの1つの画像(例えば、左側の画像または右側の画像)の解像度を下げた表現を製作し、その画像における各オブジェクトおよび背景の奥行dを予想する。奥行dは、カメラと、画像に示されたオブジェクトまたは背景との間の距離を表す。画像は、太陽または空などの背景オブジェクトを遠距離または略無限遠距離に描くことが多いので、様々な実施形態において、視差推定ネットワーク235は、奥行の逆数(1/d)を予想する。遠くのオブジェクトと関連付けられた非常に大きい奥行値は、推定計算を複雑にし、誤差を生じうる。オブジェクトについて奥行の逆数を計算することで、非常に遠くのオブジェクトについての奥行の逆数はゼロに近付く傾向があるので、次の推定計算で非常に大きい数を回避する。その結果得られた奥行逆数推定値を、解像度を下げた画像を用いて画素毎に記録する。
【0032】
視差推定ネットワーク235は、解像度を下げた画像についての画素毎の奥行逆数情報をアラインさせて、視差、つまり、画素毎の変位ベクトルを生じる。このアラインメントステップは、各画素について、画素の推定された奥行の逆数に比例する水平変位ベクトルを生成する。このようにして、前景(近くの)オブジェクトを表す画素は、遠くのオブジェクトを表す画素と比べて、より大きい変位ベクトルを受け付けて、より大きい視差値を表す。これらの様々な水平変位が、機械学習モデル230によって予想した出力画像において知覚される奥行の3D効果を生成する。
【0033】
視差推定ネットワーク235に提供された入力が、グラウンドトゥルース視差値と関連付けられたCGI画像である様々な実施形態において、視差推定ネットワーク235は、最小二乗アラインメントを用いて、推定された視差値をグラウンドトゥルース視差値とアラインさせる。視差推定ネットワーク235への入力が既存の3D映画シーケンスからの代表的フレームシーケンスである様々な他の実施形態において、視差推定ネットワーク235は、代表的フレームシーケンスの各フレームについて、グラウンドトゥルース視差値を対応する左側および右側の画像から計算し、その推定された視差値を、最小二乗アラインメントを用いて、計算したグラウンドトゥルース視差値とアラインさせる。
【0034】
いくつかの実施形態において、視差推定ネットワーク235は、任意で、入力の解像度を下げたバージョンに視差推定を行う。入力は、CGI画像、または、既存の3D映画シーケンスからの代表的フレームシーケンスの1つのフレームでありうる。入力が、既存の3D映画シーケンスからの代表的フレームシーケンスの1つのフレームの場合、視差推定ネットワーク235は、そのフレームの右側または左側のいずれかの画像に視差推定を行う。高解像度の視差推定を生成するために、視差推定ネットワーク235は、低解像度の視差推定および高解像度の入力からアップサンプリングを行う。具体的には、視差推定ネットワーク235は、近傍アテンション機構を用いたバイラテラルアップサンプリングを使用する。バイラテラルアップサンプリングにおいて、高解像度の視差推定においてオブジェクトのエッジを維持し、高解像度の視差推定の平坦領域を平滑にするバイラテラルフィルタを用いて、低解像度の視差推定値を、より高い解像度でリサンプリングして、入力にマッチさせる。近傍アテンション機構は、高解像度の視差推定において新たに生成された画素についての視差値を生成する際に、近くの画素からの視差値を優先する。
【0035】
図2に示したように、機械学習モデル230は、変換ネットワーク240も含む。視差推定ネットワーク235によって推定された視差値は、機械学習モデル230の変換ネットワーク240への訓練入力であり、訓練可能な重みパラメータとして機能する。変換ネットワーク240において、過度に大きい重み値を回避するために、様々な実施形態の視差推定ネットワーク235は、推定された視差値を正規化する。最小および最大の望ましい視差値は、視差推定ネットワーク235について予め決定され、視差推定ネットワーク235は、生成された視差値を、線形作用素を適用することによって、この範囲に正規化する。
【0036】
オペレーションにおいて、変換ネットワーク240は、入力画像に特徴抽出を行い、入力画像の特徴空間表現を、画像の推定された視差値によりワープさせ、入力画像の多数の画素をワープされた画像の同じ画素に割り当てるスプラッティングを行い、更に、それまではオクルージョンされていた背景領域がワーピングにより露出した画像領域を補完する。変換ネットワーク240は、ワープされ、スプラットされ、補完された入力画像の特徴空間表現を、予想出力画像250へと合成する。
【0037】
変換ネットワーク240への入力は、入力画像、および、その画像と関連付けられた高解像度の視差推定である。様々な実施形態において、変換ネットワーク240への入力は、左側の画像でありうるもので、それについて、対応する予想した右側の画像を生成するか、または、右側の画像でありうるもので、それについて、対応する予想した左側の画像を生成する。様々な他の実施形態において、入力は、中心の画像でありうるもので、それについて、左側と右側の両方の出力画像を(例えば、順次に)生成する。右側の画像が入力された左側の画像から生成されるか、左側の画像が入力された右側の画像から生成される様々な実施形態において、入力画像および生成された予想出力画像が立体視対を形成する。入力された中心の画像から左側の画像と右側の画像の両方を生成する様々な他の実施形態において、生成された左側と右側の画像が立体視対を形成する。
【0038】
変換ネットワーク240は、特徴抽出ネットワーク242を含む。特徴抽出ネットワーク242は、ピラミッド特徴抽出を入力画像に様々なレベルの解像度で行う。各レベルの解像度について、特徴抽出ネットワーク242は、その解像度で入力画像を表す特徴ベクトルを生成する。特定の解像度について生成された特徴ベクトルは、異なるの解像度について生成された特徴ベクトルとは異なるものとなる。多数の特徴ベクトルは、入力画像のRGB画素のマトリックスとしてのネイティブ表現ではなく、まとまって、入力画像を特徴空間で表すマルチ解像度の特徴ベクトルを形成する。
【0039】
変換ネットワーク240は、更に、ワーピングおよびスプラッティングネットワーク244を含む。ワーピングおよびスプラッティングネットワーク244は、視差推定ネットワーク235によって計算された上記画素毎の変位ベクトルにより、入力画像の特徴空間表現をワープさせる。具体的には、入力画像の特徴空間表現の各画素は、高解像度の視差推定でその画素について推定された視差値に比例する変位ベクトルによってシフトされる。
【0040】
入力画像のワープされた特徴空間表現は、ディスオクルージョンされた領域を含み、それまでは隠れていた背景の領域が、シーンのオブジェクトの変位によって露出する。これらのディスオクルージョンされた領域は、ワーピング処理によって補完されないままで、後段のインペイントステップの間に補完される。ワープされた表現は、オクルージョンされた領域も含み、そこで、入力画像からの多数の画素が特徴空間表現の同じ位置に変位される。ワーピングおよびスプラッティングネットワーク244は、これらのオクルージョンされた領域に、同じ位置にワープされた多数の画素の順序を決定する重みを含む微分可能ワーピング戦略を用いて取り組む。この順序は、特徴空間の同じ位置に変位された(つまり、スプラットされた)多数の画素のどれを、視認可能なままにすべきかを決定する。重みは、既に記載したように視差推定ネットワーク235によって推定された画素毎の視差値から生成される。前景オブジェクトは、背景オブジェクトと比べて小さい推定された奥行値を有するものとなるので、視差推定ネットワーク235によって、前景オブジェクトの画素に、より大きい視差値が付与される。したがって、視差値は、どのスプラットされた画素が前景のもので、視認可能なままにすべきで、どの画素が背景のもので、隠れたままにすべきかを直接示す。スプラットされた画素の順序を視差値を用いて決定する前に、ワーピングおよびスプラッティングネットワーク244は、視差値を[-1,1]の範囲に正規化し、正規化された値を、訓練可能なパラメータαを用いてスケーリングする。
【0041】
ワーピングおよびスプラッティングネットワーク244は、上記ワーピングおよびスプラッティング処理を、全レベルのマルチ解像度の特徴ベクトルを用いて行う。各解像度レベルについて、ワーピングおよびスプラッティングネットワーク244は、推定された視差値を補間によってアップサンプリングして、特定の解像度レベルにマッチさせる。
【0042】
ワーピングおよびスプラッティングネットワーク244は、元の入力画像も、元の解像度でワープさせ、抽出した特徴ピラミッドの全レベルに対応するスケーリングされた解像度でもワープさせる。これにより、ワーピングおよびスプラッティング効果のユーザが視認可能な表現を提供する。ワーピングおよびスプラッティングネットワーク244は、更に、いくつの画素が、ワープされた入力画像の各位置にスプラットされたかを特定するワーピングマスクを生成する。ワーピングおよびスプラッティングネットワーク244は、ワープされた入力画像で、どの画素がインペイントを必要とするディスオクルージョンされた背景領域を表すかを特定するバイナリーディスオクルージョンマスクも生成する。
【0043】
変換ネットワーク240は、ディスオクルージョンされた領域の背景を考慮したインペイントを行い、オクルージョンされた領域の鮮鋭なエッジおよびエイリアシングに合成精細化によって取り組む画像合成ネットワーク246を含む。最後に、画像合成ネットワーク246は、予想出力画像250を生成する。
【0044】
多数の解像度についてのワープされた画像の特徴および視差を、入力として与えられると、画像合成ネットワーク246は、背景を考慮したインペイントおよび合成精細化を行う。インペイントは、1つ以上の前景オブジェクトによって、それまでは隠れていたが新たにディスオクルージョンされた背景領域の補完を称する。合成精細化は、それまでは露出した背景が1つ以上の前景オブジェクトによって覆われてオクルージョンされた領域の前景オブジェクトと背景の間の新たな境界で、エイリアシングおよび鮮鋭なエッジを削減する。画像合成ネットワーク246は、局所マルチスケール自己アテンションを用いて、近傍系自己アテンション技術を全解像度層に適用することによって、背景を考慮したインペイントを行う。様々な実施形態において、画像合成ネットワーク246は、所定の近傍サイズを有するシングルヘッドのアテンション層を含む。この近傍系自己アテンション技術は、ディスオクルージョンされた領域が局所背景領域のみに基づいたコンテンツで確実にインペイントされるようにする。ワーピング、背景を考慮したインペイント、および、合成精細化の後に、画像合成ネットワーク246は、マルチ解像度の特徴空間表現を、最終予想出力画像へと変換する。様々な実施形態において、バイリニアアップサンプリングがネットワークで転置畳み込みを置き換えながら、画像合成ネットワーク246は、3行6列を含むGridNet畳み込みニューラルネットワークアーキテクチャを利用して変換を行う。様々な実施形態において、上記立体視変換の全てのステップは、微分可能である。その結果、様々なネットワークを、エンドツーエンドで一緒に訓練しうる。
【0045】
機械学習モデル230を訓練する際に、視差推定ネットワーク235は、最初、別々に訓練される。その代わりに、訓練エンジン122は、予め訓練したバージョンの視差推定ネットワーク235を用いうる。
【0046】
特徴抽出ネットワーク242、および、画像合成ネットワーク246は、視差推定ネットワーク235の重みを一定に保持しながら、全機械学習モデル230をエンドツーエンドで訓練することによって訓練される。訓練は、教師ありで、グラウンドトゥルース視差情報を有するCGI画像か、関連付けられ、アノテーションされた視差情報を有する立体視ビデオデータセットの左右の画像対のいずれかを用いる。教師あり訓練は、任意で、データ拡張を含み、立体視ビデオデータセットの画像対は、水平または垂直のいずれかに(例えば、各々、0.5/0.1の確率で)フリップされて、訓練のために追加の左右の画像対を生成する。立体視ビデオデータセットの左右の画像対が負の視差情報のみを含む場合、オフセットを、その対の右側の画像に適用して、負と正の両方の視差を取得しうる。オフセットは、グラウンドトゥルース画像視差の中央値プラス-10と10の間のランダムな数によって決定される。
【0047】
視差推定ネットワーク235は、予想視差を生成し、それは次に、最小二乗法を用いて、データセットの左右の視差にアラインされる。いくつかの実施形態において、訓練が、4のバッチサイズおよび1e-3の学習速度を用いて、200,000ステップの間、続けられる。
【0048】
最後のステップにおいて、訓練エンジン122は、視差推定ネットワーク235の重みを固定せずに、全パイプラインをエンドツーエンドで訓練する。訓練は、左右の画像対を用いた教師ありだけではなく、データセットの視差情報も、視差推定ネットワーク235についての中間教師信号として用いる。この中間教師信号は、損失関数の重み付け項として用いられて、訓練中にプログレッシブにフェードアウトしうる。
【0049】
訓練中に、訓練エンジン122は、フレーム損失280を、予想出力画像250
【0050】
とグラウンドトゥルース右側フレームIrの画素毎の比較について、ディスオクルージョン領域Dについての別のディスオクルージョン損失260重みβを用いて、L1損失関数(式1)として計算する。
【0051】
【0052】
更に、訓練エンジン122は、視差および知覚損失270を計算する。知覚損失LFは、高レベルセマンティック特徴の予想出力画像と訓練データのグラウンドトゥルース右側フレームとの差を表す。視差損失Ldは、視差推定ネットワーク235からの予想視差値と既知の訓練データセット視差の間のL1距離を示す。したがって、合計損失関数は、
【0053】
【0054】
である。
【0055】
図3Aは、いくつかの実施形態による
図1の立体視変換エンジン124を、より詳細に示す図である。これらの実施形態において、立体視変換エンジン124は、単一の入力画像300(例えば、静止画像、または、ビデオシーケンスからの単一のフレーム)を変更して、予想出力画像345を生成する。入力画像300および生成された予想出力画像345は、立体視対の画像を形成する。この立体視対を一緒に見た際に、シーンの様々なオブジェクト同士の間、および、オブジェクトと背景の間の相対的奥行の錯覚を提供するシーンが描かれる。様々な実施形態において、入力画像は、左側の画像でありうるもので、それについて、対応する予想される右側の画像を生成するか、または、右側の画像でありうるもので、それについて対応する予想される左側の画像を生成する。様々な他の実施形態において、入力は、中心の画像で、それについて、左側と右側の両方の出力画像を、(例えば、順次に)生成する。
【0056】
立体視変換エンジン124は、奥行予想305を含む。奥行予想305は、入力画像300を変更して、入力画像の解像度を下げたバージョンを製作する。奥行予想305は、更に、入力画像の解像度を下げたバージョンにおけるオブジェクトおよび背景の奥行dを予想する。奥行dは、カメラと、入力画像の解像度を下げたバージョンに示されたオブジェクトまたは背景との間の距離を表す。入力画像は、太陽または空などの背景オブジェクトを遠距離または略無限遠距離に描くことが多いので、様々な実施形態において、奥行予想305は、奥行の逆数(1/d)を予想する。その結果得られた奥行逆数推定値を、入力画像の解像度を下げたバージョンを用いて画素毎に記録する。
【0057】
立体視変換エンジン124は、入力画像の解像度を下げたバージョン、および、入力画像の解像度を下げたバージョンと関連付けられた奥行逆数推定値に視差推定310を行う。視差推定310は、入力画像の解像度を下げたバージョンについて、画素毎の奥行逆数情報をアラインさせて、視差、つまり、画素毎の変位ベクトルを生じる。このアラインメントステップは、各画素について、画素の推定された奥行の逆数に比例する水平変位ベクトルを生成する。このようにして、前景(近くの)オブジェクトを表す画素は、遠くのオブジェクトを表す画素と比べて、より大きい視差値を表す、より大きい水平変位ベクトルを受け付ける。これらの様々な水平変位は、入力画像300と一緒に見た際に予想出力画像345において知覚される奥行の3D効果を生成する。立体視変換エンジン124において、過度に大きい値を回避するために、視差推定310の様々な実施形態は、推定された視差値を正規化する。最小および最大の望ましい視差値は予め決定され、視差推定310は、生成された視差値を、線形作用素を適用することによって、この範囲に正規化する。様々な他の実施形態において、ユーザは、ユーザによって(例えば、ペイントストロークを用いるか、境界ボックスを画定するか、または、画像におけるオブジェクトを手動で選択するかによって)選択された入力画像300の1つ以上の部分の手動のアノテーションの形態で、基準視差を視差推定310に提供する。視差推定310は、予想視差を、与えられた基準視差値に、例えば、最小二乗アラインメント技術を用いてアラインさせる。
【0058】
視差アップサンプリング315は、入力画像の解像度を下げたバージョン、および、関連付けられた視差推定を変更して、高解像度の予想視差マップ320を生成する。視差アップサンプリング315は、低解像度の視差推定および高解像度の入力画像から、アップサンプリングを行う。具体的には、視差アップサンプリング315は、近傍アテンション機構を用いたバイラテラルアップサンプリングを使用する。バイラテラルアップサンプリングにおいて、高解像度の予想視差マップ320のオブジェクトのエッジを維持し、高解像度の予想視差マップ320の平坦領域を平滑にするバイラテラルフィルタを用いて、低解像度の視差推定値を、より高い解像度でリサンプリングして、入力画像にマッチさせる。近傍アテンション機構は、高解像度の予想視差マップ320において新たに生成された画素について視差値を生成する際に、近くの画素からの視差値を優先する。
【0059】
特徴抽出322は、ピラミッド特徴抽出を、入力画像に様々なレベルの解像度で行う。各レベルの解像度について、特徴抽出322は、その解像度で入力画像を表す特徴ベクトルを生成する。特定の解像度について生成された特徴ベクトルは、異なるの解像度について生成された特徴ベクトルとは異なるものとなる。多数の特徴ベクトルは、入力画像のRGB画素のマトリックスとしてのネイティブ表現ではなく、まとまって、入力画像を特徴空間で表すマルチ解像度の特徴ベクトルを形成する。
【0060】
奥行考慮スプラッティング325は、入力画像の特徴空間表現を、予想視差マップ320における画素毎の変位ベクトルによりワープさせる。具体的には、入力画像の特徴空間表現の各画素は、予想視差マップ320でその画素について推定された視差値に比例する変位ベクトルによってシフトされる。
【0061】
ワープされた入力画像の特徴空間表現は、ディスオクルージョンされた領域を含み、それまでは隠れていた背景の領域が、シーンのオブジェクトの変位によって露出する。これらのディスオクルージョンされた領域は、ワーピング処理によって補完されないままで、後段のインペイントステップの間に補完される。ワープされた表現は、オクルージョンされた領域も含み、そこで、入力画像からの多数の画素が特徴空間表現の同じ位置に変位される。奥行考慮スプラッティング325は、これらのオクルージョンされた領域に、同じ位置にワープされた多数の画素の順序を決定する重みを含む微分可能ワーピング戦略を用いて取り組む。この順序は、特徴空間の同じ位置に変位された(つまり、スプラットされた)多数の画素のどれを、視認可能なままにすべきかを決定する。重みは、予想視差マップ320の画素毎の視差値から生成される。前景オブジェクトは、背景オブジェクトと比べて小さい推定された奥行値を有するものとなるので、視差推定310によって、前景オブジェクトの画素に、より大きい視差値が付与される。したがって、視差値は、どのスプラットされた画素が前景のもので、視認可能なままにすべきで、どの画素が背景のもので、隠れたままにすべきかを直接示す。スプラットされた画素の順序を視差値を用いて決定する前に、奥行考慮スプラッティング325は、視差値を[-1,1]の範囲に正規化し、正規化された値を、訓練中に決定されたパラメータαを用いてスケーリングする。
【0062】
奥行考慮スプラッティング325は、上記ワーピングおよびスプラッティング処理を、全レベルのマルチ解像度の特徴ベクトルを用いて適用する。各解像度レベルについて、奥行考慮スプラッティング325は、推定された視差値を、補間によってアップサンプリングして、特定の解像度レベルにマッチさせる。
【0063】
奥行考慮スプラッティング325は、元の入力画像も、元の解像度でワープさせ、抽出した特徴ピラミッドの全レベルに対応するスケーリングされた解像度でもワープさせる。これにより、ワーピングおよびスプラッティング効果のユーザが視認可能な表現を提供する。奥行考慮スプラッティング325は、更に、いくつの画素が、ワープされた入力画像の各位置にスプラットされたかを特定するワーピングマスクを生成する。奥行考慮スプラッティング325は、ワープされた入力画像で、どの画素がインペイントを必要とするディスオクルージョンされた背景領域を表すかを特定するバイナリーディスオクルージョンマスクも生成する。
【0064】
多数の解像度についてのワープされた画像の特徴および視差を与えられると、画像合成330は、インペイント335および合成精細化340を行う。インペイントは、1つ以上の前景オブジェクトによってそれまでは隠れていたが新たにディスオクルージョンされた背景領域の補完を称する。合成精細化は、それまでは露出した背景が1つ以上の前景オブジェクトによって覆われてオクルージョンされた領域の前景オブジェクトと背景の間の新たな境界で、エイリアシングおよび鮮鋭なエッジを削減する。インペイント335は、局所マルチスケール自己アテンションを用いて、近傍系自己アテンション技術を全解像度層に適用することによって、背景を考慮したインペイントを行う。様々な実施形態において、インペイント335は、所定の近傍サイズを有するシングルヘッドのアテンション層を含む。この近傍系自己アテンション技術は、ディスオクルージョンされた領域が局所背景領域のみに基づいたコンテンツで確実にインペイントされるようにする。
【0065】
ワーピング、背景を考慮したインペイント、および、合成精細化の後に、画像合成330は、マルチ解像度の特徴空間表現を、最終予想出力画像345へと変換する。様々な実施形態において、バイリニアアップサンプリングがネットワークで転置畳み込みを置き換えながら、画像合成330は、3行6列を含むGridNet畳み込みニューラルネットワークアーキテクチャを利用して変換を行う。
【0066】
図3Bは、いくつかの実施形態による
図1の立体視変換エンジン124を、より詳細に示している。これらの実施形態において、立体視変換エンジン124は、入力画像350(例えば、単一の2Dビデオフレーム)および入力キーフレーム352を変更して、予想出力画像395を生成する。入力画像350、および、生成された予想出力画像395は、画像の立体視対を形成する。様々な実施形態において、入力画像350は、左側の画像でありうるもので、それについて、対応する予想される右側の画像を生成するか、または、右側の画像でありうるもので、それについて対応する予想される左側の画像を生成する。様々な他の実施形態において、入力は、中心の画像で、それについて、左側と右側の両方の出力画像を、(例えば、順次に)生成する。
【0067】
入力キーフレーム352は、入力画像350に時間的に関係するビデオフレームである(つまり、ビデオフレームシーケンスにおいて、入力キーフレーム352が入力画像350に先行するか、後続する)。いくつかの実施形態において、入力キーフレーム352は、一定の組の近傍ビデオフレーム
【0068】
【0069】
は、入力画像350を表す。他の実施形態において、入力キーフレーム352は、入力画像350から指数関数的に増加する距離のフレーム、例えば、
【0070】
を表す。入力キーフレーム352は、入力画像350について、時間的コンテキストを提供して、予想出力画像395の精度および安定性を改良する。
【0071】
立体視変換エンジン124は、各入力画像350と関連付けられた選択されたキーフレーム352と共に、多数の順次入力画像350を処理することによって、立体視変換をビデオシーケンスに行う。
【0072】
立体視変換エンジン124は、奥行予想355を含む。奥行予想305は、入力画像350を変更して、入力画像の解像度を下げたバージョンを製作する。奥行予想355は、更に入力画像の解像度を下げたバージョンにおけるオブジェクトおよび背景の奥行dを予想する。様々な実施形態において、奥行予想355は、既に
図3Aについて記載したように、奥行の逆数(1/d)を予想する。その結果得られた奥行逆数推定値を、入力画像の解像度を下げたバージョンを用いて画素毎に記録する。
【0073】
全ての与えられたフレーム(つまり、入力画像350および入力キーフレーム352)について、奥行予想355は、更に、多数のフレームに亘って変化するか静止したオブジェクトおよび背景位置を分析することよって、シーンポイントクラウドを生成する。奥行予想355は、更に、カメラポーズおよび配置を推定する。カメラポーズおよび位置を推定するために、奥行予想355は、例えば、structure-from-motion技術を用いうる。奥行予想355は、各時間ステップについて、入力画像350および入力キーフレーム352によって表されたポイントクラウドのスパース奥行レンダリングを生成する。奥行予想355は、各画素について奥行の逆数値含む入力画像350および各キーフレーム352の解像度を下げた表現を生成する。
【0074】
立体視変換エンジン124は、入力画像の解像度を下げたバージョン、および、入力画像の解像度を下げたバージョンと関連付けられた奥行逆数推定値に視差推定360を行う。上記視差推定310と同様に、視差推定360は、入力画像の解像度を下げたバージョンについて、画素毎の奥行逆数情報をアラインさせて、各画素について正規化した予想視差値を生じる。様々な他の実施形態において、ユーザは、ユーザによって選択された入力画像350の1つ以上の部分の手動のアノテーションの形態で、基準視差を視差推定360に提供する。視差推定360は、予想視差を、与えられた基準視差値に、例えば、最小二乗アラインメント技術を用いてアラインさせる。
【0075】
既に視差アップサンプリング315について記載したように、視差アップサンプリング365は、入力画像の解像度を下げたバージョン、および、関連付けられた視差推定を変更して、高解像度の予想視差マップ370を生成する。視差アップサンプリング365は、低解像度の視差推定および高解像度の入力画像から、アップサンプリングを行い、高解像度の予想視差マップ370を生成する。
【0076】
立体視変換エンジン124は、予想出力画像395を入力画像350から生成する。例えば、入力画像350は、特定の時間インスタンス
【0077】
について、左側の画像でありうる。予想出力画像395は、対応する右側の画像
【0078】
であり、入力画像350および予想出力画像395が立体視対を形成しうる。立体視変換エンジン124は、他の時間インスタンスからの更なる画像(つまり、キーフレーム)も考慮しうる。次の記載において、立体視変換エンジン124は、単一の更なる画像
【0079】
のみを考慮するが、任意の数の更なる画像を考慮しうる。
【0080】
立体視変換エンジン124は、動きベクトルを動きベクトル生成372で生成することによって、キーフレーム(この場合、
【0081】
【0082】
にワープさせる。いくつかの実施形態において、動きベクトル生成372は、順方向ベクトルを、キーフレーム
【0083】
【0084】
の間の順方向オプティカルフロー、および、予想視差マップ370からの時間インスタンスtについての視差値に基づいて生成する。順方向オプティカルフローは、時間インスタンスt-1と時間インスタンスtの間のシーンに描かれたオブジェクトの動きを表す画素毎のベクトルを含む。動きベクトル生成372は、更に、時間インスタンスtについての視差値を、時間インスタンスt-1へ逆ワープさせる。次に、動きベクトル生成372は、ワープされた視差値をオプティカルフローベクトルに加えて、
【0085】
【0086】
への順方向ベクトルを生じる。
【0087】
他の実施形態において、動きベクトル生成372は、逆方向ベクトルを、入力フレーム
【0088】
【0089】
の間の逆方向オプティカルフローに基づいて生成する。逆方向オプティカルフローは、時間インスタンスtと時間インスタンスt-1の間のシーンに描かれたオブジェクトの動きを表す画素毎のベクトルを含む。次に、動きベクトル生成372は、このオプティカルフローをフレーム
【0090】
へとワープさせる。動きベクトル生成372は、既に
図3Aについて記載したように立体視変換エンジン124を入力画像について実行して、
図3Aのインペイント335の後に取得したワープされた画素毎の視差値の負の値を計算することによって、逆方向(右から左の)視差値も生成する。次に、動きベクトル生成372は、ワープされた右から左への視差値を、逆方向オプティカルフローに加えて、逆方向ベクトルを生じる。
【0091】
更に他の実施形態において、動きベクトル生成372は、既に
図3Aについて記載したように入力画像から生成された出力画像の推定に基づいて、直接予想されたベクトルを生成する。推定された出力画像を与えられて、動きベクトル生成372は、入力画像と推定出力画像の間のオプティカルフローを直接推定し、順方向または逆方向ベクトルを計算する。
【0092】
特徴抽出および奥行考慮スプラッティング375は、ピラミッド特徴抽出を、入力画像350および各キーフレーム352に様々なレベルの解像度で行う。各レベルの解像度について、特徴抽出および奥行考慮スプラッティング375は、その解像度で入力画像またはキーフレームを表す特徴ベクトルを生成する。多数の特徴ベクトルは、まとまって、特徴空間で入力画像またはキーフレームを表すマルチ解像度の特徴ベクトルを形成する。
【0093】
特徴抽出および奥行考慮スプラッティング375は、動きベクトル生成372によって生成された動きベクトルにより、入力画像の特徴空間表現をワープさせる。具体的には、入力画像の特徴空間表現における各画素は、生成された動きベクトルの値によってシフトされる。多数のキーフレーム352を含む様々な実施形態において、動きベクトルは、各キーフレーム352と入力画像350の間に、既に記載したように生成される。次に、特徴抽出および奥行考慮スプラッティング375は、入力画像の特徴空間表現を、これらの多数の各動きベクトルに基づいてワープさせる。
【0094】
入力画像のワープされた特徴空間表現は、ワーピング処理によって補完されないままで、後段のインペイントステップの間に補完されるディスオクルージョンされた領域を含む。ワープされた特徴空間表現は、オクルージョンされた領域も含み、そこで、入力画像からの多数の画素が特徴空間表現の同じ位置に変位される。特徴抽出および奥行考慮スプラッティング375は、これらのオクルージョンされた領域に、同じ位置にワープされた多数の画素の順序を決定する重みを含む微分可能ワーピング戦略を用いて取り組む。重みは、既に奥行考慮スプラッティング325について記載したのと同じように予想視差マップ370の画素毎の視差値から生成される。この重み付けした順序は、特徴空間の同じ位置に変位された(つまり、スプラットされた)多数の画素のどれが視認可能なままであるべきかを決定する。
【0095】
特徴抽出および奥行考慮スプラッティング375は、上記ワーピングおよびスプラッティング処理を、全レベルのマルチ解像度の特徴ベクトルを用いて行う。各解像度レベルについて、特徴抽出および奥行考慮スプラッティング375は、推定された視差値を補間によってアップサンプリングして、特定の解像度レベルにマッチさせる。
【0096】
特徴抽出および奥行考慮スプラッティング375は、元の入力画像も、元の解像度でワープさせ、抽出した特徴ピラミッドの全レベルに対応するスケーリングされた解像度でもワープさせる。これにより、奥行を考慮したワーピングおよびスプラッティング効果のユーザが視認可能な表現を提供する。特徴抽出および奥行考慮スプラッティング375は、更に、いくつの画素が、ワープされた入力画像の各位置にスプラットされたかを特定するワーピングマスクを生成する。特徴抽出および奥行考慮スプラッティング375は、ワープされた入力画像で、どの画素がインペイントを必要とするディスオクルージョンされた背景領域を表すかを特定するバイナリーディスオクルージョンマスクも生成する。
【0097】
多数の解像度についてワープされた画像の特徴および視差を用いて、画像合成380は、インペイント385および合成精細化390を行う。インペイントおよび合成精細化は、それまでは隠れていて新たにディスオクルージョンされた背景領域を補完し、オクルージョンされた領域の前景オブジェクトと背景の間の新たな境界でエイリアシングおよび鮮鋭なエッジを削減する。インペイント385は、既にインペイント335について記載したように、局所マルチスケール自己アテンションを用いて、近傍系自己アテンション技術を適用することによって、背景を考慮したインペイントを行う。更に、インペイント385は、入力画像350およびキーフレーム352を分析して、1つ以上のキーフレーム352で、それまでは視認可能だったが入力画像350でオクルージョンされた背景領域を見つけ出して、それまでは視認可能だったこれらの領域を用いて、インペイントを高精細化しうる。例えば、背景の特定のセクションは、時間インスタンスt-1を表すキーフレーム352において視認可能でありうるが、時間インスタンスtを表す入力画像350においてオクルージョンされる。インペイント385は、背景のその特定のセクションは、予想出力画像395において新たにディスオクルージョンされたと特定し、新たにディスオクルージョンされた領域をより正確にインペイントするために時間インスタンスt-1を表すキーフレームからの背景情報を用いうる。
【0098】
ワーピング、背景を考慮したインペイント、および、合成精細化の後に、画像合成380は、入力画像350およびキーフレーム352についてのマルチ解像度の特徴空間表現を最終予想出力画像395へと変換する。様々な実施形態において、バイリニアアップサンプリングがネットワークで転置畳み込みを置き換えながら、画像合成380は、3行6列を含むGridNet畳み込みニューラルネットワークアーキテクチャを利用して変換を行う。
【0099】
図4は、いくつかの実施形態による例示的な入力画像、および、入力画像に適用された様々なワーピングおよび視差推定の結果を示している。
図4の左上のパネルは、入力画像400を示している。様々な実施形態において、入力画像400は、例えば、静止画像、または、2Dビデオシーケンスの単一のフレームである。入力画像400は、画像の前景のオブジェクトを描き、オブジェクトによって部分的にオクルージョンされた(遮蔽された)背景も描いている。
【0100】
図4の右上のパネルは、既に
図3Aについて記載したように、奥行考慮スプラッティング325の結果を示している。奥行考慮スプラッティング325は、入力画像400の特徴空間表現の各画素を、その画素について推定された視差値に比例する量でオフセットする。奥行考慮スプラッティング325で生成された画素のオフセットは、オクルージョン404およびディスオクルージョン402を生じる。奥行考慮スプラッティング325は、前景画素を、新たにオクルージョンされた背景画素の前に正しく配置し、前景オブジェクトと背景の間の境界エッジが歪まないようにする。境界は、鮮鋭なエッジおよびエイリアシングアーチファクトを含みうるもので、それらは、既に
図3Aについて記載したように、次の合成精細化340で取り組まれる。ディスオクルージョン402は、背景の新たに露出した領域を表す画素を正しく描く。インペイント335は、既に記載したように、ディスオクルージョンされた領域を、背景画素のみを用いて補完する。
【0101】
図4の左下のパネルは、予想視差マップ320の視差表現406を示している。既に
図3Aについて記載したように、視差マップ320の各画素は、推定された視差値を含む。奥行考慮スプラッティング325は、入力画像の特徴空間表現の各画素を、その画素と関連付けられた視差値に比例するオフセットでワープさせる。視差表現406において、より明るい領域は、観察者に近い前景画素を表し、より大きい推定された視差値を有し、一方、暗い領域は、観察者から遠い背景画素を表し、小さい推定された視差値を有する。様々な実施形態において、視差表現406における視差値は、任意の適切なアノテーションスキームを用いて、例えば、より暗い画素は、より大きい推定された視差値を表し、より明るい画素は、より小さい推定された視差値を表すように描かれうる。視差表現406は、異なる色も用いて、様々な範囲の視差値を表しうる。
【0102】
図4の中央下側のパネルは、ワーピングマスク408を示している。既に
図3Aについて記載したように、奥行考慮スプラッティング325は、ワーピングマスク408を生成する。ワーピングマスク408は、ワープされた入力画像400において新たにオクルージョンされた領域を表し、いくつの画素がワープされた入力画像の各位置にスプラットされたかも表す。
【0103】
図4の右下のパネルは、バイナリーディスオクルージョンマスク410を示している。奥行考慮スプラッティング325は、ワープされた入力画像のどの画素が、既にインペイント335について記載したように背景画素を用いて補完される新たにディスオクルージョンされた背景領域を表すかを記録するバイナリーディスオクルージョンマスク410を生成する。
【0104】
図5は、様々な実施形態によるディープラーニングモデルを立体視変換を行うように訓練する方法のステップのフローチャートである。方法のステップを、
図1~3のシステムとの関係で記載するが、当業者には、方法のステップを任意の順序で行うように構成された任意のシステムが本開示の範囲であることが分かるだろう。
【0105】
図示したように、オペレーション502において、訓練エンジン122は、第1のニューラルネットワークを実行して、入力画像のオブジェクトと関連付けられた奥行の逆数を生成する。様々な実施形態において、入力画像は、静止画像、または、ビデオシーケンスからの単一のフレームである。訓練エンジン122は、入力画像の各画素と関連付けられた奥行の逆数値を生成する。訓練エンジン122は、更に、入力画像の各画素と関連付けられた視差値を生成する。
【0106】
オペレーション504において、訓練エンジン122は、第1のニューラルネットワークのパラメータを、バックプロパゲーションおよび視差損失Ldを用いて更新する。視差損失Ldは、第1のニューラルネットワークからの予想視差値と、既知の訓練データセット視差値の間のL1距離を示す。
【0107】
オペレーション506において、訓練エンジン122は、第1のニューラルネットワークからの視差損失を、第1の所定の閾値と比較する。第1の所定の閾値を満たさなかった場合には、次に、訓練エンジン122はオペレーション502に戻り、第1のニューラルネットワークの訓練を、第1の所定の閾値を満たすまで続ける。
【0108】
所定の閾値を満たした場合には、次に、訓練エンジン122はオペレーション508に進む。オペレーション508において、第1のニューラルネットワークの訓練した重みを一定に保持しながら、訓練エンジン122は、第2の組のニューラルネットワークを予め訓練する。訓練エンジン122は、第2の組のニューラルネットワークに、左右の画像対のデータセットおよび画像対と関連付けられた視差値を用いて、教師あり訓練を行う。
図3A、3Bについて記載したように、第2の組のニューラルネットワークは、特徴抽出を、入力画像および入力画像と関連付けられた視差値を用いて行う。第2の組のニューラルネットワークは、更に、奥行を考慮したスプラッティング、背景を考慮したインペイント、および、合成精細化を行って、予想出力画像を生成する。
【0109】
オペレーション510において、訓練エンジン122は、第2の組のニューラルネットワークのパラメータを、バックプロパゲーションを用いて更新する。既に
図2について記載したように、訓練エンジン122は、フレーム損失を、予想出力画像と画像対の訓練データのグラウンドトゥルース右側フレームの画素毎の比較についてのL1損失関数L
L1として計算する。更に、訓練エンジン122は、視差および知覚損失を計算する。知覚損失L
Fは、高レベルセマンティック特徴の予想出力画像と訓練データのグラウンドトゥルース右側フレームの差を表す。視差損失L
dは、第1のニューラルネットワークからの予想視差値と既知の訓練データセット視差の間のL1距離を示す。知覚損失L
Fおよび視差損失L
dは、各々、訓練可能な重みパラメータ(各々、γおよびδ)を有する。したがって、合計損失関数は、既に
図2について記載したように、式(2)によって与えられる。
【0110】
【0111】
オペレーション512において、訓練エンジン122は、式(2)によって与えられた合計損失関数を、第2の所定の閾値と比較する。第2の所定の閾値を満たさなかった場合には、訓練エンジン122は、第2の組のニューラルネットワークを、第2の所定の閾値を満たすまで続ける。
【0112】
オペレーション514において、訓練エンジン122は、第1のニューラルネットワークおよび第2の組のニューラルネットワークをエンドツーエンドで実行する。上記オペレーション508と異なり、第1のニューラルネットワークのパラメータは、固定ではなくなる。
【0113】
次に、オペレーション516において、訓練エンジン122は、左右の画像対のデータセットをデータセット画像対と関連付けられたグラウンドトゥルース視差値と共に用いて、教師あり訓練を行う。いくつかの実施形態において、これらのグラウンドトゥルース視差値を、第1のニューラルネットワークを訓練するための中間教師信号として用いうる。この中間教師信号は、訓練中にプログレッシブにフェードアウトしうる。第1のニューラルネットワークおよび第2の組のニューラルネットワークにおける全ての関数および変形は全微分可能である。したがって、訓練エンジン122は、第1のニューラルネットワークと第2の組のニューラルネットワークの両方を、エンドツーエンドで、バックプロパゲーションを用いて訓練する。訓練エンジン122は、フレーム、知覚、および視差損失を生成し、合計損失関数も生成する。これらの損失関数は、既にオペレーション510について記載したのと同じである。
【0114】
オペレーション518において、訓練エンジン122は、オペレーション516で特定した合計損失関数を、第3の所定の閾値と比較する。第3の所定の閾値を満たさなかった場合には、訓練エンジン122は、第1のニューラルネットワークおよび第2の組のニューラルネットワークの訓練を、第3の所定の閾値を満たすまで続けて、エンドツーエンドの訓練を終了する。
【0115】
図6は、様々な実施形態による立体視変換を単一の入力画像に行う方法のステップのフローチャートである。方法のステップを、
図1~3のシステムとの関係で記載するが、当業者には、方法のステップを任意の順序で行うように構成された任意のシステムが本開示の範囲であることが分かるだろう。
【0116】
図示したように、オペレーション602において、立体視変換エンジン124は、入力画像を受け付ける。様々な実施形態において、入力画像は、静止画像、または、ビデオシーケンスからの単一のフレームでありうる。様々な実施形態において、立体視変換エンジンは、更に、ユーザによって(例えば、ペイントストロークを用いるか、境界ボックスを画定するか、または、画像におけるオブジェクトを手動で選択するかによって)選択された入力画像の1つ以上の部分の手動のアノテーションの形態の基準視差情報を表す更なるユーザ入力を受け付ける。
【0117】
オペレーション604において、立体視変換エンジン124は、入力画像についての予想視差マップを生成する。立体視変換エンジン124は、入力画像を、その入力画像の低解像度表現に変換して、第1の訓練されたニューラルネットワークを実行して、低解像度表現に描かれた様々なオブジェクトおよび背景の奥行予想を行う。次に、立体視変換エンジン124は、入力画像の低解像度表現の各画素と関連付けられた奥行の逆数値を計算して記憶する。立体視変換エンジン124は、各画素について、画素と関連付けられた奥行の逆数値に比例する視差値を推定する。推定された視差値は、例えば、最小二乗アラインメント法が使える場合には、それによって更なるユーザ入力にアラインされる。これらの推定された視差値は、次のワーピングおよびスプラッティングオペレーションにおいて各画素について適用が必要な水平オフセットを表す。次に、立体視変換エンジン124は、既に
図3Aについて記載したように、入力画像の低解像度表現と関連付けられた視差値を、入力画像のフル解像度までアップサンプリングする。立体視変換エンジン124は、アップサンプリングした視差推定を、入力画像についてのフル解像度の予想視差マップに変換する。視差マップの各画素は、関連付けられた視差値を有し、前景オブジェクトを表す画素は、より大きい関連付けられた視差値を有し、一方、背景オブジェクトは、小さい関連付けられた視差値を有する。
【0118】
オペレーション606において、立体視変換エンジン124は、ピラミッド特徴抽出を、入力画像に様々なレベルの解像度で行う。各レベルの解像度について、立体視変換エンジン124は、選択された解像度で入力画像の特徴を表すベクトルを生成する。様々な解像度について生成された特徴ベクトルは、互いに異なるものとなる。多数の特徴ベクトルは、入力画像のRGB画素のマットリックスとしてのネイティブ表現ではなく、まとまって、入力画像を特徴空間で表すマルチ解像度の特徴ベクトルを形成する。
【0119】
次に、オペレーション608において、立体視変換エンジン124は、第2の組のニューラルネットワークを用いて、抽出した特徴データにワーピングおよび奥行を考慮したスプラッティングを行うことによって、入力画像についての特徴空間表現を変更する。特徴空間表現の各画素は、その画素と関連付けられた視差値に比例する量でワープ(オフセット)される。様々な奥行の画素は、異なる視差値を有するので、多数の画素は、変更された特徴空間表現の同じ位置にワープされうるものであり、スプラッティングとして記載される処理である。スプラッティングは、前景と背景の両方の画素が同じ位置にワープされる前景オブジェクトと背景オブジェクトの間の境界で生じる。立体視変換エンジン124は、各ワープされた画素と関連付けられた視差値に基づいて、どのスプラットされた画素が、変更された特徴空間表現で視認可能なままであるべきかを決定する。比較的大きい関連付けられた視差値を有する画素は、観察者に近いオブジェクトを表し、視認可能なままにすべきである。比較的小さい視差値を有するスプラットされた画素は、観察者から離れた背景オブジェクトを表し、変更された特徴空間表現で隠れたままにすべきである。
【0120】
オペレーション610において、立体視変換エンジン124は、更に、ディスオクルージョンされた領域の背景を考慮したインペイントを行うことによって、特徴空間表現を変更する。ディスオクルージョンされた領域は、それまでは1つ以上の前景オブジェクトによってオクルージョンされていたが、ワーピング処理によって視認可能になった入力画像の領域である。立体視変換エンジン124は、既に
図3Aについて記載したように、単に画像背景からの情報を用いて、これらの領域を人工知能により補完(インペイント)する。立体視変換エンジン124は、更に、スプラットされた画素を合成精細化して、鮮鋭なエッジおよびエイリアシングアーチファクトを除去する。
【0121】
オペレーション612において、立体視変換エンジン124は、ワープされ、スプラットされ、インペイントされた特徴空間表現を、予想出力画像へと変換する。予想出力画像を、入力画像と一緒に見た際に、画像に描かれた様々なオブジェクトについて異なる相対的奥行の錯覚を提供する立体視対を形成する。
【0122】
図7は、様々な実施形態による入力画像としての単一のビデオフレームに、入力キーフレームとしての近傍ビデオフレームを用いて立体視変換を行う方法のステップのフローチャートである。方法のステップを、
図1~3のシステムとの関係で記載するが、当業者には、方法のステップを任意の順序で行うように構成された任意のシステムが本開示の範囲であることが分かるだろう。
【0123】
図示したように、オペレーション702において、立体視変換エンジン124は、入力画像として、ビデオシーケンスからのフレームを受け付け、入力キーフレームとして、1つ以上の近傍ビデオフレームも受け付ける。様々な実施形態において、入力画像は、左側の画像でありうるもので、それについて、対応する予想される右側の画像を生成するか、または、右側の画像でありうるもので、それについて対応する予想される左側の画像を生成する。様々な他の実施形態において、入力は、中心の画像で、それについて、左側と右側の両方の出力画像を、(例えば、順次に)生成する。
【0124】
入力キーフレームは、入力画像に時間的に関係するビデオフレームである(つまり、ビデオフレームシーケンスにおいて、入力キーフレームが入力画像350に先行するか、後続する)。いくつかの実施形態において、入力キーフレームは、一定の組の近傍ビデオフレーム
【0125】
【0126】
は、入力画像を表す。他の実施形態において、入力キーフレームは、入力画像から指数関数的に増加する距離のフレーム、例えば、
【0127】
を表す。入力キーフレームは、入力画像について、時間的コンテキストを提供して、予想出力画像の精度および安定性を改良する。立体視変換エンジン124は、各入力画像と関連付けられた選択されたキーフレームと共に、多数の順次入力画像を処理することによって、立体視変換をビデオシーケンスに行う。次の記載において、立体視変換エンジン124は、単一の更なる画像
【0128】
のみを考慮するが、任意の数の更なる画像を考慮しうる。
【0129】
オペレーション704において、立体視変換エンジン124は、入力画像について、および、各入力キーフレームについて、高解像度の予想視差マップを生成する。立体視変換エンジン124は、第1のニューラルネットワークを用いて、まず、入力画像および各入力キーフレームの解像度を下げたバージョンを生成することによって、奥行予想を行う。次に、立体視変換エンジン124は、画像の様々なオブジェクトおよび背景の奥行を予想する。様々な実施形態において、立体視変換エンジン124は、既に
図3Bについて記載したように、奥行の逆数1/dを予想する。立体視変換エンジン124は、更に、変化するか、静止したオブジェクトおよび背景の位置を入力フレームおよび1つ以上の入力キーフレームに亘って分析することによって、シーンポイントクラウドを生成する。立体視変換エンジン124は、カメラポーズおよび配置を、例えば、structure-from-motion技術を用いて推定する。立体視変換エンジン124は、各時間ステップについて、入力画像および入力キーフレームによって表されたポイントクラウドのスパース奥行レンダリングを生成する。その結果得られた奥行逆数推定値を、入力画像の解像度を下げたバージョンおよび各入力フレームの解像度を下げたバージョンを用いて、画素毎に記録する。
【0130】
立体視変換エンジン124は、入力画像の解像度を下げたバージョン、および、入力画像の解像度を下げたバージョンの各画素と関連付けられた奥行逆数推定値に、視差推定を行う。既に
図3Bついて記載したように、立体視変換エンジン124は、入力画像の解像度を下げたバージョンについて、画素毎の奥行逆数情報をアラインさせて、各画素について正規化された予想視差値を生じる。様々な他の実施形態において、ユーザは、ユーザによって選択された入力画像350の1つ以上の部分の手動のアノテーションの形態で、基準視差を立体視変換エンジン124に提供する。立体視変換エンジン124は、予想視差を、与えられた基準視差値に、例えば、最小二乗アラインメント技術を用いてアラインさせる。立体視変換エンジン124は、各入力キーフレームについても同様に視差推定を行う。入力画像および各入力キーフレームについて、立体視変換エンジン124は、関連付けられた低解像度の視差推定にアップサンプリングを行う。立体視変換エンジン124は、入力画像および各入力キーフレームについて、アップサンプリングされた視差推定を対応する高解像度の入力画像またはキーフレームと関連付けることによって、予想視差マップを生成する。
【0131】
オペレーション706において、立体視変換エンジン124は、動きベクトルを生成して、入力キーフレーム(一実施形態において、
【0132】
【0133】
にワープさせる。いくつかの実施形態において、立体視変換エンジン124は、順方向ベクトルを、入力キーフレーム
【0134】
【0135】
の間の順方向オプティカルフロー、および、予想視差マップからの時間インスタンスtについての視差値に基づいて生成する。順方向オプティカルフローは、時間インスタンスt-1と時間インスタンスtの間のシーンに描かれたオブジェクトの動きを表す画素毎のベクトルを含む。立体視変換エンジン124は、更に、時間インスタンスtについての視差値を、時間インスタンスt-1へ逆ワープさせる。次に、立体視変換エンジン124は、ワープされた視差値をオプティカルフローベクトルに加えて、
【0136】
【0137】
への順方向ベクトルを生じる。
【0138】
他の実施形態において、立体視変換エンジン124は、逆方向ベクトルを、入力画像
【0139】
【0140】
間の逆方向オプティカルフローに基づいて生成する。逆方向オプティカルフローは、時間インスタンスtと時間インスタンスt-1の間のシーンに描かれたオブジェクトの動きを表す画素毎のベクトルを含む。次に、立体視変換エンジン124は、このオプティカルフローをフレーム
【0141】
へとワープさせる。立体視変換エンジン124は、既に
図3Aについて記載したように立体視変換エンジン124を入力画像について実行して、
図3Aのインペイント335の後に取得したワープされた画素毎の視差値の負の値を計算することによって、逆方向(右から左の)視差値も生成する。次に、立体視変換エンジン124は、ワープされた右から左への視差値を、逆方向オプティカルフローに加えて、逆方向ベクトルを生じる。
【0142】
更に他の実施形態において、立体視変換エンジン124は、既に
図3Aについて記載したように単一の入力画像から生成された出力画像
【0143】
の推定に基づいて、直接予想されたベクトルを生成する。出力画像
【0144】
【0145】
【0146】
間のオプティカルフローを直接推定し、順方向または逆方向ベクトルを計算する。
【0147】
オペレーション708において、立体視変換エンジン124は、ピラミッド特徴抽出を、入力画像および各入力キーフレームに様々なレベルの解像度で行う。各レベルの解像度について、立体視変換エンジン124は、その解像度で入力画像または入力キーフレームを表す特徴ベクトルを生成する。多数の特徴ベクトルは、まとまって、入力画像または入力キーフレームを特徴空間で表すマルチ解像度の特徴ベクトルを形成する。
【0148】
立体視変換エンジン124は、第2の組の訓練されたニューラルネットワークを実行して、既に記載したように生成された動きベクトルにより、入力画像の特徴空間表現をワープさせる。具体的には、入力画像の特徴空間表現の各画素は、生成された動きベクトルの値によってシフトされる。多数の入力キーフレームを含む様々な実施形態において、動きベクトルは、各入力キーフレームと入力画像の間に生成される。次に、立体視変換エンジン124は、入力画像の特徴空間表現をこれらの多数の各動きベクトルに基づいてワープさせる。
【0149】
既に
図6について記載したように、多数の画素が、入力画像の特徴空間表現の同じ位置にワープされうる(スプラットされうる)。立体視変換エンジン124は、これらのオクルージョンされた画素に、同じ位置にワープされた多数の画素の順序を決定する重みを含む微分可能な奥行を考慮したワーピング戦略を用いて取り組む。この重み付けした順序は、スプラットされた各画素について推定された視差値から決定され、どの画素が予想出力画像で視認可能なままになるかを決定する。立体視変換エンジン124は、上記ワーピングおよびスプラッティング処理を、入力画像の全レベルのマルチ解像度の特徴ベクトル表現を用いて行う。各解像度レベルについて、立体視変換エンジン124は、推定された視差値を、補間によってアップサンプリングして、特定の解像度レベルにマッチさせる。
【0150】
オペレーション710において、立体視変換エンジン124は、背景を考慮したインペイントおよび合成精細化を、多数の解像度についてワープされた画像の特徴および視差を用いて行う。インペイントおよび合成精細化は、それまでは隠れていたが新たにディスオクルージョンされた背景領域を補完し、オクルージョンされた領域の前景オブジェクトと背景の間の新たな境界でエイリアシングおよび鮮鋭なエッジを削減する。立体視変換エンジン124は、既に
図3Aについて記載したように、背景を考慮したインペイントを、局所マルチスケール自己アテンションを用いて行う。更に、立体視変換エンジン124は、入力画像および入力キーフレームを分析して、1つ以上の入力キーフレームで、それまでは視認可能だったが入力画像でオクルージョンされた背景領域を見つけ出して、これらの領域を用いて、インペイントを高精細化しうる。例えば、背景の特定のセクションは、時間インスタンスt-1を表す入力キーフレームで視認可能でありうるが、時間インスタンスt表す入力画像でオクルージョンされる。立体視変換エンジン124は、背景のその特定のセクションを、予想出力画像で新たにディスオクルージョンされたと決定し、時間インスタンスt-1を表す入力キーフレームからの背景情報を、新たにディスオクルージョンされた領域をより正確にインペイントするために用いうる。
【0151】
オペレーション712において、ワーピング、背景を考慮したインペイント、および、合成精細化の後に、立体視変換エンジン124は、入力画像および入力キーフレームついてのマルチ解像度の特徴空間表現を、最終予想出力画像へと変換する。
【0152】
要するに、立体視変換エンジンは、ビデオコンテンツの入力画像を処理して、対応する出力画像を生成し、入力画像および対応する出力画像が、入力画像のコンテンツの立体視表現を形成するようにする。立体視変換エンジンによって用いられる全ての関数および変形が全微分可能であり、基になる立体視変換モデルをバックプロパゲーションによって、エンドツーエンドで訓練するのを助ける。オペレーションにおいて、立体視変換エンジンは、入力フレームの解像度を下げたバージョンについて画素毎の奥行の逆数を計算し、次に、アラインメントステップを行って視差値、つまり、画素の点毎変位ベクトルを生じることによって、入力画像に視差推定を行う。入力画像について視差値を計算する際に、可能な視差値の範囲が提供されて、計算された値を正規化してこの範囲内になるようにするか、または、基準視差を用いて、計算した値を調節する。基準視差は、(訓練中に用いられる)グラウンドトゥルース視差、または、ユーザが提案し、推論時間に提供された視差値の形態でありうる。ユーザは、入力フレームの中の重要なオブジェクトを選択、動かない背景領域に対応する入力フレームの点を特定、または、カメラパラメータ若しくはカメラ配置情報を提供するなどの更なる美的制御入力も提供しうる。次に、計算および調節/正規化された視差値を用いて、高解像度の視差推定を生成する。立体視変換エンジンは、更に、様々な解像度の入力フレームから、特徴を抽出する。
【0153】
立体視変換エンジンは、特徴空間で、抽出された特徴および高解像度の視差推定に基づいて、特徴ワーピング、奥行を考慮したスプラッティング、および、インペイントを行う。スプラッティングは、入力画像の特徴空間表現で、多数の画素を、それと関連付けられた変位ベクトルよって同じ画素へとマッピング(ワーピング)することを称する。立体視変換エンジンは、推定された視差値に基づいて、どのスプラットされた画素が予想される対象フレームの前景に現れるべきかを決定するので、スプラッティングは、奥行を考慮するものである。立体視変換エンジンは、入力画像の特徴空間表現のディスオクルージョンされた領域に、背景を考慮してインペイントを行う。これらのディスオクルージョンされた領域は、画像背景からの画素およびテクスチャのみを用いて補完される。立体視変換エンジンは、予想出力画像を、ワープされ、スプラットされ、インペイントされた特徴空間画像表現から生成する。
【0154】
単一の予想出力画像を単一の入力フレームから生成する上記処理は、多数の入力画像を受け付けて、多数の予想出力画像を生成するように拡張可能である。多数の隣り合った、近傍、または、略近傍の入力画像に含まれる情報を立体視変換処理を導くのに用いて、立体視変換エンジンが、多数の予想出力画像に亘って時間的一貫性を高めるのを可能にして、入力画像および予想出力画像を含む立体視対における観察者が知覚する奥行の錯覚を改良する。
【0155】
本開示の技術の従来技術に対する1つの技術的利点は、様々な立体視変換ステップで用いられる関数および変形が全微分可能で、開示した立体視変換モデルの改良されたエンドツーエンドの訓練を可能にすることである。更に、本開示の技術は、ユーザからの任意の美的制御入力を可能にし、入力フレーム以外の更なる入力を考慮するオプションも可能にする。更に、本開示の技術は、奥行を考慮したスプラッティングおよびインペイントを行うために、入力画像からの予想視差を組み込み、対応する出力画像を生成および合成する際に、既知の基準入力フレームからの視差情報を用いる。任意で多数の入力画像を用いることで、本開示の技術が多数の予想出力ビデオ画像に亘って時間的一貫性を高めることも可能にする。これらの技術的利点は、従来のアプローチに対して、1つ以上の技術的改良を提供する。
【0156】
1.様々な実施形態において、コンピュータを利用した方法は、入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、入力画像から、入力画像内の画素を表す特徴データを抽出するステップと、特徴データによって表された各画素に、予想視差マップに基づいて、オフセットを適用するステップと、特徴データによって表され、同じ画素位置にオフセットされた複数のオフセット画素を特定するステップと、各複数のオフセット画素に、視認性値を、予想視差マップに基づいて付与するステップと、各複数のオフセット画素を、視認性値に基づいて、複数のオフセット画素の1つの画素が視認可能で、その他の複数のオフセット画素が隠れるように変更するステップと、出力画像を、特徴データおよび変更した複数のオフセット画素に基づいて、入力画像と出力画像が立体視対の画像を形成するように生成するステップとを含む。
【0157】
2.予想視差マップを生成するステップは、入力画像の解像度を下げたバージョンを生成するステップと、画素毎の奥行値を、入力画像の解像度を下げたバージョンに描かれた前景および背景オブジェクトを表す画素に付与するステップと、視差マップにおいて、画素毎の予想視差値を奥行値に基づいて付与して、予想視差マップで前景オブジェクトを表す画素に、背景オブジェクトを表す画素より大きい視差値を付与するステップと、入力画像の解像度を下げたバージョンと関連付けられた画素毎の視差マップの値を、入力画像の元の解像度にアップサンプリングするステップとを含むものである、項目1に記載のコンピュータを利用した方法。
【0158】
3.入力画像について、1つ以上のユーザによるアノテーションを受け付けるステップであって、各ユーザによるアノテーションは、入力画像の選択部分の特定、および、選択部分と関連付けられたグラウンドトゥルース視差値を含むものであるステップと、入力画像の選択部分についての画素毎の予想視差値を、入力画像の選択部分についての関連付けられたグラウンドトゥルース視差値とアラインさせるステップとを更に含む、項目1または2に記載のコンピュータを利用した方法。
【0159】
4.入力画像についての各1つ以上のユーザによるアノテーションは、入力画像の一部を囲む境界ボックス、入力画像の部分を示す1つ以上のブラシストローク、または、入力画像に描かれたオブジェクトの手動選択の少なくとも1つを含むものである、項目1から3のいずれか1つに記載のコンピュータを利用した方法。
【0160】
5.各複数のオフセット画素を変更するステップは、複数のオフセット画素について関連付けられた視差マップの値を比較するステップと、複数のオフセット画素の1つの画素を、最も高い視差マップの値を有する複数のオフセット画素の1つの画素に基づいて視認可能なようにレンダリングし、一方、より低い視差マップの値を有する同じ画素位置の画素を隠すようにするステップとを含むものである、項目1から4のいずれか1つに記載のコンピュータを利用した方法。
【0161】
6.1つ以上の機械学習モデルによって行われる全ての関数および変形は、全微分可能である、項目1から5のいずれか1つに記載のコンピュータを利用した方法。
【0162】
7.抽出した特徴データによって表された各オフセット画素にオフセットを適用した後に、特徴データにおける画像背景の一部がディスオクルージョンされる画素位置を表すディスオクルージョンマスクを生成するステップと、ディスオクルージョンマスクによって表された画素位置を、画像背景から選択された画像データで補完するステップと、出力画像を、変更した複数のオフセット画素、および、補完されたディスオクルージョンマスクによって表された画素位置に基づいて生成するステップとを更に含む、項目1から6のいずれか1つに記載のコンピュータを利用した方法。
【0163】
8.ディスオクルージョンマスクによって表された画素位置を補完するのに用いた画像データは、近傍系自己アテンション技術を適用することによって選択されたものである、項目1から7のいずれか1つに記載のコンピュータを利用した方法。
【0164】
9.入力画像は、ビデオシーケンスの単一のフレームであり、方法は、更に、入力として、1つ以上のキーフレームを受け付けて、各キーフレームは、入力画像から時間的距離に位置するビデオシーケンスからのフレームを含むものであるステップと、各キーフレームについての予想視差マップを、キーフレーム内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、キーフレームおよび入力画像に描かれたオブジェクトの位置の変化を記述する入力画像と各キーフレームの間の動きベクトルを、各キーフレームについての予想視差マップに基づいて作成するステップと、各キーフレームから、キーフレーム特徴データを抽出するステップと、動きベクトルを、各キーフレームについて抽出したキーフレーム特徴データに適用して、ディスオクルージョンマスクによって表された画素位置を補完するステップを導くステップと、を含む、項目1から8のいずれか1つに記載のコンピュータを利用した方法。
【0165】
10.複数のキーフレームを入力として受け付けて、複数のキーフレームは、入力画像から指数関数的に増加する時間的距離で選択されるものである、項目1から9のいずれか1つに記載のコンピュータを利用した方法。
【0166】
11.様々な実施形態において、1つ以上の非一時的なコンピュータ読取可能媒体は命令を記憶し、命令は、1つ以上の処理部によって実行された時に、1つ以上の処理部に、入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、入力画像から、入力画像内の画素を表す特徴データを抽出するステップと、特徴データによって表された各画素に、予想視差マップに基づいて、オフセットを適用するステップと、特徴データによって表され、同じ画素位置にオフセットされた複数のオフセット画素を特定するステップと、各複数のオフセット画素に、視認性値を、予想視差マップに基づいて付与するステップと、各複数のオフセット画素を、視認性値に基づいて、複数のオフセット画素の1つの画素が視認可能で、その他の複数のオフセット画素が隠れるように変更するステップと、出力画像を、特徴データおよび変更した複数のオフセット画素に基づいて、入力画像および出力画像が立体視対の画像を形成するように生成するステップとを行わせるものである。
【0167】
12.命令は、更に、1つ以上の処理部に、入力画像の解像度を下げたバージョンを生成するステップと、画素毎の奥行値を、入力画像の解像度を下げたバージョンに描かれた前景および背景オブジェクトを表す画素に付与するステップと、視差マップにおいて、画素毎の予想視差値を奥行値に基づいて付与して、予想視差マップで前景オブジェクトを表す画素に、背景オブジェクトを表す画素より大きい視差値を付与するステップと、入力画像の解像度を下げたバージョンと関連付けられた画素毎の視差マップの値を、入力画像の元の解像度にアップサンプリングするステップとを行わせるものである、項目11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【0168】
13.命令は、更に、1つ以上の処理部に、入力画像について、1つ以上のユーザによるアノテーションを受け付けるステップであって、各ユーザによるアノテーションは、入力画像の選択部分の特定、および、選択部分と関連付けられたグラウンドトゥルース視差値を含むものであるステップと、入力画像の選択部分についての画素毎の予想視差値を、入力画像の選択部分についての関連付けられたグラウンドトゥルース視差値とアラインさせるステップとを行わせるものである、項目11または12に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【0169】
14.各複数のオフセット画素を変更するステップを行わせる命令は、更に、1つ以上の処理部に、複数のオフセット画素について関連付けられた視差マップの値を比較するステップと、複数のオフセット画素の1つの画素を、最も高い視差マップの値を有する複数のオフセット画素の1つの画素に基づいて視認可能なようにレンダリングし、一方、より低い視差マップの値を有する同じ画素位置の画素を隠すようにするステップとを行わせるものである、項目11から13のいずれか1つに記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【0170】
15.命令は、更に、1つ以上の処理部に、抽出した特徴データによって表された各オフセット画素にオフセットを適用した後に、特徴データにおける画像背景の一部がディスオクルージョンされる画素位置を表すディスオクルージョンマスクを生成するステップと、ディスオクルージョンマスクによって表された画素位置を、画像背景から選択された画像データで補完するステップと、出力画像を、変更した複数のオフセット画素、および、補完されたディスオクルージョンマスクによって表された画素位置に基づいて生成するステップとを行わせるものである、項目11から14のいずれか1つに記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【0171】
16.入力画像は、ビデオシーケンスの単一のフレームであり、命令は、更に、1つ以上の処理部に、入力として、1つ以上のキーフレームを受け付けて、各キーフレームは、入力画像から時間的距離に位置するビデオシーケンスからのフレームを含むものであるステップと、各キーフレームについての予想視差マップを、キーフレーム内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、キーフレームおよび入力画像に描かれたオブジェクトの位置の変化を記述する入力画像と各キーフレームの間の動きベクトルを、各キーフレームについての予想視差マップに基づいて作成するステップと、各キーフレームから、キーフレーム特徴データを抽出するステップと、動きベクトルを、各キーフレームについて抽出したキーフレーム特徴データに適用して、ディスオクルージョンマスクによって表された画素位置を補完するステップを導くステップとを行わせるものである、項目11から15のいずれか1つに記載の1つ以上の非一時的なコンピュータ読取可能媒体。
【0172】
17.様々な実施形態において、コンピュータを利用した方法は、画素毎の奥行、および、入力画像に描かれたオブジェクトと関連付けられた視差値を予想する第1のニューラルネットワークを実行するステップと、第1のニューラルネットワークのパラメータを、予想視差値と関連付けられた第1の計算した訓練損失に基づいて更新するステップと、第1のニューラルネットワークを繰返し実行して、第1のニューラルネットワークのパラメータを更新するステップと、第1の計算した訓練損失が第1の閾値未満の場合に、第1のニューラルネットワークの実行を終了するステップと、第1のニューラルネットワークのパラメータを一定に保持しながら、第1のニューラルネットワークおよび第2の組のニューラルネットワークを順次実行するステップと、第2の組のニューラルネットワークのパラメータを、予想出力画像と関連付けられた第2の計算した訓練損失に基づいて更新するステップと、第2の組のニューラルネットワークのパラメータを更新しながら、第1のニューラルネットワークおよび第2の組のニューラルネットワークの第1の反復順次実行を開始するステップと、第2の計算した訓練損失が第2の閾値未満の場合に、第1のニューラルネットワークおよび第2の組のニューラルネットワークの第1の反復順次実行を終了するステップと、第1のニューラルネットワークおよび第2の組のニューラルネットワークを順次実行するステップと、第1のニューラルネットワークおよび第2の組のニューラルネットワークを、予想出力画像と関連付けられた第3の計算した訓練損失に基づいて更新するステップと、第1のニューラルネットワークおよび第2の組のニューラルネットワークのパラメータを更新しながら、第1のニューラルネットワークおよび第2の組のニューラルネットワークの第2の反復順次実行を開始するステップと、第3の計算した訓練損失が第3の閾値未満の場合に、第1のニューラルネットワークおよび第2の組のニューラルネットワークの第2の反復順次実行を終了するステップとを含む。
【0173】
18.第1の計算した訓練損失は、第1のニューラルネットワークからの予想視差値と既知の訓練データセット視差値の間の距離L1を示す視差損失Ldである、項目17に記載のコンピュータを利用した方法。
【0174】
19.第2の計算した訓練損失は、a)予想出力画像とグラウンドトゥルース画像対訓練データとの画素毎の比較から特定した距離L1を表すフレーム損失LL1と、b)高レベルセマンティック特徴量の予想出力画像とグラウンドトゥルース画像対訓練データとの差を表す知覚損失LFとの少なくとも一方を含むものである、項目17または18に記載のコンピュータを利用した方法。
【0175】
20.第3の計算した訓練損失は、L=LL1+γ・LF+δ・Ldによって与えられる合計訓練損失Lであり、但し、γ、δは、各々、知覚損失LFおよび視差損失Ldと関連付けられた訓練可能な重みパラメータである、項目17から19のいずれか1つに記載のコンピュータを利用した方法。
【0176】
任意の請求項に記載の任意のクレーム要素、および/または、本明細書に記載の任意の要素の任意の態様での任意および全ての組合せは、本発明および保護の意図した範囲に含まれる。
【0177】
様々な実施形態の記載は、例示として提供したものであり、排他的であることも、開示した実施形態に限定することも意図しない。当業者には、記載した実施形態の範囲および精神を逸脱することなく、多数の変更および変形が明らかだろう。
【0178】
本発明の実施形態の態様を、システム、方法、または、コンピュータプログラムプロダクトとして実施しうる。したがって、本開示の態様は、完全にハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)完全にソフトウェアの実施形態、または、ソフトウェアとハードウェアを組み合わせた実施形態の形態でありうるもので、全て、本明細書では、概して「モジュール」、「システム」または「コンピュータ」と称しうる。更に、本開示に記載の任意のハードウェアおよび/またはソフトウェア技術、処理、機能、構成要素、エンジン、モジュール、または、システムを、回路、または、回路の組として実装しうる。更に、本開示の態様は、コンピュータ読取可能プログラムコードを有する1つ以上のコンピュータ読取可能媒体において実施されるコンピュータプログラムプロダクトの形態でありうる。
【0179】
任意の組合せの1つ以上のコンピュータ読取可能媒体を用いうる。コンピュータ読取可能媒体は、コンピュータ読取可能信号媒体、または、コンピュータ読取可能記憶媒体でありうる。コンピュータ読取可能記憶媒体は、限定するものではないが、例えば、電子、磁気、光学、電磁、赤外線または半導体システム、装置またはデバイス、若しくは、これらの任意の適切な組合せでありうる。コンピュータ読取可能記憶媒体のより具体的な例(非排他的一覧)は、1つ以上の配線を含む電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去およびプログラム可能な読取専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、または、これらの任意の適切な組合せを含む。本明細書のコンテキストにおいて、コンピュータ読取可能記憶媒体は、命令実行システム、装置、または、デバイスによって、または、それらと関連して用いられるプログラムを含むか記憶しうる任意の有形媒体でありうる。
【0180】
本開示の態様を、本開示の実施形態による方法、装置(システム)、および、コンピュータプログラムプロダクトのフローチャート、および/または、ブロック図について記載している。フローチャートおよび/またはブロック図の各ブロック、並びに、フローチャートおよび/またはブロック図の複数のブロックの組合せを、コンピュータプログラム命令によって実施しうることが分かるだろう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、または、他のプログラム可能データ処理装置の処理部に提供されて、機械を製作しうる。命令は、コンピュータまたは他のプログラム可能データ処理装置によって実行された際に、フローチャート、および/または、ブロック図のブロックに示した機能/アクトを実施可能にする。そのような処理部は、限定するものではないが、汎用処理部、専用処理部、特定用途向け処理部、または、フィールドプログラマブルゲートアレイでありうる。
【0181】
図面のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、および、コンピュータプログラムプロダクトを実施する際のアーキテクチャ、機能、並びに、オペレーションを示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または、コードの一部を表し、それは、特定の論理関数を実行する1つ以上の実行可能な命令を含みうる。更に、いくつかの代わりの実施例において、ブロックに示した機能は図面に示したものと異なる順序で実施されうることにも留意すべきである。例えば、関連する機能に応じて、2つの連続して示したブロックは、実際、略同時に実行されるか、場合によっては、ブロックは逆の順序で実行されうる。ブロック図および/またはフローチャートの各ブロック、並びに、ブロック図および/またはフローチャートの複数のブロックの組合せは、特定の機能またはアクトを行う専用のハードウェア系システムまたは専用ハードウェアおよびコンピュータ命令の組合せによって実施されうることも分かるだろう。
【0182】
ここまでの記載は、本開示の実施形態に関するが、本開示の基本的範囲を逸脱することなく、本開示の他の更なる実施形態も考案しうるものであり、本開示の範囲は添付の請求項によって特定される。
【符号の説明】
【0183】
100 計算装置
122 訓練エンジン
124 立体視変換エンジン
220 訓練データ前処理エンジン
230 機械学習モデル
235 視差推定ネットワーク
240 変換ネットワーク
242 特徴抽出ネットワーク
244 ワーピングおよびスプラッティングネットワーク
246 画像合成ネットワーク
【手続補正書】
【提出日】2024-08-01
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0182
【補正方法】変更
【補正の内容】
【0182】
ここまでの記載は、本開示の実施形態に関するが、本開示の基本的範囲を逸脱することなく、本開示の他の更なる実施形態も考案しうるものであり、本開示の範囲は添付の請求項によって特定される。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
立体視変換を行うコンピュータを利用した方法において、
入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、該入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記入力画像から、該入力画像内の前記画素を表す特徴データを抽出するステップと、
前記特徴データによって表された各画素に、前記予想視差マップに基づいて、オフセットを適用するステップと、
前記特徴データによって表され、同じ画素位置にオフセットされた複数のオフセット画素を特定するステップと、
各前記複数のオフセット画素に、視認性値を、前記予想視差マップに基づいて付与するステップと、
各前記複数のオフセット画素を、前記視認性値に基づいて、該複数のオフセット画素の1つの画素が視認可能で、その他の該複数のオフセット画素が隠れるように変更するステップと、
出力画像を、前記特徴データおよび前記変更した複数のオフセット画素に基づいて、前記入力画像と該出力画像が立体視対の画像を形成するように生成するステップと
を含むコンピュータを利用した方法。
実施形態2
前記予想視差マップを生成するステップは、
前記入力画像の解像度を下げたバージョンを生成するステップと、
画素毎の奥行値を、前記入力画像の前記解像度を下げたバージョンに描かれた前景および背景オブジェクトを表す画素に付与するステップと、
前記視差マップにおいて、画素毎の予想視差値を前記奥行値に基づいて付与して、該予想視差マップで前景オブジェクトを表す画素に、背景オブジェクトを表す画素より大きい視差値を付与するステップと、
前記入力画像の前記解像度を下げたバージョンと関連付けられた画素毎の前記視差マップの値を、該入力画像の元の解像度にアップサンプリングするステップと
を含むものである、実施形態1に記載のコンピュータを利用した方法。
実施形態3
前記入力画像について、1つ以上のユーザによるアノテーションを受け付けるステップであって、各該ユーザによるアノテーションは、該入力画像の選択部分の特定、および、該選択部分と関連付けられたグラウンドトゥルース視差値を含むものであるステップと、
前記入力画像の前記選択部分についての前記画素毎の予想視差値を、該入力画像の該選択部分についての前記関連付けられたグラウンドトゥルース視差値とアラインさせるステップと
を更に含む、実施形態2に記載のコンピュータを利用した方法。
実施形態4
前記入力画像についての各前記1つ以上のユーザによるアノテーションは、該入力画像の一部を囲む境界ボックス、該入力画像の部分を示す1つ以上のブラシストローク、または、該入力画像に描かれたオブジェクトの手動選択の少なくとも1つを含むものである、実施形態3に記載のコンピュータを利用した方法。
実施形態5
各前記複数のオフセット画素を変更するステップは、
前記複数のオフセット画素について関連付けられた前記視差マップの値を比較するステップと、
前記複数のオフセット画素の前記1つの画素を、最も高い視差マップの値を有する該複数のオフセット画素の該1つの画素に基づいて視認可能なようにレンダリングし、一方、より低い視差マップの値を有する同じ画素位置の画素を隠すようにするステップと
を含むものである、実施形態1に記載のコンピュータを利用した方法。
実施形態6
前記1つ以上の機械学習モデルによって行われる全ての関数および変形は、全微分可能である、実施形態1に記載のコンピュータを利用した方法。
実施形態7
前記抽出した特徴データによって表された各オフセット画素に前記オフセットを適用した後に、該特徴データにおける画像背景の一部がディスオクルージョンされる画素位置を表すディスオクルージョンマスクを生成するステップと、
前記ディスオクルージョンマスクによって表された前記画素位置を、前記画像背景から選択された画像データで補完するステップと、
前記出力画像を、前記変更した複数のオフセット画素、および、前記補完された前記ディスオクルージョンマスクによって表された画素位置に基づいて生成するステップと
を更に含む、実施形態1に記載のコンピュータを利用した方法。
実施形態8
前記ディスオクルージョンマスクによって表された画素位置を補完するのに用いた前記画像データは、近傍系自己アテンション技術を適用することによって選択されたものである、実施形態7に記載のコンピュータを利用した方法。
実施形態9
前記入力画像は、ビデオシーケンスの単一のフレームであり、方法は、更に、
入力として、1つ以上のキーフレームを受け付けて、各該キーフレームは、前記入力画像から時間的距離に位置する前記ビデオシーケンスからのフレームを含むものであるステップと、
各前記キーフレームについての予想視差マップを、該キーフレーム内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記キーフレームおよび前記入力画像に描かれたオブジェクトの位置の変化を記述する該入力画像と各該キーフレームの間の動きベクトルを、各該キーフレームについての予想視差マップに基づいて作成するステップと、
各前記キーフレームから、キーフレーム特徴データを抽出するステップと、
前記動きベクトルを、各前記キーフレームについて抽出した前記キーフレーム特徴データに適用して、前記ディスオクルージョンマスクによって表された画素位置を補完するステップを導くステップと、
を含む、実施形態7に記載のコンピュータを利用した方法。
実施形態10
複数のキーフレームを入力として受け付けて、該複数のキーフレームは、前記入力画像から指数関数的に増加する時間的距離で選択されるものである、実施形態9に記載のコンピュータを利用した方法。
実施形態11
1つ以上の非一時的なコンピュータ読取可能媒体において、該媒体は命令を記憶し、該命令は、1つ以上の処理部によって実行された時に、該1つ以上の処理部に、
入力画像についての予想視差マップを、1つ以上の機械学習モデルを用いて、該入力画像内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記入力画像から、該入力画像内の前記画素を表す特徴データを抽出するステップと、
前記特徴データによって表された各画素に、前記予想視差マップに基づいて、オフセットを適用するステップと、
前記特徴データによって表され、同じ画素位置にオフセットされた複数のオフセット画素を特定するステップと、
各前記複数のオフセット画素に、視認性値を、前記予想視差マップに基づいて付与するステップと、
各前記複数のオフセット画素を、前記視認性値に基づいて、該複数のオフセット画素の1つの画素が視認可能で、その他の該複数のオフセット画素が隠れるように変更するステップと、
出力画像を、前記特徴データおよび前記変更した複数のオフセット画素に基づいて、前記入力画像および該出力画像が立体視対の画像を形成するように生成するステップと
を行わせるものである1つ以上の非一時的なコンピュータ読取可能媒体。
実施形態12
前記命令は、更に、前記1つ以上の処理部に、
前記入力画像の解像度を下げたバージョンを生成するステップと、
画素毎の奥行値を、前記入力画像の前記解像度を下げたバージョンに描かれた前景および背景オブジェクトを表す画素に付与するステップと、
前記視差マップにおいて、画素毎の予想視差値を前記奥行値に基づいて付与して、該予想視差マップで前景オブジェクトを表す画素に、背景オブジェクトを表す画素より大きい視差値を付与するステップと、
前記入力画像の前記解像度を下げたバージョンと関連付けられた画素毎の前記視差マップの値を、該入力画像の元の解像度にアップサンプリングするステップと
を行わせるものである、実施形態11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
実施形態13
前記命令は、更に、前記1つ以上の処理部に、
前記入力画像について、1つ以上のユーザによるアノテーションを受け付けるステップであって、各該ユーザによるアノテーションは、該入力画像の選択部分の特定、および、該選択部分と関連付けられたグラウンドトゥルース視差値を含むものであるステップと、
前記入力画像の前記選択部分についての前記画素毎の予想視差値を、該入力画像の該選択部分についての前記関連付けられたグラウンドトゥルース視差値とアラインさせるステップと
を行わせるものである、実施形態12に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
実施形態14
各前記複数のオフセット画素を変更するステップを行わせる命令は、更に、前記1つ以上の処理部に、
前記複数のオフセット画素について前記関連付けられた視差マップの値を比較するステップと、
前記複数のオフセット画素の前記1つの画素を、最も高い視差マップの値を有する該複数のオフセット画素の該1つの画素に基づいて視認可能なようにレンダリングし、一方、より低い視差マップの値を有する同じ画素位置の画素を隠すようにするステップと
を行わせるものである、実施形態11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
実施形態15
前記命令は、更に、前記1つ以上の処理部に、
前記抽出した特徴データによって表された各オフセット画素に前記オフセットを適用した後に、該特徴データにおける画像背景の一部がディスオクルージョンされる画素位置を表すディスオクルージョンマスクを生成するステップと、
前記ディスオクルージョンマスクによって表された前記画素位置を、前記画像背景から選択された画像データで補完するステップと、
前記出力画像を、前記変更した複数のオフセット画素、および、前記補完された前記ディスオクルージョンマスクによって表された画素位置に基づいて生成するステップと
を行わせるものである、実施形態11に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
実施形態16
前記入力画像は、ビデオシーケンスの単一のフレームであり、
前記命令は、更に、前記1つ以上の処理部に、
入力として、1つ以上のキーフレームを受け付けて、各該キーフレームは、前記入力画像から時間的距離に位置する前記ビデオシーケンスからのフレームを含むものであるステップと、
各前記キーフレームについての予想視差マップを、該キーフレーム内の画素と関連付けられた1つ以上の奥行値に基づいて生成するステップと、
前記キーフレームおよび前記入力画像に描かれたオブジェクトの位置の変化を記述する該入力画像と各該キーフレームの間の動きベクトルを、各該キーフレームについての前記予想視差マップに基づいて作成するステップと、
各前記キーフレームから、キーフレーム特徴データを抽出するステップと、
前記動きベクトルを、各前記キーフレームについて抽出した前記キーフレーム特徴データに適用して、前記ディスオクルージョンマスクによって表された画素位置を補完するステップを導くステップと
を行わせるものである、実施形態15に記載の1つ以上の非一時的なコンピュータ読取可能媒体。
実施形態17
機械学習モデルを立体視変換を行うように訓練するコンピュータを利用した方法において、
画素毎の奥行、および、入力画像に描かれたオブジェクトと関連付けられた視差値を予想する第1のニューラルネットワークを実行するステップと、
前記第1のニューラルネットワークのパラメータを、前記予想視差値と関連付けられた第1の計算した訓練損失に基づいて更新するステップと、
前記第1のニューラルネットワークを繰返し実行して、該第1のニューラルネットワークの前記パラメータを更新するステップと、
前記第1の計算した訓練損失が第1の閾値未満の場合に、前記第1のニューラルネットワークの実行を終了するステップと、
前記第1のニューラルネットワークの前記パラメータを一定に保持しながら、該第1のニューラルネットワークおよび第2の組のニューラルネットワークを順次実行するステップと、
前記第2の組のニューラルネットワークのパラメータを、予想出力画像と関連付けられた第2の計算した訓練損失に基づいて更新するステップと、
前記第2の組のニューラルネットワークの前記パラメータを更新しながら、前記第1のニューラルネットワークおよび該第2の組のニューラルネットワークの第1の反復順次実行を開始するステップと、
前記第2の計算した訓練損失が第2の閾値未満の場合に、前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークの前記第1の反復順次実行を終了するステップと、
前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークを順次実行するステップと、
前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークを、前記予想出力画像と関連付けられた第3の計算した訓練損失に基づいて更新するステップと、
前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークの前記パラメータを更新しながら、該第1のニューラルネットワークおよび該第2の組のニューラルネットワークの第2の反復順次実行を開始するステップと、
前記第3の計算した訓練損失が第3の閾値未満の場合に、前記第1のニューラルネットワークおよび前記第2の組のニューラルネットワークの前記第2の反復順次実行を終了するステップと
を含むコンピュータを利用した方法。
実施形態18
前記第1の計算した訓練損失は、前記第1のニューラルネットワークからの前記予想視差値と既知の訓練データセット視差値の間の距離L1を示す視差損失L
d
である、実施形態17に記載のコンピュータを利用した方法。
実施形態19
前記第2の計算した訓練損失は、
a)前記予想出力画像とグラウンドトゥルース画像対訓練データとの画素毎の比較から特定した距離L1を表すフレーム損失L
L1
と、
b)高レベルセマンティック特徴量の前記予想出力画像と前記グラウンドトゥルース画像対訓練データの差を表す知覚損失L
F
と
の少なくとも一方を含むものである、実施形態18に記載のコンピュータを利用した方法。
実施形態20
前記第3の計算した訓練損失は、
L=L
L1
+γ・L
F
+δ・L
d
によって与えられる合計訓練損失Lであり、但し、γ、δは、各々、知覚損失L
F
および視差損失L
d
と関連付けられた訓練可能な重みパラメータである、実施形態19に記載のコンピュータを利用した方法。
【外国語明細書】