(57)【特許請求の範囲】
【請求項１】
コンピュータを用いて３次元データで示される点群に面をフィッティングする方法であって、
前記点群の３次元データ計測時の誤差に基づく信頼性を判断する第１ステップと、
第１ステップでの信頼性の判断結果に基づいて、信頼性の高い点についてはより精度の高いフィッティングを行うよう、信頼性の低い点については信頼性の高い点に大きい影響を与えないよう、前記点群への面のフィッティングの度合いを変更する第２ステップと、  を備えたことを特徴とする点群に面をフィッティングする方法。
【請求項２】
前記第１ステップにおいて、前記点群を構成する各点の信頼性を判断し、
前記第２ステップにおいて、各点の信頼性に基づき各点の重みを変更することによって前記点群へのフィッティング方法を変更する、
請求項１記載の点群に面をフィッティングする方法。
【請求項３】
３次元計測によって前記点群および各点の信頼性を示すデータを取得する、
請求項１または請求項２記載の点群に面をフィッティングする方法。
【請求項４】
コンピュータを用いて点群に面をフィッティングする装置であって、
前記点群を構成する各点の３次元データ計測時の誤差に基づく信頼性を取得する手段と、
各点の信頼性に応じて信頼性の高い点についてはより精度の高いフィッティングを行うよう、信頼性の低い点については信頼性の高い点に大きい影響を与えないよう、前記点群への面のフィッティングの度合いを異ならせる手段と、
を有することを特徴とする点群に面をフィッティングする装置。
【請求項５】
前記各点の信頼性に基づいて各点の重み付けを行う手段を有し、
前記各点の重みに応じてフィッティングの度合いを異ならせる、
請求項４記載の点群に面をフィッティングする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを用いて点群に面をフィッティングする方法および装置に関し、例えばコンピュータグラフィックスの分野における３次元モデルの作成に利用される。
【０００２】
【従来の技術】
近年において、映画やゲームなどに３次元ＣＤ（３次元コンピュータグラフィックス）の技術がしばしば用いられている。３次元ＣＤでは、仮想的な３次元空間内に３次元モデルやライトを配置して動かすので、表現の自由度が高い。
【０００３】
従来より、光切断法などによる非接触型の３次元計測装置が実用化されており、これを用いることによって、対象物の３次元データを比較的容易に作成することができる。しかし、計測によって得られた３次元データをそのまま３次元ＣＤに用いるためには、得られたデータの間引きなどを行ってデータ量を減らすための処理が複雑であるなど、種々の問題がある。
【０００４】
この問題に対処するため、対象物の標準モデルを準備しておき、計測された３次元データに合わせて標準モデルを変形する方法が提案されている（特開平５−８１３７７号）。つまり、この方法では、計測によって得られた３次元の点群に、標準モデルの表面をフィッティングさせるのである。
【０００５】
【発明が解決しようとする課題】
しかし、上に述べた従来に方法において、計測された点群に合わせて面を忠実に変形させると、誤差の大きな点に対しても面が追従してしまい、良好な結果が得られない。
【０００６】
つまり、図８（Ａ）に示すように、６つの点Ｐ１〜６のうち、点Ｐ３〜６の信頼性が低いとした場合に、その場合であっても、面Ｓは全ての点Ｐ１〜６にひきずられて変形されてしまう。変形によって得られた面Ｓａは、適正なものとは言えないことがある。
【０００７】
また、図８（Ｂ）に示すように、信頼性の低い点Ｐ３〜６を無視し、信頼性のある点Ｐ１〜２のみを用いた場合には、点群による変形自体が充分に行われず、点群による形状が全く反映されず、点群による形状を保つことができない。その場合に、変形によって得られた面Ｓｂは、対象物の形状を適正に表したものとは言いがたい。
【０００８】
本発明は、上述の問題に鑑みてなされたもので、信頼性の低い点が含まれている場合に、信頼性の低い点にひきずられて異常な変形や誤った変形の行われることをできるだけ防止し、適切なフィッティングが行われるようにすることを目的とする。
【０００９】
請求項１の発明に係る方法は、コンピュータを用いて３次元データで示される点群に面をフィッティングする方法であって、
前記点群の３次元データ計測時の誤差に基づく信頼性を判断する第１ステップと、
第１ステップでの信頼性の判断結果に基づいて、信頼性の高い点についてはより精度の高いフィッティングを行うよう、信頼性の低い点については信頼性の高い点に大きい影響を与えないよう、前記点群への面のフィッティングの度合いを変更する第２ステップと、を備えた方法である。
【００１０】
請求項２の発明に係る方法では、前記第１ステップにおいて、前記点群を構成する各点の信頼性を判断し、前記第２ステップにおいて、各点の信頼性に基づき各点の重みを変更することによって前記点群へのフィッティング方法を変更する。
【００１１】
請求項３の発明に係る方法では、３次元計測によって前記点群および各点の信頼性を示すデータを取得する。請求項４の発明に係る装置は、コンピュータを用いて点群に面をフィッティングする装置であって、前記点群を構成する各点の３次元データ計測時の誤差に基づく信頼性を取得する手段と、各点の信頼性に応じて信頼性の高い点についてはより精度の高いフィッティングを行うよう、信頼性の低い点については信頼性の高い点に大きい影響を与えないよう、前記点群への面のフィッティングの度合いを異ならせる手段と、を有する。
【００１２】
請求項５の発明に係る装置では、前記各点の信頼性に基づいて各点の重み付けを行う手段を有し、前記各点の重みに応じてフィッティングの度合いを異ならせる。
【００１３】
【発明の実施の形態】
図１は本発明に係るモデリング装置１を示すブロック図、図２は対象物の３次元データＤＴを取得する方法の例を説明する図である。
【００１４】
図１において、モデリング装置１は、処理装置１０、標準モデルＤＳを格納する標準モデル格納部１１、および３次元データＤＴを格納する３次元データ格納部１２を有する。３次元データ格納部１２には、３次元データＤＴとともに、その各データの信頼性を示す信頼性データＤＲも格納されている。
【００１５】
処理装置１０は、ＣＰＵ、ＲＡＭ、ＲＯＭなどからなり、ＣＰＵがプログラムを実行することにより、重み付け処理部２１、変形処理部２２、その他の種々の機能が実現される。
【００１６】
重み付け処理部２１は、変形処理部２２において重み付けを行うのに必要な処理、例えば、信頼性データＤＲから重みを求める処理などを行う。
変形処理部２２は、後で説明する図４の変形処理などを行い、標準モデルＤＳの面Ｓを３次元データＤＴの各点群にできるだけ近づくようなフィッティングを行う。その際に、各点の重みに応じてフィッティングの度合いを異ならせる。
【００１７】
モデリング装置１は、パーソナルコンピュータまたはワークステーションなどを用いて構成することが可能である。その場合に、信頼性データＤＲを判断しまたは取得するための処理、信頼性データＤＲを適用するための処理、またはその他の処理を行うためのプログラムは、フロッピィディスク、光磁気ディスク、磁気ディスクなどの記録媒体に記憶され、適時、主メモリ内に読み込まれる。重み付け処理部２１および変形処理部２２は、例えば、処理装置１０内でプログラムが実行されることによって実現される。
【００１８】
対象物の３次元データＤＴを取得する公知の方法として、例えば、光切断法による３次元計測装置を用いる方法、対象物に対して視差を有して配置された複数のカメラを用いる方法などがある。
【００１９】
後者の方法では、例えば３台のカメラを用いることにより、３次元データＤＴの各点の信頼性を判定するためのデータをも同時に取得することができる。
すなわち、３台のカメラによる多眼視によって対象物を撮影し、３枚の画像を得る。これら３枚の画像について、互いの対応点を探索する。２枚の画像についての対応点に基づいて、３次元データＤＴが公知の計算により求められる。他の１枚の画像は、信頼性データＤＲを得るのに利用される。
【００２０】
例えば、図２に示すように、３台のカメラＡ，Ｂ，Ｃを用い、対象物Ｑを撮影して３枚の画像ＦＡ，ＦＢ，ＦＣを取得する。各画像ＦＡ，ＦＢ，ＦＣについて、それぞれの画像面（ｕn ，ｖn ）が示されている（ｎ＝１，２，３）。３次元空間Ｍにある対象物Ｑ上の点ＱＰが、各画像面上の点ＰＡ，ＰＢ，ＰＣに投影されている。
【００２１】
ここで、点ＰＡ，ＰＢ，ＰＣの対応が求まるとすると、それらの対応から、３次元空間Ｍ’を再構成することができる。３次元空間Ｍ’において、点ＰＡ，ＰＢに対応する点ＱＰ’が求まる。理想的には、この再構成された３次元空間Ｍ’上の点ＱＰ’を画像面（ｕ3 ，ｖ3 ）に逆投影した点ＰＣ’と、元の３次元空間Ｍ上の点ＱＰを画像面（ｕ3 ，ｖ3 ）上に投影した点ＰＣとは、一致するはずである。
【００２２】
しかし、投影変換を正確に求めることは難しく、また対応を正確に求めることも難しいため、通常、これらは一致しない。そこで、これら点ＰＣ’と点ＰＣとのずれを誤差とし、信頼性の指標として用いる。
【００２３】
例えば、点ＰＣ’と点ＰＣとの誤差を、ずれた画素の数で示す。点ＰＣ’と点ＰＣとが同じ画素上にあれば、誤差は「０」である。１画素ずれていれば、誤差は「１」である。２画素ずれていれば、誤差は「２」である。このずれた画素数を信頼性データＤＲとして用いることができる。
【００２４】
信頼性データＤＲを判断する他の方法として、例えば特開昭６１−１２５６８６号に示される方法、他の公知の方法を用いることも可能である。
図３はモデリング装置１の全体の処理の流れを示すフローチャートである。
【００２５】
図３において、まず、対象物についての標準モデルＤＳを準備する（＃１１）。例えば、対象物が人の頭部であるとすると、図５に示すように、標準的な顔のサイズおよび形状を有した、頭部の全周についての標準モデルＤＳ１を準備する。
【００２６】
対象物の３次元計測を行い、３次元データＤＴを取得する（＃１２）。その際に、対象物の２次元画像をも同時に取得しておく。また、上に述べたように、３次元データＤＴの各点についての信頼性を示す信頼性データＤＲ、または信頼性データＤＲを得るための情報を取得しておく。
【００２７】
なお、標準モデルＤＳの準備と３次元データＤＴの取得とはいずれが先でもよく、並行して進めてもよい。
標準モデルＤＳと３次元データＤＴとの概略の位置合わせを行う（＃１３）。この処理では、標準モデルＤＳと３次元データＤＴとの距離が最小となるように、標準モデルＤＳの向き、大きさ、および位置を変更する。
【００２８】
輪郭および特徴点を抽出する（＃１４）。標準モデルＤＳについての輪郭ＲＫおよび特徴点ＴＴを予め抽出しておいた場合には、それらと同じ位置に配置されるべき輪郭および特徴点を、３次元データＤＴ上に、またはそれに対応する２次元画像上に配置する。
【００２９】
特徴点として、例えば、目や口の端部、鼻の頂部、顎の下端部のように実際に特徴のある部分、または、それらの中間のようなそれ自体では特徴はないが位置的に特定し易い部分などが選ばれる。輪郭として、顎のライン、唇のライン、または瞼のラインなどが選ばれる。
【００３０】
計算量および誤差を削減するために、３次元データＤＴについてデータの削減が行われる（＃１５）。
標準モデルＤＳの変形が行われる（＃１６）。ここでは、３次元データＤＴの各点と標準モデルＤＳの面との間の距離に関連して定義されたエネルギー関数、または過剰な変形を回避するために定義されたエネルギー関数などを用い、それらが最小となるように標準モデルＤＳの面を変形させる。
【００３１】
そして、対象とするエネルギー関数および制御点を変更し、ステップ＃１６と同様な変更のための処理を繰り返す（＃１７）。
次に、上のステップ＃１６の変形処理について説明する。
【００３２】
図４は変形処理を示すフローチャート、図５は標準モデルＤＳ１の例を示す図、図６は標準モデルＤＳの面Ｓと３次元データＤＴの点Ｐとを模式的に示す図、図７は標準モデルＤＳの異常変形を防ぐための仮想バネを説明するための図、図８は点Ｐに対する面Ｓの種々のフィッティングの例を示す図である。
【００３３】
図６において、３次元データＤＴを構成する点群の１つが点Ｐｋで示されている。標準モデルＤＳの面Ｓにおいて、点Ｐｋに最も近い点がＱｋで示されている。点Ｑｋは、点Ｐｋから面Ｓに垂線を下ろしたときの交点である。
【００３４】
点群に面Ｓをフィッティングする方法は次のとおりである。ここでは、まず、一般的なフィッティングについて説明し、その後で信頼性に基づく重み付けを行ったフィッティングを説明する。
【００３５】
点群の中の１つの点Ｐｋ、それに対応する点Ｑｋ、および対応点群Ｔ＝｛（Ｐｋ，Ｑｋ），ｋ＝１…ｎ｝について、フィッティングエネルギー（Fitting Energy) 関数Ｅｆ（Ｕ）を、次の式（１）のように設定する。
【００３６】
【数１】
0004292678.tif 000002
但し、Ｑｋ（Ｕ）は、ＱｋがＵの関数であることを示す。
【００３７】
また、面Ｓの過度の変形を防ぐために、図７に示す仮想バネ(elastic bar) ＫＢを導入する。仮想バネＫＢの制約に基づいて、面Ｓの形状安定化のための安定化エネルギー関数を導く。
【００３８】
すなわち、図７において、フィッティング対象である標準モデルＤＳの面（曲面）Ｓの一部が示されている。面Ｓは、制御点群Ｕ＝｜ｕｉ，ｉ＝１…Ｎ｜で形成されている。隣接する制御点間には、仮想バネＫＢが配置されている。仮想バネＫＢは、制御点間に引っ張り力による拘束を与え、面Ｓの異常変形を防ぐ働きをする。
【００３９】
つまり、隣接する制御点ｕの間隔が大きくなった場合に、それに応じて仮想バネＫＢによる引っ張り力が大きくなる。例えば、点Ｑｋが点Ｐｋに近づく場合に、その移動にともなって制御点ｕの間隔が大きくなると、仮想バネＫＢによる引っ張り力が増大する。点Ｑｋが移動しても制御点ｕの間隔が変わらなければ、つまり制御点ｕ間の相対位置関係に変化がなければ、仮想バネＫＢによる引っ張り力は変化しない。仮想バネＫＢによる引っ張り力を面Ｓの全体について平均化したものを、安定化エネルギーとして定義する。したがって、面Ｓの一部が突出して変形した場合に安定化エネルギーは増大する。面Ｓの全体が平均して移動すれば安定化エネルギーは零である。
【００４０】
安定化エネルギー関数Ｅｓ（Ｕ）は、次の式（２）で示される。
【００４１】
【数２】
0004292678.tif 000003
ここで、
【００４２】
【数３】
0004292678.tif 000004
は、それぞれ、仮想バネＫＢの初期端点、変形後の仮想バネＫＢの端点である。ｃはバネ係数であり、Ｍは仮想バネＫＢの本数である。また、次の関係が成り立つ。
【００４３】
【数４】
0004292678.tif 000005
したがって、バネ係数ｃを大きくすると、仮想バネＫＢは硬くなって変形し難くなる。
【００４４】
このような安定化エネルギー関数Ｅｓ（Ｕ）を導入することにより、面Ｓの形状変化に一定の拘束を設けることとなり、面Ｓの過度の変形を防ぐことができる。
【００４５】
上に述べたフィッティングエネルギー関数Ｅｆ（Ｕ）、および安定化エネルギー関数Ｅｓ（Ｕ）を用い、フィッティングの評価関数Ｅ（Ｕ）を次の式（３）のように定義する。
【００４６】
Ｅ（Ｕ）＝ＷｆＥｆ（Ｕ）＋ＷｓＥｓ（Ｕ）  ……（３）
ここで、Ｗｆ，Ｗｓは、それぞれ正規化のための重み係数である。
式（３）の評価関数Ｅ（Ｕ）が十分小さくなるように、面Ｓの変形および対応点の探索を繰り返し、面のフィッティングを行う。例えば、Ｅ（Ｕ）のＵに関する微分が０に近づく方向にフィッティングを行う。
【００４７】
さて、ここまでの説明では、各点Ｐｋの信頼性が同等であり、点群の信頼性を同等に扱った評価関数Ｅ（Ｕ）を導いたが、次に、点Ｐｋの信頼性に基づく重み付けを行った評価関数Ｅ（Ｕ）について説明する。
【００４８】
すなわち、全ての点Ｐｋのデータが信頼できるものとは限らないので、式（１）に示したフィッティングエネルギー関数を用いた場合には、信頼性の低い部分の影響を受けてしまって望ましくないフィッティング結果が導かれる場合がある。しかし、信頼性の低い点Ｐｋを削除してしまった場合には、削除した点Ｐｋのあった箇所において、点群の本来の形状を保てなくなることがあり、これも望ましくない。
【００４９】
そこで、点群内における各点Ｐｋの信頼性の要素を、各対応関係の重みとして導入し、式（１）を次の式（１’）のように変更する。
【００５０】
【数５】
0004292678.tif 000006
ここで、ρｋは、点Ｐｋの信頼性を示す。信頼性ρｋとして、上に述べた信頼性データＤＲを用いることができる。Ｗ（ρｋ）は信頼性ρｋから重みを求める関数である。
【００５１】
一般に、信頼性をｘとした場合に、Ｗ（ｘ）は、信頼性ｘの高いもの（ｘの小さいもの）には大きい重みを、信頼性ｘの低いもの（ｘの大きいもの）には小さい重みをそれぞれ与える関数である。そのような関数は、例えば、次の式（４）で与えられる。
【００５２】
Ｗ（ｘ）＝１／（１＋ｘ）n   ……（４）
ここで、ｎは信頼性に対する重み係数である。また、ｘ＞０である。
例えば、信頼性ｘとして、上に述べた信頼性データＤＲである画素数を用いた場合に、ずれがない場合にはｘ＝０であるから、重みＷ（ｘ）は１となる。ｘ＝１の場合には重みＷ（ｘ）は１／２n となり、ｘ＝２の場合には重みＷ（ｘ）は１／３n となる。このように、信頼性が低下すると（ｘが増大すると）、重みＷ（ｘ）は零に近づく。そのため、面Ｓは、各点Ｐｋの信頼性に応じて変形されることとなる。
【００５３】
上の式（１’）を、式（３）におけるフィッティングエネルギー関数Ｅｆ（Ｕ）として用いる。これによって、信頼性の高い点Ｐｋについてはより精度の高いフィッティングが行われ、信頼性の低い点については信頼性の高い部分に大きい影響を与えないようなフィッティングが行われる。
【００５４】
例えば、図８（Ｃ）（Ｄ）に示すように、６つの点Ｐ１〜６のうち、点Ｐ１，２の信頼性が大きく、点Ｐ３〜６の信頼性が低い場合に、面Ｓは各点Ｐ１〜６の信頼性に応じて変形される。本実施形態によって変形された面Ｓｃ，Ｓｄは、信頼性を考慮しなかった図８（Ａ）に示す面Ｓａ、および信頼性の低い点を削除した図８（Ｂ）に示す面Ｓｂと比較すると、点群による形状が信頼性の程度に応じて反映され、点群の形状が保たれ、且つ突出した変形が抑えられていることが分かる。
【００５５】
図４において、変形処理では、まず、点Ｐｋに対応する点Ｑｋを計算で求め、点Ｐｋと点Ｑｋの組みを作成する（＃２１）。
面Ｓを変形し（＃２２）、変形後の評価関数Ｅ（Ｕ）を計算する（＃２３）。評価関数Ｅ（Ｕ）が収束するまで（＃２４でイエス）、処理を繰り返す。
【００５６】
評価関数Ｅ（Ｕ）の収束を判定する方法として、評価関数Ｅ（Ｕ）が所定の値よりも小さくなったときを収束とする方法、前回の計算と比較べた変化の割合が所定値以下となったときに収束とする方法など、公知の方法を用いることが可能である。
【００５７】
上に述べたように、本実施形態では、点Ｐｋの集合からなる点群に面Ｓをフィッティングする際に、各点Ｐｋの信頼性情報に基づいて点群への面Ｓのフィッティングの度合いを変更する。したがって、信頼性の低い点Ｐｋが含まれている場合であっても、そのような信頼性の低い点Ｐｋにひきずられて異常な変形や誤った変形の行われることが防止され、適切なフィッティングが行われる。
【００５８】
また、本実施形態では、信頼性が低い点Ｐｋであってもそれを削除することなく、その点Ｐｋの信頼性の程度に応じて面Ｓの変形が行われ、したがって点群の本来の形状が反映されることとなる。そのため、信頼性の低い点Ｐｋを削除する方法と比べた場合に、より適切なフィッティングが行われることとなる。
【００５９】
なお、上に述べた実施形態では、点群を構成する各点の信頼性を判断し、その判断結果に基づいて各点の重みを変更するものを示しているが、例えば、点群を構成する所定の領域毎に信頼性を判断し、その判断結果に基づいてその領域内に存在する全ての点の重みをまとめて変更することももちろん可能である。
【００６０】
上に述べた実施形態において、モデリング装置１の構成、回路、処理内容、処理順序、処理タイミング、係数の設定などは、本発明の趣旨に沿って適宜変更することができる。
【００６１】
【発明の効果】
本発明によると、信頼性の低い点が含まれている場合に、信頼性の低い点にひきずられて異常な変形や誤った変形の行われることができるだけ防止され、適切なフィッティングが行われることとなる。
【図面の簡単な説明】
【図１】本発明に係るモデリング装置を示すブロック図である。
【図２】対象物の３次元データを取得する方法の例を説明する図である。
【図３】モデリング装置の全体の処理の流れを示すフローチャートである。
【図４】変形処理を示すフローチャートである。
【図５】標準モデルの例を示す図である。
【図６】標準モデルの面Ｓと３次元データの点Ｐとを模式的に示す図である。
【図７】標準モデルの異常変形を防ぐための仮想バネを説明するための図である。
【図８】点Ｐに対する面Ｓの種々のフィッティングの例を示す図である。
【符号の説明】
１  モデリング装置（フィッティングする装置）
１０  処理装置
２１  重み付け処理部
２２  変形処理部
Ｐｋ  点（点群）
Ｓ  面
ＤＲ  信頼性データ
【図１】
0004292678.tif 000007
【図２】
0004292678.tif 000008
【図３】
0004292678.tif 000009
【図４】
0004292678.tif 000010
【図５】
0004292678.tif 000011
【図６】
0004292678.tif 000012
【図７】
0004292678.tif 000013
【図８】
0004292678.tif 000014