(57)【要約】【課題】対象物に関する事前知識なしで、対象物の関節構造を取得する。【解決手段】視体積交差法を用いて、複数台のカメラから得られた画像から対象物の３次元形状を取得するステップと、リーブグラフを用いて、得られた対象物の３次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得するステップと、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定するステップと、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得するステップと、からなる。【選択図】図４
2008282110.tif 000002
【特許請求の範囲】
【請求項１】
視体積交差法を用いて、複数台のカメラから得られた画像から対象物の３次元形状を取得するステップと、
リーブグラフを用いて、得られた対象物の３次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得するステップと、
対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定するステップと、
実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得するステップと、
からなる、対象物の関節構造の取得方法。
【請求項２】
前記３次元形状を取得するステップにおいて、前記対象物の３次元形状はポリゴンメッシュとして表現され、
前記仮想関節モデルを取得するステップにおいて、ポリゴンの表面上に平均測地距離μを定義する、
請求項１に記載の対象物の関節構造の取得方法。
【請求項３】
前記３次元形状を取得するステップは、
対象物視体積をポリゴンメッシュで表現するステップと、
視体積ポリゴンメッシュを凸ポリゴンメッシュに変換するステップと、
各カメラから得られた凸ポリゴンメッシュ同士の交差処理を行うステップと、
を備えている、請求項２に記載の対象物の関節構造の取得方法。
【請求項４】
前記交差処理ステップは、交差処理ステップにおける凸ポリゴンメッシュのポリゴンの切り取り時にポリゴンを再構築してポリゴン数を減らすことを含む、請求項３に記載の対象物の関節構造の取得方法。
【請求項５】
前記交差処理ステップは、全ての交差処理が終わった後、あるいは、さらにそれに加えて、１回の交差処理が終わった後毎に、凸ポリゴンメッシュの結合を行うことを含む請求項３，４いずれかに記載の対象物の関節構造の取得方法。
【請求項６】
前記仮想関節モデルを取得するステップにおいて、各等高線の重心に関節の候補となる仮想関節を配置する、請求項１乃至５いずれかに記載の対象物の関節構造の取得方法。
【請求項７】
前記仮想関節モデルを取得するステップは、得られた仮想関節モデルを、当該対象物の既知の関節の位相構造に基づいて修正するステップを備えている、請求項１乃至６いずれかに記載の対象物の関節構造の取得方法。
【請求項８】
前記仮想関節モデルを修正するステップは、関節構造におけるループを構成する枝のいずれかを切り離すことを含む、請求項７に記載の対象物の関節構造の取得方法。
【請求項９】
動きの多い仮想関節を実際の関節と推定するステップは、それぞれの仮想関節に関して、各仮想関節モデル間での関節の動きの分散を求め、得られた分散に基づいて動きが多い仮想関節を決定する、請求項１乃至８いずれかに記載の対象物の関節構造の取得方法。
【請求項１０】
前記関節の動きの分散は、仮想関節の関節角の分散である、請求項９に記載の対象物の関節構造の取得方法。
【請求項１１】
前記関節角は、仮想関節を接続する隣り合う２本の線分間の角度である、請求項１０に記載の対象物の関節構造の取得方法。
【請求項１２】
前記関節の動きの分散は、仮想関節を接続する隣り合う２本の線分の内積の分散である、請求項９に記載の対象物の関節構造の取得方法。
【請求項１３】
分散が閾値を越えた仮想関節を実際の関節であると推定する、請求項９乃至１２いずれかに記載の対象物の関節構造の取得方法。
【請求項１４】
実際の関節の個数Ｎが与えられた場合に、分散の大きい順にＮ個の仮想関節を選択して実際の関節であると推定する、請求項９乃至１２いずれかに記載の対象物の関節構造の取得方法。
【請求項１５】
前記仮想関節モデルは、ノードを構成する仮想関節と、仮想関節を接続するエッジと、からなるグラフ構造を備えている、請求項１乃至１４いずれかに記載の対象物の関節構造の取得方法。
【請求項１６】
仮想関節から実際の関節を推定する前あるいは後において、３軸を備えた仮想関節のローカル座標系を設定する、請求項１乃至１５いずれかに記載の対象物の関節構造の取得方法。
【請求項１７】
前記仮想関節のローカル座標系の設定は、等高線の座標を主成分分析し、得られた３つの固有ベクトルを仮想関節のローカル座標とする、請求項１６に記載の対象物の関節構造の取得方法。
【請求項１８】
仮想関節のローカル座標系を設定する時に、対象物のテクスチャ情報を用いる、請求項１６、１７いずれかに記載の対象物の関節構造の取得方法。
【請求項１９】
対象物のテクスチャ情報を用いて、等高線の重心からテクスチャ情報に向かう一つの軸をテクスチャ軸として特定し、当該テクスチャ軸を等高線平面内の一つの軸に置き換えて用いる、請求項１８に記載の対象物の関節構造の取得方法。
【請求項２０】
前記３次元状の表面に対象物のテクスチャ情報を与えるステップを含む、請求項１乃至１９いずれかに記載の対象物の関節構造の推定方法。
【請求項２１】
視体積交差法を用いて、複数台のカメラから得られた画像から対象物の３次元形状を取得する手段と、
リーブグラフを用いて、得られた対象物の３次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得する手段と、
対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定する手段と、
実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得する手段と、
からなる、対象物の関節構造の取得装置。
【請求項２２】
前記３次元形状を取得する手段において、前記対象物の３次元形状はポリゴンメッシュとして表現され、
前記仮想関節モデルを取得する手段において、ポリゴンの表面上に平均測地距離μを定義する、
請求項２１に記載の対象物の関節構造の取得装置。
【請求項２３】
前記３次元形状を取得する手段は、
対象物視体積をポリゴンメッシュで表現する手段と、
視体積ポリゴンメッシュを凸ポリゴンメッシュに変換する手段と、
各カメラから得られた凸ポリゴンメッシュ同士の交差処理を行う手段と、
を備えている、請求項２２に記載の対象物の関節構造の取得装置。
【請求項２４】
前記交差処理手段は、交差処理における凸ポリゴンメッシュのポリゴンの切り取り時にポリゴンを再構築してポリゴン数を減らすことを含む、請求項２３に記載の対象物の関節構造の取得方法。
【請求項２５】
前記交差処理手段は、全ての交差処理が終わった後、あるいは、さらにそれに加えて、１回の交差処理が終わった後毎に、凸ポリゴンメッシュの結合を行うことを含む請求項２３，２４いずれかに記載の対象物の関節構造の取得装置。
【請求項２６】
前記仮想関節モデルを取得する手段において、各等高線の重心に関節の候補となる仮想関節を配置する、請求項２１乃至２５いずれかに記載の対象物の関節構造の取得装置。
【請求項２７】
前記仮想関節モデルを取得する手段は、得られた仮想関節モデルを、当該対象物の既知の関節の位相構造に基づいて修正する手段を備えている、請求項２１乃至２６いずれかに記載の対象物の関節構造の取得装置。
【請求項２８】
前記仮想関節モデルを修正する手段は、関節構造におけるループを構成する枝のいずれかを切り離すことを含む、請求項２７に記載の対象物の関節構造の取得装置。
【請求項２９】
動きの多い仮想関節を実際の関節と推定する手段は、それぞれの仮想関節に関して、各仮想関節モデル間での関節の動きの分散を求め、得られた分散に基づいて動きが多い仮想関節を決定する、請求項２１乃至２８いずれかに記載の対象物の関節構造の取得装置。
【請求項３０】
前記関節の動きの分散は、仮想関節の関節角の分散である、請求項２９に記載の対象物の関節構造の取得装置。
【請求項３１】
前記関節角は、仮想関節を接続する隣り合う２本の線分間の角度である、請求項３０に記載の対象物の関節構造の取得装置。
【請求項３２】
前記関節の動きの分散は、仮想関節を接続する隣り合う２本の線分の内積の分散である、請求項３０に記載の対象物の関節構造の取得装置。
【請求項３３】
分散が閾値を越えた仮想関節を実際の関節であると推定する、請求項３０乃至３２いずれかに記載の対象物の関節構造の取得装置。
【請求項３４】
実際の関節の個数Ｎが与えられた場合に、分散の大きい順にＮ個の仮想関節を選択して実際の関節であると推定する、請求項３０乃至３２いずれかに記載の対象物の関節構造の取得装置。
【請求項３５】
前記仮想関節モデルは、ノードを構成する仮想関節と、仮想関節を接続するエッジと、からなるグラフ構造を備えている、請求項２１乃至３４いずれかに記載の対象物の関節構造の取得装置。
【請求項３６】
３軸を備えた仮想関節のローカル座標系を設定する手段を備えている、請求項２１乃至３５いずれかに記載の対象物の関節構造の取得装置。
【請求項３７】
前記仮想関節のローカル座標系の設定手段は、等高線の座標を主成分分析し、得られた３つの固有ベクトルを仮想関節のローカル座標とする、請求項３６に記載の対象物の関節構造の取得装置。
【請求項３８】
仮想関節のローカル座標系の設定手段は、対象物のテクスチャ情報を用いる、請求項３６，３７いずれかに記載の対象物の関節構造の取得装置。
【請求項３９】
仮想関節のローカル座標系の設定手段は、対象物のテクスチャ情報を用いて、等高線の重心からテクスチャ情報に向かう一つの軸をテクスチャ軸として特定し、当該テクスチャ軸を等高線平面内の一つの軸に置き換えて用いる、請求項３９に記載の対象物の関節構造の取得装置。
【請求項４０】
前記３次元状の表面に対象物のテクスチャ情報を与える手段を含む、請求項２１乃至３９いずれかに記載の対象物の関節構造の推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間や他の生物等の対象物の関節構造を取得する方法及び装置に関するものである。
【背景技術】
【０００２】
人体の運動計測、モデル推定は、ロボティクス、コンピュータビジョン、身体運動科学なの幅広い分野で盛んに扱われている研究対象である。
【０００３】
運動計測の分野ではモーションキャプチャが一般的に用いられている。再帰反射性のマーカを用いた光学式モーションキャプチャは精度の高い計測、リアルタイムでの計測が可能である。ただし、光学式モーションキャプチャは点の座標を計測する技術であるので、人体の姿勢や形状を求めたい場合は関節モデルを用いて逆運動学計算が必要となる。
【０００４】
一方、物体の３次元形状を必要とするような用途においては、マーカを用いないモーションキャプチャが利用される。このようなモーションキャプチャは視体積交差法（非特許文献１）を用いた方法が一般的である。Iiyamaら（非特許文献２）は全方位にカメラを配置し、物体の下面を含む物体全周の３次元形状の計測を可能とした。また、従来の視体積交差法はボクセルデータを扱う場合が多く、計算量が多いという欠点もある。
【０００５】
また、３次元形状を細線化し人体の関節モデル推定、姿勢推定などを行っている研究もある。Chi-Weiら（非特許文献３）はマーカレスモーションキャプチャのデータから関節モデルの推定を行った。従来のマーカレスモーションキャプチャを用いた姿勢推定やモデル推定では細線化を行うことが多かった。しかし、細線化することにより表現できる関節は球面関節からロール軸まわりの自由度を取り除いた二自由度の関節である。一般的な球面関節を表すためには細線化処理のみでは不完全である。
【０００６】
また、３次元形状マッチングの位相幾何情報をグラフで表現したリーブグラフ(Reeb Graph)を用いる方法（非特許文献４）が研究されている。リーブグラフとは、曲面または物体上で定義される連続関数μの値によって曲面をいくつかに区切り、各部の接続関係をグラフで表したものである。リーブグラフを用いることで３次元形状データから位相幾何情報や骨格情報といった特徴的な情報を得ることが可能であり、また、情報量の観点から見ると、情報の圧縮、計算コストの軽減などに恩恵をもたらしている。Hiragaら（非特許文献５）、Tungら（非特許文献６）は多解像度のリーブグラフを用いて、３次元形状の類似度を求めることにより、形状のマッチングを行った。また、宮本ら（非特許文献７）はリーブグラフを用いて人体の姿勢推定を行っている。
【非特許文献１】W.N.Martin and J.K. Aggarwal. Volumetric Descriptions of Objects from MultipleViews. IEEE Trans. on Pattern Analysis and MachineIntelligence, Vol. 5, No. 2, 1983.
【非特許文献２】Masaaki Iiyama, Yoshinari Kameda, and Michihiko Mino. 4π measurement system: acomplete volume reconstruction system for freely-moving objects. MultisensorFusion and Integration for Intelligent Systems, MFI2003. Proceedings of IEEEInternational Conference on, pp. 119.124, 2003.
【非特許文献３】Chi-Wei Chu, Odest Chadwicke Jenkins, and Maja J Mataric. Markerless KinematicModel and Motion Capture from Volume Sequences. In Proceedings of IEEE ComputerVision and Pattern Recognition (CVPR 2003), June 2003.
【非特許文献４】G.Reeb. On thesingular Points of a Completely Integrable Pfaff Form or of a NumericalFunction. Comptes Randus Acad. Sciences Paris, Vol. 222, pp. 847.849, 1946.
【非特許文献５】Masaki Hilaga,Yoshihisa Shinagawa, Taku Kohmura, and Tosiyuki L. Kunii. Topology Matching forFully Automatic Similarity Estimation of 3D Shapes. SIGGRAPH 2001 ConferenceProceedings L.A., CA, U.S.A., pp. 203.212, August 2001.
【非特許文献６】T. TUNG and F.SCHMITT. THE AUGMENTED MULTIRESOLUTION REEB GRAPH APPROACH FOR CONTENT-BASEDRETRIEVAL OF 3D SHAPES. International Journal of Shape Modeling, Vol. 11, No.1, pp. 91.120, 2005.
【非特許文献７】宮本新, 鷲見和彦, 松山隆司. 骨格線モデルと円筒多関節モデルを併用した人体の姿勢推定. 情報処理学会研究報告(CVIM), Vol. 2006, No. 51, 2006.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、対象物に関する事前知識なしで、対象物の関節構造を取得することにある。本発明の他の目的は、球面関節を含む関節構造のモデル化を行うことにある。
【課題を解決するための手段】
【０００８】
本発明が採用した対象物の関節構造の取得方法は、視体積交差法を用いて、複数台のカメラから得られた画像から対象物の３次元形状を取得するステップと、リーブグラフを用いて、得られた対象物の３次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得するステップと、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定するステップと、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得するステップと、からなる。
【０００９】
本発明が採用した対象物の関節構造の取得装置は、視体積交差法を用いて、複数台のカメラから得られた画像から対象物の３次元形状を取得する手段と、リーブグラフを用いて、得られた対象物の３次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得する手段と、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定する手段と、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得する手段と、からなる。
【００１０】
一つの好ましい態様では、前記３次元形状を取得するステップにおいて、前記対象物の３次元形状はポリゴンメッシュとして表現され、前記仮想関節モデルを取得するステップにおいて、ポリゴンの表面上に平均測地距離μを定義する。本発明において前記３次元形状をボクセルデータで表現することも可能であるが、μ関数の計算量等を考慮すると、ポリゴンメッシュが有利である。一つの好ましい態様では、対象物視体積をポリゴンメッシュで表現する；視体積ポリゴンメッシュを凸ポリゴンメッシュに変換する；各カメラから得られた凸ポリゴンメッシュ同士の交差処理を行う；を備えている、一つの好ましい態様では、前記交差処理は、交差処理における凸ポリゴンメッシュのポリゴンの切り取り時にポリゴンを再構築してポリゴン数を減らすことを含む。一つの好ましい態様では、前記交差処理は、全ての交差処理が終わった後に、あるいは、さらにそれに加えて、１回の交差処理が終わった後毎に、凸ポリゴンメッシュの結合を行うことを含む。
【００１１】
仮想関節モデルは、姿勢に依存しない関数である平均測地距離μに基づいて得られたリーブグラフの抽象的なノード一つに対して、一つの仮想関節を置くことで得られる。一つの態様では、μが最小となる部分をリーブグラフ（仮想関節モデル）のルートとし、μが増える方向を子関節とする。仮想関節モデルは、ノードを構成する仮想関節と、仮想関節を接続するエッジと、からなるグラフ構造を備えることができる。この場合、親関節の方向は、親関節と子関節を接続するエッジの方向となる。一つの好ましい態様では、各等高線の重心に関節の候補となる仮想関節を配置する。その他の態様としては、等高線上のいずれかの点を仮想関節の位置とすることもできる。一つの好ましい態様では、前記３次元状の表面に対象物のテクスチャ情報を与える手段を含む。ポリゴンデータにテクスチャを貼り付けること自体は当業者において公知である。
【００１２】
前記仮想関節モデルの取得において、一つの好ましい態様では、得られた仮想関節モデルを、当該対象物の既知の関節の位相構造に基づいて修正することを含む。より具体的な態様では、前記修正は、関節構造におけるループを構成する枝のいずれかを切り離すことを含む。他の態様では、前記修正は、ループの切断後あるいはそれ以外の場合に、短い枝を落とすことを含む。
【００１３】
一つの好ましい態様では、動きの多い仮想関節を実際の関節と推定することは、それぞれの仮想関節に関して、各仮想関節モデル間での関節の動きの分散を求め、得られた分散に基づいて動きが多い仮想関節を決定する。一つの好ましい態様では、前記関節の動きの分散は、仮想関節の関節角の分散である。一つの好ましい態様では、前記関節角は、仮想関節を接続する隣り合う２本の線分（エッジ）間の角度である。一つの好ましい態様では、前記関節の動きの分散は、仮想関節を接続する隣り合う２本の線分（エッジ）の内積の分散である。一つの好ましい態様では、動きの分散が閾値を越えた仮想関節を実際の関節であると推定する。一つの好ましい態様では、実際の関節の個数Ｎが与えられた場合に、動きの分散の大きい順にＮ個の仮想関節を選択して実際の関節であると推定する。
【００１４】
最終的に得られる対象物の関節モデルは、リンク機構モデルであり、関節に固定された座標系が必要となる。したがって、変化の大きい仮想関節を残し、リンク機構モデルを作成するためには、残された仮想関節にローカル座標系を設定する必要がある。リンク機構モデルにおける「関節角」はローカル座標系の相対姿勢として計算される。したがって、本発明に係る対象物の関節構造の取得において、仮想関節から実際の関節を推定する前あるいは後において、３軸を備えた仮想関節のローカル座標系を設定する。
【００１５】
一つの好ましい態様において、前記仮想関節のローカル座標系の設定は、等高線の座標を主成分分析し、得られた３つの固有ベクトルを仮想関節のローカル座標とする。より具体的な態様では、前記主成分分析において、第３主成分の軸を、等高線平面の法線；第１主成分の軸を、等高線平面に投影した等高線の外接矩形の長軸方向；第２主成分の軸を、等高線平面に投影した等高線の外接矩形の短軸方向；とする。
【００１６】
一つの好ましい態様では、仮想関節のローカル座標系を設定する時に、対象物のテクスチャ情報を用いる。対象物の断面が円に近く、長軸と短軸の区別がはっきりしない場合は、テクスチャを使って円筒の軸回りの回転を識別する。より具体的な一つの好ましい態様では、対象物のテクスチャ情報を用いて、等高線の重心からテクスチャ情報に向かう一つの軸をテクスチャ軸として特定し、当該テクスチャ軸を等高線平面内の一つの軸に置き換えて用いる。等高線平面内で延出するテクスチャ軸は、等高線平面に投影した等高線に基づいて設定しても、あるいは、等高線上の点とテクスチャとの関係から求めた軸を等高線平面上に投影することで設定してもよい。また、等高線平面の法線方向の軸を、親関節の方向で置き換えてもよい（この場合は、３軸が互いに直交するように修正が必要である）。
【００１７】
「仮想関節から実際の関節を推定すること」における「関節角」の計算には、ローカル座標系の設定は必須ではない。しかしながら、実際の関節を推定する前にローカル座標系を設定することで、関節角の計算方法の選択の幅を広げることができる。例えば、以下のような方法が取り得る。親関節のローカル座標系に対する相対姿勢を計算し、そのオイラー角のいずれかの成分を用いる。同様に相対姿勢を計算し、その等価回転角 (座標変換をある軸回りの1回の回転で表現したときの回転角) を用いる。また、ひねり回転のみをする仮想関節があったと仮定すると、仮想関節を結ぶ線の角度は変わらないので、動きの多い仮想関節を実際の関節と推定することにおいて、テクスチャ情報を用いて、ひねり角を考慮することができる。
【発明の効果】
【００１８】
本発明では、視体積交差法を用いたマーカレスモーションキャプチャにより得られた３次元形状（ポリゴンデータ）から、リーブグラフを用いて仮想的な関節を配置し、複数の姿勢（フレーム）のデータを比較することにより、不要な仮想関節を除去することで対象物の関節構造を推定する。本発明によれば、複数台のカメラから得られた画像を用いることで、形状データから対象物の関節構造を取得することができるため、関節構造の事前知識なしに、関節モデルを推定することが出来るという利点がある。このことにより、通常関節を定義することのない対象（軟体動物など）の関節モデルを推定することも可能である。
【００１９】
また、手先と体が触れた等の理由により誤った骨格情報が得られることがある。このような場合は、対象物の位相情報が事前に分っていれば、骨格情報の修正を行い精度の高いモデル推定が行える。このように事前知識を利用する場合も位相情報（トポロジー）のみであり、円筒の数・長さ・直径に関する知識を使用する必要がない。
【００２０】
本発明では、対象物の関節モデルの各関節に３軸からなるローカル座標系を設定することで、球面関節のモデル化が可能となる。本発明では等高線の長短軸またはテクスチャ軸により関節のひねりを考慮している。
【発明を実施するための最良の形態】
【００２１】
［Ａ］本発明の概要
本発明の実施形態に係る対象物の関節構造の取得装置は、視体積交差法を用いて、複数台のカメラから得られた画像から、ポリゴンメッシュからなる対象物の３次元形状を取得する手段と、リーブグラフを用いて、得られたポリゴンの表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線の重心に関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得する手段と、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定する手段と、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得する手段と、からなる。そして、対象物の関節構造の取得装置のハードウエアは、被験者を撮影する複数のカメラと、一つ又は複数のコンピュータ装置と、から構成される。コンピュータ装置は、演算処理部、入力部、出力部、表示部、記憶部を備えており、所定のコンピュータプログラムに従ってコンピュータの機能が実行される。具体的には、本発明における計算には、画像処理、視体積ポリゴン交差処理、μの計算、関節角の計算、ローカル座標系の設定、テクスチャの設定等があるが、これらの計算はコンピュータによって実行され得る。
【００２２】
本発明の概要は図１〜図４に示してある。視体積交差法による３次元形状の取得の概要について説明する。まず、対象物を複数のカメラで撮影する（図１）。カメラ画像とカメラパラメータを用い、視体積交差法によりポリゴンメッシュからなる３次元形状を取得する（図２左図）。より具体的には、視体積交差法の３次元形状の手順は、カメラ画像から対象物領域を取得する；カメラパラメータを用いて対象物視体積を取得する；各カメラの視体積の交差部分を抽出することにより３次元形状を取得する、ことからなる。そして、ポリゴンのテクスチャ情報を取得する（図２右図）。
【００２３】
次に、リーブグラフを用いた関節推定の概要について説明する。まず、３次元形状上に関数μを定義する。関数μは姿勢に依存しない関数である。図３左図に、異なる姿勢におけるμ値を濃淡で示す。次に、μの等高線を取得し、等高線の重心に仮想関節を配置して仮想関節モデルを取得する（図３）。仮想関節とは、関節の候補となるものである。最後に、複数フレーム（異なる姿勢）の仮想関節モデルを比較し、不要な仮想関節を除去することにより関節位置を推定する（図４）。
【００２４】
本手法の手順を以下に例示する。これらのステップの順序は記載の順序に限定されるものではなく、部分的に順序が入れ替わってもよい。
step 1：複数台のカラーカメラを用い対象物の画像をキャプチャする；
step 2：画像中の対象物を抽出する；
step 3：画像中の対象物領域とカメラの外部・内部パラメータを用いて、対象物が存在し得る３次元の領域(視体積ポリゴンメッシュ)を求める； 
step 4：視体積ポリゴンメッシュを凸ポリゴンメッシュに分割する；
step 5：各カメラから得られた視体積ポリゴンメッシュの交差（積）を取り３次元形状を得る； 
step 6：３次元形状にテクスチャ情報を与える；
step 7：得られた凸ポリゴンメッシュを結合し、ポリゴンの連結情報を得る；
step 8：３次元形状上のポリゴンの関数μを求める； 
step 9：μに基づくリーブグラフによるトポロジーの計算；
step 10：μの値の等高線を取り、リーブグラフのノードに対応する仮想関節を、等高線の重心に置く； 
step 11：仮想関節のローカル座標系を求める；
step 12：複数の仮想関節モデルを比較することで不要な仮想関節を除去して対象物の関節モデルを取得する；
からなる。
以下に、本発明の実施形態について詳細に説明する。
【００２５】
［Ｂ］視体積交差法による３次元形状の取得
視体積交差法とは、カメラ画像の物体領域を３次元に変換した視体積を求め，複数カメラの視体積の交差部分を求め３次元形状を得る手法である。以下の手順で３次元形状を取得する。まず、カメラ画像から対象物体の投影領域を取得する。カメラのレンズの中心と投影領域上の任意の点を結ぶ半直線の集合からなる錐体状の開空間を視体積と呼ぶ。換言すると、対象物視体積とは、カメラ画像中の対象物領域を３次元空間に変換したもので、カメラ位置を頂点とした多角形錘となる。対象物体は必ずこの視体積に内接して存在する。視体積はカメラ毎に存在し、全てのカメラの視体積の交差（積）を取ることにより対象物体の３次元表面形状を得る。
【００２６】
［Ｂ−１］画像中の対象物体領域の抽出
図５に示すように、対象物領域の抽出方法は、背景差分と特徴色抽出を二重に行うことで、物体領域を抽出する。まず、対象物体が含まれない背景画像を用意する。対象物体を含む画像と背景画像の対応するピクセルに注目し、値の差がある閾値を超えたら、そのピクセルは対象物体の一部であると判断する。ただし、上記の様な方法では物体の影まで抽出してしまう。そこで、背景差分に加え、対象物の色情報を利用して物体領域を抽出する。最後に、上記の方法で得られた領域の輪郭を取り、多角形近似を行う。尚、画像中の対象物体領域の抽出については、画像処理において用いられる他の手段を採用し得ることは当業者に理解される。
【００２７】
［Ｂ−２］視体積ポリゴンメッシュの取得
カメラのキャリブレーションを行うことにより、カメラの位置、姿勢の外部パラメータと焦点距離、ひずみ係数等の内部パラメータを求める。これらの値を用いることによって、画像中の１点からその点が存在し得る３次元上の半直線を求めることが出来る。ただし、半直線の始点はカメラの絶対位置となっている。
【００２８】
物体投影領域の境界線に沿って、この半直線を求めることで多角形錘体の視体積を得る。図６に視体積の様子を示す。まず、視体積をポリゴンメッシュで表現する。ポリゴンメッシュとは、ポリゴン（多角形）の集合であり、３次元表面形状を表現するために用いられる。また、ポリゴンメッシュはポリゴン同士の連結情報を持つ。ポリゴンメッシュは、ボクセルと比較し計算量が少ないという利点を備えている。本実施形態では、３角形のポリゴンに基づいて説明する。４角形以上のポリゴンは３角形のポリゴンに分割できるため、３角形以外のポリゴンを用いることも可能である。
【００２９】
［Ｂ−３］ポリゴンメッシュの交差処理
まず、視体積のポリゴンメッシュを凸ポリゴンメッシュに分割する。凸ポリゴンメッシュとは、隣接する二つポリゴンのなす角が１８０度以下であるポリゴンのみで構成されるポリゴンメッシュである。次に凸ポリゴン同士の積演算を行い、結果の集合が視体積の積となる。視体積A とB の交差の場合、式(1)のようになる。ただし、ai，bj はA をB を構成する凸ポリゴンメッシュである。
【数１】
2008282110.tif 000003
また、ポリゴンメッシュの辺に、その辺を構成する二つのポリゴンの情報を持たせる。これにより、ポリゴンの連結情報を得ることが出来る。
【００３０】
次に、凸ポリゴンメッシュの交差処理について説明する。ポリゴンには外内の区別があり、法線ベクトルを定義することで、外側、内側を表現する。凸ポリゴンメッシュの交差処理を行うには、まず、凸ポリゴンメッシュ中の一つのポリゴンTiに注目する。そのポリゴンTiから、他のポリゴンTjの外側にある部分を切り取る。全てのTjに関して、切り取り処理を行う。その様子を示したのが図７の上図である。更に、全てのTiに同様の処理を行い、残った部分の集合が、交差処理の結果となる。二つの凸ポリゴンメッシュ（３角錐）の交差処理の例を図７の下図に示す。凸ポリゴンメッシュ同士の交差処理の後に、凸ポリゴンメッシュの結合を行う。凸ポリゴンメッシュの結合処理は、最終的に得られるポリゴンメッシュの内部に入ってしまうポリゴンを削除することで、複数のポリゴンメッシュを結合する処理である。
【００３１】
［Ｂ−４］３次元形状データのテクスチャの取得
最後に、得られた３次元形状データにテクスチャを貼る。ポリゴンの法線方向に最も近いカメラの画素値を用いて、それぞれのポリゴンにテクスチャを貼る。ただし、上記の方法で求めた際、カメラとポリゴンの間に他のポリゴンが存在する場合は別のカメラの画像を用いる。
【００３２】
カメラCからポリゴンPが見えるための条件は以下のとおりである（図８参照）。まず、一つ目に、PがCの視野内にあること；二つ目に、Pの法線がCの方向を向いていること；最後がPとCの間に他のポリゴンが存在しないこと、である。二つ目の条件はPからCのベクトルPCとPの法線ベクトルの内積が正になることが条件となる。最後は、線分PCと他の全てのポリゴンとの接触判定を行うことで判断する。以上の条件を満たす場合、Cの画像中のテクスチャ情報をPに与える。
【００３３】
次に、ポリゴンメッシュの交差処理を行う際のポリゴン数の削減方法を述べる。本手法ではポリゴンを３角形として表現しているため、交差処理でポリゴンが切り取られる際に３角形分割が行われる。このため、交差処理を繰り返していくうちにポリゴン数が必要以上に多くなる。そこで、ポリゴンを切り取る際にポリゴン再構築を行うことでポリゴン数を減らす。図９は、３角形を徐々に切り取っていく流れを示したものであるが、ポリゴン再構築法では３角形分割を一度解除し、切り取った後に新たに３角形分割を行うことによりポリゴン数を減らしている。もう一つのポリゴン数の削減方法として、凸ポリゴンメッシュの結合を全ての交差処理が終わった後のみではなく、一回の交差処理が終わった後に凸ポリゴンメッシュの結合を行う。この処理では、結合しても凸状態を維持できるもののみ結合する。図１０において、左が結合して凸状態を維持できる例で、右が結合したら凸ではなくなってしまう例である。
【００３４】
［Ｃ］リーブグラフを用いた仮想関節の配置
リーブグラフとは３次元形状の表面に関数μを定義し、そのμ値から求めた３次元形状の位相情報のことである。リーブグラフを用いることで、物体表面上で定義される連続関数μの値によって物体をいくつかに区切り、各部の接続関係をグラフで表すことができる。本手法ではリーブグラフを用いて３次元形状の関節位置を推定する。リーブグラフは狭義には得られたグラフを指すと考えられるが、本明細書においては、リーブグラフは、μ値からそのグラフを得る方法を含んだ広義で用いる。リーブグラフは、ポリゴン上のμ値の分布からトポロジーを得る際に用いる。仮想関節の配置のステップは、より具体的には、μの計算；リーブグラフによるトポロジーの計算；μの等高線に基づく仮想関節の配置；の３ステップからなる。リーブグラフは、複数のノードとノードを連結するエッジから形成されており、計算されたμ値からリーブグラフを取得すること自体は公知であって、例えば、非特許文献６に記載されている。リーブグラフにおけるノードはトポロジーを表現するだけの抽象的なものであり、物理的な点ではない。これに対して、本発明における仮想関節は、リーグラフのノードに対応するものであるが、μの等高線に基づく位置の属性を備えている点において、「仮想関節モデル」と「リーブグラフ」は等価ではない。リーブグラフを用いた仮想関節配置の手順は以下のとおりである。まず、平均測地距離μを定義する。次に、μを連続関数へと変換する。次に、μの値の等高線を取得し、リーブグラフのノードに対応する仮想関節を、等高線の重心に配置する。
【００３５】
［Ｃ−１］平均測地距離μの定義
関数μはポリゴンＴの関数である。μを式(2)のように定義する。ただし、Tiはポリゴン、ａ(Tj)はポリゴンTjの面積、g(Ti,Tj)はポリゴンTiからポリゴンTjまで連結情報に従って表面を辿ったときの最短距離（最短測地距離）である。ｇはダイキストラ法により計算することができる。
【数２】
2008282110.tif 000004
このように定義したμ(Ti)は、あるポリゴンTiから他の全てポリゴンへの最短距離の平均を表す関数である。μは体の中心に近いほど値は小さくなり、先端ほど大きい値となる。また、表面を辿った距離を基にしているため、μは姿勢に依存しない関数となる。
【００３６】
等高線を定義するためμは表面上で連続な関数であることが必要である。上記の定義ではポリゴンごとにμを設定していたためμは表面上で離散的な値となる。そこで、頂点にμを定義し、ポリゴン内のμは頂点のμを線形補間することにより求める。こうすることにより、表面上で連続な関数となる。頂点vにおけるμの値の取り方は下の式に示すようになる。
【数３】
2008282110.tif 000005
頂点vにおけるμの値は、Ti（ｖを含むポリゴン）のμの値の平均となる。線形補間の仕方は下の式に示すようになり、ポリゴン内の点p(s,t)におけるμの値は、各頂点のμの値と媒介変数stを用いて表せる。
【数４】
2008282110.tif 000006
s,tはポリゴン中の媒介変数、va,vb,vcはポリゴンの各頂点、である。
【００３７】
［Ｃ−２］仮想関節の配置
次に、μの等高線を取得する。等高線は、μの値が等しい点を結んだものとなり、必ず閉じた曲線になる。ここで、次の二つの条件を満たす等高線CPを、等高線Cの親等高線とする。一つ目はCの任意の一点からCpの任意の一点まで表面上を辿った際に、他の等高線を横切らない経路が存在することである。二つ目はμ(C)=μ(Cp)+dとなることである。ただし、dは等高線間隔である。そして、等高線の重心に仮想関節を配置する。また、等高線の親子関係を仮想関節の親子関係とする。ｄは、適当な数の仮想関節が設定されるように予め決定される値であり、具体的なｄの値は、当業者において適宜設定され得る。
【００３８】
また、後の関節角計算において、基準となる関節 (親関節) がどちら側にあるかがすべてのフレームで同じでないと関節角が不安定になる。一つの実施態様では、μが最小となる部分をリーブグラフ（仮想関節モデル）のルートとし、μが増える方向を子関節とすることで親子関係がフレーム毎に変わるのを防いでいる。図１２に示すように、体の中心に近い側（μが小さい）にルートがあり、ルーとから末端に向かって子関節が順次形成される。
【００３９】
［Ｄ］仮想関節のローカル座標系の設定
次に、仮想関節のローカル座標系の設定方法について説明する。仮想関節のローカル座標系を、等高線を構成する点を主成分分析することにより求める。主成分分析の結果として３つの固有ベクトルが求まるが、その３つの軸を仮想関節のローカル座標系として用いる。
【数５】
2008282110.tif 000007
Piは等高線要素線分の中点の座標、liは等高線要素線分の長さである。これにより、球面関節を表現することができる。３つの軸を図１１に示す。それぞれの主成分（３つの軸）は以下の様な意味付けが出来る。
【００４０】
第３主成分：固有値λ3 が最小となる主成分である。第３主成分の固有ベクトルxは等高線平面の法線ベクトルを表現している。等高線平面とは、その平面に投影したときに等高線の形状を最も損失の少ない状態で表せる平面のことである。
【００４１】
第一主成分：固有値λ1 が最大となる主成分である。第一主成分の固有ベクトルyは等高線平面に射影した等高線を最小外接矩形の長軸方向を表現している。
【００４２】
第二主成分：第二主成分の固有ベクトルzは等高線平面に射影した等高線を最小外接矩形の短軸方向を表現している。
【００４３】
最後に、テクスチャを用いた座標軸の設定について説明する。上述のように、第一主成分、第二主成分の固有ベクトルは等高線平面に投影した等高線を囲む最小矩形の長軸方向、短軸方向を表すが、等高線が円形に近い場合、主成分分析の第一主成分と第二主成分は近い値になる。第一主成分と第二主成分の軸の長軸方向、短軸方向は意味を持たないものとなる。このような場合はテクスチャの情報を用いて、上記二軸に変わる軸を定義する。等高線のテクスチャから特徴色を抽出し、等高線の重心から特徴色の方向をテクスチャ軸と定め、第一主成分の固有ベクトル（長軸方向）の代わりに用いる。
【００４４】
後述する実験例では、テクスチャとして、ｘ軸に概ね沿って延出する帯状の模様が用いられているが、各仮想関節のy, z軸が特定の方向を向いている必要はなく、各々の仮想関節のｙ、ｚ軸を決定できさえすれば、テクスチャを構成する模様は限定されない。すなわち、等高線の重心から等高線に向かう一つの軸が特定できることがテクスチャに要求される条件である。したがって、同じパターンが円周方向に繰り返すような模様であるような限られた場合を除いて、殆どの模様をテクスチャ情報として用いることができる。
【００４５】
［Ｅ］位相情報修正
体の一部が他の部分に触れていたりすると、リーブグラフにより実際とは異なった位相情報が得られる。対象物の位相情報が既知である場合は、情報を与えることにより位相情報の修正を行うことが可能であり、推定精度を向上させることが出来る。逆に、位相情報が未知の場合は、フレーム間での仮想関節の対応付けが難しい場合がある。
【００４６】
位相情報のループの修正について具体的に説明する。例えば、手が腰に触れていた場合は、関節構造がループすることになる。このような場合はループを構成する枝のうち一つを切る。ループを構成する枝のうち、切り離した後に、既知な位相情報、または、他のフレームの位相情報と一致する枝を切る。
【００４７】
図１２にループ部分の削除を示す。リーブグラフがループを持つ場合、ループを構成する枝のうち、切り離した後の位相情報が手本と一致する枝を選択して切り離す。図１２の上側に手本及びリーブグラフがループを持つ場合を示す。ループは枝Ａ、枝Ｂ、枝Ｃ、枝Ｄから形成されており、図１２の下側に、枝Ａを切り離したもの、枝Ｂを切り離したもの、枝Ｃを切り離したもの、枝Ｄを切り離したもの、をそれぞれ示す。手本と一致するのは、枝Ｃを切り離したものであることから、枝Ｃが選択されて切り離される。
【００４８】
実際には、３次元形状を切り分けるわけではなく、切り口でのポリゴンの連結情報を削除する。その３次元形状に対してμを再計算する。再計算されたμに基づいて仮想関節モデルを構築して、他のフレームの仮想関節モデルと比較して分散を計算する。
【００４９】
［Ｆ］関節モデル推定
全てのフレームでの位相情報がそろったら、不要な仮想関節を除去し、関節構造を求める。
【００５０】
不要な仮想関節の除去について説明する。μは姿勢に非依存な関数であるため、位相情報が一致していれば、複数フレーム間での仮想関節の対応付けは容易に出来る。複数フレームの仮想関節モデルを比較することで、複数フレーム間での仮想関節の対応付けを行う。対応付けが完了したら、それぞれの仮想関節に関して、フレーム間での仮想関節の動きの分散を求める。得られた分散に基づいて実際の関節であると推定される仮想関節を選択し、不要な仮想関節を除去する。
【００５１】
具体的な態様例では、対応している仮想関節同士で関節角の分散を求め、分散が大きい仮想関節を実際の関節であると推定する。一つの態様では、分散の閾値を設定し、その閾値以上である仮想関節を実際の関節であると推定する。また、他の態様では、関節の数がN個であると与えられた場合は分散の大きい順にN個の仮想関節を選び実際の関節であると推定する。関節角の計算については当業者において幾つかの手法が考えられる。代表的には、仮想関節を結ぶ線分の間の角度を関節角とする。その他、オイラー角、等価回転角などを利用することも可能である。
【００５２】
［Ｇ］人間の関節構造推定
人間を対象物として、関節構造推定を行った。実験条件は次のとおりである。被験者は、人間である。図１３に示すように、背景と区別するために赤の衣服を着衣、また、テクスチャ情報（テクスチャ軸）を利用するために両腕、両脚、胴に青のラインを付けた。図１４に示すように、カメラは、8台のカラーカメラ（解像度1628pixel×1236pixel）である。図１４において、カメラ横の数字はカメラの高さを示している。
【００５３】
図１５に、画像処理の結果を示す。左上が背景画像、右上が背景と対象物の画像、左下が得られた対象物領域、右下が対象物領域の輪郭を３角形分割したものである。
【００５４】
図１６に、３次元形状の取得、μの分布、μの等高線と仮想関節を求めた結果を示す。左が３次元形状、中央がμの分布、右がμの等高線と仮想関節を表したものである。中央図において、μの分布は濃淡で表されている。右図において、白点（ノード）は仮想関節、白線（エッジ）は関節の親子関係を示している。
【００５５】
図１７に複数の姿勢（複数フレーム）での仮想関節の動きの分散を示す。このグラフは左足に関するグラフで、横軸はつま先からの距離、横軸はつま先からの距離、縦軸は仮想関節を接続する隣り合う２本の線分の内積を表したものである。仮想関節を接続する隣り合う２本の線分の内積は、実質的には、仮想関節の関節角を代表する値として扱うことができる。図１７からは、膝と足首で分散が大きい事が読み取れる。
【００５６】
以上のとおり、複数台のカメラからの画像を用いて、視体積交差法により、テクスチャ情報を持った３次元表面形状を取得する方法を提案した。リーブグラフを用いて取得した複数の姿勢の仮想関節モデルを比較することにより、実際の関節位置を推定する方法を提案した。リーブグラフを用いて仮想関節を配置し、等高線の形状とテクスチャ情報によるローカル座標系の設定方法を提案し、球面関節のモデル化を可能とした。
【産業上の利用可能性】
【００５７】
本発明は、ＣＧ、生体シミュレーションにおいて人間などの生物をリンク構造としてモデル化することに利用可能である。現状のモーションキャプチャシステムでは、関節構造を予め仮定しているので、動物などを対象とする場合も何らかの方法で関節構造を決定する必要がある。また、軟体動物のように明確な関節構造が無い生物の計測は困難である。人間のように関節構造がある程度既知な場合でも、関節間の距離には個人差があり、正確なモデルを構築するためには別途計測が必要となる。これらのことから、本発明は、ＣＧ、生体シミュレーションにおける利用価値は高いと判断できる。必要なハードウエアは高解像度のカメラのみであり、その他のデータ処理・計算はソフトウエアで実現されるため、実用化の可能性は高い。
【図面の簡単な説明】
【００５８】
【図１】複数のカメラによる対象物の撮影を示す図である。
【図２】左図は、ポリゴンメッシュからなる対象物の３次元形状を示し、右図は、ポリゴンのテクスチャ情報の取得を示す。
【図３】μの等高線を取得し、等高線の重心に仮想関節を配置する。
【図４】複数フレームの仮想関節モデルを比較し、不要な仮想関節を除去することにより関節位置を推定する。
【図５】対象物領域の抽出方法を示す図である。
【図６】視体積の様子を示す。
【図７】凸ポリゴンメッシュの交差処理を説明する図である。
【図８】カメラCからポリゴンPが見えるための条件を説明する図である。
【図９】３角形を徐々に切り取っていく流れを示した図である。
【図１０】左が結合して凸状態を維持できる例で、右が結合したら凸ではなくなってしまう例である。
【図１１】球面関節を表現することができる３つの軸を示す。
【図１２】ループ部分の削除を示す。
【図１３】実験に用いた対象物を示す。
【図１４】実験装置におけるカメラの配置を示す。
【図１５】画像処理の結果を示す。左上が背景画像、右上が背景と対象物の画像、左下が得られた対象物領域、右下が対象物領域の輪郭を３角形分割したものである。
【図１６】左が３次元形状、中央がμの分布、右がμの等高線と仮想関節を表したものである。
【図１７】複数の姿勢での仮想関節の動きのばらつきのグラフである。横軸はつま先からの距離、縦軸は仮想関節を接続する隣り合う２本の線分の内積を表したものである。
【図１】
2008282110.tif 000008
【図２】
2008282110.tif 000009
【図４】
2008282110.tif 000010
【図５】
2008282110.tif 000011
【図６】
2008282110.tif 000012
【図７】
2008282110.tif 000013
【図８】
2008282110.tif 000014
【図９】
2008282110.tif 000015
【図１０】
2008282110.tif 000016
【図１１】
2008282110.tif 000017
【図１２】
2008282110.tif 000018
【図１４】
2008282110.tif 000019
【図１７】
2008282110.tif 000020
【図３】
2008282110.tif 000021
【図１３】
2008282110.tif 000022
【図１５】
2008282110.tif 000023
【図１６】
2008282110.tif 000024