"コンピューター実施方法であって、ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、3次元環境3D環境の画像コンテンツを含むことと、前記ソース画像を前記3D環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、を含む、コンピューター実施方法。前記カメラ姿勢を求めることは、前記ソース画像から少なくとも1つのソース画像の視覚的特徴を抽出することと、前記少なくとも1つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記3D環境における平面構造上に投影することであって、前記平面構造は、前記3D環境における3D座標を有することと、を含む、請求項1に記載の方法。前記ソース画像を前記平面構造上に投影することは、ホモグラフィー行列を求めることと、前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、前記回転行列及び前記平行移動行列を前記平面構造の前記3D座標に適用することと、を含む、請求項2に記載の方法。前記前景部分をセグメンテーションすることは、各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、各投影ターゲット画像を前記ソース画像に色調整することと、前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、前記複数の差分マップをマージすることであって、混合差分マップを生成することと、を含む、請求項1に記載の方法。前記混合差分マップに二重閾値処理を適用することであって、複数の第1のバイナリ前景マスクを生成することと、前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第1のバイナリ前景マスクを精緻化することと、を更に含む、請求項4に記載の方法。前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第1のバイナリ前景マスクを精緻化することは、少なくとも1つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも2つの分散量度を指定することと、双方の分散量度が指定された閾値よりも大きいとき、各第1の前景マスクにピクセルを追加することと、を含む、請求項5に記載の方法。フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、前記複数の第1の精緻化された前景マスク及び前記床マスクを混合することであって、第2のバイナリ前景マスクを生成することと、前記第2のバイナリ前景マスクにメディアンフィルターを適用することと、を更に含む、請求項5に記載の方法。前記第2のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、前記顔マスクを前記第2のバイナリ前景マスクと混合することであって、第3のバイナリ前景マスクを生成することと、前記第3のバイナリ前景マスクに連結成分解析を適用することと、を更に含む、請求項7に記載の方法。各投影ターゲット画像を前記ソース画像に色調整することは、各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、を含む、請求項4に記載の方法。前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記3D環境における前記前景部分のシミュレーションを提供すること、を更に含む、請求項1に記載の方法。システムであって、プロセッサと、該プロセッサに結合されたメモリとを備え、該メモリ内の命令は、ソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、3次元環境3D環境の画像コンテンツを含むことと、前記ソース画像を前記3D環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、を行うように前記プロセッサを構成する、システム。前記カメラ姿勢を求めることを行うように前記プロセッサを構成する命令は、前記ソース画像から少なくとも1つのソース画像の視覚的特徴を抽出することと、前記少なくとも1つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記3D環境における平面構造上に投影することであって、前記平面構造は、前記3D環境における3D座標を有することと、を行うように前記プロセッサを構成する命令を含む、請求項11に記載のシステム。前記ソース画像を前記平面構造上に投影することを行うように前記プロセッサを構成する命令は、ホモグラフィー行列を求めることと、前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、前記回転行列及び前記平行移動行列を前記平面構造の前記3D座標に適用することと、を行うように前記プロセッサを構成する命令を含む、請求項12に記載のシステム。前記前景部分をセグメンテーションすることを行うように前記プロセッサを構成する命令は、各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、各投影ターゲット画像を前記ソース画像に色調整することと、前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、前記複数の差分マップをマージすることであって、混合差分マップを生成することと、を行うように前記プロセッサを構成する命令を含む、請求項11に記載のシステム。前記混合差分マップに二重閾値処理を適用することであって、複数の第1のバイナリ前景マスクを生成することと、前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第1のバイナリ前景マスクを精緻化することと、を行うように前記プロセッサを構成する命令を更に含む、請求項14に記載のシステム。前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第1のバイナリ前景マスクを精緻化することを行うように前記プロセッサを構成する命令は、少なくとも1つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも2つの分散量度を指定することと、双方の分散量度が指定された閾値よりも大きいとき、各第1の前景マスクにピクセルを追加することと、を行うように前記プロセッサを構成する命令を含む、請求項15に記載のシステム。フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、前記複数の第1の精緻化された前景マスク及び前記床マスクを混合することであって、第2のバイナリ前景マスクを生成することと、前記第2のバイナリ前景マスクにメディアンフィルターを適用することと、を行うように前記プロセッサを構成する命令を更に含む請求項15に記載のシステム。前記第2のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、前記顔マスクを前記第2のバイナリ前景マスクと混合することであって、第3のバイナリ前景マスクを生成することと、前記第3のバイナリ前景マスクに連結成分解析を適用することと、を行うように前記プロセッサを構成する命令を更に含む、請求項17に記載のシステム。各投影ターゲット画像を前記ソース画像に色調整することを行うように前記プロセッサを構成する命令は、各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、を行うように前記プロセッサを構成する命令を含む、請求項14に記載のシステム。前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記3D環境における前記前景部分のシミュレーションを提供すること、を行うように前記プロセッサを構成する命令を更に含む、請求項11に記載のシステム。命令を記憶しているコンピュータープログラム製品を含む物品であって、前記命令は実行されると、結果としてソース画像を受信することであって、該ソース画像は、前景部分及び背景部分を含み、該背景部分は、3次元環境3D環境の画像コンテンツを含むことと、前記ソース画像を前記3D環境の複数のターゲット画像と比較することによって、前記ソース画像のカメラ姿勢を求めることと、前記カメラ姿勢に応じて、前記背景部分から前記前景部分をセグメンテーションすることによって、セグメンテーションされたソース画像を生成することと、前記セグメンテーションされたソース画像及び前記カメラ姿勢をネットワークデータベースに記憶することと、が行われる、コンピュータープログラム製品を含む物品。結果として前記カメラ姿勢を求めることが行われる前記命令は、実行されると、結果として、前記ソース画像から少なくとも1つのソース画像の視覚的特徴を抽出することと、前記少なくとも1つのソース画像の視覚的特徴を前記複数のターゲット画像と比較することによって最もよく一致するターゲット画像を決定することと、前記ソース画像を、前記最もよく一致するターゲット画像に関連付けられた前記3D環境における平面構造上に投影することであって、前記平面構造は、前記3D環境における3D座標を有することと、が行われる命令を含む、請求項21に記載の物品。結果として前記ソース画像を前記平面構造上に投影することが行われる前記命令は、実行されると、結果として、ホモグラフィー行列を求めることと、前記ホモグラフィー行列、固有カメラ較正行列、及び最小二乗再投影誤差最小化技法を用いて、回転行列及び平行移動行列を解くことと、前記回転行列及び前記平行移動行列を前記平面構造の前記3D座標に適用することと、が行われる命令を含む、請求項22に記載の物品。結果として前記前景部分をセグメンテーションすることが行われる命令は、実行されると、結果として、各ターゲット画像について、ホモグラフィー行列を該ターゲット画像に適用することであって、投影マスク及び投影ターゲット画像を生成し、該投影マスクは、前記ソース画像内の前記ターゲット画像の前記背景部分の少なくとも一部を示すことと、各投影ターゲット画像を前記ソース画像に色調整することと、前記色調整された投影ターゲット画像を前記ソース画像と比較することによって複数の差分マップを生成することと、前記複数の差分マップをマージすることであって、混合差分マップを生成することと、が行われる命令を含む、請求項21に記載の物品。実行されると、結果として、前記混合差分マップに二重閾値処理を適用することであって、複数の第1のバイナリ前景マスクを生成することと、前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、各第1のバイナリ前景マスクを精緻化することと、が行われる命令を更に含む、請求項24に記載の物品。結果として、前記ソース画像及び前記色調整された投影ターゲット画像の統計的解析を行うことによって、前記各第1のバイナリ前景マスクを精緻化することが行われる前記命令は、実行されると、結果として、少なくとも1つのローカルなウィンドウにおいてカラーチャネルごとに、前記ソース画像及び前記色調整された投影ターゲット画像の統計を解析することと、前記ローカルなウィンドウ内の各ピクセルにおいて少なくとも2つの分散量度を指定することと、双方の分散量度が指定された閾値よりも大きいとき、各第1の前景マスクにピクセルを追加することと、が行われる命令を含む、請求項25に記載の物品。実行されると、結果として、フィルタリングされた前記ソース画像から床部分を取り去ることであって、床マスクを生成することと、前記複数の第1の精緻化された前景マスク及び前記床マスクを混合することであって、第2のバイナリ前景マスクを生成することと、前記第2のバイナリ前景マスクにメディアンフィルターを適用することと、が行われる命令を更に含む、請求項25に記載の物品。実行されると、結果として、前記第2のバイナリ前景マスクにおいて顔領域を検出することであって、顔マスクを生成することと、前記顔マスクを前記第2のバイナリ前景マスクと混合することであって、第3のバイナリ前景マスクを生成することと、前記第3のバイナリ前景マスクに連結成分解析を適用することと、が行われる命令を更に含む、請求項27に記載の物品。結果として、各投影ターゲット画像を前記ソース画像に色調整することが行われる前記命令は、実行されると、結果として、各投影ターゲット画像を前記ソース画像と比較することによって差分マップを生成することと、前記差分マップに固定閾値を適用することであって、粗くセグメンテーションされた前景マスクを生成することと、前記粗くセグメンテーションされた前景マスクを前記投影マスクから取り去ることであって、調整された前記投影マスクを生成することと、前記投影ターゲット画像から前記ソース画像への、前記調整された投影マスク内におけるカラーマッピングを推定することと、元の投影マスク内における前記カラーマッピングを前記投影ターゲット画像に適用することであって、前記色調整された投影ターゲット画像を生成することと、が行われる命令を含む、請求項24に記載の物品。実行されると、結果として、前記カメラ姿勢及び前記セグメンテーションされたソース画像を用いることであって、前記3D環境における前記前景部分のシミュレーションを提供すること、が行われる命令を更に含む、請求項21に記載の物品。ここでは、同封された図を参照して1つ又は複数の実施形態又は実施態様を説明する。特定の構成及び装置が議論されるが、これは、例示の目的でのみなされていることが理解されるべきである。当業者であれば、この説明の趣旨及び範囲から逸脱することなく他の構成及び装置を用いることができることを認識するであろう。本明細書において説明する技法及び/又は装置は、本明細書において説明するもの以外の他の様々なシステム及びアプリケーションにおいても用いることができることが当業者には明らかであろう。以下の説明は、例えば、システムオンチップSoCアーキテクチャ等のアーキテクチャにおいて顕在化させることができる様々な実施態様を記載しているが、本明細書において説明する技法及び/又は装置の実施態様は、特定のアーキテクチャ及び/又はコンピューティングシステムに制限されるものではなく、同様の目的の任意のアーキテクチャ及び/又はコンピューティングシステムによって実施することができる。例として、例えば複数の集積回路ICチップ及び/又はパッケージを用いる様々なアーキテクチャ、及び/又はセットトップボックス、スマートフォン等の様々なコンピューティングデバイス及び/又は消費家電CEデバイスが、本明細書において説明する技法及び/又は装置を実施することができる。さらに、以下の説明は、ロジックの実施態様、システム構成要素、ロジックの分割/統合の選択肢等のタイプ及び相互関係等の多数の特定の詳細を記載している場合があるが、特許請求される主題は、そのような特定の詳細がなくても実施することができる。それ以外の場合に、例えば、制御構造及び全ソフトウェア命令シーケンス等の幾つかのマテリアルは、本明細書に開示するマテリアルを分かりにくくしないように詳細に示されていない場合がある。本明細書に開示するマテリアルは、ハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組み合わせで実施することができる。本明細書に開示するマテリアルは、1つ又は複数のプロセッサが読み出して実行することができる機械可読媒体上に記憶された命令として実施することもできる。機械可読媒体は、機械例えば、コンピューティングデバイスによって可読な形態で情報を記憶又は伝送するための任意の媒体及び/又はメカニズムを含むことができる。例えば、機械可読媒体は、読み出し専用メモリROM、ランダムアクセスメモリRAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的形態、光学的形態、音響的形態、又は他の形態の伝播信号例えば、搬送波、赤外線信号、デジタル信号等等を含むことができる。本明細書において1つの実施態様、一実施態様、一例示の実施態様等というとき、これは、説明される実施態様が、特定の特徴、構造、又は特性を含む場合があるが、あらゆる実施態様が、その特定の特徴、構造、又は特性を必ずしも含むとは限らないことを示す。その上、そのようなフレーズは、必ずしも同じ実施態様を指しているとは限らない。さらに、特定の特徴、構造、又は特性が一実施態様に関して説明されているとき、本明細書において明示的に説明されているか否かを問わず、他の実施態様に関してもそのような特徴、構造、又は特性が有効であることが当業者には知られていると考えられる。図1は、本開示による一例示のシステム100を示している。様々な実施態様では、システム100は、1つ又は複数の2次元2Dソース画像が3次元3D環境103においてキャプチャされている場合に、これらのソース画像を無線ネットワーク及び/又は有線ネットワーク104例えば、インターネット等に提供する1つ又は複数のカメラ102を備えることができる。様々な実施態様では、カメラ102は、デジタル形式の2Dソース画像をネットワーク104に提供することができる任意のタイプのカメラとすることができる。これらのソース画像は、任意の解像度及び/又はアスペクト比を有することができる。ソース画像は、ネットワーク104を介してビジョンエンジン106に提供することができる。このビジョンエンジンでは、ソース画像は、本明細書において説明するカメラローカライゼーションプロセス及び画像セグメンテーションプロセスを受けることができる。ビジョンエンジン106は、カメラローカライゼーションプロセス及び画像セグメンテーションプロセスの結果をネットワークデータベース108に提供することができ、3Dディスプレイエンジン110は、本明細書において同様に説明する3D環境シミュレーションを提供する目的で、データベース108からのそれらの結果にアクセスすることができる。様々な実施態様では、ビジョンエンジン106は、カメラローカライゼーションプロセス及び画像セグメンテーションプロセスの結果を最初にデータベース108に記憶することなく、それらの結果をディスプレイエンジン110に提供することができる。さらに、様々な実施態様では、ビジョンエンジン106は、ディスプレイエンジン110に隣接することができ、カメラローカライゼーションプロセス及び画像セグメンテーションプロセスの結果をネットワーク104を用いてディスプレイエンジン110に提供することなく、直接そうすることができる。様々な実施態様では、カメラ102によって3D環境103においてキャプチャされたソース画像は、背景部分及び前景部分を含む場合がある。例えば、図2は、3D環境103においてキャプチャされた一例示の2Dソース画像200を示している。画像200は、前景部分202例えば、人間被写体及び背景部分204例えば、床、壁、窓等の部屋の部分を含む。図3は、本開示の様々な実施態様による一例示の画像ローカライゼーションプロセス300の流れ図を示している。プロセス300は、図3のブロック304、306、308、314、316、及び320のうちの1つ又は複数によって示されるような1つ又は複数の動作、機能、又は行為を含むことができ、その結果、ソース画像のカメラ姿勢を決定することができる。非限定的な例として、プロセス300は、本明細書において、図1の例示のシステム100を参照して説明される。様々な実施態様では、プロセス300は、システム100のビジョンエンジン106が行うことができる。プロセス300は、未知のカメラ姿勢を有するソース画像302を受信することができるブロック304において開始することができる。例えば、ブロック304は、ビジョンエンジン106がネットワーク104を介してソース画像302を受信することを含むことができる。様々な実施態様では、ブロック304は、既知の3D環境例えば、環境103においてキャプチャされた例示の画像200等のソース画像を受信することを含むことができる。既知の3D環境においてキャプチャされているが、その3D環境においてソース画像をキャプチャしたカメラの姿勢は分かっていない。よく知られたピンホールカメラモデルによれば、カメラ姿勢は、カメラの例えば、デカルトx,y,z座標における3D位置座標等の位置情報と、3D環境に対するカメラの例えば、角度値におけるヨー、ピッチ、及びロールを含む姿勢情報又は向き情報とを含む6次元量として表すことができる。例えば、図4は、3D環境103のX,Y,Z座標系内の一例示のカメラロケーション400に対するカメラ姿勢座標を示している。3D環境例えば、環境103は、複数の2D平面構造と、それらの対応するターゲット画像とを含む。各ターゲット画像は、3D背景環境における平面構造の画像を表し、このターゲット画像の画像特徴は、抽出してデータベース108に記憶することができる。ブロック306において、ソース画像の視覚的特徴を3D環境の記憶された画像特徴と比較して、最もよく一致するターゲット画像を決定することができる。例えば、ブロック306は、スケール不変特徴変換SIFT技法例えば、DGLoweObjectrecognitionfromlocalscaleinvariantfeaturesProcoftheInternationalConferenceonComputerVisionCorfu参照等の既知のコンピュータービジョン技法を用いてソース画像から視覚的特徴を抽出することを含むことができる。様々な実施態様では、これらの視覚的特徴は、画像テクスチャを含むことができる。次に、ソース画像から抽出されたこれらの視覚的特徴を、3D環境のターゲット画像から事前に抽出された画像テクスチャ例えば、ターゲット画像においてキャプチャされたようなソース画像200の背景204の様々な部分に対応する等の視覚的特徴と比較して、例えば、データベース108に記憶することができる。ブロック306の比較の結果、3D環境の記憶されたターゲット画像の中から最もよく一致するターゲット画像を識別することができる。ブロック308において、ソース画像を最もよく一致するターゲット画像と比較することによって、ホモグラフィー行列Hを求めることができる。様々な実施態様では、ホモグラフィー行列Hは、ブロック306において決定された最もよく一致するターゲット画像に関連付けられた3D環境における平面構造へのソース画像の射影変換を提供する非特異3×3行列を表す。ブロック308では、様々な既知の技法を用いて、ホモグラフィー行列Hを求めることができる例えば、EVincent及びRLaganiereDetectingplanarhomographiesinanimagepairProceedingsofthe2ndInternationalSymposiumonImageandSignalProcessingandAnalysis参照以下:Vincent及びLaganiere。ソース画像は、複数の平面を含む場合があるので、ブロック308は、3D環境における平面構造と一致するソース画像内の主要平面を識別することを含むことができる。様々な実施態様では、ブロック308は、平面構造とソース画像との間の一致する点を識別することを含むことができる。例えば、ブロック308においてホモグラフィー行列Hを推定するのに、4つの対応する一致点で十分な場合がある。ブロック308の結果、3D環境の一致した平面構造310及びソース画像ホモグラフィー行列312を生成することができる。ブロック314において、平面構造について、ホモグラフィー行列Hは、3D点Mからその対応する2D点mへの透視投影関係を表している。この関係は、m=HMによって表すことができる。ここで、H=K[R|T]であり、Kは、焦点距離等のカメラの内部パラメーターに依存する3×3カメラ較正行列であり、[R|T]は、3×4カメラ姿勢パラメーターであるここで、Rは3×3回転行列を表し、Tは平行移動行列を表す。H及びKは既知であるので、カメラ姿勢は、M及びmの少数n>6の既知のマッピング測定値を所与として、最小二乗最小化技法によって推定することができる。測定値{mi}が雑音を有する場合、カメラ姿勢は、再投影誤差の合計、又は、3D点を投影したものと、それらの測定された2D座標との間の二乗距離を最小化することによって精緻化することができる。この最小化は、次に、反復的な最適化方式を用いて解くことができる。ブロック316において、回転行列R及び平行移動行列Tを一致した平面構造の3D座標に適用して、ソース画像カメラ姿勢318を生成することができる。プロセス300は、次に、ブロック320において終了することができる。このブロックでは、以下でより詳細に説明するように、後の使用のために、ソース画像カメラ姿勢をシステム100のデータベース108等のネットワークアクセス可能データベースに記憶することができる。ソース画像カメラ姿勢は、以下で更に説明するようにセグメンテーションされたソース画像に関連付けられたメタデータとしてデータベースに記憶することができる。図3に示すような例示のプロセス300の実施態様は、示した順序で図示した全てのブロックを行うことを含むことができるが、本開示は、この点に限定されるものではく、様々な例において、プロセス300の実施態様は、図示した全てのブロックのサブセットのみを行うこと及び/又は示したものとは異なる順序で行うことを含むことができる。図5A、図5B、及び図5Cは、本開示の様々な実施態様による一例示の画像セグメンテーションプロセス500の流れ図を示している。プロセス500は、図5A、図5B、及び図5Cのブロック502~548のうちの1つ又は複数によって示されるような1つ又は複数の動作、機能、又は行為を含むことができ、その結果、ソース画像の前景部分をセグメンテーション又は抽出して、セグメンテーションされたソース画像を作成することができる。非限定的な例として、プロセス500は、本明細書において、図1の例示のシステム100、図2の例示のソース画像200、及び図3の例示のプロセス300を参照して説明される。様々な実施態様では、プロセス500は、システム100のビジョンエンジン106が行うことができる。プロセス500は、複数のターゲット画像背景画像部分を含む及び関連付けられたホモグラフィー行列を受信することができるブロック502において開始することができる。様々な実施態様では、ソース画像は、複数のターゲット画像からの部分を含む。ブロック502において受信された各ターゲット画像について、ブロック504において、対応するホモグラフィー行列を適用し、既知の技法例えば、Vincent及びLaganiere参照を用いて、投影ターゲット画像及びバイナリ投影行列を生成することができる。ブロック504は、ホモグラフィー行列を用いて、結果の投影ターゲット画像がソース画像と実質的に位置合わせされるように、ターゲット画像をソース画像の画像平面上に投影することを含むことができる。様々な実施態様では、ブロック504の結果、投影ターゲット画像は、ソース画像の幾何学的性質と類似の幾何学的性質を有することができる。例えば、投影ターゲット画像に関連付けられたカメラ姿勢は、プロセス300によって生成されたカメラ姿勢ソース画像に関連付けられていると類似することができる。様々な実施態様では、ターゲット画像及びソース画像は、同じ解像度及びアスペクト比を有することができる。ターゲット画像及びソース画像が異なる解像度及び/又はアスペクト比を有する場合がある実施態様では、投影ターゲット画像は、ソース画像と同じ解像度及びアスペクト比を有する。上述するとともに図2の例に示したように、ソース画像200は、前景部分202及び背景部分204を含む。ブロック502のターゲット画像は、ソース画像と同じ3D環境103においてキャプチャされている場合があるが、ターゲット画像は、ソース画像とは異なる視点例えば、位置及び向きから得られている場合があり、ソース画像内に見られる前景部分202を含まずに、背景部分204の少なくとも一部を含む場合がある。様々な実施態様では、ブロック502において受信されたターゲット画像は、以前にキャプチャされて、関連付けられたホモグラフィー行列とともにシステム100のデータベース108等のデータベースに記憶されている場合がある。ブロック506において、ソース画像前景部分及び背景部分を含むを受信することができる。ブロック508において、このソース画像と、ブロック504からの結果の投影ターゲット画像とをローパスフィルタリングして、フィルタリングされたソース画像と、フィルタリングされた投影ターゲット画像とを生成することができる。ブロック510において、各フィルタリングされた投影ターゲット画像に関連付けられた投影マスク内において、フィルタリングされたソース画像と、フィルタリングされた投影ターゲット画像のそれぞれとの間の強度差を求めて、対応する差分マップを生成することができる。これらの差分マップのそれぞれは、次に、閾値関数に従って、投影マスク内に粗くセグメンテーションされた前景マスクを生成することができるブロック512。例えば、最大画像強度の50に対応する閾値関数例えば、8ビットの画像強度の場合には128の閾値の値をブロック512において適用することができる。ブロック514において、粗くセグメンテーションされた前景マスクを投影マスクから取り去って、各フィルタリングされた投影ターゲット画像に関連付けられた、調整された投影マスクを生成することができる。ブロック508からの結果のフィルタリングされた投影ターゲット画像及びフィルタリングされたソース画像は、幾何学的に類似している場合があるが、カメラ特性、設定、光条件等の差に起因して、それらの間には実質的な色差が存在する場合がある。したがって、ブロック516において、各調整された投影マスク内において、フィルタリングされた投影ターゲット画像のそれぞれとフィルタリングされたソース画像との間のカラーマッピングを推定することができる。次に図5Bを参照すると、プロセス500は、ブロック518において、図5Aのブロック516からの結果の推定されたカラーマップを、対応するフィルタリングされた投影ターゲット画像に適用して、色調整された投影ターゲット画像を生成することへと処理を進める。ブロック518からの結果の色調整された投影ターゲット画像は、次に、ブロック508からの結果のフィルタリングされたソース画像と実質的に同様の色特性を有することができる。ブロック520において、各色調整された投影ターゲット画像とフィルタリングされたソース画像との間の強度差を求めて、差分マップを生成することができ、これらの差分マップを混合して混合差分マップを生成することができる。非限定的な例において、ブロック520の差分マップは、色調整された投影ターゲット画像とフィルタリングされたソース画像との間の強度の絶対差として求めることができる。そのような実施態様では、ブロック520からの結果の混合差分マップは、差分画像に対応することができる。様々な他の実施態様では、相互相関、相互情報量、二乗強度差の総和、画像均一比ratioimageuniformity等の種々の画像類似度メトリックを用いることができる。さらに、様々な実施態様では、ブロック520において、全てのカラーチャネルを比較して、前景色と背景色との間のより良好な区別を提供することができる。ブロック522において、低い強度閾値及び高い強度閾値すなわち、二重閾値処理機能を混合差分マップに適用することができ、低い閾値の結果を高い閾値の結果によってフィルタリングして、バイナリ前景マスクを生成することができる。様々な実施態様では、ブロック522の二重閾値処理は、既知の技法例えば、WSun及びSPSpackmanMultiobjectsegmentationbystereomismatchMachineVisionandApplicationsVol7Issue2参照を用いて行うことができる。プロセス500は、ブロック524において継続することができ、このブロックでは、バイナリ前景マスクを取り囲むエリアにおいて、フィルタリングされたソース画像及び対応する色調整された投影ターゲット画像の統計的解析を行うことによって、ブロック522からの結果のバイナリ前景マスクを精緻化することができる。ブロック524の精緻化は、各投影マスク内の各バイナリ前景マスクに対して別々に適用することができる。様々な実施態様では、ブロック524において行われた精緻化は、前景領域が局在化して十分に接続されている傾向があり、既知の前景ピクセルの近傍のピクセルも同様に前景ピクセルである可能性が高いという直観を用いる。ブロック524における精緻化は、前景画像及びターゲット画像の双方において既知の前景ピクセルを取り囲むローカルな領域の統計を解析することを含むことができる。ローカルな領域内の背景ピクセルは、それらの統計が前景画像とターゲット画像との間で大きく異なるとき、前景マスクに追加することができる。例えば、ブロック524の精緻化手順は、前景とラベル付けされた各ピクセルにおけるローカルなウィンドウ例えば、5×5ピクセルを考慮することができる。このウィンドウ内の各カラーチャネルからのピクセルは、平均μ及び標準偏差σを有する正規分布を用いてモデル化することができる。これらのパラメーターは、最尤推定等の標準的な技法を用いて前景画像及びターゲット画像から推定することができる。次に、対応する前景ピクセル及び背景ピクセルがともに、それぞれこれらの前景分布及び背景分布からのサンプルであるという前提の下で、このローカルなウィンドウ内の各ピクセルについて、2つの分散度measureofdispersionを定義することができる。前景の統計及び背景の統計が類似しているとき、前景分布又は背景分布のいずれかを前提として計算される分散度は小さいと予想され、この条件は、背景領域に属するピクセルに当てはまると予想することができる。双方の分散度は、前景領域に属するピクセルの場合、大きいと予想される。したがって、ブロック524の結果として、それぞれ前景分布及び背景分布を前提として計算された双方の分散度が或る特定の閾値を超えているとき、ピクセルを前景マスクに追加することができる。分散度は、カラーチャネルにわたる前景ピクセルと背景ピクセルとの間の値の範囲の最大確率であると定義することができる。例えば、それぞれ前景及び背景からのサンプルピクセル[xR,xG,xB]及び[yR,yG,yB]に基づく分散前景分布を前提とするは、前景分布が全てのカラーチャネルにわたる前景ピクセルと背景ピクセルとの間の値の範囲を占める最大確率mX=maxi∈{R,G,B}absCDFXixi-CDFXiyiとして定義することができる。ここで、CDFXiは、それぞれカラーチャネルiにおける前景分布の累積分布関数を示す。背景分布を前提とした同様の尺度mYを定義することができる。mX及びmYの双方が或る特定の閾値を超えているとき、そのピクセルは、前景としてラベル付けすることができる。様々な実施態様では、mX及びmYの値は、0~1の範囲とすることができ、対応する閾値の値は、約0.5とすることができる。ブロック524における精緻化は、反復数の最大限界に達するまで又は反復当たり追加されるピクセル数の最大限界に達するまで、前景マスクに新しく追加されたピクセルに対して繰り返すことができる。さらに、ブロック524は、種々の色空間において実行することもできる。例えば、YCbCr色空間において精緻化を実行することは、ソース画像とターゲット画像との間に大きな明暗差が存在する場合に、分類誤差を最小化するのに有利な場合がある。ブロック526において、ブロック524からの結果の精緻化されたバイナリ前景マスクをマージして、バイナリ前景マスクを生成することができる。例えば、ブロック524において異なる平面から取得された異なる精緻化されたバイナリ前景マスクを、ブロック526において論理的OR演算を用いて組み合わせることができる。ブロック528において、フィルタリングされたソース画像から床部分を取り去って、床前景マスクを生成することができる。様々な実施態様では、床を取り去ることは、YCbCr等の他の色空間において実行することができ、取り去ることは、ソース画像とターゲット画像との間の明暗の変化に対するロバスト性を改善するために、Cb成分空間及びCr成分空間においてのみ実行される。ブロック530において、床前景マスクをブロック526からのバイナリ前景マスクとマージして、単一のバイナリ前景マスクを生成することができる。次に、ブロック532において、ブロック530からの結果の前景マスクをメディアンフィルタリングして、異なる平面構造を処理及びマージすることによって生み出されたアーティファクトを除去することができる。次に図5Cを参照すると、プロセス500は、ブロック536において継続することができる。このブロックでは、カスケード分類器及びソース画像の強度チャネルを用いて、バイナリ前景マスクにおいて方形の顔領域を検出することができる。様々な実施態様では、ブロック536において行われる検出のパラメーターは、誤検出確率を最小にするように調節することができる。ブロック538において、検出された顔領域内のピクセルを初期化することができ、その結果、おそらく前景probablyforeground又はおそらく背景probablybackgroundのいずれかの初期ラベルを有する全ての前景ピクセル及び背景ピクセルの割り当てが得られる。ブロック540において、顔領域の内部サブセットは、前景として初期化することができ、外部サブセットは、背景として初期化することができる。プロセス500は、次に、ブロック542において継続することができる。このブロックにおいて、色に基づくセグメンテーションを実行して、ブロック540において行われた顔領域のラベル割り当てを精緻化するとともに、バイナリ顔マスクを生成することができる。様々な実施態様では、グラフカット技法等の既知の技法を用いてブロック542を行って、顔マスクを生成することができる。プロセス500は、次に、ブロック544において継続することができる。このブロックにおいて、ブロック542からの顔マスク及びブロック532からのバイナリ前景マスクをマージして、単一のバイナリ前景マスクを生成することができる。様々な実施態様では、セグメンテーションされた画像がターゲット画像内のあらゆる人の顔を含むことを確保するために、マスクは、論理的OR演算を用いてマージすることができる。プロセス500は、ブロック546において継続することができる。このブロックでは、連結成分解析例えば、AzrielRosenfeld及びJohnLPfaltzSequentialOperationsinDigitalPictureProcessingJACMvol13no4pp471494October1966参照等の既知の技法を、ブロック544からのバイナリ前景マスクに適用して、ソース画像内の構成要素を取得することができる。様々な実施態様では、ブロック546は、小さな構成要素をフィルタリング及び除去すること、及び/又は全ての構成要素を埋めて、孔を除去することを含むことができる。さらに、ブロック546は、人体解剖学のモデル及び最も大きな構成要素人体の胴である可能性が高い等に対する種々の構成要素の相対配置に基づいて構成要素を除去することも含むことができる。プロセス500は、次に、ブロック548において終了することができる。このブロックにおいて、最終的なバイナリ前景マスクをプロセス500の出力として提供することができる。例えば、図6は、プロセス500からの結果の最終的な前景マスクを用いて生成された一例示のセグメンテーションされたソース画像600を示している。プロセス500からの結果のセグメンテーションされたソース画像は、図1のデータベース108等のネットワークアクセス可能データベースに記憶することができ、そのデータベース内において、プロセス300からの結果のカメラ姿勢に関連付けることができる。図7は、本開示の様々な実施態様による一例示の3Dシミュレーションプロセス700の流れ図を示している。プロセス700は、図7のブロック702、704、706、708、及び710のうちの1つ又は複数によって示されるような1つ又は複数の動作、機能、又は行為を含むことができ、その結果、プロセス300及び500を用いて複数の2D画像からセグメンテーションされた共通の背景部分及び前景部分を組み込んだ環境の3Dシミュレーションを得ることができる。プロセス700は、前景部分及び背景部分を含むソース画像を受信することから開始することができブロック702、その後、ソース画像を3D環境の画像特徴と比較することによってカメラ姿勢を求めることができるブロック704。ブロック702及び704は、本明細書においてプロセス300に関して説明した方法で行うことができる。プロセス700は、カメラ姿勢を用いて背景部分から前景部分を抽出することによって、セグメンテーションされたソース画像を生成することブロック706に処理を進めることができ、その後、セグメンテーションされたソース画像及びカメラ姿勢をネットワークデータベースに記憶することができるブロック708。ブロック706及び708は、本明細書においてプロセス500に関して説明した方法で行うことができる。プロセス700は、ブロック710において終了することができ、セグメンテーションされたソース画像及び関連付けられたカメラ姿勢を用いて、仮想3D環境における前景部分のシミュレーションが提供される。例えば、システム100のディスプレイエンジン110は、セグメンテーションされたソース画像及び関連付けられたカメラ姿勢のメタデータをデータベース108から取り出すことができる。ディスプレイエンジン110は、次に、背景204を含む既知の3D環境103の3Dモデル又はシミュレーションを生成することができる。セグメンテーションされたソース画像の前景部分は、次に、それぞれのカメラ姿勢のメタデータに応じて、それらのそれぞれのロケーションにレンダリングすることができる。その結果、リアルタイムで協同的にキャプチャされた人々及び物体等の前景部分又は要素を含む3Dフォトブラウザ等のナビゲーション可能な3D環境を生成することができる。例えば、図8は、環境103の一例示の3Dシミュレーション800を示している。この環境は、セグメンテーションされたソース画像600の前景部分202を含むとともに、本明細書において説明したプロセスを同様に受けた追加のソース画像から抽出された前景部分802及び804も含む。図5A-C及び図7に示すような例示のプロセス500及び700の実施態様は、示した順序で図示した全てのブロックを行うことを含むことができるが、本開示は、この点に限定されるものではなく、様々な例では、プロセス500及び700の実施態様は、図示した全てのブロックのサブセットのみに及び/又は示したものとは異なる順序で行うことを含むことができる。加えて、図3、図5A-C、及び図7のプロセス及び/又はブロックのうちの任意の1つ又は複数は、1つ又は複数のコンピュータープログラム製品によって提供される命令に応答して行うことができる。そのようなプログラム製品は、例えば、1つ又は複数のプロセッサコアによって実行されると、本明細書において説明した機能を提供することができる命令を提供する信号担持媒体を含むことができる。コンピュータープログラム製品は、任意の形態のコンピューター可読媒体において提供することができる。したがって、例えば、1つ又は複数のプロセッサコアを含むプロセッサは、コンピューター可読媒体によってプロセッサに搬送される命令に応答して、図3、図5A-C、及び図7に示すブロックのうちの1つ又は複数を行うことができる。図9は、本開示による一例示のシステム900を示している。システム900は、本明細書において議論した様々な機能の一部又は全てを実行するのに用いることができ、本開示の様々な実施態様による、本明細書において説明したプロセスを行うことができる任意のデバイス又はデバイスの集合体を備えることができる。例えば、システム900は、デスクトップ、移動コンピューター又はタブレットコンピューター、スマートフォン、セットトップボックス等のコンピューティングプラットフォーム又はデバイスの選択された構成要素を含むことができるが、本開示は、この点に限定されるものではない。幾つかの実施態様では、システム900は、CEデバイス用のIntel登録商標アーキテクチャIAに基づくコンピューティングプラットフォーム又はSoCとすることができる。本明細書において説明した実施態様は、本開示の範囲から逸脱することなく、代替の処理システムとともに用いることができることが当業者によって容易に認識されるであろう。システム900は、1つ又は複数のプロセッサコア904を有するプロセッサ902を備える。プロセッサコア904は、少なくとも部分的にソフトウェアを実行し及び/又はデータ信号を処理することができる任意のタイプのプロセッサロジックとすることができる。様々な例では、プロセッサコア904は、CISCプロセッサコア、RISCマイクロプロセッサコア、VLIWマイクロプロセッサコア、及び/又は命令セットの任意の組み合わせを実装する任意の数のプロセッサコア、又はデジタル信号プロセッサ若しくはマイクロコントローラー等の他の任意のプロセッサデバイスを含むことができる。プロセッサ902は、例えば、ディスプレイプロセッサ908及び/又はグラフィックスプロセッサ910によって受信された命令を制御信号及び/又はマイクロコードエントリー点にデコードするのに用いることができるデコーダー906も備える。コア複数の場合もある904とは別個の構成要素としてシステム900に示されているが、当業者であれば、コア複数の場合もある904のうちの1つ又は複数が、デコーダー906、ディスプレイプロセッサ908、及び/又はグラフィックスプロセッサ910を実施することができることを認識することができる。幾つかの実施態様では、プロセッサ902は、図3、図5A~図5C、及び図7に関して説明した例示のプロセスを含む、本明細書において説明したプロセスのうちの任意のものを行うように構成することができる。さらに、制御信号及び/又はマイクロコードエントリー点に応答して、デコーダー906、ディスプレイプロセッサ908、及び/又はグラフィックスプロセッサ910は、対応する動作を実行することができる。処理コア複数の場合もある904、デコーダー906、ディスプレイプロセッサ908、及び/又はグラフィックスプロセッサ910は、システム相互接続916を通じて互いに及び/又は様々な他のシステムデバイスと通信可能に及び/又は動作可能に結合することができる。これらの様々な他のシステムデバイスは、例えば、メモリコントローラー914、オーディオコントローラー918、及び/又は周辺装置920を含むことができるが、これらに限定されるものではない。周辺装置920は、例えば、統一シリアルバスUSB:unifiedserialbusホストポート、周辺機器相互接続PCIエクスプレスポート、シリアル周辺インターフェースSPIインターフェース、拡張バス、及び/又は他の周辺装置を含むことができる。図9は、相互接続916によってデコーダー906並びにプロセッサ908及び910に結合されたものとしてメモリコントローラー914を示しているが、様々な実施態様では、メモリコントローラー914は、デコーダー906、ディスプレイプロセッサ908、及び/又はグラフィックスプロセッサ910に直接結合することができる。幾つかの実施態様では、システム900は、図9に図示していない様々なI/OデバイスとI/Oバス同様に図示せずを介して通信することができる。そのようなI/Oデバイスは、例えば、ユニバーサル非同期受信機/送信機UARTデバイス、USBデバイス、I/O拡張インターフェース、又は他のI/Oデバイスを含むことができるが、これらに限定されるものではない。様々な実施態様では、システム900は、移動通信、ネットワーク通信、及び/又は無線通信を行うためのシステムの少なくとも一部分を表すことができる。システム900は、メモリ912を更に備えることができる。メモリ912は、ダイナミックランダムアクセスメモリDRAMデバイス、スタティックランダムアクセスメモリSRAMデバイス、フラッシュメモリデバイス、又は他のメモリデバイス等の1つ又は複数のディスクリートメモリ構成要素とすることができる。図9は、プロセッサ902の外部のものとしてメモリ912を示しているが、様々な実施態様では、メモリ912は、プロセッサ902の内部とすることができる。メモリ912は、図3、図5A~図5C、及び図7に関して説明した例示のプロセスを含む、本明細書において説明したプロセスのうちの任意のものを行う際に、プロセッサ902が実行することができるデータ信号によって表わされる命令及び/又はデータを記憶することができる。幾つかの実施態様では、メモリ912は、システムメモリ部分及びディスプレイメモリ部分を含むことができる。図10は、本開示の様々な実施態様による一例示の画像セグメンテーションプロセス1000の流れ図を示している。プロセス1000は、図10のブロック1002~1022のうちの1つ又は複数によって示されるような1つ又は複数の動作、機能、又は行為を含むことができる。プロセス1000の様々なブロックは、図5A、図5B、及び図5Cのプロセス500に関して本明細書において説明される。プロセス1000は、プロセス500のブロック502及び504に関して上述したようにホモグラフィー行列をターゲット画像に適用することができるブロック1002において開始することができる。ブロック1004において、プロセス500のブロック506及び508に関して上述したように、ソース画像及び投影ターゲット画像のローパスフィルタリングを実行することができる。ブロック1006において、プロセス500のブロック510、512、及び514に関して上述したように、投影マスクを調整することができる。ブロック1008において、プロセス500のブロック516及び518に関して上述したように、カラーマッピングを実行することができる。ブロック1010において、プロセス500のブロック520に関して上述したように、画像差分を実行することができる。プロセス1000は、ブロック1012において継続することができる。このブロックにおいて、プロセス500のブロック522に関して上述したように、二重閾値処理を実行することができる。その後、プロセス500のブロック524及び526に関して上述したように、色統計解析ブロック1014を実行することができる。ブロック1016において、プロセス500ブロック528及び530に関して上述したように、床の取り去りを行うことができる。ブロック1018において、プロセス500のブロック532に関して上述したように、境界アーティファクトを除去することができる。プロセス1000は、ブロック1020において継続することができる。このブロックにおいて、プロセス500のブロック536、538、540、542、及び544に関して上述したように、顔領域セグメンテーションの精緻化を実行することができる。プロセス1000は、プロセス500のブロック546に関して上述したように、連結成分解析を実行することができるブロック1022において終了することができる。上述したシステム、及び本明細書において説明したようなそれらのシステムによって実行される処理は、ハードウェア、ファームウェア、若しくはソフトウェア、又はそれらの任意の組み合わせで実施することができる。加えて、本明細書において開示した任意の1つ又は複数の特徴は、ディスクリートロジック及び集積回路ロジック、特定用途向け集積回路ASICロジック、並びにマイクロコントローラーを含むハードウェア、ソフトウェア、ファームウェア、及びそれらの組み合わせで実施することができ、特定領域集積回路パッケージの一部、又は集積回路パッケージの組み合わせとして実施することができる。ソフトウェアという用語は、本明細書において用いられるとき、本明細書において開示した1つ若しくは複数の特徴及び/又は特徴の組み合わせをコンピューターシステムに実行させるコンピュータープログラムロジックが記憶されているコンピューター可読媒体を含むコンピュータープログラム製品を指す。本明細書において記載された或る特定の特徴を様々な実施態様に関して説明してきたが、この説明は、限定的な意味に解釈されることを意図するものではない。したがって、本開示が関係する技術分野の当業者に明らかである、本明細書において説明した実施態様及び他の実施態様の様々な変更は、本開示の趣旨及び範囲内にあるとみなされる。"