(57)【特許請求の範囲】
【請求項１】
被写体の頭部の奥行きデータとともに複合画像をキャプチャするステップと、
前記複合画像の中の基準座標フレームを定義するステップと、
前記奥行きデータを使用して、前記基準座標フレームに関連する前記複合画像の中の前記頭部のポーズに関連する回転行列及び並進ベクトルを決定するステップと
を含み、
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記ステップは、
それぞれの複合画像の中の前記頭部における任意の特徴点を抽出するステップと、
前記頭部をトラックするための前記頭部上の前記任意の特徴点が十分でない場合、前記奥行きデータを使用して、前記頭部のエッジマップを生成するステップと、
前記エッジマップのエッジ上の前記任意の特徴点を消去するステップと
を含む方法。
【請求項２】
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記ステップは、
前記頭部の前記ポーズの前記回転行列及び前記並進ベクトルを決定するために、前記任意の特徴点と関連する前記奥行きデータを使用するステップ
を含む請求項１に記載の方法。
【請求項３】
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記ステップは、
前記頭部に対する基準ポーズに関連する回転行列及び並進ベクトルと、カレント方向及びカレント位置とを含む状態を有する拡張カルマンフィルターに、前記任意の特徴点の画像座標及び任意の特徴点に対応する奥行きデータを提供するステップと、
前記拡張カルマンフィルターを使用して、前記回転行列及び前記並進ベクトルを決定するステップと
を含む請求項２に記載の方法。
【請求項４】
前記奥行きデータを使用して前記複合画像の中の背景から前記頭部におけるフェイスを抽出するステップと、
前記背景から前記フェイスを抽出した後、前記複合画像の中の前記フェイスをトラックするステップと
をさらに含む請求項１に記載の方法。
【請求項５】
前記背景から前記フェイスを抽出する前記ステップは、
前記奥行きデータを使用して、それぞれの画像の中の前記フェイスの奥行きを計算するステップと、
閾値及び前記フェイスの前記奥行きを使用して、前記背景から前記フェイスを分割するステップと
を含む請求項４に記載の方法。
【請求項６】
被写体の頭部の奥行きデータとともに画像をキャプチャするRGBDカメラ(Red, Green, Blue, Distance camera)と、
前記被写体の前記頭部の前記奥行きデータとともに複合画像を受信する前記RGBDカメラに接続されたプロセッサであって、前記複合画像の中の基準座標フレームを定義し、かつ前記奥行きデータを使用して前記基準座標フレームに関連する前記複合画像の中の前記頭部のポーズに関連する回転行列及び並進ベクトルを決定するように構成される、前記プロセッサと
を含み、
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定することは、
それぞれの複合画像の中の前記頭部における任意の特徴点を抽出することと、
前記頭部をトラックするための前記頭部上の前記任意の特徴点が十分でない場合、前記奥行きデータを使用して、前記頭部のエッジマップを生成することと、
前記エッジマップのエッジ上の前記任意の特徴点を消去することと
を含む装置。
【請求項７】
前記プロセッサは、
前記頭部の前記ポーズの前記回転行列及び前記並進ベクトルを決定するために、前記任意の特徴点に関連する前記奥行きデータを使用する構成によって、
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定するように構成される請求項６に記載の装置。
【請求項８】
前記プロセッサは、
前記頭部に対する基準ポーズに関連する回転行列及び並進ベクトルと、カレント方向及びカレント位置とを含む状態を有する拡張カルマンフィルターに、前記任意の特徴点の画像座標及び任意の特徴点に対応する奥行きデータを提供し、かつ、
前記拡張カルマンフィルターを使用して、前記回転行列及び前記並進ベクトルを決定する構成によって、
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定するように構成される請求項７に記載の装置。
【請求項９】
前記プロセッサはさらに、
前記奥行きデータを使用して、前記複合画像の中の背景から前記頭部におけるフェイスを抽出し、かつ、
前記背景から前記フェイスを抽出した後、前記複合画像の中の前記フェイスをトラックする
ように構成される請求項６に記載の装置。
【請求項１０】
前記プロセッサは、
前記奥行きデータを使用して、それぞれの画像の中の前記フェイスの奥行きを計算し、かつ、
閾値及び前記フェイスの前記奥行きを使用して、前記背景から前記フェイスを分割する
という構成によって、前記背景から前記フェイスを抽出するように構成される請求項９に記載の装置。
【請求項１１】
装置であって、
被写体の頭部の奥行きデータとともに複合画像をキャプチャする手段と、
前記複合画像の中の基準座標フレームを定義する手段と、
前記奥行きデータを使用して、前記基準座標フレームに関連する前記複合画像の中の前記頭部のポーズに関連する回転行列及び並進ベクトルを決定する手段と
を含み、
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記手段は、
それぞれの複合画像の中の前記頭部における任意の特徴点を抽出する手段と、
前記頭部をトラックするための前記頭部上の前記任意の特徴点が十分でない場合、前記奥行きデータを使用して、前記頭部のエッジマップを生成する手段と、
前記エッジマップのエッジ上の前記任意の特徴点を消去する手段と
を含む装置。
【請求項１２】
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記手段は、
前記頭部の前記ポーズの前記回転行列及び前記並進ベクトルを決定するために、前記任意の特徴点に関連する前記奥行きデータを使用する手段と
を含む請求項１１に記載の装置。
【請求項１３】
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記手段は、
前記頭部に対する基準ポーズに関連する回転行列及び並進ベクトルと、カレント方向及びカレント位置とを含む状態を有する拡張カルマンフィルターに、前記任意の特徴点の画像座標及び任意の特徴点に対応する奥行きデータを提供する手段と、
前記拡張カルマンフィルターを使用して、前記回転行列及び前記並進ベクトルを決定する手段と
を含む請求項１２に記載の装置。
【請求項１４】
前記奥行きデータを使用して、前記複合画像の中の背景から前記頭部におけるフェイスを抽出する手段と、
前記背景から前記フェイスを抽出した後、前記複合画像の中の前記フェイスをトラックする手段と
をさらに含む請求項１１に記載の装置。
【請求項１５】
前記背景から前記フェイスを抽出する前記手段は、
前記奥行きデータを使用して、それぞれの画像の中の前記フェイスの奥行きを計算する手段と、
閾値及び前記フェイスの前記奥行きを使用して、前記背景から前記フェイスを分割する手段と
を含む請求項１４に記載の装置。
【請求項１６】
プログラムコードを含む非一時的コンピュータ可読記録媒体であって、そこに記録されたプログラムコードは、
被写体の頭部の奥行きデータとともに複合画像を受信するプログラムコードと、
前記複合画像の中の基準座標フレームを定義するプログラムコードと、
前記奥行きデータを使用して、前記基準座標フレームに関連する前記複合画像の中の前記頭部のポーズに関連する回転行列及び並進ベクトルを決定するプログラムコードと
を含み、
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記プログラムコードは、
それぞれの複合画像の中の前記頭部における任意の特徴点を抽出するプログラムコードと、
前記頭部をトラックするための前記頭部上の前記任意の特徴点が十分でない場合、前記奥行きデータを使用して、前記頭部のエッジマップを生成するプログラムコードと、
前記エッジマップのエッジ上の前記任意の特徴点を消去するプログラムコードと
を含む非一時的コンピュータ可読記録媒体。
【請求項１７】
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記プログラムコードは、
前記頭部の前記ポーズの前記回転行列及び前記並進ベクトルを決定するために、前記任意の特徴点に関連する前記奥行きデータを使用するプログラムコードと
を含む請求項１６に記載の非一時的コンピュータ可読記録媒体。
【請求項１８】
前記頭部の前記ポーズに関連する前記回転行列及び前記並進ベクトルを決定する前記プログラムコードはさらに、
前記頭部に対する基準ポーズに関連する回転行列及び並進ベクトルと、カレント方向及びカレント位置とを含む状態を有する拡張カルマンフィルターに、前記任意の特徴点の画像座標及び任意の特徴点に対応する奥行きデータを提供するプログラムコードと、
前記拡張カルマンフィルターを使用して、前記回転行列及び前記並進ベクトルを決定するプログラムコードと
を含む請求項１７に記載の非一時的コンピュータ可読記録媒体。
【請求項１９】
前記奥行きデータを使用して、前記複合画像の中の背景から前記頭部におけるフェイスを抽出するプログラムコードと、
前記背景から前記フェイスを抽出した後、前記複合画像の中の前記フェイスをトラックするプログラムコードと
をさらに含む請求項１６に記載の非一時的コンピュータ可読記録媒体。
【請求項２０】
前記背景から前記フェイスを抽出する前記プログラムコードは、
前記奥行きデータを使用して、それぞれの画像の中の前記フェイスの奥行きを計算するプログラムコードと、
閾値及び前記フェイスの前記奥行きを使用して、前記背景から前記フェイスを分割するプログラムコードと
を含む請求項１９に記載の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、発明の名称を“Head Pose Estimation Using RGBDカメラ”として2012年4月25日に出願された米国特許出願第13/456,061号に基づく優先権を主張し、これは同様に、35U.S.C.119の下で、発明の名称を“Mapping, Localization and Pose Estimation by a Filtering Method Integrating Optical and Range Data”として2011年5月17日に出願された米国仮特許出願第61/487,170号、及び、発明の名称を“Head Pose Estimation Using RGBDカメラ”として2011年11月22日に出願された米国仮特許出願第61/562,959号に基づく優先権を主張しており、これらの全ては、これらの出願人に譲渡されているが、参照によりここに組み込まれる。
【背景技術】
【０００２】
ここで説明される発明特定事項の態様は、一般的に画像の中の被写体のポーズ決定に関連し、かつ、より具体的には、奥行きデータとともに画像を使用して被写体の頭部の三次元ポーズを推定することに関連する。
【０００３】
多くのコンピュータデバイスは、例えばビデオフレームのストリームの中にある複合画像をキャプチャすることが可能なカメラを含んでいる。例えば、多くのパーソナルコンピュータは、例えばウェブカメラのようなカメラを含んでおり、それはユーザの画像をキャプチャすることが可能である。さらに、例えば携帯電話、スマートフォン及びタブレットコンピュータのようなデバイスは、一般的に前面にあるカメラを使用するユーザ又は背面にあるカメラを使用する他のユーザのような被写体のカメラを含む。
【０００４】
被写体の位置を特定すること、より具体的には、画像の中にある被写体の頭部の位置を特定することは、例えばテレプレゼンス及びゲームのような多くのアプリケーションで役立つ。しかし、一連の画像の中にある被写体の頭部の位置を特定し、かつトラック(track)することは、従来のシステムでは困難である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００６−５２７４４３号公報
【特許文献２】特開２００８−２５７６４９号公報
【特許文献３】国際公開第２００５／００６２５１号
【発明の概要】
【課題を解決するための手段】
【０００６】
被写体の頭部の三次元ポーズつまり自由度6のポーズは、複合画像の中にキャプチャされた奥行きデータに基づいて決定される。前記頭部の複合画像は、例えば、RGBDカメラによってキャプチャされる。基準ポーズに関連する頭部ポーズの回転行列及び並進ベクトルは、奥行きデータを使用して決定される。例えば、前記頭部における任意の特徴点は、それぞれの複合画像において抽出され、かつ、対応する奥行きデータとともに、頭部に対する基準ポーズに関連する回転行列及び並進ベクトルと、カレント方向及びカレント位置とを含む状態を有する拡張カルマンフィルターに提供する。ついで、前記基準ポーズに関連する頭部の三次元ポーズは、前記回転行列及び前記並進ベクトルに基づいて決定される。
【０００７】
一態様において、方法は、被写体の頭部の奥行きデータとともに複合画像をキャプチャするステップと、奥行きデータを使用して基準座標フレーム(reference coordinate frame)と関連する複合画像の中の頭部のポーズと関連する回転行列及び並進ベクトルを決定するステップとを含む。
【０００８】
一態様において、装置は、被写体の頭部の奥行きデータとともに画像をキャプチャするRGBDカメラと、被写体の頭部の奥行きデータとともに複合画像を受信するRGBDカメラと接続されているプロセッサであって、前記プロセッサは奥行データを使用して、基準座標フレームに関連する複合画像の中の頭部のポーズに関連する回転行列及び並進ベクトルを決定するように構成される。
【０００９】
一態様において、装置は、被写体の頭部の奥行きデータとともに複合画像をキャプチャする手段と、奥行きデータを使用して基準座標フレームと関連する複合画像の中の頭部のポーズに関連する回転行列及び並進ベクトルを決定する手段とを含む。
【００１０】
一態様において、非一時的コンピュータ可読記録媒体は、被写体の頭部の奥行きデータとともに複合画像を受信するプログラムコードと、奥行きデータを使用して基準座標フレームと関連する複合画像の中の頭部のポーズと関連する回転行列及び並進ベクトルを決定するプログラムコードとを含む。
【図面の簡単な説明】
【００１１】
【図１】奥行きデータとともに画像を使用して、頭部の三次元(3D)ポーズ(方向及び位置)を推定することが可能な装置を図示している。
【図２】奥行きデータとともに画像を使用して、頭部ポーズを推定する方法のフローチャートを図示している。
【図３】基準画像を含む異なるポーズを有する被写体頭部の画像を図示している。
【図４】奥行きデータとともに画像を使用して、被写体の三次元ポーズを推定するための概略的なシステムを図示している。
【図５】図４の二次元フェイストラッカーの一実施形態を図示している。
【図６】フェイス上をトラックするための好ましいコーナー(corner)のリストをリフィルする実施形態を図示している。
【図７】図４に示されるシステムにおいて使用される拡張カルマンフィルター270を図示している。
【図８】奥行きデータとともにキャプチャされた画像に基づいて被写体頭部の3Dポーズを決定することが可能なデバイスのブロック図である。
【発明を実施するための形態】
【００１２】
図１は、例えば、ここではRGBDカメラ110として参照される、赤、緑、青、距離(Red, Green, Blue, Distance (RGBD))センサを有するカメラ110、又は他の同様な3D撮像装置から取得された、奥行きデータとともにキャプチャされた画像を使用して、被写体の頭部の三次元(3D)ポーズ(方向及び位置)を推定することが可能な装置を図示している。3Dポーズは、自由度6のポーズとして言及されることがある。RGBDカメラ110は、画像(電気光学、赤外線、又は他の電磁気バンド)、及び、互いに整列された領域マップを提供する調整されたマルチモーダル(multi-modal)センサであり、従って、前記RGBの値はシーンの輝度をサンプルし、かつ、前記Dの値は同じ投影線に沿って奥行きをサンプルする。
【００１３】
図１は、例えば携帯電話のようなモバイルプラットフォームとして、デバイス100を図示しており、前記装置は、ハウジング101、例えばタッチスクリーンディスプレイのようなディスプレイ102、またもちろんスピーカ104及びマイクロフォン106を含む。前記ディスプレイ102は、RGBDカメラ110によってキャプチャされた頭部の画像120を描画する。前記デバイス100は、RGBDカメラ110によってキャプチャされた画像を処理する画像処理ユニット112と、頭部ポーズの推定を決定するのに有効である拡張カルマンフィルターとを含み、以下により詳細に説明される。前記RGBDカメラ110は、RGBDカメラ110がデバイス100の背面に位置することを示すために、点線で図示されているが、前記RGBDカメラ110又は追加的なカメラがデバイス100の前面に位置してもよい。例えば、もし前記デバイス100がモバイルプラットフォームである場合、前記デバイス100はさらに、モーションセンサ108を含んでもよい。前記センサ108は、１又は２以上の加速度計、磁気探知器、及び/又は、ジャイロスコープであってもよい。
【００１４】
ここに使用されるようなモバイルプラットフォームは、例えば、携帯(celluer)又は他の無線通信デバイス、パーソナルコミュニケーションシステム(personal communication system (PCS))デバイス、小型ナビゲーション装置(personal navigation device (PND))、パーソナルインフォメーションマネージャ(Personal Information Manager (PIM))、個人用デジタル補助装置(Personal Digital Assistant (PDA))、ラップトップ、又は他の適切なモバイルプラットフォームのような、任意の携帯型電子デバイスを意味している。前記モバイルプラットフォームはまた、例えば、ナビゲーションポジショニング信号のような、無線通信及び/又はナビゲーション信号を受信することが可能である。前記“モバイルプラットフォーム”という用語はまた、衛星信号受信、支援データ受信(assistance data reception)、及び/又は位置関連処理が、前記デバイス又はPNDにおいて発生するか否かに関わらず、例えば短距離無線、赤外線、有線接続、又は他の接続によって、小型ナビゲーション装置(PND)と通信を行うデバイスを含むことを意図している。また、“モバイルプラットフォーム”は、無線通信デバイス、コンピュータ、ラップトップ、タブレット型コンピュータ、スマートフォン等の、被写体の奥行きデータとともに画像をキャプチャすることが可能な全ての電子デバイスを含むことを意図している。
【００１５】
しかしながら、デバイス100がここにモバイルプラットフォームとして説明されることがあるが、デバイス100は固定デバイスであるか又は１又は２以上の固定された構成要素を含んでもよいということは理解されるべきである。例えば、画像処理ユニット112及び拡張カルマンフィルターに接続されているRGBDカメラ110のそれ自体が可動である一方で、画像処理ユニット112及び/又は拡張カルマンフィルター270が固定であってもよい。
【００１６】
図２は、奥行きデータとともにキャプチャされた画像を使用して、頭部ポーズを推定する方法のフローチャートを図示している。例えば前記RGBDカメラ110を使用して、被写体の頭部の奥行きデータとともに複合画像がキャプチャされる(ステップ152)ことが認識できる。前記画像は、例えばビデオのフレームのシリーズとしてキャプチャされてもよい。画像がキャプチャされるとき、被写体は自由に彼/彼女の頭部を動かすことができる。前記被写体頭部の基準ポーズは、前記キャプチャされた画像の一つから取得され、かつ、基準座標フレームを定義する。基準座標フレームに関連する前記複合画像の中の前記頭部のポーズに関連する回転行列及び並進ベクトルは、前記奥行きデータを使用して決定される(154)。例えば、前記回転行列及び並進ベクトルは、フェイス上にあるような前記頭部の画像から特徴点を抽出することによって、二次元で決定されてもよい。ついで、前記トラックされた特徴点と関連する奥行きデータは、三次元の前記頭部の回転行列及び前記並進ベクトルを決定するために使用される。前記抽出された特徴点は、任意であってよい。前記頭部の三次元ポーズは、前記回転行列及び前記並進ベクトルに基づく基準ポーズに関連して決定される。例えば、前記特徴点の前記画像座標及び対応する奥行きデータは、被写体頭部に対する基準ポーズに関連する前記回転行列及び前記並進ベクトルと、カレント方向及び位置とを含む状態を有する拡張カルマンフィルター270に提供されてもよい。前記拡張カルマンフィルター270は、前記基準ポーズに関連するそれぞれの複合画像に対して前記回転行列及び前記並進ベクトルの推定を決定するように使用されてもよく、基準ポーズから、前記基準ポーズに関連する前記被写体頭部の三次元ポーズが決定される。
【００１７】
図３は、基準画像180を含む異なるポーズを有する被写体頭部の画像を図示している。任意の所定の画像における頭部183及び185がそれぞれ基準画像180と関連している変換(transformations)、つまり、矢印182及び184によって図示される回転行列及び並進ベクトルを決定することによって、前記基準ポーズに関する頭部の三次元ポーズが決定されてもよい。いずれかの画像における前記頭部の三次元ポーズは、例えば、フェイス分析、圧縮において使用されてもよく、もちろん例えばアバターを視覚的に制御するようなゲームにおいても使用されてもよい。
【００１８】
図４は、奥行きデータとともに画像を使用して被写体頭部の三次元ポーズを推定するシステム概略図を図示している。例えばRGBDカメラから取得される、整列された奥行きデータを有する画像が、カレント画像における被写体のフェイスの関心領域(region of interest (ROI))を生成する二次元(2D)フェイストラッカー210に提供される。前記2Dフェイストラッカー210は、RGB画像の中のフェイスを特定する。前記2Dフェイストラッカー210は、例えば、オープンシーブイ・ハー・カスケード・クラシファ(OpenCV Haar Cascade Classifier)又は他の適切なフェイス検出処理に基づいてもよい。例えば、オープンシーブイフェイス検出によって実行されるフェイストラッキング機能は、リソースに激しい計算を要求し、かつ、ヨー(yaw)及びピッチ(pitch)に関して不足してもいる。従って、全てのフレームにおけるフェイス検出の実行を避けることが望ましい。例えば、前記検出されたフェイスの前記関心領域(ROI)は、フェイステンプレートとして保存され、かつ、例えば正規化相互変換(Normalized Cross Correlation (NCC))を使用して、入力画像のフェイス領域を検出するために使用されてもよい。位置(及びテンプレートそのもの)を更新するために、前の既知のフェイステンプレートとともに前記NCCを使用することは、フェイス検出プロセスに比べて計算上効率的である。
【００１９】
図５は、図４からの2Dフェイストラッカー210の実施形態を図示しており、ここでフェイステンプレートは、全てのフレームで計算上激しいフェイス検出プロセスが実行されないようにフェイス領域を検出するために使用される。前記2Dフェイストラッカー210は、入力されたRGB画像を受信し、かつ、フェイステンプレートが利用可能であるかどうかを判定する(212)。もし、利用可能なフェイステンプレートが存在しない場合、前記フェイス検出プロセスが実行される(214)。上記で説明されたように、前記フェイス検出プロセスは、オープンシーブイ・ハー・カスケード・クラシファ又は他の好適なフェイス検出プロセスであってもよい。前記検出されたフェイスの前記関心領域(ROI)は、フェイステンプレートとして保存され(216)、かつ、カレントフレームフェイスROIとして出力される。もし、フェイステンプレートが利用可能な場合(212)、前記入力画像は、NCCを使用してフェイス領域を検出するために前記フェイステンプレートと照合される(218)。もし、前記入力画像が、前記フェイステンプレートとよく一致すると決定される場合(220)、最も一致するフェイスROIが前記フェイステンプレート(216)として保存され、かつ、前記カレントフレームフェイスROIとして2Dフェイストラッカー210から出力される。NCCは、その位置におけるテンプレートに関する一致の度合(goodness of the match)に基づいて、クエリー画像(query image)における各ピクセルに対応する−１と１の間の値を返す。最も高いNCC値をもつ位置が選択され、かつ、もし前記最も高い値が、閾値、例えば0.7よりも大きい場合、その位置はよく一致していると決定される。従って、前記2Dフェイストラッカー210は、全てのフレームの後に前記フェイステンプレートを更新し、その結果、前記フェイステンプレートは、前記被写体頭部の最近のポーズに基づいている。もし、前記入力画像が、前記フェイステンプレートとよく一致していないと決定される(220)場合、前記テンプレートが検出され(222)、かつ、プロセスはステップ212に戻る。
【００２０】
図４に戻ると、例えば、もし、以前のフレームフェイスROIの中の特徴点の数が、期待閾値よりも大きい場合、カレントフレーム(current frame)の中にフェイスをトラックするための十分なコーナー(corner)があるかどうかを決定する(230)。もし、前記フェイスにトラックするための十分なコーナーがある場合、オプティカルフロー(240)プロセスがカレントフレームフェイスROI上で実行される。前記オプティカルフロープロセスは、例えば、当業者には周知であるルカス−カナデ(Lucas-Kanade)オプティカルフローであってもよい。しかし、もし要望があるのならば、例えば正規化相互相関(Normalized Cross Correlation)のような、他のオプティカルフロー処理が使用されてもよい。システムは、被写体頭部の基準ポーズを含む基準フレームを生成する。オプティカルフローは、以前のフレームと、それぞれの後続フレーム(subsequent frame)におけるコーナーとを比較する。基準フレームを始めとし、かつ、それに後続フレームペア上でオプティカルフローを実行することによって、前記基準ポーズに関連する頭部のポーズの回転行列及び並進ベクトルを決定することができる。
【００２１】
もし、前記フェイスにトラックするために十分なコーナーがない(230)と決定される場合、前記フェイス上でトラックされるコーナーのリストがリフィル(refill)される(250)。しかし、フェイスは実質上“テクスチャ不足(texture-less)”である。結果として、FAST (Features from Accelerated Segment Test)コーナー又はオープンシーブイから特徴検出器を使用することが可能なコーナー検出器は、一般的に画像の背景領域におけるコーナーを特定し、かつ従って、望ましくはトラックされるコーナーを検出する前に背景からフェイスを分割する。さらに、フェイスの画像において発生するT-junctionを避けることが望ましい。さらに、上記で説明されたように、前記頭部ポーズ推定は、好適なコーナーのリストからコーナーをトラックする拡張カルマンフィルターを使用する。従って、コーナーのリストをリフィルするとき、望ましくはトラックされるコーナーを保ち、その結果、重複を避けながら新たなコーナーのみが追加される。
【００２２】
図６は、フェイス上をトラックするために、好適なコーナーのリストをリフィルする(250)実施形態を図示している。図示されているように、前記フェイスの奥行きは、カレントRGBD画像からの奥行きデータ及び２Ｄフェイストラッカー(210)によって提供されるカレント画像に対するフェイスROIに基づいて、計算される(252)。例えば、各ピクセルフェイスROIの平均奥行き、又は、前記ROIの中の領域に基づいて、前記フェイスの奥行きが計算される。前記フェイスの奥行きは、奥行き閾値を使用して背景からフェイスを分割する(254)ために、カレントRGBD画像から奥行きデータとともに使用される。例えば、前記フェイスの奥行きが±4インチのような所定の閾値内にないRGBD画像の中の任意のピクセルが、フェイスマップを生成するために画像から分割されてもよい。ついで、コーナー検出部(256)が、前記フェイスマップに基づいてRGBD画像のなかのフェイス上で実行される。前記コーナー検出部は、コーナーを検出するための傾きの最小固有値(minimum eigenvalue of gradients)を使用するオープンシーブイ関数(goodfeaturestotrack())を使用してもよい。その代わりに、コーナー検出部は、ハリーズコーナー(Harris corners)、ファストコーナー(FAST corners)、SURF (Speeded Up Robust Feature)を使用してもよい。さらに、キャニー・エッジ・検出部(Canny Edge Detector)のようなエッジ検出部(258)が、奥行き画像エッジマップを生成するためにRGBD画像からの奥行きデータを使用して実行されてもよい。前記コーナー検出部から検出(256)されたコーナーのリストの中のコーナーは、もし、それらが前記奥行き画像エッジマップの中のエッジにある場合、Ｔジャンクション(T-junctions)を避けるために消去される(260)。従って、結果として生じるコーナーのリストは、前記奥行き画像エッジマップの中のエッジ上にはないフェイス上の全てのコーナーを含んでいる。結果として生じるコーナーのリストは、既存のコーナーと比較され、重複するものは拒絶され、その結果フェイス上の新しいコーナーが特定される。重複しているコーナーは、閾値化に基づいて特定されてもよい。例えば、各特定されたコーナー(つまり、ステップ260によって提供されたコーナー)に対して、最近の既存コーナーからの距離が見出され、かつ、所定の閾値、例えば10ピクセルと比較される。もし、前記距離が閾値よりも小さい場合、前記コーナーは重複しているとして拒絶される。従って、重複のないコーナーの新たなリストが生成され、かつ、オプティカルフロー(240)に提供される。従って、前記奥行きデータは、コーナーをリフィルするために使用され、そのコーナーからオプティカルフロー(240)はポイント一致を決定し、ついで前記ポイント一致は、基準ポーズに関連する頭部のポーズの回転行列及び並進ベクトルを推定するために拡張カルマンフィルターによって使用される。
【００２３】
図４に戻って参照すると、前記オプティカルフロー(240)プロセスは、拡張カルマンフィルター(270)にポイントトラッキング情報を提供する。図７は、図４において示されるシステムにおいて使用される拡張カルマンフィルター(270)を図示している。前記拡張カルマンフィルター(270)への入力は、特徴点に対する前記特徴点の画像座標(x,y)及び奥行きデータ(z)を含む。前記拡張カルマンフィルター(270)で使用される状態(states)は、以下の通りである。
【００２４】
【数１】
0006043856.tif 000002
【００２５】
【数２】
0006043856.tif 000003
が測定され、おおよそ、第一の瞬間(first instant)においてそれらは可視化する。簡略化のためにここでは時間はt=0と仮定する。(時間t>0以降において発生するポイント特徴と同様に、消滅するポイントを扱う方法が記載される)
【００２６】
【数３】
0006043856.tif 000004
は、時間tにおける特徴点ithの奥行きの対数を表す状態変数である。対数座標は、可視ポイントの奥行き
【数４】
0006043856.tif 000005
は正であるように、かつ、デバイスの範囲部分から範囲奥行き測定不確実性(depth measurement uncertainty)の分布を修正するように選択される。
【００２７】
【数５】
0006043856.tif 000006
は、時間tにおけるカメラフレームから世界フレームへの並進ベクトルを表す状態変数である。
【００２８】
【数６】
0006043856.tif 000007
は、時間tにおけるカメラフレームから世界フレームへの回転を表す状態変数である。
【００２９】
【数７】
0006043856.tif 000008
は、時間tにおけるカメラの線速度である。
【００３０】
【数８】
0006043856.tif 000009
は、時間tにおけるカメラの角速度である。
【００３１】
【数９】
0006043856.tif 000010
は、平均0のガウス雑音プロセスであると仮定する。
【００３２】
【数１０】
0006043856.tif 000011
は、時間tにおける、特徴点ithのカメラ座標フレームにおける、測定された画像座標である。
【００３３】
【数１１】
0006043856.tif 000012
は、時間tにおける特徴点ithのカメラ座標フレームにおける、測定された奥行きのログである。実際のところ、前記範囲データは、ログ奥行き(log-depth)を生成するために予め処理され、前記雑音はログスケールにおいて付加的であるとみなされる。
【００３４】
前記拡張カルマンフィルター(270)は、カレントカメラ位置から世界座標への並進ベクトル(T)及び回転行列(R)を生成する。図４に図示されているように、前記拡張カルマンフィルター(270)から結果として生じる被写体頭部の三次元ポーズは、被写体の複合ビューからポイントクラウドを結合するために使用されてもよく、例えば、RGBD画像及びカレントフレームに対するフェイスROIから、整列されたフェイシャルポイントクラウド(aligned facial point cloud)を生成するように使用されてもよい。訂正される前記整列されたフェイシャルポイントクラウドは、例えばテレプレゼンス及びゲームのような多くのアプリケーションを有する、より滑らかで、かつ、完成度の高いフェイスモデルを提供する。
【００３５】
図８は、奥行きデータとともにキャプチャされた画像に基づいて被写体頭部の3Dポーズ(方向及び位置)を決定することが可能なデバイス100のブロック図である。前記デバイス100は、例えばRGBDカメラ110のような、奥行きデータとともに画像をキャプチャする手段を含む。前記デバイス100は、さらに、例えばディスプレイ102のような、画像を表示する手段を含むユーザインターフェース150を含む。前記ユーザインターフェース150はまた、キーパッド152、又は、ユーザがデバイス100に情報を入力可能である他の入力デバイスを含んでもよい。必要に応じて、前記キーパッド152は、タッチセンサー(ジェスチャー制御)とともにディスプレイ102の中に仮想キーパッドを統合することによって、不要とされてもよい。例えば、デバイス100が携帯電話等である場合、前記ユーザインターフェース150はまた、マイクロフォン 106及びスピーカ104を含むことができる。もちろんデバイス100は、本発明と関連のない他の要素を含んでもよい。例えば、前記デバイス100は、例えば、デバイスの動きを決定するのに有効である１又は２以上の加速度計及び/又はジャイロスコープのような、モーションセンサを含んでもよい。
【００３６】
前記デバイス100はまた、RGBDカメラ110と接続され、かつ、通信する制御ユニット160を含む。前記制御ユニット160は、RGBDカメラ110によってキャプチャされた画像及び奥行きデータを受信するとともに処理し、かつ、ディスプレイ102を制御する。前記制御ユニット160は、プロセッサ161によって提供され、かつ、メモリ164、ハードウェア162、ソフトウェア165、ファームウェア 163及びバス160bと関連している。前記制御ユニット160は、例えば、図４、図５及び図６で説明された前記2Dフェイストラッカー(210)、コーナーのリフィル(250)、及びオプティカルフロー(240)のような、上記で説明した処理の様々な実施形態(aspect)を実行する画像処理ユニット112を含んでもよい。前記制御ユニット160はさらに、図４及び図７で説明されたように、奥行きデータを使用して、被写体頭部の三次元ポーズを決定する拡張カルマンフィルター270を含む。前記被写体頭部の三次元ポーズは、メモリ164又は他の記憶ユニットに記憶され、かつ、前記頭部のポーズを決定するために使用されてもよい。
【００３７】
画像処理ユニット112及び拡張カルマンフィルター270は、明確にするために、プロセッサ161から独立して図示されているが、プロセッサ161の一部であってもよく、又は、プロセッサ161において実行されるソフトウェア165の中の命令に基づいてプロセッサにおいて実行されてもよい。ここで使用されているようなプロセッサ161は、１又は２以上のマイクロプロセッサ、内臓プロセッサ、制御器、特定用途向け集積回路(application specific integrated circuits (ASICs))、デジタル信号プロセッサ(DSPs)等を含む必要はないが、含んでもよいものとして理解される。前記プロセッサという用語は、具体的なハードウェアというよりはむしろ、システムによって実行される機能を説明することを意図している。さらに、ここで使用されている“メモリ”という用語は、コンピュータ記憶媒体のいずれかのタイプを言及しており、長期間メモリ、短期間メモリ、又はデバイス100と関連のある他のメモリを含んでおり、メモリのいかなる特定のタイプ、メモリの数、又はメモリが格納されるメディアのタイプを限定しない。
【００３８】
ここに説明された方法は、アプリケーションに応じた様々な手段によって実行されてもよい。例えば、これらの方法は、ハードウェア162、ファームウェア163、ソフトウェア165、又はそれらいずれかの組み合わせによって実行されてもよい。ハードウェア実行に対して、処理ユニットは、１又は２以上の特定用途向け集積回路(application specific integrated circuits (ASICs))、デジタル信号プロセスデバイス(DSPDs)、プログラム可能論理回路(programmable logic devices (PLDs))、フィールド・プログラマブル・ゲート・アレイ(field programmable gate arrays (FPGAs))、プロセッサ、制御器、マイクロコントローラ、マイクロプロセッサ、電気的デバイス、ここに説明された機能を実行するように設計された他の電気的ユニット、又はその組み合わせの中で実行されてもよい。
【００３９】
ファームウェア及び/又はソフトウェア実行に対して、前記方法は、ここに説明された機能を実行するモジュール(例えば、手順、機能等)を使用して実行されてもよい。命令を明白に具現化する任意の機械可読媒体が、ここに説明された方法の実行に使用されてもよい。例えば、ソフトウェアコードがメモリ164に記憶され、かつプロセッサ161によって実行されてもよい。メモリは、プロセッサ161の内部又は外部において実行されてもよい。もし、ファームウェア及び/又はソフトウェアにおいて実行される場合、機能は、コンピュータ可読記録媒体上の１又は２以上の命令又はコードとして記憶されてもよい。例えば、データ構造とともにエンコードされた非一時的コンピュータ可読記録媒体、及び、コンピュータプログラムとともにエンコードされたコンピュータ可読記録媒体である。コンピュータ可読記録媒体は、物理的コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセス可能な任意の利用可能メディアであってもよい。例示的な方法によって、そのようなコンピュータ可読記録媒体は、RAM、ROM、EEPROM、CD-ROM又は他の光学ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージデバイス、又はコンピュータによってアクセス可能な命令又はデータ構造の形で設計されているプログラムコードを記憶するように使用される任意の媒体を含むことが可能であるが、これらに限定しない。ここに使用されるディスク(diskとdisc)は、コンパクトディスク(CD)、レーザーディスク（登録商標）、光学ディスク、デジタル多用性ディスク(DVD)、フロッピー（登録商標）ディスク、及びブルーレイディスクを含み、ここでディスク(disk)は一般的に、磁気的にデータを再生し、一方ディスク(disc)は、レーザーを使用し光学的にデータを再生する。上記の組み合わせもまた、コンピュータ可読記録媒体の範囲内に含まれるべきである。
【００４０】
本発明は、教示目的で具体的な実施形態とともに説明されたが、本発明はそれらに限定されない。様々な適合及び修正を、本発明の要旨を逸脱しない範囲で行うことができる。それゆえ、添付された特許請求の範囲の精神及び範囲は、前述の説明に限定されるべきではない。
【符号の説明】
【００４１】
１００  デバイス
１０２  ディスプレイ
１０４  スピーカ
１０６  マイクロフォン
１０８  モーションセンサ
１１０  カメラ
１１２  画像処理ユニット
１２０  頭部の画像
１５０  ユーザインターフェース
１６０  制御ユニット
１６０ｂ  バス
１６１  プロセッサ
１６２  ハードウェア
１６３  ファームウェア
１６４  メモリ
１６５  ソフトウェア
１８０  基準画像
１８３  画像
１８５  画像
２１０  ２Ｄフェイストラッカー
２４０  オプティカルフロー
２７０  拡張カルマンフィルター
【図２】
0006043856.tif 000013
【図４】
0006043856.tif 000014
【図５】
0006043856.tif 000015
【図６】
0006043856.tif 000016
【図７】
0006043856.tif 000017
【図８】
0006043856.tif 000018
【図１】
0006043856.tif 000019
【図３】
0006043856.tif 000020