説明

対象物の関節構造の取得方法及び装置

【課題】対象物に関する事前知識なしで、対象物の関節構造を取得する。
【解決手段】視体積交差法を用いて、複数台のカメラから得られた画像から対象物の3次元形状を取得するステップと、リーブグラフを用いて、得られた対象物の3次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得するステップと、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定するステップと、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得するステップと、からなる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人間や他の生物等の対象物の関節構造を取得する方法及び装置に関するものである。
【背景技術】
【0002】
人体の運動計測、モデル推定は、ロボティクス、コンピュータビジョン、身体運動科学なの幅広い分野で盛んに扱われている研究対象である。
【0003】
運動計測の分野ではモーションキャプチャが一般的に用いられている。再帰反射性のマーカを用いた光学式モーションキャプチャは精度の高い計測、リアルタイムでの計測が可能である。ただし、光学式モーションキャプチャは点の座標を計測する技術であるので、人体の姿勢や形状を求めたい場合は関節モデルを用いて逆運動学計算が必要となる。
【0004】
一方、物体の3次元形状を必要とするような用途においては、マーカを用いないモーションキャプチャが利用される。このようなモーションキャプチャは視体積交差法(非特許文献1)を用いた方法が一般的である。Iiyamaら(非特許文献2)は全方位にカメラを配置し、物体の下面を含む物体全周の3次元形状の計測を可能とした。また、従来の視体積交差法はボクセルデータを扱う場合が多く、計算量が多いという欠点もある。
【0005】
また、3次元形状を細線化し人体の関節モデル推定、姿勢推定などを行っている研究もある。Chi-Weiら(非特許文献3)はマーカレスモーションキャプチャのデータから関節モデルの推定を行った。従来のマーカレスモーションキャプチャを用いた姿勢推定やモデル推定では細線化を行うことが多かった。しかし、細線化することにより表現できる関節は球面関節からロール軸まわりの自由度を取り除いた二自由度の関節である。一般的な球面関節を表すためには細線化処理のみでは不完全である。
【0006】
また、3次元形状マッチングの位相幾何情報をグラフで表現したリーブグラフ(Reeb Graph)を用いる方法(非特許文献4)が研究されている。リーブグラフとは、曲面または物体上で定義される連続関数μの値によって曲面をいくつかに区切り、各部の接続関係をグラフで表したものである。リーブグラフを用いることで3次元形状データから位相幾何情報や骨格情報といった特徴的な情報を得ることが可能であり、また、情報量の観点から見ると、情報の圧縮、計算コストの軽減などに恩恵をもたらしている。Hiragaら(非特許文献5)、Tungら(非特許文献6)は多解像度のリーブグラフを用いて、3次元形状の類似度を求めることにより、形状のマッチングを行った。また、宮本ら(非特許文献7)はリーブグラフを用いて人体の姿勢推定を行っている。
【非特許文献1】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.
【非特許文献2】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.
【非特許文献3】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.
【非特許文献4】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.
【非特許文献5】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.
【非特許文献6】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.
【非特許文献7】宮本新, 鷲見和彦, 松山隆司. 骨格線モデルと円筒多関節モデルを併用した人体の姿勢推定. 情報処理学会研究報告(CVIM), Vol. 2006, No. 51, 2006.
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、対象物に関する事前知識なしで、対象物の関節構造を取得することにある。本発明の他の目的は、球面関節を含む関節構造のモデル化を行うことにある。
【課題を解決するための手段】
【0008】
本発明が採用した対象物の関節構造の取得方法は、視体積交差法を用いて、複数台のカメラから得られた画像から対象物の3次元形状を取得するステップと、リーブグラフを用いて、得られた対象物の3次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得するステップと、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定するステップと、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得するステップと、からなる。
【0009】
本発明が採用した対象物の関節構造の取得装置は、視体積交差法を用いて、複数台のカメラから得られた画像から対象物の3次元形状を取得する手段と、リーブグラフを用いて、得られた対象物の3次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得する手段と、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定する手段と、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得する手段と、からなる。
【0010】
一つの好ましい態様では、前記3次元形状を取得するステップにおいて、前記対象物の3次元形状はポリゴンメッシュとして表現され、前記仮想関節モデルを取得するステップにおいて、ポリゴンの表面上に平均測地距離μを定義する。本発明において前記3次元形状をボクセルデータで表現することも可能であるが、μ関数の計算量等を考慮すると、ポリゴンメッシュが有利である。一つの好ましい態様では、対象物視体積をポリゴンメッシュで表現する;視体積ポリゴンメッシュを凸ポリゴンメッシュに変換する;各カメラから得られた凸ポリゴンメッシュ同士の交差処理を行う;を備えている、一つの好ましい態様では、前記交差処理は、交差処理における凸ポリゴンメッシュのポリゴンの切り取り時にポリゴンを再構築してポリゴン数を減らすことを含む。一つの好ましい態様では、前記交差処理は、全ての交差処理が終わった後に、あるいは、さらにそれに加えて、1回の交差処理が終わった後毎に、凸ポリゴンメッシュの結合を行うことを含む。
【0011】
仮想関節モデルは、姿勢に依存しない関数である平均測地距離μに基づいて得られたリーブグラフの抽象的なノード一つに対して、一つの仮想関節を置くことで得られる。一つの態様では、μが最小となる部分をリーブグラフ(仮想関節モデル)のルートとし、μが増える方向を子関節とする。仮想関節モデルは、ノードを構成する仮想関節と、仮想関節を接続するエッジと、からなるグラフ構造を備えることができる。この場合、親関節の方向は、親関節と子関節を接続するエッジの方向となる。一つの好ましい態様では、各等高線の重心に関節の候補となる仮想関節を配置する。その他の態様としては、等高線上のいずれかの点を仮想関節の位置とすることもできる。一つの好ましい態様では、前記3次元状の表面に対象物のテクスチャ情報を与える手段を含む。ポリゴンデータにテクスチャを貼り付けること自体は当業者において公知である。
【0012】
前記仮想関節モデルの取得において、一つの好ましい態様では、得られた仮想関節モデルを、当該対象物の既知の関節の位相構造に基づいて修正することを含む。より具体的な態様では、前記修正は、関節構造におけるループを構成する枝のいずれかを切り離すことを含む。他の態様では、前記修正は、ループの切断後あるいはそれ以外の場合に、短い枝を落とすことを含む。
【0013】
一つの好ましい態様では、動きの多い仮想関節を実際の関節と推定することは、それぞれの仮想関節に関して、各仮想関節モデル間での関節の動きの分散を求め、得られた分散に基づいて動きが多い仮想関節を決定する。一つの好ましい態様では、前記関節の動きの分散は、仮想関節の関節角の分散である。一つの好ましい態様では、前記関節角は、仮想関節を接続する隣り合う2本の線分(エッジ)間の角度である。一つの好ましい態様では、前記関節の動きの分散は、仮想関節を接続する隣り合う2本の線分(エッジ)の内積の分散である。一つの好ましい態様では、動きの分散が閾値を越えた仮想関節を実際の関節であると推定する。一つの好ましい態様では、実際の関節の個数Nが与えられた場合に、動きの分散の大きい順にN個の仮想関節を選択して実際の関節であると推定する。
【0014】
最終的に得られる対象物の関節モデルは、リンク機構モデルであり、関節に固定された座標系が必要となる。したがって、変化の大きい仮想関節を残し、リンク機構モデルを作成するためには、残された仮想関節にローカル座標系を設定する必要がある。リンク機構モデルにおける「関節角」はローカル座標系の相対姿勢として計算される。したがって、本発明に係る対象物の関節構造の取得において、仮想関節から実際の関節を推定する前あるいは後において、3軸を備えた仮想関節のローカル座標系を設定する。
【0015】
一つの好ましい態様において、前記仮想関節のローカル座標系の設定は、等高線の座標を主成分分析し、得られた3つの固有ベクトルを仮想関節のローカル座標とする。より具体的な態様では、前記主成分分析において、第3主成分の軸を、等高線平面の法線;第1主成分の軸を、等高線平面に投影した等高線の外接矩形の長軸方向;第2主成分の軸を、等高線平面に投影した等高線の外接矩形の短軸方向;とする。
【0016】
一つの好ましい態様では、仮想関節のローカル座標系を設定する時に、対象物のテクスチャ情報を用いる。対象物の断面が円に近く、長軸と短軸の区別がはっきりしない場合は、テクスチャを使って円筒の軸回りの回転を識別する。より具体的な一つの好ましい態様では、対象物のテクスチャ情報を用いて、等高線の重心からテクスチャ情報に向かう一つの軸をテクスチャ軸として特定し、当該テクスチャ軸を等高線平面内の一つの軸に置き換えて用いる。等高線平面内で延出するテクスチャ軸は、等高線平面に投影した等高線に基づいて設定しても、あるいは、等高線上の点とテクスチャとの関係から求めた軸を等高線平面上に投影することで設定してもよい。また、等高線平面の法線方向の軸を、親関節の方向で置き換えてもよい(この場合は、3軸が互いに直交するように修正が必要である)。
【0017】
「仮想関節から実際の関節を推定すること」における「関節角」の計算には、ローカル座標系の設定は必須ではない。しかしながら、実際の関節を推定する前にローカル座標系を設定することで、関節角の計算方法の選択の幅を広げることができる。例えば、以下のような方法が取り得る。親関節のローカル座標系に対する相対姿勢を計算し、そのオイラー角のいずれかの成分を用いる。同様に相対姿勢を計算し、その等価回転角 (座標変換をある軸回りの1回の回転で表現したときの回転角) を用いる。また、ひねり回転のみをする仮想関節があったと仮定すると、仮想関節を結ぶ線の角度は変わらないので、動きの多い仮想関節を実際の関節と推定することにおいて、テクスチャ情報を用いて、ひねり角を考慮することができる。
【発明の効果】
【0018】
本発明では、視体積交差法を用いたマーカレスモーションキャプチャにより得られた3次元形状(ポリゴンデータ)から、リーブグラフを用いて仮想的な関節を配置し、複数の姿勢(フレーム)のデータを比較することにより、不要な仮想関節を除去することで対象物の関節構造を推定する。本発明によれば、複数台のカメラから得られた画像を用いることで、形状データから対象物の関節構造を取得することができるため、関節構造の事前知識なしに、関節モデルを推定することが出来るという利点がある。このことにより、通常関節を定義することのない対象(軟体動物など)の関節モデルを推定することも可能である。
【0019】
また、手先と体が触れた等の理由により誤った骨格情報が得られることがある。このような場合は、対象物の位相情報が事前に分っていれば、骨格情報の修正を行い精度の高いモデル推定が行える。このように事前知識を利用する場合も位相情報(トポロジー)のみであり、円筒の数・長さ・直径に関する知識を使用する必要がない。
【0020】
本発明では、対象物の関節モデルの各関節に3軸からなるローカル座標系を設定することで、球面関節のモデル化が可能となる。本発明では等高線の長短軸またはテクスチャ軸により関節のひねりを考慮している。
【発明を実施するための最良の形態】
【0021】
[A]本発明の概要
本発明の実施形態に係る対象物の関節構造の取得装置は、視体積交差法を用いて、複数台のカメラから得られた画像から、ポリゴンメッシュからなる対象物の3次元形状を取得する手段と、リーブグラフを用いて、得られたポリゴンの表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線の重心に関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得する手段と、対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定する手段と、実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得する手段と、からなる。そして、対象物の関節構造の取得装置のハードウエアは、被験者を撮影する複数のカメラと、一つ又は複数のコンピュータ装置と、から構成される。コンピュータ装置は、演算処理部、入力部、出力部、表示部、記憶部を備えており、所定のコンピュータプログラムに従ってコンピュータの機能が実行される。具体的には、本発明における計算には、画像処理、視体積ポリゴン交差処理、μの計算、関節角の計算、ローカル座標系の設定、テクスチャの設定等があるが、これらの計算はコンピュータによって実行され得る。
【0022】
本発明の概要は図1〜図4に示してある。視体積交差法による3次元形状の取得の概要について説明する。まず、対象物を複数のカメラで撮影する(図1)。カメラ画像とカメラパラメータを用い、視体積交差法によりポリゴンメッシュからなる3次元形状を取得する(図2左図)。より具体的には、視体積交差法の3次元形状の手順は、カメラ画像から対象物領域を取得する;カメラパラメータを用いて対象物視体積を取得する;各カメラの視体積の交差部分を抽出することにより3次元形状を取得する、ことからなる。そして、ポリゴンのテクスチャ情報を取得する(図2右図)。
【0023】
次に、リーブグラフを用いた関節推定の概要について説明する。まず、3次元形状上に関数μを定義する。関数μは姿勢に依存しない関数である。図3左図に、異なる姿勢におけるμ値を濃淡で示す。次に、μの等高線を取得し、等高線の重心に仮想関節を配置して仮想関節モデルを取得する(図3)。仮想関節とは、関節の候補となるものである。最後に、複数フレーム(異なる姿勢)の仮想関節モデルを比較し、不要な仮想関節を除去することにより関節位置を推定する(図4)。
【0024】
本手法の手順を以下に例示する。これらのステップの順序は記載の順序に限定されるものではなく、部分的に順序が入れ替わってもよい。
step 1:複数台のカラーカメラを用い対象物の画像をキャプチャする;
step 2:画像中の対象物を抽出する;
step 3:画像中の対象物領域とカメラの外部・内部パラメータを用いて、対象物が存在し得る3次元の領域(視体積ポリゴンメッシュ)を求める;
step 4:視体積ポリゴンメッシュを凸ポリゴンメッシュに分割する;
step 5:各カメラから得られた視体積ポリゴンメッシュの交差(積)を取り3次元形状を得る;
step 6:3次元形状にテクスチャ情報を与える;
step 7:得られた凸ポリゴンメッシュを結合し、ポリゴンの連結情報を得る;
step 8:3次元形状上のポリゴンの関数μを求める;
step 9:μに基づくリーブグラフによるトポロジーの計算;
step 10:μの値の等高線を取り、リーブグラフのノードに対応する仮想関節を、等高線の重心に置く;
step 11:仮想関節のローカル座標系を求める;
step 12:複数の仮想関節モデルを比較することで不要な仮想関節を除去して対象物の関節モデルを取得する;
からなる。
以下に、本発明の実施形態について詳細に説明する。
【0025】
[B]視体積交差法による3次元形状の取得
視体積交差法とは、カメラ画像の物体領域を3次元に変換した視体積を求め,複数カメラの視体積の交差部分を求め3次元形状を得る手法である。以下の手順で3次元形状を取得する。まず、カメラ画像から対象物体の投影領域を取得する。カメラのレンズの中心と投影領域上の任意の点を結ぶ半直線の集合からなる錐体状の開空間を視体積と呼ぶ。換言すると、対象物視体積とは、カメラ画像中の対象物領域を3次元空間に変換したもので、カメラ位置を頂点とした多角形錘となる。対象物体は必ずこの視体積に内接して存在する。視体積はカメラ毎に存在し、全てのカメラの視体積の交差(積)を取ることにより対象物体の3次元表面形状を得る。
【0026】
[B−1]画像中の対象物体領域の抽出
図5に示すように、対象物領域の抽出方法は、背景差分と特徴色抽出を二重に行うことで、物体領域を抽出する。まず、対象物体が含まれない背景画像を用意する。対象物体を含む画像と背景画像の対応するピクセルに注目し、値の差がある閾値を超えたら、そのピクセルは対象物体の一部であると判断する。ただし、上記の様な方法では物体の影まで抽出してしまう。そこで、背景差分に加え、対象物の色情報を利用して物体領域を抽出する。最後に、上記の方法で得られた領域の輪郭を取り、多角形近似を行う。尚、画像中の対象物体領域の抽出については、画像処理において用いられる他の手段を採用し得ることは当業者に理解される。
【0027】
[B−2]視体積ポリゴンメッシュの取得
カメラのキャリブレーションを行うことにより、カメラの位置、姿勢の外部パラメータと焦点距離、ひずみ係数等の内部パラメータを求める。これらの値を用いることによって、画像中の1点からその点が存在し得る3次元上の半直線を求めることが出来る。ただし、半直線の始点はカメラの絶対位置となっている。
【0028】
物体投影領域の境界線に沿って、この半直線を求めることで多角形錘体の視体積を得る。図6に視体積の様子を示す。まず、視体積をポリゴンメッシュで表現する。ポリゴンメッシュとは、ポリゴン(多角形)の集合であり、3次元表面形状を表現するために用いられる。また、ポリゴンメッシュはポリゴン同士の連結情報を持つ。ポリゴンメッシュは、ボクセルと比較し計算量が少ないという利点を備えている。本実施形態では、3角形のポリゴンに基づいて説明する。4角形以上のポリゴンは3角形のポリゴンに分割できるため、3角形以外のポリゴンを用いることも可能である。
【0029】
[B−3]ポリゴンメッシュの交差処理
まず、視体積のポリゴンメッシュを凸ポリゴンメッシュに分割する。凸ポリゴンメッシュとは、隣接する二つポリゴンのなす角が180度以下であるポリゴンのみで構成されるポリゴンメッシュである。次に凸ポリゴン同士の積演算を行い、結果の集合が視体積の積となる。視体積A とB の交差の場合、式(1)のようになる。ただし、ai,bj はA をB を構成する凸ポリゴンメッシュである。
【数1】

また、ポリゴンメッシュの辺に、その辺を構成する二つのポリゴンの情報を持たせる。これにより、ポリゴンの連結情報を得ることが出来る。
【0030】
次に、凸ポリゴンメッシュの交差処理について説明する。ポリゴンには外内の区別があり、法線ベクトルを定義することで、外側、内側を表現する。凸ポリゴンメッシュの交差処理を行うには、まず、凸ポリゴンメッシュ中の一つのポリゴンTiに注目する。そのポリゴンTiから、他のポリゴンTjの外側にある部分を切り取る。全てのTjに関して、切り取り処理を行う。その様子を示したのが図7の上図である。更に、全てのTiに同様の処理を行い、残った部分の集合が、交差処理の結果となる。二つの凸ポリゴンメッシュ(3角錐)の交差処理の例を図7の下図に示す。凸ポリゴンメッシュ同士の交差処理の後に、凸ポリゴンメッシュの結合を行う。凸ポリゴンメッシュの結合処理は、最終的に得られるポリゴンメッシュの内部に入ってしまうポリゴンを削除することで、複数のポリゴンメッシュを結合する処理である。
【0031】
[B−4]3次元形状データのテクスチャの取得
最後に、得られた3次元形状データにテクスチャを貼る。ポリゴンの法線方向に最も近いカメラの画素値を用いて、それぞれのポリゴンにテクスチャを貼る。ただし、上記の方法で求めた際、カメラとポリゴンの間に他のポリゴンが存在する場合は別のカメラの画像を用いる。
【0032】
カメラCからポリゴンPが見えるための条件は以下のとおりである(図8参照)。まず、一つ目に、PがCの視野内にあること;二つ目に、Pの法線がCの方向を向いていること;最後がPとCの間に他のポリゴンが存在しないこと、である。二つ目の条件はPからCのベクトルPCとPの法線ベクトルの内積が正になることが条件となる。最後は、線分PCと他の全てのポリゴンとの接触判定を行うことで判断する。以上の条件を満たす場合、Cの画像中のテクスチャ情報をPに与える。
【0033】
次に、ポリゴンメッシュの交差処理を行う際のポリゴン数の削減方法を述べる。本手法ではポリゴンを3角形として表現しているため、交差処理でポリゴンが切り取られる際に3角形分割が行われる。このため、交差処理を繰り返していくうちにポリゴン数が必要以上に多くなる。そこで、ポリゴンを切り取る際にポリゴン再構築を行うことでポリゴン数を減らす。図9は、3角形を徐々に切り取っていく流れを示したものであるが、ポリゴン再構築法では3角形分割を一度解除し、切り取った後に新たに3角形分割を行うことによりポリゴン数を減らしている。もう一つのポリゴン数の削減方法として、凸ポリゴンメッシュの結合を全ての交差処理が終わった後のみではなく、一回の交差処理が終わった後に凸ポリゴンメッシュの結合を行う。この処理では、結合しても凸状態を維持できるもののみ結合する。図10において、左が結合して凸状態を維持できる例で、右が結合したら凸ではなくなってしまう例である。
【0034】
[C]リーブグラフを用いた仮想関節の配置
リーブグラフとは3次元形状の表面に関数μを定義し、そのμ値から求めた3次元形状の位相情報のことである。リーブグラフを用いることで、物体表面上で定義される連続関数μの値によって物体をいくつかに区切り、各部の接続関係をグラフで表すことができる。本手法ではリーブグラフを用いて3次元形状の関節位置を推定する。リーブグラフは狭義には得られたグラフを指すと考えられるが、本明細書においては、リーブグラフは、μ値からそのグラフを得る方法を含んだ広義で用いる。リーブグラフは、ポリゴン上のμ値の分布からトポロジーを得る際に用いる。仮想関節の配置のステップは、より具体的には、μの計算;リーブグラフによるトポロジーの計算;μの等高線に基づく仮想関節の配置;の3ステップからなる。リーブグラフは、複数のノードとノードを連結するエッジから形成されており、計算されたμ値からリーブグラフを取得すること自体は公知であって、例えば、非特許文献6に記載されている。リーブグラフにおけるノードはトポロジーを表現するだけの抽象的なものであり、物理的な点ではない。これに対して、本発明における仮想関節は、リーグラフのノードに対応するものであるが、μの等高線に基づく位置の属性を備えている点において、「仮想関節モデル」と「リーブグラフ」は等価ではない。リーブグラフを用いた仮想関節配置の手順は以下のとおりである。まず、平均測地距離μを定義する。次に、μを連続関数へと変換する。次に、μの値の等高線を取得し、リーブグラフのノードに対応する仮想関節を、等高線の重心に配置する。
【0035】
[C−1]平均測地距離μの定義
関数μはポリゴンTの関数である。μを式(2)のように定義する。ただし、Tiはポリゴン、a(Tj)はポリゴンTjの面積、g(Ti,Tj)はポリゴンTiからポリゴンTjまで連結情報に従って表面を辿ったときの最短距離(最短測地距離)である。gはダイキストラ法により計算することができる。
【数2】

このように定義したμ(Ti)は、あるポリゴンTiから他の全てポリゴンへの最短距離の平均を表す関数である。μは体の中心に近いほど値は小さくなり、先端ほど大きい値となる。また、表面を辿った距離を基にしているため、μは姿勢に依存しない関数となる。
【0036】
等高線を定義するためμは表面上で連続な関数であることが必要である。上記の定義ではポリゴンごとにμを設定していたためμは表面上で離散的な値となる。そこで、頂点にμを定義し、ポリゴン内のμは頂点のμを線形補間することにより求める。こうすることにより、表面上で連続な関数となる。頂点vにおけるμの値の取り方は下の式に示すようになる。
【数3】

頂点vにおけるμの値は、Ti(vを含むポリゴン)のμの値の平均となる。線形補間の仕方は下の式に示すようになり、ポリゴン内の点p(s,t)におけるμの値は、各頂点のμの値と媒介変数stを用いて表せる。
【数4】

s,tはポリゴン中の媒介変数、va,vb,vcはポリゴンの各頂点、である。
【0037】
[C−2]仮想関節の配置
次に、μの等高線を取得する。等高線は、μの値が等しい点を結んだものとなり、必ず閉じた曲線になる。ここで、次の二つの条件を満たす等高線CPを、等高線Cの親等高線とする。一つ目はCの任意の一点からCpの任意の一点まで表面上を辿った際に、他の等高線を横切らない経路が存在することである。二つ目はμ(C)=μ(Cp)+dとなることである。ただし、dは等高線間隔である。そして、等高線の重心に仮想関節を配置する。また、等高線の親子関係を仮想関節の親子関係とする。dは、適当な数の仮想関節が設定されるように予め決定される値であり、具体的なdの値は、当業者において適宜設定され得る。
【0038】
また、後の関節角計算において、基準となる関節 (親関節) がどちら側にあるかがすべてのフレームで同じでないと関節角が不安定になる。一つの実施態様では、μが最小となる部分をリーブグラフ(仮想関節モデル)のルートとし、μが増える方向を子関節とすることで親子関係がフレーム毎に変わるのを防いでいる。図12に示すように、体の中心に近い側(μが小さい)にルートがあり、ルーとから末端に向かって子関節が順次形成される。
【0039】
[D]仮想関節のローカル座標系の設定
次に、仮想関節のローカル座標系の設定方法について説明する。仮想関節のローカル座標系を、等高線を構成する点を主成分分析することにより求める。主成分分析の結果として3つの固有ベクトルが求まるが、その3つの軸を仮想関節のローカル座標系として用いる。
【数5】

Piは等高線要素線分の中点の座標、liは等高線要素線分の長さである。これにより、球面関節を表現することができる。3つの軸を図11に示す。それぞれの主成分(3つの軸)は以下の様な意味付けが出来る。
【0040】
第3主成分:固有値λ3 が最小となる主成分である。第3主成分の固有ベクトルxは等高線平面の法線ベクトルを表現している。等高線平面とは、その平面に投影したときに等高線の形状を最も損失の少ない状態で表せる平面のことである。
【0041】
第一主成分:固有値λ1 が最大となる主成分である。第一主成分の固有ベクトルyは等高線平面に射影した等高線を最小外接矩形の長軸方向を表現している。
【0042】
第二主成分:第二主成分の固有ベクトルzは等高線平面に射影した等高線を最小外接矩形の短軸方向を表現している。
【0043】
最後に、テクスチャを用いた座標軸の設定について説明する。上述のように、第一主成分、第二主成分の固有ベクトルは等高線平面に投影した等高線を囲む最小矩形の長軸方向、短軸方向を表すが、等高線が円形に近い場合、主成分分析の第一主成分と第二主成分は近い値になる。第一主成分と第二主成分の軸の長軸方向、短軸方向は意味を持たないものとなる。このような場合はテクスチャの情報を用いて、上記二軸に変わる軸を定義する。等高線のテクスチャから特徴色を抽出し、等高線の重心から特徴色の方向をテクスチャ軸と定め、第一主成分の固有ベクトル(長軸方向)の代わりに用いる。
【0044】
後述する実験例では、テクスチャとして、x軸に概ね沿って延出する帯状の模様が用いられているが、各仮想関節のy, z軸が特定の方向を向いている必要はなく、各々の仮想関節のy、z軸を決定できさえすれば、テクスチャを構成する模様は限定されない。すなわち、等高線の重心から等高線に向かう一つの軸が特定できることがテクスチャに要求される条件である。したがって、同じパターンが円周方向に繰り返すような模様であるような限られた場合を除いて、殆どの模様をテクスチャ情報として用いることができる。
【0045】
[E]位相情報修正
体の一部が他の部分に触れていたりすると、リーブグラフにより実際とは異なった位相情報が得られる。対象物の位相情報が既知である場合は、情報を与えることにより位相情報の修正を行うことが可能であり、推定精度を向上させることが出来る。逆に、位相情報が未知の場合は、フレーム間での仮想関節の対応付けが難しい場合がある。
【0046】
位相情報のループの修正について具体的に説明する。例えば、手が腰に触れていた場合は、関節構造がループすることになる。このような場合はループを構成する枝のうち一つを切る。ループを構成する枝のうち、切り離した後に、既知な位相情報、または、他のフレームの位相情報と一致する枝を切る。
【0047】
図12にループ部分の削除を示す。リーブグラフがループを持つ場合、ループを構成する枝のうち、切り離した後の位相情報が手本と一致する枝を選択して切り離す。図12の上側に手本及びリーブグラフがループを持つ場合を示す。ループは枝A、枝B、枝C、枝Dから形成されており、図12の下側に、枝Aを切り離したもの、枝Bを切り離したもの、枝Cを切り離したもの、枝Dを切り離したもの、をそれぞれ示す。手本と一致するのは、枝Cを切り離したものであることから、枝Cが選択されて切り離される。
【0048】
実際には、3次元形状を切り分けるわけではなく、切り口でのポリゴンの連結情報を削除する。その3次元形状に対してμを再計算する。再計算されたμに基づいて仮想関節モデルを構築して、他のフレームの仮想関節モデルと比較して分散を計算する。
【0049】
[F]関節モデル推定
全てのフレームでの位相情報がそろったら、不要な仮想関節を除去し、関節構造を求める。
【0050】
不要な仮想関節の除去について説明する。μは姿勢に非依存な関数であるため、位相情報が一致していれば、複数フレーム間での仮想関節の対応付けは容易に出来る。複数フレームの仮想関節モデルを比較することで、複数フレーム間での仮想関節の対応付けを行う。対応付けが完了したら、それぞれの仮想関節に関して、フレーム間での仮想関節の動きの分散を求める。得られた分散に基づいて実際の関節であると推定される仮想関節を選択し、不要な仮想関節を除去する。
【0051】
具体的な態様例では、対応している仮想関節同士で関節角の分散を求め、分散が大きい仮想関節を実際の関節であると推定する。一つの態様では、分散の閾値を設定し、その閾値以上である仮想関節を実際の関節であると推定する。また、他の態様では、関節の数がN個であると与えられた場合は分散の大きい順にN個の仮想関節を選び実際の関節であると推定する。関節角の計算については当業者において幾つかの手法が考えられる。代表的には、仮想関節を結ぶ線分の間の角度を関節角とする。その他、オイラー角、等価回転角などを利用することも可能である。
【0052】
[G]人間の関節構造推定
人間を対象物として、関節構造推定を行った。実験条件は次のとおりである。被験者は、人間である。図13に示すように、背景と区別するために赤の衣服を着衣、また、テクスチャ情報(テクスチャ軸)を利用するために両腕、両脚、胴に青のラインを付けた。図14に示すように、カメラは、8台のカラーカメラ(解像度1628pixel×1236pixel)である。図14において、カメラ横の数字はカメラの高さを示している。
【0053】
図15に、画像処理の結果を示す。左上が背景画像、右上が背景と対象物の画像、左下が得られた対象物領域、右下が対象物領域の輪郭を3角形分割したものである。
【0054】
図16に、3次元形状の取得、μの分布、μの等高線と仮想関節を求めた結果を示す。左が3次元形状、中央がμの分布、右がμの等高線と仮想関節を表したものである。中央図において、μの分布は濃淡で表されている。右図において、白点(ノード)は仮想関節、白線(エッジ)は関節の親子関係を示している。
【0055】
図17に複数の姿勢(複数フレーム)での仮想関節の動きの分散を示す。このグラフは左足に関するグラフで、横軸はつま先からの距離、横軸はつま先からの距離、縦軸は仮想関節を接続する隣り合う2本の線分の内積を表したものである。仮想関節を接続する隣り合う2本の線分の内積は、実質的には、仮想関節の関節角を代表する値として扱うことができる。図17からは、膝と足首で分散が大きい事が読み取れる。
【0056】
以上のとおり、複数台のカメラからの画像を用いて、視体積交差法により、テクスチャ情報を持った3次元表面形状を取得する方法を提案した。リーブグラフを用いて取得した複数の姿勢の仮想関節モデルを比較することにより、実際の関節位置を推定する方法を提案した。リーブグラフを用いて仮想関節を配置し、等高線の形状とテクスチャ情報によるローカル座標系の設定方法を提案し、球面関節のモデル化を可能とした。
【産業上の利用可能性】
【0057】
本発明は、CG、生体シミュレーションにおいて人間などの生物をリンク構造としてモデル化することに利用可能である。現状のモーションキャプチャシステムでは、関節構造を予め仮定しているので、動物などを対象とする場合も何らかの方法で関節構造を決定する必要がある。また、軟体動物のように明確な関節構造が無い生物の計測は困難である。人間のように関節構造がある程度既知な場合でも、関節間の距離には個人差があり、正確なモデルを構築するためには別途計測が必要となる。これらのことから、本発明は、CG、生体シミュレーションにおける利用価値は高いと判断できる。必要なハードウエアは高解像度のカメラのみであり、その他のデータ処理・計算はソフトウエアで実現されるため、実用化の可能性は高い。
【図面の簡単な説明】
【0058】
【図1】複数のカメラによる対象物の撮影を示す図である。
【図2】左図は、ポリゴンメッシュからなる対象物の3次元形状を示し、右図は、ポリゴンのテクスチャ情報の取得を示す。
【図3】μの等高線を取得し、等高線の重心に仮想関節を配置する。
【図4】複数フレームの仮想関節モデルを比較し、不要な仮想関節を除去することにより関節位置を推定する。
【図5】対象物領域の抽出方法を示す図である。
【図6】視体積の様子を示す。
【図7】凸ポリゴンメッシュの交差処理を説明する図である。
【図8】カメラCからポリゴンPが見えるための条件を説明する図である。
【図9】3角形を徐々に切り取っていく流れを示した図である。
【図10】左が結合して凸状態を維持できる例で、右が結合したら凸ではなくなってしまう例である。
【図11】球面関節を表現することができる3つの軸を示す。
【図12】ループ部分の削除を示す。
【図13】実験に用いた対象物を示す。
【図14】実験装置におけるカメラの配置を示す。
【図15】画像処理の結果を示す。左上が背景画像、右上が背景と対象物の画像、左下が得られた対象物領域、右下が対象物領域の輪郭を3角形分割したものである。
【図16】左が3次元形状、中央がμの分布、右がμの等高線と仮想関節を表したものである。
【図17】複数の姿勢での仮想関節の動きのばらつきのグラフである。横軸はつま先からの距離、縦軸は仮想関節を接続する隣り合う2本の線分の内積を表したものである。

【特許請求の範囲】
【請求項1】
視体積交差法を用いて、複数台のカメラから得られた画像から対象物の3次元形状を取得するステップと、
リーブグラフを用いて、得られた対象物の3次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得するステップと、
対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定するステップと、
実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得するステップと、
からなる、対象物の関節構造の取得方法。
【請求項2】
前記3次元形状を取得するステップにおいて、前記対象物の3次元形状はポリゴンメッシュとして表現され、
前記仮想関節モデルを取得するステップにおいて、ポリゴンの表面上に平均測地距離μを定義する、
請求項1に記載の対象物の関節構造の取得方法。
【請求項3】
前記3次元形状を取得するステップは、
対象物視体積をポリゴンメッシュで表現するステップと、
視体積ポリゴンメッシュを凸ポリゴンメッシュに変換するステップと、
各カメラから得られた凸ポリゴンメッシュ同士の交差処理を行うステップと、
を備えている、請求項2に記載の対象物の関節構造の取得方法。
【請求項4】
前記交差処理ステップは、交差処理ステップにおける凸ポリゴンメッシュのポリゴンの切り取り時にポリゴンを再構築してポリゴン数を減らすことを含む、請求項3に記載の対象物の関節構造の取得方法。
【請求項5】
前記交差処理ステップは、全ての交差処理が終わった後、あるいは、さらにそれに加えて、1回の交差処理が終わった後毎に、凸ポリゴンメッシュの結合を行うことを含む請求項3,4いずれかに記載の対象物の関節構造の取得方法。
【請求項6】
前記仮想関節モデルを取得するステップにおいて、各等高線の重心に関節の候補となる仮想関節を配置する、請求項1乃至5いずれかに記載の対象物の関節構造の取得方法。
【請求項7】
前記仮想関節モデルを取得するステップは、得られた仮想関節モデルを、当該対象物の既知の関節の位相構造に基づいて修正するステップを備えている、請求項1乃至6いずれかに記載の対象物の関節構造の取得方法。
【請求項8】
前記仮想関節モデルを修正するステップは、関節構造におけるループを構成する枝のいずれかを切り離すことを含む、請求項7に記載の対象物の関節構造の取得方法。
【請求項9】
動きの多い仮想関節を実際の関節と推定するステップは、それぞれの仮想関節に関して、各仮想関節モデル間での関節の動きの分散を求め、得られた分散に基づいて動きが多い仮想関節を決定する、請求項1乃至8いずれかに記載の対象物の関節構造の取得方法。
【請求項10】
前記関節の動きの分散は、仮想関節の関節角の分散である、請求項9に記載の対象物の関節構造の取得方法。
【請求項11】
前記関節角は、仮想関節を接続する隣り合う2本の線分間の角度である、請求項10に記載の対象物の関節構造の取得方法。
【請求項12】
前記関節の動きの分散は、仮想関節を接続する隣り合う2本の線分の内積の分散である、請求項9に記載の対象物の関節構造の取得方法。
【請求項13】
分散が閾値を越えた仮想関節を実際の関節であると推定する、請求項9乃至12いずれかに記載の対象物の関節構造の取得方法。
【請求項14】
実際の関節の個数Nが与えられた場合に、分散の大きい順にN個の仮想関節を選択して実際の関節であると推定する、請求項9乃至12いずれかに記載の対象物の関節構造の取得方法。
【請求項15】
前記仮想関節モデルは、ノードを構成する仮想関節と、仮想関節を接続するエッジと、からなるグラフ構造を備えている、請求項1乃至14いずれかに記載の対象物の関節構造の取得方法。
【請求項16】
仮想関節から実際の関節を推定する前あるいは後において、3軸を備えた仮想関節のローカル座標系を設定する、請求項1乃至15いずれかに記載の対象物の関節構造の取得方法。
【請求項17】
前記仮想関節のローカル座標系の設定は、等高線の座標を主成分分析し、得られた3つの固有ベクトルを仮想関節のローカル座標とする、請求項16に記載の対象物の関節構造の取得方法。
【請求項18】
仮想関節のローカル座標系を設定する時に、対象物のテクスチャ情報を用いる、請求項16、17いずれかに記載の対象物の関節構造の取得方法。
【請求項19】
対象物のテクスチャ情報を用いて、等高線の重心からテクスチャ情報に向かう一つの軸をテクスチャ軸として特定し、当該テクスチャ軸を等高線平面内の一つの軸に置き換えて用いる、請求項18に記載の対象物の関節構造の取得方法。
【請求項20】
前記3次元状の表面に対象物のテクスチャ情報を与えるステップを含む、請求項1乃至19いずれかに記載の対象物の関節構造の推定方法。
【請求項21】
視体積交差法を用いて、複数台のカメラから得られた画像から対象物の3次元形状を取得する手段と、
リーブグラフを用いて、得られた対象物の3次元形状の表面上に平均測地距離μを定義し、μの値の等高線を取得して、各等高線に基づいて関節の候補となる仮想関節を配置して対象物の仮想関節モデルを取得する手段と、
対象物の異なる姿勢に基づいて取得した複数の仮想関節モデル間における対応する仮想関節を比較することで、動きの多い仮想関節を実際の関節と推定する手段と、
実際の関節と推定された仮想関節以外の関節を除いて対象物の関節モデルを取得する手段と、
からなる、対象物の関節構造の取得装置。
【請求項22】
前記3次元形状を取得する手段において、前記対象物の3次元形状はポリゴンメッシュとして表現され、
前記仮想関節モデルを取得する手段において、ポリゴンの表面上に平均測地距離μを定義する、
請求項21に記載の対象物の関節構造の取得装置。
【請求項23】
前記3次元形状を取得する手段は、
対象物視体積をポリゴンメッシュで表現する手段と、
視体積ポリゴンメッシュを凸ポリゴンメッシュに変換する手段と、
各カメラから得られた凸ポリゴンメッシュ同士の交差処理を行う手段と、
を備えている、請求項22に記載の対象物の関節構造の取得装置。
【請求項24】
前記交差処理手段は、交差処理における凸ポリゴンメッシュのポリゴンの切り取り時にポリゴンを再構築してポリゴン数を減らすことを含む、請求項23に記載の対象物の関節構造の取得方法。
【請求項25】
前記交差処理手段は、全ての交差処理が終わった後、あるいは、さらにそれに加えて、1回の交差処理が終わった後毎に、凸ポリゴンメッシュの結合を行うことを含む請求項23,24いずれかに記載の対象物の関節構造の取得装置。
【請求項26】
前記仮想関節モデルを取得する手段において、各等高線の重心に関節の候補となる仮想関節を配置する、請求項21乃至25いずれかに記載の対象物の関節構造の取得装置。
【請求項27】
前記仮想関節モデルを取得する手段は、得られた仮想関節モデルを、当該対象物の既知の関節の位相構造に基づいて修正する手段を備えている、請求項21乃至26いずれかに記載の対象物の関節構造の取得装置。
【請求項28】
前記仮想関節モデルを修正する手段は、関節構造におけるループを構成する枝のいずれかを切り離すことを含む、請求項27に記載の対象物の関節構造の取得装置。
【請求項29】
動きの多い仮想関節を実際の関節と推定する手段は、それぞれの仮想関節に関して、各仮想関節モデル間での関節の動きの分散を求め、得られた分散に基づいて動きが多い仮想関節を決定する、請求項21乃至28いずれかに記載の対象物の関節構造の取得装置。
【請求項30】
前記関節の動きの分散は、仮想関節の関節角の分散である、請求項29に記載の対象物の関節構造の取得装置。
【請求項31】
前記関節角は、仮想関節を接続する隣り合う2本の線分間の角度である、請求項30に記載の対象物の関節構造の取得装置。
【請求項32】
前記関節の動きの分散は、仮想関節を接続する隣り合う2本の線分の内積の分散である、請求項30に記載の対象物の関節構造の取得装置。
【請求項33】
分散が閾値を越えた仮想関節を実際の関節であると推定する、請求項30乃至32いずれかに記載の対象物の関節構造の取得装置。
【請求項34】
実際の関節の個数Nが与えられた場合に、分散の大きい順にN個の仮想関節を選択して実際の関節であると推定する、請求項30乃至32いずれかに記載の対象物の関節構造の取得装置。
【請求項35】
前記仮想関節モデルは、ノードを構成する仮想関節と、仮想関節を接続するエッジと、からなるグラフ構造を備えている、請求項21乃至34いずれかに記載の対象物の関節構造の取得装置。
【請求項36】
3軸を備えた仮想関節のローカル座標系を設定する手段を備えている、請求項21乃至35いずれかに記載の対象物の関節構造の取得装置。
【請求項37】
前記仮想関節のローカル座標系の設定手段は、等高線の座標を主成分分析し、得られた3つの固有ベクトルを仮想関節のローカル座標とする、請求項36に記載の対象物の関節構造の取得装置。
【請求項38】
仮想関節のローカル座標系の設定手段は、対象物のテクスチャ情報を用いる、請求項36,37いずれかに記載の対象物の関節構造の取得装置。
【請求項39】
仮想関節のローカル座標系の設定手段は、対象物のテクスチャ情報を用いて、等高線の重心からテクスチャ情報に向かう一つの軸をテクスチャ軸として特定し、当該テクスチャ軸を等高線平面内の一つの軸に置き換えて用いる、請求項39に記載の対象物の関節構造の取得装置。
【請求項40】
前記3次元状の表面に対象物のテクスチャ情報を与える手段を含む、請求項21乃至39いずれかに記載の対象物の関節構造の推定装置。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図14】
image rotate

【図17】
image rotate

【図3】
image rotate

【図13】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2008−282110(P2008−282110A)
【公開日】平成20年11月20日(2008.11.20)
【国際特許分類】
【出願番号】特願2007−124023(P2007−124023)
【出願日】平成19年5月9日(2007.5.9)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】