"被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の3次元形状を復元する装置であって、前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出手段と、前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定手段と、前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元手段と、を備えていることを特徴とする被写体の3次元形状を復元する装置。前記接点推定手段において、前記接線算出手段で算出した接線を通り被写体表面に接する接平面を設定して、該接平面を接線に沿って平行移動させながら接点の位置を推定することを特徴とする請求項1に記載の装置。前記接点推定手段において、前記接平面上の画素を前記各多視点画像上に射影し、各画像上の該当する画素値の一致度を評価する関数を設定し、その関数が最大となる点を接点とすることを特徴とする請求項2に記載の装置。前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の差分の自乗和に対し単調に減少する関数を用いることを特徴とする請求項3に記載の装置。前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の分散もしくは標準偏差に対し単調に減少する関数を用いることを特徴とする請求項3に記載の装置。前記接点推定手段において、前記一致度を評価する関数を計算する際に、前記多視点画像を撮影したカメラの位置に応じて重みづけを行うことを特徴とする請求項3から5のいずれか1項に記載の装置。前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとの内積に対し単調に増加する重みを設定することを特徴とする請求項6に記載の装置。前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとのなす角度に対し単調に減少する重みを設定することを特徴とする請求項6に記載の装置。前記接平面の代わりに、前記接線算出手段で算出した接線を通り被写体表面に接する錐台面を用いることを特徴とする請求項2から8のいずれか1項に記載の装置。被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の3次元形状を復元する方法であって、前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出ステップと、前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定ステップと、前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元ステップと、を備えていることを特徴とする被写体の3次元形状を復元する方法。請求項1から9のいずれか1項に記載の装置としてコンピュータを機能させるプログラム。しかしながら、一般に前述の公知の技術を用いて取得できる被写体表面上の点や線は少数であるため、復元される3次元形状の精度が低いことが課題であった。そこで本発明は、多視点画像から、被写体の表面上にある点を多数求め、3次元形状を高精度に復元する装置、方法およびプログラムを提供することを目的とする。上記目的を実現するため本発明による被写体の3次元形状を復元する装置は、被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の3次元形状を復元する装置であって、前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出手段と、前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定手段と、前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元手段とを備える。また、前記接点推定手段において、前記接線算出手段で算出した接線を通り被写体表面に接する接平面を設定して、該接平面を接線に沿って平行移動させながら接点の位置を推定することも好ましい。また、前記接点推定手段において、前記接平面上の画素を前記各多視点画像上に射影し、各画像上の該当する画素値の一致度を評価する関数を設定し、その関数が最大となる点を接点とすることも好ましい。また、前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の差分の自乗和に対し単調に減少する関数を用いることも好ましい。また、前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の分散もしくは標準偏差に対し単調に減少する関数を用いることも好ましい。また、前記接点推定手段において、前記一致度を評価する関数を計算する際に、前記多視点画像を撮影したカメラの位置に応じて重みづけを行うことも好ましい。また、前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとの内積に対し単調に増加する重みを設定することも好ましい。また、前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとのなす角度に対し単調に減少する重みを設定することも好ましい。また、前記接平面の代わりに、前記接線算出手段で算出した接線を通り被写体表面に接する錐台面を用いることも好ましい。上記目的を実現するため本発明による被写体の3次元形状を復元する方法は、被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の3次元形状を復元する方法であって、前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出ステップと、前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定ステップと、前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元ステップとを備える。上記目的を実現するため本発明によるプログラムは、上記に記載の装置としてコンピュータを機能させる。本発明の接点推定手段によれば、多視点画像中の遮蔽輪郭線を構成する点に対応する接線の上に必ず1点以上の接点被写体の表面上の点が存在するという幾何学的な条件を用いることで、被写体の表面上の点の探索範囲を接線上に限定することができ、被写体表面に対する接点の位置を推定できる。該接点の集合を拘束条件として被写体の表面の3次元形状を復元することで、復元される3次元形状を高精度化できるという効果を得ることができる。本発明を実施するための形態について、以下では図面を用いて詳細に説明する。図1は、本発明による3次元形状復元装置のシステム構成図であり、図1に示す様に、3次元形状復元装置1は、多視点画像入力部11、接線算出部12、接点推定部13、および表面復元部14を備えている。多視点画像入力部11は、被写体を取り囲むように配置した複数のカメラで被写体を同期撮影して得られた画像データ多視点画像を入力する。なお、カメラパラメータは既知であるとする。多視点画像のそれぞれにおいて、被写体と背景を分離し、被写体のシルエットを抽出する。ここで、被写体と背景の分離方法は公知の技術を用いてよい。例えば、被写体のシルエットを抽出する方法としては、クロマキーや背景差分もしくは手動による抽出を用いる。抽出されたシルエットから多視点画像における被写体のシルエットの輪郭である遮蔽輪郭を検出する。遮蔽輪郭を検出する方法としては、公知の技術を用いてよい。例えば、Teh-Chinチェーンの近似アルゴリズムを用いて折れ線で近似する方法を用いる。OpenCVのcvFindContours関数を用いてもよい。遮蔽輪郭を用いて視体積交差法を適用することにより、被写体のVisualHullを取得する。一般に、視体積交差法を用いて取得したVisualHullは、被写体の真の3次元形状を内包し、かつ、該3次元形状に外接する形状になる。接線算出部12は、前記複数のカメラのそれぞれにおいて、カメラの主点視点から被写体の表面に引いた接線を算出する。図2は、被写体の表面に引いた接線の算出を示す。図2aは横から見た図を示し、図2bは上から見た図を示す。図2bに示す様に、一般に、カメラの主点から被写体の表面に引いた接線は、そのカメラの画像における被写体のシルエットの境界の1点に射影される。また、一般に、該接線と被写体との接点において、前記VisualHullと前記真の3次元形状とが接する。接点推定部13は、前記接線と被写体との接点の3次元位置を推定する。図2に示す様に、該接点は必ず接線上に存在するが、接線上のどの位置に存在するかは不明である。そこで、第1の実施形態では図3に示す様に、接線を通り被写体の表面に接する接平面を設定して、接平面を接線上で平行移動させながら、他の複数のカメラの画像と整合が取れるように接点の位置を推定する。または、第2の実施形態では図4に示す様に、接線を通り被写体の表面に接する錐台面を設定して、錐台面を接線上で平行移動させながら、他の複数のカメラの画像と整合が取れるように接点の位置を推定する。複数のカメラの画像と整合を取る方法としては、公知の技術を用いてもよい。表面復元部14は、図5に示す様に、前記接点推定部13で取得された接点の集合が被写体表面上の点の集合であることに基づき、被写体表面上の他の点の位置も推定して、被写体の表面の3次元形状を復元する。復元の方法としては、グラフカットによる奥行き推定等の公知の技術を用いてもよい。以下に、接線算出部12による接線の算出手段、および接点推定部13による接点の推定手段を詳細に説明する。多視点画像を取得した各カメラの以下のカメラパラメータは既知である。cをカメラのIDとして、カメラcの内部パラメータ行列Ac、カメラcの回転行列Rc、カメラcの位置座標Mcは、と表される。実空間中の点の座標M、カメラc画像中の点の座標mcは、と表され、各カメラにおいて、式1の射影変換が成り立つ。なお、mc~はmcの斉次表現であり、λはスケール不定性を表すスカラーである。遮蔽輪郭を検出する際に得られた折れ線を構成する線素から、画像中の法線ベクトルおよび接線を求める。カメラc画像中で遮蔽輪郭を構成する折れ線の線素に着目し、その端点をそれぞれms=us,vsTおよびme=ue,veTとおくと、この線素はt0≦t≦1を媒介変数として式2で与えられる。また、この線素上の点mcにおける法線ベクトルnmcは式3で表わされる。以上のパラメータから、以下のように、接線算出部12は、遮蔽輪郭を構成する各点に対応する接線を算出し、VisualHullとの共通部分の範囲を求める。カメラc画像の輪郭上の点mcに対応する、被写体への接線は、ss>0を媒介変数として式4で与えられる。なお、RcTはRcの転置行列であり、Ac-1はAcの逆行列である。VisualHullとの共通部分の範囲、つまり媒介変数sの範囲を求めるため、c以外の全てのカメラ画像カメラc’画像に対して、それぞれ接線を射影する。具体的には、式4を式1’に代入することにより、カメラc’画像へ射影された直線を表わす式5が得られる。なお、Ac’、Rc’、Mc’は、それぞれカメラc’の内部パラメータ行列、カメラc’の回転行列、カメラc’の位置座標を表し、mc~’、はカメラc’画像中の点の座標を表す。カメラc’画像において、この射影された直線と遮蔽輪郭を構成する線素との交点の位置を求める。カメラc’画像中の遮蔽輪郭を構成する線素は、式2より、その端点をそれぞれms、me、媒介変数をtとおくと、式2’で与えられる。式5と式2’を連立すれば、sの値は式6で与えられる。全てのカメラ画像についてsの範囲を算出し、その積集合共通部分を求める。これがsの値の範囲になる。次に、接点推定部13による接点の算出手段を説明する。各接線において、接線と被写体との接点の3次元位置を推定する。以下では、第1の実施形態による被写体表面を、接線を通る平面で近似して一致度を算出する方法を説明する図3。まず、接線上に接平面を設定し、接平面上に格子点を配置する。具体的には、抽出された輪郭上の点mcに着目する。点mcに対応する接線は式4で表わされ、s値の範囲は式2’と式6を用いて得られる。次に、接線上の点Mにおける被写体への接平面を求め、この接平面上に2次元座標を設定して格子点を配置する。接平面の法線ベクトルをNとおくと、Nは式で表わされる。接平面上で、接線方向の座標軸をS軸、S軸と垂直な方向の座標軸をT軸とおくと、S軸方向の単位ベクトルSは式8で表わされ、T軸方向の単位ベクトルTは式9で表わされる。接平面上の格子点の座標は式10で表わされる。ただし、格子点の個数を2N1×2N1N:自然数として、とする。具体的には、式1’に式10を代入すればよい。次に、接平面を接線上で平行移動させながら、格子点を各カメラ画像に射影する。式2’を用いて得られた範囲内でsの値を変動させながら、式10で表わされる各格子点を各カメラ画像に射影する。内挿補間には公知の技術を用いてよい。例えば、Lanczosフィルタ等を用いる。各カメラ画像に射影された格子点でマッチングをとり、格子点の画素値の一致度を評価する関数を設定し、その関数が最大となるsの値を求める。この時のsの値に相当する点が、実空間中における被写体と接線との接点である。ここで、一致度を評価する関数の例として、次の2通りがある。各格子点に対応する画素の画素値の差分の自乗和を用いる。自乗和が小さいほど一致度が高い。各格子点に対応する画素の画素値の分散もしくは標準偏差を用いる。分散もしくは標準偏差が小さいほど一致度が高い。また、一致度を評価する関数を計算する際に、多視点画像を撮影したカメラの位置に応じて重みづけを行うこともできる。各カメラ画像の重みづけは、次の3通りがある。ただし、接平面の格子点がオクルージョンにより1個も射影されていないカメラ画像は用いない。ここで、接点からカメラの主点へ向かうベクトルを視線ベクトルV=Mc-Mとおく。各カメラ画像を対等に扱う。接平面の法線ベクトルと視線ベクトルとの内積VNを用いる。内積が大きいほど、重み付けは大きい。接平面の法線ベクトルと視線ベクトルのなす角度を用いる。角度が大きいほど、重み付けは小さい。さらに、ダイクストラ法を用いて、隣接する接点が連続となるように調整してもよい図5。以下では、第2の実施形態による被写体表面を、接線を通る錐台面で近似して一致度を算出する方法を説明する図4。まず、接線上に錐台面を設定し、錐台面上に格子点を配置する。具体的には、抽出された輪郭上の点mcに着目する。点mcに対応する接線は式4で表わされ、sの値の範囲は式2’と式6を用いて得られる。次に、カメラの主点を頂点とし遮蔽輪郭を底面とする錐台面を求め、この錐台面上に、接線上の点Mを原点とする2次元座標を設定して格子点を配置する。錐台面上で、接線方向の座標軸をS軸とおくと、S軸方向の単位ベクトルSは式8’で表わされる。カメラ画像上で遮蔽輪郭に沿ってT離れた点をmc=uc,vcとおくと、錐台面上の格子点の座標は式10’で表わされる。ただし、格子点の個数を2N1×2N1N:自然数として、とする。具体的には、式1’に式10’を代入すればよい。次に、錐台面を接線上で平行移動させながら、格子点を各カメラ画像に射影する。式2’を用いて得られた範囲内でsの値を変動させながら、式10’で表わされる各格子点を各カメラ画像に射影する。内挿補間には公知の技術を用いてよい。例えば、Lanczosフィルタ等を用いる。各カメラ画像に射影された格子点でマッチングをとり、格子点の画素値の一致度を評価する関数を設定し、その関数が最大となるsの値を求める。この時のsの値に相当する点が、実空間中における被写体と接線との接点である。一致度を評価する関数の例として、次の2通りがある。各格子点に対応する画素の画素値の差分の自乗和を用いる。自乗和が小さいほど一致度が高い。各格子点に対応する画素の画素値の分散もしくは標準偏差を用いる。分散もしくは標準偏差が小さいほど一致度が高い。また、一致度を評価する関数を計算する際に、多視点画像を撮影したカメラの位置に応じて重みづけを行うこともできる。各カメラ画像の重みづけは、次の3通りがある。ただし、錐台面の格子点がオクルージョンにより1個も射影されていないカメラ画像は用いない。ここで、接点からカメラの主点へ向かうベクトルを視線ベクトルV=Mc-Mとおく。各カメラ画像を対等に扱う。法線ベクトルと視線ベクトルとの内積VNを用いる。内積が大きいほど、重み付けは大きい。法線ベクトルと視線ベクトルのなす角度を用いる。角度が大きいほど、重み付けは小さい。さらに、ダイクストラ法を用いて、隣接する接点が連続となるように調整してもよい図5。以上のように、本願発明は、接線毎に必ず接点被写体の表面上にある点が得られるため、3次元位置座標が既知の点や線を多数得られることになり、3次元形状復元を容易にすることができる。また、既知の3次元形状復元方法において、その方法で用いる特徴的な点や線と併せて用いることにより、3次元形状復元を高精度化することができる。また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。"