本出願は、その内容全体が参照により本明細書に組み込まれる、2010年11月23日に出願された「DEPTH ESTIMATION BASED ON GLOBAL MOTION」という名称の米国特許出願第12/953,310号の一部継続出願である。
本開示は、一般に3次元(3D)のビデオの生成に関する。より詳細には、本開示は、3次元(3D)ビデオプレゼンテーションの表示のための代替ビュー(代替表示)を生成するために使用され得る既存の2次元(2D)ビデオプレゼンテーションについての深度マップの作成に関する。
近年、ビデオ表示装置での3Dビデオプレゼンテーションを可能にするために、技術(例えば、テレビジョン、DVDプレーヤ、セットトップボックス、ブルーレイプレーヤ、コンピュータなど)が開発されている。しかしながら、大部分の既存のビデオコンテンツ(例えば、記憶された、ダウンロードされた、及び/又は、ストリーミングビデオコンテンツ)は、2Dで表示されるように構成されているだけである。従って、2Dビデオプレゼンテーションの既存のデジタル表現を3D表現に変換することが望ましくなり得る。そうするために、互いに対してビデオオブジェクトの深度を決定するために2Dビデオプレゼンテーションを解析することが望ましくなり得る。ビデオオブジェクトの深度の表現は、深度マップと呼ばれ得る。オブジェクト深度の決定は、ユーザに対して3Dで表示されるビデオプレゼンテーションを生成するために使用され得る。
グローバル動きは、撮影の間のカメラの動きとして説明され得る。グローバル動き運動の幾つかの例には、カメラの左右のパニング、上下のティルト、及び/又は例えばズームイン及びズームアウトなど様々な他の効果がある。本開示は、例えば、2Dビューを撮影した1つ以上の立体カメラの動きを推定するなど、2Dビューのグローバルな動きを推定することを含むビデオプレゼンテーションの2Dビューの画像オブジェクトの深度を推定するための技法について記載する。本開示は、画像の画素のサブセットに基づいてグローバルな動きを推定するための技法についても記載する。本開示は、グローバル動き補償フレーム差に基づいて画像についての深度マップを決定するための技法についてさらに記載する。
幾つかの例では、グローバルな動きを推定することは、ビデオプレゼンテーションの2Dビューの変換の改良を提供することができ、その結果、例えば、3Dビデオプレゼンテーションなど、ビデオプレゼンテーションが深度を有することが知覚され得るようになる。例えば、グローバル動きに基づいて深度を推定することは、ビデオプレゼンテーションの代替ビューの生成を提供し得る。代替ビューは、視聴者に対して実質的に3Dのように見えるように、ビデオプレゼンテーションの表示のための元の2Dビューとともに表示され得る。
一例によれば、方法について本明細書で説明する。方法は、ビデオプレゼンテーションの2次元(2D)ビューのためのコンピュータ機器の画像処理モジュールを介して、2Dビューの少なくとも1つのフレームについてのオプティカルフローを決定することを含み、オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動の表現である。方法は、画像処理モジュールによって、及び決定されたオプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定することをさらに含む。方法は、画像処理モジュールによって、推定されたグローバル動きに基づいてオプティカルフローを調整して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフロー(global motion-adjusted optical flow)を作成することをさらに含む。方法は、画像処理モジュールによって、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成することをさらに含む。
別の例によれば、装置について本明細書で説明する。装置は、ビデオプレゼンテーションの2次元(2D)ビューについて、2Dビデオプレゼンテーションの少なくとも1つのフレームについてのオプティカルフローを決定するオプティカルフロー決定モジュールを含み、オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動の表現である。装置は、決定されたオプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定するグローバル動き推定モジュールをさらに含む。装置は、推定されたグローバルな動きに基づいてオプティカルフローを調整して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するグローバル動き調整モジュールをさらに含む。装置は、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成するマスク/深度マップ作成モジュールをさらに含む。
別の例によれば、コンピュータ可読記憶媒体について本明細書で説明する。コンピュータ可読記憶媒体は、実行時に、1つ以上のプロセッサに、ビデオプレゼンテーションの2次元(2D)ビューについて、2Dビデオプレゼンテーションの少なくとも1つのフレームについてのオプティカルフローを決定させる命令を記憶する。オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの視運動(apparent motion)の表現である。命令は、さらに、コンピュータ機器に、オプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定させる。命令は、さらに、コンピュータ機器に、推定されたグローバルな動きに基づいてオプティカルフローを調整させて、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成させる。命令は、さらに、コンピュータ機器に、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成させる。
別の例によれば、機器について本明細書で説明する。機器は、ビデオプレゼンテーションの2次元(2D)ビューについて、2Dビデオプレゼンテーションの少なくとも1つのフレームについてのオプティカルフローを決定するための手段を含む。オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの視運動の表現である。機器は、オプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定するための手段をさらに含む。機器は、推定されたグローバルな動きに基づいてオプティカルフローを調整して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するための手段をさらに含む。機器は、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成するための手段をさらに含む。
別の例によれば、本開示は、ビデオプレゼンテーションの2次元ビューについての深度マップを決定する方法について記載する。方法は、ビデオプレゼンテーションの2次元(2D)ビューのためのコンピュータ機器の画像処理モジュールを介して、ビデオプレゼンテーションのフレームについての複数の特徴点を決定することを含む。方法は、複数の特徴点に基づいてフレームについてのグローバルな動きを決定することをさらに含む。方法は、決定されたグローバルな動きに基づいてフレームについての深度マップを決定し、生成することをさらに含む。
別の例によれば、ビデオプレゼンテーションの2次元(2D)ビューについての深度マップを決定するように構成された機器。機器は、ビデオプレゼンテーションのフレームについての複数の特徴点を決定し、複数の特徴点に基づいてフレームについてのグローバルな動きを決定し、決定されたグローバルな動きに基づいてフレームについての深度マップを生成するように構成された画像処理モジュールを含む。
別の例によれば、ビデオプレゼンテーションの2次元(2D)ビューについての深度マップを決定するように構成された機器。機器は、ビデオプレゼンテーションのフレームについての複数の特徴点を決定するための手段を含む。機器は、複数の特徴点に基づいてフレームについてのグローバルな動きを決定するための手段をさらに含む。機器は、決定されたグローバル動きに基づいてフレームについての深度マップを生成するための手段をさらに含む。
別の例によれば、コンピュータ可読記憶媒体について本明細書で説明する。コンピュータ可読記憶媒体は、実行時に、1つ以上のプロセッサに、ビデオプレゼンテーションのフレームについての複数の特徴点を決定させ、複数の特徴点に基づいてフレームについてのグローバルな動きを決定させ、決定されたグローバル動きに基づいてフレームについての深度マップを生成させる命令を含む。
1つ以上の例の詳細は、添付の図面及び以下の説明に記載されている。本発明の他の特徴、目的、及び利点は、その説明及び図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法に一致する、2Dビデオプレゼンテーションを3Dビデオプレゼンテーションに変換するための方法の一例を示すフロー図。
本開示の技法に一致する、2Dビデオプレゼンテーションについての深度を推定するように構成されたコンピュータ機器の一例を示すブロック図。
本開示の技法に一致する、画像処理モジュールの一例を示すブロック図。
本開示の技法に一致する、2Dビデオプレゼンテーションについての深度マップを作成する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションの少なくとも1つのフレームについて、シーン変化が生じたかどうかを決定する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションの少なくとも1つのフレームについて、グローバルな動きが存在するかどうかを決定する方法の一例を示すフロー図。
本開示の技法に一致する、グローバル動きの推定のための特徴点を識別する方法の一例を示すフロー図。
本開示の技法に一致する、画像画素/被写体を前景/背景として分類する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションについての最初のマスクを精緻化する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションの2Dビューの少なくとも1つの前景画素を決定するための方法の一例を示すフロー図。
本開示の技法に一致する、グローバル動きの推定のための特徴点を識別するための方法の一例を示すフロー図。
本開示の技法に一致する、中央領域及び周辺領域を含むフレームを示す概念図である。
本開示の技法に一致する、2D画像についての深度マップを決定するための方法の一例を示すフロー図。
本開示の技法に一致する、2D画像についての深度マップを決定するための方法の一例を示すフロー図。
本開示は、例えば、2Dビュー(2D表示)を撮影した1つ以上のモノスコープカメラの動きを推定するなど、2Dビューのグローバルな動きを推定することを含むビデオプレゼンテーションの2Dビューの画像被写体の深度を推定するための技法について記載する。幾つかの例では、グローバルな動きを推定することは、ビデオプレゼンテーションの2Dビューの変換の改良を提供することができ、その結果、例えば、3Dビデオプレゼンテーションなど、ビデオプレゼンテーションが深度を有することが知覚され得るようになる。例えば、本開示の技法は、少なくともビデオフレームについて、画像深度の少なくとも1つの最初の表示(例えば、少なくとも1つの画素のオプティカルフローなど)を決定し、最初の表示に基づいて、フレームについてのグローバルな動きを推定することを提供する。グローバル動きの推定は、画素の動きの最初の表示を補償するために使用され得、それによって、少なくとも1つのビデオフレームの被写体の深度(例えば、前景又は背景)を決定する際の正確さを向上させる。従って、少なくとも1つのフレームについて、深度マップが生成され得る。深度マップは、3D(例えば、立体的な)ビデオプレゼンテーションを表示するために、少なくとも1つの他のビュー(例えば、2Dビュー)とともに使用され得るビデオプレゼンテーションの少なくとも1つの代替ビューを生成するために使用され得る。
図1は、本開示の技法に一致する、撮影された画像についての深度を推定するための1つの例示的な方法を示すフロー図である。図1に示すように、方法は、ビデオプレゼンテーションの2D(例えば、モノスコープ)ビューを取得すること(101)を含む。2Dビューは、1つ以上のモノスコープ(シングル)カメラで撮影される画像を含むことができる。2Dビューは、代わりに、1つ以上の立体(2つ以上の)カメラを使用して撮影される複数のビューのシングルビューでもよい。方法は、2Dビューの1つ又は複数の被写体及び/又は画素についての深度の最初の表示を作成すること(102)をさらに含む。深度の最初の表示は、上記のように、例えば、ぶれ、動き、ブロックベースのマッチング、セグメンテーション、又はオプティカルフロー技法を含めて、本明細書で説明する技法のいずれかに基づいて作成され得る。方法は、深度の最初の表示に基づいて2Dビューの少なくとも1つのフレームのグローバルな動きを決定すること(103)をさらに含む。方法は、決定されたグローバル動きに基づいて、2Dビューの被写体及び/又は画素の最初の表示を調整すること(104)をさらに含む。例えば、オプティカルフローが画像深度の最初の表示を決定するために使用される場合、方法は、少なくとも1つの画素についてのグローバル動き調整オプティカルフローベクトルを作成するために、決定されたグローバル動きに基づいて2Dビューの少なくとも1つの画素についての少なくとも1つのオプティカルフローベクトルを変更することを含む。方法は、調整された深度マップに基づいて2Dビューの少なくとも1つの代替ビューを作成すること(105)をさらに含む。方法は、2Dビューの生成された代替ビューを使用して3Dビデオを提示することをさらに含むことができる。例えば、ビデオプレゼンテーションの2Dビューは、3Dビデオプレゼンテーションの左ビューとして表示され、一方、代替ビューは、3Dビデオプレゼンテーションの右ビューとして表示され得る。右ビューと左ビューとの間の差によって、3Dビデオプレゼンテーションの1つ以上の画像が、視聴者によって深度を有するものとして知覚され得る。
図2は、本開示の技法を実行するために使用され得るコンピュータ機器201の例示的な構成を示すブロック図である。コンピュータ機器201は、1つ以上の2Dビデオビュー(2Dビデオ表示)の3D表現を作成するために、1つ以上の2Dビデオビューを処理するように構成された任意の機器であり得る。本開示の技法を実施するために使用され得るコンピュータ機器201の非限定的な例には、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ機器、スマートフォン、ネットブック、テレビジョン、ビデオゲーム機、ポータブルビデオゲームユニット、又はビデオデータを処理するように構成された任意の他のコンピュータ機器がある。
図2の例に示すように、コンピュータ機器201は、1つ以上のプロセッサ210を含む。1つ以上のプロセッサ210は、コンピュータ機器に機能、例えば本開示の深度推定技法を実行させるために命令を実行するように構成されたコンピュータ機器201の構成要素である。例えば、プロセッサ(複数可)210は、記憶構成要素212によって記憶される命令を実行するように構成され得る。記憶構成要素212は、例えばコンピュータハードディスク、フラッシュメモリ、又はランダムアクセスメモリ(RAM)構成要素など、1つ以上の短期又は長期メモリ記憶構成要素を含み得る。一例では、プロセッサ210(複数可)は、コンピュータ機器201の1つ以上の中央処理装置(CPU)を備えることができる。他の例では、プロセッサ(複数可)210は、代わりに又はさらに、1つ以上のグラフィック処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、特定の論理又はハードウェア、若しくは他の同様の処理構成要素を含むことができる。
図2に示すように、プロセッサ(複数可)210は、画像処理モジュール214を含む。図示の例によれば、画像処理モジュール214は、記憶構成要素212によって記憶され、本明細書で説明する技法を実行するために1つ以上のプロセッサ210によって実行可能な命令を含む。記憶構成要素212に記憶される命令の実行時に、プロセッサ(複数可)210は、本開示の技法を実行するように構成された特定のマシンと考えることができる。例えば、プロセッサ(複数可)210による命令の実行は、ビデオプレゼンテーションの2Dビューのグローバルな動きを考慮に入れながら、プロセッサ(複数可)210に、ビデオプレゼンテーションの2Dビューについての深度を推定させ得る。
画像処理モジュール214は、本明細書で説明する様々な技法を実行するように構成された専用のハードウェア又はファームウェアを含むことができる。これらの例によれば、画像処理モジュール214に関連付けられたハードウェア又はファームウェアは、図2に示すように、プロセッサ(複数可)210の一部と考えることができる。例えば、画像処理モジュール214は、本開示の技法を実行するように構成された1つ以上の専用のハードウェア構成要素を備えることができる。例えば、画像処理モジュール214は、グラフィック処理構成要素、専用のハードウェア(例えば、ASIC)、プログラム可能なハードウェア(ファームウェア(FPGA))、あるいは本開示の技法に一致して動作するように構成された任意の他の専用及び/又はプログラム可能なハードウェアの任意の組合せを含むことができる。
一例によれば、画像処理モジュール214は、記憶構成要素212によって記憶されるビデオビューのデジタル表現を介して2Dビデオビューを取得することができる。別の例では、画像処理モジュール214は、通信モジュール216を介して1つ以上の他のコンピュータ機器から2Dビデオビューを取得することができる。通信モジュール216は、他のコンピュータ機器との通信を可能にするための1つ以上の構成要素を含むことができる。例えば、通信モジュール216は、ワイヤードの又はワイヤレスのネットワーク(例えば、インターネット)を介して、通信を容易にすることができる。従って、画像処理モジュール214は、通信モジュール216を介して別のコンピュータ機器に記憶された2Dビデオを取得することができる。別の例によれば、画像処理モジュール214は、撮像装置(図2には図示せず)から直接2Dビデオビューを取得することができる。例えば、コンピュータ機器201は、画像を撮影するように構成された1つ以上のカメラ機器を含む、又はそれに通信可能に結合することができる。1つ以上のカメラ機器は、リアルタイムで、又はほぼリアルタイムで、画像処理モジュール214に、撮影された画像を通信することができる。これらの例によれば、画像処理モジュール214は、本明細書で説明する技法を、リアルタイムで、又はほぼリアルタイムで、撮影された画像のフレームに適用することができる。例えば、画像処理モジュール214は、画像が1つ以上のカメラ機器によってキャプチャされるにつれて、受信された2D画像フレームを3D表示用に処理することができる。
本開示の技法によれば、画像処理モジュール214は、2Dビデオビューを取得し、2Dビデオビューの少なくとも1つの被写体/画素についての深度の最初の表示を決定することができる。画像処理モジュール214は、2Dビデオビューについてのグローバルな動きをさらに決定することができる。画像処理モジュール214は、決定されたグローバル動きに基づいて、2Dビデオビューの少なくとも1つの被写体/画素の深度の最初の表示をさらに調整することができる。次いで、画像処理モジュール214は、2Dビデオビューの少なくとも1つの代替ビューを作成するために、深度の調整された表示を使用することができる。代替ビューは、3Dビデオを表示するために、取得した2Dビュー又は別のビューとともに使用されるように構成することができる。
一例によれば、画像処理モジュール214は、記憶のために、記憶構成要素212に、作成された代替ビューを通信することができる。別の例によれば、コンピュータ機器201は、記憶のために、通信モジュール216を介して、別のコンピュータ機器に、作成された代替ビューを通信することができる。別の例によれば、コンピュータ機器201は、ユーザに対する提示のために、別のコンピュータ機器に、作成された代替ビューをストリームする(例えば、HTTP又は類似のストリーミングプロトコルを介して)ためのサーバ機器として動作し得る。例えば、コンピュータ機器201は、ユーザに立体画像を3Dで表示するように構成されたコンピュータ機器に、作成された代替ビューをストリームすることができる。
幾つかの例では、図2に示すように、本明細書で説明するように、深度を推定するように構成されたコンピュータ機器201は、視聴者に1つ以上の画像を表示するために、1つ以上の表示器219と通信するように構成された表示制御モジュール218をさらに含むことができる。図2に示すように、画像処理モジュール214と同様に、表示制御モジュール218は、1つ以上の表示器219を制御するために、プロセッサ(複数可)210によって実行可能なソフトウェア命令を備えることができる。図2に図示されていない他の例では、表示制御モジュール218は、代わりに、又はさらに、1つ以上の表示器219を制御するように構成された専用のハードウェアを含むことができる。
1つ以上の表示器219は、コンピュータ機器201の一部(例えば、ラップトップ、ネットブック、スマートフォン、ポータブルビデオゲーム機器、タブレット型コンピュータなど)でもよく、又はコンピュータ機器201(例えば、デスクトップ型コンピュータモニタ、テレビジョン表示器ビデオゲーム機など)に通信可能に結合され得る。1つ以上の表示器219は、1つ以上の表示器219が、それぞれ視聴者の右眼及び左眼によって知覚されることを意図した第1及び第2の画像を通信することができるという点で、立体画像を表示するように構成され得る。幾つかのそのような例では、ユーザは、第1の画像を視聴者の右眼によって独立して見せ、第2の画像を視聴者の右眼によって独立して見せる専用の眼鏡をかけることができる。表示制御モジュール218は、それぞれの右及び左の画像を表示させるために、表示器219と通信するように構成され得る。例えば、表示制御モジュール218は、例えば異なる色の光、周波数、又は強度など、光を表示要素に放射させて、それぞれの右及び左の画像を視聴者に対して表示させるために、表示器219の1つ以上の表示要素(例えば、液晶、発光ダイオード、プラズマ表示要素)を制御する信号を通信するように構成され得る。
図2Aは、本開示の技法に一致する、画像処理モジュール214、画像処理モジュール214Aの一例を示すブロック図である。図2の例によれば、画像処理モジュール214Aは、例えば、シーン変化検出モジュール230、オプティカルフロー決定モジュール232、グローバル動き決定モジュール234、グローバル動き推定モジュール236、グローバル動き調整モジュール238、及びマスク/深度マップ作成モジュール240など、様々なサブモジュールを含む。図2に示される画像処理モジュール214と同様に、様々なサブモジュール230、232、234、236、238、及び240は、例えばプロセッサなどのハードウェア上で実行可能なソフトウェア、及び/又は本明細書で説明する技法のいずれかを実行するように構成された任意の他の専用のハードウェアの任意の組合せを備え得る。
シーン変化検出モジュール230は、1つ以上のフレームがシーン変化、即ち、実質的にフレーム間の差を表すかどうかを決定するために、ビデオプレゼンテーションの1つ以上のフレームを解析するように構成され得る。シーン変化検出モジュール230によって使用され得る技法の例について、図3のステップ302に関して以下で説明する。
オプティカルフロー決定モジュール232は、例えば、ビデオフレームの少なくとも1つの画素についてのオプティカルフローなど、被写体深度の最初の表示を決定するように構成され得る。例えば、オプティカルフロー決定モジュール232は、例えば、図5に関して以下でさらに詳細に説明するように、1つ以上のフレームの少なくとも1つの画素についてのオプティカルフローを決定するために、ビデオプレゼンテーションの1つ以上のフレームを解析することができる。
グローバル動き決定モジュール234は、1つ以上のフレームがグローバルな動きを含むかどうかを決定するために、ビデオプレゼンテーションの1つ以上のフレームを解析するように構成され得る。グローバルな動きは、撮影の間のカメラの動きとして説明され得る。グローバルな動きの例には、カメラの左右のパニング、上下のティルト、ズームイン及びズームアウト、並びに類似の運動がある。一例によれば、グローバル動き決定モジュール234は、オプティカルフロー決定モジュール232から被写体深度(例えば、少なくとも1つのオプティカルフローベクトル)の最初の表示を受信するように構成され得る。この例によれば、グローバル動き決定モジュール234は、グローバルな動きが1つ以上のフレームの中に存在するかどうかを決定するために、被写体深度の受信された最初の表示を解析することができる。従って、画像処理モジュール214Aは、グローバル動き決定モジュール234が1つ以上のフレームについてグローバルな動きが存在しないことを決定した場合、グローバル動き推定及び/又は調整技法をスキップすることができる。一例では、グローバル動き決定モジュール234は、以下の図3のステップ305に関して以下で説明するように、ビデオプレゼンテーションの1つ以上のフレームがグローバルな動きを含むかどうかを決定することができる。
グローバル動き推定モジュール236は、(例えば、グローバルな動きがグローバル動き決定モジュール234によって存在することが決定された場合)ビデオプレゼンテーションの少なくとも1つのフレームについてのグローバルな動きを推定するように構成され得る。例えば、グローバル動き推定モジュール236は、オプティカルフロー決定モジュール232からビデオフレームの少なくとも1つの画素についてのオプティカルフローベクトルの表示を受信することができる。グローバル動き推定モジュール236は、例えば、図3に示されるステップ306に関して以下で説明するように、パラメータモデルのグローバル動きパラメータなど、グローバルな動きの少なくとも1つの表示を決定するために、1つ以上の受信されたオプティカルフローベクトルを解析することができる。
グローバル動き調整モジュール238は、グローバルな動きを考慮に入れるために、被写体深度の最初の表示を変更するように構成され得る。例えば、グローバル動き調整モジュール238は、オプティカルフロー決定モジュール232から1つ以上のオプティカルフローベクトルを受信することができる。グローバル動き調整モジュール238は、グローバル動き推定モジュール236から1つ以上のグローバル動きパラメータをさらに受信することができる。一例によれば、グローバル動き調整モジュール238は、ビデオプレゼンテーションの少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するために、受信されたグローバル動きパラメータを1つ以上のオプティカルベクトルに適用することができる。グローバル動き調整オプティカルフローを作成するためにグローバル動き調整モジュール238によって使用され得る技法の一例について、図3のステップ307に関して以下で説明する。
マスク/深度マップ作成モジュール240は、グローバル動き調整モジュール238から少なくとも1つの画素についてのグローバル動き調整オプティカルフローを受信し、グローバル動き調整オプティカルフローに基づいて少なくとも1つのフレームについての深度マップを決定するように構成され得る。例えば、マスク/深度マップ作成モジュール240は、(例えば、図3のステップ308に関して以下で説明するように)画像画素を背景及び/又は前景として分類し、(例えば、図3のステップ309に関して説明するように)分類に基づいて最初の前景/背景マスクを作成し、(例えば、図3のステップ310に関して説明するように)最初のマスクを精緻化し、及び/又は(例えば、図3のステップ311に関して説明するように)最初のマスクを後処理することができる。本明細書で説明する様々な例によれば、マスク/深度推定モジュール240は、(例えば、図3のステップ312に関して以下で説明するように)ビデオプレゼンテーションの少なくとも1つのフレームについての深度マップをさらに生成することができる。
一般に画像処理モジュール214によって実行されるものとして、様々な技法について説明する。本明細書で説明する様々な技法が、さらに又は代わりに、例えば、図2Aに関して上記で説明した画像処理モジュール214Aのサブモジュール230、232、234、236、238、及び240など、画像処理モジュール214の特定のサブモジュールによって実行され得ることを、当業者であれば諒解されよう。
2Dビデオプレゼンテーションの深度は、画像のぶれ、被写体の運動、及び/又はオプティカルフロー(例えば、被写体の輝度の動きによる変色など)に基づいて決定され得る。しかしながら、これらの技法には、幾つかの欠点があり得る。例えば、そのような技法は、全てのビデオプレゼンテーション又はビデオプレゼンテーションの部分について当てはまるというわけではない1つ以上の仮定に基づき得る。
立体視表示器技術の開発によって、立体視又は3次元(3D)のビデオは、ますます人気がある。これらの技術により、例えば映画、テレビ番組、ビデオゲーム、及び他のコンテンツなど、3Dコンテンツについての需要は著しく増加した。
例えば、多くの3D表示技法は、両眼視を使用し、この場合、視聴者の左右の眼によって異なって知覚されるわずかに異なる画像が提供される。この知覚された差のため、ユーザにとっての深度の知覚が作成される。しかしながら、大部分の既存のビデオコンテンツは、2Dでの表示用に構成されているだけである。例えば、大部分の既存のビデオコンテンツは、1次ビューしか含んでおらず、3Dビデオレンダリングを可能にすることができるどんな2次ビューも含んでいない。さらに、多くの既存のビデオカメラは、モノスコープビデオを撮影できるだけであり(例えば、同じ視点から画像を撮影するための、シングルカメラ又はマルチカメラのみを含む)、従って、画像を直接3Dで撮影するように構成されていない。
2Dビデオプレゼンテーションを3Dビデオ変換に変換することは、既知の元の2Dビューから1つ以上の代替ビューを生成することを含み得る。そのような変換技法の一態様は、撮影されたビデオの被写体の相対的な深度の推定を含むことができ、その結果、ビデオは、視聴者が深度を知覚するように再生され得る。幾つかの例では、画像被写体の深度は、1つ以上の代替ビューを生成する前に推定され得る。
深度の推定は、1つ以上のモノスコープ(例えば、2D)ビューから、深度と呼ばれる、被写体とカメラ平面との間の絶対的又は相対的な距離の推定を含むことができる。幾つかの例では、深度情報は、グレーレベル画像の深度マップによって表される。例えば、画像の画素は、それらの絶対的又は相対的な深度に応じて、値が割り当てられ得る。1つの特定の例では、「0」の深度値は、被写体とカメラとの間の最大距離を示し、一方、「255」の深度値は、最小距離を示す。
2D画像の推定された深度マップは、3Dビデオの提示のための深度を決定するために使用され得る。例えば、推定された深度マップは、深度画像ベースレンダリング(DIBR)技法を使用して、ビデオの1つ以上の代替ビューの角度を生成するために使用され得る。例えば、推定された深度マップは、表示されるとき、3D画像に深度を持たせる3Dビデオプレゼンテーションのそれぞれの右画像と左画像との間の差を決定するために使用され得る。
2Dビデオの幾つかの態様は、2D画像の被写体の深度を推定するために使用され得る。例えば、2Dビデオのソースに依存して、透視幾何(perspective geometry)、又は時間的もしくは2D空間的キュー、例えば被写体の動き及び色などが使用され得る。ビデオが2つ以上の事前撮影されたビュー(例えば、複数のカメラを使用して立体的に撮影された)をすでに含む場合、深度マップは、ビューを撮影した1つ以上のカメラの固有の及び/又は外部のパラメータに基づいて、エピポーラジオメトリによって取得することができる。そのような技法は、ステレオビューにおける同じ被写体の対応を識別することによって、視差情報(被写体深度に対して反比例)を推定することができる。そのような技法は、例えばグラフカット及び確率伝搬など、ローカルマッチング及びグローバル最適化方法を含むこともできる。
一般に、ビデオフレームは、1つ以上の前景の被写体と、背景及び/又は背景被写体との合成として考えることができる。カメラの焦点の観点から、焦点がぼけたエリア(例えば、背景画像)の色強度が、焦点が当てられたエリア(例えば、前景画像)と比較して、よりぼけていると仮定することができる。一例によれば、撮影された画像の深度は、画像画素のぶれのレベルに基づいて決定され得る。
画像画素の相対的なぶれは、勾配ベースの測定又は周波数領域の解析に基づいてもよい。例えば、幾つかのビデオ又はビデオフレームについて、勾配値がより大きい画像はあまり不鮮明ではなく、勾配値がより小さい画像はより不鮮明であると仮定され得る。しかし、他のビデオ又はフレームでは、これらの仮定は、正確ではない場合がある。例えば、カメラパースペクティブは、カメラに近い被写体の代わりに遠くの画像被写体に焦点を当てることができる。さらに、前景の同質のエリアは、それほど多くの高周波成分を含まないので、上記で説明した画像ぶれ解析は、前景のテクスチャレス領域に適用可能ではない場合がある。従って、必ずしも下位レベルのぶれがより小さい深度(例えば、カメラまでの距離)を示すとは限らないので、ぶれに従って画像深度を推定することは、正確ではない場合がある。
深度の推定のための他の技法は、モノスコープ2Dビデオにおける動きの解析を伴う。これらの技法は、遠い被写体と比較して、(カメラの視点に関して)より近い被写体が大きく見え、より多くの動きを有すると予想されるという仮定に依存し得る。
動き推定は、隣接するビデオフレームの間の被写体の運動を推定することを含むことができる。動き推定は、1つ以上の動きベクトルを決定することを含むことができる。動きベクトルは、ビデオプレゼンテーションの連続フレーム間の被写体の水平及び/又は垂直の並進変位を示すベクトルとして説明される。例えば、静的背景を含む、あるビデオシーン設定のために、動きは、被写体の動きを静的背景から減算することによって取得され得る。静的背景の必要性のため、動き推定は、幾つかのビデオ及び/又はビデオのフレームについては望ましくない可能性がある。動きを推定するための別の技法は、フレームを静的背景と比較する代わりに、隣接するフレーム間の差を決定することである。この技法によれば、動きは、連続フレームの画素の色強度の画素ベース及び/又はウィンドウベースの減算に基づいて識別され得る。
動きが深度の識別として使用される技法によれば、動きの大きさは、深度値を1つ以上のフレーム画素に割り当てるために使用され得る。例えば、動きの大きさがより大きい画素は、より大きい深度値が割り当てられ得る。しかしながら、深度を推定するためのぶれの使用と同様に、深度の表示としての動きの使用も、少なくとも幾つかのビデオについて当てはまらない仮定に基づき得る。例えば、カメラからの距離が実質的に同じ被写体は、独立して、しかし、異なる速度で移動することができる。これらの例によれば、より高速な移動物体がより遅い被写体と同じ距離離れている可能性があるので、動きは、必ずしも画像深度の適切なインジケータとは限らない場合がある。別の例では、画像が短い時間間隔にわたって動きがなく静的なままである場合、深度を推定するために、動きを使用しなくてもよい。
動き推定のために使用され得る別の技法は、ブロックベースのマッチングである。ブロックベースのマッチングが、ビデオ圧縮において使用され得る。これらの技法によれば、ビデオの1つ以上のフレームがブロックに分割される。現在フレームの各ブロックは、同じサイズの1ブロックと比較され得るが、基準フレームで位置がずれ得る。最小マッチングコスト、例えば、マッチングエラーの絶対値の和に関連付けられた決定された位置ずれは、そのブロックにおける全ての画素について、推定された動き値として識別され得る。
深度を推定するための別の技法は、画像セグメンテーションである。一般に、同じ又は同様の色を有する画素は、同じ被写体に属し、急な強度変化は、被写体境界を示す。深度フィールドは、区分的に滑らかであり、深度の不連続性は、画像強度の不連続性によって反映されるものと仮定され得る。これらの技法によれば、ビデオフレームは、幾つかの領域又はセグメントにセグメント化される。次いで、これらのセグメントは、異なる深度値が割り当てられる。画像セグメントの深度推定は、画素ベースの推定と比較してより整合的な深度マップを達成するが、計算複雑さは増加し得る。さらに、テクスチャ様のエリアを含む幾つかのシーンは、セグメント化が難しい可能性がある。例えば、同じ被写体の輝度変化など、セグメントが色分散を被った場合、画像セグメンテーションも不適切であり得る。また、幾つかの場合には、幾つかの異なるセグメントは、ある被写体のために決定され得、及び/又は、ある被写体の画素は、別の被写体の画素を有する同じセグメントに分類され得る。従って、場合によっては、深度推定のために使用されるとき、セグメンテーションの結果は、十分に正確ではない場合がある。
色強度値に従って画像を幾つかの均一の領域に区分する代わりに、それらを深度推定において直接使用することもできる。例えば、クロミナンスCr成分など、幾つかの色情報が、自然のビデオシーンについての深度初期化として使用され得る。幾つかの色空間におけるそれらの成分からの深度推定の1つの利点は、簡潔さである。クロミナンス成分は、同じ被写体に属する画素について滑らかであり得る。セグメンテーションベースの深度推定と比較して、それらの色成分から直接生成された深度マップは、被写体形状をより良く保ち、従って、より良い空間的整合性を与え得る。推定された深度値は真の深度に正確とはほど遠いが、そのような技法に従って作成される合成されたステレオペアは、ある程度まで3D効果を提供することができる。
オプティカルフロー技法は、例えばカメラなどの観測者と観察されている被写体との間の相対的な動きによって生じた視覚的平面における被写体の輝度パターンの仮現運動を識別することができる。例えば、ビデオフレームのオプティカルフローは、各ポイントにその運動を説明する速度ベクトルが割り当てられる動きフィールドと考えることができる。オプティカルフロー技法は、輝度の恒常性方程式(brightness constancy equation)を介して画素勾配ベースの強度変化に被写体速度を関連付けることを含むことができる。グローバル又はローカルの最適化技法は、1つ以上のフレーム画素についてのオプティカルフロー動きベクトルを計算するために使用され得る。
ぶれ、動き、及び上記の他の技法とは異なり、色強度(例えば、オプティカルフロー)から測定されるビデオフレーム平滑性は、空間と時間の両方において、比較的一貫した深度マップを生成するために使用され得る。深度マップを正確に推定することは、例えば生成された代替の仮想ビューにおけるちらつき及び局部変形など、3Dビデオの表現におけるアーチファクトを低減することにとって重要であり得る。
図3は、ビデオプレゼンテーションのグローバル動きに少なくとも部分的に基づいてビデオプレゼンテーションの2D(例えば、モノスコープなど)ビューの画像深度を推定する方法の一例を示すフローチャートである。図3の方法を含む本明細書で説明する様々な例は、コンピュータ機器201、又は図2に示されるコンピュータ機器201の構成要素(例えば、画像処理モジュール214)によって実行されるものとして述べられている。他の例では、本明細書で具体的に説明しているか否かにかかわらず、本明細書で説明する技法は、任意のコンピュータ機器又はモジュールによって実行され得る。
図3に示すように、画像処理モジュール214は、ビデオプレゼンテーションの2Dビューを取得する(301)ことができる。2Dビューは、ビデオプレゼンテーションのプレゼンテーション順序(例えば、1つ以上の表示器を介した、ユーザに対するプレゼンテーション)で、少なくとも2つの連続フレームを含む。図3に示される技法は、キャプチャされたビデオプレゼンテーションの現在(fN)及び次(fN+1)のフレームに適用されるものとして説明される。幾つかの例では、図3に示される技法は、ビデオプレゼンテーションの複数のフレームに、複数回適用され得る。
画像処理モジュール214(例えば、図2Aに示されるシーン変化検出サブモジュール230)は、シーン変化がフレームfNとfN+1との間に存在するかどうかをさらに決定することができる(302)。例えば、画像処理モジュール214は、フレームfNがビデオプレゼンテーションのフレームfN+1とは実質的に異なるシーンを表すシーン変化を決定することができる。フレームfN及びfN+1が異なる撮影されたシーンを表す場合、オプティカルフロー及び/又は決定されたグローバルな動きに基づく深度の推定は意味がない場合があるので、シーン変化が発生したかどうかを決定することが望ましい可能性がある。さらに、シーン変化を検出することは、ビデオフレーム解析の時間的(例えば時間の)整合性を向上させることができる。例えば、2つの時間的に隣接するフレームの間にシーン変化が生じる場合、現在フレームの深度マップが前のものと時間的に相関していない場合がある。従って、幾つかの連続フレームの深度を平均するなどの操作を回避することが望ましい場合がある。
従って、ビデオプレゼンテーションのフレームfNとfN+1との間でシーン変化が決定される場合、画像処理モジュール214は、フレームfNについての深度推定をスキップすることができる。フレームfNについての深度を推定する代わりに、画像処理モジュール214は、現在フレームfNについてのビデオプレゼンテーションの1つ以上の前のフレーム(例えば、フレームfN−1)のために前に決定された深度推定を使用することができる(303)。
図4は、ビデオプレゼンテーションの1つ以上のフレームがシーン変化を含むかどうかを決定する(例えば、図3に示されるように、ステップ302)ための技法の一例を示すフローチャート図である。図4に示される方法によれば、画像処理モジュール214(例えば、図2Aに示されるシーン変化検出サブモジュール230)は、強度ヒストグラムに基づいて変えられたシーンが生じたかどうかを検出することができる。この方法によれば、現在フレームf
Nのために、画素色の相対的な強度のヒストグラムが決定され得る(401)。画素色の相対的な強度のヒストグラムは、次のフレームf
N+1のためにも決定され得る(402)。
これらの例によれば、m番目のビンについてのヒストグラム値は、m番目のビンに属する強度値を有する幾つかの画素であり得る。一例では、mの値は、m=0,1,…M−1とすることができる。
これらの式によれば、Mは、それぞれのヒストグラムの幾つかのビンを表し得る。そのような一例によれば、画素色強度が0〜255におよぶ8ビット色表現では、Mの値は、256であり得る。他の例では、ヒストグラム値HN,HN+1の次元を低減するために、Mについてのより小さい値が使用され得る。
画像処理モジュール214は、ステップ301及び302で決定されるそれぞれのヒストグラムの間の相関係数λをさらに決定することができる(403)。一例によれば、相関係数λは、以下の式に基づいて決定され得る。
同じく図4に示されるように、画像処理モジュール214は、ステップ403で決定された相関係数λが閾値T1よりも大きいかどうかをさらに決定することができる(404)。閾値T1は、ビデオプレゼンテーションのシーン変化の経験的解析に基づく所定の値とすることができるが、他の方法で適応的に決定又は定義することもできる。相関係数λの値が閾値T1未満である場合、画像処理モジュール214は、新しいシーンがフレームfNとフレームfN+1との間で検出されたことを決定することができる(405)。しかしながら、相関係数λの値が閾値T1(例えばλ>=T1)以上である場合、画像処理モジュール214は、新しいシーンがフレームfNとフレームfN+1との間で検出されていないことを決定することができる(406)。
図4に示される技法によれば、fN及びフレームfN+1が同じシーン(例えば、シーン変化なし)に属する場合、ステップ401、402で決定されたそれぞれのヒストグラムHN、HN+1が実質的に同様であってもよく、例えば、HN、HN+1は高く相関する。一例では、シーン変化がフレームfNとfN+1との間に存在しない場合、ステップ403で決定された相関係数λは1の値に等しくてもよく、又は1の値に近くてもよい。そうでない場合、相関係数λは、例えば、実質的に1の値未満など、より小さい値を有し得る。
再び図3を参照すると、画像処理モジュール214は、フレームfNとfN+1との間のシーン変化を決定しない場合(302)、画像処理モジュール214(例えば、図2Aに示されるオプティカルフロー決定サブモジュール232)は、例えば、フレームfN及びfN+1の少なくとも1つの画素についてのオプティカルフローなど、フレームfN及びfN+1についての深度の最初の表示を決定することができる(304)。オプティカルフローは、観察者(例えば、カメラ)と観察されている1つ以上の被写体(例えば、観察者によって撮影される)との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動として説明され得る。少なくとも1つの画素についてのオプティカルフローを決定するために、画像処理モジュール214は、明るさの恒常性方程式を介して被写体速度を画素勾配ベースの強度変化と関連付けることができる。一例によれば、画像処理モジュール214は、フレームの1つ以上の画素についての速度ベクトルVx,yを決定することができる。図3に示されていない他の例では、画像処理モジュール214は、オプティカルフロー以外の技法に基づいて、最初の表示を決定することができる。例えば、画像処理モジュール214は、ぶれ、動き、ブロックベースのマッチング、及び/又は上記で説明したようなセグメンテーション技法に基づいて、深度の最初の表示を決定することができる。
一例によれば、画像処理モジュール214は、ビデオプレゼンテーションの少なくとも1つのボクセルについてのオプティカルフローを決定することができる。ボクセルは、x、y、zの実世界の座標における被写体の容積点と考えられ得る。ボクセルは、時刻tにカメラ平面(撮像の平面)の位置(例えば、x、y位置)に投影され得る。ボクセルの強度は、値I(x,y,t)によって表され得る。強度I(x,y,t)は、ボクセルから投影される観察者(例えば、カメラ)の平面に現れるボクセルの強度を表すことができる。値xは、カメラ平面(画像キャプチャの平面)の水平指標を表し、一方、値yはカメラ平面の垂直指標を表す。小さい時間間隔δtの後、時刻t+δtで、ボクセルは、新しい位置(例えば、x、y位置)(x+δx、y+δy、t+δt)に投影され得る。時間間隔δtが比較的短い場合、強度値I(x,y,t)は変化していないと見なすことができ、例えば以下の式によって表される。
一例によれば、画像処理モジュール214は、短期間以内の小さい運動についてのテイラー級数を決定することができる。例えば、画像処理モジュール214は、以下の式に従ってテイラー級数を決定することができる。
上記の式によれば、あるボクセル(画素)についての速度ベクトル(即ち、オプティカルフロー動きベクトル)は、以下と表され得、
所与の画素位置(例えば、x、y位置)について、画像処理モジュール214は、式(6)の値Ix、Iy、及びItを決定することができる。値Ix、Iy、及びItはそれぞれ、空間的水平、垂直及び時間的方向に沿った導関数として説明され得る。画像処理モジュール214は、連続フレーム間の差に基づいて値Itを決定することができる。画像処理モジュール214は、水平方向に沿って離散的微分フィルタ(演算子)を元のフレームに適用することに基づいて、値Ixを決定することができる。画像処理モジュール214は、垂直方向に沿って離散的微分フィルタ(演算子)を元のフレームに適用することに基づいて、値Iyを決定することができる。Ix、Iy、及びItについてひとたび値が決定されると、Ix、Iy、及びItは、vx及びvyの値を決定するために使用され得る。
従って、vx、vyの値を決定するために、関連した分野において知られている様々な技法が使用されてもよい。例えば、画像処理モジュール214は、例えばLucas−Canade(LK)オプティカルフロー方法及びHorn Schunck(HS)方法などの制約に基づいて、値vx、vyを決定することができる。画像処理モジュール214は、値vx,vyを決定するために、他の技法を使用することもできる。
画像処理モジュール214(例えば、図2Aに示されるオプティカルフロー決定サブモジュール232)は、1つ以上の画像画素についてのオプティカルフローを決定し、1つ以上の画像画素に割り当てられるオプティカルフローベクトルVx,yを生成するために、上記で説明した計算を使用することができる。画像処理モジュール214は、ビデオフレームの画素及び/又は被写体についての深度を推定するために、オプティカルフローベクトルを使用することができる。例えば、画像処理モジュール214は、オプティカルフローの大きさがより大きい画素により大きい深度値を割り当て、オプティカルフロー値がより小さい画素により小さい深度値を割り当てることができる。特定の一例では、8ビットグレーレベルスケールを使用して画素深度を表す場合、画像処理モジュール214は、ソース(例えばカメラ)から遠い画素に0の深度値を割り当て、ソースに近い画素に255の深度を割り当てることができる。
再び図3を参照すると、ひとたび深度の最初の表示がフレームf
N及びf
N+1について決定されると(例えばステップ304で)、画像処理モジュール214は、フレームf
Nについてのグローバルな動きが存在するか否かを決定することができる(305)。図5は、フレームf
Nがグローバルな動きを含むか否かを決定するための1つの例示的な技法を示すフロー図である。図5の方法によれば、画像処理モジュール214は、フレームf
N及びf
N+1を複数のブロックに分割することができる(501)。1つのそのような例では、画像処理モジュール214は、フレームf
N及びf
N+1をL×Lブロックに分割することができる。これらの分割されたブロックは、値k
1及びk
2によってインデックスを付けることができ、k
1は、水平ブロックインデックスを表し、k
2は垂直ブロックインデックスを表す。
画像処理モジュール214(例えば、図2Aに示されるグローバル動き決定サブモジュール234)は、それぞれのブロックk
1、k
2についてのグローバルな動きが存在するかどうかをさらに決定することができる(503)。一例によれば、画像処理モジュール214は、それぞれのブロックごとに、以下の式で示すように、平均フロー大きさを所定の閾値T
2と比較することができる。
式中、Vx,yは、図4に関して上記で説明したように画素位置(x,y)のオプティカルフローベクトルである。|X|は、ベクトルXのL2ノルムを表すことができる。
所定の閾値T2は、グローバルな動きを含むか否かが既知であり得るビデオプレゼンテーションフレームの経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。ブロックの平均フロー大きさが所定の閾値T2以上である場合、画像処理モジュール214は、それぞれのブロックについて、グローバルな動きが存在することを決定することができる。従って、画像処理モジュール214は、それぞれのブロックk1、k2についてのグローバル動きフラグ(例えば、Bk1、k2)に1の値を割り当てることができる(504)。ブロックの平均フロー大きさが所定の閾値T2未満である場合、画像処理モジュール214は、ブロックについて、グローバルな動きが存在しないことを決定することができる。従って、それぞれのブロックk1、k2についてのグローバル動きフラグ(例えば、Bk1、k2)に0の値を割り当てることができる(505)。
同じく図5に示されるように、画像処理モジュール214は、フレームfN、fN+1についてのグローバルな動きが存在するかどうかを決定することができる(506)。画像処理モジュール214は、フレームfN、fN+1のそれぞれのブロックk1、k2についてのそれぞれのグローバル動きフラグ(例えば、Bk1、k2)を合計することによって、フレームfN、fN+1についてのグローバルな動きが存在するかどうかを決定することができる。画像処理モジュール214は、それぞれのグローバル動きフラグの合計の結果を閾値T3とさらに比較することができる。所定の閾値T3は、グローバルな動きを含むか否かが既知であり得るビデオプレゼンテーションフレームの経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。それぞれのグローバル動きフラグの合計が閾値T3よりも大きい場合、画像処理モジュール214は、フレームfN、fN+1についてのグローバルな動きが存在することを決定することができる(507)。しかしながら、それぞれのグローバル動きフラグの合計が閾値T3未満である場合、画像処理モジュール214は、フレームfN、fN+1についてのグローバルな動きが存在しないことを決定することができる(508)。
再び図3を参照すると、フレームfN、fN+1についてのグローバルな動きが存在しないと決定された場合、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、以下でさらに詳細に説明するように、フレームfNの1つ以上の画素及び/又は被写体を前景又は背景被写体として分類することに進むことができる(308)。しかしながら、フレームfN、fN+1についてのグローバルな動きが存在することが決定された場合、画像処理モジュール214(例えば、図2Aに示されるグローバル動き推定サブモジュール236)は、フレームfN、fN+1の少なくとも1つの画素についてのグローバルな動きを推定することができる(306)。幾つかの例では、画像処理モジュール214は、1つ以上のグローバル動きパラメータを決定することによって、グローバルな動きを推定することができる。
図3に同じく示すように、画像処理モジュール214(例えば、図2Aに示されるグローバル動き調整サブモジュール238)は、(例えば、ステップ306で決定される)推定されたグローバル動きに基づいて、画像深度(例えば、ステップ304で決定されるオプティカルフロー)の最初の表示を調整することができる(307)。一例では、画像処理モジュール214は、決定されたグローバル動きパラメータを画像深度の最初の表示に適用することによって、画像深度の最初の表示を調整することができる。一例によれば、図5に関して上記で説明したように、画像深度の最初の表示がオプティカルフローに基づいて決定される場合、画像処理モジュール214は、フレームfNの少なくとも1つの画素の速度ベクトル(オプティカルフロー動きベクトル)を調整して、推定されたグローバルな動きを補償することができる。例えば、画像処理モジュール214は、グローバル動き調整速度ベクトルを作成するために、1つ以上の決定されたグローバル動きパラメータをフレームfNの少なくとも1つの画素の速度ベクトルに適用することができる。
一例によれば、少なくとも1つの画素についてのグローバル動きの推定は、カメラ運動のモデルに基づいて決定され得る。後述するカメラ運動モデルの例は、8パラメータパースペクティブモデル(8-parameter perspective model)であるが、本明細書で説明するカメラ運動モデルは、本開示の範囲を超えることなく、任意の数のパラメータを含むことができる。本開示の他の例に従って、例えば、2パラメータ平行移動モデル又は6パラメータアフィンモデル(6-parameter affine models)を使用することもできる。
8パラメータパースペクティブモデルによれば、フレームf
Nの元のポイント位置(x,y)とフレームf
N+1の対応するポイント位置(x’,y’)との間の関係は、以下の式によって表すことができる。
この場合、変数a、b、c、d、e、f、p、及びqは、パースペクティブモデルの8つのパラメータである。従って、画像処理モジュール214は、フレームf
N、f
N+1についての少なくとも1つのオプティカルフローベクトルの解析に従って、それぞれのパラメータについての値を決定することができる。これらの式は非線形の変換関数を表し得るが、幾つかの例では、これらの式は、1次方程式の形に変えることができる。これらの式は、解く計算が少なくてすむので、1次形式に改正することは有利であり得る。
例えば、ポイント[x,y]
T及び[x’,y’]
Tは、異なる時刻にではあるが、同じ実世界のボクセルから投影される2つの画像フレームの2つの対応するポイントであると仮定する。上記で説明した同質の表現によれば、フレームf
Nについての8パラメータパースペクティブモデルによる非線形マッピングは、以下の式によって表すことができる。
これらの式は、以下の線形行列演算によって、さらに表すことができる。
上記の8パラメータパースペクティブモデルのパラメータを推定するために、画像処理モジュール214は、上記の式(12)の形で、1つ以上の画素を定式化することができる。しかしながら、幾つかの画素は、式(12)のパラメータの正確さに影響を与え得る。例えば、均一強度エリアに属する画素は、式(12)に従って動きを正しく推定していない可能性がある。従って、幾つかの例によれば、画像処理モジュールは、グローバル動きパラメータが決定される幾つかの画素を低減するために、フレームfN、fN+1の候補画素を選択することができる。
図6は、本開示の技法に一致する、候補画素の画像処理モジュール214の選択の一例を示すフローチャート図である。この例によれば、画像処理モジュール214は、フレームfNの1つ以上のエッジ画素を決定するために、エッジ検出を実行することができる(601)。例えば、フレームfNの被写体が人の顔である場合、人の顔のエッジが検出され得る。本明細書で説明するエッジ検出は、当技術分野で知られている様々な技法に従って実行することができる。そのような技法については、本明細書では明示的に説明していない。
画像処理モジュール214は、フレームfN、fN+1の少なくとも1つの画素についてのオプティカルフローベクトルV=[vx,vy]Tの1次勾配値Δvをさらに決定することができる(602)。一例によれば、画像処理モジュール214は、フレームfN、fN+1の全ての画素について、1次勾配値Δvを決定することができる。他の例では、画像処理モジュール214は、例えばステップ601で端部画素として識別された画素など、フレームfN、fN+1の画素のサブセットについて、1次勾配値Δvを決定することができる。
図6に示すように、画像処理モジュール214は、決定された1次勾配値の絶対値|Δv|が所定の閾値T4よりも大きいかどうかを、識別された端部画素ごとに、さらに決定することができる(603)。所定の閾値T4は、特徴点として望ましいことが既知であり得る画素の経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。決定された1次勾配値の絶対値|Δv|が所定の閾値T4以下である場合、画像処理モジュールは、グローバルな動きを決定するための特徴点として画素を選択することができる(604)。しかしながら、決定された1次勾配値の絶対値|Δv|が所定の閾値T4よりも大きい場合、画像処理モジュール214は、フレームfN、fN+1について、グローバルな動きを推定するための特徴点として画素を選択することはできない(605)。図6に示すように、画像処理モジュール214は、例えば、フレームfNについてのグローバルな動きを決定するためなど、フレームfNについての深度を決定するために、選択された特徴点画素を使用することができる(606)。例えば、画像処理モジュール214は、上記で説明したようにカメラの運動のモデル(例えば、パースペクティブモデル)に従って1つ以上のグローバル動きパラメータを決定するために、選択された特徴点画素を使用することができる。
再び図3を参照すると、上記で説明したように、画像処理モジュール214(例えば、図2Aに示されるグローバル動き調整サブモジュール238)は、グローバルな動きを補償するように、画像深度の最初の表示をさらに調整することができる(307)。一例によれば、画像処理モジュールは、グローバルな動きを補償するために、フレームfN、fN+1について、深度(例えば、ステップ304のオプティカルフロー)の最初の表示に決定されたグローバル動きパラメータを適用することによって、画像深度の最初の表示を調整することができる。従って、グローバル動き調整オプティカルフローを作成することができる。一例によれば、フレームfN+1の画素位置(x,y)ごとに、対応するグローバル動き調整位置(x’,y’)は、式(12)に従って決定することができる。例えば、画像処理モジュール214は、以下の式に従って、画素ごとに、グローバルな動きを表すことができる。
グローバル_vx = x-x’
グローバル_vy = y-y’ (13),
(例えば、図3のステップ304で決定されるように)画像深度の最初の表示は、ローカルとグローバルの両方の動きに基づいてもよい。従って、画像処理モジュール214は、画像深度の最初の表示からグローバルな動きを減算することによって、グローバルな動きを補償することができる。画像深度の最初の表示がオプティカルフローである場合、オプティカルフローは、画素ごとにオプティカルフローベクトルV=[vx,vy]Tとして表すことができる。従って、調整されたフローベクトルは、式V’=[v’x,v’y]Tによって表すことができ、但し、
v'x = vx - グローバル_ vx , 及び
v’x = vx - グローバル_ vx (14),
である。
グローバル動き調整フレーム、f’
N+1は、時刻tからt+δtまでカメラ運動がないかのように、時刻t+δtで撮影されたフレームと見なすことができる。画像処理モジュール212は、フレームf’
N+1の画素(x’,y’)の強度を、フレームf
N+1の画素(x,y)の同じ強度で設定することができる。例えば、
である。
深度(例えば、図3のステップ304で決定されるオプティカルフロー)の最初の表示はビデオプレゼンテーションのフレームf
Nとf
N+1との間の差の推定を指し得るが、本明細書で説明するように、グローバル動き補償フレーム差は、フレームf
Nとグローバル動き調整フレームf’
N+1との間の差を表し得る。例えば、
である。
上記で説明した技法によれば、フレームについてのグローバル動き調整オプティカルフローのために、元のフレームがグローバルな動きを含んでいる場合でも、実世界において静止しているフレームの背景被写体は静的に見えることができる。従って、ローカルな動きを有する前景の移動物体のみが、グローバル動き調整フレームにおいて動きを有することがある。従って、画像処理モジュール214は、グローバルな動きが取り除かれると、より大きい正確さを有する深度マップを決定することができる。上記で説明したように、深度マップは、ビデオフレームの画素及び/又は被写体の相対的な深度を示す値のマップでもよい。
幾つかの例では、式(8)から(12)に関して上述したパースペクティブモデルは、整数でなくてもよい。幾つかの例では、計算複雑さを低減するために、画像処理モジュール214は、値(x’,y’)を整数に四捨五入することができ、IN+1,(x,y)の強度を整数画素位置値(x’,y’)に割り当てることができる。対応する位置(x’,y’)がビデオフレームの境界を越える場合、画像処理モジュール214は、画素を破棄することができる。別の例によれば、2つ以上の画素位置(x,y)が整数位置(x’,y’)にマッピングされ得る。この例によれば、画像処理モジュール214は、(x’,y’)の強度値を、全ての画素についての強度値の平均に設定することができる。画素が特定の画素位置(x’,y’)にマッピングされない場合、画像処理モジュール214は、1つ以上の隣接する画素位置の決定された強度から補間による画素位置の強度を取得することができる。
再び図3を参照すると、(例えば、図3のステップ305で)グローバルな動きが存在することが決定されたか否かにかかわらず、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、フレームfNについてのオプティカルフロー、又はフレームfNについてのグローバル動き調整オプティカルフローのいずれかに基づいて、フレームfNの被写体及び/又は画素を前景又は背景被写体のいずれかとしてさらに分類することができる(308)。図7は、本開示の技法に一致して、フレームの画素及び/又は被写体の前景又は背景被写体としての画像処理モジュール214の分類の一例を示す。例えば、図7に示すように、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、画像の被写体が前景又は背景被写体であるか否かを決定するために、オプティカルフローベクトル(例えば、ステップ305でフレームfNがグローバルな動きを含んでいないと決定された場合、グローバル動き調整、又は非グローバル動き調整)を所定の閾値T5と比較することができる(701)。所定の閾値T5は、前景及び/又は背景被写体又は画素であることが既知であり得るビデオプレゼンテーションフレームの被写体及び/又は画素の経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。幾つかの例では、画像処理モジュール214は、フレームfNの画素ごとに、オプティカルフローを所定の閾値T5と比較することができる。幾つかの例では、画像処理モジュール214は、フレームfNの画素のサブセットについて、オプティカルフローを所定の閾値T5と比較することができる。例えば、上記で説明したように、エッジ検出に基づく比較又はフレームのどの画素がフレームの画像被写体を構成するかを決定するための任意の他の技法のために画素を選択することができる。
図7に同じく示すように、画素についてのオプティカルフローが所定の閾値T5以下である場合、画像処理モジュール214は、背景被写体の一部であるとして、画素を分類することができる(702)。しかしながら、画素についてのオプティカルフローが所定の閾値T5よりも大きい場合、画像処理モジュール214は、前景被写体の一部であるとして、画素を分類することができる(703)。
再び図3を参照すると、幾つかの例では、図3の方法のステップ308での前景又は背景被写体としての被写体の分類に基づいて、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、最初の前景/背景マスクを作成することができる(309)。本明細書で説明するマスクは、前景被写体と分類された画像フレームのエリア及び背景被写体と分類されたエリアのデジタル表現であり得る。例えば、本明細書で説明するマスクは、白色で前景画素を表すことができ、一方、背景画素は別の色、例えば黒によって表される。画像処理モジュール212は、2Dビデオプレゼンテーションの少なくとも1つの代替ビューを生成するために、本明細書で説明するようにマスクを使用することができ、その結果、3Dプレゼンテーションが視聴者に表示されるとき、前景画像は前景に表示され、3Dプレゼンテーションが視聴者に表示されるとき、背景画素は背景に表示される。
図3に同じく示すように、幾つかの例では、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、最初の前景/背景マスクをさらに精緻化することができる(310)。図8は、最初の前景/背景マスクを精緻化する方法の一例を示すフロー図である。幾つかの例では、ビデオプレゼンテーションは、殆んど又は全くテクスチャを含まない1つ以上の領域を含むことができる(以下「均一強度エリア(homogenous intensity areas)」)。カメラ運動は検出されるが、それらの均一強度エリアのオプティカルフローベクトルは実質的にゼロに等しくなり得る。その結果、(例えば、上記の式(16)に従って取得された)グローバル動き調整オプティカルフローベクトルV’は不正確であり得る。幾つかの例では、(例えば、図3のステップ308で決定されるように)最初の前景/背景マスクは、均一強度エリアについて正確ではない場合がある。従って、幾つかの例では、画像処理モジュール214は、フレームの均一強度エリアによる不正確さを考慮に入れるために、最初の前景/背景マスクを精緻化することができる。
図8に示すように、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、フレームf
Nとフレームf
N+1との間のグローバル動き調整フレーム差を決定することによって、最初の前景/背景マスクを精緻化することができる(801)。グローバル動き調整フレーム差を決定することは、フレームf
N、f
N+1の画素ごとに、近隣画素の平均フレーム差を含むことができる。1つのそのような例では、2P+1×2P+1ウィンドウ(例えば、フレームf
N、f
N+1は、2P×2Pブロックに分けられている)を使用して平均フレーム差を計算することができるが、他のウィンドウサイズも企図される。2P+1×2P+1ウィンドウが使用される例によれば、画像処理モジュールは、平均フレーム差を決定するために、フレームf
N、f
N+1の少なくとも1つの画素に下記の式を適用することができる。
画像処理モジュール212は、決定されたグローバル動き調整フレーム差を所定の閾値T6とさらに比較することができる(802)。所定の閾値T6は、前景及び/又は背景と誤って分類されることが既知であり得るビデオプレゼンテーションフレームの画素の経験的解析に基づいて選択することができるが、本明細書で説明する閾値を定義するために、他の技法が使用されてもよい。特定の画素について、決定されたグローバル動き調整フレーム差が所定の閾値T6未満である場合、画素は背景画素の可能性が高いと仮定され得る。従って、画像処理モジュール214は、ゼロの値を画素についてのグローバル動き調整フローベクトルV’に割り当てることができる(804)。しかしながら、特定の画素について、決定されたグローバル動き調整フレーム差が所定の閾値T6以上である場合、画像処理モジュール214は、(例えば、図3に示される方法のステップ307で決定された)前に決定されたものと同じグローバル動き調整フローベクトルV’を画素に割り当てることができる(803)。
画素が背景画素の可能性が高い場合、均一強度エリアの画素に、0のグローバル動き調整フローベクトルV’が割り当てられ得るので、図8に示される方法に従って、画像処理モジュール214が、フレームfNについてのグローバル動き調整オプティカルフローを精緻化することは、有利であり得る。従って、画像処理モジュール214は、均一強度画素が背景被写体として分類される精緻化されたマスクを作成することができ、それによって、ビデオフレームの均一強度エリアによって生じ得る不整合を低減又は除去することができる。
再び図3を参照すると、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、ビデオプレゼンテーションのための最終セグメンテーションマスクを作成するために、最初の前景/背景マスク、又は精緻化された前景背景マスク(以下「最初のマスク」と総称される)のいずれかをさらに後処理することができる(311)。画像処理モジュール212は、最初のマスクにおける前景/背景画素の比較的小さい領域を識別することによって、最初のマスクを後処理することができる。前景/背景画素のそのような比較的小さい領域は、最初のマスクにおける画素のノイズ及び/又は誤分類によって生じ得る。幾つかの例では、画像処理モジュール214は、例えば、比較的小さい領域の画素を最終セグメンテーションマスクの背景画素と分類することによって、又は、比較的小さい前景領域の画素を、最終セグメンテーションマスクの作成のために、背景画素と分類することによって、そのような比較的小さい領域を削除することができる。
幾つかの例では、画像処理モジュール214は、バイナリ画像輪郭解析を実行することによって、最初のマスクを後処理することができる。バイナリ画像輪郭解析は、最初のマスクにおける内部輪郭及び外部輪郭を検出することを含み得る。輪郭は、例えば、フレームfNの形状又は被写体を画定する又は境界をつけるなど、フレーム被写体の外形でもよい。外部輪郭は、他のいかなる輪郭もその輪郭の中に存在しない輪郭として説明され得る。内部輪郭は、別の輪郭の内部の輪郭として説明され得る。
バイナリ画像輪郭解析によれば、画像処理モジュール214は、それらが最初のマスクにおけるノイズを表すかどうか決定するために、内部及び/又は外部の輪郭のそれぞれのエリアを1つ以上の閾値と比較することができる。例えば、外部輪郭では、外部輪郭のエリアが所定の閾値T7未満である場合、画像処理モジュール214は、その輪郭が最初のマスクにノイズを含むと識別することができる。従って、外部輪郭のエリアが所定の閾値T7未満である場合、画像処理モジュール214は、輪郭の画素を最終セグメンテーションマスクの背景画素と分類することができる。内部輪郭では、内部輪郭のエリアが所定の閾値T8未満である場合、画像処理モジュールは、その輪郭が最初のマスクにノイズを含むと識別することができる。従って、内部輪郭のエリアが所定の閾値T8未満である場合、画像処理モジュール214は、輪郭の画素を最終セグメンテーションマスクの前景画素と分類することができる。上記で説明した後処理技法は、フレームfNについての最初のマスクを平滑化することができる。従って、画像処理モジュール214は、フレームfNについてのより正確な最終セグメンテーションマスクを作成することができる。
再び図3を参照すると、画像処理モジュール214は、図3のステップ301で取得されるビデオプレゼンテーションの2Dビューのための深度マップを作成することができる(312)。一例では、画像処理モジュール214は、例えば、図3のステップ310で作成された最終セグメンテーションマスクなど、最終セグメンテーションマスクに基づいて、深度マップを作成することができる。他の例では、画像処理モジュール214は、(例えば、図3のステップ308で作成された)最初の前景/背景マスク又は(例えば、図3のステップ309で作成された)精緻化された前景/背景マスクに基づいて、深度マップを作成することができる。以下、最終セグメンテーションマスク、最初の前景/背景マスク、及び精緻化された前景/背景マスクは、「マスク」と総称される。本明細書で説明するマスクは、前景被写体と分類された画像フレームのエリア及び背景被写体と分類されたエリアのデジタル表現であり得る。例えば、本明細書で説明するマスクは、白色で前景画素を表すことができ、一方、背景画素は別の色、例えば黒によって表される。画像処理モジュール212は、2Dビデオプレゼンテーションの少なくとも1つの代替ビューを生成するために、本明細書で説明するようにマスクを使用することができ、その結果、3Dプレゼンテーションが視聴者に表示されるとき、前景画像は前景に表示され、3Dプレゼンテーションが視聴者に表示されるとき、背景画素は背景に表示される。
深度マップを作成するために、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、フレームのマスクに基づいて、深度値を各画素に割り当てることができる。例えば、画像処理モジュール214は、より大きい深度値を、ローカル動きを有する被写体に対応する前景画素に割り当てることができ、これは、前景画素が観測者(例えば、ビデオプレゼンテーションの2Dビューを撮影したカメラ)により近いことを示す。対照的に、画像処理モジュール214は、より小さい深度値を背景画素に割り当てることができ、これは、背景画素が観測者からかなり離れていることを示す。一例によれば、画像処理モジュール214は、以下の式によって記述されるように、画素色に従って深度値を割り当てることができる。
式中、CN(x,y)は画素(x,y)におけるフレームfNの色値を示し、βは1未満であり得るスケーリング係数を示す。様々な例で、CN(x,y)は任意のタイプの色値を表すことができ、その非限定的な例には、RGB(赤、緑、青)値、シアン、マゼンタ、イエロー、及びブラック(CMYK)値、又は輝度値及びクロミナンス値がある。
幾つかの例では、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、深度マップをさらに平滑化することができる。1つのそのような例では、画像処理モジュール214は、非対称ガウスぶれフィルタを使用して深度マップを平滑化することができる。この例によれば、水平方向に沿ったぶれ強度は、非対称ガウスぶれフィルタの水平方向に沿うよりも強くなり得る。
幾つかの例では、画像処理モジュール214は、(例えば、式(18)に関して上記で説明したように)フィルタ処理された最初の深度の加重平均として、フレームf
Nについての最終深度を設定することができる。例えば、画像処理モジュール214は、以下の式によって前のフレームf
N−1の最終深度マップを表すことができる。
様々な例では、画像処理モジュール214は、本開示の技法によって作成された深度マップを使用して、(例えば、ビデオプレゼンテーションが深度を有するように見えるように)それがユーザに対して3Dのように見えるように表示され得るビデオプレゼンテーションを作成することができる。1つのそのような例によれば、画像処理モジュール214は、ビデオプレゼンテーションの1つ以上の代替ビューを作成するために、深度マップを使用することができる。ビデオプレゼンテーションの1つ以上の代替ビューは、それぞれのビューが一緒に表示されるとき、ビデオがユーザに対して実質的に3Dのように見えるように、(例えば図3のステップ301で取得される)ビデオプレゼンテーションの元の2Dビュー、又はビデオプレゼンテーションの別の代替ビューとともに表示されるように構成され得る。例えば、表示制御モジュール218は、表示器219に視聴者の右眼及び視聴者の左眼によって見られるそれぞれのビューを提示させ得る。それぞれのビュー間の差によって、ユーザは、実質的に3次元で表示されたビデオプレゼンテーションを知覚することができる。幾つかのそのような例では、画像処理モジュール214は、代替ビューと別のビュー(例えば、元の2Dビュー又は他の代替ビュー)との間の差が、本開示の技法に一致して作成されたそれぞれのビューの画素についての深度マップに基づいて選択され得るように、代替ビューを生成することができる。従って、幾つかの例では、本開示の技法は、3Dビデオプレゼンテーションへの2Dビデオプレゼンテーションのより正確な変換を提供することができる。
図9は、本開示の技法に一致する方法の一例を示すフローチャート図である。図9に示すように、画像処理モジュール214は、ビデオプレゼンテーションの2次元(2D)ビューの少なくとも1つのフレームについてのオプティカルフローを決定する(901)。オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動の表現であり得る。幾つかの例では、オプティカルフローは、少なくとも1つの例のために、画像深度の少なくとも1つの最初の表示を提供することができる。一例では、オプティカルフローは、少なくとも1つのフレームの画素ごとに決定され得る。図9に同じく示すように、画像処理モジュール214は、少なくとも1つのフレームについての推定グローバルな動きをさらに含み得る(902)。一例によれば、画像処理モジュール214は、上記のように、カメラ運動のモデル(例えば、8パラメータパースペクティブモデル)に基づく推定を介して、少なくとも1つのフレームについてのグローバルな動きを推定することができる。例えば、グローバルな動きを推定することは、(例えば、図3のステップ304に関して上記で説明したように)少なくとも1つのフレームについての少なくとも1つのグローバル動きパラメータを決定することを含むことができる。図9に同じく示すように、画像処理モジュール214は、推定されたグローバル動きに基づいてオプティカルフローを変更して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成することができる(903)。一例では、画像処理モジュール214は、(例えば、図3のステップ307に関して上記で説明したように)少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するために、少なくとも1つのグローバル動きパラメータをオプティカルフローに適用することを介して、オプティカルフローを変更することができる。図9に同じく示すように、画像処理モジュール214は、グローバル動き調整オプティカルフローに基づいて少なくとも1つのフレームの少なくとも1つの前景画素を識別することができる(904)。幾つかの例では、識別された少なくとも1つの前景画素は、ビデオプレゼンテーションの少なくとも1つのフレームの深度マップを作成するために使用され得る。視聴者によって実質的に3次元として知覚されるビデオプレゼンテーションを作成するために、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローに基づいて作成された深度マップが使用され得る。
図6は、グローバルな動きを決定するための特徴点として、候補画素を選択するための技法の一例を示す。図6に記載されている技法によれば、フレームfNの1つ以上の端部画素を決定するために、エッジ検出が実行され、決定された1次勾配値の絶対値が所定の閾値T4よりも大きいかどうかに基づいて、端部画素の特徴点が選択される。本開示の技法に一致する他の例によれば、グローバル動きの決定に使用される特徴点は、図10〜図13に関して以下で説明するように、他の考慮事項に基づいて選択することができる。
図10は、本開示の技法に一致する、グローバル動きの推定/補償のための特徴点として使用するための、候補画素の選択の方法の別の例を示すフローチャート図である。図10に示すように、画像処理モジュール214は、フレームFNを複数のブロック(例えば、M×Mブロック)に分割することができる(1001)。画像処理モジュール212は、ブロック(及び/又はブロック内の画素)ごとに、ブロック/画素がフレームの中央領域にあるかどうかを決定することができる(1002)。以下でより詳細に説明するように、ブロック/画素がフレームの中央領域にあるかどうかのこの決定は、特徴点として使用するために、候補画素を選択する際に使用することができる。
図11は、そのような中央領域1110を含む画像の日付のフレーム1101の一例を示す概念図である。図11に示すように、フレーム1101は、中央領域1110、ならびにフレーム1101の左側、上側、及び右側の部分を含む周辺領域1112を含む。同じく図11に示されるように、画素1102は、中央領域1110内に位置し、一方、画素1102は、中央領域1110外(例えば、周辺領域1112内)に位置する。
再び図10を参照すると、ブロック/画素が(例えば、画素1102など)フレーム1101の中央領域1110内にある場合、画像処理モジュール214は、グローバル動き推定/補償のための特徴点として、ブロック内の画素及び/又は複数の画素を使用しない場合がある(1007)。代わりに、画像処理モジュール214は、幾つかの例では、グローバルな動きを決定するために、少なくとも1つの前のフレームFN+1から1つ以上の前に識別された特徴点に関して、画像データを使用することができる(1003)。
しかしながら、中央領域1110外(例えば、周辺領域1112内)のブロック/画素について、画像処理モジュール214は、1つ以上のコーナー領域の画素を識別することができる(1004)。画像のコーナー領域は、画像の2つの非平行の端部が互いに交差する領域(又はポイント、例えば画素)を識別することができる。コーナー領域は、領域/ポイント局所近傍に2つの主要の異なる端部方向がある領域(ポイント)としても説明され得る。1つ以上のコーナー領域を決定するために、画像処理モジュール214は、マルチスケールハリス演算子を利用することができる、例えばハリスコーナー検出技法など、画像内の端部及び/又はコーナー領域を識別するための任意の技法を利用することができる。上記で説明したように、1つ以上のコーナー領域を決定するために利用され得る、端部及び/又はコーナー識別技術の技法の他の例には、例えば、Kirsh演算子、Frei−Chenマスキングセット、モラベックコーナー検出アルゴリズム、Harris&Stephens/Plessey/Shi−Tomasiコーナー検出アルゴリズム、level curve curvature手法、Laplacian of Gaussian(LoG)、Difference of Gaussians(DoG)、Determination of Hessian(DoH)アルゴリズム、affine−adapted interest point演算子、Wang及びBradyのコーナー検出アルゴリズム、smallest Univalue Segment Assimilating Nucleus(SUSAN)、Trajkovic及びHedlyのコーナー検出、Accelerated Segment Test(AST)ベースの特徴検出器、検出器の自動合成(例えば、Trujillo及びOlagueによって導入される)、又はフレームの1つもしくはコーナー領域及び/又は画素を決定するための任意の他の技法などの技法がある。
幾つかの例では、画像処理モジュール214は、特徴点として使用されるフレームのブロック当たりの候補画素(例えば、コーナー領域の画素)の数を制限することができる。例えば、画像処理モジュールは、ブロック当たりの所定の数の候補画素のみを識別することができる。例えば、画像処理モジュールは、フレームのブロック当たり5個から10個のみの候補画素を識別することができる。
別の例によれば、画像処理モジュール214は、フレームのコーナー領域の画素を識別することができるが、最も重要である所定の数の識別された画素を候補画素として利用することができるだけである。この場合、画像処理モジュール214は、特徴点を決定するために、最大の強度値を有するあるブロックの所定の数の画素を利用することができる。例えば、画像処理モジュール214は、あるブロックの全てのコーナー領域を識別することができるが、候補画素として最大の強度値を有するブロック当たり5個から10個の画素を選択することができるだけである。さらに別の例によれば、画像処理モジュール214は、候補画素として所定の閾値よりも大きい強度値を有する画素のみを利用することができる。幾つかの例では、画像処理モジュール214は、特定のブロックの任意の画素を(例えば、フレームの均一の領域の)候補画素と識別しない場合がある。
幾つかの例では、画像処理モジュール214は、グローバルな動きを決定するために使用される候補画素の数をさらに低減することができる。例えば、図10に示されるように、画像処理モジュール214は、候補画素がローカル動きを含むかどうかをさらに決定することができる(1005)。候補画素がローカル動きを含む場合、画像処理モジュール214は画素を特徴点と識別しない場合がある(1007)。代わりに、画像処理モジュール214は、少なくとも1つの他のフレームからの画像データを特徴点として使用することができる(1003)。候補画素がローカル動きを含まない場合、画像処理モジュール214は、グローバル動きの決定の際に使用するために、候補画素を特徴点と識別することができる(1008)。
同じく図10に示されるように、画像処理モジュール214は、さらに、又は代わりに、候補画素がフレームの均一の領域の一部であるかどうかを決定することもできる。例えば、画像処理モジュール214は、それを決定する場合、隣接画素の1つ以上の特性は、候補画素と同じ又は実質的に同様の値を共有する。候補画素がフレームの均一の領域にある場合、画像処理モジュール214は、特徴点として候補画素を使用しない場合がある(1007)。代わりに、幾つかの例では、画像処理モジュール214は、少なくとも1つの他のフレームからの画像データを特徴点として使用することができる(1003)。候補画素がフレームの均一の領域にない場合、画像処理モジュール214は、グローバルな動きの決定の際に使用するために、特徴点として候補画素を識別し得る(1008)。
図10に関して上記で説明した技法は、幾つかの理由で、有利であり得る。例えば、図10に示される基準に基づいて幾つかの特徴点を選択することによって、深度マップを決定する計算複雑さが低減され得る。さらに、フレーム(及び/又は場合によっては望ましくない画素、例えば均一の領域のローカル動き及び/又は画素)の中央領域の特徴点として少なくとも1つの前のフレームの画像データを使用することによって、深度マップを決定する計算複雑さをさらに低減することができる。
図3及び図9、並びに上の記述は、フレームについてのグローバルな動きを決定することに基づいて2D画像の深度マップを生成し、推定されたグローバル動きに基づいてフレームについてのオプティカルフローの表現を変更して、フレームについてのグローバル動き調整オプティカルフローを作成することについて記載する。図8及び上の対応する記述は、画像処理モジュール214が、フレームFNとFN+1との間のグローバル動き調整フレーム差を決定し、使用することによって、最初の前景/背景マスクを精緻化することができることを記載する。
本開示の技法に一致する他の例によれば、画像処理モジュール214は、グローバル動き補償フレーム差(例えば、図8に関して上記で説明したように)を使用して、上記で説明したように、グローバル動き調整フレームの代わりに深度マップを決定することができる。この例によれば、画像処理モジュール214は、グローバル動き調整フレームを決定しない場合がある。代わりに、画像処理モジュール214は、グローバル動き補償フレーム差に基づいてのみ、深度マップを決定することができる。深度マップを決定するためにグローバル動き補償フレーム差を使用することによって、2D画像についての3D深度マップを決定するために使用される計算複雑さ及び/又はメモリを低減することができる。
幾つかの例では、画像処理モジュール214は、グローバル動き補償フレーム差Frm_DiffN(上記の式(16)を参照)を決定することができる。そのようなグローバル動き補償フレーム差Frm_DiffNは、フレームfNとグローバル動き補償フレームf’N+1との間の差を指し得る。幾つかの例では、画像処理モジュール214は、上記で説明した図6及び図10の例に関して上記で説明したように選択されるフレームの1つ以上の特徴点に基づいて推定される1つ以上のグローバル動きパラメータに基づいて、グローバル動き補償フレーム差を決定することができる。
図12は、本開示の技法に一致する、2D画像についての深度を決定する方法の一例を示すフローチャート図である。図12に示すように、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、(例えば、図5に関して上記で説明したように)グローバルな動きが存在するかどうかを決定することができる(1201)。グローバルな動きがフレーム内に存在しない場合、画像処理モジュール214は、セグメンテーションマスクを決定するために、非補償フレーム差|f’N+1−fN+1|を使用することができる(1202)。フレームについてのグローバルな動きが存在する場合、画像処理モジュール214は、グローバル動き補償フレーム差を決定することができる(1203)。画像処理モジュール212は、決定されたフレーム差(例えば、グローバル動き補償フレーム差又は非補償フレーム差)に、メジアンフィルタを適用することができる(1204)。メジアンフィルタは、決定されたフレーム差におけるノイズを低減することができる。
画像処理モジュール212は、画像被写体(及び/又は画素)を前景又は背景として分類するために、フレームにおいてセグメンテーションをさらに実行することができる(1205)。例えば、図12に示すように、画像処理モジュール214は、被写体及び/又は画素についてのフレーム差の強度を所定の強度閾値T9と比較することができる(1206)。フレーム差の強度が閾値T9よりも大きい場合、画像処理モジュール214は、被写体及び/又は画素を前景被写体と識別することができる(1207)。しかしながら、フレーム差の強度が閾値T9未満である場合、画像処理モジュール214は、被写体及び/又は画素を背景被写体と識別することができる(1208)。フレームをセグメント化することに基づいて、画像処理モジュール214は、フレームについてのバイナリマスクを生成することができる(図12には図示せず)。画像処理モジュールは、バイナリマスクに、形態素フィルタリング(morphological filtering)(例えば、1つ以上の開いた又は閉じた形態素フィルタを使用する)をさらに適用することができる(同じく図12には図示せず)。画像処理は、フレームについての最初の前景/背景マスクを生成することができる(同じく図12には図示せず)。
画像処理モジュール212は、最初の前景/背景マスクを後処理することもできる(1209)。例えば、画像処理モジュールは、最終マスクを生成するために、図3に関して上記で説明したように、最初の前景/背景マスクを後処理することができる。上記で説明したように、画像処理モジュール214は、3D画像についての深度マップを生成するために、最終マスクを使用することができる。深度マップは、異なる画像を視聴者の右眼及び左眼に提示し、それによって、画像が視聴者にとって3Dのように見えるようにするために使用され得る。
図13は、本開示の技法に一致する、2D画像についての深度マップを決定するための方法の一例を示すフロー図である。図13に示すように、画像処理モジュール214は、ビデオプレゼンテーションの2次元(2D)ビューについて、ビデオプレゼンテーションのフレームについての複数の特徴点を決定する(1301)。例えば、画像処理モジュールは、フレームの画素がフレームの中央領域にあるか、画素がローカル動きを含むか、及び/又は、画素がフレームの均一の領域にあるかのうちの1つ以上に基づいて、複数の特徴点を決定することができる。
画像処理モジュール214は、複数の特徴点に基づいてフレームについてのグローバルな動きを決定する(1302)。画像処理モジュール214は、グローバル動き補償フレーム差をさらに決定する(1303)。画像処理モジュールは、グローバル動き補償フレーム差に基づいてビデオプレゼンテーションの2Dビューについての深度マップをさらに決定する(1304)。深度マップは、少なくとも1つの画像が視聴者に対して実質的に3Dのように見えるようにするために使用され得る。
1つ以上の例では、本明細書で説明する機能は、例えば特定のハードウェアコンポーネント又はプロセッサなど、少なくとも部分的にハードウェアに実装され得る。より一般的には、本技法は、ハードウェア、プロセッサ、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装できる。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体、即ちコンピュータ可読伝送媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
命令は、1つ以上の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、幾つかの態様では、本明細書で説明した機能は、符号化及び復号化のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
本出願は、その内容全体が参照により本明細書に組み込まれる、2010年11月23日に出願された「DEPTH ESTIMATION BASED ON GLOBAL MOTION」という名称の米国特許出願第12/953,310号の一部継続出願である。
本開示は、一般に3次元(3D)のビデオの生成に関する。より詳細には、本開示は、3次元(3D)ビデオプレゼンテーションの表示のための代替ビュー(代替表示)を生成するために使用され得る既存の2次元(2D)ビデオプレゼンテーションについての深度マップの作成に関する。
近年、ビデオ表示装置での3Dビデオプレゼンテーションを可能にするために、技術(例えば、テレビジョン、DVDプレーヤ、セットトップボックス、ブルーレイプレーヤ、コンピュータなど)が開発されている。しかしながら、大部分の既存のビデオコンテンツ(例えば、記憶された、ダウンロードされた、及び/又は、ストリーミングビデオコンテンツ)は、2Dで表示されるように構成されているだけである。従って、2Dビデオプレゼンテーションの既存のデジタル表現を3D表現に変換することが望ましくなり得る。そうするために、互いに対してビデオオブジェクトの深度を決定するために2Dビデオプレゼンテーションを解析することが望ましくなり得る。ビデオオブジェクトの深度の表現は、深度マップと呼ばれ得る。オブジェクト深度の決定は、ユーザに対して3Dで表示されるビデオプレゼンテーションを生成するために使用され得る。
グローバル動きは、撮影の間のカメラの動きとして説明され得る。グローバル動き運動の幾つかの例には、カメラの左右のパニング、上下のティルト、及び/又は例えばズームイン及びズームアウトなど様々な他の効果がある。本開示は、例えば、2Dビューを撮影した1つ以上の立体カメラの動きを推定するなど、2Dビューのグローバルな動きを推定することを含むビデオプレゼンテーションの2Dビューの画像オブジェクトの深度を推定するための技法について記載する。本開示は、画像の画素のサブセットに基づいてグローバルな動きを推定するための技法についても記載する。本開示は、グローバル動き補償フレーム差に基づいて画像についての深度マップを決定するための技法についてさらに記載する。
幾つかの例では、グローバルな動きを推定することは、ビデオプレゼンテーションの2Dビューの変換の改良を提供することができ、その結果、例えば、3Dビデオプレゼンテーションなど、ビデオプレゼンテーションが深度を有することが知覚され得るようになる。例えば、グローバル動きに基づいて深度を推定することは、ビデオプレゼンテーションの代替ビューの生成を提供し得る。代替ビューは、視聴者に対して実質的に3Dのように見えるように、ビデオプレゼンテーションの表示のための元の2Dビューとともに表示され得る。
一例によれば、方法について本明細書で説明する。方法は、ビデオプレゼンテーションの2次元(2D)ビューのためのコンピュータ機器の画像処理モジュールを介して、2Dビューの少なくとも1つのフレームについてのオプティカルフローを決定することを含み、オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動の表現である。方法は、画像処理モジュールによって、及び決定されたオプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定することをさらに含む。方法は、画像処理モジュールによって、推定されたグローバル動きに基づいてオプティカルフローを調整して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフロー(global motion-adjusted optical flow)を作成することをさらに含む。方法は、画像処理モジュールによって、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成することをさらに含む。
別の例によれば、装置について本明細書で説明する。装置は、ビデオプレゼンテーションの2次元(2D)ビューについて、2Dビデオプレゼンテーションの少なくとも1つのフレームについてのオプティカルフローを決定するオプティカルフロー決定モジュールを含み、オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動の表現である。装置は、決定されたオプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定するグローバル動き推定モジュールをさらに含む。装置は、推定されたグローバルな動きに基づいてオプティカルフローを調整して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するグローバル動き調整モジュールをさらに含む。装置は、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成するマスク/深度マップ作成モジュールをさらに含む。
別の例によれば、コンピュータ可読記憶媒体について本明細書で説明する。コンピュータ可読記憶媒体は、実行時に、1つ以上のプロセッサに、ビデオプレゼンテーションの2次元(2D)ビューについて、2Dビデオプレゼンテーションの少なくとも1つのフレームについてのオプティカルフローを決定させる命令を記憶する。オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの視運動(apparent motion)の表現である。命令は、さらに、コンピュータ機器に、オプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定させる。命令は、さらに、コンピュータ機器に、推定されたグローバルな動きに基づいてオプティカルフローを調整させて、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成させる。命令は、さらに、コンピュータ機器に、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成させる。
別の例によれば、機器について本明細書で説明する。機器は、ビデオプレゼンテーションの2次元(2D)ビューについて、2Dビデオプレゼンテーションの少なくとも1つのフレームについてのオプティカルフローを決定するための手段を含む。オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの視運動の表現である。機器は、オプティカルフローに基づいて、少なくとも1つのフレームについてのグローバルな動きを推定するための手段をさらに含む。機器は、推定されたグローバルな動きに基づいてオプティカルフローを調整して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するための手段をさらに含む。機器は、グローバル動き調整オプティカルフローに基づいてビデオプレゼンテーションの2Dビューについての深度マップを生成するための手段をさらに含む。
別の例によれば、本開示は、ビデオプレゼンテーションの2次元ビューについての深度マップを決定する方法について記載する。方法は、ビデオプレゼンテーションの2次元(2D)ビューのためのコンピュータ機器の画像処理モジュールを介して、ビデオプレゼンテーションのフレームについての複数の特徴点を決定することを含む。方法は、複数の特徴点に基づいてフレームについてのグローバルな動きを決定することをさらに含む。方法は、決定されたグローバルな動きに基づいてフレームについての深度マップを生成することをさらに含む。
別の例によれば、ビデオプレゼンテーションの2次元(2D)ビューについての深度マップを決定するように構成された機器。機器は、ビデオプレゼンテーションのフレームについての複数の特徴点を決定し、複数の特徴点に基づいてフレームについてのグローバルな動きを決定し、決定されたグローバルな動きに基づいてフレームについての深度マップを生成するように構成された画像処理モジュールを含む。
別の例によれば、ビデオプレゼンテーションの2次元(2D)ビューについての深度マップを決定するように構成された機器。機器は、ビデオプレゼンテーションのフレームについての複数の特徴点を決定するための手段を含む。機器は、複数の特徴点に基づいてフレームについてのグローバルな動きを決定するための手段をさらに含む。機器は、決定されたグローバル動きに基づいてフレームについての深度マップを生成するための手段をさらに含む。
別の例によれば、コンピュータ可読記憶媒体について本明細書で説明する。コンピュータ可読記憶媒体は、実行時に、1つ以上のプロセッサに、ビデオプレゼンテーションのフレームについての複数の特徴点を決定させ、複数の特徴点に基づいてフレームについてのグローバルな動きを決定させ、決定されたグローバル動きに基づいてフレームについての深度マップを生成させる命令を含む。
1つ以上の例の詳細は、添付の図面及び以下の説明に記載されている。本発明の他の特徴、目的、及び利点は、その説明及び図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法に一致する、2Dビデオプレゼンテーションを3Dビデオプレゼンテーションに変換するための方法の一例を示すフロー図。
本開示の技法に一致する、2Dビデオプレゼンテーションについての深度を推定するように構成されたコンピュータ機器の一例を示すブロック図。
本開示の技法に一致する、画像処理モジュールの一例を示すブロック図。
本開示の技法に一致する、2Dビデオプレゼンテーションについての深度マップを作成する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションの少なくとも1つのフレームについて、シーン変化が生じたかどうかを決定する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションの少なくとも1つのフレームについて、グローバルな動きが存在するかどうかを決定する方法の一例を示すフロー図。
本開示の技法に一致する、グローバル動きの推定のための特徴点を識別する方法の一例を示すフロー図。
本開示の技法に一致する、画像画素/被写体を前景/背景として分類する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションについての最初のマスクを精緻化する方法の一例を示すフロー図。
本開示の技法に一致する、ビデオプレゼンテーションの2Dビューの少なくとも1つの前景画素を決定するための方法の一例を示すフロー図。
本開示の技法に一致する、グローバル動きの推定のための特徴点を識別するための方法の一例を示すフロー図。
本開示の技法に一致する、中央領域及び周辺領域を含むフレームを示す概念図である。
本開示の技法に一致する、2D画像についての深度マップを決定するための方法の一例を示すフロー図。
本開示の技法に一致する、2D画像についての深度マップを決定するための方法の一例を示すフロー図。
本開示は、例えば、2Dビュー(2D表示)を撮影した1つ以上のモノスコープカメラの動きを推定するなど、2Dビューのグローバルな動きを推定することを含むビデオプレゼンテーションの2Dビューの画像被写体の深度を推定するための技法について記載する。幾つかの例では、グローバルな動きを推定することは、ビデオプレゼンテーションの2Dビューの変換の改良を提供することができ、その結果、例えば、3Dビデオプレゼンテーションなど、ビデオプレゼンテーションが深度を有することが知覚され得るようになる。例えば、本開示の技法は、少なくともビデオフレームについて、画像深度の少なくとも1つの最初の表示(例えば、少なくとも1つの画素のオプティカルフローなど)を決定し、最初の表示に基づいて、フレームについてのグローバルな動きを推定することを提供する。グローバル動きの推定は、画素の動きの最初の表示を補償するために使用され得、それによって、少なくとも1つのビデオフレームの被写体の深度(例えば、前景又は背景)を決定する際の正確さを向上させる。従って、少なくとも1つのフレームについて、深度マップが生成され得る。深度マップは、3D(例えば、立体的な)ビデオプレゼンテーションを表示するために、少なくとも1つの他のビュー(例えば、2Dビュー)とともに使用され得るビデオプレゼンテーションの少なくとも1つの代替ビューを生成するために使用され得る。
図1は、本開示の技法に一致する、撮影された画像についての深度を推定するための1つの例示的な方法を示すフロー図である。図1に示すように、方法は、ビデオプレゼンテーションの2D(例えば、モノスコープ)ビューを取得すること(101)を含む。2Dビューは、1つ以上のモノスコープ(シングル)カメラで撮影される画像を含むことができる。2Dビューは、代わりに、1つ以上の立体(2つ以上の)カメラを使用して撮影される複数のビューのシングルビューでもよい。方法は、2Dビューの1つ又は複数の被写体及び/又は画素についての深度の最初の表示を作成すること(102)をさらに含む。深度の最初の表示は、上記のように、例えば、ぶれ、動き、ブロックベースのマッチング、セグメンテーション、又はオプティカルフロー技法を含めて、本明細書で説明する技法のいずれかに基づいて作成され得る。方法は、深度の最初の表示に基づいて2Dビューの少なくとも1つのフレームのグローバルな動きを決定すること(103)をさらに含む。方法は、決定されたグローバル動きに基づいて、2Dビューの被写体及び/又は画素の最初の表示を調整すること(104)をさらに含む。例えば、オプティカルフローが画像深度の最初の表示を決定するために使用される場合、方法は、少なくとも1つの画素についてのグローバル動き調整オプティカルフローベクトルを作成するために、決定されたグローバル動きに基づいて2Dビューの少なくとも1つの画素についての少なくとも1つのオプティカルフローベクトルを変更することを含む。方法は、調整された深度マップに基づいて2Dビューの少なくとも1つの代替ビューを作成すること(105)をさらに含む。方法は、2Dビューの生成された代替ビューを使用して3Dビデオを提示することをさらに含むことができる。例えば、ビデオプレゼンテーションの2Dビューは、3Dビデオプレゼンテーションの左ビューとして表示され、一方、代替ビューは、3Dビデオプレゼンテーションの右ビューとして表示され得る。右ビューと左ビューとの間の差によって、3Dビデオプレゼンテーションの1つ以上の画像が、視聴者によって深度を有するものとして知覚され得る。
図2は、本開示の技法を実行するために使用され得るコンピュータ機器201の例示的な構成を示すブロック図である。コンピュータ機器201は、1つ以上の2Dビデオビュー(2Dビデオ表示)の3D表現を作成するために、1つ以上の2Dビデオビューを処理するように構成された任意の機器であり得る。本開示の技法を実施するために使用され得るコンピュータ機器201の非限定的な例には、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ機器、スマートフォン、ネットブック、テレビジョン、ビデオゲーム機、ポータブルビデオゲームユニット、又はビデオデータを処理するように構成された任意の他のコンピュータ機器がある。
図2の例に示すように、コンピュータ機器201は、1つ以上のプロセッサ210を含む。1つ以上のプロセッサ210は、コンピュータ機器に機能、例えば本開示の深度推定技法を実行させるために命令を実行するように構成されたコンピュータ機器201の構成要素である。例えば、プロセッサ(複数可)210は、記憶構成要素212によって記憶される命令を実行するように構成され得る。記憶構成要素212は、例えばコンピュータハードディスク、フラッシュメモリ、又はランダムアクセスメモリ(RAM)構成要素など、1つ以上の短期又は長期メモリ記憶構成要素を含み得る。一例では、プロセッサ210(複数可)は、コンピュータ機器201の1つ以上の中央処理装置(CPU)を備えることができる。他の例では、プロセッサ(複数可)210は、代わりに又はさらに、1つ以上のグラフィック処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、特定の論理又はハードウェア、若しくは他の同様の処理構成要素を含むことができる。
図2に示すように、プロセッサ(複数可)210は、画像処理モジュール214を含む。図示の例によれば、画像処理モジュール214は、記憶構成要素212によって記憶され、本明細書で説明する技法を実行するために1つ以上のプロセッサ210によって実行可能な命令を含む。記憶構成要素212に記憶される命令の実行時に、プロセッサ(複数可)210は、本開示の技法を実行するように構成された特定のマシンと考えることができる。例えば、プロセッサ(複数可)210による命令の実行は、ビデオプレゼンテーションの2Dビューのグローバルな動きを考慮に入れながら、プロセッサ(複数可)210に、ビデオプレゼンテーションの2Dビューについての深度を推定させ得る。
画像処理モジュール214は、本明細書で説明する様々な技法を実行するように構成された専用のハードウェア又はファームウェアを含むことができる。これらの例によれば、画像処理モジュール214に関連付けられたハードウェア又はファームウェアは、図2に示すように、プロセッサ(複数可)210の一部と考えることができる。例えば、画像処理モジュール214は、本開示の技法を実行するように構成された1つ以上の専用のハードウェア構成要素を備えることができる。例えば、画像処理モジュール214は、グラフィック処理構成要素、専用のハードウェア(例えば、ASIC)、プログラム可能なハードウェア(ファームウェア(FPGA))、あるいは本開示の技法に一致して動作するように構成された任意の他の専用及び/又はプログラム可能なハードウェアの任意の組合せを含むことができる。
一例によれば、画像処理モジュール214は、記憶構成要素212によって記憶されるビデオビューのデジタル表現を介して2Dビデオビューを取得することができる。別の例では、画像処理モジュール214は、通信モジュール216を介して1つ以上の他のコンピュータ機器から2Dビデオビューを取得することができる。通信モジュール216は、他のコンピュータ機器との通信を可能にするための1つ以上の構成要素を含むことができる。例えば、通信モジュール216は、ワイヤードの又はワイヤレスのネットワーク(例えば、インターネット)を介して、通信を容易にすることができる。従って、画像処理モジュール214は、通信モジュール216を介して別のコンピュータ機器に記憶された2Dビデオを取得することができる。別の例によれば、画像処理モジュール214は、撮像装置(図2には図示せず)から直接2Dビデオビューを取得することができる。例えば、コンピュータ機器201は、画像を撮影するように構成された1つ以上のカメラ機器を含む、又はそれに通信可能に結合することができる。1つ以上のカメラ機器は、リアルタイムで、又はほぼリアルタイムで、画像処理モジュール214に、撮影された画像を通信することができる。これらの例によれば、画像処理モジュール214は、本明細書で説明する技法を、リアルタイムで、又はほぼリアルタイムで、撮影された画像のフレームに適用することができる。例えば、画像処理モジュール214は、画像が1つ以上のカメラ機器によってキャプチャされるにつれて、受信された2D画像フレームを3D表示用に処理することができる。
本開示の技法によれば、画像処理モジュール214は、2Dビデオビューを取得し、2Dビデオビューの少なくとも1つの被写体/画素についての深度の最初の表示を決定することができる。画像処理モジュール214は、2Dビデオビューについてのグローバルな動きをさらに決定することができる。画像処理モジュール214は、決定されたグローバル動きに基づいて、2Dビデオビューの少なくとも1つの被写体/画素の深度の最初の表示をさらに調整することができる。次いで、画像処理モジュール214は、2Dビデオビューの少なくとも1つの代替ビューを作成するために、深度の調整された表示を使用することができる。代替ビューは、3Dビデオを表示するために、取得した2Dビュー又は別のビューとともに使用されるように構成することができる。
一例によれば、画像処理モジュール214は、記憶のために、記憶構成要素212に、作成された代替ビューを通信することができる。別の例によれば、コンピュータ機器201は、記憶のために、通信モジュール216を介して、別のコンピュータ機器に、作成された代替ビューを通信することができる。別の例によれば、コンピュータ機器201は、ユーザに対する提示のために、別のコンピュータ機器に、作成された代替ビューをストリームする(例えば、HTTP又は類似のストリーミングプロトコルを介して)ためのサーバ機器として動作し得る。例えば、コンピュータ機器201は、ユーザに立体画像を3Dで表示するように構成されたコンピュータ機器に、作成された代替ビューをストリームすることができる。
幾つかの例では、図2に示すように、本明細書で説明するように、深度を推定するように構成されたコンピュータ機器201は、視聴者に1つ以上の画像を表示するために、1つ以上の表示器219と通信するように構成された表示制御モジュール218をさらに含むことができる。図2に示すように、画像処理モジュール214と同様に、表示制御モジュール218は、1つ以上の表示器219を制御するために、プロセッサ(複数可)210によって実行可能なソフトウェア命令を備えることができる。図2に図示されていない他の例では、表示制御モジュール218は、代わりに、又はさらに、1つ以上の表示器219を制御するように構成された専用のハードウェアを含むことができる。
1つ以上の表示器219は、コンピュータ機器201の一部(例えば、ラップトップ、ネットブック、スマートフォン、ポータブルビデオゲーム機器、タブレット型コンピュータなど)でもよく、又はコンピュータ機器201(例えば、デスクトップ型コンピュータモニタ、テレビジョン表示器ビデオゲーム機など)に通信可能に結合され得る。1つ以上の表示器219は、1つ以上の表示器219が、それぞれ視聴者の右眼及び左眼によって知覚されることを意図した第1及び第2の画像を通信することができるという点で、立体画像を表示するように構成され得る。幾つかのそのような例では、ユーザは、第1の画像を視聴者の右眼によって独立して見せ、第2の画像を視聴者の左眼によって独立して見せる専用の眼鏡をかけることができる。表示制御モジュール218は、それぞれの右及び左の画像を表示させるために、表示器219と通信するように構成され得る。例えば、表示制御モジュール218は、例えば異なる色の光、周波数、又は強度など、光を表示要素に放射させて、それぞれの右及び左の画像を視聴者に対して表示させるために、表示器219の1つ以上の表示要素(例えば、液晶、発光ダイオード、プラズマ表示要素)を制御する信号を通信するように構成され得る。
図2Aは、本開示の技法に一致する、画像処理モジュール214、画像処理モジュール214Aの一例を示すブロック図である。図2の例によれば、画像処理モジュール214Aは、例えば、シーン変化検出モジュール230、オプティカルフロー決定モジュール232、グローバル動き決定モジュール234、グローバル動き推定モジュール236、グローバル動き調整モジュール238、及びマスク/深度マップ作成モジュール240など、様々なサブモジュールを含む。図2に示される画像処理モジュール214と同様に、様々なサブモジュール230、232、234、236、238、及び240は、例えばプロセッサなどのハードウェア上で実行可能なソフトウェア、及び/又は本明細書で説明する技法のいずれかを実行するように構成された任意の他の専用のハードウェアの任意の組合せを備え得る。
シーン変化検出モジュール230は、1つ以上のフレームがシーン変化、即ち、実質的にフレーム間の差を表すかどうかを決定するために、ビデオプレゼンテーションの1つ以上のフレームを解析するように構成され得る。シーン変化検出モジュール230によって使用され得る技法の例について、図3のステップ302に関して以下で説明する。
オプティカルフロー決定モジュール232は、例えば、ビデオフレームの少なくとも1つの画素についてのオプティカルフローなど、被写体深度の最初の表示を決定するように構成され得る。例えば、オプティカルフロー決定モジュール232は、例えば、図5に関して以下でさらに詳細に説明するように、1つ以上のフレームの少なくとも1つの画素についてのオプティカルフローを決定するために、ビデオプレゼンテーションの1つ以上のフレームを解析することができる。
グローバル動き決定モジュール234は、1つ以上のフレームがグローバルな動きを含むかどうかを決定するために、ビデオプレゼンテーションの1つ以上のフレームを解析するように構成され得る。グローバルな動きは、撮影の間のカメラの動きとして説明され得る。グローバルな動きの例には、カメラの左右のパニング、上下のティルト、ズームイン及びズームアウト、並びに類似の運動がある。一例によれば、グローバル動き決定モジュール234は、オプティカルフロー決定モジュール232から被写体深度(例えば、少なくとも1つのオプティカルフローベクトル)の最初の表示を受信するように構成され得る。この例によれば、グローバル動き決定モジュール234は、グローバルな動きが1つ以上のフレームの中に存在するかどうかを決定するために、被写体深度の受信された最初の表示を解析することができる。従って、画像処理モジュール214Aは、グローバル動き決定モジュール234が1つ以上のフレームについてグローバルな動きが存在しないことを決定した場合、グローバル動き推定及び/又は調整技法をスキップすることができる。一例では、グローバル動き決定モジュール234は、以下の図3のステップ305に関して以下で説明するように、ビデオプレゼンテーションの1つ以上のフレームがグローバルな動きを含むかどうかを決定することができる。
グローバル動き推定モジュール236は、(例えば、グローバルな動きがグローバル動き決定モジュール234によって存在することが決定された場合)ビデオプレゼンテーションの少なくとも1つのフレームについてのグローバルな動きを推定するように構成され得る。例えば、グローバル動き推定モジュール236は、オプティカルフロー決定モジュール232からビデオフレームの少なくとも1つの画素についてのオプティカルフローベクトルの表示を受信することができる。グローバル動き推定モジュール236は、例えば、図3に示されるステップ306に関して以下で説明するように、パラメータモデルのグローバル動きパラメータなど、グローバルな動きの少なくとも1つの表示を決定するために、1つ以上の受信されたオプティカルフローベクトルを解析することができる。
グローバル動き調整モジュール238は、グローバルな動きを考慮に入れるために、被写体深度の最初の表示を変更するように構成され得る。例えば、グローバル動き調整モジュール238は、オプティカルフロー決定モジュール232から1つ以上のオプティカルフローベクトルを受信することができる。グローバル動き調整モジュール238は、グローバル動き推定モジュール236から1つ以上のグローバル動きパラメータをさらに受信することができる。一例によれば、グローバル動き調整モジュール238は、ビデオプレゼンテーションの少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するために、受信されたグローバル動きパラメータを1つ以上のオプティカルベクトルに適用することができる。グローバル動き調整オプティカルフローを作成するためにグローバル動き調整モジュール238によって使用され得る技法の一例について、図3のステップ307に関して以下で説明する。
マスク/深度マップ作成モジュール240は、グローバル動き調整モジュール238から少なくとも1つの画素についてのグローバル動き調整オプティカルフローを受信し、グローバル動き調整オプティカルフローに基づいて少なくとも1つのフレームについての深度マップを決定するように構成され得る。例えば、マスク/深度マップ作成モジュール240は、(例えば、図3のステップ308に関して以下で説明するように)画像画素を背景及び/又は前景として分類し、(例えば、図3のステップ309に関して説明するように)分類に基づいて最初の前景/背景マスクを作成し、(例えば、図3のステップ310に関して説明するように)最初のマスクを精緻化し、及び/又は(例えば、図3のステップ311に関して説明するように)最初のマスクを後処理することができる。本明細書で説明する様々な例によれば、マスク/深度推定モジュール240は、(例えば、図3のステップ312に関して以下で説明するように)ビデオプレゼンテーションの少なくとも1つのフレームについての深度マップをさらに生成することができる。
一般に画像処理モジュール214によって実行されるものとして、様々な技法について説明する。本明細書で説明する様々な技法が、さらに又は代わりに、例えば、図2Aに関して上記で説明した画像処理モジュール214Aのサブモジュール230、232、234、236、238、及び240など、画像処理モジュール214の特定のサブモジュールによって実行され得ることを、当業者であれば諒解されよう。
2Dビデオプレゼンテーションの深度は、画像のぶれ、被写体の運動、及び/又はオプティカルフロー(例えば、被写体の輝度の動きによる変色など)に基づいて決定され得る。しかしながら、これらの技法には、幾つかの欠点があり得る。例えば、そのような技法は、全てのビデオプレゼンテーション又はビデオプレゼンテーションの部分について当てはまるというわけではない1つ以上の仮定に基づき得る。
立体視表示器技術の開発によって、立体視又は3次元(3D)のビデオは、ますます人気がある。これらの技術により、例えば映画、テレビ番組、ビデオゲーム、及び他のコンテンツなど、3Dコンテンツについての需要は著しく増加した。
例えば、多くの3D表示技法は、両眼視を使用し、この場合、視聴者の左右の眼によって異なって知覚されるわずかに異なる画像が提供される。この知覚された差のため、ユーザにとっての深度の知覚が作成される。しかしながら、大部分の既存のビデオコンテンツは、2Dでの表示用に構成されているだけである。例えば、大部分の既存のビデオコンテンツは、1次ビューしか含んでおらず、3Dビデオレンダリングを可能にすることができるどんな2次ビューも含んでいない。さらに、多くの既存のビデオカメラは、モノスコープビデオを撮影できるだけであり(例えば、同じ視点から画像を撮影するための、シングルカメラ又はマルチカメラのみを含む)、従って、画像を直接3Dで撮影するように構成されていない。
2Dビデオプレゼンテーションを3Dビデオ変換に変換することは、既知の元の2Dビューから1つ以上の代替ビューを生成することを含み得る。そのような変換技法の一態様は、撮影されたビデオの被写体の相対的な深度の推定を含むことができ、その結果、ビデオは、視聴者が深度を知覚するように再生され得る。幾つかの例では、画像被写体の深度は、1つ以上の代替ビューを生成する前に推定され得る。
深度の推定は、1つ以上のモノスコープ(例えば、2D)ビューから、深度と呼ばれる、被写体とカメラ平面との間の絶対的又は相対的な距離の推定を含むことができる。幾つかの例では、深度情報は、グレーレベル画像の深度マップによって表される。例えば、画像の画素は、それらの絶対的又は相対的な深度に応じて、値が割り当てられ得る。1つの特定の例では、「0」の深度値は、被写体とカメラとの間の最大距離を示し、一方、「255」の深度値は、最小距離を示す。
2D画像の推定された深度マップは、3Dビデオの提示のための深度を決定するために使用され得る。例えば、推定された深度マップは、深度画像ベースレンダリング(DIBR)技法を使用して、ビデオの1つ以上の代替ビューの角度を生成するために使用され得る。例えば、推定された深度マップは、表示されるとき、3D画像に深度を持たせる3Dビデオプレゼンテーションのそれぞれの右画像と左画像との間の差を決定するために使用され得る。
2Dビデオの幾つかの態様は、2D画像の被写体の深度を推定するために使用され得る。例えば、2Dビデオのソースに依存して、透視幾何(perspective geometry)、又は時間的もしくは2D空間的キュー、例えば被写体の動き及び色などが使用され得る。ビデオが2つ以上の事前撮影されたビュー(例えば、複数のカメラを使用して立体的に撮影された)をすでに含む場合、深度マップは、ビューを撮影した1つ以上のカメラの固有の及び/又は外部のパラメータに基づいて、エピポーラジオメトリによって取得することができる。そのような技法は、ステレオビューにおける同じ被写体の対応を識別することによって、視差情報(被写体深度に対して反比例)を推定することができる。そのような技法は、例えばグラフカット及び確率伝搬など、ローカルマッチング及びグローバル最適化方法を含むこともできる。
一般に、ビデオフレームは、1つ以上の前景の被写体と、背景及び/又は背景被写体との合成として考えることができる。カメラの焦点の観点から、焦点がぼけたエリア(例えば、背景画像)の色強度が、焦点が当てられたエリア(例えば、前景画像)と比較して、よりぼけていると仮定することができる。一例によれば、撮影された画像の深度は、画像画素のぶれのレベルに基づいて決定され得る。
画像画素の相対的なぶれは、勾配ベースの測定又は周波数領域の解析に基づいてもよい。例えば、幾つかのビデオ又はビデオフレームについて、勾配値がより大きい画像はあまり不鮮明ではなく、勾配値がより小さい画像はより不鮮明であると仮定され得る。しかし、他のビデオ又はフレームでは、これらの仮定は、正確ではない場合がある。例えば、カメラパースペクティブは、カメラに近い被写体の代わりに遠くの画像被写体に焦点を当てることができる。さらに、前景の同質のエリアは、それほど多くの高周波成分を含まないので、上記で説明した画像ぶれ解析は、前景のテクスチャレス領域に適用可能ではない場合がある。従って、必ずしも下位レベルのぶれがより小さい深度(例えば、カメラまでの距離)を示すとは限らないので、ぶれに従って画像深度を推定することは、正確ではない場合がある。
深度の推定のための他の技法は、モノスコープ2Dビデオにおける動きの解析を伴う。これらの技法は、遠い被写体と比較して、(カメラの視点に関して)より近い被写体が大きく見え、より多くの動きを有すると予想されるという仮定に依存し得る。
動き推定は、隣接するビデオフレームの間の被写体の運動を推定することを含むことができる。動き推定は、1つ以上の動きベクトルを決定することを含むことができる。動きベクトルは、ビデオプレゼンテーションの連続フレーム間の被写体の水平及び/又は垂直の並進変位を示すベクトルとして説明される。例えば、静的背景を含む、あるビデオシーン設定のために、動きは、被写体の動きを静的背景から減算することによって取得され得る。静的背景の必要性のため、動き推定は、幾つかのビデオ及び/又はビデオのフレームについては望ましくない可能性がある。動きを推定するための別の技法は、フレームを静的背景と比較する代わりに、隣接するフレーム間の差を決定することである。この技法によれば、動きは、連続フレームの画素の色強度の画素ベース及び/又はウィンドウベースの減算に基づいて識別され得る。
動きが深度の識別として使用される技法によれば、動きの大きさは、深度値を1つ以上のフレーム画素に割り当てるために使用され得る。例えば、動きの大きさがより大きい画素は、より大きい深度値が割り当てられ得る。しかしながら、深度を推定するためのぶれの使用と同様に、深度の表示としての動きの使用も、少なくとも幾つかのビデオについて当てはまらない仮定に基づき得る。例えば、カメラからの距離が実質的に同じ被写体は、独立して、しかし、異なる速度で移動することができる。これらの例によれば、より高速な移動物体がより遅い被写体と同じ距離離れている可能性があるので、動きは、必ずしも画像深度の適切なインジケータとは限らない場合がある。別の例では、画像が短い時間間隔にわたって動きがなく静的なままである場合、深度を推定するために、動きを使用しなくてもよい。
動き推定のために使用され得る別の技法は、ブロックベースのマッチングである。ブロックベースのマッチングが、ビデオ圧縮において使用され得る。これらの技法によれば、ビデオの1つ以上のフレームがブロックに分割される。現在フレームの各ブロックは、同じサイズの1ブロックと比較され得るが、基準フレームで位置がずれ得る。最小マッチングコスト、例えば、マッチングエラーの絶対値の和に関連付けられた決定された位置ずれは、そのブロックにおける全ての画素について、推定された動き値として識別され得る。
深度を推定するための別の技法は、画像セグメンテーションである。一般に、同じ又は同様の色を有する画素は、同じ被写体に属し、急な強度変化は、被写体境界を示す。深度フィールドは、区分的に滑らかであり、深度の不連続性は、画像強度の不連続性によって反映されるものと仮定され得る。これらの技法によれば、ビデオフレームは、幾つかの領域又はセグメントにセグメント化される。次いで、これらのセグメントは、異なる深度値が割り当てられる。画像セグメントの深度推定は、画素ベースの推定と比較してより整合的な深度マップを達成するが、計算複雑さは増加し得る。さらに、テクスチャ様のエリアを含む幾つかのシーンは、セグメント化が難しい可能性がある。例えば、同じ被写体の輝度変化など、セグメントが色分散を被った場合、画像セグメンテーションも不適切であり得る。また、幾つかの場合には、幾つかの異なるセグメントは、ある被写体のために決定され得、及び/又は、ある被写体の画素は、別の被写体の画素を有する同じセグメントに分類され得る。従って、場合によっては、深度推定のために使用されるとき、セグメンテーションの結果は、十分に正確ではない場合がある。
色強度値に従って画像を幾つかの均一の領域に区分する代わりに、それらを深度推定において直接使用することもできる。例えば、クロミナンスCr成分など、幾つかの色情報が、自然のビデオシーンについての深度初期化として使用され得る。幾つかの色空間におけるそれらの成分からの深度推定の1つの利点は、簡潔さである。クロミナンス成分は、同じ被写体に属する画素について滑らかであり得る。セグメンテーションベースの深度推定と比較して、それらの色成分から直接生成された深度マップは、被写体形状をより良く保ち、従って、より良い空間的整合性を与え得る。推定された深度値は真の深度に正確とはほど遠いが、そのような技法に従って作成される合成されたステレオペアは、ある程度まで3D効果を提供することができる。
オプティカルフロー技法は、例えばカメラなどの観測者と観察されている被写体との間の相対的な動きによって生じた視覚的平面における被写体の輝度パターンの仮現運動を識別することができる。例えば、ビデオフレームのオプティカルフローは、各ポイントにその運動を説明する速度ベクトルが割り当てられる動きフィールドと考えることができる。オプティカルフロー技法は、輝度の恒常性方程式(brightness constancy equation)を介して画素勾配ベースの強度変化に被写体速度を関連付けることを含むことができる。グローバル又はローカルの最適化技法は、1つ以上のフレーム画素についてのオプティカルフロー動きベクトルを計算するために使用され得る。
ぶれ、動き、及び上記の他の技法とは異なり、色強度(例えば、オプティカルフロー)から測定されるビデオフレーム平滑性は、空間と時間の両方において、比較的一貫した深度マップを生成するために使用され得る。深度マップを正確に推定することは、例えば生成された代替の仮想ビューにおけるちらつき及び局部変形など、3Dビデオの表現におけるアーチファクトを低減することにとって重要であり得る。
図3は、ビデオプレゼンテーションのグローバル動きに少なくとも部分的に基づいてビデオプレゼンテーションの2D(例えば、モノスコープなど)ビューの画像深度を推定する方法の一例を示すフローチャートである。図3の方法を含む本明細書で説明する様々な例は、コンピュータ機器201、又は図2に示されるコンピュータ機器201の構成要素(例えば、画像処理モジュール214)によって実行されるものとして述べられている。他の例では、本明細書で具体的に説明しているか否かにかかわらず、本明細書で説明する技法は、任意のコンピュータ機器又はモジュールによって実行され得る。
図3に示すように、画像処理モジュール214は、ビデオプレゼンテーションの2Dビューを取得する(301)ことができる。2Dビューは、ビデオプレゼンテーションのプレゼンテーション順序(例えば、1つ以上の表示器を介した、ユーザに対するプレゼンテーション)で、少なくとも2つの連続フレームを含む。図3に示される技法は、キャプチャされたビデオプレゼンテーションの現在(fN)及び次(fN+1)のフレームに適用されるものとして説明される。幾つかの例では、図3に示される技法は、ビデオプレゼンテーションの複数のフレームに、複数回適用され得る。
画像処理モジュール214(例えば、図2Aに示されるシーン変化検出サブモジュール230)は、シーン変化がフレームfNとfN+1との間に存在するかどうかをさらに決定することができる(302)。例えば、画像処理モジュール214は、フレームfNがビデオプレゼンテーションのフレームfN+1とは実質的に異なるシーンを表すシーン変化を決定することができる。フレームfN及びfN+1が異なる撮影されたシーンを表す場合、オプティカルフロー及び/又は決定されたグローバルな動きに基づく深度の推定は意味がない場合があるので、シーン変化が発生したかどうかを決定することが望ましい可能性がある。さらに、シーン変化を検出することは、ビデオフレーム解析の時間的(例えば時間の)整合性を向上させることができる。例えば、2つの時間的に隣接するフレームの間にシーン変化が生じる場合、現在フレームの深度マップが前のものと時間的に相関していない場合がある。従って、幾つかの連続フレームの深度を平均するなどの操作を回避することが望ましい場合がある。
従って、ビデオプレゼンテーションのフレームfNとfN+1との間でシーン変化が決定される場合、画像処理モジュール214は、フレームfNについての深度推定をスキップすることができる。フレームfNについての深度を推定する代わりに、画像処理モジュール214は、現在フレームfNについてのビデオプレゼンテーションの1つ以上の前のフレーム(例えば、フレームfN−1)のために前に決定された深度推定を使用することができる(303)。
図4は、ビデオプレゼンテーションの1つ以上のフレームがシーン変化を含むかどうかを決定する(例えば、図3に示されるように、ステップ302)ための技法の一例を示すフローチャート図である。図4に示される方法によれば、画像処理モジュール214(例えば、図2Aに示されるシーン変化検出サブモジュール230)は、強度ヒストグラムに基づいて変えられたシーンが生じたかどうかを検出することができる。この方法によれば、現在フレームf
Nのために、画素色の相対的な強度のヒストグラムが決定され得る(401)。画素色の相対的な強度のヒストグラムは、次のフレームf
N+1のためにも決定され得る(402)。
これらの例によれば、m番目のビンについてのヒストグラム値は、m番目のビンに属する強度値を有する幾つかの画素であり得る。一例では、mの値は、m=0,1,…M−1とすることができる。
これらの式によれば、Mは、それぞれのヒストグラムの幾つかのビンを表し得る。そのような一例によれば、画素色強度が0〜255におよぶ8ビット色表現では、Mの値は、256であり得る。他の例では、ヒストグラム値HN,HN+1の次元を低減するために、Mについてのより小さい値が使用され得る。
画像処理モジュール214は、ステップ301及び302で決定されるそれぞれのヒストグラムの間の相関係数λをさらに決定することができる(403)。一例によれば、相関係数λは、以下の式に基づいて決定され得る。
同じく図4に示されるように、画像処理モジュール214は、ステップ403で決定された相関係数λが閾値T1よりも大きいかどうかをさらに決定することができる(404)。閾値T1は、ビデオプレゼンテーションのシーン変化の経験的解析に基づく所定の値とすることができるが、他の方法で適応的に決定又は定義することもできる。相関係数λの値が閾値T1未満である場合、画像処理モジュール214は、新しいシーンがフレームfNとフレームfN+1との間で検出されたことを決定することができる(405)。しかしながら、相関係数λの値が閾値T1(例えばλ>=T1)以上である場合、画像処理モジュール214は、新しいシーンがフレームfNとフレームfN+1との間で検出されていないことを決定することができる(406)。
図4に示される技法によれば、fN及びフレームfN+1が同じシーン(例えば、シーン変化なし)に属する場合、ステップ401、402で決定されたそれぞれのヒストグラムHN、HN+1が実質的に同様であってもよく、例えば、HN、HN+1は高く相関する。一例では、シーン変化がフレームfNとfN+1との間に存在しない場合、ステップ403で決定された相関係数λは1の値に等しくてもよく、又は1の値に近くてもよい。そうでない場合、相関係数λは、例えば、実質的に1の値未満など、より小さい値を有し得る。
再び図3を参照すると、画像処理モジュール214は、フレームfNとfN+1との間のシーン変化を決定しない場合(302)、画像処理モジュール214(例えば、図2Aに示されるオプティカルフロー決定サブモジュール232)は、例えば、フレームfN及びfN+1の少なくとも1つの画素についてのオプティカルフローなど、フレームfN及びfN+1についての深度の最初の表示を決定することができる(304)。オプティカルフローは、観察者(例えば、カメラ)と観察されている1つ以上の被写体(例えば、観察者によって撮影される)との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動として説明され得る。少なくとも1つの画素についてのオプティカルフローを決定するために、画像処理モジュール214は、明るさの恒常性方程式を介して被写体速度を画素勾配ベースの強度変化と関連付けることができる。一例によれば、画像処理モジュール214は、フレームの1つ以上の画素についての速度ベクトルVx,yを決定することができる。図3に示されていない他の例では、画像処理モジュール214は、オプティカルフロー以外の技法に基づいて、最初の表示を決定することができる。例えば、画像処理モジュール214は、ぶれ、動き、ブロックベースのマッチング、及び/又は上記で説明したようなセグメンテーション技法に基づいて、深度の最初の表示を決定することができる。
一例によれば、画像処理モジュール214は、ビデオプレゼンテーションの少なくとも1つのボクセルについてのオプティカルフローを決定することができる。ボクセルは、x、y、zの実世界の座標における被写体の容積点と考えられ得る。ボクセルは、時刻tにカメラ平面(撮像の平面)の位置(例えば、x、y位置)に投影され得る。ボクセルの強度は、値I(x,y,t)によって表され得る。強度I(x,y,t)は、ボクセルから投影される観察者(例えば、カメラ)の平面に現れるボクセルの強度を表すことができる。値xは、カメラ平面(画像キャプチャの平面)の水平指標を表し、一方、値yはカメラ平面の垂直指標を表す。小さい時間間隔δtの後、時刻t+δtで、ボクセルは、新しい位置(例えば、x、y位置)(x+δx、y+δy、t+δt)に投影され得る。時間間隔δtが比較的短い場合、強度値I(x,y,t)は変化していないと見なすことができ、例えば以下の式によって表される。
一例によれば、画像処理モジュール214は、短期間以内の小さい運動についてのテイラー級数を決定することができる。例えば、画像処理モジュール214は、以下の式に従ってテイラー級数を決定することができる。
上記の式によれば、あるボクセル(画素)についての速度ベクトル(即ち、オプティカルフロー動きベクトル)は、以下と表され得、
所与の画素位置(例えば、x、y位置)について、画像処理モジュール214は、式(6)の値Ix、Iy、及びItを決定することができる。値Ix、Iy、及びItはそれぞれ、空間的水平、垂直及び時間的方向に沿った導関数として説明され得る。画像処理モジュール214は、連続フレーム間の差に基づいて値Itを決定することができる。画像処理モジュール214は、水平方向に沿って離散的微分フィルタ(演算子)を元のフレームに適用することに基づいて、値Ixを決定することができる。画像処理モジュール214は、垂直方向に沿って離散的微分フィルタ(演算子)を元のフレームに適用することに基づいて、値Iyを決定することができる。Ix、Iy、及びItについてひとたび値が決定されると、Ix、Iy、及びItは、vx及びvyの値を決定するために使用され得る。
従って、vx、vyの値を決定するために、関連した分野において知られている様々な技法が使用されてもよい。例えば、画像処理モジュール214は、例えばLucas−Canade(LK)オプティカルフロー方法及びHorn Schunck(HS)方法などの制約に基づいて、値vx、vyを決定することができる。画像処理モジュール214は、値vx,vyを決定するために、他の技法を使用することもできる。
画像処理モジュール214(例えば、図2Aに示されるオプティカルフロー決定サブモジュール232)は、1つ以上の画像画素についてのオプティカルフローを決定し、1つ以上の画像画素に割り当てられるオプティカルフローベクトルVx,yを生成するために、上記で説明した計算を使用することができる。画像処理モジュール214は、ビデオフレームの画素及び/又は被写体についての深度を推定するために、オプティカルフローベクトルを使用することができる。例えば、画像処理モジュール214は、オプティカルフローの大きさがより大きい画素により大きい深度値を割り当て、オプティカルフロー値がより小さい画素により小さい深度値を割り当てることができる。特定の一例では、8ビットグレーレベルスケールを使用して画素深度を表す場合、画像処理モジュール214は、ソース(例えばカメラ)から遠い画素に0の深度値を割り当て、ソースに近い画素に255の深度を割り当てることができる。
再び図3を参照すると、ひとたび深度の最初の表示がフレームf
N及びf
N+1について決定されると(例えばステップ304で)、画像処理モジュール214は、フレームf
Nについてのグローバルな動きが存在するか否かを決定することができる(305)。図5は、フレームf
Nがグローバルな動きを含むか否かを決定するための1つの例示的な技法を示すフロー図である。図5の方法によれば、画像処理モジュール214は、フレームf
N及びf
N+1を複数のブロックに分割することができる(501)。1つのそのような例では、画像処理モジュール214は、フレームf
N及びf
N+1をL×Lブロックに分割することができる。これらの分割されたブロックは、値k
1及びk
2によってインデックスを付けることができ、k
1は、水平ブロックインデックスを表し、k
2は垂直ブロックインデックスを表す。
画像処理モジュール214(例えば、図2Aに示されるグローバル動き決定サブモジュール234)は、それぞれのブロックk
1、k
2についてのグローバルな動きが存在するかどうかをさらに決定することができる(503)。一例によれば、画像処理モジュール214は、それぞれのブロックごとに、以下の式で示すように、平均フロー大きさを所定の閾値T
2と比較することができる。
式中、Vx,yは、図4に関して上記で説明したように画素位置(x,y)のオプティカルフローベクトルである。|X|は、ベクトルXのL2ノルムを表すことができる。
所定の閾値T2は、グローバルな動きを含むか否かが既知であり得るビデオプレゼンテーションフレームの経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。ブロックの平均フロー大きさが所定の閾値T2以上である場合、画像処理モジュール214は、それぞれのブロックについて、グローバルな動きが存在することを決定することができる。従って、画像処理モジュール214は、それぞれのブロックk1、k2についてのグローバル動きフラグ(例えば、Bk1、k2)に1の値を割り当てることができる(504)。ブロックの平均フロー大きさが所定の閾値T2未満である場合、画像処理モジュール214は、ブロックについて、グローバルな動きが存在しないことを決定することができる。従って、それぞれのブロックk1、k2についてのグローバル動きフラグ(例えば、Bk1、k2)に0の値を割り当てることができる(505)。
同じく図5に示されるように、画像処理モジュール214は、フレームfN、fN+1についてのグローバルな動きが存在するかどうかを決定することができる(506)。画像処理モジュール214は、フレームfN、fN+1のそれぞれのブロックk1、k2についてのそれぞれのグローバル動きフラグ(例えば、Bk1、k2)を合計することによって、フレームfN、fN+1についてのグローバルな動きが存在するかどうかを決定することができる。画像処理モジュール214は、それぞれのグローバル動きフラグの合計の結果を閾値T3とさらに比較することができる。所定の閾値T3は、グローバルな動きを含むか否かが既知であり得るビデオプレゼンテーションフレームの経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。それぞれのグローバル動きフラグの合計が閾値T3よりも大きい場合、画像処理モジュール214は、フレームfN、fN+1についてのグローバルな動きが存在することを決定することができる(507)。しかしながら、それぞれのグローバル動きフラグの合計が閾値T3未満である場合、画像処理モジュール214は、フレームfN、fN+1についてのグローバルな動きが存在しないことを決定することができる(508)。
再び図3を参照すると、フレームfN、fN+1についてのグローバルな動きが存在しないと決定された場合、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、以下でさらに詳細に説明するように、フレームfNの1つ以上の画素及び/又は被写体を前景又は背景被写体として分類することに進むことができる(308)。しかしながら、フレームfN、fN+1についてのグローバルな動きが存在することが決定された場合、画像処理モジュール214(例えば、図2Aに示されるグローバル動き推定サブモジュール236)は、フレームfN、fN+1の少なくとも1つの画素についてのグローバルな動きを推定することができる(306)。幾つかの例では、画像処理モジュール214は、1つ以上のグローバル動きパラメータを決定することによって、グローバルな動きを推定することができる。
図3に同じく示すように、画像処理モジュール214(例えば、図2Aに示されるグローバル動き調整サブモジュール238)は、(例えば、ステップ306で決定される)推定されたグローバル動きに基づいて、画像深度(例えば、ステップ304で決定されるオプティカルフロー)の最初の表示を調整することができる(307)。一例では、画像処理モジュール214は、決定されたグローバル動きパラメータを画像深度の最初の表示に適用することによって、画像深度の最初の表示を調整することができる。一例によれば、図5に関して上記で説明したように、画像深度の最初の表示がオプティカルフローに基づいて決定される場合、画像処理モジュール214は、フレームfNの少なくとも1つの画素の速度ベクトル(オプティカルフロー動きベクトル)を調整して、推定されたグローバルな動きを補償することができる。例えば、画像処理モジュール214は、グローバル動き調整速度ベクトルを作成するために、1つ以上の決定されたグローバル動きパラメータをフレームfNの少なくとも1つの画素の速度ベクトルに適用することができる。
一例によれば、少なくとも1つの画素についてのグローバル動きの推定は、カメラ運動のモデルに基づいて決定され得る。後述するカメラ運動モデルの例は、8パラメータパースペクティブモデル(8-parameter perspective model)であるが、本明細書で説明するカメラ運動モデルは、本開示の範囲を超えることなく、任意の数のパラメータを含むことができる。本開示の他の例に従って、例えば、2パラメータ平行移動モデル又は6パラメータアフィンモデル(6-parameter affine models)を使用することもできる。
8パラメータパースペクティブモデルによれば、フレームf
Nの元のポイント位置(x,y)とフレームf
N+1の対応するポイント位置(x’,y’)との間の関係は、以下の式によって表すことができる。
この場合、変数a、b、c、d、e、f、p、及びqは、パースペクティブモデルの8つのパラメータである。従って、画像処理モジュール214は、フレームf
N、f
N+1についての少なくとも1つのオプティカルフローベクトルの解析に従って、それぞれのパラメータについての値を決定することができる。これらの式は非線形の変換関数を表し得るが、幾つかの例では、これらの式は、1次方程式の形に変えることができる。これらの式は、解く計算が少なくてすむので、1次形式に改正することは有利であり得る。
例えば、ポイント[x,y]
T及び[x’,y’]
Tは、異なる時刻にではあるが、同じ実世界のボクセルから投影される2つの画像フレームの2つの対応するポイントであると仮定する。上記で説明した同質の表現によれば、フレームf
Nについての8パラメータパースペクティブモデルによる非線形マッピングは、以下の式によって表すことができる。
これらの式は、以下の線形行列演算によって、さらに表すことができる。
上記の8パラメータパースペクティブモデルのパラメータを推定するために、画像処理モジュール214は、上記の式(12)の形で、1つ以上の画素を定式化することができる。しかしながら、幾つかの画素は、式(12)のパラメータの正確さに影響を与え得る。例えば、均一強度エリアに属する画素は、式(12)に従って動きを正しく推定していない可能性がある。従って、幾つかの例によれば、画像処理モジュールは、グローバル動きパラメータが決定される幾つかの画素を低減するために、フレームfN、fN+1の候補画素を選択することができる。
図6は、本開示の技法に一致する、候補画素の画像処理モジュール214の選択の一例を示すフローチャート図である。この例によれば、画像処理モジュール214は、フレームfNの1つ以上のエッジ画素を決定するために、エッジ検出を実行することができる(601)。例えば、フレームfNの被写体が人の顔である場合、人の顔のエッジが検出され得る。本明細書で説明するエッジ検出は、当技術分野で知られている様々な技法に従って実行することができる。そのような技法については、本明細書では明示的に説明していない。
画像処理モジュール214は、フレームfN、fN+1の少なくとも1つの画素についてのオプティカルフローベクトルV=[vx,vy]Tの1次勾配値Δvをさらに決定することができる(602)。一例によれば、画像処理モジュール214は、フレームfN、fN+1の全ての画素について、1次勾配値Δvを決定することができる。他の例では、画像処理モジュール214は、例えばステップ601で端部画素として識別された画素など、フレームfN、fN+1の画素のサブセットについて、1次勾配値Δvを決定することができる。
図6に示すように、画像処理モジュール214は、決定された1次勾配値の絶対値|Δv|が所定の閾値T4よりも大きいかどうかを、識別された端部画素ごとに、さらに決定することができる(603)。所定の閾値T4は、特徴点として望ましいことが既知であり得る画素の経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。決定された1次勾配値の絶対値|Δv|が所定の閾値T4以下である場合、画像処理モジュールは、グローバルな動きを決定するための特徴点として画素を選択することができる(604)。しかしながら、決定された1次勾配値の絶対値|Δv|が所定の閾値T4よりも大きい場合、画像処理モジュール214は、フレームfN、fN+1について、グローバルな動きを推定するための特徴点として画素を選択することはできない(605)。図6に示すように、画像処理モジュール214は、例えば、フレームfNについてのグローバルな動きを決定するためなど、フレームfNについての深度を決定するために、選択された特徴点画素を使用することができる(606)。例えば、画像処理モジュール214は、上記で説明したようにカメラの運動のモデル(例えば、パースペクティブモデル)に従って1つ以上のグローバル動きパラメータを決定するために、選択された特徴点画素を使用することができる。
再び図3を参照すると、上記で説明したように、画像処理モジュール214(例えば、図2Aに示されるグローバル動き調整サブモジュール238)は、グローバルな動きを補償するように、画像深度の最初の表示をさらに調整することができる(307)。一例によれば、画像処理モジュールは、グローバルな動きを補償するために、フレームfN、fN+1について、深度(例えば、ステップ304のオプティカルフロー)の最初の表示に決定されたグローバル動きパラメータを適用することによって、画像深度の最初の表示を調整することができる。従って、グローバル動き調整オプティカルフローを作成することができる。一例によれば、フレームfN+1の画素位置(x,y)ごとに、対応するグローバル動き調整位置(x’,y’)は、式(12)に従って決定することができる。例えば、画像処理モジュール214は、以下の式に従って、画素ごとに、グローバルな動きを表すことができる。
グローバル_vx = x-x’
グローバル_vy = y-y’ (13),
(例えば、図3のステップ304で決定されるように)画像深度の最初の表示は、ローカルとグローバルの両方の動きに基づいてもよい。従って、画像処理モジュール214は、画像深度の最初の表示からグローバルな動きを減算することによって、グローバルな動きを補償することができる。画像深度の最初の表示がオプティカルフローである場合、オプティカルフローは、画素ごとにオプティカルフローベクトルV=[vx,vy]Tとして表すことができる。従って、調整されたフローベクトルは、式V’=[v’x,v’y]Tによって表すことができ、但し、
v'x = vx -グローバル_ vx , 及び
v’ y = v y - グローバル_ v y (14),
である。
グローバル動き調整フレーム、f’
N+1は、時刻tからt+δtまでカメラ運動がないかのように、時刻t+δtで撮影されたフレームと見なすことができる。画像処理モジュール
214は、フレームf’
N+1の画素(x’,y’)の強度を、フレームf
N+1の画素(x,y)の同じ強度で設定することができる。例えば、
である。
深度(例えば、図3のステップ304で決定されるオプティカルフロー)の最初の表示はビデオプレゼンテーションのフレームf
Nとf
N+1との間の差の推定を指し得るが、本明細書で説明するように、グローバル動き補償フレーム差は、フレームf
Nとグローバル動き調整フレームf’
N+1との間の差を表し得る。例えば、
である。
上記で説明した技法によれば、フレームについてのグローバル動き調整オプティカルフローのために、元のフレームがグローバルな動きを含んでいる場合でも、実世界において静止しているフレームの背景被写体は静的に見えることができる。従って、ローカルな動きを有する前景の移動物体のみが、グローバル動き調整フレームにおいて動きを有することがある。従って、画像処理モジュール214は、グローバルな動きが取り除かれると、より大きい正確さを有する深度マップを決定することができる。上記で説明したように、深度マップは、ビデオフレームの画素及び/又は被写体の相対的な深度を示す値のマップでもよい。
幾つかの例では、式(8)から(12)に関して上述したパースペクティブモデルは、整数でなくてもよい。幾つかの例では、計算複雑さを低減するために、画像処理モジュール214は、値(x’,y’)を整数に四捨五入することができ、IN+1,(x,y)の強度を整数画素位置値(x’,y’)に割り当てることができる。対応する位置(x’,y’)がビデオフレームの境界を越える場合、画像処理モジュール214は、画素を破棄することができる。別の例によれば、2つ以上の画素位置(x,y)が整数位置(x’,y’)にマッピングされ得る。この例によれば、画像処理モジュール214は、(x’,y’)の強度値を、全ての画素についての強度値の平均に設定することができる。画素が特定の画素位置(x’,y’)にマッピングされない場合、画像処理モジュール214は、1つ以上の隣接する画素位置の決定された強度から補間による画素位置の強度を取得することができる。
再び図3を参照すると、(例えば、図3のステップ305で)グローバルな動きが存在することが決定されたか否かにかかわらず、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、フレームfNについてのオプティカルフロー、又はフレームfNについてのグローバル動き調整オプティカルフローのいずれかに基づいて、フレームfNの被写体及び/又は画素を前景又は背景被写体のいずれかとしてさらに分類することができる(308)。図7は、本開示の技法に一致して、フレームの画素及び/又は被写体の前景又は背景被写体としての画像処理モジュール214の分類の一例を示す。例えば、図7に示すように、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、画像の被写体が前景又は背景被写体であるか否かを決定するために、オプティカルフローベクトル(例えば、ステップ305でフレームfNがグローバルな動きを含んでいないと決定された場合、グローバル動き調整、又は非グローバル動き調整)を所定の閾値T5と比較することができる(701)。所定の閾値T5は、前景及び/又は背景被写体又は画素であることが既知であり得るビデオプレゼンテーションフレームの被写体及び/又は画素の経験的解析に基づいて選択され得るが、他の方法で適応的に決定又は定義することもできる。幾つかの例では、画像処理モジュール214は、フレームfNの画素ごとに、オプティカルフローを所定の閾値T5と比較することができる。幾つかの例では、画像処理モジュール214は、フレームfNの画素のサブセットについて、オプティカルフローを所定の閾値T5と比較することができる。例えば、上記で説明したように、エッジ検出に基づく比較又はフレームのどの画素がフレームの画像被写体を構成するかを決定するための任意の他の技法のために画素を選択することができる。
図7に同じく示すように、画素についてのオプティカルフローが所定の閾値T5以下である場合、画像処理モジュール214は、背景被写体の一部であるとして、画素を分類することができる(702)。しかしながら、画素についてのオプティカルフローが所定の閾値T5よりも大きい場合、画像処理モジュール214は、前景被写体の一部であるとして、画素を分類することができる(703)。
再び図3を参照すると、幾つかの例では、図3の方法のステップ308での前景又は背景被写体としての被写体の分類に基づいて、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、最初の前景/背景マスクを作成することができる(309)。本明細書で説明するマスクは、前景被写体と分類された画像フレームのエリア及び背景被写体と分類されたエリアのデジタル表現であり得る。例えば、本明細書で説明するマスクは、白色で前景画素を表すことができ、一方、背景画素は別の色、例えば黒によって表される。画像処理モジュール214は、2Dビデオプレゼンテーションの少なくとも1つの代替ビューを生成するために、本明細書で説明するようにマスクを使用することができ、その結果、3Dプレゼンテーションが視聴者に表示されるとき、前景画像は前景に表示され、3Dプレゼンテーションが視聴者に表示されるとき、背景画素は背景に表示される。
図3に同じく示すように、幾つかの例では、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、最初の前景/背景マスクをさらに精緻化することができる(310)。図8は、最初の前景/背景マスクを精緻化する方法の一例を示すフロー図である。幾つかの例では、ビデオプレゼンテーションは、殆んど又は全くテクスチャを含まない1つ以上の領域を含むことができる(以下「均一強度エリア(homogenous intensity areas)」)。カメラ運動は検出されるが、それらの均一強度エリアのオプティカルフローベクトルは実質的にゼロに等しくなり得る。その結果、(例えば、上記の式(16)に従って取得された)グローバル動き調整オプティカルフローベクトルV’は不正確であり得る。幾つかの例では、(例えば、図3のステップ308で決定されるように)最初の前景/背景マスクは、均一強度エリアについて正確ではない場合がある。従って、幾つかの例では、画像処理モジュール214は、フレームの均一強度エリアによる不正確さを考慮に入れるために、最初の前景/背景マスクを精緻化することができる。
図8に示すように、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、フレームf
Nとフレームf
N+1との間のグローバル動き調整フレーム差を決定することによって、最初の前景/背景マスクを精緻化することができる(801)。グローバル動き調整フレーム差を決定することは、フレームf
N、f
N+1の画素ごとに、近隣画素の平均フレーム差を含むことができる。1つのそのような例では、2P+1×2P+1ウィンドウ(例えば、フレームf
N、f
N+1は、2P×2Pブロックに分けられている)を使用して平均フレーム差を計算することができるが、他のウィンドウサイズも企図される。2P+1×2P+1ウィンドウが使用される例によれば、画像処理モジュールは、平均フレーム差を決定するために、フレームf
N、f
N+1の少なくとも1つの画素に下記の式を適用することができる。
画像処理モジュール214は、決定されたグローバル動き調整フレーム差を所定の閾値T6とさらに比較することができる(802)。所定の閾値T6は、前景及び/又は背景と誤って分類されることが既知であり得るビデオプレゼンテーションフレームの画素の経験的解析に基づいて選択することができるが、本明細書で説明する閾値を定義するために、他の技法が使用されてもよい。特定の画素について、決定されたグローバル動き調整フレーム差が所定の閾値T6未満である場合、画素は背景画素の可能性が高いと仮定され得る。従って、画像処理モジュール214は、ゼロの値を画素についてのグローバル動き調整フローベクトルV’に割り当てることができる(804)。しかしながら、特定の画素について、決定されたグローバル動き調整フレーム差が所定の閾値T6以上である場合、画像処理モジュール214は、(例えば、図3に示される方法のステップ307で決定された)前に決定されたものと同じグローバル動き調整フローベクトルV’を画素に割り当てることができる(803)。
画素が背景画素の可能性が高い場合、均一強度エリアの画素に、0のグローバル動き調整フローベクトルV’が割り当てられ得るので、図8に示される方法に従って、画像処理モジュール214が、フレームfNについてのグローバル動き調整オプティカルフローを精緻化することは、有利であり得る。従って、画像処理モジュール214は、均一強度画素が背景被写体として分類される精緻化されたマスクを作成することができ、それによって、ビデオフレームの均一強度エリアによって生じ得る不整合を低減又は除去することができる。
再び図3を参照すると、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、ビデオプレゼンテーションのための最終セグメンテーションマスクを作成するために、最初の前景/背景マスク、又は精緻化された前景背景マスク(以下「最初のマスク」と総称される)のいずれかをさらに後処理することができる(311)。画像処理モジュール214は、最初のマスクにおける前景/背景画素の比較的小さい領域を識別することによって、最初のマスクを後処理することができる。前景/背景画素のそのような比較的小さい領域は、最初のマスクにおける画素のノイズ及び/又は誤分類によって生じ得る。幾つかの例では、画像処理モジュール214は、例えば、比較的小さい領域の画素を最終セグメンテーションマスクの背景画素と分類することによって、又は、比較的小さい前景領域の画素を、最終セグメンテーションマスクの作成のために、背景画素と分類することによって、そのような比較的小さい領域を削除することができる。
幾つかの例では、画像処理モジュール214は、バイナリ画像輪郭解析を実行することによって、最初のマスクを後処理することができる。バイナリ画像輪郭解析は、最初のマスクにおける内部輪郭及び外部輪郭を検出することを含み得る。輪郭は、例えば、フレームfNの形状又は被写体を画定する又は境界をつけるなど、フレーム被写体の外形でもよい。外部輪郭は、他のいかなる輪郭もその輪郭の中に存在しない輪郭として説明され得る。内部輪郭は、別の輪郭の内部の輪郭として説明され得る。
バイナリ画像輪郭解析によれば、画像処理モジュール214は、それらが最初のマスクにおけるノイズを表すかどうか決定するために、内部及び/又は外部の輪郭のそれぞれのエリアを1つ以上の閾値と比較することができる。例えば、外部輪郭では、外部輪郭のエリアが所定の閾値T7未満である場合、画像処理モジュール214は、その輪郭が最初のマスクにノイズを含むと識別することができる。従って、外部輪郭のエリアが所定の閾値T7未満である場合、画像処理モジュール214は、輪郭の画素を最終セグメンテーションマスクの背景画素と分類することができる。内部輪郭では、内部輪郭のエリアが所定の閾値T8未満である場合、画像処理モジュールは、その輪郭が最初のマスクにノイズを含むと識別することができる。従って、内部輪郭のエリアが所定の閾値T8未満である場合、画像処理モジュール214は、輪郭の画素を最終セグメンテーションマスクの前景画素と分類することができる。上記で説明した後処理技法は、フレームfNについての最初のマスクを平滑化することができる。従って、画像処理モジュール214は、フレームfNについてのより正確な最終セグメンテーションマスクを作成することができる。
再び図3を参照すると、画像処理モジュール214は、図3のステップ301で取得されるビデオプレゼンテーションの2Dビューのための深度マップを作成することができる(312)。一例では、画像処理モジュール214は、例えば、図3のステップ310で作成された最終セグメンテーションマスクなど、最終セグメンテーションマスクに基づいて、深度マップを作成することができる。他の例では、画像処理モジュール214は、(例えば、図3のステップ308で作成された)最初の前景/背景マスク又は(例えば、図3のステップ309で作成された)精緻化された前景/背景マスクに基づいて、深度マップを作成することができる。以下、最終セグメンテーションマスク、最初の前景/背景マスク、及び精緻化された前景/背景マスクは、「マスク」と総称される。本明細書で説明するマスクは、前景被写体と分類された画像フレームのエリア及び背景被写体と分類されたエリアのデジタル表現であり得る。例えば、本明細書で説明するマスクは、白色で前景画素を表すことができ、一方、背景画素は別の色、例えば黒によって表される。画像処理モジュール214は、2Dビデオプレゼンテーションの少なくとも1つの代替ビューを生成するために、本明細書で説明するようにマスクを使用することができ、その結果、3Dプレゼンテーションが視聴者に表示されるとき、前景画像は前景に表示され、3Dプレゼンテーションが視聴者に表示されるとき、背景画素は背景に表示される。
深度マップを作成するために、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、フレームのマスクに基づいて、深度値を各画素に割り当てることができる。例えば、画像処理モジュール214は、より大きい深度値を、ローカル動きを有する被写体に対応する前景画素に割り当てることができ、これは、前景画素が観測者(例えば、ビデオプレゼンテーションの2Dビューを撮影したカメラ)により近いことを示す。対照的に、画像処理モジュール214は、より小さい深度値を背景画素に割り当てることができ、これは、背景画素が観測者からかなり離れていることを示す。一例によれば、画像処理モジュール214は、以下の式によって記述されるように、画素色に従って深度値を割り当てることができる。
式中、CN(x,y)は画素(x,y)におけるフレームfNの色値を示し、βは1未満であり得るスケーリング係数を示す。様々な例で、CN(x,y)は任意のタイプの色値を表すことができ、その非限定的な例には、RGB(赤、緑、青)値、シアン、マゼンタ、イエロー、及びブラック(CMYK)値、又は輝度値及びクロミナンス値がある。
幾つかの例では、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、深度マップをさらに平滑化することができる。1つのそのような例では、画像処理モジュール214は、非対称ガウスぶれフィルタを使用して深度マップを平滑化することができる。この例によれば、水平方向に沿ったぶれ強度は、非対称ガウスぶれフィルタの水平方向に沿うよりも強くなり得る。
幾つかの例では、画像処理モジュール214は、(例えば、式(18)に関して上記で説明したように)フィルタ処理された最初の深度の加重平均として、フレームf
Nについての最終深度
マップを設定することができる。例えば、画像処理モジュール214は、以下の式によって前のフレームf
N−1の最終深度マップを表すことができる。
様々な例では、画像処理モジュール214は、本開示の技法によって作成された深度マップを使用して、(例えば、ビデオプレゼンテーションが深度を有するように見えるように)それがユーザに対して3Dのように見えるように表示され得るビデオプレゼンテーションを作成することができる。1つのそのような例によれば、画像処理モジュール214は、ビデオプレゼンテーションの1つ以上の代替ビューを作成するために、深度マップを使用することができる。ビデオプレゼンテーションの1つ以上の代替ビューは、それぞれのビューが一緒に表示されるとき、ビデオがユーザに対して実質的に3Dのように見えるように、(例えば図3のステップ301で取得される)ビデオプレゼンテーションの元の2Dビュー、又はビデオプレゼンテーションの別の代替ビューとともに表示されるように構成され得る。例えば、表示制御モジュール218は、表示器219に視聴者の右眼及び視聴者の左眼によって見られるそれぞれのビューを提示させ得る。それぞれのビュー間の差によって、ユーザは、実質的に3次元で表示されたビデオプレゼンテーションを知覚することができる。幾つかのそのような例では、画像処理モジュール214は、代替ビューと別のビュー(例えば、元の2Dビュー又は他の代替ビュー)との間の差が、本開示の技法に一致して作成されたそれぞれのビューの画素についての深度マップに基づいて選択され得るように、代替ビューを生成することができる。従って、幾つかの例では、本開示の技法は、3Dビデオプレゼンテーションへの2Dビデオプレゼンテーションのより正確な変換を提供することができる。
図9は、本開示の技法に一致する方法の一例を示すフローチャート図である。図9に示すように、画像処理モジュール214は、ビデオプレゼンテーションの2次元(2D)ビューの少なくとも1つのフレームについてのオプティカルフローを決定する(901)。オプティカルフローは、2Dビューの観測者と2Dビューの被写体との間の相対的な動きによって生じる視覚的平面における被写体の輝度パターンの仮現運動の表現であり得る。幾つかの例では、オプティカルフローは、少なくとも1つの例のために、画像深度の少なくとも1つの最初の表示を提供することができる。一例では、オプティカルフローは、少なくとも1つのフレームの画素ごとに決定され得る。図9に同じく示すように、画像処理モジュール214は、少なくとも1つのフレームについての推定グローバルな動きをさらに含み得る(902)。一例によれば、画像処理モジュール214は、上記のように、カメラ運動のモデル(例えば、8パラメータパースペクティブモデル)に基づく推定を介して、少なくとも1つのフレームについてのグローバルな動きを推定することができる。例えば、グローバルな動きを推定することは、(例えば、図3のステップ304に関して上記で説明したように)少なくとも1つのフレームについての少なくとも1つのグローバル動きパラメータを決定することを含むことができる。図9に同じく示すように、画像処理モジュール214は、推定されたグローバル動きに基づいてオプティカルフローを変更して、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成することができる(903)。一例では、画像処理モジュール214は、(例えば、図3のステップ307に関して上記で説明したように)少なくとも1つのフレームについてのグローバル動き調整オプティカルフローを作成するために、少なくとも1つのグローバル動きパラメータをオプティカルフローに適用することを介して、オプティカルフローを変更することができる。図9に同じく示すように、画像処理モジュール214は、グローバル動き調整オプティカルフローに基づいて少なくとも1つのフレームの少なくとも1つの前景画素を識別することができる(904)。幾つかの例では、識別された少なくとも1つの前景画素は、ビデオプレゼンテーションの少なくとも1つのフレームの深度マップを作成するために使用され得る。視聴者によって実質的に3次元として知覚されるビデオプレゼンテーションを作成するために、少なくとも1つのフレームについてのグローバル動き調整オプティカルフローに基づいて作成された深度マップが使用され得る。
図6は、グローバルな動きを決定するための特徴点として、候補画素を選択するための技法の一例を示す。図6に記載されている技法によれば、フレームfNの1つ以上の端部画素を決定するために、エッジ検出が実行され、決定された1次勾配値の絶対値が所定の閾値T4よりも大きいかどうかに基づいて、端部画素の特徴点が選択される。本開示の技法に一致する他の例によれば、グローバル動きの決定に使用される特徴点は、図10〜図13に関して以下で説明するように、他の考慮事項に基づいて選択することができる。
図10は、本開示の技法に一致する、グローバル動きの推定/補償のための特徴点として使用するための、候補画素の選択の方法の別の例を示すフローチャート図である。図10に示すように、画像処理モジュール214は、フレームFNを複数のブロック(例えば、M×Mブロック)に分割することができる(1001)。画像処理モジュール214は、ブロック(及び/又はブロック内の画素)ごとに、ブロック/画素がフレームの中央領域にあるかどうかを決定することができる(1002)。以下でより詳細に説明するように、ブロック/画素がフレームの中央領域にあるかどうかのこの決定は、特徴点として使用するために、候補画素を選択する際に使用することができる。
図11は、そのような中央領域1110を含む画像の日付のフレーム1101の一例を示す概念図である。図11に示すように、フレーム1101は、中央領域1110、ならびにフレーム1101の左側、上側、及び右側の部分を含む周辺領域1112を含む。同じく図11に示されるように、画素1102は、中央領域1110内に位置し、一方、画素1102は、中央領域1110外(例えば、周辺領域1112内)に位置する。
再び図10を参照すると、ブロック/画素が(例えば、画素1102など)フレーム1101の中央領域1110内にある場合、画像処理モジュール214は、グローバル動き推定/補償のための特徴点として、ブロック内の画素及び/又は複数の画素を使用しない場合がある(1007)。代わりに、画像処理モジュール214は、幾つかの例では、グローバルな動きを決定するために、少なくとも1つの前のフレームFN+1から1つ以上の前に識別された特徴点に関して、画像データを使用することができる(1003)。
しかしながら、中央領域1110外(例えば、周辺領域1112内)のブロック/画素について、画像処理モジュール214は、1つ以上のコーナー領域の画素を識別することができる(1004)。画像のコーナー領域は、画像の2つの非平行の端部が互いに交差する領域(又はポイント、例えば画素)を識別することができる。コーナー領域は、領域/ポイント局所近傍に2つの主要の異なる端部方向がある領域(ポイント)としても説明され得る。1つ以上のコーナー領域を決定するために、画像処理モジュール214は、マルチスケールハリス演算子を利用することができる、例えばハリスコーナー検出技法など、画像内の端部及び/又はコーナー領域を識別するための任意の技法を利用することができる。上記で説明したように、1つ以上のコーナー領域を決定するために利用され得る、端部及び/又はコーナー識別技術の技法の他の例には、例えば、Kirsh演算子、Frei−Chenマスキングセット、モラベックコーナー検出アルゴリズム、Harris&Stephens/Plessey/Shi−Tomasiコーナー検出アルゴリズム、level curve curvature手法、Laplacian of Gaussian(LoG)、Difference of Gaussians(DoG)、Determination of Hessian(DoH)アルゴリズム、affine−adapted interest point演算子、Wang及びBradyのコーナー検出アルゴリズム、smallest Univalue Segment Assimilating Nucleus(SUSAN)、Trajkovic及びHedlyのコーナー検出、Accelerated Segment Test(AST)ベースの特徴検出器、検出器の自動合成(例えば、Trujillo及びOlagueによって導入される)、又はフレームの1つもしくはコーナー領域及び/又は画素を決定するための任意の他の技法などの技法がある。
幾つかの例では、画像処理モジュール214は、特徴点として使用されるフレームのブロック当たりの候補画素(例えば、コーナー領域の画素)の数を制限することができる。例えば、画像処理モジュールは、ブロック当たりの所定の数の候補画素のみを識別することができる。例えば、画像処理モジュールは、フレームのブロック当たり5個から10個のみの候補画素を識別することができる。
別の例によれば、画像処理モジュール214は、フレームのコーナー領域の画素を識別することができるが、最も重要である所定の数の識別された画素を候補画素として利用することができるだけである。この場合、画像処理モジュール214は、特徴点を決定するために、最大の強度値を有するあるブロックの所定の数の画素を利用することができる。例えば、画像処理モジュール214は、あるブロックの全てのコーナー領域を識別することができるが、候補画素として最大の強度値を有するブロック当たり5個から10個の画素を選択することができるだけである。さらに別の例によれば、画像処理モジュール214は、候補画素として所定の閾値よりも大きい強度値を有する画素のみを利用することができる。幾つかの例では、画像処理モジュール214は、特定のブロックの任意の画素を(例えば、フレームの均一の領域の)候補画素と識別しない場合がある。
幾つかの例では、画像処理モジュール214は、グローバルな動きを決定するために使用される候補画素の数をさらに低減することができる。例えば、図10に示されるように、画像処理モジュール214は、候補画素がローカル動きを含むかどうかをさらに決定することができる(1005)。候補画素がローカル動きを含む場合、画像処理モジュール214は画素を特徴点と識別しない場合がある(1007)。代わりに、画像処理モジュール214は、少なくとも1つの他のフレームからの画像データを特徴点として使用することができる(1003)。候補画素がローカル動きを含まない場合、画像処理モジュール214は、グローバル動きの決定の際に使用するために、候補画素を特徴点と識別することができる(1008)。
同じく図10に示されるように、画像処理モジュール214は、さらに、又は代わりに、候補画素がフレームの均一の領域の一部であるかどうかを決定することもできる。例えば、画像処理モジュール214は、隣接画素の1つ以上の特性は、候補画素と同じ又は実質的に同様の値を共有することを決定することができる。候補画素がフレームの均一の領域にある場合、画像処理モジュール214は、特徴点として候補画素を使用しない場合がある(1007)。代わりに、幾つかの例では、画像処理モジュール214は、少なくとも1つの他のフレームからの画像データを特徴点として使用することができる(1003)。候補画素がフレームの均一の領域にない場合、画像処理モジュール214は、グローバルな動きの決定の際に使用するために、特徴点として候補画素を識別し得る(1008)。
図10に関して上記で説明した技法は、幾つかの理由で、有利であり得る。例えば、図10に示される基準に基づいて幾つかの特徴点を選択することによって、深度マップを決定する計算複雑さが低減され得る。さらに、フレーム(及び/又は場合によっては望ましくない画素、例えば均一の領域のローカル動き及び/又は画素)の中央領域の特徴点として少なくとも1つの前のフレームの画像データを使用することによって、深度マップを決定する計算複雑さをさらに低減することができる。
図3及び図9、並びに上の記述は、フレームについてのグローバルな動きを決定することに基づいて2D画像の深度マップを生成し、推定されたグローバル動きに基づいてフレームについてのオプティカルフローの表現を変更して、フレームについてのグローバル動き調整オプティカルフローを作成することについて記載する。図8及び上の対応する記述は、画像処理モジュール214が、フレームFNとFN+1との間のグローバル動き調整フレーム差を決定し、使用することによって、最初の前景/背景マスクを精緻化することができることを記載する。
本開示の技法に一致する他の例によれば、画像処理モジュール214は、グローバル動き補償フレーム差(例えば、図8に関して上記で説明したように)を使用して、上記で説明したように、グローバル動き調整フレームの代わりに深度マップを決定することができる。この例によれば、画像処理モジュール214は、グローバル動き調整フレームを決定しない場合がある。代わりに、画像処理モジュール214は、グローバル動き補償フレーム差に基づいてのみ、深度マップを決定することができる。深度マップを決定するためにグローバル動き補償フレーム差を使用することによって、2D画像についての3D深度マップを決定するために使用される計算複雑さ及び/又はメモリを低減することができる。
幾つかの例では、画像処理モジュール214は、グローバル動き補償フレーム差Frm_DiffN(上記の式(16)を参照)を決定することができる。そのようなグローバル動き補償フレーム差Frm_DiffNは、フレームfNとグローバル動き補償フレームf’N+1との間の差を指し得る。幾つかの例では、画像処理モジュール214は、上記で説明した図6及び図10の例に関して上記で説明したように選択されるフレームの1つ以上の特徴点に基づいて推定される1つ以上のグローバル動きパラメータに基づいて、グローバル動き補償フレーム差を決定することができる。
図12は、本開示の技法に一致する、2D画像についての深度を決定する方法の一例を示すフローチャート図である。図12に示すように、画像処理モジュール214(例えば、図2Aに示されるマスク/深度マップ作成サブモジュール240)は、(例えば、図5に関して上記で説明したように)グローバルな動きが存在するかどうかを決定することができる(1201)。グローバルな動きがフレーム内に存在しない場合、画像処理モジュール214は、セグメンテーションマスクを決定するために、非補償フレーム差|f’N+1−fN+1|を使用することができる(1202)。フレームについてのグローバルな動きが存在する場合、画像処理モジュール214は、グローバル動き補償フレーム差を決定することができる(1203)。画像処理モジュール214は、決定されたフレーム差(例えば、グローバル動き補償フレーム差又は非補償フレーム差)に、メジアンフィルタを適用することができる(1204)。メジアンフィルタは、決定されたフレーム差におけるノイズを低減することができる。
画像処理モジュール214は、画像被写体(及び/又は画素)を前景又は背景として分類するために、フレームにおいてセグメンテーションをさらに実行することができる(1205)。例えば、図12に示すように、画像処理モジュール214は、被写体及び/又は画素についてのフレーム差の強度を所定の強度閾値T9と比較することができる(1206)。フレーム差の強度が閾値T9よりも大きい場合、画像処理モジュール214は、被写体及び/又は画素を前景被写体と識別することができる(1207)。しかしながら、フレーム差の強度が閾値T9未満である場合、画像処理モジュール214は、被写体及び/又は画素を背景被写体と識別することができる(1208)。フレームをセグメント化することに基づいて、画像処理モジュール214は、フレームについてのバイナリマスクを生成することができる(図12には図示せず)。画像処理モジュールは、バイナリマスクに、形態素フィルタリング(morphological filtering)(例えば、1つ以上の開いた又は閉じた形態素フィルタを使用する)をさらに適用することができる(同じく図12には図示せず)。画像処理は、フレームについての最初の前景/背景マスクを生成することができる(同じく図12には図示せず)。
画像処理モジュール214は、最初の前景/背景マスクを後処理することもできる(1209)。例えば、画像処理モジュールは、最終マスクを生成するために、図3に関して上記で説明したように、最初の前景/背景マスクを後処理することができる。上記で説明したように、画像処理モジュール214は、3D画像についての深度マップを生成するために、最終マスクを使用することができる。深度マップは、異なる画像を視聴者の右眼及び左眼に提示し、それによって、画像が視聴者にとって3Dのように見えるようにするために使用され得る。
図13は、本開示の技法に一致する、2D画像についての深度マップを決定するための方法の一例を示すフロー図である。図13に示すように、画像処理モジュール214は、ビデオプレゼンテーションの2次元(2D)ビューについて、ビデオプレゼンテーションのフレームについての複数の特徴点を決定する(1301)。例えば、画像処理モジュールは、フレームの画素がフレームの中央領域にあるか、画素がローカル動きを含むか、及び/又は、画素がフレームの均一の領域にあるかのうちの1つ以上に基づいて、複数の特徴点を決定することができる。
画像処理モジュール214は、複数の特徴点に基づいてフレームについてのグローバルな動きを決定する(1302)。画像処理モジュール214は、グローバル動き補償フレーム差をさらに決定する(1303)。画像処理モジュールは、グローバル動き補償フレーム差に基づいてビデオプレゼンテーションの2Dビューについての深度マップをさらに決定する(1304)。深度マップは、少なくとも1つの画像が視聴者に対して実質的に3Dのように見えるようにするために使用され得る。
1つ以上の例では、本明細書で説明する機能は、例えば特定のハードウェアコンポーネント又はプロセッサなど、少なくとも部分的にハードウェアに実装され得る。より一般的には、本技法は、ハードウェア、プロセッサ、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装できる。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体、即ちコンピュータ可読伝送媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
命令は、1つ以上の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、幾つかの態様では、本明細書で説明した機能は、符号化及び復号化のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。