(57)【特許請求の範囲】
【請求項１】
ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、３次元環境（３Ｄ環境）の画像コンテンツを含むことと、
前記ソース画像を前記３Ｄ環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、
前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、
前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、
を含み、
前記前景部分をセグメンテーションすることは、
各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、
各投影ターゲット画像を前記ソース画像に色調整することと、
前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、
前記複数の差分マップをマージすることであって、混合差分マップを生成することと、
を含む、方法。
【請求項２】
前記カメラ姿勢を求めることは、
前記ソース画像から少なくとも１つのソース画像の視覚的特徴を抽出することと、
前記少なくとも１つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、
前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記３Ｄ環境における平面構造上に投影することであって、前記平面構造は、前記３Ｄ環境における３Ｄ座標を有することと、
を含む、請求項１に記載の方法。
【請求項３】
前記ソース画像を前記平面構造上に投影することは、
ホモグラフィー行列を求めることと、
前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、
前記回転行列及び前記平行移動行列を前記平面構造の前記３Ｄ座標に適用することと、
を含む、請求項２に記載の方法。
【請求項４】
前記混合差分マップに二重閾値処理を適用することであって、複数の第１のバイナリ前景マスクを生成することと、
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第１のバイナリ前景マスクを精緻化することと、
を更に含む、請求項１から請求項３のいずれか１つに記載の方法。
【請求項５】
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第１のバイナリ前景マスクを精緻化することは、
少なくとも１つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、
前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも２つの分散量度を指定することと、
双方の分散量度が指定された閾値よりも大きいとき、各第１の前景マスクにピクセルを追加することと、
を含む、請求項４に記載の方法。
【請求項６】
フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、
前記複数の第１の精緻化された前景マスク及び前記床マスクを混合することであって、第２のバイナリ前景マスクを生成することと、
前記第２のバイナリ前景マスクにメディアンフィルターを適用することと、
を更に含む、請求項４または５に記載の方法。
【請求項７】
前記第２のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、
前記顔マスクを前記第２のバイナリ前景マスクと混合することであって、第３のバイナリ前景マスクを生成することと、
前記第３のバイナリ前景マスクに連結成分解析を適用することと、
を更に含む、請求項６に記載の方法。
【請求項８】
各投影ターゲット画像を前記ソース画像に色調整することは、
各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、
前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、
前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、
前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、
元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、
を含む、請求項１から７の何れか１項に記載の方法。
【請求項９】
前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記３Ｄ環境における前記前景部分のシミュレーションを提供すること、
を更に含む、請求項１から８の何れか１項に記載の方法。
【請求項１０】
請求項１から請求項９のいずれか１つに記載の方法をコンピュータに実行させるためのプログラム。
【請求項１１】
システムであって、
ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、３次元環境（３Ｄ環境）の画像コンテンツを含むことと、前記ソース画像を前記３Ｄ環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することとを行う処理手段、
を備え、
前記前景部分をセグメンテーションするために、前記処理手段は、各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、各投影ターゲット画像を前記ソース画像に色調整することと、前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、前記複数の差分マップをマージすることであって、混合差分マップを生成することとを行う、システム。
【請求項１２】
前記カメラ姿勢を求めるために、前記処理手段は、前記ソース画像から少なくとも１つのソース画像の視覚的特徴を抽出することと、前記少なくとも１つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記３Ｄ環境における平面構造上に投影することであって、前記平面構造は、前記３Ｄ環境における３Ｄ座標を有することとを行う、請求項１１に記載のシステム。
【請求項１３】
前記ソース画像を前記平面構造上に投影するために、前記処理手段は、ホモグラフィー行列を求めることと、前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、前記回転行列及び前記平行移動行列を前記平面構造の前記３Ｄ座標に適用することとを行う、請求項１２に記載のシステム。
【請求項１４】
前記処理手段は、前記混合差分マップに二重閾値処理を適用することであって、複数の第１のバイナリ前景マスクを生成することと、前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第１のバイナリ前景マスクを精緻化することとを行う、請求項１３に記載のシステム。
【請求項１５】
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第１のバイナリ前景マスクを精緻化するために、前記処理手段は、少なくとも１つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも２つの分散量度を指定することと、双方の分散量度が指定された閾値よりも大きいとき、各第１の前景マスクにピクセルを追加することとを行う、請求項１４に記載のシステム。
【請求項１６】
前記処理手段は、フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、前記複数の第１の精緻化された前景マスク及び前記床マスクを混合することであって、第２のバイナリ前景マスクを生成することと、前記第２のバイナリ前景マスクにメディアンフィルターを適用することとを行う、請求項１４または１５に記載のシステム。
【請求項１７】
前記処理手段は、前記第２のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、前記顔マスクを前記第２のバイナリ前景マスクと混合することであって、第３のバイナリ前景マスクを生成することと、前記第３のバイナリ前景マスクに連結成分解析を適用することとを行う、請求項１６に記載のシステム。
【請求項１８】
各投影ターゲット画像を前記ソース画像に色調整するために、前記処理手段は、各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することとを行う、請求項１１から１７の何れか１項に記載のシステム。
【請求項１９】
前記処理手段は、前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記３Ｄ環境における前記前景部分のシミュレーションを提供することを行う、請求項１１から１８の何れか１項に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
グループ画像を視認するための現在の自動化方法は、カメラごとの画像ローカライズ及び前景セグメンテーションの併用効果を考慮に入れていない。その代わり、画像は、通常はスライドショーで１つずつ示される。現在のところ、この効果を達成するために、画像は、オフラインで手動によって処理される。
【０００２】
通常、移動デバイスの屋内のローカライゼーションは、全地球測位システム（ＧＰＳ）タワーロケーション、無線タワーロケーション、複数のアクセスポイントロケーション等の何らかの形態のローカルなインフラストラクチャのセットアップに依拠している。これらのインフラストラクチャの要素は、実施するのが非常に高価になる可能性があり、時に、テーマパーク、博物館、コンベンションセンター、住宅等の多くの屋内環境用に提供するのが不可能である可能性さえある。
【発明の概要】
【０００３】
本明細書において説明されるマテリアルは、添付した図において、限定としてではなく例として示されている。説明を簡単かつ明瞭にするために、図に示した要素は、必ずしも一律の縮尺で描かれているものではない。例えば、幾つかの要素の寸法は、明瞭にするために、他の要素に比べて誇張されている場合がある。さらに、適切と考えられる場合には、対応する要素又は類似の要素を示すのに、参照符号が図の間で繰り返されている。
【図面の簡単な説明】
【０００４】
【図１】一例示のシステムの説明図である。
【図２】一例示のソース画像を示す図である。
【図３】一例示の画像ローカライゼーションプロセスを示すフローチャートである。
【図４】カメラの姿勢座標を示す図である。
【図５Ａ】一例示の画像セグメンテーションプロセスを示すフローチャートである。
【図５Ｂ】一例示の画像セグメンテーションプロセスを示すフローチャートである。
【図５Ｃ】一例示の画像セグメンテーションプロセスを示すフローチャートである。
【図６】一例示のセグメンテーションされたソース画像を示す図である。
【図７】一例示の３Ｄシミュレーションプロセスを示すフローチャートである。
【図８】一例示の３Ｄ環境シミュレーションを示す図である。
【図９】一例示のシステムの説明図である。
【図１０】本開示の少なくとも幾つかの実施態様に従って全て配列された一例示の画像セグメンテーションプロセスを示す図である。
【発明を実施するための形態】
【０００５】
ここでは、同封された図を参照して１つ又は複数の実施形態又は実施態様を説明する。特定の構成及び装置が議論されるが、これは、例示の目的でのみなされていることが理解されるべきである。当業者であれば、この説明の趣旨及び範囲から逸脱することなく他の構成及び装置を用いることができることを認識するであろう。本明細書において説明する技法及び／又は装置は、本明細書において説明するもの以外の他の様々なシステム及びアプリケーションにおいても用いることができることが当業者には明らかであろう。
【０００６】
以下の説明は、例えば、システムオンチップ（ＳｏＣ）アーキテクチャ等のアーキテクチャにおいて顕在化させることができる様々な実施態様を記載しているが、本明細書において説明する技法及び／又は装置の実施態様は、特定のアーキテクチャ及び／又はコンピューティングシステムに制限されるものではなく、同様の目的の任意のアーキテクチャ及び／又はコンピューティングシステムによって実施することができる。例として、例えば複数の集積回路（ＩＣ）チップ及び／又はパッケージを用いる様々なアーキテクチャ、及び／又はセットトップボックス、スマートフォン等の様々なコンピューティングデバイス及び／又は消費家電（ＣＥ）デバイスが、本明細書において説明する技法及び／又は装置を実施することができる。さらに、以下の説明は、ロジックの実施態様、システム構成要素、ロジックの分割／統合の選択肢等のタイプ及び相互関係等の多数の特定の詳細を記載している場合があるが、特許請求される主題は、そのような特定の詳細がなくても実施することができる。それ以外の場合に、例えば、制御構造及び全ソフトウェア命令シーケンス等の幾つかのマテリアルは、本明細書に開示するマテリアルを分かりにくくしないように詳細に示されていない場合がある。
【０００７】
本明細書に開示するマテリアルは、ハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組み合わせで実施することができる。本明細書に開示するマテリアルは、１つ又は複数のプロセッサが読み出して実行することができる機械可読媒体上に記憶された命令として実施することもできる。機械可読媒体は、機械（例えば、コンピューティングデバイス）によって可読な形態で情報を記憶又は伝送するための任意の媒体及び／又はメカニズムを含むことができる。例えば、機械可読媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的形態、光学的形態、音響的形態、又は他の形態の伝播信号（例えば、搬送波、赤外線信号、デジタル信号等）等を含むことができる。
【０００８】
本明細書において「１つの実施態様」、「一実施態様」、「一例示の実施態様」等というとき、これは、説明される実施態様が、特定の特徴、構造、又は特性を含む場合があるが、あらゆる実施態様が、その特定の特徴、構造、又は特性を必ずしも含むとは限らないことを示す。その上、そのようなフレーズは、必ずしも同じ実施態様を指しているとは限らない。さらに、特定の特徴、構造、又は特性が一実施態様に関して説明されているとき、本明細書において明示的に説明されているか否かを問わず、他の実施態様に関してもそのような特徴、構造、又は特性が有効であることが当業者には知られていると考えられる。
【０００９】
図１は、本開示による一例示のシステム１００を示している。様々な実施態様では、システム１００は、１つ又は複数の２次元（２Ｄ）ソース画像が３次元（３Ｄ）環境１０３においてキャプチャされている場合に、これらのソース画像を無線ネットワーク及び／又は有線ネットワーク１０４（例えば、インターネット等）に提供する１つ又は複数のカメラ１０２を備えることができる。様々な実施態様では、カメラ１０２は、デジタル形式の２Ｄソース画像をネットワーク１０４に提供することができる任意のタイプのカメラとすることができる。これらのソース画像は、任意の解像度及び／又はアスペクト比を有することができる。
【００１０】
ソース画像は、ネットワーク１０４を介してビジョンエンジン１０６に提供することができる。このビジョンエンジンでは、ソース画像は、本明細書において説明するカメラローカライゼーションプロセス及び画像セグメンテーションプロセスを受けることができる。ビジョンエンジン１０６は、カメラローカライゼーションプロセス及び画像セグメンテーションプロセスの結果をネットワークデータベース１０８に提供することができ、３Ｄディスプレイエンジン１１０は、本明細書において同様に説明する３Ｄ環境シミュレーションを提供する目的で、データベース１０８からのそれらの結果にアクセスすることができる。様々な実施態様では、ビジョンエンジン１０６は、カメラローカライゼーションプロセス及び画像セグメンテーションプロセスの結果を最初にデータベース１０８に記憶することなく、それらの結果をディスプレイエンジン１１０に提供することができる。さらに、様々な実施態様では、ビジョンエンジン１０６は、ディスプレイエンジン１１０に隣接することができ、カメラローカライゼーションプロセス及び画像セグメンテーションプロセスの結果をネットワーク１０４を用いてディスプレイエンジン１１０に提供することなく、直接そうすることができる。
【００１１】
様々な実施態様では、カメラ１０２によって３Ｄ環境１０３においてキャプチャされたソース画像は、背景部分及び前景部分を含む場合がある。例えば、図２は、３Ｄ環境１０３においてキャプチャされた一例示の２Ｄソース画像２００を示している。画像２００は、前景部分２０２（例えば、人間被写体）及び背景部分２０４（例えば、床、壁、窓等の部屋の部分）を含む。
【００１２】
図３は、本開示の様々な実施態様による一例示の画像ローカライゼーションプロセス３００の流れ図を示している。プロセス３００は、図３のブロック３０４、３０６、３０８、３１４、３１６、及び３２０のうちの１つ又は複数によって示されるような１つ又は複数の動作、機能、又は行為を含むことができ、その結果、ソース画像のカメラ姿勢を決定することができる。非限定的な例として、プロセス３００は、本明細書において、図１の例示のシステム１００を参照して説明される。様々な実施態様では、プロセス３００は、システム１００のビジョンエンジン１０６が行うことができる。プロセス３００は、未知のカメラ姿勢を有するソース画像３０２を受信することができるブロック３０４において開始することができる。例えば、ブロック３０４は、ビジョンエンジン１０６がネットワーク１０４を介してソース画像３０２を受信することを含むことができる。
【００１３】
様々な実施態様では、ブロック３０４は、既知の３Ｄ環境（例えば、環境１０３）においてキャプチャされた例示の画像２００等のソース画像を受信することを含むことができる。既知の３Ｄ環境においてキャプチャされているが、その３Ｄ環境においてソース画像をキャプチャしたカメラの姿勢は分かっていない。よく知られたピンホールカメラモデルによれば、カメラ姿勢は、カメラの（例えば、デカルト（ｘ，ｙ，ｚ）座標における）３Ｄ位置座標等の位置情報と、３Ｄ環境に対するカメラの（例えば、角度値における）ヨー、ピッチ、及びロールを含む姿勢情報又は向き情報とを含む６次元量として表すことができる。例えば、図４は、３Ｄ環境１０３の（Ｘ，Ｙ，Ｚ）座標系内の一例示のカメラロケーション４００に対するカメラ姿勢座標を示している。
【００１４】
３Ｄ環境（例えば、環境１０３）は、複数の２Ｄ平面構造と、それらの対応するターゲット画像とを含む。各ターゲット画像は、３Ｄ背景環境における平面構造の画像を表し、このターゲット画像の画像特徴は、抽出してデータベース１０８に記憶することができる。ブロック３０６において、ソース画像の視覚的特徴を３Ｄ環境の記憶された画像特徴と比較して、最もよく一致するターゲット画像を決定することができる。例えば、ブロック３０６は、スケール不変特徴変換（ＳＩＦＴ）技法（例えば、D. G. Lowe「Object recognition from local scale-invariant features」Proc. of the International Conference on Computer Vision, Corfu (Sept. 1999)参照）等の既知のコンピュータービジョン技法を用いてソース画像から視覚的特徴を抽出することを含むことができる。様々な実施態様では、これらの視覚的特徴は、画像テクスチャを含むことができる。次に、ソース画像から抽出されたこれらの視覚的特徴を、３Ｄ環境のターゲット画像から事前に抽出された画像テクスチャ（例えば、ターゲット画像においてキャプチャされたようなソース画像２００の背景２０４の様々な部分に対応する）等の視覚的特徴と比較して、例えば、データベース１０８に記憶することができる。ブロック３０６の比較の結果、３Ｄ環境の記憶されたターゲット画像の中から最もよく一致するターゲット画像を識別することができる。
【００１５】
ブロック３０８において、ソース画像を最もよく一致するターゲット画像と比較することによって、ホモグラフィー行列Ｈを求めることができる。様々な実施態様では、ホモグラフィー行列Ｈは、ブロック３０６において決定された最もよく一致するターゲット画像に関連付けられた３Ｄ環境における平面構造へのソース画像の射影変換を提供する非特異３×３行列を表す。ブロック３０８では、様々な既知の技法を用いて、ホモグラフィー行列Ｈを求めることができる（例えば、E. Vincent及びR. Laganiere「Detecting planar homographies in an image pair」Proceedings of the 2nd International Symposium on Image and Signal Processing and Analysis (2001)参照）（以下：「Vincent及びLaganiere」）。
【００１６】
ソース画像は、複数の平面を含む場合があるので、ブロック３０８は、３Ｄ環境における平面構造と一致するソース画像内の主要平面を識別することを含むことができる。様々な実施態様では、ブロック３０８は、平面構造とソース画像との間の一致する点を識別することを含むことができる。例えば、ブロック３０８においてホモグラフィー行列Ｈを推定するのに、４つの対応する一致点で十分な場合がある。ブロック３０８の結果、３Ｄ環境の一致した平面構造３１０及びソース画像ホモグラフィー行列３１２を生成することができる。
【００１７】
ブロック３１４において、平面構造について、ホモグラフィー行列Ｈは、３Ｄ点Ｍからその対応する２Ｄ点ｍへの透視投影関係を表している。この関係は、ｍ＝ＨＭによって表すことができる。ここで、Ｈ＝Ｋ［Ｒ｜Ｔ］であり、Ｋは、焦点距離等のカメラの内部パラメーターに依存する３×３カメラ較正行列であり、［Ｒ｜Ｔ］は、３×４カメラ姿勢パラメーターである（ここで、Ｒは３×３回転行列を表し、Ｔは平行移動行列を表す）。Ｈ及びＫは既知であるので、カメラ姿勢は、Ｍ及びｍの少数（ｎ＞６）の既知のマッピング測定値を所与として、最小二乗最小化技法によって推定することができる。測定値｛ｍｉ｝が雑音を有する場合、カメラ姿勢は、再投影誤差の合計、又は、３Ｄ点を投影したものと、それらの測定された２Ｄ座標との間の二乗距離を最小化することによって精緻化することができる。この最小化は、次に、反復的な最適化方式を用いて解くことができる。
【００１８】
ブロック３１６において、回転行列Ｒ及び平行移動行列Ｔを一致した平面構造の３Ｄ座標に適用して、ソース画像カメラ姿勢３１８を生成することができる。プロセス３００は、次に、ブロック３２０において終了することができる。このブロックでは、以下でより詳細に説明するように、後の使用のために、ソース画像カメラ姿勢をシステム１００のデータベース１０８等のネットワークアクセス可能データベースに記憶することができる。ソース画像カメラ姿勢は、以下で更に説明するようにセグメンテーションされたソース画像に関連付けられたメタデータとしてデータベースに記憶することができる。
【００１９】
図３に示すような例示のプロセス３００の実施態様は、示した順序で図示した全てのブロックを行うことを含むことができるが、本開示は、この点に限定されるものではく、様々な例において、プロセス３００の実施態様は、図示した全てのブロックのサブセットのみを行うこと及び／又は示したものとは異なる順序で行うことを含むことができる。
【００２０】
図５Ａ、図５Ｂ、及び図５Ｃは、本開示の様々な実施態様による一例示の画像セグメンテーションプロセス５００の流れ図を示している。プロセス５００は、図５Ａ、図５Ｂ、及び図５Ｃのブロック５０２〜５４８のうちの１つ又は複数によって示されるような１つ又は複数の動作、機能、又は行為を含むことができ、その結果、ソース画像の前景部分をセグメンテーション又は抽出して、セグメンテーションされたソース画像を作成することができる。非限定的な例として、プロセス５００は、本明細書において、図１の例示のシステム１００、図２の例示のソース画像２００、及び図３の例示のプロセス３００を参照して説明される。様々な実施態様では、プロセス５００は、システム１００のビジョンエンジン１０６が行うことができる。
【００２１】
プロセス５００は、複数のターゲット画像（背景画像部分を含む）及び関連付けられたホモグラフィー行列を受信することができるブロック５０２において開始することができる。様々な実施態様では、ソース画像は、複数のターゲット画像からの部分を含む。ブロック５０２において受信された各ターゲット画像について、ブロック５０４において、対応するホモグラフィー行列を適用し、既知の技法（例えば、Vincent及びLaganiere参照）を用いて、投影ターゲット画像及びバイナリ投影行列を生成することができる。ブロック５０４は、ホモグラフィー行列を用いて、結果の投影ターゲット画像がソース画像と実質的に位置合わせされるように、ターゲット画像をソース画像の画像平面上に投影することを含むことができる。様々な実施態様では、ブロック５０４の結果、投影ターゲット画像は、ソース画像の幾何学的性質と類似の幾何学的性質を有することができる。例えば、投影ターゲット画像に関連付けられたカメラ姿勢は、プロセス３００によって生成されたカメラ姿勢（ソース画像に関連付けられている）と類似することができる。様々な実施態様では、ターゲット画像及びソース画像は、同じ解像度及びアスペクト比を有することができる。ターゲット画像及びソース画像が異なる解像度及び／又はアスペクト比を有する場合がある実施態様では、投影ターゲット画像は、ソース画像と同じ解像度及びアスペクト比を有する。
【００２２】
上述するとともに図２の例に示したように、ソース画像２００は、前景部分２０２及び背景部分２０４を含む。ブロック５０２のターゲット画像は、ソース画像と同じ３Ｄ環境１０３においてキャプチャされている場合があるが、ターゲット画像は、ソース画像とは異なる視点（例えば、位置及び向き）から得られている場合があり、ソース画像内に見られる前景部分２０２を含まずに、背景部分２０４の少なくとも一部を含む場合がある。様々な実施態様では、ブロック５０２において受信されたターゲット画像は、以前にキャプチャされて、関連付けられたホモグラフィー行列とともにシステム１００のデータベース１０８等のデータベースに記憶されている場合がある。
【００２３】
ブロック５０６において、ソース画像（前景部分及び背景部分を含む）を受信することができる。ブロック５０８において、このソース画像と、ブロック５０４からの結果の投影ターゲット画像とをローパスフィルタリングして、フィルタリングされたソース画像と、フィルタリングされた投影ターゲット画像とを生成することができる。ブロック５１０において、各フィルタリングされた投影ターゲット画像に関連付けられた投影マスク内において、フィルタリングされたソース画像と、フィルタリングされた投影ターゲット画像のそれぞれとの間の強度差を求めて、対応する差分マップを生成することができる。これらの差分マップのそれぞれは、次に、閾値関数に従って、投影マスク内に粗くセグメンテーションされた前景マスクを生成することができる（ブロック５１２）。例えば、最大画像強度の５０％に対応する閾値関数（例えば、８ビットの画像強度の場合には１２８の閾値の値）をブロック５１２において適用することができる。ブロック５１４において、粗くセグメンテーションされた前景マスクを投影マスクから取り去って、各フィルタリングされた投影ターゲット画像に関連付けられた、調整された投影マスクを生成することができる。
【００２４】
ブロック５０８からの結果のフィルタリングされた投影ターゲット画像及びフィルタリングされたソース画像は、幾何学的に類似している場合があるが、カメラ特性、設定、光条件等の差に起因して、それらの間には実質的な色差が存在する場合がある。したがって、ブロック５１６において、各調整された投影マスク内において、フィルタリングされた投影ターゲット画像のそれぞれとフィルタリングされたソース画像との間のカラーマッピングを推定することができる。
【００２５】
次に図５Ｂを参照すると、プロセス５００は、ブロック５１８において、図５Ａのブロック５１６からの結果の推定されたカラーマップを、対応するフィルタリングされた投影ターゲット画像に適用して、色調整された投影ターゲット画像を生成することへと処理を進める。ブロック５１８からの結果の色調整された投影ターゲット画像は、次に、ブロック５０８からの結果のフィルタリングされたソース画像と実質的に同様の色特性を有することができる。
【００２６】
ブロック５２０において、各色調整された投影ターゲット画像とフィルタリングされたソース画像との間の強度差を求めて、差分マップを生成することができ、これらの差分マップを混合して混合差分マップを生成することができる。非限定的な例において、ブロック５２０の差分マップは、色調整された投影ターゲット画像とフィルタリングされたソース画像との間の強度の絶対差として求めることができる。そのような実施態様では、ブロック５２０からの結果の混合差分マップは、差分画像に対応することができる。様々な他の実施態様では、相互相関、相互情報量、二乗強度差の総和、画像均一比（ratio image uniformity）等の種々の画像類似度メトリックを用いることができる。さらに、様々な実施態様では、ブロック５２０において、全てのカラーチャネルを比較して、前景色と背景色との間のより良好な区別を提供することができる。
【００２７】
ブロック５２２において、低い強度閾値及び高い強度閾値（すなわち、二重閾値処理機能）を混合差分マップに適用することができ、低い閾値の結果を高い閾値の結果によってフィルタリングして、バイナリ前景マスクを生成することができる。様々な実施態様では、ブロック５２２の二重閾値処理は、既知の技法（例えば、W. Sun及びS. P. Spackman「Multi-object segmentation by stereo mismatch」Machine Vision and Applications, Vol. 7 Issue 2 (October 2009)参照）を用いて行うことができる。
【００２８】
プロセス５００は、ブロック５２４において継続することができ、このブロックでは、バイナリ前景マスクを取り囲むエリアにおいて、フィルタリングされたソース画像及び対応する色調整された投影ターゲット画像の統計的解析を行うことによって、ブロック５２２からの結果のバイナリ前景マスクを精緻化することができる。ブロック５２４の精緻化は、各投影マスク内の各バイナリ前景マスクに対して別々に適用することができる。
【００２９】
様々な実施態様では、ブロック５２４において行われた精緻化は、前景領域が局在化して十分に接続されている傾向があり、既知の前景ピクセルの近傍のピクセルも同様に前景ピクセルである可能性が高いという直観を用いる。ブロック５２４における精緻化は、前景画像及びターゲット画像の双方において既知の前景ピクセルを取り囲むローカルな領域の統計を解析することを含むことができる。ローカルな領域内の背景ピクセルは、それらの統計が前景画像とターゲット画像との間で大きく異なるとき、前景マスクに追加することができる。例えば、ブロック５２４の精緻化手順は、前景とラベル付けされた各ピクセルにおけるローカルなウィンドウ（例えば、５×５ピクセル）を考慮することができる。このウィンドウ内の各カラーチャネルからのピクセルは、平均（μ）及び標準偏差（σ）を有する正規分布を用いてモデル化することができる。これらのパラメーターは、最尤推定等の標準的な技法を用いて前景画像及びターゲット画像から推定することができる。次に、対応する前景ピクセル及び背景ピクセルがともに、それぞれこれらの前景分布及び背景分布からのサンプルであるという前提の下で、このローカルなウィンドウ内の各ピクセルについて、２つの分散度（measure of dispersion）を定義することができる。前景の統計及び背景の統計が類似しているとき、前景分布又は背景分布のいずれかを前提として計算される分散度は小さいと予想され、この条件は、背景領域に属するピクセルに当てはまると予想することができる。双方の分散度は、前景領域に属するピクセルの場合、大きいと予想される。
【００３０】
したがって、ブロック５２４の結果として、それぞれ前景分布及び背景分布を前提として計算された双方の分散度が或る特定の閾値を超えているとき、ピクセルを前景マスクに追加することができる。分散度は、カラーチャネルにわたる前景ピクセルと背景ピクセルとの間の値の範囲の最大確率であると定義することができる。例えば、それぞれ前景及び背景からのサンプルピクセル［ｘＲ，ｘＧ，ｘＢ］及び［ｙＲ，ｙＧ，ｙＢ］に基づく分散（前景分布を前提とする）は、前景分布が全てのカラーチャネルにわたる前景ピクセルと背景ピクセルとの間の値の範囲を占める最大確率ｍＸ＝ｍａｘｉ∈｛Ｒ，Ｇ，Ｂ｝ａｂｓ（ＣＤＦＸｉ（ｘｉ）−ＣＤＦＸｉ（ｙｉ））として定義することができる。ここで、ＣＤＦＸｉは、それぞれカラーチャネルｉにおける前景分布の累積分布関数を示す。背景分布を前提とした同様の尺度ｍＹを定義することができる。ｍＸ及びｍＹの双方が或る特定の閾値を超えているとき、そのピクセルは、前景としてラベル付けすることができる。様々な実施態様では、ｍＸ及びｍＹの値は、０〜１の範囲とすることができ、対応する閾値の値は、約０．５とすることができる。
【００３１】
ブロック５２４における精緻化は、反復数の最大限界に達するまで又は反復当たり追加されるピクセル数の最大限界に達するまで、前景マスクに新しく追加されたピクセルに対して繰り返すことができる。さらに、ブロック５２４は、種々の色空間において実行することもできる。例えば、ＹＣｂＣｒ色空間において精緻化を実行することは、ソース画像とターゲット画像との間に大きな明暗差が存在する場合に、分類誤差を最小化するのに有利な場合がある。
【００３２】
ブロック５２６において、ブロック５２４からの結果の精緻化されたバイナリ前景マスクをマージして、バイナリ前景マスクを生成することができる。例えば、ブロック５２４において異なる平面から取得された異なる精緻化されたバイナリ前景マスクを、ブロック５２６において論理的ＯＲ演算を用いて組み合わせることができる。ブロック５２８において、フィルタリングされたソース画像から床部分を取り去って、床前景マスクを生成することができる。様々な実施態様では、床を取り去ることは、ＹＣｂＣｒ等の他の色空間において実行することができ、取り去ることは、ソース画像とターゲット画像との間の明暗の変化に対するロバスト性を改善するために、Ｃｂ成分空間及びＣｒ成分空間においてのみ実行される。ブロック５３０において、床前景マスクをブロック５２６からのバイナリ前景マスクとマージして、単一のバイナリ前景マスクを生成することができる。次に、ブロック５３２において、ブロック５３０からの結果の前景マスクをメディアンフィルタリングして、異なる平面構造を処理及びマージすることによって生み出されたアーティファクトを除去することができる。
【００３３】
次に図５Ｃを参照すると、プロセス５００は、ブロック５３６において継続することができる。このブロックでは、カスケード分類器及びソース画像の強度チャネルを用いて、バイナリ前景マスクにおいて方形の顔領域を検出することができる。様々な実施態様では、ブロック５３６において行われる検出のパラメーターは、誤検出確率を最小にするように調節することができる。ブロック５３８において、検出された顔領域内のピクセルを初期化することができ、その結果、「おそらく前景（probably foreground）」又は「おそらく背景（probably background）」のいずれかの初期ラベルを有する全ての前景ピクセル及び背景ピクセルの割り当てが得られる。ブロック５４０において、顔領域の内部サブセットは、「前景」として初期化することができ、外部サブセットは、「背景」として初期化することができる。
【００３４】
プロセス５００は、次に、ブロック５４２において継続することができる。このブロックにおいて、色に基づくセグメンテーションを実行して、ブロック５４０において行われた顔領域のラベル割り当てを精緻化するとともに、バイナリ顔マスクを生成することができる。様々な実施態様では、グラフカット技法等の既知の技法を用いてブロック５４２を行って、顔マスクを生成することができる。
【００３５】
プロセス５００は、次に、ブロック５４４において継続することができる。このブロックにおいて、ブロック５４２からの顔マスク及びブロック５３２からのバイナリ前景マスクをマージして、単一のバイナリ前景マスクを生成することができる。様々な実施態様では、セグメンテーションされた画像がターゲット画像内のあらゆる人の顔を含むことを確保するために、マスクは、論理的「ＯＲ」演算を用いてマージすることができる。
【００３６】
プロセス５００は、ブロック５４６において継続することができる。このブロックでは、連結成分解析（例えば、Azriel Rosenfeld及びJohn L. Pfaltz「Sequential Operations in Digital Picture Processing」J. ACM, vol. 13, no. 4, pp. 471-494, October 1966参照）等の既知の技法を、ブロック５４４からのバイナリ前景マスクに適用して、ソース画像内の構成要素を取得することができる。様々な実施態様では、ブロック５４６は、小さな構成要素をフィルタリング及び除去すること、及び／又は全ての構成要素を埋めて、孔を除去することを含むことができる。さらに、ブロック５４６は、人体解剖学のモデル及び最も大きな構成要素（人体の胴である可能性が高い）等に対する種々の構成要素の相対配置に基づいて構成要素を除去することも含むことができる。プロセス５００は、次に、ブロック５４８において終了することができる。このブロックにおいて、最終的なバイナリ前景マスクをプロセス５００の出力として提供することができる。例えば、図６は、プロセス５００からの結果の最終的な前景マスクを用いて生成された一例示のセグメンテーションされたソース画像６００を示している。プロセス５００からの結果のセグメンテーションされたソース画像は、図１のデータベース１０８等のネットワークアクセス可能データベースに記憶することができ、そのデータベース内において、プロセス３００からの結果のカメラ姿勢に関連付けることができる。
【００３７】
図７は、本開示の様々な実施態様による一例示の３Ｄシミュレーションプロセス７００の流れ図を示している。プロセス７００は、図７のブロック７０２、７０４、７０６、７０８、及び７１０のうちの１つ又は複数によって示されるような１つ又は複数の動作、機能、又は行為を含むことができ、その結果、プロセス３００及び５００を用いて複数の２Ｄ画像からセグメンテーションされた共通の背景部分及び前景部分を組み込んだ環境の３Ｄシミュレーションを得ることができる。
【００３８】
プロセス７００は、前景部分及び背景部分を含むソース画像を受信することから開始することができ（ブロック７０２）、その後、ソース画像を３Ｄ環境の画像特徴と比較することによってカメラ姿勢を求めることができる（ブロック７０４）。ブロック７０２及び７０４は、本明細書においてプロセス３００に関して説明した方法で行うことができる。プロセス７００は、カメラ姿勢を用いて背景部分から前景部分を抽出することによって、セグメンテーションされたソース画像を生成すること（ブロック７０６）に処理を進めることができ、その後、セグメンテーションされたソース画像及びカメラ姿勢をネットワークデータベースに記憶することができる（ブロック７０８）。ブロック７０６及び７０８は、本明細書においてプロセス５００に関して説明した方法で行うことができる。
【００３９】
プロセス７００は、ブロック７１０において終了することができ、セグメンテーションされたソース画像及び関連付けられたカメラ姿勢を用いて、仮想３Ｄ環境における前景部分のシミュレーションが提供される。例えば、システム１００のディスプレイエンジン１１０は、セグメンテーションされたソース画像及び関連付けられたカメラ姿勢のメタデータをデータベース１０８から取り出すことができる。ディスプレイエンジン１１０は、次に、背景２０４を含む既知の３Ｄ環境１０３の３Ｄモデル又はシミュレーションを生成することができる。セグメンテーションされたソース画像の前景部分は、次に、それぞれのカメラ姿勢のメタデータに応じて、それらのそれぞれのロケーションにレンダリングすることができる。その結果、リアルタイムで協同的にキャプチャされた人々及び物体等の前景部分又は要素を含む３Ｄフォトブラウザ等のナビゲーション可能な３Ｄ環境を生成することができる。例えば、図８は、環境１０３の一例示の３Ｄシミュレーション８００を示している。この環境は、セグメンテーションされたソース画像６００の前景部分２０２を含むとともに、本明細書において説明したプロセスを同様に受けた追加のソース画像から抽出された前景部分８０２及び８０４も含む。
【００４０】
図５Ａ−Ｃ及び図７に示すような例示のプロセス５００及び７００の実施態様は、示した順序で図示した全てのブロックを行うことを含むことができるが、本開示は、この点に限定されるものではなく、様々な例では、プロセス５００及び７００の実施態様は、図示した全てのブロックのサブセットのみに及び／又は示したものとは異なる順序で行うことを含むことができる。
【００４１】
加えて、図３、図５Ａ−Ｃ、及び図７のプロセス及び／又はブロックのうちの任意の１つ又は複数は、１つ又は複数のコンピュータープログラム製品によって提供される命令に応答して行うことができる。そのようなプログラム製品は、例えば、１つ又は複数のプロセッサコアによって実行されると、本明細書において説明した機能を提供することができる命令を提供する信号担持媒体を含むことができる。コンピュータープログラム製品は、任意の形態のコンピューター可読媒体において提供することができる。したがって、例えば、１つ又は複数のプロセッサコアを含むプロセッサは、コンピューター可読媒体によってプロセッサに搬送される命令に応答して、図３、図５Ａ−Ｃ、及び図７に示すブロックのうちの１つ又は複数を行うことができる。
【００４２】
図９は、本開示による一例示のシステム９００を示している。システム９００は、本明細書において議論した様々な機能の一部又は全てを実行するのに用いることができ、本開示の様々な実施態様による、本明細書において説明したプロセスを行うことができる任意のデバイス又はデバイスの集合体を備えることができる。例えば、システム９００は、デスクトップ、移動コンピューター又はタブレットコンピューター、スマートフォン、セットトップボックス等のコンピューティングプラットフォーム又はデバイスの選択された構成要素を含むことができるが、本開示は、この点に限定されるものではない。幾つかの実施態様では、システム９００は、ＣＥデバイス用のＩｎｔｅｌ（登録商標）アーキテクチャ（ＩＡ）に基づくコンピューティングプラットフォーム又はＳｏＣとすることができる。本明細書において説明した実施態様は、本開示の範囲から逸脱することなく、代替の処理システムとともに用いることができることが当業者によって容易に認識されるであろう。
【００４３】
システム９００は、１つ又は複数のプロセッサコア９０４を有するプロセッサ９０２を備える。プロセッサコア９０４は、少なくとも部分的にソフトウェアを実行し及び／又はデータ信号を処理することができる任意のタイプのプロセッサロジックとすることができる。様々な例では、プロセッサコア９０４は、ＣＩＳＣプロセッサコア、ＲＩＳＣマイクロプロセッサコア、ＶＬＩＷマイクロプロセッサコア、及び／又は命令セットの任意の組み合わせを実装する任意の数のプロセッサコア、又はデジタル信号プロセッサ若しくはマイクロコントローラー等の他の任意のプロセッサデバイスを含むことができる。
【００４４】
プロセッサ９０２は、例えば、ディスプレイプロセッサ９０８及び／又はグラフィックスプロセッサ９１０によって受信された命令を制御信号及び／又はマイクロコードエントリー点にデコードするのに用いることができるデコーダー９０６も備える。コア（複数の場合もある）９０４とは別個の構成要素としてシステム９００に示されているが、当業者であれば、コア（複数の場合もある）９０４のうちの１つ又は複数が、デコーダー９０６、ディスプレイプロセッサ９０８、及び／又はグラフィックスプロセッサ９１０を実施することができることを認識することができる。幾つかの実施態様では、プロセッサ９０２は、図３、図５Ａ〜図５Ｃ、及び図７に関して説明した例示のプロセスを含む、本明細書において説明したプロセスのうちの任意のものを行うように構成することができる。さらに、制御信号及び／又はマイクロコードエントリー点に応答して、デコーダー９０６、ディスプレイプロセッサ９０８、及び／又はグラフィックスプロセッサ９１０は、対応する動作を実行することができる。
【００４５】
処理コア（複数の場合もある）９０４、デコーダー９０６、ディスプレイプロセッサ９０８、及び／又はグラフィックスプロセッサ９１０は、システム相互接続９１６を通じて互いに及び／又は様々な他のシステムデバイスと通信可能に及び／又は動作可能に結合することができる。これらの様々な他のシステムデバイスは、例えば、メモリコントローラー９１４、オーディオコントローラー９１８、及び／又は周辺装置９２０を含むことができるが、これらに限定されるものではない。周辺装置９２０は、例えば、統一シリアルバス（ＵＳＢ：unified serial bus）ホストポート、周辺機器相互接続（ＰＣＩ）エクスプレスポート、シリアル周辺インターフェース（ＳＰＩ）インターフェース、拡張バス、及び／又は他の周辺装置を含むことができる。図９は、相互接続９１６によってデコーダー９０６並びにプロセッサ９０８及び９１０に結合されたものとしてメモリコントローラー９１４を示しているが、様々な実施態様では、メモリコントローラー９１４は、デコーダー９０６、ディスプレイプロセッサ９０８、及び／又はグラフィックスプロセッサ９１０に直接結合することができる。
【００４６】
幾つかの実施態様では、システム９００は、図９に図示していない様々なＩ／ＯデバイスとＩ／Ｏバス（同様に図示せず）を介して通信することができる。そのようなＩ／Ｏデバイスは、例えば、ユニバーサル非同期受信機／送信機（ＵＡＲＴ）デバイス、ＵＳＢデバイス、Ｉ／Ｏ拡張インターフェース、又は他のＩ／Ｏデバイスを含むことができるが、これらに限定されるものではない。様々な実施態様では、システム９００は、移動通信、ネットワーク通信、及び／又は無線通信を行うためのシステムの少なくとも一部分を表すことができる。
【００４７】
システム９００は、メモリ９１２を更に備えることができる。メモリ９１２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、又は他のメモリデバイス等の１つ又は複数のディスクリートメモリ構成要素とすることができる。図９は、プロセッサ９０２の外部のものとしてメモリ９１２を示しているが、様々な実施態様では、メモリ９１２は、プロセッサ９０２の内部とすることができる。メモリ９１２は、図３、図５Ａ〜図５Ｃ、及び図７に関して説明した例示のプロセスを含む、本明細書において説明したプロセスのうちの任意のものを行う際に、プロセッサ９０２が実行することができるデータ信号によって表わされる命令及び／又はデータを記憶することができる。幾つかの実施態様では、メモリ９１２は、システムメモリ部分及びディスプレイメモリ部分を含むことができる。
【００４８】
図１０は、本開示の様々な実施態様による一例示の画像セグメンテーションプロセス１０００の流れ図を示している。プロセス１０００は、図１０のブロック１００２〜１０２２のうちの１つ又は複数によって示されるような１つ又は複数の動作、機能、又は行為を含むことができる。プロセス１０００の様々なブロックは、図５Ａ、図５Ｂ、及び図５Ｃのプロセス５００に関して本明細書において説明される。
【００４９】
プロセス１０００は、プロセス５００のブロック５０２及び５０４に関して上述したようにホモグラフィー行列をターゲット画像に適用することができるブロック１００２において開始することができる。ブロック１００４において、プロセス５００のブロック５０６及び５０８に関して上述したように、ソース画像及び投影ターゲット画像のローパスフィルタリングを実行することができる。ブロック１００６において、プロセス５００のブロック５１０、５１２、及び５１４に関して上述したように、投影マスクを調整することができる。ブロック１００８において、プロセス５００のブロック５１６及び５１８に関して上述したように、カラーマッピングを実行することができる。ブロック１０１０において、プロセス５００のブロック５２０に関して上述したように、画像差分を実行することができる。
【００５０】
プロセス１０００は、ブロック１０１２において継続することができる。このブロックにおいて、プロセス５００のブロック５２２に関して上述したように、二重閾値処理を実行することができる。その後、プロセス５００のブロック５２４及び５２６に関して上述したように、色統計解析（ブロック１０１４）を実行することができる。ブロック１０１６において、プロセス５００ブロック５２８及び５３０に関して上述したように、床の取り去りを行うことができる。ブロック１０１８において、プロセス５００のブロック５３２に関して上述したように、境界アーティファクトを除去することができる。
【００５１】
プロセス１０００は、ブロック１０２０において継続することができる。このブロックにおいて、プロセス５００のブロック５３６、５３８、５４０、５４２、及び５４４に関して上述したように、顔領域セグメンテーションの精緻化を実行することができる。プロセス１０００は、プロセス５００のブロック５４６に関して上述したように、連結成分解析を実行することができるブロック１０２２において終了することができる。
【００５２】
上述したシステム、及び本明細書において説明したようなそれらのシステムによって実行される処理は、ハードウェア、ファームウェア、若しくはソフトウェア、又はそれらの任意の組み合わせで実施することができる。加えて、本明細書において開示した任意の１つ又は複数の特徴は、ディスクリートロジック及び集積回路ロジック、特定用途向け集積回路（ＡＳＩＣ）ロジック、並びにマイクロコントローラーを含むハードウェア、ソフトウェア、ファームウェア、及びそれらの組み合わせで実施することができ、特定領域集積回路パッケージの一部、又は集積回路パッケージの組み合わせとして実施することができる。ソフトウェアという用語は、本明細書において用いられるとき、本明細書において開示した１つ若しくは複数の特徴及び／又は特徴の組み合わせをコンピューターシステムに実行させるコンピュータープログラムロジックが記憶されているコンピューター可読媒体を含むコンピュータープログラム製品を指す。
【００５３】
本明細書において記載された或る特定の特徴を様々な実施態様に関して説明してきたが、この説明は、限定的な意味に解釈されることを意図するものではない。したがって、本開示が関係する技術分野の当業［請者に明らかである、本明細書において説明した実施態様及び他の実施態様の様々な変更は、本開示の趣旨及び範囲内にあるとみなされる。本発明の例を下記の各項目として示す。
［項目１］
コンピューター実施方法であって、
ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、３次元環境（３Ｄ環境）の画像コンテンツを含むことと、
前記ソース画像を前記３Ｄ環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、
前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、
前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、
を含む、コンピューター実施方法。
［項目２］
前記カメラ姿勢を求めることは、
前記ソース画像から少なくとも１つのソース画像の視覚的特徴を抽出することと、
前記少なくとも１つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、
前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記３Ｄ環境における平面構造上に投影することであって、前記平面構造は、前記３Ｄ環境における３Ｄ座標を有することと、
を含む、項目１に記載の方法。
［項目３］
前記ソース画像を前記平面構造上に投影することは、
ホモグラフィー行列を求めることと、
前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、
前記回転行列及び前記平行移動行列を前記平面構造の前記３Ｄ座標に適用することと、
を含む、項目２に記載の方法。
［項目４］
前記前景部分をセグメンテーションすることは、
各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、
各投影ターゲット画像を前記ソース画像に色調整することと、
前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、
前記複数の差分マップをマージすることであって、混合差分マップを生成することと、
を含む、項目１に記載の方法。
［項目５］
前記混合差分マップに二重閾値処理を適用することであって、複数の第１のバイナリ前景マスクを生成することと、
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第１のバイナリ前景マスクを精緻化することと、
を更に含む、項目４に記載の方法。
［項目６］
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第１のバイナリ前景マスクを精緻化することは、
少なくとも１つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、
前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも２つの分散量度を指定することと、
双方の分散量度が指定された閾値よりも大きいとき、各第１の前景マスクにピクセルを追加することと、
を含む、項目５に記載の方法。
［項目７］
フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、
前記複数の第１の精緻化された前景マスク及び前記床マスクを混合することであって、第２のバイナリ前景マスクを生成することと、
前記第２のバイナリ前景マスクにメディアンフィルターを適用することと、
を更に含む、項目５に記載の方法。
［項目８］
前記第２のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、
前記顔マスクを前記第２のバイナリ前景マスクと混合することであって、第３のバイナリ前景マスクを生成することと、
前記第３のバイナリ前景マスクに連結成分解析を適用することと、
を更に含む、項目７に記載の方法。
［項目９］
各投影ターゲット画像を前記ソース画像に色調整することは、
各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、
前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、
前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、
前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、
元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、
を含む、項目４に記載の方法。
［項目１０］
前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記３Ｄ環境における前記前景部分のシミュレーションを提供すること、
を更に含む、項目１に記載の方法。
［項目１１］
システムであって、
プロセッサと、該プロセッサに結合されたメモリとを備え、該メモリ内の命令は、
ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、３次元環境（３Ｄ環境）の画像コンテンツを含むことと、
前記ソース画像を前記３Ｄ環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、
前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、
前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、
を行うように前記プロセッサを構成する、システム。
［項目１２］
前記カメラ姿勢を求めることを行うように前記プロセッサを構成する命令は、
前記ソース画像から少なくとも１つのソース画像の視覚的特徴を抽出することと、
前記少なくとも１つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、
前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記３Ｄ環境における平面構造上に投影することであって、前記平面構造は、前記３Ｄ環境における３Ｄ座標を有することと、
を行うように前記プロセッサを構成する命令を含む、項目１１に記載のシステム。
［項目１３］
前記ソース画像を前記平面構造上に投影することを行うように前記プロセッサを構成する命令は、
ホモグラフィー行列を求めることと、
前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、
前記回転行列及び前記平行移動行列を前記平面構造の前記３Ｄ座標に適用することと、
を行うように前記プロセッサを構成する命令を含む、項目１２に記載のシステム。
［項目１４］
前記前景部分をセグメンテーションすることを行うように前記プロセッサを構成する命令は、
各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、
各投影ターゲット画像を前記ソース画像に色調整することと、
前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、
前記複数の差分マップをマージすることであって、混合差分マップを生成することと、
を行うように前記プロセッサを構成する命令を含む、項目１１に記載のシステム。
［項目１５］
前記混合差分マップに二重閾値処理を適用することであって、複数の第１のバイナリ前景マスクを生成することと、
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第１のバイナリ前景マスクを精緻化することと、
を行うように前記プロセッサを構成する命令を更に含む、項目１４に記載のシステム。
［項目１６］
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第１のバイナリ前景マスクを精緻化することを行うように前記プロセッサを構成する命令は、
少なくとも１つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、
前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも２つの分散量度を指定することと、
双方の分散量度が指定された閾値よりも大きいとき、各第１の前景マスクにピクセルを追加することと、
を行うように前記プロセッサを構成する命令を含む、項目１５に記載のシステム。
［項目１７］
フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、
前記複数の第１の精緻化された前景マスク及び前記床マスクを混合することであって、第２のバイナリ前景マスクを生成することと、
前記第２のバイナリ前景マスクにメディアンフィルターを適用することと、
を行うように前記プロセッサを構成する命令を更に含む項目１５に記載のシステム。
［項目１８］
前記第２のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、
前記顔マスクを前記第２のバイナリ前景マスクと混合することであって、第３のバイナリ前景マスクを生成することと、
前記第３のバイナリ前景マスクに連結成分解析を適用することと、
を行うように前記プロセッサを構成する命令を更に含む、項目１７に記載のシステム。
［項目１９］
各投影ターゲット画像を前記ソース画像に色調整することを行うように前記プロセッサを構成する命令は、
各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、
前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、
前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、
前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、
元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、
を行うように前記プロセッサを構成する命令を含む、項目１４に記載のシステム。
［項目２０］
前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記３Ｄ環境における前記前景部分のシミュレーションを提供すること、
を行うように前記プロセッサを構成する命令を更に含む、項目１１に記載のシステム。
［項目２１］
命令を記憶しているコンピュータープログラム製品を含む物品であって、前記命令は実行されると、結果として
ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、３次元環境（３Ｄ環境）の画像コンテンツを含むことと、
前記ソース画像を前記３Ｄ環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、
前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、
前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、
が行われる、コンピュータープログラム製品を含む物品。
［項目２２］
結果として前記カメラ姿勢を求めることが行われる前記命令は、実行されると、結果として、
前記ソース画像から少なくとも１つのソース画像の視覚的特徴を抽出することと、
前記少なくとも１つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、
前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記３Ｄ環境における平面構造上に投影することであって、前記平面構造は、前記３Ｄ環境における３Ｄ座標を有することと、
が行われる命令を含む、項目２１に記載の物品。
［項目２３］
結果として前記ソース画像を前記平面構造上に投影することが行われる前記命令は、実行されると、結果として、
ホモグラフィー行列を求めることと、
前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、
前記回転行列及び前記平行移動行列を前記平面構造の前記３Ｄ座標に適用することと、
が行われる命令を含む、項目２２に記載の物品。
［項目２４］
結果として前記前景部分をセグメンテーションすることが行われる命令は、実行されると、結果として、
各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、
各投影ターゲット画像を前記ソース画像に色調整することと、
前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、
前記複数の差分マップをマージすることであって、混合差分マップを生成することと、
が行われる命令を含む、項目２１に記載の物品。
［項目２５］
実行されると、結果として、
前記混合差分マップに二重閾値処理を適用することであって、複数の第１のバイナリ前景マスクを生成することと、
前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第１のバイナリ前景マスクを精緻化することと、
が行われる命令を更に含む、項目２４に記載の物品。
［項目２６］
結果として、前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第１のバイナリ前景マスクを精緻化することが行われる前記命令は、実行されると、結果として、
少なくとも１つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、
前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも２つの分散量度を指定することと、
双方の分散量度が指定された閾値よりも大きいとき、各第１の前景マスクにピクセルを追加することと、
が行われる命令を含む、項目２５に記載の物品。
［項目２７］
実行されると、結果として、
フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、
前記複数の第１の精緻化された前景マスク及び前記床マスクを混合することであって、第２のバイナリ前景マスクを生成することと、
前記第２のバイナリ前景マスクにメディアンフィルターを適用することと、
が行われる命令を更に含む、項目２５に記載の物品。
［項目２８］
実行されると、結果として、
前記第２のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、
前記顔マスクを前記第２のバイナリ前景マスクと混合することであって、第３のバイナリ前景マスクを生成することと、
前記第３のバイナリ前景マスクに連結成分解析を適用することと、
が行われる命令を更に含む、項目２７に記載の物品。
［項目２９］
結果として、各投影ターゲット画像を前記ソース画像に色調整することが行われる前記命令は、実行されると、結果として、
各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、
前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、
前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、
前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、
元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、
が行われる命令を含む、項目２４に記載の物品。
［項目３０］
実行されると、結果として、
前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記３Ｄ環境における前記前景部分のシミュレーションを提供すること、
が行われる命令を更に含む、項目２１に記載の物品。
【図１】
0005822322.tif 000002
【図２】
0005822322.tif 000003
【図３】
0005822322.tif 000004
【図４】
0005822322.tif 000005
【図５Ａ】
0005822322.tif 000006
【図５Ｂ】
0005822322.tif 000007
【図５Ｃ】
0005822322.tif 000008
【図６】
0005822322.tif 000009
【図７】
0005822322.tif 000010
【図８】
0005822322.tif 000011
【図９】
0005822322.tif 000012
【図１０】
0005822322.tif 000013