(57)【特許請求の範囲】
【請求項１】
被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の３次元形状を復元する装置であって、
前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出手段と、
前記接線算出手段で算出した接線を通り被写体表面に接する接平面を設定して、該接平面を接線に沿って平行移動させながら前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定手段と、
前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元手段と、
を備えていることを特徴とする被写体の３次元形状を復元する装置。
【請求項２】
前記接点推定手段において、前記接平面上の画素を前記各多視点画像上に射影し、各画像上の該当する画素値の一致度を評価する関数を設定し、その関数が最大となる点を接点とすることを特徴とする請求項１に記載の装置。
【請求項３】
前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の差分の自乗和に対し単調に減少する関数を用いることを特徴とする請求項２に記載の装置。
【請求項４】
前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の分散もしくは標準偏差に対し単調に減少する関数を用いることを特徴とする請求項２に記載の装置。
【請求項５】
前記接点推定手段において、前記一致度を評価する関数を計算する際に、前記多視点画像を撮影したカメラの位置に応じて重みづけを行うことを特徴とする請求項２から４のいずれか１項に記載の装置。
【請求項６】
前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとの内積に対し単調に増加する重みを設定することを特徴とする請求項５に記載の装置。
【請求項７】
前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとのなす角度に対し単調に減少する重みを設定することを特徴とする請求項５に記載の装置。
【請求項８】
前記接平面の代わりに、前記接線算出手段で算出した接線を通り被写体表面に接する錐台面を用いることを特徴とする請求項１から７のいずれか１項に記載の装置。
【請求項９】
被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の３次元形状を復元する方法であって、
前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出ステップと、
前記接線算出ステップで算出した接線を通り被写体表面に接する接平面を設定して、該接平面を接線に沿って平行移動させながら前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定ステップと、
前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元ステップと、
を備えていることを特徴とする被写体の３次元形状を復元する方法。
【請求項１０】
請求項１から８のいずれか１項に記載の装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多視点画像から、被写体の表面上にある点を多数求め、３次元形状を高精度に復元する装置、方法およびプログラムに関する。
【背景技術】
【０００２】
従来から、被写体を取り囲むように複数のカメラで撮影した多視点画像に基づき、被写体の３次元形状を復元する技術について様々な提案がなされている。
【０００３】
従来の３次元形状復元の方法では、被写体の表面上にある可能性が高い点や線などを手がかりとして、これらの点や線を通過する尤もらしい表面を復元している。手がかりとなる点や線としては、被写体の表面上に貼り付けたマーカー等や、被写体の表面上の特徴的な点および線やフロンティア点（非特許文献１）などが用いられる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】冨山，片山，折原，岩舘，“局所的形状特徴に拘束された３次元形状復元手法とそのリアルタイム動画表示，”映像情報メディア学会誌，ｖｏｌ．６１，Ｎｏ．４，ｐｐ．４７１−４８１（２００７）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、一般に前述の公知の技術を用いて取得できる被写体表面上の点や線は少数であるため、復元される３次元形状の精度が低いことが課題であった。
【０００６】
そこで本発明は、多視点画像から、被写体の表面上にある点を多数求め、３次元形状を高精度に復元する装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を実現するため本発明による被写体の３次元形状を復元する装置は、被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の３次元形状を復元する装置であって、前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出手段と、前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定手段と、前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元手段とを備える。
【０００８】
そして、前記接点推定手段において、前記接線算出手段で算出した接線を通り被写体表面に接する接平面を設定して、該接平面を接線に沿って平行移動させながら前記算出した接線上の被写体表面に対する接点の位置を推定するようになっている。
【０００９】
また、前記接点推定手段において、前記接平面上の画素を前記各多視点画像上に射影し、各画像上の該当する画素値の一致度を評価する関数を設定し、その関数が最大となる点を接点とすることも好ましい。
【００１０】
また、前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の差分の自乗和に対し単調に減少する関数を用いることも好ましい。
【００１１】
また、前記接点推定手段において、前記一致度を評価する関数として、前記該当する画素値の分散もしくは標準偏差に対し単調に減少する関数を用いることも好ましい。
【００１２】
また、前記接点推定手段において、前記一致度を評価する関数を計算する際に、前記多視点画像を撮影したカメラの位置に応じて重みづけを行うことも好ましい。
【００１３】
また、前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとの内積に対し単調に増加する重みを設定することも好ましい。
【００１４】
また、前記接点推定手段において、前記重み付けにおいて、前記接平面の法線ベクトルと前記多視点画像を撮影したカメラの光軸ベクトルとのなす角度に対し単調に減少する重みを設定することも好ましい。
【００１５】
また、前記接平面の代わりに、前記接線算出手段で算出した接線を通り被写体表面に接する錐台面を用いることも好ましい。
【００１６】
上記目的を実現するため本発明による被写体の３次元形状を復元する方法は、被写体を複数台のカメラで撮影した多視点画像と各カメラのカメラパラメータから、被写体の３次元形状を復元する方法であって、前記多視点画像における被写体の遮蔽輪郭線を抽出し、前記カメラパラメータから、該遮蔽輪郭線を構成する各点において対応する接線を求める接線算出ステップと、前記接線算出ステップで算出した接線を通り被写体表面に接する接平面を設定して、該接平面を接線に沿って平行移動させながら前記算出した接線上の被写体表面に対する接点の位置を推定する接点推定ステップと、前記接点を被写体表面上の特徴点として、被写体の表面の形状を復元する表面復元ステップとを備える。
【００１７】
上記目的を実現するため本発明によるプログラムは、上記に記載の装置としてコンピュータを機能させる。
【発明の効果】
【００１８】
本発明の接点推定手段によれば、多視点画像中の遮蔽輪郭線を構成する点に対応する接線の上に必ず１点以上の接点（被写体の表面上の点）が存在するという幾何学的な条件を用いることで、被写体の表面上の点の探索範囲を接線上に限定することができ、被写体表面に対する接点の位置を推定できる。該接点の集合を拘束条件として被写体の表面の３次元形状を復元することで、復元される３次元形状を高精度化できるという効果を得ることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明による３次元形状復元装置のシステム構成図を示す。
【図２】被写体の表面に引いた接線の算出を示す。
【図３】第１の実施形態による接平面を用いた接点の推定を示す。
【図４】第２の実施形態による錐台面を用いた接点の推定を示す。
【図５】被写体の表面の３次元形状の復元を示す。
【発明を実施するための形態】
【００２０】
本発明を実施するための形態について、以下では図面を用いて詳細に説明する。図１は、本発明による３次元形状復元装置のシステム構成図であり、図１に示す様に、３次元形状復元装置１は、多視点画像入力部１１、接線算出部１２、接点推定部１３、および表面復元部１４を備えている。
【００２１】
多視点画像入力部１１は、被写体を取り囲むように配置した複数のカメラで被写体を同期撮影して得られた画像データ（多視点画像）を入力する。なお、カメラパラメータは既知であるとする。多視点画像のそれぞれにおいて、被写体と背景を分離し、被写体のシルエットを抽出する。ここで、被写体と背景の分離方法は公知の技術を用いてよい。例えば、被写体のシルエットを抽出する方法としては、クロマキーや背景差分もしくは手動による抽出を用いる。抽出されたシルエットから多視点画像における被写体のシルエットの輪郭である遮蔽輪郭を検出する。遮蔽輪郭を検出する方法としては、公知の技術を用いてよい。例えば、Ｔｅｈ−Ｃｈｉｎチェーンの近似アルゴリズムを用いて折れ線で近似する方法を用いる。ＯｐｅｎＣＶのcvFindContours関数を用いてもよい。遮蔽輪郭を用いて視体積交差法を適用することにより、被写体のＶｉｓｕａｌ  Ｈｕｌｌを取得する。一般に、視体積交差法を用いて取得したＶｉｓｕａｌ  Ｈｕｌｌは、被写体の真の３次元形状を内包し、かつ、該３次元形状に外接する形状になる。
【００２２】
接線算出部１２は、前記複数のカメラのそれぞれにおいて、カメラの主点（視点）から被写体の表面に引いた接線を算出する。図２は、被写体の表面に引いた接線の算出を示す。図２ａは横から見た図を示し、図２ｂは上から見た図を示す。図２ｂに示す様に、一般に、カメラの主点から被写体の表面に引いた接線は、そのカメラの画像における被写体のシルエットの境界の１点に射影される。また、一般に、該接線と被写体との接点において、前記Ｖｉｓｕａｌ  Ｈｕｌｌと前記真の３次元形状とが接する。
【００２３】
接点推定部１３は、前記接線と被写体との接点の３次元位置を推定する。図２に示す様に、該接点は必ず接線上に存在するが、接線上のどの位置に存在するかは不明である。そこで、第１の実施形態では図３に示す様に、接線を通り被写体の表面に接する接平面を設定して、接平面を接線上で平行移動させながら、他の複数のカメラの画像と整合が取れるように接点の位置を推定する。または、第２の実施形態では図４に示す様に、接線を通り被写体の表面に接する錐台面を設定して、錐台面を接線上で平行移動させながら、他の複数のカメラの画像と整合が取れるように接点の位置を推定する。複数のカメラの画像と整合を取る方法としては、公知の技術を用いてもよい。
【００２４】
表面復元部１４は、図５に示す様に、前記接点推定部１３で取得された接点の集合が被写体表面上の点の集合であることに基づき、被写体表面上の他の点の位置も推定して、被写体の表面の３次元形状を復元する。復元の方法としては、グラフカットによる奥行き推定等の公知の技術を用いてもよい。
【００２５】
以下に、接線算出部１２による接線の算出手段、および接点推定部１３による接点の推定手段を詳細に説明する。多視点画像を取得した各カメラの以下のカメラパラメータは既知である。
【００２６】
ｃをカメラのＩＤとして、カメラｃの内部パラメータ行列Ａｃ、カメラｃの回転行列Ｒｃ、カメラｃの位置座標Ｍｃは、
【数１】
0005736285.tif 000002
と表される。
【００２７】
実空間中の点の座標Ｍ、カメラｃ画像中の点の座標ｍｃは、
【数２】
0005736285.tif 000003
と表され、各カメラにおいて、式（１）の射影変換が成り立つ。
【数３】
0005736285.tif 000004
なお、ｍｃ〜はｍｃの斉次表現であり、λはスケール不定性を表すスカラーである。
【００２８】
遮蔽輪郭を検出する際に得られた折れ線を構成する線素から、画像中の法線ベクトルおよび接線を求める。カメラｃ画像中で遮蔽輪郭を構成する折れ線の線素に着目し、その端点をそれぞれｍｓ＝（ｕｓ，ｖｓ）Ｔおよびｍｅ＝（ｕｅ，ｖｅ）Ｔとおくと、この線素はｔ（０≦ｔ≦１）を媒介変数として式（２）で与えられる。また、この線素上の点ｍｃにおける法線ベクトルｎ（ｍｃ）は式（３）で表わされる。
【数４】
0005736285.tif 000005
【００２９】
以上のパラメータから、以下のように、接線算出部１２は、遮蔽輪郭を構成する各点に対応する接線を算出し、Ｖｉｓｕａｌ  Ｈｕｌｌとの共通部分の範囲を求める。
【００３０】
カメラｃ画像の輪郭上の点ｍｃに対応する、被写体への接線は、ｓ（ｓ＞０）を媒介変数として式（４）で与えられる。
【数５】
0005736285.tif 000006
なお、ＲｃＴはＲｃの転置行列であり、Ａｃ−１はＡｃの逆行列である。
【００３１】
Ｖｉｓｕａｌ  Ｈｕｌｌとの共通部分の範囲、つまり媒介変数ｓの範囲を求めるため、ｃ以外の全てのカメラ画像（カメラｃ’画像）に対して、それぞれ接線を射影する。具体的には、式（４）を式（１’）に代入することにより、カメラｃ’画像へ射影された直線を表わす式（５）が得られる。
【数６】
0005736285.tif 000007
なお、Ａｃ’、Ｒｃ’、Ｍｃ’は、それぞれカメラｃ’の内部パラメータ行列、カメラｃ’の回転行列、カメラｃ’の位置座標を表し、ｍｃ〜’、はカメラｃ’画像中の点の座標を表す。
【００３２】
カメラｃ’画像において、この射影された直線と遮蔽輪郭を構成する線素との交点の位置を求める。カメラｃ’画像中の遮蔽輪郭を構成する線素は、式（２）より、その端点をそれぞれｍｓ、ｍｅ、媒介変数をｔとおくと、式（２’）で与えられる。
【数７】
0005736285.tif 000008
式（５）と式（２’）を連立すれば、ｓの値は式（６）で与えられる。
【数８】
0005736285.tif 000009
全てのカメラ画像についてｓの範囲を算出し、その積集合（共通部分）を求める。これがｓの値の範囲になる。
【００３３】
次に、接点推定部１３による接点の算出手段を説明する。各接線において、接線と被写体との接点の３次元位置を推定する。以下では、第１の実施形態による被写体表面を、接線を通る平面で近似して一致度を算出する方法を説明する（図３）。
【００３４】
まず、接線上に接平面を設定し、接平面上に格子点を配置する。具体的には、抽出された輪郭上の点ｍｃに着目する。点ｍｃに対応する接線は式（４）で表わされ、ｓ値の範囲は式（２’）と式（６）を用いて得られる。次に、接線上の点Ｍにおける被写体への接平面を求め、この接平面上に２次元座標を設定して格子点を配置する。接平面の法線ベクトルをＮとおくと、Ｎは式(７)で表わされる。接平面上で、接線方向の座標軸をＳ軸、Ｓ軸と垂直な方向の座標軸をＴ軸とおくと、Ｓ軸方向の単位ベクトルＳは式（８）で表わされ、Ｔ軸方向の単位ベクトルＴは式（９）で表わされる。接平面上の格子点の座標は式（１０）で表わされる。
【数９】
0005736285.tif 000010
ただし、格子点の個数を（２Ｎ＋１）×（２Ｎ＋１）（Ｎ：自然数）として、
【数１０】
0005736285.tif 000011
とする。具体的には、式（１’）に式（１０）を代入すればよい。
【００３５】
次に、接平面を接線上で平行移動させながら、格子点を各カメラ画像に射影する。式（２’）を用いて得られた範囲内でｓの値を変動させながら、式（１０）で表わされる各格子点を各カメラ画像に射影する。内挿補間には公知の技術を用いてよい。例えば、Ｌａｎｃｚｏｓフィルタ等を用いる。各カメラ画像に射影された格子点でマッチングをとり、格子点の画素値の一致度を評価する関数を設定し、その関数が最大となるｓの値を求める。この時のｓの値に相当する点が、実空間中における被写体と接線との接点である。
【００３６】
ここで、一致度を評価する関数の例として、次の２通りがある。
・各格子点に対応する画素の画素値の差分の自乗和を用いる。自乗和が小さいほど一致度が高い。
・各格子点に対応する画素の画素値の分散もしくは標準偏差を用いる。分散もしくは標準偏差が小さいほど一致度が高い。
【００３７】
また、一致度を評価する関数を計算する際に、多視点画像を撮影したカメラの位置に応じて重みづけを行うこともできる。各カメラ画像の重みづけは、次の３通りがある。ただし、接平面の格子点がオクルージョンにより１個も射影されていないカメラ画像は用いない。ここで、接点からカメラの主点へ向かうベクトルを視線ベクトルＶ＝Ｍｃ−Ｍとおく。
・各カメラ画像を対等に扱う。
・接平面の法線ベクトルと視線ベクトルとの内積（Ｖ・Ｎ）を用いる。内積が大きいほど、重み付けは大きい。
・接平面の法線ベクトルと視線ベクトルのなす角度
0005736285.tif 000012
を用いる。角度が大きいほど、重み付けは小さい。
さらに、ダイクストラ法を用いて、隣接する接点が連続となるように調整してもよい（図５）。
【００３８】
以下では、第２の実施形態による被写体表面を、接線を通る錐台面で近似して一致度を算出する方法を説明する（図４）。
【００３９】
まず、接線上に錐台面を設定し、錐台面上に格子点を配置する。具体的には、抽出された輪郭上の点ｍｃに着目する。点ｍｃに対応する接線は式（４）で表わされ、ｓの値の範囲は式（２’）と式（６）を用いて得られる。次に、カメラの主点を頂点とし遮蔽輪郭を底面とする錐台面を求め、この錐台面上に、接線上の点Ｍを原点とする２次元座標を設定して格子点を配置する。錐台面上で、接線方向の座標軸をＳ軸とおくと、Ｓ軸方向の単位ベクトルＳは式（８’）で表わされる。カメラ画像上で遮蔽輪郭に沿ってＴ離れた点をｍｃ”＝（ｕｃ”，ｖｃ”）とおくと、錐台面上の格子点の座標は式（１０’）で表わされる。
【数１１】
0005736285.tif 000013
ただし、格子点の個数を（２Ｎ＋１）×（２Ｎ＋１）（Ｎ：自然数）として、
【数１２】
0005736285.tif 000014
とする。具体的には、式（１’）に式（１０’）を代入すればよい。
【００４０】
次に、錐台面を接線上で平行移動させながら、格子点を各カメラ画像に射影する。式（２’）を用いて得られた範囲内でｓの値を変動させながら、式（１０’）で表わされる各格子点を各カメラ画像に射影する。内挿補間には公知の技術を用いてよい。例えば、Ｌａｎｃｚｏｓフィルタ等を用いる。各カメラ画像に射影された格子点でマッチングをとり、格子点の画素値の一致度を評価する関数を設定し、その関数が最大となるｓの値を求める。この時のｓの値に相当する点が、実空間中における被写体と接線との接点である。
【００４１】
一致度を評価する関数の例として、次の２通りがある。
・各格子点に対応する画素の画素値の差分の自乗和を用いる。自乗和が小さいほど一致度が高い。
・各格子点に対応する画素の画素値の分散もしくは標準偏差を用いる。分散もしくは標準偏差が小さいほど一致度が高い。
【００４２】
また、一致度を評価する関数を計算する際に、多視点画像を撮影したカメラの位置に応じて重みづけを行うこともできる。各カメラ画像の重みづけは、次の３通りがある。ただし、錐台面の格子点がオクルージョンにより１個も射影されていないカメラ画像は用いない。ここで、接点からカメラの主点へ向かうベクトルを視線ベクトルＶ＝Ｍｃ−Ｍとおく。
・各カメラ画像を対等に扱う。
・法線ベクトルと視線ベクトルとの内積（Ｖ・Ｎ）を用いる。内積が大きいほど、重み付けは大きい。
・法線ベクトルと視線ベクトルのなす角度
0005736285.tif 000015
を用いる。角度が大きいほど、重み付けは小さい。
さらに、ダイクストラ法を用いて、隣接する接点が連続となるように調整してもよい（図５）。
【００４３】
以上のように、本願発明は、接線毎に必ず接点（被写体の表面上にある点）が得られるため、３次元位置座標が既知の点や線を多数得られることになり、３次元形状復元を容易にすることができる。また、既知の３次元形状復元方法において、その方法で用いる特徴的な点や線と併せて用いることにより、３次元形状復元を高精度化することができる。
【００４４】
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。
【符号の説明】
【００４５】
１  ３次元形状復元装置
１１  多視点画像入力部
１２  接線算出部
１３  接点推定部
１４  表面復元部
【図１】
0005736285.tif 000016
【図２】
0005736285.tif 000017
【図３】
0005736285.tif 000018
【図４】
0005736285.tif 000019
【図５】
0005736285.tif 000020