(57)【要約】【課題】ICPレジスタ手法に比較して、より少ない演算量、より高い精度で安定的に３次元ボディトラッキングを行う。【解決手段】画像処理装置１０は、撮影されたフレーム画像を取得するフレーム画像取得部１１、前フレーム画像に対応する３次元ボディ画像と現フレーム画像とに基づいて関節拘束のない運動ベクトルΔを予測する予測部１２、予測結果に基づいて最適な関節拘束のある運動ベクトルΔ*を決定する運動ベクトル決定部１３、決定された最適な関節拘束のある運動ベクトルΔ*を適用して現フレームに対応する３次元ボディ画像を生成する３次元ボディ画像生成部１４から構成される。目標関数は、動きベクトルΔによる変換後の３次元ボディの姿勢と、動きベクトルΔ*による変換後の３次元ボディの姿勢の差を最小化するべく導出されたものである。本発明は、３次元ボディトラッキングに適用できる。【選択図】図３
2008198174.tif 000002
【特許請求の範囲】
【請求項１】
動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する画像処理装置において、
撮影された前記フレーム画像を取得する取得手段と、
撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算するとともに、前記３次元ボディの各パートの座標に関する第２の行列を演算し、さらに前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成する予測手段と、
前記予測手段によって演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算する演算手段と、
前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定する決定手段とを含み、
前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである
画像処理装置。
【請求項２】
前記予測手段は、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算するとともに、前記３次元ボディの各パートについて、前記パートに含まれる複数点であって、且つ、同一直線上に存在しない前記複数点の座標に関する第２の行列を演算し、さらに前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成する
請求項１に記載の画像処理装置。
【請求項３】
前記所定の目標関数では、前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きが少ないとの仮定に基づき、螺旋運動によって表記された前記被写体の動きが線形化されている
請求項１に記載の画像処理装置。
【請求項４】
前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きは、絶対座標系を用いて表記されている
請求項３に記載の画像処理装置。
【請求項５】
前記所定の目標関数では、前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きが少ないとの仮定に基づき、互いに直交する３軸をそれぞれ中心とする回転運動によって表記された前記被写体の動きが線形化されている
請求項１に記載の画像処理装置。
【請求項６】
前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きは、相対座標系を用いて表記されている
請求項５に記載の画像処理装置。
【請求項７】
前記所定の目標関数は、
（Δ*−Δ）tＣ（Δ*−Δ）
であり、
前記演算手段は、前記所定の目標関数を最小化する第２の運動ベクトルを、
Δ*＝Ｖ（ＶtＣＶ）-1ＶtＣΔ
により演算する
ただし、
Δ*は前記第２の運動ベクトル
Ｖは前記第１の行列
Ｃは前記第２の行列
Δは前記第１の運動ベクトル
である
請求項１に記載の画像処理装置。
【請求項８】
動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する画像処理装置の画像処理方法において、
撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算し、
前記３次元ボディの各パートの座標に関する第２の行列を演算し、
前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成し、
演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算し、
前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定するステップを含み、
前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである
画像処理方法。
【請求項９】
動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化するコンピュータの制御用のプログラムであって、
撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算し、
前記３次元ボディの各パートの座標に関する第２の行列を演算し、
前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成し、
演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算し、
前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定するステップを含む処理をコンピュータに実行させ、
前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである
プログラム。
【請求項１０】
動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する３次元ボディトラッキング処理に用いる目標関数であって、
前記３次元ボディの各パートの動きを関節拘束なしで予測した第１の運動ベクトルを入力、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを出力とし、
前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化する
目標関数。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラム、並びに目標関数に関し、特に、例えば、動きのある人物などの被写体を撮影した連続画像に基づき、当該被写体の動きを複数のパートから構成された３次元ボディによりモデル化する３次元ボディトラッキングに用いて好適な画像処理装置、画像処理方法、およびプログラム、並びに目標関数に関する。
【背景技術】
【０００２】
３次元ボディトラッキングにおいては、例えば図１に示すように、時間的に連続して撮影されたフレーム画像Ｆ0，Ｆ1のうち、基準とするフレーム画像Ｆ0内の被写体を、例えば頭部、胴体部、腕の肩から肘までの部分、腕の肘から指先までの部分、足の腰から膝までの部分、膝から足先までの部分などに分割し、それぞれを３次元のパートとする３次元ボディ画像Ｂ0を生成する。そして、３次元ボディ画像Ｂ0の各パートの動きを、フレーム画像Ｆ1に基づいて追跡（トラッキング）することにより、フレーム画像Ｆ1に対応する３次元ボディ画像Ｂ1を生成するようになされている。
【０００３】
ところで、各パートの動きをトラッキングする際、各パートの動きを独立的に追跡すると、本来関節によって接続されていなければならないパート同士が離れてしまうことが発生し得る（図１Ｄの３次元ボディ画像Ｂ'1）。このような不具合の発生を防ぐため、「各パートは所定の関節点において他のパートと連続している」という条件（以下、関節拘束と称する）に従ってトラッキングする必要がある。
【０００４】
このような必要に応じ、従来、関節拘束のあるトラッキング方法が数多く提案されている（例えば、非特許文献１乃至４）。
【０００５】
【非特許文献１】D. Demirdjian, T. Ko and T. Darrell. “Constraining Human Body Tracking”. Proceedings of ICCV, vol.2, pp.1071, 2003.
【非特許文献２】Christoph Bregler, Jitendra Malik and Katherine Pullen. “Twist Based Acquisition and Tracking of Animal and Human Kinematics”. IJCV, vol.56, no.3, pp.179-194, 2004.
【非特許文献３】Steffen Knoop, Stefan Vacek, and Rudiger Dillmann. “Modeling Joint Constraints for an Articulated 3D Human Body Model with Artificial Correspondences in ICP”. Proceedings of Humanoids, pp.74-79, 2005.
【非特許文献４】Ivana Mikic, Mohan Trivedi, Edward Hunter and Pamela Cosman. “Human Body Model Acquisition and Tracking Using Voxel Data”. IJCV, vol.53, no.3, pp.199-223, 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
非引用文献１では、ICP(Iterative Closest Point)レジスタ手法によって独立的に求めた各パートの動きを、線形運動空間において関節拘束を満たす運動に射影する手法が提案されている。当該射影の方向はICPの相関行列Σ-1によって決定される。
【０００７】
ICPの相関行列Σ-1を使って射影方向を決定することの利点は、射影した運動で３次元ボディの各パートを動かした姿勢が、被写体の実際の姿勢に最も近くなることである。
【０００８】
反対に、ICPの相関行列Σ-1を使って射影方向を決定することの欠点としては、ICPレジスタ手法では２台のカメラによって同時に撮影された２枚の画像の視差に基づいて３次元復元を行っているので、１台のカメラによって撮影された画像を用いる手法に適用できない点が挙げられる。また、３次元復元の精度とエラーが射影方向の決定精度に大きく依存しているので、射影方向の決定が不安定であるという問題がある。さらに、ICPレジスタ手法は、演算量が多く処理に時間がかかるという問題もある。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、ICPレジスタ手法に比較して、より少ない演算量、より高い精度で安定的に３次元ボディトラッキングを行うようにするものである。
【課題を解決するための手段】
【００１０】
本発明の第１の側面である画像処理装置は、動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する画像処理装置において、撮影された前記フレーム画像を取得する取得手段と、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算するとともに、前記３次元ボディの各パートの座標に関する第２の行列を演算し、さらに前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成する予測手段と、前記予測手段によって演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算する演算手段と、前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定する決定手段とを含み、前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである。
【００１１】
前記予測手段は、撮影された基準とする基準フレーム画像に対応する３次元ボディのボディ姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算するとともに、前記３次元ボディの各パートについて、前記パートに含まれる複数点であって、且つ、同一直線上に存在しない前記複数点の座標に関する第２の行列を演算し、さらに前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成するようにすることができる。
【００１２】
前記所定の目標関数では、前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きが少ないとの仮定に基づき、螺旋運動によって表記された前記被写体の動きが線形化されているようにすることができる。
【００１３】
前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きは、絶対座標系を用いて表記されているようにすることができる。
【００１４】
前記所定の目標関数では、前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きが少ないとの仮定に基づき、互いに直交する３軸をそれぞれ中心とする回転運動によって表記された前記被写体の動きが線形化されているようにすることができる。
【００１５】
前記基準フレーム画像と前記次のフレーム画像との間の被写体の動きは、相対座標系を用いて表記されているようにすることができる。
【００１６】
前記所定の目標関数は、
（Δ*−Δ）tＣ（Δ*−Δ）
であり、
前記演算手段は、前記所定の目標関数を最小化する第２の運動ベクトルを、
Δ*＝Ｖ（ＶtＣＶ）-1ＶtＣΔ
により演算するようにすることができる。
ただし、
Δ*は前記第２の運動ベクトル
Ｖは前記第１の行列
Ｃは前記第２の行列
Δは前記第１の運動ベクトル
である。
【００１７】
本発明の第１の側面である画像処理方法は、動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する画像処理装置の画像処理方法において、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算し、前記３次元ボディの各パートの座標に関する第２の行列を演算し、前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成し、演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算し、前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定するステップを含み、前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである。
【００１８】
本発明の第１の側面であるプログラムは、動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化するコンピュータの制御用のプログラムであって、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算し、前記３次元ボディの各パートの座標に関する第２の行列を演算し、前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成し、演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算し、前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定するステップを含む処理をコンピュータに実行させ、前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである。
【００１９】
本発明の第２の側面である目標関数は、動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する３次元ボディトラッキング処理に用いる目標関数であって、前記３次元ボディの各パートの動きを関節拘束なしで予測した第１の運動ベクトルを入力、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを出力とし、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化する。
【００２０】
本発明の第１の側面においては、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、３次元ボディの各パートを接続する関節の座標に関する第１の行列が演算され、３次元ボディの各パートの座標に関する第２の行列が演算され、基準フレーム画像の次のフレーム画像に基づいて各パートの動きを関節拘束なしで予測した第１の運動ベクトルが生成される。そして、演算された第１および第２の行列、並びに第１の運動ベクトルが用いられ、所定の目標関数が所定の条件を満たすように、各パートの動きを関節拘束ありで予測した第２の運動ベクトルが演算され、基準フレーム画像に対応する３次元ボディが、演算された第２の運動ベクトルに従って変換させることにより、次のフレーム画像に対応する３次元ボディが決定される。なお、所定の目標関数に対する所定の条件は、第１の運動ベクトルによる変換後の３次元ボディの姿勢と、第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである。
【００２１】
本発明の第２の側面においては、３次元ボディの各パートの動きを関節拘束なしで予測した第１の運動ベクトルが入力、各パートの動きを関節拘束ありで予測した第２の運動ベクトルが出力であり、第１の運動ベクトルによる変換後の３次元ボディの姿勢と、第２の運動ベクトルによる変換後の３次元ボディの姿勢の差が最小となる第２の運動ベクトルが出力される。
【発明の効果】
【００２２】
本発明の第１の側面によれば、ICPレジスタ手法に比較して、より少ない演算量、より高い精度で安定的に３次元ボディトラッキングを行うことができる。
【００２３】
本発明の第２の側面によれば、関節拘束のない第１の運動ベクトルに基づき、第１の運動ベクトルによる変換後の３次元ボディの姿勢と、関節拘束のある第２の運動ベクトルによる変換後の３次元ボディの姿勢の差が最小となる第２の運動ベクトルを決定することができる。
【発明を実施するための最良の形態】
【００２４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２５】
本発明の第１の側面である画像処理装置（例えば、図３の画像処理装置１０）は、動きのある被写体を時間的に連続して撮影した複数のフレーム画像に基づき、前記被写体の動きを複数のパートから構成された３次元ボディによりモデル化する画像処理装置において、撮影された前記フレーム画像を取得する取得手段（例えば、図３のフレーム画像取得部１１）と、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列（例えば、行列Ｖ）を演算するとともに、前記３次元ボディの各パートの座標に関する第２の行列（例えば、行列Ｃ）を演算し、さらに前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトル（例えば、運動ベクトルΔ）を生成する予測手段（例えば、図３の予測部１２）と、前記予測手段によって演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトル（例えば、運動ベクトルΔ*）を演算する演算手段（例えば、図３の運動ベクトル決定部１３）と、前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定する決定手段（例えば、図３の３次元ボディ画像生成部１４）とを含み、前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである。
【００２６】
本発明の第１の側面である画像処理方法およびプログラムは、撮影された基準とする基準フレーム画像に対応する３次元ボディの姿勢に基づき、前記３次元ボディの各パートを接続する関節の座標に関する第１の行列を演算し（例えば、図４のステップＳ２）、前記３次元ボディの各パートの座標に関する第２の行列を演算し（例えば、図４のステップＳ３）、前記基準フレーム画像の次のフレーム画像に基づいて前記各パートの動きを関節拘束なしで予測した第１の運動ベクトルを生成し（例えば、図４のステップＳ４）、演算された前記第１および第２の行列、並びに前記第１の運動ベクトルを用いて、所定の目標関数が所定の条件を満たすように、前記各パートの動きを関節拘束ありで予測した第２の運動ベクトルを演算し（例えば、図４のステップＳ５）、前記基準フレーム画像に対応する３次元ボディを、演算された前記第２の運動ベクトルに従って変換させることにより、前記次のフレーム画像に対応する３次元ボディを決定するステップ（例えば、図４のステップＳ６）を含み、前記所定の目標関数に対する前記所定の条件は、前記第１の運動ベクトルによる変換後の３次元ボディの姿勢と、前記第２の運動ベクトルによる変換後の３次元ボディの姿勢の差を最小化することである。
【００２７】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２８】
本発明は、図１を用いて説明した３次元ボディトラッキングを実現するため、各パートを独立的にトラッキングして求めた関節拘束のない運動ベクトルΔに基づき、各パートの動きが統合された関節拘束のある運動ベクトルΔ*を算出する方法を提案するとともに、１フレーム前の３次元ボディ画像Ｂ0に運動ベクトルΔ*を適用して、現フレームの３次元ボディ画像Ｂ1を生成できるようにするものである。
【００２９】
本発明では、３次元ボディの各パートの動き（位置と姿勢の変化）を２種類の表記方法によって表現し、それぞれの表記方法を用いて最適な目標関数を導出する。
【００３０】
まず、第１の表記方法について説明する。３次元空間における剛体（各パートに相当）の運動を表す場合、従来から４×４の変換行列による線形変換が用いられる。第１の表記方法では、全ての剛体運動を、所定の軸に対する回転運動と、当該軸に平行に移動する並進運動との組み合わせによって表記する。この回転運動と並進運動の組み合わせは螺旋運動と称される。
【００３１】
例えば図２に示すように、剛体が点p(0)から螺旋運動の回転角θによって点p(θ)に移動した場合、この運動は次式（１）に示すように指数を用いて表記される。
【００３２】
【数１】
2008198174.tif 000003
・・・（１）
【００３３】
式（１）のｅξθ（ξの上の＾は表記の都合により明細書においては省略する。以降においても同様とする）は、剛体の運動（変換）Ｇを示しており、テイラー展開によって次式（２）に示すとおりとなる。
【００３４】
【数２】
2008198174.tif 000004
・・・（２）
【００３５】
なお、Ｉは単位行列を示している。また、指数部分におけるξは、螺旋運動を示しており、次式（３）に示される４×４の行列、または６次元のベクトルで表記される。
【数３】
2008198174.tif 000005
・・・（３）
ただし、
【数４】
2008198174.tif 000006
・・・（４）
である。
【００３６】
したがって、ξθは次式（５）に示されるとおりとなる。
【００３７】
【数５】
2008198174.tif 000007
・・・（５）
【００３８】
なお、ξθの６個の独立変数ξ1θ，ξ2θ，ξ3θ，ξ4θ，ξ5θ，ξ6θのうち、前半のξ1θ乃至ξ3θは螺旋運動の回転運動に関わり、後半のξ4θ乃至ξ6θは螺旋運動の並進運動に関わる。
【００３９】
ここで、「連続するフレーム画像Ｆ0,Ｆ1間における剛体の移動量が小さい」ということを仮定すれば、式（２）の第３項以降は省略でき、剛体の運動（変換）Ｇは次式（６）に示すように線形化することができる。
【００４０】
【数６】
2008198174.tif 000008
・・・（６）
【００４１】
なお、連続するフレーム画像Ｆ0,Ｆ1間における剛体の移動量が大きい場合には、撮影時のフレームレートを上げることによって、フレーム間の移動量を小さくすることができる。したがって、「連続するフレーム画像Ｆ0,Ｆ1間における剛体の移動量が小さい」との仮定を常に成立させることができるので、以降においては、剛体の運動（変換）Ｇとして式（６）を採用する。
【００４２】
次に、Ｎ個のパート（剛体）からなる３次元ボディの運動について考察する。上述したように、各パートの運動は、ξθのベクトルによって表記されるので、関節拘束のない３次元ボディの運動ベクトルΔは、次式（７）に示されるように、Ｎ個のξθのベクトルによって表示される。
【００４３】
【数７】
2008198174.tif 000009
・・・（７）
【００４４】
なお、Ｎ個の各ξθのベクトルは、それぞれ６個の独立変数ξ1θ乃至ξ6θを有しているので、３次元ボディの運動ベクトルΔは、６Ｎ次元となる。
【００４５】
ここで、式（７）を簡略化するため、次式（８）のように、６個の独立変数ξ1θ乃至ξ6θのうち、螺旋運動の回転運動に関わる前半のξ1θ乃至ξ3θを３次元ベクトルｒiで表記し、螺旋運動の並進運動に関わる後半のξ4θ乃至ξ6θを３次元ベクトルｔiで表記する。
【数８】
2008198174.tif 000010
・・・（８）
【００４６】
この結果、式（７）は次式（９）に示すとおり簡略化できる。
【００４７】
【数９】
2008198174.tif 000011
・・・（９）
【００４８】
ところで、３次元ボディを構成するＮ個のパートには、実際には関節拘束を適用する必要がある。そこで次に、関節拘束のない３次元ボディの動きベクトルΔから、関節拘束のある３次元ボディの動きベクトルΔ*を求める方法について説明する。
【００４９】
なお、以下の説明は、動きベクトルΔによる変換後の３次元ボディの姿勢と、動きベクトルΔ*による変換後の３次元ボディの姿勢の差は最小となるとの考えに基づくものである。
【００５０】
具体的には、３次元ボディを構成する各パートの任意の３点（ただし、３点は同一直線上に存在しない）を決定し、動きベクトルΔによる変換後の３次元ボディの姿勢の当該３点と、動きベクトルΔ*による変換後の３次元ボディの姿勢の当該３点との距離を最小化する動きベクトルΔ*を求めている。
【００５１】
関節拘束のある３次元ボディの動きベクトルΔ*は、３次元ボディが有する関節の数をＭ個とした場合、上述した非特許文献１にも記載されているように、関節座標で構築した3M×6Nの関節拘束行列Φの零空間null space｛Φ｝に属するものとする。
【００５２】
ここで、関節拘束行列Φについて説明する。Ｍ個の各関節をＪi（ｉ＝１，２，…，Ｍ）、関節Ｊiが連結するパートの索引をｍi，ｎiで示し、各関節Ｊiに対して次式（１０）に示される3×6Nの部分行列を生成する。
【００５３】
【数１０】
2008198174.tif 000012
・・・（１０）
【００５４】
なお、式（１０）において、０3は３×３の零行列であり、Ｉ3は３×３の単位行列である。
【００５５】
このようにして得られたＭ個の3×6Nの部分行列を列に沿って並べることにより、次式（１１）に示す3M×6Nの行列を生成する。この行列を関節拘束行列Φとする。
【００５６】
【数１１】
2008198174.tif 000013
・・・（１１）
【００５７】
３次元ボディを構成するＮ個のパートのうちのパートｉ（ｉ＝１，２，・・・，Ｎ）における同一直線上に存在しない任意の３点を｛ｐi1，ｐi2，ｐi3｝と表記すれば、目標関数は次式（１２）に示すとおりとなる。
【００５８】
【数１２】
2008198174.tif 000014
・・・（１２）
【００５９】
式（１２）の目標関数を展開すると、次式（１３）となる。
【００６０】
【数１３】
2008198174.tif 000015
・・・（１３）
【００６１】
なお、式（１３）において演算子（・）×は、３次元座標ｐを
【数１４】
2008198174.tif 000016
とした場合、
【数１５】
2008198174.tif 000017
となる３×３の行列の生成を意味する。
【００６２】
ここで、６×６の行列Ｃijを次式（１４）に示すように定義する。
【００６３】
【数１６】
2008198174.tif 000018
・・・（１４）
【００６４】
式（１４）の定義により、目標関数は次式（１５）に示すとおりに整理される。
【００６５】
【数１７】
2008198174.tif 000019
・・・（１５）
ただし、式（１５）におけるＣは次式（１６）に示される6N×6Nの行列である。
【００６６】
【数１８】
2008198174.tif 000020
・・・（１６）
【００６７】
式（１５）に示された目標関数は、非特許文献１に開示されている方法と同様に解くことができる。すなわち、SVDアルゴリズムにより、関節拘束行列Φの零空間の（6N-3M）個の６Ｎ次元の基底ベクトル｛ｖ1，ｖ2，・・・，ｖK｝（Ｋ＝１，・・・，6N-3M）を抽出する。運動ベクトルΔ*は、関節拘束行列Φの零空間に属するので、次式（１７）に示すとおり表記される。
Δ*＝λ1ｖ1＋λ2ｖ2＋…＋λKｖK
・・・（１７）
【００６８】
さらに、ベクトルδ＝（λ1，λ2，…，λK）tと、抽出された６Ｎ次元分の関節拘束行列Φの零空間の基底ベクトルを行に沿って並べることにより生成した6N×(6N−3M)の行列Ｖ＝［ｖ1  ｖ2  …  ｖK］を定義すれば、式（１７）は、次式（１８）に示すとおりとなる。
Δ*＝Ｖδ
・・・（１８）
【００６９】
式（１５）に示された目標関数のうちの（Δ*−Δ）tＣ（Δ*−Δ）に、式（１８）に示されたΔ*＝Ｖδを代入すれば、次式（１９）に示すとおりとなる。
（Ｖδ−Δ）tＣ（Ｖδ−Δ）
・・・（１９）
【００７０】
式（１９）の差分を０とする場合、ベクトルδは次式（２０）に示すとおりとなる。
δ＝（ＶtＣＶ）-1ＶtＣΔ
・・・（２０）
【００７１】
したがって、式（１８）に基づき、目標関数を最小化する最適な運動ベクトルΔ*は、次式（２１）に示すとおりであり、この式（２１）を用いることにより、関節拘束のない運動ベクトルΔから、最適な関節拘束のある運動ベクトルΔ*を演算することが可能となる。
Δ*＝Ｖ（ＶtＣＶ）-1ＶtＣΔ
・・・（２１）
【００７２】
ところで、上述した非特許文献１によれば、関節拘束のない運動ベクトルΔから、関節拘束のある最適な運動ベクトルΔ*を演算する式として次式（２２）が開示されている。
Δ*＝Ｖ（ＶtΣ-1Ｖ）-1ＶtΣ-1Δ
・・・（２２）
ただし、Σ-1はICPの相関行列である。
【００７３】
本発明に対応する式（２１）と非特許文献１に記載の式（２２）を比較した場合、その差異は見かけ上、Σ-1がＣに置換されている点のみである。しかしながら、本発明に対応する式（２１）と、非特許文献１に記載の式（２２）とは、それぞれを導き出す過程における考えが全く異なるものである。
【００７４】
非特許文献１の場合、関節拘束行列Φの零空間に属する運動ベクトルΔ*と、運動ベクトルΔのMahalanobis距離を最小化する目標関数を導出しており、運動ベクトルΔの各分量の相関関係に基づき、ICPの相関行列Σ-1を計算している。
【００７５】
これに対して、本願発明の場合、動きベクトルΔによる変換後の３次元ボディの姿勢と、動きベクトルΔ*による変換後の３次元ボディの姿勢の差を最小化する目標関数を導出している。したがって、本発明に対応する式（２１）では、ICPレジスタ手法を用いていないので、３次元復元精度に依存することなく、安定的に射影方向を決定することができる。また、フレーム画像の撮影方法を限定することがない。また、ICPレジスタ手法を用いる非特許文献１の場合に比較して、演算量を削減することができる。
【００７６】
次に、３次元ボディの各パートの動きを表記する第２の表記方法について説明する。
【００７７】
第２の表記方法では、３次元ボディの各パートの姿勢を、世界座標系における始点（相対座標系における原点）と、世界座標系のx,y,z軸をそれぞれ中心とする回転角度で表す。一般に、世界座標系におけるｘ軸を中心とする回転はRollと称され、ｙ軸を中心とする回転はPitchと称され、ｚ軸を中心とする回転はYawと称される。
【００７８】
以下、３次元ボディのパートｉの世界座標系における始点を（ｘi，ｙi，ｚi）、Roll、Pitch，Yawの回転角度を、それぞれαi，βi，γiとする。この場合、パートｉの姿勢は、以下に示す１つの６次元ベクトルによって表現される。
［αi，βi，γi，ｘi，ｙi，ｚi］t
【００７９】
一般に、剛体の姿勢は、４×４の行列であるHomogeneous transformation matrix（以下、H-行列または変換行列と称する）によって表される。パートｉに対応するH-行列は、世界座標系における始点（ｘi，ｙi，ｚi）、Roll、Pitch，Yawの回転角度αi，βi，γi（rad）を次式（２３）に適用することによって演算することができる。
【００８０】
【数１９】
2008198174.tif 000021
・・・（２３）
【００８１】
そして、剛体運動の場合、フレーム画像Ｆnにおけるパートｉに属する任意の点Ｘの３次元位置は、H-行列を用いた次式（２４）によって計算することができる。
Ｘn＝Ｐi＋Ｇ（ｄαi，ｄβi，ｄγi，ｄｘi，ｄｙi，ｄｚi）・（Ｘn-1−Ｐi）
・・・（２４）
【００８２】
ここで、Ｇ（ｄαi，ｄβi，ｄγi，ｄｘi，ｄｙi，ｄｚi）は、連続するフレーム画像Ｆn-1,Ｆn間のパートｉの運動変化量ｄαi，ｄβi，ｄγi，ｄｘi，ｄｙi，ｄｚiをパーティクルフィルタなどを用いたトラッキング手法によって演算し、この演算結果を式（２３）に代入して演算した４×４の行列である。Ｐi＝（ｘi，ｙi，ｚi）tは、パートｉのフレーム画像Ｆn-1における始点である。
【００８３】
式（２４）に対し、「連続するフレーム画像Ｆn-1,Ｆn間における剛体の移動量が小さい」ということを仮定すれば、各回転角度の変化量は微小となるので、sin ｘ≒ｘ，cos ｘ≒１の近似が成立する。また、多項式の２次項以降も０となり省略できる。よって、式（２４）における変換行列Ｇ（ｄαi，ｄβi，ｄγi，ｄｘi，ｄｙi，ｄｚi）は、次式（２５）に示すとおりに近似される。
【００８４】
【数２０】
2008198174.tif 000022
・・・（２５）
【００８５】
式（２５）から明らかなように、変換行列Ｇの回転部分（左上３×３）は、単位行列＋外積行列の形となっていることに着目し、この形を利用して式（２４）を次式（２６）に変形する。
【００８６】
【数２１】
2008198174.tif 000023
・・・（２６）
【００８７】
さらに、式（２６）における
【数２２】
2008198174.tif 000024
をｒiに置換し、
【数２３】
2008198174.tif 000025
をｔiに置換すれば、式（２６）は次式（２７）に示すように整理される。
Ｘn＝Ｘn-1＋ｒi×（Ｘn-1−Ｐi）＋ｔi
・・・（２７）
【００８８】
ところで、３次元ボディを構成する各パートは他のパートと関節によって連結されている。例えば、パートｉとパートｊが関節Ｊijで連結されているとすれば、フレーム画像Ｆnにおいてパートｉとパートｊが連結される条件（関節拘束条件）は、次式（２８）のとおりである。
ｒi×（Ｊij−Ｐi）＋ｔi＝ｔj
−（Ｊij−Ｐi）×ｒi＋ｔi−ｔj＝０
［Ｊij−Ｐi］×・ｒi−ｔi＋ｔj＝０
・・・（２８）
なお、式（２８）における演算子［・］×は、式（１３）の場合と同様である。
【００８９】
さらに、Ｎ個のパートとＭ個の関節からなる３次元ボディの全体の関節拘束条件は以下の通りとなる。すなわち、Ｍ個の各関節をＪk（ｋ＝１，２，…，Ｍ）、関節Ｊkが連結する２つのパートの索引をｉk，ｊkで示し、各関節Ｊkに対して次式（２９）に示される3×6Nの部分行列を生成する。
【００９０】
【数２４】
2008198174.tif 000026
・・・（２９）
【００９１】
なお、式（２９）において、０3は３×３の零行列であり、Ｉ3は３×３の単位行列である。
【００９２】
このようにして得られたＭ個の3×6Nの部分行列を列に沿って並べることにより、次式（３０）に示す3M×6Nの行列を生成する。この行列を関節拘束行列Φとする。
【００９３】
【数２５】
2008198174.tif 000027
・・・（３０）
【００９４】
そして、上述した式（９）と同様、３次元ボディのフレーム画像Ｆn-1,Ｆn間の変化量を示すｒiとｔiを順番に並べて６Ｎ次元の運動ベクトルΔを生成すれば、次式（３１）に示すとおりとなる。
【数２６】
2008198174.tif 000028
・・・（３１）
【００９５】
したがって、３次元ボディの関節拘束条件式は、次式（３２）となる。
ΦΔ＝０
・・・（３２）
【００９６】
なお、式（３２）は数学的に、運動ベクトルΔが関節拘束行列Φの零空間null space｛Φ｝に含まれることを意味する。すなわち、次式（３３）のとおりに記述される。
Δ ∈ null space｛Φ｝
・・・（３３）
【００９７】
以上のようにして求めた運動ベクトルΔと関節拘束条件式（３２）に基づき、３次元ボディを構成するＮ個のパートのうちのパートｉ（ｉ＝１，２，・・・，Ｎ）における同一直線上に存在しない任意の３点を｛ｐi1，ｐi2，ｐi3｝と表記すれば、目標関数は式（１２）と同様の式がえられる。
【００９８】
ただし、第１の表記方法では、３次元ボディの動きが螺旋運動で表記され、パートｉにおける同一直線上に存在しない任意の３点の座標を絶対座標系で表していたことに対し、第２の表記方法では、３次元ボディの動きが絶対座標の原点とx,y,z軸に対する回転運動で表記され、パートｉにおける同一直線上に存在しない任意の３点の座標を、パートｉの始点Ｐiを原点とする相対座標系で表している点が異なるので、第２の表記方法の対応する目標関数は次式（３４）に示すとおりとなる。
【００９９】
【数２７】
2008198174.tif 000029
・・・（３４）
【０１００】
式（３４）に示された目標関数を展開、整理し、最適な運動ベクトルΔ*を求める過程は、上述した第１の表記方法に対応する目標関数を展開、整理し、最適な運動ベクトルΔ*を求める過程（すなわち、式（１２）から式（２１）を導出した過程）と同様である。ただし、第２の表記方法に対応する過程においては、第１の表記方法に対応する過程で定義された６×６の行列Ｃij（式（１４））の代わりに、次式（３５）に示す６×６の行列Ｃijを定義して用いる。
【０１０１】
【数２８】
2008198174.tif 000030
・・・（３５）
【０１０２】
そして最終的に求められる第２の表記方法に対応する最適な運動ベクトルΔ*は、
Δ*＝［ｄα0*，ｄβ0*，ｄγ0*，ｄｘ0*，ｄｙ0*，ｄｚ0*，・・・］t
となり運動パラメータそのものであるので、次のフレーム画像における３次元ボディの生成にそのまま直接用いることができる。
【０１０３】
次に、本発明に対応する式（２１）を３次元ボディトラッキングに用い、図１に示されたように、時間的に連続して撮影されたフレーム画像Ｆ0，Ｆ1から３次元ボディ画像Ｂ1を生成する画像処理装置について説明する。
【０１０４】
図３は、当該画像処理装置の構成例を示している。この画像処理装置１０は、カメラなどによって撮影されたフレーム画像を取得するフレーム画像取得部１１、前フレーム画像に対応する３次元ボディ画像と現フレーム画像とに基づいて３次元ボディを構成する各パートの動き（関節拘束のない運動ベクトルΔに相当）を予測する予測部１２、予測結果を式（２１）に適用して関節拘束のある運動ベクトルΔ*を決定する運動ベクトル決定部１３、および、前フレーム画像に対応する生成済みの３次元ボディ画像を、決定された関節拘束のある運動ベクトルΔ*を用いて変換することにより現フレームに対応する３次元ボディ画像を生成する３次元ボディ画像生成部１４から構成される。
【０１０５】
次に、画像処理装置１０による３次元ボディ画像生成処理について、現フレーム画像Ｆ1に対応する３次元ボディ画像Ｂ1を生成する場合を例に、図４のフローチャートを参照して説明する。なお、前フレーム画像Ｆ0に対応する３次元ボディ画像Ｂ0は既に生成されているものとする。
【０１０６】
ステップＳ１において、フレーム画像取得部１１は、撮影された現フレーム画像Ｆ1を取得して予測部１２に供給する。予測部１２は、３次元ボディ画像生成部１４からフィードバックされた、前フレーム画像Ｆ0に対応する３次元ボディ画像Ｂ0を取得する。
【０１０７】
ステップＳ２において、予測部１２は、フィードバックされた３次元ボディ画像Ｂ0におけるボディ姿勢に基づき、関節座標を要素とする3M×6Nの関節拘束行列Φを構築し、さらに関節拘束行列Φの零空間の基底ベクトルを要素とする6N×(6N−3M)の行列Ｖを構築する。
【０１０８】
ステップＳ３において、予測部１２は、フィードバックされた３次元ボディ画像Ｂ0の各パートについて、同一直線上に存在しない任意の３点を選択し、6N×6Nの行列Ｃを演算する。
【０１０９】
ステップＳ４において、予測部１２は、３次元ボディ画像Ｂ0と現フレーム画像Ｆ1に基づき、３次元ボディの関節拘束のない運動ベクトルΔを演算する。すなわち、３次元ボディを構成する各パートの動きを予測する。この予測には、従来存在するKalmanフィルタ、Particleフィルタ、またはInteractive Closest Point法などの代表的な手法を用いることができる。
【０１１０】
そして、ステップＳ２乃至Ｓ４の処理で得られた行列Ｖ、行列Ｃ、および運動ベクトルΔは、予測部１２から運動ベクトル決定部１３に供給される。
【０１１１】
ステップＳ５において、運動ベクトル決定部１３は、予測部１２から供給された行列Ｖ、行列Ｃ、および運動ベクトルΔを式（２１）に代入することにより、最適な関節拘束のある運動ベクトルΔ*を演算して３次元ボディ画像生成部１４に出力する。
【０１１２】
ステップＳ６において、３次元ボディ画像生成部１４は、前フレーム画像Ｆ0に対応する生成済みの３次元ボディ画像Ｂ0を、運動ベクトル決定部１３から入力された最適な関節拘束のある運動ベクトルΔ*を用いて変換することにより、現フレーム画像Ｆ1に対応する３次元ボディ画像Ｂ1を生成する。なお、生成された３次元ボディ画像Ｂ1は、後段に出力されるとともに予測部１２にフィードバックされる。
【０１１３】
以上で、画像処理装置１０による３次元ボディ画像生成処理の説明を終了する。
【０１１４】
ところで、上述した一連の処理は、図３のように構成されたハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１１５】
図５は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０１１６】
このコンピュータ１００において、CPU（Central Processing Unit）１０１，ROM(Read Only Memory)１０２，RAM(Random Access Memory)１０３は、バス１０４により相互に接続されている。
【０１１７】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、キーボード、マウス、マイクロホンなどよりなる入力部１０６、ディスプレイ、スピーカなどよりなる出力部１０７、ハードディスクや不揮発性メモリなどよりなる記憶部１０８、ネットワークインタフェースなどよりなる通信部１０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどの記録媒体１１１を駆動するドライブ１１０が接続されている。
【０１１８】
以上のように構成されるコンピュータ１００では、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５およびバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【０１１９】
CPU１０１が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアである記録媒体１１１に記録して、あるいは、ローカルエリアネットワーク、インタネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０１２０】
そして、プログラムは、記録媒体１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【０１２１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１２２】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１２３】
【図１】３次元ボディトラッキングの概要を説明するための図である。
【図２】剛体の螺旋運動を説明するための図である。
【図３】本発明を適用した画像処理装置の構成例を示すブロック図である。
【図４】３次元ボディ画像生成処理を説明するフローチャートである。
【図５】コンピュータの構成例を示すブロック図である。
【符号の説明】
【０１２４】
１０  画像処理装置，  １１  フレーム画像取得部，  １２  予測部，  １３  運動ベクトル決定部，  １４  ３次元ボディ画像生成部，  １００  コンピュータ，  １０１  CPU，  １１１  記録媒体
【図１】
2008198174.tif 000031
【図２】
2008198174.tif 000032
【図３】
2008198174.tif 000033
【図４】
2008198174.tif 000034
【図５】
2008198174.tif 000035