デプスカメラの互換性
奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性が、奥行き画像コンシューマーとの互換性がないサポートされていないデプスカメラパラメーターを有する固有の奥行き画像を受信し、当該固有の奥行き画像を、奥行き画像コンシューマーと互換性のあるサポートされた仮想デプスカメラパラメーターを有する仮想的な奥行き画像へと変換することによって提供される。この仮想的な奥行き画像は奥行き画像コンシューマーへ出力される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デプスカメラの互換性に関する。
【背景技術】
【0002】
[0001]カメラはシーンの静止画像をとらえるために使用することができる。立て続けに撮影されるいくつかの静止画像を、各々が異なる静止画像に対応する複数のフレームを含む動画を生成するために使用することができる。このような画像は異なる様々な用途において非常に有用であるが、そのような画像はいくつかの目的のためにはあまり適していない。特に、従来の静止画像及び動画は、シーン内のとらえられた様々な表面の相対的な奥行きを評価するのに十分な情報を提供しない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
様々な種類のデプス(depth)カメラがこのニーズを満たすために開発されてきた。しかし、様々な種類のデプスカメラは、1つまたは複数の点で互いに異なる奥行き画像を生成し得る。そのため、奥行き画像を要するアプリケーションは、予想される特性を持つ奥行き画像を生成する特定の種類のデプスカメラと互換性を持つにすぎない。
【課題を解決するための手段】
【0004】
[0002]この概要は、詳細な説明において以下でさらに説明する概念のうちの選択されたものを簡略化した形式で紹介するために提供される。この概要は、特許請求される主題の重要な特徴及び不可欠な特徴を特定するようには意図されず、特許請求される主題の範囲を限定するために使用されるようにも意図されない。さらに、特許請求される主題は、本開示のいかなる部分に記載された任意の又はすべての不利益を解消する実施例にも限定されない。
【0005】
[0003]本開示の一態様によれば、奥行き画像コンシューマー(consumer)と複数の異なる奥行き画像プロデューサーとの間の互換性は、奥行き画像コンシューマーとの互換性のないサポートされていないデプスカメラパラメーターを有する固有の(ネイティブの、native)奥行き画像を受信すること、及び固有の奥行き画像を奥行き画像コンシューマーと互換性のあるサポートされる仮想的なデプスカメラパラメーターを有する仮想的な奥行き画像へ変換することにより、提供することができる。この仮想的な奥行き画像は、次いで、奥行き画像コンシューマーに対して出力されてもよい。
【図面の簡単な説明】
【0006】
【図1】[0004]例示的なデプスカメラの使用環境を示す。
【図2】[0005]本開示の実施例によるデプスカメラ互換性システムを示す。
【図3A】[0006]デプスカメラ視界四角錐を概略的に示す。
【図3B】デプスカメラ視界四角錐を概略的に示す。
【図4A】[0007]本開示による例示的な奥行き画像プロデューサーを示す。
【図4B】本開示による例示的な奥行き画像プロデューサーを示す。
【図4C】本開示による例示的な奥行き画像プロデューサーを示す。
【図5】[0008]奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性を提供する例示的な方法を示す。
【図6】[0009]デプスカメラの互換性を提供する別の例示的な方法を示す。
【図7】[0010]光源から離れているセンサー上に作成される影効果の例を概略的に示す。
【図8】[0011]影合成アルゴリズムによって影になった画素を見つけることを示す例示的なプロットを概略的に示す。
【図9】[0012]奥行き抽象化レイヤー内の例示的な画像処理ブロックを概略的に示す。
【図10】[0013]図9の例示的な画像処理ブロックをより詳細に概略的に示す。
【図11】[0014]本開示の実施例によるコンピューティングシステムを概略的に示す。
【発明を実施するための形態】
【0007】
[0015]本開示はデプスカメラの互換性を対象とする。本明細書に記載されるような互換性技術は、異なるモデルのデプスカメラが同じコンピューティングシステムによって使用されることを可能にする。アプリケーション開発者は、アプリケーション開発者がアプリケーションを作成する時には存在しないデプスカメラを含む、さまざまな異なるデプスカメラと互換性のあるアプリケーションを容易に作成することができる。本開示の一態様によれば、アプリケーション開発者は、汎用の仮想デプスカメラで動作するように構成されているアプリケーションを作成することができ、互換性技術によって、様々な異なるデプスカメラからの固有の入力を汎用の仮想デプスカメラと互換性のある形式に変換することができる。このように、アプリケーションは、まったく異なる奥行き探索技術(例えば、構造化された光、飛行時間、ステレオビジョンなど)を利用するデプスカメラを含む、さまざまな異なるデプスカメラと互換性をもつことができる。
【0008】
[0016]本明細書に記載される技術を使用すれば、アプリケーション開発者は、様々な異なるデプスカメラをサポートする面倒で困難な仕事を気にする必要はなく、その代わりに、単一の汎用仮想デプスカメラを開発することができる。同時に、互換性技術によって、改善された性能、製造コスト及び/又は運用コストの低減、エネルギー効率の改善、及び/又は他の有用な特性を提供することができる新しいデプスカメラの開発及び実施が容易になる。そのため、新たなカメラ技術が開発されるので、そのような技術は以前に開発されたアプリケーションと下位互換性のある新たなカメラにおいて実施することができる。
【0009】
[0017]図1は、上記で紹介されたカメラ互換性を提供するデプスカメラ互換性システムを用いて設計することができるコンピューティングシステム10の限定的でない例を示す。特に、図1は、様々な異なるゲームをプレイし、1つもしくは複数の異なるメディアタイプを再生し、及び/又はゲームでないアプリケーションを制御もしくは操作するのに使用することができるゲーム機12を示す。図1はまた、ユーザー18などのユーザーに対して視覚情報を提示するために使用することができる高精細テレビ、すなわちHDTV16の形式のディスプレイ14を示す。また、図1は、ユーザー18などの一人又は複数のユーザーを視覚的に監視するために使用することができるデプスカメラ20の形式のキャプチャー装置を示す。ゲームシステムの文脈で説明したが、デプスカメラ互換性システムは、デプスカメラからの奥行き画像を使用するように構成される実質的にすべてのコンピューティングシステムにおいて実施することができることが理解されるべきである。
【0010】
[0018]ゲーム機12などのコンピューティングシステムは、ユーザー18などの1つ又は複数のターゲットを認識し、分析し、及び/又は追跡するために使用されることができる。ターゲットの動きは、オペレーティングシステム及び/又はアプリケーションの制御として解釈されてもよい。オペレーティングシステム及び/又はアプリケーションの実質的に任意の制御可能な態様は、ユーザー18などのターゲットの動きによって制御することができる。
【0011】
[0019]これに加えて又は代替的に、デプスカメラ20を介して取得した奥行き情報は目標を追跡する以外の目的に使用することができる。例として、デプスカメラ20は、部屋及び/又は1つ以上の物体を視覚的に調査するために使用することができる。デプスカメラ20から取得した奥行き情報は、調査される部屋及び/又は物体の3次元のコンピューター読み取り可能なモデルを作成するために使用することができる。
【0012】
[0020]別の例として、デプスカメラは、車両やロボットなどの移動するコンピューティングシステム上の近接センサーとして使用することができる。
[0021]デプスカメラ20などのデプスカメラは、これら及び様々な他の有用な機能を提供するために使用することができる。特に、アプリケーションは、デプスカメラからの奥行き情報を利用する任意の数のさまざまな機能を提供するために開発して配置することができる。しかし、ほとんどのアプリケーションは、見られたシーンの現実の世界の特徴を奥行き情報から推定するための複雑なアルゴリズム及び処理戦略を含む。たとえば、骨格追跡(skeletal tracking)アルゴリズム及び処理戦略は、ターゲットを追跡する骨格の機械表現を用いてユーザー18などのターゲットをモデル化するために使用することができる。別の例として、床面を見つけるアルゴリズムは、シーン内の床面を見つけるために使用することができる。
【0013】
[0022]本明細書に記載のカメラ互換性技術を利用しないアプリケーションは、特定のフォーマットの及び/又は特定のパラメーターを持つ奥行き情報を受け取るように設計することができる。このようなアプリケーションは、望ましいフォーマット及び/又はパラメーターと一致しない奥行き情報を使用することができないかもしれない。いくつかの場合には、望ましいフォーマット及び/又はパラメーターと一致しない奥行き情報は、そのようなアプリケーションをクラッシュさせる可能性がある。
【0014】
[0023]異なる種類のデプスカメラの各々は1つ又は複数のフォーマットの違い及び/又は異なるパラメーターを有する奥行き情報を生成することができる。そのため、現在に至るまで、アプリケーションは特定のデプスカメラ念頭に置いて設計されてきた。しかし、アプリケーションが特定のデプスカメラのみとともに使用するように設計される場合、そのアプリケーションはなじみのない形式の及び/又は予期しないパラメーターをもつ奥行き情報を出力し得る新しいカメラをサポートすることができない。
【0015】
[0024]図2は、奥行き画像コンシューマー32と複数の異なる奥行き画像プロデューサー34(例えば、奥行き画像プロデューサー34a、奥行き画像プロデューサー34b、及び奥行き画像プロデューサー34c)との間の互換性を提供するデプスカメラ互換性システム30を示す。本明細書中で使用される場合、奥行き画像コンシューマーは、デプスカメラからの奥行き情報を利用するように構成される任意のオペレーティングシステム、アプリケーション、サービス、プロセス、モジュール、エンジン、又は他のオブジェクトを指す。
【0016】
[0025]デプスカメラ互換性システム30は、デプスカメラのどのモデルが奥行き画像コンシューマーで使用することができるかに関して大きな柔軟性を提供する。異なるパラメーターを有するカメラ、異なる奥行き発見(finding)技術に基づくカメラ、及び異なる種類の奥行き画像を生成するカメラは、デプスカメラ互換性システム30と同じ意味で使用することができる。
【0017】
[0026]例として、奥行き画像プロデューサー34aは、奥行き画像を評価するために構造化された光技術を使用するデプスカメラを含んでもよい。奥行き画像プロデューサー34bは奥行き画像を評価するために飛行時間技術を使用するデプスカメラを含んでもよい。そのようなカメラの両方とも、デプスカメラ互換性システム30のおかげで奥行き画像コンシューマー32と互換性がある。奥行き画像コンシューマー32はいずれかのカメラとの互換性のために特別に設計されている必要はない。いずれかのカメラがリリースされる前に奥行き画像コンシューマー32を開発することができる。言い換えれば、デプスカメラ互換性システム30は、奥行き画像コンシューマー、及び奥行き画像コンシューマーが開発された後に開発されるデプスカメラを含む様々な異なるデプスカメラとの互換性を容易にする。
【0018】
[0027]図2に示すように、デプスカメラ互換性システム30は、初期化モジュール36、キャプチャーモジュール38、仮想化モジュール40、及び出力モジュール42を含む。少なくともいくつかの実施例において、初期化モジュール、キャプチャーモジュール、仮想化モジュール、出力モジュール、及び/又はデプスカメラ互換性システム30の他のコンポーネントは、アプリケーションプログラミングインターフェース(API)の一部として実施することができる。APIは、奥行き画像プロデューサーと奥行き画像コンシューマーとの間で使用する通信の規則を確立するために、オペレーティングシステム、アプリケーション、ライブラリー、及び/又は他のオブジェクトによって実施されてもよい。 APIは、奥行き画像プロデューサーと奥行き画像コンシューマーとの間で通信するのに使用されるルーチン、データ構造、オブジェクトクラス及びプロトコルの仕様を含んでもよい。さらに、APIは、例えば仮想化モジュール40及びエミュレーションモジュール44を参照して以下に説明するように、様々な態様の奥行き画像を処理するように構成される機能ブロックを含んでもよいし、又はインタフェースしてもよい。
【0019】
[0028]初期化モジュール36は、奥行き画像コンシューマー32などの奥行き画像コンシューマーについてサポートされる仮想的なデプスカメラパラメーターを確認するように構成することができる。そのような確認(acknowledgement)を有効にするために、骨格追跡ゲームアプリケーションなどの奥行き画像コンシューマーは、特定のデプスカメラ(例えば、特定の種類又はモデルの構造化された光のデプスカメラ)に加えて、又はその代わりに、仮想的なデプスカメラとの互換性のために開発されてもよい。そのような例において、奥行き画像コンシューマーは、その奥行き画像コンシューマーによって予期される仮想的なデプスカメラパラメーター(例えば、x−y−z解像度、視界角錐(view frustum)、奥行き画像の種類など)の指示を提供するように構成することができる。さらに、初期化モジュールは、奥行き画像コンシューマーからのサポートされる仮想的なデプスカメラパラメーターの指示を受信するように構成することができる。上述したように、初期化モジュールは、必要に応じて、奥行き画像コンシューマー及び奥行き画像プロデューサーが互いに通信するために使用できるAPIの一部として実施されてもよい。
【0020】
[0029]サポートされる仮想デプスカメラパラメーターの指示は、仮想デプスカメラの予期される視界角錐及び/又は仮想デプスカメラの予期される解像度を規定することができる。このような予想される視界角錐及び/又は予想される解像度は、特定のデプスカメラの固有の視覚角錐及び固有の解像度とは異なる場合がある。サポートされる仮想デプスカメラパラメーターの指示は、仮想的なデプスカメラが基づいている実際のデプスカメラのモデルを特定してもよい。以下の説明では、初期化モジュール36によって確認することができる異なるパラメーターの限定的でないサンプリングについてまとめられている。
【0021】
[0030]デプスカメラは、一般に、デプスカメラのセンサーに最も近い表面からの半径方向の距離を各画素において測定する。この距離は、奥行きカメラからの光線に沿った距離を現実世界をモデル化する3次元空間へと投影することにより、ワールド座標に変換することができる。このプロセスは、明確な線形の境界が存在しない様々な三次元のサンプルを生成する。代わりに、ポイントはデプスカメラの視覚角錐によって境界が示される−(レンズの歪みがないと仮定して)2つの同心球の2つの3次元円弧の間に挟まった空間。図3Aは、例示的なデプスカメラ48の例示的な視覚角錐46を示す。
【0022】
[0031]同心球の位置は、デプスカメラで測定可能な視野の奥行きによって決定される。小さい方の同心球はそのデプスカメラの最小の測定可能な距離と同等の半径を有し、大きな方の同心球はそのデプスカメラの最大の測定可能な距離と同等の半径を有する。空間内の三次元円弧の大きさは、そのデプスカメラの視野(すなわち、視野角)によって決定される。デプスカメラの視覚角錐の位置及び方向は、物理的な位置とデプスカメラの物理的な向きによって決定される。どれだけの数の異なる画素が視覚角錐に含まれるかは、デプスカメラの解像度によって決定される。奥行きの感度(分解能)はデプスカメラからの出力として受信される画素あたりのビット数に依存する。しかし、実際の感度が低くなる可能性がある。
【0023】
[0032]パラメーター(例えば、視野の奥行き、視野、分解能、位置、方向、レンズの歪み等)は異なるカメラについて異なっていてもよい。奥行き画像コンシューマーがこのような違いに非常に敏感である可能性があるため、カメラ間のパラメーターの違いは困難をもたらす可能性がある。そのため、あるデプスカメラパラメーターを有する特定のデプスカメラから奥行き画像を受信するように開発される代わりに、奥行き画像コンシューマーは、仮想的なデプスカメラパラメーターを有する仮想的なデプスカメラとの互換性のために開発されてもよい。後述するように、デプスカメラ互換性システムは、実際のカメラからの奥行き情報が奥行き画像コンシューマーによって使用することができるように、仮想的なデプスカメラの仮想パラメーターに従って、実際のカメラから受信した奥行き情報を効果的に変換することができる。
【0024】
[0033]いくつかの実施例において、初期化モジュール36は、奥行き画像コンシューマーのサポートされる仮想的なデプスカメラパラメーターとの互換性を目指して奥行きカメラを向けることを容易にする目標命令(aiming instructions)37を生成するように構成することができる。例として、奥行き画像コンシューマーは、ユーザーの足をスキャンすることができるようにデプスカメラが床に向かって下に向けられることを期待することがある。そのため、目標命令はこの期待を伝えるために生成することができる。自動的に自身を再配置する位置決めモーター又は他の手段をデプスカメラが含む実施例(例えば、奥行き画像プロデューサー34cのデプスカメラ)において、初期化モジュールは、デプスカメラが目標命令に従って自身を再配置し得るように、デプスカメラに目標命令を送信するように構成されてもよい。いくつかの実施例では、目標命令は、ユーザーが手動でデプスカメラを再配置することができるように、視覚的及び/又は音声の指示を介してユーザーに伝えることができる。
【0025】
[0034]いくつかの実施例では、奥行き画像コンシューマーが予想される座標系を有する奥行き画像を受け取るように、座標系を抽象化することができる。いくつかの例では、これは、視線(line of sight)を測定するハードウェアを使用するか又はカメラに対する床の角度を測定することによって、(例えば)床と整列されるように座標系を回転させることを含む。
【0026】
[0035]キャプチャーモジュール38は、奥行き画像プロデューサーから固有の奥行き画像を受け取るように構成することができる。限定的でない例として、キャプチャーモジュールは、飛行時間カメラを含む奥行き画像プロデューサーから固有の奥行き画像を受け取ってもよい。上述したように、キャプチャーモジュールは、必要に応じて、奥行き画像コンシューマー及び奥行き画像プロデューサーが互いに通信するために使用できるAPIの一部として実施されてもよい。
【0027】
[0036]奥行き画像プロデューサーは奥行きカメラのみを含んでもよいし、又は奥行き画像プロデューサーは、デプスカメラのほか、オフボードの(off-board)処理エンジンを含んでもよい。図4Aに示すように、奥行き画像プロデューサー34’は、生のデプスカメラのデータ(図示せず)を固有の奥行き画像54に変換するように構成されるカメラ上の(オンカメラ)プロセッサー52を含んでもよい。そのような場合には、キャプチャーモジュール38’は、オンカメラ(on-camera)プロセッサー52を介して固有の奥行き画像54を受信するように構成することができる。図4Bに示すように、奥行き画像プロデューサー34’’は、生のデプスカメラデータ60を固有の奥行き画像54’’に変換するオフカメラ(off-camera)プロセッサー56を含んでもよい。オフカメラプロセッサー56は、例えば奥行き画像コンシューマー32’’が実行されるコンピューティングシステム10’’の一部であってもよい。そのような場合には、キャプチャーモジュール38’’は、オフカメラプロセッサー56を介して固有の奥行き画像を受信するように構成することができる。図4Cに示すように、奥行き画像プロデューサー34’’’が、協働して生のデプスカメラデータ(図示せず)を固有の奥行き画像54’’’に変換するオンカメラプロセッサー52’’’及びオフカメラプロセッサー56’’’を含んでもよい。そのような場合には、キャプチャーモジュール38’’’は、オンカメラプロセッサー52’’’及びオフカメラプロセッサー56’’’を介して固有の奥行き画像54’’’を受け取るように構成することができる。特に、オンカメラプロセッサー52’’’は、オフカメラプロセッサー56’’’に、生のデプスカメラデータから部分的に処理された中間データ62を渡すことができる。図4Bの例のように、オフカメラプロセッサー56’’’は、例えば奥行き画像コンシューマー32’’’が実行されるコンピューティングシステム10’’’の一部であってもよい。
【0028】
[0037]図2に戻ると、仮想化モジュール40は、固有の奥行き画像を、奥行き画像コンシューマーと互換性のある、サポートされた仮想的なデプスカメラパラメーターを有する仮想的な奥行き画像に変換するように構成することができる。特に、仮想化モジュールは、奥行き画像コンシューマーから初期化モジュールを介して受信される仮想パラメーターの指示に従って、固有の奥行き画像を仮想的な奥行き画像に変換するように構成することができる。仮想化モジュールは、必要に応じて、APIの一部として、又は奥行き画像コンシューマーと奥行き画像プロデューサーが通信に使用するAPIと互換性のあるアプリケーションもしくはサービスとして実施することができる。
【0029】
[0038]1つの例示的な変換として、仮想化モジュール40は、固有の奥行き画像の視覚角錐(view frustum)をクリッピングすることにより、固有の奥行き画像を仮想的な奥行き画像に変換するように構成することができる。この例はやや概略的に図3Bに示されている。仮想的な視覚角錐70が実線で示される。仮想的な視覚角錐70は仮想的なデプスカメラパラメーターによって特定することができる。実際のデプスカメラ74の固有の視覚角錐72は同じ視野内で重ねられる。固有の視覚角錐72は破線で示される。比較して見ることができるように、固有の視覚角錐72は、仮想的な視覚角錐70よりも広い視野と深い被写界深度を有する。このように、固有の視覚角錐72は、仮想的な視覚角錐70を予測する奥行き画像コンシューマーに対して互換性がないことがある。
【0030】
[0039]仮想化モジュールは、仮想的な視覚角錐のそれに固有の視覚角錐をクリッピングすることができる。言い換えると、仮想的な視覚角錐の視野及び/又は被写界深度の外にあるデプスカメラ74によって読み取られる奥行き情報は、奥行き画像から除去されてもよい。いくつかの実施例では、仮想的な視覚角錐の奥行き情報がそのまま残される一方、除去された奥行き情報を単に無視してもよい。いくつかの実施例では、除去された奥行き情報は、仮想的な視覚角錐における奥行き情報を選択的に修正するために使用することができる。
【0031】
[0040]別の例示的な変換として、仮想化モジュール40は、固有の奥行き画像の解像度を変更する(例えば、固有の奥行き画像の解像度を下げる)ことにより、固有の奥行き画像を仮想的な奥行き画像に変換するように構成することができる。実質的に任意の再サンプリングアルゴリズムを、解像度を変更するために使用することができる。限定的でない例として、所望の解像度を有するサンプルグリッドが実際のデプスカメラからの奥行き画像と概念的に整列される最近傍アルゴリズムを使用することができる。サンプルグリッドの各サンプル画素には、サンプル画素に最も近い実際のデプスカメラからの画素の深度値(奥行き値、depth value)を割り当てることができる。他の限定的でない例として、再サンプリングアルゴリズムは、最も近い画素の平均値又は距離で重み付けされた平均値をとってもよい。
【0032】
[0041]視覚角錐をクリッピングし解像度を変更する上記の例は限定的なものではない。奥行き画像コンシューマーが任意の数の異なる仮想パラメーターをもつ仮想カメラを予期して設計することができ、奥行き画像コンシューマーの仮想デプスカメラとの互換性を達成するためにそのようなパラメーターに従って実際の奥行き画像を変換することができることが理解されるべきである。
【0033】
[0042]図2に戻ると、いくつかの実施例において、仮想化モジュール40は、奥行き画像コンシューマーによってサポートされるサポートされた型を持つエミュレーション奥行き画像へと固有の奥行き画像を処理することによって固有の奥行き画像を仮想的な奥行き画像に変換するように構成された、エミュレーションモジュール44を含んでもよい。言い換えれば、奥行き画像コンシューマーは、特定のモデルのデプスカメラ及び/又は特定の奥行き取得技術(例えば、構造化された光又は飛行時間)を使用して作成される奥行き画像を予期するように設計することができる。異なる種類のデプスカメラからの奥行き画像は、各画素に深度値が割り当てられる奥行き画像を最終的に生成するかもしれないが、異なる種類のデプスカメラ間の差異は、各画素に割り当てられる深度値の間の様々な差異をもたらすかもしれない。奥行き画像コンシューマーは特定のデプスカメラからの特定の種類の奥行き画像を処理するように設計することができる。このように、エミュレーションモジュール44は、サポートされていないデプスカメラからの奥行き画像を、サポートされているデプスカメラからもたらされたかのように見えるように変更するよう構成することができる。
【0034】
[0043]例えば、エミュレーションモジュール44は、飛行時間型デプスカメラ(time of flight depth camera)からの固有の奥行き画像を、構造化された光のデプスカメラ(structured light depth camera)によって生成される奥行き画像をエミュレートするエミュレーション奥行き画像に変換することができる。この例は限定的なものではない。エミュレーションモジュール44は、実質的に任意のカメラ技術からの固有の奥行き画像を、実質的に任意の他の種類のカメラ技術によって生成される奥行き画像をエミュレートするエミュレーション奥行き画像に変換するように構成されてもよい。
【0035】
[0044]エミュレーションモジュール44は、いくつかの実施例では仮想化モジュール40の一部であってもよいが、本明細書に記載されるエミュレーション技術は、視覚角錐クリッピング及び/又は解像度の変更などの任意の他の仮想化技術とは独立して実行することができることを理解すべきである。いずれの場合も、エミュレーションモジュール44は、必要に応じて、APIの一部として、又は奥行き画像コンシューマー及び奥行き画像プロデューサーが通信に使用するAPIと互換性のあるアプリケーション又はサービスとして実施されてもよい。
【0036】
[0045]エミュレーションモジュールは次のうちの1つ又は複数を含んでもよい:ノイズ抑制モジュール80、エッジ強調モジュール82、無効化モジュール84、奥行き量子化モジュール86、小型オブジェクト補正(small object correction)モジュール88、影シミュレーションモジュール90。
【0037】
[0046]ノイズ抑制モジュール80は、固有の奥行き画像中の異なる奥行き値をもつ隣接する画素領域間の奥行きエッジ(depth edge)を維持するように構成することができる。ノイズ抑制モジュール80の機能は、図6の118を参照して以下により詳細に記載される。
【0038】
[0047]エッジ強調モジュール82は、固有の奥行き画像中の異なる奥行き値を持つ隣接する画素領域間の奥行きエッジを強調するように構成することができる。エッジ強調モジュール82の機能は、図6の126を参照して以下により詳細に記載される。
【0039】
[0048]無効化モジュール84は、所定の範囲の外の結合された照明及び傾斜を有する画素を無効にするように構成することができる。無効化モジュール84の機能は、図6の120−124を参照して以下により詳細に記載される。
【0040】
[0049]奥行き量子化モジュール86は深度値を量子化するように構成することができる。奥行き量子化モジュール86の機能は、図6の128を参照して以下により詳細に記載される。
【0041】
[0050]小型オブジェクト補正モジュール88は、しきい値サイズ未満のオブジェクトに属する画素に、より深い深度値を割り当てるように構成することができる。小型オブジェクト補正モジュール88の機能は、図6の130を参照して以下により詳細に記載される。
【0042】
[0051]影シミュレーション(shadow simulation)モジュール90は、飛行時間型デプスカメラから仮想的に間隔を空けられた仮想的な照明の仮想的な見晴らしのよい点から仮想的に塞がれた画素に影の画素値を割り当てるように構成することができる。影シミュレーションモジュール90の機能は、図6の132を参照して以下により詳細に記載される。
【0043】
[0052]仮想化モジュール40は、実際のデプスカメラからの固有の奥行き画像を、奥行き画像コンシューマーと互換性のあるサポートされる仮想的なデプスカメラパラメーターを有する仮想的な奥行き画像に変換する。出力モジュール42は、奥行き画像コンシューマーに、この仮想的な奥行き画像を出力するように構成される。奥行き画像コンシューマーは、その後、分析及び/又はさらなる処理のために、仮想的な奥行き画像を受け取ってもよい。出力モジュールは、必要に応じて、奥行き画像コンシューマー及び奥行き画像プロデューサーが互いに通信するために使用できるAPIの一部として実施されてもよい。初期化モジュール36、キャプチャーモジュール38、仮想化モジュール40、及び出力モジュール42は、個別のモジュールとして上述されているが、2つ以上のモジュールが共通のAPIへと動作可能に組み合わされてもよいことが理解されるべきである。
【0044】
[0053]図5は、奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性を提供する方法100を示している。方法100は、例えば、図2の奥行きカメラ互換性システム30を使用して、実施することができる。
【0045】
[0054]102において、方法100は、サポートされている仮想的なデプスカメラパラメーターの指示を受信することを含む。上記のように、仮想的なデプスカメラパラメーターは、仮想デプスカメラの視覚角錐、仮想デプスカメラの解像度、仮想デプスカメラが基づいている実際のデプスカメラのモデル、及び/又は仮想デプスカメラの他の特性を指定してもよい。
【0046】
[0055]104において、方法100は、奥行き画像コンシューマーとの互換性がないサポートされないデプスカメラパラメーターを有する固有の奥行き画像を受信することを含む。 106において、方法100は、奥行き画像コンシューマーと互換性のあるサポートされる仮想デプスカメラパラメーターを有する仮想的な奥行き画像へと固有の奥行き画像を変換することを含む。上記のように、固有の奥行き画像を変換することは、固有の奥行き画像の視覚角錐をクリッピングすること、固有の奥行き画像の解像度を下げること、及び/又は奥行き画像コンシューマーによってサポートされたサポートされるタイプを有するエミュレーション奥行き画像へと、固有の奥行き画像を処理すること、うちの1つ又は複数を含んでもよい。
【0047】
[0056]108において、方法100は、奥行き画像コンシューマーに仮想的な奥行き画像を出力することを含む。仮想的な奥行き画像はサポートされる仮想デプスカメラのパラメーターに対して調整されるので、奥行き画像コンシューマーによって使用することができる。しかし、方法100は異なるデプスカメラからの様々な異なる固有の奥行き画像に適用することができるため、奥行き画像コンシューマーは、単一の特定の種類のデプスカメラから奥行き画像を受信することに限定されない。
【0048】
[0057]図6はデプスカメラの互換性を提供する別の方法110を示す。112において、方法110は、奥行き画像コンシューマーについてのサポートされる仮想デプスカメラパラメーターを奥行き画像コンシューマーから受信することを含む。これは、例えば、奥行き画像コンシューマーと互換性のあるモデルのデプスカメラ(例えば、構造化された光のデプスカメラ)の指示を受信することを含んでもよい。
【0049】
[0058]114において、方法110は、奥行き画像コンシューマーによってサポートされない、サポートされないタイプを有する固有の奥行き画像を受信することを含む。たとえば、固有の奥行き画像は、モデルのデプスカメラ以外のソースからのものであってもよい。このように、固有の奥行き画像は奥行き画像コンシューマーと互換性がないことがあり、したがって、サポートされないタイプを有し得る。上で紹介した例を続けると、奥行き画像コンシューマーは、構造化された光デプスカメラからの奥行き画像をサポートしてもよい。しかし、飛行時間型のデプスカメラなどの別のソースから固有の奥行き画像が受信されてもよく、したがって、固有の奥行き画像は奥行き画像コンシューマーについてサポートされないタイプを有する。
【0050】
[0059]116において、方法110は、奥行き画像コンシューマーによってサポートされたサポートされるタイプを有するエミュレーション奥行き画像へと、固有の奥行き画像を処理することを含む。言い換えれば、エミュレーション奥行き画像は、モデルデプスカメラによって生成された奥行き画像などの、奥行き画像コンシューマーと互換性のある奥行き画像をエミュレートするように修正することができる。上で紹介した例を続けると、飛行時間型デプスカメラから受信される固有の奥行き画像は、例えば、構造化された光のデプスカメラによって生成される奥行き画像をエミュレートするエミュレーション奥行き画像へと処理することができる。
【0051】
[0060]図6に示すように、固有の奥行き画像をエミュレーション奥行き画像へと処理することは、以下により詳細に説明するように、さまざまな技術を利用してもよい。このような技術は限定的でないと理解することができる。さらに、図6に示されない追加の技術を、代替的に又は付加的に適用することができる。
【0052】
[0061]118において、方法110は、固有の奥行き画像に対してエッジ保存フィルター(edge preserving filter)を適用することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合は、このような固有の奥行き画像は、飛行時間型デプスカメラ間の標準的な副産物であるランダムノイズを有し得る。しかし、構造化された光のデプスカメラは本質的に滑らかな(平坦な)信号を有しており、このような信号をさらにソフトウェアでフィルタリングすることができる。したがって、この種のより滑らかな信号をエミュレートするために、飛行時間型デプスカメラから受信した固有の奥行き画像を、重要な奥行きの特徴を損なうことなく、飛行時間デプスマップからのノイズを抑制するように処理することができる。これを行うために、エッジ保持フィルタを、固有の奥行き画像からのノイズを抑制するために使用することができる。Perona-Malikの著作(異方性拡散を用いたスケールスペース及びエッジ検出、IEEE Transactions on Pattern Analysis and Machine Intelligence, v.12 n.7, p.629-639, 1990)及びWeickertらの著作(J. Weickert, B.M. ter Haar Romeny, M.A. Viergever, 非線形拡散フィルタリングのための効率的かつ信頼性の高いスキーム、IEEE Trans. Image Proc., v.7 n.3, pp. 398-410, 1998)に記載されているものに基づく非線形偏微分方程式を利用するなど、任意の適切な手法を使用することができる。エッジしきい値パラメーターは、カメラの奥行き精度の上限(例えば、K=10[cm])に設定することができる。固有の奥行き画像にエッジ保存フィルターを適用することによって、固有の奥行き画像内のオブジェクト間の不連続性が良好に保たれる一方、固有の奥行き画像内のノイズレベルが大幅に低下し得る。
【0053】
[0062]図6について続けると、120において、方法110は、(例えば、飛行時間解析においてシーンを照らすために使用される赤外光から測定されるような)照明画像(illumination image)上をメディアンフィルターを通過させることによって、信頼性マップ(confidence map)を構築することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理して構造化された光のデプスカメラのものをエミュレートする場合、そのような信頼性マップは、構造化された光のデプスカメラで発生する画素の無効化現象をエミュレートするために利用され得る。構造化光技術において、奥行きはパターン一致を見つけることによって計算される。一致が見つかれば奥行きを比較的正確に計算することができるが、一致が見つからない場合、奥行きは計算できず、その画素での測定は無効である。飛行時間技術において、奥行きは一般的にどこででも測定することができるが、(例えば、照明のレベルに応じて)異なる精度をもつ。したがって、奥行き測定が不正確になって(例えば、信号のノイズが暗領域において多くなりすぎる)構造化された光の奥行き画像をエミュレートする場合、飛行時間奥行き画像における照明のレベルは容易に予測することができる。これを行うために、入力として照明画像を用いて、信頼性マップを構築することができる。信頼性マップは、異常値を削除しノイズを抑制するために、最初に照明画像上をメジアンフィルターを通過させることによって、構築することができる。次いで、各画素に対して、次のようなソフト閾値関数(soft threshold function)を使用することができる。
【0054】
【数1】
【0055】
ここで、パラメーターkは、カメラのバージョンによって変更されてもよい。例として、kはいくつかの実施例では60に設定することができる。
[0063]信頼性マップを構築することに加えて、画像内の他の領域を識別することが望ましいかもしれない。したがって、122において、方法110は、固有の奥行き画像から傾斜表面マップ(oblique surface map)を構築することを含んでもよい。構造化された光のデプスカメラの固有の奥行き画像をエミュレートするために飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、構造化された光のデプスカメラで発生する画素無効化現象がさらに、パターンマッチングの困難性に対応している可能性が高い領域を識別することによってエミュレートされてもよい。構造化された光照明装置によって投影されるパターンが傾いた物体(すなわち、照明の光線に対して鋭角の表面)上に現れることがあり、従って、パターン一致はしばしばそこで失敗し、無効な測定値を生むことがある。したがって、飛行時間型デプスカメラから受信した固有の奥行き画像は、傾斜面を識別するために傾斜面マップを構築することによって処理することができる。これは、例えば、視野及び解像度などのカメラパラメーターを使用して、画素ごとに世界表面角度(world surface angle)を計算すること、及び、次いでガウシアンフィルタリングによってこれを平滑化することを含んでもよい。さらに、k=45で、上記で定義したFkなどのソフト閾値関数を使用することができる。
【0056】
[0064]124において、方法110は、信頼性マップと傾斜面マップを無効化テストマップに一体化することを含んでもよい。信頼性マップと傾斜面マップの両方が0と1との間の値を有する場合は、当該2つのマップは、例えば、2つのマップを乗算し、0.5の閾値で閾値化する(thresholding)ことによって一体化することができる。メジアンフィルターは結果を正規化する(regularize)ために使用することができる。このような処理は、所定の範囲外にある画素を無効にするために使用することができる。
【0057】
[0065]図6について続けると、126において、方法110は、固有の奥行き画像の異なる奥行き値を持つ隣接する画素領域間のエッジを強調することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、この技術で計算されるような奥行き値は画素視野(pixel field of view)フィールドの奥行きの平均値であるので、そのような飛行時間型デプスカメラはエッジをぼかす傾向にある。しかし、構造化された光のデプスカメラのエッジ上の奥行きは、通常、測定されず、データは合成されて、オブジェクト間の急激な遷移を生成する。したがって、構造化された光のデプスカメラからの奥行き画像をエミュレートするために、飛行時間型デプスカメラからの固有の奥行き画像は、エッジをよりシャープにするために、異なる奥行き値を持つ隣接する画素領域間のエッジを強調するために処理することができる。任意の適切な手法をそのようなエッジの強調のために使用することができ、1つのそのような適切な手法は以下に詳細に記載される。
【0058】
[0066]x方向における前進差分D+及び後退差分D−を画素毎に計算することができる。その後、次のようにマスクを決定することができる:Mask_x=1(min(D+,D−)>4cmの場合)、そうでなければ0、そればステップエッジを回避するために傾斜する。その後、同様の計算が、Mask_yを計算するためにy方向で行うことができる。その後、Mask_x又はMask_yのいずれか==1の場合の各画素に対して、3×3の近傍における最大値がとられる。
【0059】
[0067]図6について続けると、128において、方法110は、奥行き値を量子化することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、奥行き値は、構造化された光のデプスカメラから受信される奥行き画像をエミュレートするために量子化することができる。構造化された光の技術は、奥行きを計算するために三角測量に基づく。奥行きは、固有のセンサー分解能が有限であるように量子化されたパターン変位の関数である。飛行時間の技術において、奥行き測定値は固有の解像度には関係しない。したがって、量子化効果を変形された奥行きマップに組み入れることが望まれる。これは任意の適切な手法によって行うことができる。1つのそのような適切な手法は、三角測量ベースのカメラで発生するものに類似した非線形量子化式を構築するために、構造化された光のデプスカメラのパラメーター(例えば、視野、固有のセンサー分解能、焦点距離、センサーと照明の中心との間の距離)及びデプスマップをとることを含む。例として、奥行きDの関数として画素における変換Tは次のように定義される
【0060】
【数2】
【0061】
ここで、focal_lengthは構造化された光のデプスカメラの焦点距離であり、pixel_sizeはセンサーの画素サイズであり、camera_illumはカメラセンサーと照明の中心との間の距離であり、angleはカメラセンサーの中心からの垂直な線に対する物体の角度である。次いで、量子化Qは、変換T(D)の関数として、次のように記述することができる
【0062】
【数3】
【0063】
このように、奥行きマップは、構造化された光の技術において三角測量計算によって生成されるのと同様にして奥行きを量子化する。
[0068]図6について続けると、130において、方法110は、閾値のサイズ未満の物体に属する画素により深い奥行き値を割り当てることを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、構造化された光のデプスカメラから受信される奥行き画像をエミュレートするために、より深い奥行き値が小さな物体の画素に割り当てられてもよい。構造化された光のデプスカメラは、小さすぎる物体上にうまく投影することができないパターンに基づく。従って、このような小さな物体は、しばしば、バックグラウンドの奥行き値を割り当てられる。より深い奥行き値は、任意の適切な方法で、小さな物体の画素に割り当てることができる。1つのそのような手法は、形態学的閉鎖(morphological closing)を行うことを含む。このように、要素の構築は解像度に依存する。例として、おおよそ3×3のサイズのボールの要素を使用することができる。したがって、奥行き画像において観察することができる最小の物体のサイズを修正することができ、効果は構造化された光のデプスカメラで行われる後処理に類似する。
【0064】
[0069]図6について続けると、132において、方法110は、飛行時間型デプスカメラ間から実質的に間隔を空けられた仮想的な照明の仮想的な視点(virtual vantage point)から実質的に閉塞された画素に影の画素値を割り当てることを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、影の画素値は、構造化された光のデプスカメラから受信される奥行き画像をエミュレートするために割り当てることができる。上記のように、構造化された光のデプスカメラは三角測量の原理で動作する。このため、光源はセンサーから離れており、「影」効果がカメラのセンサーに対して引き起こされる。したがって、「影になった画素」は、図7に示すように、センサーにとっては見ることができるが光源の位置からは直接的には見えない画素である。ここで、第1の物体140は、第2の物体142が発光体144から直接光を受けることを妨げる。したがって、第1の物体140の画像146及び第2の物体142の画像148を受信することに加えて、センサー150はまた、第2の物体142の影になった画素152を受信する。
【0065】
[0070]したがって、飛行時間型デプスカメラから受信される固有の奥行き画像においてこの「影(shadowing)」アーティファクトをエミュレートすることが望ましい。センサーと周辺の発光体との間の短い距離のために、影効果はすでに飛行時間型デプスカメラにおいて生じているが、これはカメラにおいて正規化することができ、したがって、生成される奥行き動画においては見ることができない、と理解することができる。
【0066】
[0071]影を合成するための例示的な解決策は軽量(lightweight)アルゴリズムを使用する。当該アルゴリズムは、発光体がモデル化されたデプスカメラにあるのと同じ場所に仮想カメラを作成する。アルゴリズムは、次いで、元のセンサーからこの仮想センサーへ奥行きのサンプルを変換する。この変換は次の式を用いて行うことができる
【0067】
【数4】
【0068】
[0072]この仮想センサーに閉塞されるサンプルは影を付けられる。「発光体×画像」の各行をスキャンすることができ、すでにスキャンされた値のうち最大のXemitterImage値を有さない場合には画素に影をつけてもよい。図8は、影を付けられた画素152がXworldの値の減少のために影を付けられたものとして考慮されるアイデアを示す。
【0069】
[0073]奥行き測定の不正確さに起因するいくつかの小さな変動を克服するために、形態学的「オープン」フィルタリングを「影を付けられた画素」のマップに適用することができる。このステップは、小さな影を除去し、エッジをより四角状に見えるようにして、したがって構造化された光デプスカメラからのエッジをエミュレートする。
【0070】
[0074]図6について続けると、134において、方法110は、サポートされているタイプを有するエミュレーション奥行き画像を出力することを含む。そのようなエミュレーション奥行き画像は、デプスカメラからの固有の奥行き画像を処理できない奥行き画像コンシューマーによって使用することができる。上記の例を使用して、構造化された光デプスカメラからの構造化された光の奥行き画像を処理するように設計されたアプリケーションは、飛行時間型デプスカメラを用いて測定される固有の奥行き画像に基づいてエミュレーション奥行き画像を受信し、処理することができる。
【0071】
[0075]図9は、奥行き抽象化層内の例示的な画像処理ブロック160を示す高レベルの実施例の図である。図10は図9の画像処理ブロック160をより詳細に示す。図9及び10に示すように、画像処理ブロック160は、入力として、生の奥行きマップ、赤外照明画像に関連する情報、及びデプスカメラパラメーターを受信してもよい。画像処理ブロックは、上述したように、奥行き画像コンシューマーによって使用することができる抽象化されたエミュレーション奥行き画像162を出力してもよい。
【0072】
[0076]図1を参照して以下で説明するように、様々な異なるコンピューティングシステムを、本開示の趣旨から逸脱することなく使用することができる。図1を参照して説明される動作環境は例として提供されるが、いかなるようにも限定的なものであると意図されるものではない。そうではなく、示された動作環境は、本開示の範囲から逸脱することなく様々な異なる動作環境に適用することができる一般的な概念を示すことを意図したものである。同様に、図2に示すデプスカメラ互換性システムの概略図は、奥行き画像の仮想化及び奥行き画像のエミュレーションを説明するための簡略化されたフレームワークを提供するが、用途を図面に示すそれらの構成のみに限定することを意図されてはいない。逆に、本明細書に記載された方法及び処理は、様々な異なる種類のコンピューティングシステムに関連し得る。
【0073】
[0077]図1は、ゲーム機12及びデプスカメラ20を備えるデプスカメラ互換性システムを実施するように構成することができる限定的でない例示的なコンピューティングシステムを示す。別のより一般的な例として、図11は、本明細書に記載されるような、奥行き画像の抽象化及び/又は奥行き画像のエミュレーションを実行することができるコンピューティングシステム170を概略的に示す。コンピューティングシステム170は、とりわけ、ゲーム機、パーソナルコンピューティングシステム、軍事追跡及び/又は標的システム、グリーンスクリーン又はモーションキャプチャー機能を提供するキャラクターアクイジションシステムを含むがこれらに限定されない、さまざまな異なる形式をとってもよい。
【0074】
[0078]コンピューティングシステム170は、論理サブシステム172、論理サブシステムに動作可能に接続されるデータ保持サブシステム174、ディスプレイサブシステム176、及び/又は奥行き画像プロデューサー178を含んでもよい。コンピューティングシステムは必要に応じて図11に示されていないコンポーネントを含んでもよく、及び/又は図11に示すいくつかのコンポーネントはコンピューティングシステムへと統合されない周辺コンポーネントであってもよい。
【0075】
[0079]論理サブシステム172は、1つ又は複数の命令を実行するように構成された1つ又は複数の物理デバイスを含んでもよい。例えば、論理サブシステムは、1つ又は複数のプログラム、ルーチン、オブジェクト、コンポーネント、データ構造、アプリケーションプログラミングインターフェース又は他の論理的な構成の一部である1つ又は複数の命令を実行するように構成することができる。そのような命令は、タスクを実行し、データ型を実施し、1つ又は複数のデバイスの状態を変換し、異なるコンピューティングオブジェクトとの間で情報を通信し、又はそうでなければ望ましい結果に到達するために実施することができる。論理サブシステムは、ソフトウェア命令を実行するように構成される1つ又は複数のプロセッサーを含んでもよい。加えて又は代わりに、論理サブシステムは、ハードウェア命令又はファームウェア命令を実行するように構成された1つ又は複数のハードウェア又はファームウェア論理マシンを含んでもよい。論理サブシステムは、必要に応じて、いくつかの実施例においては遠隔に配置され得る2つ以上のデバイスにわたって分散される個々のコンポーネントを含んでもよい。
【0076】
[0080]データ保持サブシステム174は、本明細書に記載された方法及びプロセスを実施するために論理サブシステムによって実行可能なデータ及び/又は命令を保持するように構成された1つ又は複数の物理的な持続性のデバイスを含んでもよい。そのような方法やプロセスが実施される場合、データ保持サブシステム174の状態は、(例えば、異なるデータを保持するために)変換することができる。データ保持サブシステム174は、取り外し可能な媒体及び/又は内蔵デバイスを含んでもよい。データ保持サブシステム174は、とりわけ、光メモリー装置、半導体メモリー装置(例えば、RAM、EEPROM、フラッシュなど)、及び/又は磁気メモリーデバイスを含んでもよい。データ保持サブシステム174は、次のような特徴のうちの1つ又は複数を備えたデバイスを含んでもよい:揮発性、不揮発性、動的、静的、読み取り/書き込み、読み取り専用、ランダムアクセス、シーケンシャルアクセス、位置アドレス指定可能、アドレス指定可能なファイル、及びアドレス指定可能なコンテンツ。いくつかの実施例では、論理サブシステム172及びデータ保持サブシステム174は、特定用途向け集積回路又はチップ上のシステムとして、1つ又は複数の共通のデバイスへと統合することができる。
【0077】
[0081]「モジュール」及び「エンジン」という用語は、1つ又は複数の特定の機能を実行するように実施されるコンピューティングシステム170の態様を記述するために使用することができる。いくつかの場合には、このようなモジュールやエンジンは、データ保持サブシステム174によって保持される命令を実行する論理サブシステム172を介してインスタンス化することができる。異なるモジュール及び/又はエンジンを同じアプリケーション、コードブロック、オブジェクト、ルーチン、及び/又は関数からインスタンス化することができることが理解されるべきである。同様に、同一のモジュール及び/又はエンジンは、いくつかの場合には、異なるアプリケーション、コードブロック、オブジェクト、ルーチン、及び/又は関数によってインスタンス化することができる。例として、図2を参照して説明されるモジュールのうちの1つ又は複数をAPIとして実施することができる。
【0078】
[0082]ディスプレイサブシステム176は、データ保持サブシステム174によって保持されるデータの視覚的表現を提示するために使用することができる。本明細書に記載の方法とプロセスは、データ保持サブシステムによって保持されるデータを変更し、したがってデータ保持サブシステムの状態を変更するので、ディスプレイ・サブシステム176の状態は、同様に、基礎的データの変更を視覚的に表すように変換することができる。ディスプレイサブシステム176は、実質的に任意の種類の技術を利用する1つ又は複数のディスプレイデバイスを含んでもよい。このようなディスプレイデバイスは、共有される筐体において論理サブシステム172及び/もしくはデータ保持サブシステム174と組み合わせることができ、又はそのようなディスプレイデバイスは図1に示すように周辺ディスプレイデバイスであってもよい。
【0079】
[0083]コンピューティングシステム170はさらに、1つ又は複数の目標及び/又はシーンの奥行き画像を取得するように構成される奥行き画像プロデューサー178を含む。奥行き画像プロデューサー178は、任意の適切な技術(例えば、飛行時間、構造化された光、ステレオ画像など)を介して奥行き情報をもつ動画をキャプチャーするように構成されてもよい。このように、奥行き画像プロデューサー178は、デプスカメラ、ビデオカメラ、ステレオカメラ、及び/又は他の適切なキャプチャー装置を含んでもよい。上で図4A−4Cを参照して説明されるように、奥行き画像プロデューサーは、生のデプスカメラデータを奥行き画像へと変換する1つ又は複数のオンカメラプロセッサー及び/又はオフカメラプロセッサーを含んでもよい。言い換えれば、デプスカメラは、必要に応じて、1つ又は複数の奥行き分析機能を実行するように構成された1つ又は複数のオンボード処理ユニットを含んでもよい。デプスカメラは、そのようなオンボード処理論理の更新を容易にするためにファームウェアを含んでもよい。
【0080】
[0084]例えば、飛行時間分析において、奥行き画像プロデューサー178は、赤外光をシーンに対して発するように構成される飛行時間型カメラを含んでもよく、シーンの表面からの後方散乱光を検出するためにセンサーを使用してもよい。いくつかの場合には、パルス赤外光を使用することができ、出射光パルスと対応する入射光のパルスとの間の時間を測定して、キャプチャー装置からシーン上の特定の位置までの物理的な距離を決定するために使用することができる。いくつかの場合には、出射光波の位相は位相シフトを決定するために入射光波の位相と比較することができ、位相シフトは、キャプチャー装置からシーン中の特定の位置への物理的な距離を決定するために使用することができる。
【0081】
[0085]別の例では、飛行時間分析は、シャッター光パルスイメージング(shuttered light pulse imaging)などの技術によって時間にわたって反射された光ビームの強度を分析することによって、キャプチャー装置からシーン内の特定の位置への物理的な距離を間接的に決定するために使用されてもよい。
【0082】
[0086]別の例では、構造化された光の分析を、奥行き情報を取得するために奥行き画像プロデューサー178によって利用することができる。そのような分析では、パターン光(すなわち、グリッドパターンやストライプパターンなどの既知のパターンとして表示される光)をシーン上に投影することができる。シーンの表面上で、パターンは変形されてもよく、パターンのこの変形は、キャプチャー装置からシーン内の特定の位置までの物理的な距離を決定するために検討することができる。
【0083】
[0087]別の例では、キャプチャー装置は、視覚的なステレオデータを取得するために異なる角度からシーンを見る2つ以上の物理的に分離されたカメラを含んでもよい。このような場合には、視覚的なステレオデータは奥行き画像を生成するために分解することができる。他の実施例では、奥行き画像プロデューサー178は、奥行き値を測定及び/又は計算するために他の技術を利用することができる。
【0084】
[0088]いくつかの実施例では、2つ以上の異なるカメラを、奥行き画像プロデューサーの一部として組み込むことができる。たとえば、デプスカメラやビデオカメラ(例えば、RGBビデオカメラ)を奥行き画像プロデューサーに組み込むことができる。ビデオカメラが使用される場合、それは、目標追跡データ、シーン解析、画像キャプチャー、顔認識、指(又は他の小さな特徴)の高精度追跡、光センシング、及び/又は他の機能のエラー訂正のための確認データを提供するために使用することができる。
【0085】
[0089]さらに、上記の説明が単一のデプスカメラの使用/エミュレーションに向けられている一方、上記の互換性技術は、同時に2つ以上のデプスカメラを使用/エミュレートするために使用することができることを理解すべきである。例えば、2つのカメラを、隣接するシーンを表示するために使用することができ、APIは、両方のカメラからの情報を効果的に組み合わせて、より広い視野を持つ単一のカメラをエミュレートすることができる。別の例として、単一の広角カメラを使用することができ、APIは、異なる方向に見る狭い視野をもつ2つのカメラによって生成されたかのように、2つの別個の奥行き画像を生成することができる。
【0086】
[0090]いくつかの実施例では、2つ以上のデプスカメラは、異なる視点から同じシーンを見るのに使用することができる。このような場合には、APIは、両方のカメラからの情報を効果的に組み合わて、奥行き画像コンシューマーに対して透過的な方法で、より多くの/より良い3Dデータを提供することができる。
【0087】
[0091]本明細書に記載された構成及び/又は手法が本質的に例示的なものであり、多くのバリエーションが可能であるので、これらの特定の実施例又は例は、限定的な意味で考慮されるべきではないことが理解されるべきである。本明細書に記載された特定のルーチン又は方法は、任意の数の処理方法のうちの1つ又は複数を表してもよい。このように、示された様々な動作は、示された順序で、他の順序で、並列に、実行されてもよく、又は他の場合には省略されてもよい。同様に、上記の処理の順序は変更されてもよい。
【0088】
[0092]本開示の主題は、本明細書に開示された様々なプロセス、システム、構成、他の特徴、機能、動作、及び/又は特性のすべての新規で自明でない組み合わせ及びサブコンビネーションのほか、それらの任意の及びすべての均等物を含む。
【技術分野】
【0001】
本発明は、デプスカメラの互換性に関する。
【背景技術】
【0002】
[0001]カメラはシーンの静止画像をとらえるために使用することができる。立て続けに撮影されるいくつかの静止画像を、各々が異なる静止画像に対応する複数のフレームを含む動画を生成するために使用することができる。このような画像は異なる様々な用途において非常に有用であるが、そのような画像はいくつかの目的のためにはあまり適していない。特に、従来の静止画像及び動画は、シーン内のとらえられた様々な表面の相対的な奥行きを評価するのに十分な情報を提供しない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
様々な種類のデプス(depth)カメラがこのニーズを満たすために開発されてきた。しかし、様々な種類のデプスカメラは、1つまたは複数の点で互いに異なる奥行き画像を生成し得る。そのため、奥行き画像を要するアプリケーションは、予想される特性を持つ奥行き画像を生成する特定の種類のデプスカメラと互換性を持つにすぎない。
【課題を解決するための手段】
【0004】
[0002]この概要は、詳細な説明において以下でさらに説明する概念のうちの選択されたものを簡略化した形式で紹介するために提供される。この概要は、特許請求される主題の重要な特徴及び不可欠な特徴を特定するようには意図されず、特許請求される主題の範囲を限定するために使用されるようにも意図されない。さらに、特許請求される主題は、本開示のいかなる部分に記載された任意の又はすべての不利益を解消する実施例にも限定されない。
【0005】
[0003]本開示の一態様によれば、奥行き画像コンシューマー(consumer)と複数の異なる奥行き画像プロデューサーとの間の互換性は、奥行き画像コンシューマーとの互換性のないサポートされていないデプスカメラパラメーターを有する固有の(ネイティブの、native)奥行き画像を受信すること、及び固有の奥行き画像を奥行き画像コンシューマーと互換性のあるサポートされる仮想的なデプスカメラパラメーターを有する仮想的な奥行き画像へ変換することにより、提供することができる。この仮想的な奥行き画像は、次いで、奥行き画像コンシューマーに対して出力されてもよい。
【図面の簡単な説明】
【0006】
【図1】[0004]例示的なデプスカメラの使用環境を示す。
【図2】[0005]本開示の実施例によるデプスカメラ互換性システムを示す。
【図3A】[0006]デプスカメラ視界四角錐を概略的に示す。
【図3B】デプスカメラ視界四角錐を概略的に示す。
【図4A】[0007]本開示による例示的な奥行き画像プロデューサーを示す。
【図4B】本開示による例示的な奥行き画像プロデューサーを示す。
【図4C】本開示による例示的な奥行き画像プロデューサーを示す。
【図5】[0008]奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性を提供する例示的な方法を示す。
【図6】[0009]デプスカメラの互換性を提供する別の例示的な方法を示す。
【図7】[0010]光源から離れているセンサー上に作成される影効果の例を概略的に示す。
【図8】[0011]影合成アルゴリズムによって影になった画素を見つけることを示す例示的なプロットを概略的に示す。
【図9】[0012]奥行き抽象化レイヤー内の例示的な画像処理ブロックを概略的に示す。
【図10】[0013]図9の例示的な画像処理ブロックをより詳細に概略的に示す。
【図11】[0014]本開示の実施例によるコンピューティングシステムを概略的に示す。
【発明を実施するための形態】
【0007】
[0015]本開示はデプスカメラの互換性を対象とする。本明細書に記載されるような互換性技術は、異なるモデルのデプスカメラが同じコンピューティングシステムによって使用されることを可能にする。アプリケーション開発者は、アプリケーション開発者がアプリケーションを作成する時には存在しないデプスカメラを含む、さまざまな異なるデプスカメラと互換性のあるアプリケーションを容易に作成することができる。本開示の一態様によれば、アプリケーション開発者は、汎用の仮想デプスカメラで動作するように構成されているアプリケーションを作成することができ、互換性技術によって、様々な異なるデプスカメラからの固有の入力を汎用の仮想デプスカメラと互換性のある形式に変換することができる。このように、アプリケーションは、まったく異なる奥行き探索技術(例えば、構造化された光、飛行時間、ステレオビジョンなど)を利用するデプスカメラを含む、さまざまな異なるデプスカメラと互換性をもつことができる。
【0008】
[0016]本明細書に記載される技術を使用すれば、アプリケーション開発者は、様々な異なるデプスカメラをサポートする面倒で困難な仕事を気にする必要はなく、その代わりに、単一の汎用仮想デプスカメラを開発することができる。同時に、互換性技術によって、改善された性能、製造コスト及び/又は運用コストの低減、エネルギー効率の改善、及び/又は他の有用な特性を提供することができる新しいデプスカメラの開発及び実施が容易になる。そのため、新たなカメラ技術が開発されるので、そのような技術は以前に開発されたアプリケーションと下位互換性のある新たなカメラにおいて実施することができる。
【0009】
[0017]図1は、上記で紹介されたカメラ互換性を提供するデプスカメラ互換性システムを用いて設計することができるコンピューティングシステム10の限定的でない例を示す。特に、図1は、様々な異なるゲームをプレイし、1つもしくは複数の異なるメディアタイプを再生し、及び/又はゲームでないアプリケーションを制御もしくは操作するのに使用することができるゲーム機12を示す。図1はまた、ユーザー18などのユーザーに対して視覚情報を提示するために使用することができる高精細テレビ、すなわちHDTV16の形式のディスプレイ14を示す。また、図1は、ユーザー18などの一人又は複数のユーザーを視覚的に監視するために使用することができるデプスカメラ20の形式のキャプチャー装置を示す。ゲームシステムの文脈で説明したが、デプスカメラ互換性システムは、デプスカメラからの奥行き画像を使用するように構成される実質的にすべてのコンピューティングシステムにおいて実施することができることが理解されるべきである。
【0010】
[0018]ゲーム機12などのコンピューティングシステムは、ユーザー18などの1つ又は複数のターゲットを認識し、分析し、及び/又は追跡するために使用されることができる。ターゲットの動きは、オペレーティングシステム及び/又はアプリケーションの制御として解釈されてもよい。オペレーティングシステム及び/又はアプリケーションの実質的に任意の制御可能な態様は、ユーザー18などのターゲットの動きによって制御することができる。
【0011】
[0019]これに加えて又は代替的に、デプスカメラ20を介して取得した奥行き情報は目標を追跡する以外の目的に使用することができる。例として、デプスカメラ20は、部屋及び/又は1つ以上の物体を視覚的に調査するために使用することができる。デプスカメラ20から取得した奥行き情報は、調査される部屋及び/又は物体の3次元のコンピューター読み取り可能なモデルを作成するために使用することができる。
【0012】
[0020]別の例として、デプスカメラは、車両やロボットなどの移動するコンピューティングシステム上の近接センサーとして使用することができる。
[0021]デプスカメラ20などのデプスカメラは、これら及び様々な他の有用な機能を提供するために使用することができる。特に、アプリケーションは、デプスカメラからの奥行き情報を利用する任意の数のさまざまな機能を提供するために開発して配置することができる。しかし、ほとんどのアプリケーションは、見られたシーンの現実の世界の特徴を奥行き情報から推定するための複雑なアルゴリズム及び処理戦略を含む。たとえば、骨格追跡(skeletal tracking)アルゴリズム及び処理戦略は、ターゲットを追跡する骨格の機械表現を用いてユーザー18などのターゲットをモデル化するために使用することができる。別の例として、床面を見つけるアルゴリズムは、シーン内の床面を見つけるために使用することができる。
【0013】
[0022]本明細書に記載のカメラ互換性技術を利用しないアプリケーションは、特定のフォーマットの及び/又は特定のパラメーターを持つ奥行き情報を受け取るように設計することができる。このようなアプリケーションは、望ましいフォーマット及び/又はパラメーターと一致しない奥行き情報を使用することができないかもしれない。いくつかの場合には、望ましいフォーマット及び/又はパラメーターと一致しない奥行き情報は、そのようなアプリケーションをクラッシュさせる可能性がある。
【0014】
[0023]異なる種類のデプスカメラの各々は1つ又は複数のフォーマットの違い及び/又は異なるパラメーターを有する奥行き情報を生成することができる。そのため、現在に至るまで、アプリケーションは特定のデプスカメラ念頭に置いて設計されてきた。しかし、アプリケーションが特定のデプスカメラのみとともに使用するように設計される場合、そのアプリケーションはなじみのない形式の及び/又は予期しないパラメーターをもつ奥行き情報を出力し得る新しいカメラをサポートすることができない。
【0015】
[0024]図2は、奥行き画像コンシューマー32と複数の異なる奥行き画像プロデューサー34(例えば、奥行き画像プロデューサー34a、奥行き画像プロデューサー34b、及び奥行き画像プロデューサー34c)との間の互換性を提供するデプスカメラ互換性システム30を示す。本明細書中で使用される場合、奥行き画像コンシューマーは、デプスカメラからの奥行き情報を利用するように構成される任意のオペレーティングシステム、アプリケーション、サービス、プロセス、モジュール、エンジン、又は他のオブジェクトを指す。
【0016】
[0025]デプスカメラ互換性システム30は、デプスカメラのどのモデルが奥行き画像コンシューマーで使用することができるかに関して大きな柔軟性を提供する。異なるパラメーターを有するカメラ、異なる奥行き発見(finding)技術に基づくカメラ、及び異なる種類の奥行き画像を生成するカメラは、デプスカメラ互換性システム30と同じ意味で使用することができる。
【0017】
[0026]例として、奥行き画像プロデューサー34aは、奥行き画像を評価するために構造化された光技術を使用するデプスカメラを含んでもよい。奥行き画像プロデューサー34bは奥行き画像を評価するために飛行時間技術を使用するデプスカメラを含んでもよい。そのようなカメラの両方とも、デプスカメラ互換性システム30のおかげで奥行き画像コンシューマー32と互換性がある。奥行き画像コンシューマー32はいずれかのカメラとの互換性のために特別に設計されている必要はない。いずれかのカメラがリリースされる前に奥行き画像コンシューマー32を開発することができる。言い換えれば、デプスカメラ互換性システム30は、奥行き画像コンシューマー、及び奥行き画像コンシューマーが開発された後に開発されるデプスカメラを含む様々な異なるデプスカメラとの互換性を容易にする。
【0018】
[0027]図2に示すように、デプスカメラ互換性システム30は、初期化モジュール36、キャプチャーモジュール38、仮想化モジュール40、及び出力モジュール42を含む。少なくともいくつかの実施例において、初期化モジュール、キャプチャーモジュール、仮想化モジュール、出力モジュール、及び/又はデプスカメラ互換性システム30の他のコンポーネントは、アプリケーションプログラミングインターフェース(API)の一部として実施することができる。APIは、奥行き画像プロデューサーと奥行き画像コンシューマーとの間で使用する通信の規則を確立するために、オペレーティングシステム、アプリケーション、ライブラリー、及び/又は他のオブジェクトによって実施されてもよい。 APIは、奥行き画像プロデューサーと奥行き画像コンシューマーとの間で通信するのに使用されるルーチン、データ構造、オブジェクトクラス及びプロトコルの仕様を含んでもよい。さらに、APIは、例えば仮想化モジュール40及びエミュレーションモジュール44を参照して以下に説明するように、様々な態様の奥行き画像を処理するように構成される機能ブロックを含んでもよいし、又はインタフェースしてもよい。
【0019】
[0028]初期化モジュール36は、奥行き画像コンシューマー32などの奥行き画像コンシューマーについてサポートされる仮想的なデプスカメラパラメーターを確認するように構成することができる。そのような確認(acknowledgement)を有効にするために、骨格追跡ゲームアプリケーションなどの奥行き画像コンシューマーは、特定のデプスカメラ(例えば、特定の種類又はモデルの構造化された光のデプスカメラ)に加えて、又はその代わりに、仮想的なデプスカメラとの互換性のために開発されてもよい。そのような例において、奥行き画像コンシューマーは、その奥行き画像コンシューマーによって予期される仮想的なデプスカメラパラメーター(例えば、x−y−z解像度、視界角錐(view frustum)、奥行き画像の種類など)の指示を提供するように構成することができる。さらに、初期化モジュールは、奥行き画像コンシューマーからのサポートされる仮想的なデプスカメラパラメーターの指示を受信するように構成することができる。上述したように、初期化モジュールは、必要に応じて、奥行き画像コンシューマー及び奥行き画像プロデューサーが互いに通信するために使用できるAPIの一部として実施されてもよい。
【0020】
[0029]サポートされる仮想デプスカメラパラメーターの指示は、仮想デプスカメラの予期される視界角錐及び/又は仮想デプスカメラの予期される解像度を規定することができる。このような予想される視界角錐及び/又は予想される解像度は、特定のデプスカメラの固有の視覚角錐及び固有の解像度とは異なる場合がある。サポートされる仮想デプスカメラパラメーターの指示は、仮想的なデプスカメラが基づいている実際のデプスカメラのモデルを特定してもよい。以下の説明では、初期化モジュール36によって確認することができる異なるパラメーターの限定的でないサンプリングについてまとめられている。
【0021】
[0030]デプスカメラは、一般に、デプスカメラのセンサーに最も近い表面からの半径方向の距離を各画素において測定する。この距離は、奥行きカメラからの光線に沿った距離を現実世界をモデル化する3次元空間へと投影することにより、ワールド座標に変換することができる。このプロセスは、明確な線形の境界が存在しない様々な三次元のサンプルを生成する。代わりに、ポイントはデプスカメラの視覚角錐によって境界が示される−(レンズの歪みがないと仮定して)2つの同心球の2つの3次元円弧の間に挟まった空間。図3Aは、例示的なデプスカメラ48の例示的な視覚角錐46を示す。
【0022】
[0031]同心球の位置は、デプスカメラで測定可能な視野の奥行きによって決定される。小さい方の同心球はそのデプスカメラの最小の測定可能な距離と同等の半径を有し、大きな方の同心球はそのデプスカメラの最大の測定可能な距離と同等の半径を有する。空間内の三次元円弧の大きさは、そのデプスカメラの視野(すなわち、視野角)によって決定される。デプスカメラの視覚角錐の位置及び方向は、物理的な位置とデプスカメラの物理的な向きによって決定される。どれだけの数の異なる画素が視覚角錐に含まれるかは、デプスカメラの解像度によって決定される。奥行きの感度(分解能)はデプスカメラからの出力として受信される画素あたりのビット数に依存する。しかし、実際の感度が低くなる可能性がある。
【0023】
[0032]パラメーター(例えば、視野の奥行き、視野、分解能、位置、方向、レンズの歪み等)は異なるカメラについて異なっていてもよい。奥行き画像コンシューマーがこのような違いに非常に敏感である可能性があるため、カメラ間のパラメーターの違いは困難をもたらす可能性がある。そのため、あるデプスカメラパラメーターを有する特定のデプスカメラから奥行き画像を受信するように開発される代わりに、奥行き画像コンシューマーは、仮想的なデプスカメラパラメーターを有する仮想的なデプスカメラとの互換性のために開発されてもよい。後述するように、デプスカメラ互換性システムは、実際のカメラからの奥行き情報が奥行き画像コンシューマーによって使用することができるように、仮想的なデプスカメラの仮想パラメーターに従って、実際のカメラから受信した奥行き情報を効果的に変換することができる。
【0024】
[0033]いくつかの実施例において、初期化モジュール36は、奥行き画像コンシューマーのサポートされる仮想的なデプスカメラパラメーターとの互換性を目指して奥行きカメラを向けることを容易にする目標命令(aiming instructions)37を生成するように構成することができる。例として、奥行き画像コンシューマーは、ユーザーの足をスキャンすることができるようにデプスカメラが床に向かって下に向けられることを期待することがある。そのため、目標命令はこの期待を伝えるために生成することができる。自動的に自身を再配置する位置決めモーター又は他の手段をデプスカメラが含む実施例(例えば、奥行き画像プロデューサー34cのデプスカメラ)において、初期化モジュールは、デプスカメラが目標命令に従って自身を再配置し得るように、デプスカメラに目標命令を送信するように構成されてもよい。いくつかの実施例では、目標命令は、ユーザーが手動でデプスカメラを再配置することができるように、視覚的及び/又は音声の指示を介してユーザーに伝えることができる。
【0025】
[0034]いくつかの実施例では、奥行き画像コンシューマーが予想される座標系を有する奥行き画像を受け取るように、座標系を抽象化することができる。いくつかの例では、これは、視線(line of sight)を測定するハードウェアを使用するか又はカメラに対する床の角度を測定することによって、(例えば)床と整列されるように座標系を回転させることを含む。
【0026】
[0035]キャプチャーモジュール38は、奥行き画像プロデューサーから固有の奥行き画像を受け取るように構成することができる。限定的でない例として、キャプチャーモジュールは、飛行時間カメラを含む奥行き画像プロデューサーから固有の奥行き画像を受け取ってもよい。上述したように、キャプチャーモジュールは、必要に応じて、奥行き画像コンシューマー及び奥行き画像プロデューサーが互いに通信するために使用できるAPIの一部として実施されてもよい。
【0027】
[0036]奥行き画像プロデューサーは奥行きカメラのみを含んでもよいし、又は奥行き画像プロデューサーは、デプスカメラのほか、オフボードの(off-board)処理エンジンを含んでもよい。図4Aに示すように、奥行き画像プロデューサー34’は、生のデプスカメラのデータ(図示せず)を固有の奥行き画像54に変換するように構成されるカメラ上の(オンカメラ)プロセッサー52を含んでもよい。そのような場合には、キャプチャーモジュール38’は、オンカメラ(on-camera)プロセッサー52を介して固有の奥行き画像54を受信するように構成することができる。図4Bに示すように、奥行き画像プロデューサー34’’は、生のデプスカメラデータ60を固有の奥行き画像54’’に変換するオフカメラ(off-camera)プロセッサー56を含んでもよい。オフカメラプロセッサー56は、例えば奥行き画像コンシューマー32’’が実行されるコンピューティングシステム10’’の一部であってもよい。そのような場合には、キャプチャーモジュール38’’は、オフカメラプロセッサー56を介して固有の奥行き画像を受信するように構成することができる。図4Cに示すように、奥行き画像プロデューサー34’’’が、協働して生のデプスカメラデータ(図示せず)を固有の奥行き画像54’’’に変換するオンカメラプロセッサー52’’’及びオフカメラプロセッサー56’’’を含んでもよい。そのような場合には、キャプチャーモジュール38’’’は、オンカメラプロセッサー52’’’及びオフカメラプロセッサー56’’’を介して固有の奥行き画像54’’’を受け取るように構成することができる。特に、オンカメラプロセッサー52’’’は、オフカメラプロセッサー56’’’に、生のデプスカメラデータから部分的に処理された中間データ62を渡すことができる。図4Bの例のように、オフカメラプロセッサー56’’’は、例えば奥行き画像コンシューマー32’’’が実行されるコンピューティングシステム10’’’の一部であってもよい。
【0028】
[0037]図2に戻ると、仮想化モジュール40は、固有の奥行き画像を、奥行き画像コンシューマーと互換性のある、サポートされた仮想的なデプスカメラパラメーターを有する仮想的な奥行き画像に変換するように構成することができる。特に、仮想化モジュールは、奥行き画像コンシューマーから初期化モジュールを介して受信される仮想パラメーターの指示に従って、固有の奥行き画像を仮想的な奥行き画像に変換するように構成することができる。仮想化モジュールは、必要に応じて、APIの一部として、又は奥行き画像コンシューマーと奥行き画像プロデューサーが通信に使用するAPIと互換性のあるアプリケーションもしくはサービスとして実施することができる。
【0029】
[0038]1つの例示的な変換として、仮想化モジュール40は、固有の奥行き画像の視覚角錐(view frustum)をクリッピングすることにより、固有の奥行き画像を仮想的な奥行き画像に変換するように構成することができる。この例はやや概略的に図3Bに示されている。仮想的な視覚角錐70が実線で示される。仮想的な視覚角錐70は仮想的なデプスカメラパラメーターによって特定することができる。実際のデプスカメラ74の固有の視覚角錐72は同じ視野内で重ねられる。固有の視覚角錐72は破線で示される。比較して見ることができるように、固有の視覚角錐72は、仮想的な視覚角錐70よりも広い視野と深い被写界深度を有する。このように、固有の視覚角錐72は、仮想的な視覚角錐70を予測する奥行き画像コンシューマーに対して互換性がないことがある。
【0030】
[0039]仮想化モジュールは、仮想的な視覚角錐のそれに固有の視覚角錐をクリッピングすることができる。言い換えると、仮想的な視覚角錐の視野及び/又は被写界深度の外にあるデプスカメラ74によって読み取られる奥行き情報は、奥行き画像から除去されてもよい。いくつかの実施例では、仮想的な視覚角錐の奥行き情報がそのまま残される一方、除去された奥行き情報を単に無視してもよい。いくつかの実施例では、除去された奥行き情報は、仮想的な視覚角錐における奥行き情報を選択的に修正するために使用することができる。
【0031】
[0040]別の例示的な変換として、仮想化モジュール40は、固有の奥行き画像の解像度を変更する(例えば、固有の奥行き画像の解像度を下げる)ことにより、固有の奥行き画像を仮想的な奥行き画像に変換するように構成することができる。実質的に任意の再サンプリングアルゴリズムを、解像度を変更するために使用することができる。限定的でない例として、所望の解像度を有するサンプルグリッドが実際のデプスカメラからの奥行き画像と概念的に整列される最近傍アルゴリズムを使用することができる。サンプルグリッドの各サンプル画素には、サンプル画素に最も近い実際のデプスカメラからの画素の深度値(奥行き値、depth value)を割り当てることができる。他の限定的でない例として、再サンプリングアルゴリズムは、最も近い画素の平均値又は距離で重み付けされた平均値をとってもよい。
【0032】
[0041]視覚角錐をクリッピングし解像度を変更する上記の例は限定的なものではない。奥行き画像コンシューマーが任意の数の異なる仮想パラメーターをもつ仮想カメラを予期して設計することができ、奥行き画像コンシューマーの仮想デプスカメラとの互換性を達成するためにそのようなパラメーターに従って実際の奥行き画像を変換することができることが理解されるべきである。
【0033】
[0042]図2に戻ると、いくつかの実施例において、仮想化モジュール40は、奥行き画像コンシューマーによってサポートされるサポートされた型を持つエミュレーション奥行き画像へと固有の奥行き画像を処理することによって固有の奥行き画像を仮想的な奥行き画像に変換するように構成された、エミュレーションモジュール44を含んでもよい。言い換えれば、奥行き画像コンシューマーは、特定のモデルのデプスカメラ及び/又は特定の奥行き取得技術(例えば、構造化された光又は飛行時間)を使用して作成される奥行き画像を予期するように設計することができる。異なる種類のデプスカメラからの奥行き画像は、各画素に深度値が割り当てられる奥行き画像を最終的に生成するかもしれないが、異なる種類のデプスカメラ間の差異は、各画素に割り当てられる深度値の間の様々な差異をもたらすかもしれない。奥行き画像コンシューマーは特定のデプスカメラからの特定の種類の奥行き画像を処理するように設計することができる。このように、エミュレーションモジュール44は、サポートされていないデプスカメラからの奥行き画像を、サポートされているデプスカメラからもたらされたかのように見えるように変更するよう構成することができる。
【0034】
[0043]例えば、エミュレーションモジュール44は、飛行時間型デプスカメラ(time of flight depth camera)からの固有の奥行き画像を、構造化された光のデプスカメラ(structured light depth camera)によって生成される奥行き画像をエミュレートするエミュレーション奥行き画像に変換することができる。この例は限定的なものではない。エミュレーションモジュール44は、実質的に任意のカメラ技術からの固有の奥行き画像を、実質的に任意の他の種類のカメラ技術によって生成される奥行き画像をエミュレートするエミュレーション奥行き画像に変換するように構成されてもよい。
【0035】
[0044]エミュレーションモジュール44は、いくつかの実施例では仮想化モジュール40の一部であってもよいが、本明細書に記載されるエミュレーション技術は、視覚角錐クリッピング及び/又は解像度の変更などの任意の他の仮想化技術とは独立して実行することができることを理解すべきである。いずれの場合も、エミュレーションモジュール44は、必要に応じて、APIの一部として、又は奥行き画像コンシューマー及び奥行き画像プロデューサーが通信に使用するAPIと互換性のあるアプリケーション又はサービスとして実施されてもよい。
【0036】
[0045]エミュレーションモジュールは次のうちの1つ又は複数を含んでもよい:ノイズ抑制モジュール80、エッジ強調モジュール82、無効化モジュール84、奥行き量子化モジュール86、小型オブジェクト補正(small object correction)モジュール88、影シミュレーションモジュール90。
【0037】
[0046]ノイズ抑制モジュール80は、固有の奥行き画像中の異なる奥行き値をもつ隣接する画素領域間の奥行きエッジ(depth edge)を維持するように構成することができる。ノイズ抑制モジュール80の機能は、図6の118を参照して以下により詳細に記載される。
【0038】
[0047]エッジ強調モジュール82は、固有の奥行き画像中の異なる奥行き値を持つ隣接する画素領域間の奥行きエッジを強調するように構成することができる。エッジ強調モジュール82の機能は、図6の126を参照して以下により詳細に記載される。
【0039】
[0048]無効化モジュール84は、所定の範囲の外の結合された照明及び傾斜を有する画素を無効にするように構成することができる。無効化モジュール84の機能は、図6の120−124を参照して以下により詳細に記載される。
【0040】
[0049]奥行き量子化モジュール86は深度値を量子化するように構成することができる。奥行き量子化モジュール86の機能は、図6の128を参照して以下により詳細に記載される。
【0041】
[0050]小型オブジェクト補正モジュール88は、しきい値サイズ未満のオブジェクトに属する画素に、より深い深度値を割り当てるように構成することができる。小型オブジェクト補正モジュール88の機能は、図6の130を参照して以下により詳細に記載される。
【0042】
[0051]影シミュレーション(shadow simulation)モジュール90は、飛行時間型デプスカメラから仮想的に間隔を空けられた仮想的な照明の仮想的な見晴らしのよい点から仮想的に塞がれた画素に影の画素値を割り当てるように構成することができる。影シミュレーションモジュール90の機能は、図6の132を参照して以下により詳細に記載される。
【0043】
[0052]仮想化モジュール40は、実際のデプスカメラからの固有の奥行き画像を、奥行き画像コンシューマーと互換性のあるサポートされる仮想的なデプスカメラパラメーターを有する仮想的な奥行き画像に変換する。出力モジュール42は、奥行き画像コンシューマーに、この仮想的な奥行き画像を出力するように構成される。奥行き画像コンシューマーは、その後、分析及び/又はさらなる処理のために、仮想的な奥行き画像を受け取ってもよい。出力モジュールは、必要に応じて、奥行き画像コンシューマー及び奥行き画像プロデューサーが互いに通信するために使用できるAPIの一部として実施されてもよい。初期化モジュール36、キャプチャーモジュール38、仮想化モジュール40、及び出力モジュール42は、個別のモジュールとして上述されているが、2つ以上のモジュールが共通のAPIへと動作可能に組み合わされてもよいことが理解されるべきである。
【0044】
[0053]図5は、奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性を提供する方法100を示している。方法100は、例えば、図2の奥行きカメラ互換性システム30を使用して、実施することができる。
【0045】
[0054]102において、方法100は、サポートされている仮想的なデプスカメラパラメーターの指示を受信することを含む。上記のように、仮想的なデプスカメラパラメーターは、仮想デプスカメラの視覚角錐、仮想デプスカメラの解像度、仮想デプスカメラが基づいている実際のデプスカメラのモデル、及び/又は仮想デプスカメラの他の特性を指定してもよい。
【0046】
[0055]104において、方法100は、奥行き画像コンシューマーとの互換性がないサポートされないデプスカメラパラメーターを有する固有の奥行き画像を受信することを含む。 106において、方法100は、奥行き画像コンシューマーと互換性のあるサポートされる仮想デプスカメラパラメーターを有する仮想的な奥行き画像へと固有の奥行き画像を変換することを含む。上記のように、固有の奥行き画像を変換することは、固有の奥行き画像の視覚角錐をクリッピングすること、固有の奥行き画像の解像度を下げること、及び/又は奥行き画像コンシューマーによってサポートされたサポートされるタイプを有するエミュレーション奥行き画像へと、固有の奥行き画像を処理すること、うちの1つ又は複数を含んでもよい。
【0047】
[0056]108において、方法100は、奥行き画像コンシューマーに仮想的な奥行き画像を出力することを含む。仮想的な奥行き画像はサポートされる仮想デプスカメラのパラメーターに対して調整されるので、奥行き画像コンシューマーによって使用することができる。しかし、方法100は異なるデプスカメラからの様々な異なる固有の奥行き画像に適用することができるため、奥行き画像コンシューマーは、単一の特定の種類のデプスカメラから奥行き画像を受信することに限定されない。
【0048】
[0057]図6はデプスカメラの互換性を提供する別の方法110を示す。112において、方法110は、奥行き画像コンシューマーについてのサポートされる仮想デプスカメラパラメーターを奥行き画像コンシューマーから受信することを含む。これは、例えば、奥行き画像コンシューマーと互換性のあるモデルのデプスカメラ(例えば、構造化された光のデプスカメラ)の指示を受信することを含んでもよい。
【0049】
[0058]114において、方法110は、奥行き画像コンシューマーによってサポートされない、サポートされないタイプを有する固有の奥行き画像を受信することを含む。たとえば、固有の奥行き画像は、モデルのデプスカメラ以外のソースからのものであってもよい。このように、固有の奥行き画像は奥行き画像コンシューマーと互換性がないことがあり、したがって、サポートされないタイプを有し得る。上で紹介した例を続けると、奥行き画像コンシューマーは、構造化された光デプスカメラからの奥行き画像をサポートしてもよい。しかし、飛行時間型のデプスカメラなどの別のソースから固有の奥行き画像が受信されてもよく、したがって、固有の奥行き画像は奥行き画像コンシューマーについてサポートされないタイプを有する。
【0050】
[0059]116において、方法110は、奥行き画像コンシューマーによってサポートされたサポートされるタイプを有するエミュレーション奥行き画像へと、固有の奥行き画像を処理することを含む。言い換えれば、エミュレーション奥行き画像は、モデルデプスカメラによって生成された奥行き画像などの、奥行き画像コンシューマーと互換性のある奥行き画像をエミュレートするように修正することができる。上で紹介した例を続けると、飛行時間型デプスカメラから受信される固有の奥行き画像は、例えば、構造化された光のデプスカメラによって生成される奥行き画像をエミュレートするエミュレーション奥行き画像へと処理することができる。
【0051】
[0060]図6に示すように、固有の奥行き画像をエミュレーション奥行き画像へと処理することは、以下により詳細に説明するように、さまざまな技術を利用してもよい。このような技術は限定的でないと理解することができる。さらに、図6に示されない追加の技術を、代替的に又は付加的に適用することができる。
【0052】
[0061]118において、方法110は、固有の奥行き画像に対してエッジ保存フィルター(edge preserving filter)を適用することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合は、このような固有の奥行き画像は、飛行時間型デプスカメラ間の標準的な副産物であるランダムノイズを有し得る。しかし、構造化された光のデプスカメラは本質的に滑らかな(平坦な)信号を有しており、このような信号をさらにソフトウェアでフィルタリングすることができる。したがって、この種のより滑らかな信号をエミュレートするために、飛行時間型デプスカメラから受信した固有の奥行き画像を、重要な奥行きの特徴を損なうことなく、飛行時間デプスマップからのノイズを抑制するように処理することができる。これを行うために、エッジ保持フィルタを、固有の奥行き画像からのノイズを抑制するために使用することができる。Perona-Malikの著作(異方性拡散を用いたスケールスペース及びエッジ検出、IEEE Transactions on Pattern Analysis and Machine Intelligence, v.12 n.7, p.629-639, 1990)及びWeickertらの著作(J. Weickert, B.M. ter Haar Romeny, M.A. Viergever, 非線形拡散フィルタリングのための効率的かつ信頼性の高いスキーム、IEEE Trans. Image Proc., v.7 n.3, pp. 398-410, 1998)に記載されているものに基づく非線形偏微分方程式を利用するなど、任意の適切な手法を使用することができる。エッジしきい値パラメーターは、カメラの奥行き精度の上限(例えば、K=10[cm])に設定することができる。固有の奥行き画像にエッジ保存フィルターを適用することによって、固有の奥行き画像内のオブジェクト間の不連続性が良好に保たれる一方、固有の奥行き画像内のノイズレベルが大幅に低下し得る。
【0053】
[0062]図6について続けると、120において、方法110は、(例えば、飛行時間解析においてシーンを照らすために使用される赤外光から測定されるような)照明画像(illumination image)上をメディアンフィルターを通過させることによって、信頼性マップ(confidence map)を構築することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理して構造化された光のデプスカメラのものをエミュレートする場合、そのような信頼性マップは、構造化された光のデプスカメラで発生する画素の無効化現象をエミュレートするために利用され得る。構造化光技術において、奥行きはパターン一致を見つけることによって計算される。一致が見つかれば奥行きを比較的正確に計算することができるが、一致が見つからない場合、奥行きは計算できず、その画素での測定は無効である。飛行時間技術において、奥行きは一般的にどこででも測定することができるが、(例えば、照明のレベルに応じて)異なる精度をもつ。したがって、奥行き測定が不正確になって(例えば、信号のノイズが暗領域において多くなりすぎる)構造化された光の奥行き画像をエミュレートする場合、飛行時間奥行き画像における照明のレベルは容易に予測することができる。これを行うために、入力として照明画像を用いて、信頼性マップを構築することができる。信頼性マップは、異常値を削除しノイズを抑制するために、最初に照明画像上をメジアンフィルターを通過させることによって、構築することができる。次いで、各画素に対して、次のようなソフト閾値関数(soft threshold function)を使用することができる。
【0054】
【数1】
【0055】
ここで、パラメーターkは、カメラのバージョンによって変更されてもよい。例として、kはいくつかの実施例では60に設定することができる。
[0063]信頼性マップを構築することに加えて、画像内の他の領域を識別することが望ましいかもしれない。したがって、122において、方法110は、固有の奥行き画像から傾斜表面マップ(oblique surface map)を構築することを含んでもよい。構造化された光のデプスカメラの固有の奥行き画像をエミュレートするために飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、構造化された光のデプスカメラで発生する画素無効化現象がさらに、パターンマッチングの困難性に対応している可能性が高い領域を識別することによってエミュレートされてもよい。構造化された光照明装置によって投影されるパターンが傾いた物体(すなわち、照明の光線に対して鋭角の表面)上に現れることがあり、従って、パターン一致はしばしばそこで失敗し、無効な測定値を生むことがある。したがって、飛行時間型デプスカメラから受信した固有の奥行き画像は、傾斜面を識別するために傾斜面マップを構築することによって処理することができる。これは、例えば、視野及び解像度などのカメラパラメーターを使用して、画素ごとに世界表面角度(world surface angle)を計算すること、及び、次いでガウシアンフィルタリングによってこれを平滑化することを含んでもよい。さらに、k=45で、上記で定義したFkなどのソフト閾値関数を使用することができる。
【0056】
[0064]124において、方法110は、信頼性マップと傾斜面マップを無効化テストマップに一体化することを含んでもよい。信頼性マップと傾斜面マップの両方が0と1との間の値を有する場合は、当該2つのマップは、例えば、2つのマップを乗算し、0.5の閾値で閾値化する(thresholding)ことによって一体化することができる。メジアンフィルターは結果を正規化する(regularize)ために使用することができる。このような処理は、所定の範囲外にある画素を無効にするために使用することができる。
【0057】
[0065]図6について続けると、126において、方法110は、固有の奥行き画像の異なる奥行き値を持つ隣接する画素領域間のエッジを強調することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、この技術で計算されるような奥行き値は画素視野(pixel field of view)フィールドの奥行きの平均値であるので、そのような飛行時間型デプスカメラはエッジをぼかす傾向にある。しかし、構造化された光のデプスカメラのエッジ上の奥行きは、通常、測定されず、データは合成されて、オブジェクト間の急激な遷移を生成する。したがって、構造化された光のデプスカメラからの奥行き画像をエミュレートするために、飛行時間型デプスカメラからの固有の奥行き画像は、エッジをよりシャープにするために、異なる奥行き値を持つ隣接する画素領域間のエッジを強調するために処理することができる。任意の適切な手法をそのようなエッジの強調のために使用することができ、1つのそのような適切な手法は以下に詳細に記載される。
【0058】
[0066]x方向における前進差分D+及び後退差分D−を画素毎に計算することができる。その後、次のようにマスクを決定することができる:Mask_x=1(min(D+,D−)>4cmの場合)、そうでなければ0、そればステップエッジを回避するために傾斜する。その後、同様の計算が、Mask_yを計算するためにy方向で行うことができる。その後、Mask_x又はMask_yのいずれか==1の場合の各画素に対して、3×3の近傍における最大値がとられる。
【0059】
[0067]図6について続けると、128において、方法110は、奥行き値を量子化することを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、奥行き値は、構造化された光のデプスカメラから受信される奥行き画像をエミュレートするために量子化することができる。構造化された光の技術は、奥行きを計算するために三角測量に基づく。奥行きは、固有のセンサー分解能が有限であるように量子化されたパターン変位の関数である。飛行時間の技術において、奥行き測定値は固有の解像度には関係しない。したがって、量子化効果を変形された奥行きマップに組み入れることが望まれる。これは任意の適切な手法によって行うことができる。1つのそのような適切な手法は、三角測量ベースのカメラで発生するものに類似した非線形量子化式を構築するために、構造化された光のデプスカメラのパラメーター(例えば、視野、固有のセンサー分解能、焦点距離、センサーと照明の中心との間の距離)及びデプスマップをとることを含む。例として、奥行きDの関数として画素における変換Tは次のように定義される
【0060】
【数2】
【0061】
ここで、focal_lengthは構造化された光のデプスカメラの焦点距離であり、pixel_sizeはセンサーの画素サイズであり、camera_illumはカメラセンサーと照明の中心との間の距離であり、angleはカメラセンサーの中心からの垂直な線に対する物体の角度である。次いで、量子化Qは、変換T(D)の関数として、次のように記述することができる
【0062】
【数3】
【0063】
このように、奥行きマップは、構造化された光の技術において三角測量計算によって生成されるのと同様にして奥行きを量子化する。
[0068]図6について続けると、130において、方法110は、閾値のサイズ未満の物体に属する画素により深い奥行き値を割り当てることを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、構造化された光のデプスカメラから受信される奥行き画像をエミュレートするために、より深い奥行き値が小さな物体の画素に割り当てられてもよい。構造化された光のデプスカメラは、小さすぎる物体上にうまく投影することができないパターンに基づく。従って、このような小さな物体は、しばしば、バックグラウンドの奥行き値を割り当てられる。より深い奥行き値は、任意の適切な方法で、小さな物体の画素に割り当てることができる。1つのそのような手法は、形態学的閉鎖(morphological closing)を行うことを含む。このように、要素の構築は解像度に依存する。例として、おおよそ3×3のサイズのボールの要素を使用することができる。したがって、奥行き画像において観察することができる最小の物体のサイズを修正することができ、効果は構造化された光のデプスカメラで行われる後処理に類似する。
【0064】
[0069]図6について続けると、132において、方法110は、飛行時間型デプスカメラ間から実質的に間隔を空けられた仮想的な照明の仮想的な視点(virtual vantage point)から実質的に閉塞された画素に影の画素値を割り当てることを含んでもよい。飛行時間型デプスカメラから受信した固有の奥行き画像を処理する場合には、影の画素値は、構造化された光のデプスカメラから受信される奥行き画像をエミュレートするために割り当てることができる。上記のように、構造化された光のデプスカメラは三角測量の原理で動作する。このため、光源はセンサーから離れており、「影」効果がカメラのセンサーに対して引き起こされる。したがって、「影になった画素」は、図7に示すように、センサーにとっては見ることができるが光源の位置からは直接的には見えない画素である。ここで、第1の物体140は、第2の物体142が発光体144から直接光を受けることを妨げる。したがって、第1の物体140の画像146及び第2の物体142の画像148を受信することに加えて、センサー150はまた、第2の物体142の影になった画素152を受信する。
【0065】
[0070]したがって、飛行時間型デプスカメラから受信される固有の奥行き画像においてこの「影(shadowing)」アーティファクトをエミュレートすることが望ましい。センサーと周辺の発光体との間の短い距離のために、影効果はすでに飛行時間型デプスカメラにおいて生じているが、これはカメラにおいて正規化することができ、したがって、生成される奥行き動画においては見ることができない、と理解することができる。
【0066】
[0071]影を合成するための例示的な解決策は軽量(lightweight)アルゴリズムを使用する。当該アルゴリズムは、発光体がモデル化されたデプスカメラにあるのと同じ場所に仮想カメラを作成する。アルゴリズムは、次いで、元のセンサーからこの仮想センサーへ奥行きのサンプルを変換する。この変換は次の式を用いて行うことができる
【0067】
【数4】
【0068】
[0072]この仮想センサーに閉塞されるサンプルは影を付けられる。「発光体×画像」の各行をスキャンすることができ、すでにスキャンされた値のうち最大のXemitterImage値を有さない場合には画素に影をつけてもよい。図8は、影を付けられた画素152がXworldの値の減少のために影を付けられたものとして考慮されるアイデアを示す。
【0069】
[0073]奥行き測定の不正確さに起因するいくつかの小さな変動を克服するために、形態学的「オープン」フィルタリングを「影を付けられた画素」のマップに適用することができる。このステップは、小さな影を除去し、エッジをより四角状に見えるようにして、したがって構造化された光デプスカメラからのエッジをエミュレートする。
【0070】
[0074]図6について続けると、134において、方法110は、サポートされているタイプを有するエミュレーション奥行き画像を出力することを含む。そのようなエミュレーション奥行き画像は、デプスカメラからの固有の奥行き画像を処理できない奥行き画像コンシューマーによって使用することができる。上記の例を使用して、構造化された光デプスカメラからの構造化された光の奥行き画像を処理するように設計されたアプリケーションは、飛行時間型デプスカメラを用いて測定される固有の奥行き画像に基づいてエミュレーション奥行き画像を受信し、処理することができる。
【0071】
[0075]図9は、奥行き抽象化層内の例示的な画像処理ブロック160を示す高レベルの実施例の図である。図10は図9の画像処理ブロック160をより詳細に示す。図9及び10に示すように、画像処理ブロック160は、入力として、生の奥行きマップ、赤外照明画像に関連する情報、及びデプスカメラパラメーターを受信してもよい。画像処理ブロックは、上述したように、奥行き画像コンシューマーによって使用することができる抽象化されたエミュレーション奥行き画像162を出力してもよい。
【0072】
[0076]図1を参照して以下で説明するように、様々な異なるコンピューティングシステムを、本開示の趣旨から逸脱することなく使用することができる。図1を参照して説明される動作環境は例として提供されるが、いかなるようにも限定的なものであると意図されるものではない。そうではなく、示された動作環境は、本開示の範囲から逸脱することなく様々な異なる動作環境に適用することができる一般的な概念を示すことを意図したものである。同様に、図2に示すデプスカメラ互換性システムの概略図は、奥行き画像の仮想化及び奥行き画像のエミュレーションを説明するための簡略化されたフレームワークを提供するが、用途を図面に示すそれらの構成のみに限定することを意図されてはいない。逆に、本明細書に記載された方法及び処理は、様々な異なる種類のコンピューティングシステムに関連し得る。
【0073】
[0077]図1は、ゲーム機12及びデプスカメラ20を備えるデプスカメラ互換性システムを実施するように構成することができる限定的でない例示的なコンピューティングシステムを示す。別のより一般的な例として、図11は、本明細書に記載されるような、奥行き画像の抽象化及び/又は奥行き画像のエミュレーションを実行することができるコンピューティングシステム170を概略的に示す。コンピューティングシステム170は、とりわけ、ゲーム機、パーソナルコンピューティングシステム、軍事追跡及び/又は標的システム、グリーンスクリーン又はモーションキャプチャー機能を提供するキャラクターアクイジションシステムを含むがこれらに限定されない、さまざまな異なる形式をとってもよい。
【0074】
[0078]コンピューティングシステム170は、論理サブシステム172、論理サブシステムに動作可能に接続されるデータ保持サブシステム174、ディスプレイサブシステム176、及び/又は奥行き画像プロデューサー178を含んでもよい。コンピューティングシステムは必要に応じて図11に示されていないコンポーネントを含んでもよく、及び/又は図11に示すいくつかのコンポーネントはコンピューティングシステムへと統合されない周辺コンポーネントであってもよい。
【0075】
[0079]論理サブシステム172は、1つ又は複数の命令を実行するように構成された1つ又は複数の物理デバイスを含んでもよい。例えば、論理サブシステムは、1つ又は複数のプログラム、ルーチン、オブジェクト、コンポーネント、データ構造、アプリケーションプログラミングインターフェース又は他の論理的な構成の一部である1つ又は複数の命令を実行するように構成することができる。そのような命令は、タスクを実行し、データ型を実施し、1つ又は複数のデバイスの状態を変換し、異なるコンピューティングオブジェクトとの間で情報を通信し、又はそうでなければ望ましい結果に到達するために実施することができる。論理サブシステムは、ソフトウェア命令を実行するように構成される1つ又は複数のプロセッサーを含んでもよい。加えて又は代わりに、論理サブシステムは、ハードウェア命令又はファームウェア命令を実行するように構成された1つ又は複数のハードウェア又はファームウェア論理マシンを含んでもよい。論理サブシステムは、必要に応じて、いくつかの実施例においては遠隔に配置され得る2つ以上のデバイスにわたって分散される個々のコンポーネントを含んでもよい。
【0076】
[0080]データ保持サブシステム174は、本明細書に記載された方法及びプロセスを実施するために論理サブシステムによって実行可能なデータ及び/又は命令を保持するように構成された1つ又は複数の物理的な持続性のデバイスを含んでもよい。そのような方法やプロセスが実施される場合、データ保持サブシステム174の状態は、(例えば、異なるデータを保持するために)変換することができる。データ保持サブシステム174は、取り外し可能な媒体及び/又は内蔵デバイスを含んでもよい。データ保持サブシステム174は、とりわけ、光メモリー装置、半導体メモリー装置(例えば、RAM、EEPROM、フラッシュなど)、及び/又は磁気メモリーデバイスを含んでもよい。データ保持サブシステム174は、次のような特徴のうちの1つ又は複数を備えたデバイスを含んでもよい:揮発性、不揮発性、動的、静的、読み取り/書き込み、読み取り専用、ランダムアクセス、シーケンシャルアクセス、位置アドレス指定可能、アドレス指定可能なファイル、及びアドレス指定可能なコンテンツ。いくつかの実施例では、論理サブシステム172及びデータ保持サブシステム174は、特定用途向け集積回路又はチップ上のシステムとして、1つ又は複数の共通のデバイスへと統合することができる。
【0077】
[0081]「モジュール」及び「エンジン」という用語は、1つ又は複数の特定の機能を実行するように実施されるコンピューティングシステム170の態様を記述するために使用することができる。いくつかの場合には、このようなモジュールやエンジンは、データ保持サブシステム174によって保持される命令を実行する論理サブシステム172を介してインスタンス化することができる。異なるモジュール及び/又はエンジンを同じアプリケーション、コードブロック、オブジェクト、ルーチン、及び/又は関数からインスタンス化することができることが理解されるべきである。同様に、同一のモジュール及び/又はエンジンは、いくつかの場合には、異なるアプリケーション、コードブロック、オブジェクト、ルーチン、及び/又は関数によってインスタンス化することができる。例として、図2を参照して説明されるモジュールのうちの1つ又は複数をAPIとして実施することができる。
【0078】
[0082]ディスプレイサブシステム176は、データ保持サブシステム174によって保持されるデータの視覚的表現を提示するために使用することができる。本明細書に記載の方法とプロセスは、データ保持サブシステムによって保持されるデータを変更し、したがってデータ保持サブシステムの状態を変更するので、ディスプレイ・サブシステム176の状態は、同様に、基礎的データの変更を視覚的に表すように変換することができる。ディスプレイサブシステム176は、実質的に任意の種類の技術を利用する1つ又は複数のディスプレイデバイスを含んでもよい。このようなディスプレイデバイスは、共有される筐体において論理サブシステム172及び/もしくはデータ保持サブシステム174と組み合わせることができ、又はそのようなディスプレイデバイスは図1に示すように周辺ディスプレイデバイスであってもよい。
【0079】
[0083]コンピューティングシステム170はさらに、1つ又は複数の目標及び/又はシーンの奥行き画像を取得するように構成される奥行き画像プロデューサー178を含む。奥行き画像プロデューサー178は、任意の適切な技術(例えば、飛行時間、構造化された光、ステレオ画像など)を介して奥行き情報をもつ動画をキャプチャーするように構成されてもよい。このように、奥行き画像プロデューサー178は、デプスカメラ、ビデオカメラ、ステレオカメラ、及び/又は他の適切なキャプチャー装置を含んでもよい。上で図4A−4Cを参照して説明されるように、奥行き画像プロデューサーは、生のデプスカメラデータを奥行き画像へと変換する1つ又は複数のオンカメラプロセッサー及び/又はオフカメラプロセッサーを含んでもよい。言い換えれば、デプスカメラは、必要に応じて、1つ又は複数の奥行き分析機能を実行するように構成された1つ又は複数のオンボード処理ユニットを含んでもよい。デプスカメラは、そのようなオンボード処理論理の更新を容易にするためにファームウェアを含んでもよい。
【0080】
[0084]例えば、飛行時間分析において、奥行き画像プロデューサー178は、赤外光をシーンに対して発するように構成される飛行時間型カメラを含んでもよく、シーンの表面からの後方散乱光を検出するためにセンサーを使用してもよい。いくつかの場合には、パルス赤外光を使用することができ、出射光パルスと対応する入射光のパルスとの間の時間を測定して、キャプチャー装置からシーン上の特定の位置までの物理的な距離を決定するために使用することができる。いくつかの場合には、出射光波の位相は位相シフトを決定するために入射光波の位相と比較することができ、位相シフトは、キャプチャー装置からシーン中の特定の位置への物理的な距離を決定するために使用することができる。
【0081】
[0085]別の例では、飛行時間分析は、シャッター光パルスイメージング(shuttered light pulse imaging)などの技術によって時間にわたって反射された光ビームの強度を分析することによって、キャプチャー装置からシーン内の特定の位置への物理的な距離を間接的に決定するために使用されてもよい。
【0082】
[0086]別の例では、構造化された光の分析を、奥行き情報を取得するために奥行き画像プロデューサー178によって利用することができる。そのような分析では、パターン光(すなわち、グリッドパターンやストライプパターンなどの既知のパターンとして表示される光)をシーン上に投影することができる。シーンの表面上で、パターンは変形されてもよく、パターンのこの変形は、キャプチャー装置からシーン内の特定の位置までの物理的な距離を決定するために検討することができる。
【0083】
[0087]別の例では、キャプチャー装置は、視覚的なステレオデータを取得するために異なる角度からシーンを見る2つ以上の物理的に分離されたカメラを含んでもよい。このような場合には、視覚的なステレオデータは奥行き画像を生成するために分解することができる。他の実施例では、奥行き画像プロデューサー178は、奥行き値を測定及び/又は計算するために他の技術を利用することができる。
【0084】
[0088]いくつかの実施例では、2つ以上の異なるカメラを、奥行き画像プロデューサーの一部として組み込むことができる。たとえば、デプスカメラやビデオカメラ(例えば、RGBビデオカメラ)を奥行き画像プロデューサーに組み込むことができる。ビデオカメラが使用される場合、それは、目標追跡データ、シーン解析、画像キャプチャー、顔認識、指(又は他の小さな特徴)の高精度追跡、光センシング、及び/又は他の機能のエラー訂正のための確認データを提供するために使用することができる。
【0085】
[0089]さらに、上記の説明が単一のデプスカメラの使用/エミュレーションに向けられている一方、上記の互換性技術は、同時に2つ以上のデプスカメラを使用/エミュレートするために使用することができることを理解すべきである。例えば、2つのカメラを、隣接するシーンを表示するために使用することができ、APIは、両方のカメラからの情報を効果的に組み合わせて、より広い視野を持つ単一のカメラをエミュレートすることができる。別の例として、単一の広角カメラを使用することができ、APIは、異なる方向に見る狭い視野をもつ2つのカメラによって生成されたかのように、2つの別個の奥行き画像を生成することができる。
【0086】
[0090]いくつかの実施例では、2つ以上のデプスカメラは、異なる視点から同じシーンを見るのに使用することができる。このような場合には、APIは、両方のカメラからの情報を効果的に組み合わて、奥行き画像コンシューマーに対して透過的な方法で、より多くの/より良い3Dデータを提供することができる。
【0087】
[0091]本明細書に記載された構成及び/又は手法が本質的に例示的なものであり、多くのバリエーションが可能であるので、これらの特定の実施例又は例は、限定的な意味で考慮されるべきではないことが理解されるべきである。本明細書に記載された特定のルーチン又は方法は、任意の数の処理方法のうちの1つ又は複数を表してもよい。このように、示された様々な動作は、示された順序で、他の順序で、並列に、実行されてもよく、又は他の場合には省略されてもよい。同様に、上記の処理の順序は変更されてもよい。
【0088】
[0092]本開示の主題は、本明細書に開示された様々なプロセス、システム、構成、他の特徴、機能、動作、及び/又は特性のすべての新規で自明でない組み合わせ及びサブコンビネーションのほか、それらの任意の及びすべての均等物を含む。
【特許請求の範囲】
【請求項1】
奥行き画像コンシューマーについて、サポートされる仮想デプスカメラパラメーターを確認する初期化モジュールと、
奥行き画像プロデューサーから固有の奥行き画像を受信するキャプチャーモジュールと、
前記固有の奥行き画像を、前記奥行き画像コンシューマーと互換性のあるサポートされる仮想デプスカメラパラメーターを有する仮想的な奥行き画像に変換する仮想化モジュールと、
前記奥行き画像コンシューマーに前記仮想的な奥行き画像を出力する出力モジュールと
を具備するデプスカメラ互換性システム。
【請求項2】
前記初期化モジュールは、前記サポートされる仮想デプスカメラパラメーターの指示を前記奥行き画像コンシューマーから受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項3】
前記サポートされる仮想デプスカメラパラメーターの指示は仮想デプスカメラの視覚角錐を指定する請求項2に記載のデプスカメラ互換性システム。
【請求項4】
前記サポートされる仮想デプスカメラパラメーターの指示は仮想デプスカメラの解像度を指定する請求項2に記載のデプスカメラ互換性システム。
【請求項5】
前記サポートされる仮想デプスカメラパラメーターの指示は仮想デプスカメラが基づいている実際のデプスカメラのモデルを指定する請求項2に記載のデプスカメラ互換性システム。
【請求項6】
前記初期化モジュールは、デプスカメラに、前記奥行き画像コンシューマーの前記サポートされる仮想デプスカメラパラメーターとの互換性を目指させることを容易にする目標命令を生成するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項7】
前記初期化モジュールは前記デプスカメラに目標命令を送信するようにさらに構成される請求項6に記載のデプスカメラ互換性システム。
【請求項8】
前記仮想化モジュールは、前記固有の奥行き画像の視覚角錐をクリッピングすることにより、前記固有の奥行き画像を前記仮想的な奥行き画像に変換するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項9】
前記仮想化モジュールは、前記固有の奥行き画像の解像度を下げることにより、前記固有の奥行き画像を前記仮想的な奥行き画像に変換するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項10】
前記奥行き画像プロデューサーは生のデプスカメラデータを前記固有の奥行き画像へと変換するオンカメラプロセッサーを含み、前記キャプチャーーモジュールは前記オンカメラを介して前記固有の奥行き画像を受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項11】
前記奥行き画像プロデューサーは生のデプスカメラデータを前記固有の奥行き画像へと変換するオフカメラプロセッサーを含み、前記キャプチャーモジュールは前記オフカメラプロセッサーを介して前記固有の奥行き画像を受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項12】
前記奥行き画像プロデューサーは、生のデプスカメラデータを前記固有の奥行き画像へと協働して変換するオンカメラプロセッサー及びオフカメラプロセッサーを含み、前記キャプチャーモジュールは、前記オンカメラプロセッサー及び前記オフカメラプロセッサーを介して前記固有の奥行き画像を受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項13】
前記初期化モジュール、前記キャプチャーモジュール、前記仮想化モジュール、及び前記出力モジュールは、アプリケーションプログラミングインターフェースの一部として実施される請求項1に記載のデプスカメラ互換性システム。
【請求項14】
奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性を提供する方法であって、
奥行き画像コンシューマーとの互換性のないサポートされていないデプスカメラパラメーターを有する固有の奥行き画像を受信するステップと、
前記固有の奥行き画像を、前記奥行き画像コンシューマーと互換性のあるサポートされる仮想デプスカメラパラメーターを有する仮想的な奥行き画像に変換するステップと、
前記奥行き画像コンシューマーに前記仮想的な奥行き画像を出力するステップと
を含む方法。
【請求項15】
仮想デプスカメラの視覚角錐、仮想デプスカメラの解像度、及び仮想デプスカメラが基づく実際のデプスカメラのモデルのうちの1つを指定する、前記サポートされる仮想デプスカメラパラメーターの指示を受信するステップをさらに含む請求項14に記載の方法。
【請求項1】
奥行き画像コンシューマーについて、サポートされる仮想デプスカメラパラメーターを確認する初期化モジュールと、
奥行き画像プロデューサーから固有の奥行き画像を受信するキャプチャーモジュールと、
前記固有の奥行き画像を、前記奥行き画像コンシューマーと互換性のあるサポートされる仮想デプスカメラパラメーターを有する仮想的な奥行き画像に変換する仮想化モジュールと、
前記奥行き画像コンシューマーに前記仮想的な奥行き画像を出力する出力モジュールと
を具備するデプスカメラ互換性システム。
【請求項2】
前記初期化モジュールは、前記サポートされる仮想デプスカメラパラメーターの指示を前記奥行き画像コンシューマーから受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項3】
前記サポートされる仮想デプスカメラパラメーターの指示は仮想デプスカメラの視覚角錐を指定する請求項2に記載のデプスカメラ互換性システム。
【請求項4】
前記サポートされる仮想デプスカメラパラメーターの指示は仮想デプスカメラの解像度を指定する請求項2に記載のデプスカメラ互換性システム。
【請求項5】
前記サポートされる仮想デプスカメラパラメーターの指示は仮想デプスカメラが基づいている実際のデプスカメラのモデルを指定する請求項2に記載のデプスカメラ互換性システム。
【請求項6】
前記初期化モジュールは、デプスカメラに、前記奥行き画像コンシューマーの前記サポートされる仮想デプスカメラパラメーターとの互換性を目指させることを容易にする目標命令を生成するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項7】
前記初期化モジュールは前記デプスカメラに目標命令を送信するようにさらに構成される請求項6に記載のデプスカメラ互換性システム。
【請求項8】
前記仮想化モジュールは、前記固有の奥行き画像の視覚角錐をクリッピングすることにより、前記固有の奥行き画像を前記仮想的な奥行き画像に変換するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項9】
前記仮想化モジュールは、前記固有の奥行き画像の解像度を下げることにより、前記固有の奥行き画像を前記仮想的な奥行き画像に変換するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項10】
前記奥行き画像プロデューサーは生のデプスカメラデータを前記固有の奥行き画像へと変換するオンカメラプロセッサーを含み、前記キャプチャーーモジュールは前記オンカメラを介して前記固有の奥行き画像を受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項11】
前記奥行き画像プロデューサーは生のデプスカメラデータを前記固有の奥行き画像へと変換するオフカメラプロセッサーを含み、前記キャプチャーモジュールは前記オフカメラプロセッサーを介して前記固有の奥行き画像を受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項12】
前記奥行き画像プロデューサーは、生のデプスカメラデータを前記固有の奥行き画像へと協働して変換するオンカメラプロセッサー及びオフカメラプロセッサーを含み、前記キャプチャーモジュールは、前記オンカメラプロセッサー及び前記オフカメラプロセッサーを介して前記固有の奥行き画像を受信するように構成される請求項1に記載のデプスカメラ互換性システム。
【請求項13】
前記初期化モジュール、前記キャプチャーモジュール、前記仮想化モジュール、及び前記出力モジュールは、アプリケーションプログラミングインターフェースの一部として実施される請求項1に記載のデプスカメラ互換性システム。
【請求項14】
奥行き画像コンシューマーと複数の異なる奥行き画像プロデューサーとの間の互換性を提供する方法であって、
奥行き画像コンシューマーとの互換性のないサポートされていないデプスカメラパラメーターを有する固有の奥行き画像を受信するステップと、
前記固有の奥行き画像を、前記奥行き画像コンシューマーと互換性のあるサポートされる仮想デプスカメラパラメーターを有する仮想的な奥行き画像に変換するステップと、
前記奥行き画像コンシューマーに前記仮想的な奥行き画像を出力するステップと
を含む方法。
【請求項15】
仮想デプスカメラの視覚角錐、仮想デプスカメラの解像度、及び仮想デプスカメラが基づく実際のデプスカメラのモデルのうちの1つを指定する、前記サポートされる仮想デプスカメラパラメーターの指示を受信するステップをさらに含む請求項14に記載の方法。
【図1】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2013−519089(P2013−519089A)
【公表日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−551984(P2012−551984)
【出願日】平成23年1月10日(2011.1.10)
【国際出願番号】PCT/US2011/020690
【国際公開番号】WO2011/097049
【国際公開日】平成23年8月11日(2011.8.11)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
【公表日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願日】平成23年1月10日(2011.1.10)
【国際出願番号】PCT/US2011/020690
【国際公開番号】WO2011/097049
【国際公開日】平成23年8月11日(2011.8.11)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
[ Back to top ]