(57)【特許請求の範囲】
【請求項１】
複数の画像を撮影したときのカメラと物体との相対位置関係および結像に係る光学パラメータを示す撮影条件データを取得することにより、物体を視点を変えて撮影して得た複数の画像から前記物体に対応した部分である物体領域を抽出する画像データ処理方法であって、
第１の方向から前記物体を撮影した第１の二次元画像を得るステップと、
前記第１の二次元画像から前記物体が写っている領域を第１の物体領域として抽出するステップと、
前記第１の方向とは異なる第２の方向から前記物体を撮影した第２の二次元画像を得るステップと、
前記第１の物体領域と前記第１の二次元画像の撮影時の撮影条件データが示すカメラ位置に基づく射影行列とで定まる第１の視体積を前記第２の二次元画像に投影するステップと、
前記第２の二次元画像における前記第１の視体積が投影された領域内から、前記物体が写っている領域を第２の物体領域として抽出するステップと、
前記第１および第２の方向とは異なる第３の方向から前記物体を撮影した第３の二次元画像を得るステップと、
前記第２の物体領域と前記第２の二次元画像の撮影時の前記撮影条件データが示すカメラ位置に基づく射影行列とで定まる第２の視体積、および前記第１の視体積を前記第３の二次元画像に投影するステップと、
前記第３の二次元画像における投影された前記第１および第２の視体積が重なる領域内から、前記物体が写っている領域を第３の物体領域として抽出するステップとを有し、
３以上の二次元画像からの物体領域の抽出を二次元画像毎に順次行い、２番目以降の二次元画像からの抽出に際しては、それ以前に抽出された物体領域に基づく視体積の投影された範囲内から物体領域を抽出する
ことを特徴とする画像データ処理方法。
【請求項２】
前記第１、第２または第３の物体領域を、当該物体領域を有した二次元画像についてのデータ処理によって修正するステップを有する
請求項１記載の画像データ処理方法。
【請求項３】
前記第１、第２または第３の物体領域を、当該物体領域を有した二次元画像における当該物体領域以外の部分である背景領域の色情報を用いて修正するステップを有する
請求項１記載の画像データ処理方法。
【請求項４】
複数の画像を撮影したときのカメラと物体との相対位置関係および結像に係る光学パラメータを示す撮影条件データを取得することにより、物体を視点を変えて撮影して得た複数の画像から前記物体に対応した部分である物体領域を抽出する画像データ処理装置であって、
第１の方向から前記物体を撮影した第１の二次元画像を得る手段と、
前記第１の二次元画像から前記物体が写っている領域を第１の物体領域として抽出する手段と、
前記第１の方向とは異なる第２の方向から前記物体を撮影した第２の二次元画像を得る手段と、
前記第１の物体領域と前記第１の二次元画像の撮影時の撮影条件データが示すカメラ位置に基づく射影行列とで定まる第１の視体積を前記第２の二次元画像に投影する手段と、
前記第２の二次元画像における前記第１の視体積が投影された領域内から、前記物体が写っている領域を第２の物体領域として抽出する手段と、
前記第１および第２の方向とは異なる第３の方向から前記物体を撮影した第３の二次元画像を得る手段と、
前記第２の物体領域と前記第２の二次元画像の撮影時の前記撮影条件データが示すカメラ位置に基づく射影行列とで定まる第２の視体積、および前記第１の視体積を前記第３の二次元画像に投影する手段と、
前記第３の二次元画像における投影された前記第１および第２の視体積が重なる領域内から、前記物体が写っている領域を第３の物体領域として抽出する手段とを有し、
３以上の二次元画像からの物体領域の抽出を二次元画像毎に順次行い、２番目以降の二次元画像からの抽出に際しては、それ以前に抽出された物体領域に基づく視体積の投影された範囲内から物体領域を抽出する
ことを特徴とする画像データ処理装置。
【請求項５】
前記第１、第２または第３の物体領域を修正する手段を有する
請求項４記載の画像データ処理装置。
【請求項６】
前記物体領域を修正する手段は、前記第１の視体積を投影した前記第２の二次元画像または前記第１および第２の視体積を投影した前記第３の二次元画像を表示する機能をもつ
請求項５記載の画像データ処理装置。
【請求項７】
複数の画像を撮影したときのカメラと物体との相対位置関係および結像に係る光学パラメータを示す撮影条件データを取得することにより、物体を視点を変えて撮影して得た複数の画像に基づいて当該物体の３次元形状を推定するモデリング方法であって、
第１の方向から前記物体を撮影した第１の二次元画像を得るステップと、
前記第１の二次元画像から前記物体が写っている領域を第１の物体領域として抽出するステップと、
前記第１の方向とは異なる第２の方向から前記物体を撮影した第２の二次元画像を得るステップと、
前記第１の物体領域と前記第１の二次元画像の撮影時の撮影条件データが示すカメラ位置に基づく射影行列とで定まる第１の視体積を前記第２の二次元画像に投影するステップと、
前記第２の二次元画像における前記第１の視体積が投影された領域内から、前記物体が写っている領域を第２の物体領域として抽出するステップと、
前記第１および第２の方向とは異なる第３の方向から前記物体を撮影した第３の二次元画像を得るステップと、
前記第２の物体領域と前記第２の二次元画像の撮影時の前記撮影条件データが示すカメラ位置に基づく射影行列とで定まる第２の視体積、および前記第１の視体積を前記第３の二次元画像に投影するステップと、
前記第３の二次元画像における投影された前記第１および第２の視体積が重なる領域内から、前記物体が写っている領域を第３の物体領域として抽出するステップと、
仮想空間において前記第１、第２および第３の二次元画像に投影したときに前記抽出された第１、第２および第３の物体領域内に入る立体の形状を前記物体の３次元形状と推定するステップと、を有する
ことを特徴とするモデリング方法。
【請求項８】
複数の画像を撮影したときのカメラと物体との相対位置関係および結像に係る光学パラメータを示す撮影条件データを取得することにより、物体を視点を変えて撮影して得た複数の画像に基づいて当該物体の３次元形状を推定するモデリング装置であって、
第１の方向から前記物体を撮影した第１の二次元画像を得る手段と、
前記第１の二次元画像から前記物体が写っている領域を第１の物体領域として抽出する手段と、
前記第１の方向とは異なる第２の方向から前記物体を撮影した第２の二次元画像を得る手段と、
前記第１の物体領域と前記第１の二次元画像の撮影時の撮影条件データが示すカメラ位置に基づく射影行列とで定まる第１の視体積を前記第２の二次元画像に投影する手段と、
前記第２の二次元画像における前記第１の視体積が投影された領域内から、前記物体が写っている領域を第２の物体領域として抽出する手段と、
前記第１および第２の方向とは異なる第３の方向から前記物体を撮影した第３の二次元画像を得る手段と、
前記第２の物体領域と前記第２の二次元画像の撮影時の前記撮影条件データが示すカメラ位置に基づく射影行列とで定まる第２の視体積、および前記第１の視体積を前記第３の二次元画像に投影する手段と、
前記第３の二次元画像における投影された前記第１および第２の視体積が重なる領域内から、前記物体が写っている領域を第３の物体領域として抽出する手段と、
仮想空間において前記第１、第２および第３の二次元画像に投影したときに前記抽出された第１、第２および第３の物体領域内に入る立体の形状を前記物体の３次元形状と推定する手段と、を有する
ことを特徴とするモデリング装置。
【請求項９】
複数の画像を撮影したときのカメラと物体との相対位置関係および結像に係る光学パラメータを示す撮影条件データを取得することにより、物体を視点を変えて撮影して得た複数の画像に基づいて当該物体の３次元形状を推定するモデリングコンピュータプログラムであって、
コンピュータを
第１の方向から前記物体を撮影した第１の二次元画像を得る手段、
前記第１の二次元画像から前記物体が写っている領域を第１の物体領域として抽出する手段、
前記第１の方向とは異なる第２の方向から前記物体を撮影した第２の二次元画像を得る手段、
前記第１の物体領域と前記第１の二次元画像の撮影時の撮影条件データが示すカメラ位置に基づく射影行列とで定まる第１の視体積を前記第２の二次元画像に投影する手段、
前記第２の二次元画像における前記第１の視体積が投影された領域内から、前記物体が写っている領域を第２の物体領域として抽出する手段、
前記第１および第２の方向とは異なる第３の方向から前記物体を撮影した第３の二次元画像を得る手段、
前記第２の物体領域と前記第２の二次元画像の撮影時の前記撮影条件データが示すカメラ位置に基づく射影行列とで定まる第２の視体積、および前記第１の視体積を前記第３の二次元画像に投影する手段、
前記第３の二次元画像における投影された前記第１および第２の視体積が重なる領域内から、前記物体が写っている領域を第３の物体領域として抽出する手段、
および、仮想空間において前記第１、第２および第３の二次元画像に投影したときに前記抽出された第１、第２および第３の物体領域内に入る立体の形状を前記物体の３次元形状と推定する手段として機能させる
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の撮影画像から被写体に対応した部分を抽出する画像データ処理方法および装置に関する。
【０００２】
【従来の技術】
コンピュータグラフィックス、工業デザイン、Ｗｅｂ用の３Ｄコンテンツの作成などの各種の分野において、物体の立体形状をデータ化する３次元入力システムが用いられている。
【０００３】
３次元入力の手法の１つにシルエット法（Shape from Silhouette ）がある。これは、対象物を撮影した複数の画像を用い、各画像から対象物の遮蔽輪郭（シルエット）を抽出し、抽出結果と撮影位置情報とから３次元形状を推定する手法である。シルエット法の適用例として、特公平５−６４３９３号公報には、仮想３次元空間にボクセルと呼称される形状要素が集まった仮想物体を配置し、撮影の視点と遮蔽輪郭とで決まる視体積どうしの共通部分を求め、その共通部分に該当するボクセルを連結することによって物体の形状を再構成する技術が記載されている。
【０００４】
【発明が解決しようとする課題】
シルエット法による物体形状の再構成の精度は、各画像からの遮蔽輪郭の抽出の正確さに依存する。現状では、完全な自動の画像処理によってユーザーの要求を満たす抽出結果を得るのは難しく、ユーザーによる指示または修正が必須である。対象物や背景についての知識を利用する高度な画像処理を用いれば抽出精度は幾分高まるものの、知識入力に手間がかかったり、対象物が限られたり、システムが高価になったりする問題がある。また、背景として均一色の幕を置いて撮影した画像から色判別（クラスタリング）で遮蔽輪郭を抽出する手法を用いたとしても、実際には影や照明むらなどにより背景色が均一とはならないので、部分的な抽出の誤りは避けられない。
【０００５】
一方、シルエット法による物体形状の再構成において、物体形状を詳細にかつ正しく復元するには、物体表面のできるだけ多くの部位が遮蔽輪郭として画像に現れる必要がある。曲率の大きい曲面については種々の位置から撮影しなければならない。このため、複雑な起伏をもつ対象物の場合には、必要な画像数は極めて多くなる。
【０００６】
従来では、物体形状の再構成に必要な画像数にほぼ比例して、遮蔽輪郭の抽出に要する処理時間が長くなり且つ抽出結果を修正するユーザーの作業負担が増大するという問題があった。
【０００７】
本発明は、複数の画像について領域抽出を行う際の総所要時間の短縮を図ることを目的としている。
【０００８】
【課題を解決するための手段】
本発明においては、複数の画像についての領域抽出を画像毎に順に行い、２番目以降の画像についての領域抽出に際して、それ以前の領域抽出の結果を反映させることによって抽出対象範囲を限定する。抽出処理の順位が下位になるほど、より多くの画像についての抽出結果が反映されて抽出対象範囲が狭まるので、抽出処理時間が短くなる。その結果、各画像について他の画像との関連を考慮せずに独立に領域抽出を行う場合と比べて、複数の画像についての領域抽出の総所要時間が短縮される。
【０００９】
抽出結果の反映は、抽出された領域と画像を撮影したときの視点とで決まる視体積を、処理対象の画像に投影することによって実現される。すなわち、撮影の対象物と複数の画像のそれぞれに対応した撮影位置との相互位置関係に基づいて複数の画像を仮想３次元空間に配置し、ある画像についての領域抽出で得られた視体積が他の画像のどこに対応するかを調べる。視体積は遮蔽輪郭を通る視線で囲まれる錐状の空間であって、対象物はこの視体積の中に存在するので、視体積の投影像の範囲内に抽出すべき領域が必ず存在する。したがって、領域抽出の対象範囲は画像のうちの視体積が投影された部分に絞られる。投影の精度を高めるには、撮影位置の情報とともに、撮影に係る結像条件（光学パラメータ）を取得する必要がある。全ての撮影を１つのカメラで行う場合はそのカメラの光学パラメータが必要であり、複数のカメラを用いる場合はそれらカメラの光学パラメータが必要である。
【００１０】
【発明の実施の形態】
図１は本発明に係るモデリングシステムの構成図である。
モデリングシステム１００は、ディジタルカメラ１０、照明灯２０、回転台３０、カメラ校正用の冶具４０、回転軸校正用の冶具５０、およびコンピュータ６０から構成される。ディジタルカメラ１０は、回転台３０の上に置かれた対象物９０を撮影する。撮影は対象物９０との相対位置を変えて複数回行われる。対象物９０を撮影した複数の画像はコンピュータ６０へ送られ、対象物９０のモデリングに用いられる。画像の各画素はＲＧＢの色ベクトル値を表す。コンピュータ６０は、本体６１、ディスプレイ６２、キーボード６３、およびマウス６４を有したデータ処理システムである。コンピュータ６０には、ＣＲ−ＲＯＭ６７または他の媒体６８に記録されているプログラムがインストールされている。このプログラムは、コンピュータ６０を画像データ処理装置およびモデリング装置として機能させる。画像データ処理装置は、図８に示す３つのブロック６０１，６０２，６０３からなり、複数の画像のそれぞれから対象物９０に対応した部分である物体領域を抽出する。モデリング装置は、ブロック６０１，６０２，６０３とブロック６０４からなり、抽出された物体領域に基づいて形状を再構成する。ブロック６０１は、撮影時のディジタルカメラ１０と対象物９０との相対位置関係および結像に係る光学パラメータを示す撮影条件データＤ１を取得する。ブロック６０２は、１つの画像における物体領域を、他の画像から抽出された物体領域および撮影条件データＤ１に基づいて推定する。ブロック６０３は、操作入力に従って物体領域を修正する。ブロック６０４は、複数の画像から抽出され且つ修正された物体領域と撮影条件データＤ１とに基づいて対象物９０の３次元形状を推定する。ディジタルカメラ１０とコンピュータ６０との間では、ケーブルまたは赤外線通信によるオンラインのデータ受渡し、および可搬型記録媒体によるオフラインのデータ受渡しが可能である。
【００１１】
回転台３０は既知の色（Ｃｒ）で塗装されている。回転台３０は冶具４０の前に置かれ、その回転角はケーブルを通じてコンピュータ６０により制御される。モデリングシステム１００のユーザーは、マウス６４を操作することによって回転台３０の回転角を調整することができる。冶具４０は既知の色（Ｃｂ）で彩色された面に別の色で細い格子状の線を描いた剛性の物体である。冶具４０の各格子点と当該冶具４０における基準位置との相対的な３次元位置関係は既知である。冶具４０の基準位置を原点とする３次元座標系は、コンピュータ６０のメモリ上に構築される仮想空間におけるワールド座標を定義する。ディジタルカメラ１０は三脚によって支持され、回転台３０の上に置かれた対象物９０または冶具５０を画角内に収めるように配置される。オンラインのデータ受渡しでは、ユーザーのマウス操作に呼応してコンピュータ６０がディジタルカメラ１０からカラー画像を取り込む。ディジタルカメラ１０の位置および姿勢は三脚を動かすことによって変更することができ、撮影の画角はズーム調整によって設定することができる。冶具５０は、冶具４０と同様に単色で彩色された面に別の色で細い格子状の線を描いた剛性の物体である。冶具５０においても、各格子点と基準位置との相対的な３次元位置関係は既知である。この冶具５０の基準位置を原点とする３次元座標系は、対象物９０を基準とするオブジェクト座標を定義する。回転台３０を回転させることは対象物９０に対して相対的にカメラを移動させることと等価であるので、オブジェクト座標を媒介として、各回の撮影の視点位置を基準とするカメラ座標どうしの相対運動を記述することができる。照明灯２０は、対象物９０または冶具５０に影ができないように回転台３０を照らすように配置される。
【００１２】
図２はモニター表示の画面構成を示す図である。ディスプレイ６２の表示面６２０には、２つの表示領域（ウインドウ）６２１，６２２が設けられる。表示領域６２１には、ディジタルカメラ１０から入力された画像７０、または画像７０に後述する領域抽出の処理結果である抽出領域を重ねた合成画像が表示される。抽出領域は、必要に応じてユーザがマウス６４を用いて単位領域の削除または付加を行うことによって修正することができる。また、表示領域６２２には、仮想空間中で復元される仕掛かり段階または完成した３次元形状モデル８０が、テクスチャマッピングされて表示される。ユーザーはマウス操作により３次元形状モデル８０を見る仮想空間中の仮想カメラの位置・姿勢・画角などを変更できる。また、ユーザーはテクスチャマッピング表示に代えてシェーディング表示を行うこともできる。シェーディング表示では、仮想空間中の仮想光源の配置をマウス操作により任意に設定することができる。
【００１３】
図３はモデリングの概略の手順を示すフローチャートである。
〔１〕ステップ＃１００において冶具５０の設定を行う。ユーザーは、回転台３０の冶具５０をその少なくとも２つの面がディジタルカメラ１０の視野に入るように置く。
〔２〕ステップ＃１０２において冶具５０の撮影を行う。回転台３０を回転角θ0の状態にして撮影を行い、続けてディジタルカメラ１０を動かさず視点を固定したまま回転台３０を回転させて回転角θ0’の状態で撮影する。これにより２つの画像Ｉ0，Ｉ0’を得る。
〔３〕ステップ＃１０４において、回転軸の校正を行う。画像Ｉ0が表示された状態において、ユーザーはマウス６４を操作してカメラ校正用の冶具４０の格子点の一つにカーソルを合わせてクリックするとともに、予め定められている格子点番号を入力する。これを複数の格子点について行った後、ユーザーはワールド座標と画像Ｉ0の画素座標との幾何学的な関係を与える射影行列Ｐ0の計算をコンピュータ６０に指示する。計算方法としては、Ｏ．Ｆａｕｇｅｒａｓ，“Ｔｈｒｅｅ‐Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ−Ａ  Ｇｅｏｍｅｔｒｉｃ  Ｖｉｅｗｐｏｉｎｔ”，ＭＩＴ  Ｐｒｅｓｓ，１９９６の第３章に記載されたものがある。コンピュータ６０は、回転角θ0におけるワールド座標からの３×４射影行列Ｐ0を求め、この射影行列Ｐ0を３×３内部パラメータ行列Ａ0、３×３回転行列Ｒ0、および３次元平行移動ベクトルｔ0に分解する。すなわち、ここでの処理は、ワールド座標値を（Ｘw，Ｙw，Ｚw）、回転角θ0のカメラの画像座標値を（ｘ0，ｙ0）としたとき、以下の式を満たす射影行列Ｐ0、内部パラメータ行列Ａ0、回転行列Ｒ0、平行移動ベクトルｔ0を求めることに等しい。
【００１４】
【数１】
0004395689.tif 000002
【００１５】
これにより、ワールド座標（Ｘw ，Ｙw ，Ｚw ）から回転角θ0 のカメラでのカメラ座標（Ｘ0 ，Ｙ0 ，Ｚ0 ）への変換は以下のように与えられるので、Ｒ0 ，ｔ0 をコンピュータ６０のメモリ上に保存しておく。
【００１６】
【数２】
0004395689.tif 000003
【００１７】
次に、Ｐ0 の場合と同様に、画像Ｉ0 について、回転角θ0 におけるオブジェクト座標からの射影行列Ｏ0 、内部パラメータ行列Ｂ0 、回転行列Ｑ0 、および平行移動ベクトルｓ0 を求める。
さらに、同様にして、画像Ｉ0 ’について、回転角θ0 ’におけるオブジェクト座標からの射影行列Ｏ0 ’、内部パラメータ行列Ｂ0 ’、回転行列Ｑ0 ’、および平行移動ベクトルｓ0 ’を求める。回転軸上の点（ｏx ，ｏy ，ｏz ）の回転角θ0 のカメラでのカメラ座標表現は、以下の式を満たす（ｏx ，ｏy ，ｏz ）として計算される。
【００１８】
【数３】
0004395689.tif 000004
【００１９】
ここで、４次ベクトル（ｏx ，ｏy ，ｏz ，１）t は、行列Ｔの固有値１に対応する固有ベクトルに対応する。また、回転軸の単位法線ベクトル（ｎx ，ｎy ，ｎz ）t の回転角θ0 のカメラでのカメラ座標表現は、行列Ｑ0 ’Ｑ0 t の固有値１に対応する単位固有ベクトルとして計算されるが、このとき以下の式で求めた値の符号がｓｉｎ（θ0 ’−θ0 ）と異なる場合は求めたベクトル（ｎx ，ｎy ，ｎz ）t の符号を反転する。
【００２０】
【数４】
0004395689.tif 000005
【００２１】
計算された回転軸のパラメータ（ｎx ，ｎy ，ｎz ）および（ｏx ，ｏy ，ｏz ）はコンピュータ６０のメモリに保存される。
〔４〕ステップ＃１０６において対象物の設定を行う。回転台３０に対象物９０の全体がディジタルカメラ１０の視野に映るように置く。必要に応じて位置ずれを防ぐために対象物９０をテープなどで固定する。
〔５〕ステップ＃１０８において３次元形状データを初期化する。仮想空間中に、ユーザーが大きさと個数を指定したボクセルを立体的に並べて配置する。このとき、ボクセルの配置範囲が対象物９０が存在すると予想される仮想空間の範囲より十分に大きくなるようにする。
〔６〕ステップ＃１１０においてカメラ位置を設定する。ユーザーは、ディジタルカメラ１０の位置や姿勢を変更したり、回転台３０を回転させたりすることによって、対象物９０とディジタルカメラ１０との相対的位置関係を決める。このとき、コンピュータ６０は、回転台３０の回転角θi を自動的にメモリに書き込んで保存する。
〔７〕ステップ＃１１２において撮影を行う。ディジタルカメラ１０により対象物９０を撮影し、対象物９０のｉ番目（ｉ＝２，３，４，…）の画像Ｉi を得る。
〔８〕ステップ＃１１４においてカメラ校正を行う。ステップ＃１０４と同様に、画像Ｉi について、ユーザーがマウス６４を操作して、カメラ校正用の治具４０の複数の格子点を指定すると、コンピュータ６０は次の計算を行う。まず、新たなカメラ視点ｉのカメラの回転角θ0 におけるワールド座標からの３×４射影行列Ｐi ’を求め、射影行列Ｐi ’を３×３内部パラメータ行列Ａi 、３×３回転行列Ｒi ’、および３次元平行移動ベクトルｔi ’に分解する。次に回転台３０の回転を考慮し、以下のようにしてカメラ視点ｉのカメラの回転角θi での射影行列Ｐi を計算し、Ｐi 、および、それを分解したパラメータＡi 、Ｒi 、ｔi をコンピュータ６０のメモリに保存する。
【００２２】
【数５】
0004395689.tif 000006
【００２３】
〔９〕ステップ＃１１６において、物体領域を抽出する。図４（ａ）が示すように、抽出処理対象として注目する画像７２（ｉ番目の画像Ｉj）に対して、既に処理を終えた画像７１〔ｊ（ｊ＝１，２，…，ｉ−１）番目の画像Ｉj〕における物体領域７１０とその外側との境界（遮蔽輪郭）を通る視線で囲まれる視体積Ｖ７１を投影し、画像７２における投影像領域７２１を計算する。投影像領域７２１を対象に色判別を行って物体領域７２０を抽出し、ディスプレイ６２における上述の表示領域６２１に抽出結果を表示する。ユーザーは必要に応じてマウス操作によって抽出結果を修正する。このように注目する１つの画像について抽出処理を行う時点で既に複数の画像から物体領域が抽出されている場合には、これら複数の画像を参照する。すなわち、注目する画像に複数の視体積を投影し、投影像領域どうしが重なる範囲を求める。そして、投影像領域どうしが重なる範囲を対象に色判別を行って物体領域を抽出する。図４（ｂ）では、画像７３における物体領域７３１に対応した視体積Ｖ７３と、画像７４における物体領域７４１に対応した視体積Ｖ７４とが画像７５に投影されている。画像７５における物体領域７５０は、視体積Ｖ７３に対応した投影像領域７５３と視体積Ｖ７４に対応した投影像領域７５４との重なり範囲７５７に完全に含まれる。
〔１０〕ステップ＃１１８において３次元形状データを更新する。上述のステップ＃１１４で求められた画像Ｉiに対応する射影行列Ｐiを使って、図５のように仮想空間中のボクセルをすべて画像Ｉiに投影し、物体領域７２０内に完全に入るボクセルだけを残し、その他のボクセルをすべて消去する。
〔１１〕ステップ＃１２０において３次元形状データを表示する。米国特許４７１０８７６“Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ｔｈｅ  Ｄｉｓｐｌａｙ  ｏｆ  Ｓｕｒｆａｃｅ  Ｓｔｒｕｃｔｕｒｅｓ  Ｃｏｎｔａｉｎｅｄ  ｗｉｔｈｉｎ  ｔｈｅ  ｉｎｔｅｒｉｏｒ  ｒｅｇｉｏｎ  ｏｆ  ａ  ｓｏｌｉｄ  ｂｏｄｙ”に示されたＭａｒｃｈｉｎｇ  Ｃｕｂｅ法に代表される手法を用いてボクセルデータをポリゴンメッシュに変換する。表示形態の指定に応じて、テクスチャマッピングまたはシェーディング処理をした３次元形状モデルを表示する。
〔１２〕ステップ＃１２２において処理続行の要否を判断する。ユーザーは、ディスプレイ６２に表示された３次元形状モデルと実際の対象物９０を見比べてみて、十分に形状が複元されていると判断した場合は、処理の終了をコンピュータ６０に指示する。復元された形状が不十分であると判断した場合は処理の続行を指示する。後者の場合は、ステップ＃１１０に戻って以前と異なる位置または姿勢の撮影を行う。
【００２４】
図６は物体領域抽出の詳細手順を示すフローチャートである。
〔１〕ステップ＃２００において参照画像を初期化する。物体領域の抽出に利用する参照画像として、既に物体領域の抽出を終えた画像の中の一つを選ぶ。
〔２〕ステップ＃２０２において未参照画像をチェックする。参照可能な画像のすべてを使用したか否かを調ベ、既にすべて参照している場合はステップ＃２０８へ進む。参照していない画像があればステップ＃２０４に進む。
〔３〕ステップ＃２０４において視体積を投影する。画像Ｉj の物体領域Ｓj と他との境界を任意の点から反時計周りに辿りながら境界を通る視線を順次画像Ｉi に投影していき、画像Ｉi に投影された視線が走査する領域の両端となる投影視線の係数ベクトルｍjl+ ，ｍjl- をコンピュータ６０のメモリに保存する。画像Ｉj に複数の物体領域Ｓj が存在するときは、それぞれの物体領域Ｓj l （ｌ＝１，２，…，Ｍj ）について上記手順に従って両端となる投影視線の係数ベクトルｍjl+ ，ｍjl- をコンピュータ６０のメモリに保存する。詳細は後述する。
〔４〕ステップ＃２０６において次の参照画像を設定する。次の参照画像として、参照可能でかつ未参照のものの一つを選ぶ。
〔５〕ステップ＃２０８において、視体積の投影像領域どうしの重なりを決定する。画像Ｉi の画素ｐk （ｋ＝１，２，…，Ｎj ）のうち、以下の２つの条件式のいずれかを満たす画素領域を求める。この領域は投影像領域の交わり領域ｖとなり、求める物体領域は基本的にはこの領域に含まれる。求められた交わり領域ｖ内の画素の値が１で、それ以外の画素値が０である２値画像Ｈi を作成し、コンピュータ６０のメモリに保存しておく。
条件式１
【００２５】
【数６】
0004395689.tif 000007
【００２６】
条件式２
【００２７】
【数７】
0004395689.tif 000008
【００２８】
このとき、画素ｐk の座標値は（ｘk ，ｙk ）で与えられているものとする。
〔６〕ステップ＃２１０において色判別を行う。２値画像Ｈi の対応する画素値が１であり、かつ、画像Ｉi の対応する画素値が以下の条件を満たす画素領域を求め、求めた画素領域に対応する画素の値が１で、他の画素の値が０であるような２値画像Ｇi を作成する。
【００２９】
【数８】
0004395689.tif 000009
【００３０】
ここで、ｃb ，ｃr はそれぞれ冶具４０の色Ｃｂの色ベクトル、回転台３０の色Ｃｒの色ベクトルを表し、ｃk は画素ｐk の色ベクトルを表す。ｔb ，ｔr はユーザーにより与えられる閾値定数である。
得られた２値画像Ｇi に対してモルフォロジー演算のオープニング処理を行い、処理結果を保存しておく。この２値画像の値が１である画素は、物体領域に属すると推定された画素である。モルフォロジー演算のオープニング処理は、冶具４０上に描かれた格子状の線を抽出結果から排除するために行われる。
〔７〕ステップ＃２１２において物体領域を表示する。２値画像Ｈi の対応する画素値が１である領域の画素値が交わり領域表示色Ｃｏを表すベクトルで、それ以外の領域の画素値が背景表示色Ｃｇを表すベクトルであるような画像Ｉj ’を作成する。次に、画像Ｉj ’と画像Ｉj の対応する各画素の色を予め決められた割合で混合した色を各画素の色とする画像Ｊi を作成する。そして、２値画像Ｇi の画素値が１である画素領域の境界を、画像Ｊi 上に点線で描き、表示領域６２１に表示する。
〔８〕ステップ＃２１４においてユーザーが修正の要否を判断する。ユーザーは、表示領域６２１の表示内容を見て、実際の物体領域と点線で境界が示される抽出領域とが異なると判断したときは、所定のマウス操作を行ってコンピュータ６０にステップ＃２１６に進むように指示をする。修正すべき個所がないと判断したときは、コンピュータ６０に上述のステップ＃１１８に進むように指示する。
〔９〕ステップ＃２１６において物体領域を修正する。実際の物体領域より抽出領域がはみ出している場合、ユーザーは、マウス６４をドラッグしてはみ出した領域をカーソルでなぞることにより、はみ出した部分に対応する２値画像Ｇi の画素値を０にすることができる。また、実際の物体領域より抽出された領域が欠けていると判断した場合は、マウス６４をドラッグして欠けている領域をカーソルでなぞることにより、欠けている部分に対応する２値画像Ｇi の画素値を１にすることができる。画像Ｊi はステップ＃２１２と同様にして変更される。通常は、投影された視体積の交わり領域ｖは実際の物体領域を完全に包含するので、ユーザーは視体積の交わりの外の領域を修正する必要がなく、ユーザーの負担は軽減される。また、修正する必要のない領域の面積は、一般に後で領域抽出される画像ほど大きくなるので、ユーザーの修正の負担も領域抽出を各画像に行っていくにつれて減っていく。
【００３１】
図７は視体積の投影の詳細手順を示すフローチャートである。
〔１〕ステップ＃３００においてＦ行列計算を行う。画像Ｉi ，Ｉj 間のＦ行列を以下の式により求める。
【００３２】
【数９】
0004395689.tif 000010
【００３３】
ここで、Ｆは３×３の行列である。次の方程式を満たす画像Ｉi 上の点（ｘi ，ｙi ）の集合は、画像Ｉj の画像座標（ｘj ，ｙj ）を通る視線を画像Ｉi に投影した直線を表す。
【００３４】
【数１０】
0004395689.tif 000011
【００３５】
この直線ｅj はエピポーラ線と呼ばれる。画像Ｉi 上に投影された画像Ｉi の視線は、エピポールと呼ばれる画像Ｉi 上の１つの点を通る。画像Ｉi 上のエピポールの画像座標は、行列Ｆの０固有値に対応する固有ベクトルを（ｅx ，ｅy ，ｅz ）とすれば、（ｅx ／ｅz ，ｅy ／ｅz ）として与えられる。ただし、ｅz が０のときには、エピポールは画像の無限遠の端にあり、画像Ｉi 上のエピポーラ線はすべてベクトル（ｅx ，ｅy ）に平行な直線となる。また、画像Ｉj 上のエピポールは、行列Ｆt の０固有値に対応する固有ベクトルから同様にして求められる。
〔２〕ステップ＃３０２において、未処理境界画素の有無をチェックする。画像Ｉj において、物体領域の境界画素がすべて処理されているかどうか調ベ、すべて処理されていればステップ＃２０６に戻る。未処理の境界画素が存在するときはステップ＃３０４へ進む。
〔３〕ステップ＃３０４において未処理の境界画素を選択する。画像Ｉj において、未処理の１番目の物体領域Ｓj l の境界画素のうちから任意の１つを選ぶ。
〔４〕ステップ＃３０６においてエピポーラ面の計算を行う。画像Ｉi のカメラ座標で表された３次元空間中の点の座標を（Ｘi ，Ｙi ，Ｚi ）とし、ステップ＃３０４で選ばれた境界画素の座標値を（ｘj ，ｙj ）とすると、画像Ｉj の点（ｘj ，ｙj ）を通る視線と画像Ｉi のカメラの視点とで決定される平面の方程式は、以下のようにして計算できる。
【００３６】
【数１１】
0004395689.tif 000012
【００３７】
この方程式で定められる平面Ｅj をエピポーラ面と呼称する。エピポーラ面と画像の投影面の交わりがエピポーラ線ｅj となる。この方程式のＸi ，Ｙi ，Ｚi の係数を要素とするベクトルを単位ベクトル化したｎj をコンピュータ６０のメモリにより保存する。ベクトルｎj はエピポーラ面Ｅj の法線方向を示す。
〔５〕ステップ＃３０８において、エピポーラ面の姿勢計算を行う。次の式により、エピポーラ面Ｅj の法線が、画像Ｉi のカメラの光軸と成す角度θj を求める。
【００３８】
【数１２】
0004395689.tif 000013
【００３９】
〔６〕ステップ＃３１０において、両端のエピポーラ線を更新する。エピポーラ面Ｅj に対応する画像Ｉi 上のエピポーラ線ｅj 上には物体領域が存在する可能性があるので、物体領域Ｓj l に対応するエピポーラ線の存在範囲の両端を以下のようにして追跡する。
エピポーラ面Ｅj に対応するエピポーラ線ｅj は、パラメータ（ｘi ，ｙi ）に関する次の方程式として与えられる。
【００４０】
【数１３】
0004395689.tif 000014
【００４１】
物体領域Ｓj l に対応する両端のエピポーラ線ｅjl+ ，ｅjl- の係数ベクトルｍjl+ ，ｍjl- が保存されていないときは、無条件にエピポーラ線ｅj の係数ベクトルを、ｍjl+ ，ｍjl- として保存する。すなわち、
【００４２】
【数１４】
0004395689.tif 000015
【００４３】
とする。また、このとき同時に処理ステップ＃３０８で求めた角度θj をエピポーラ線ｅjl+ ，ｅjl- に対応するエピポーラ面の角度θil+ ，θil- としてコンピュータ６０のメモリに保存する。すなわち、
【００４４】
【数１５】
0004395689.tif 000016
【００４５】
とする。
既に両端のエピポーラ線の係数ベクトルｍjl+ ，ｍjl- が保存されている場合は、ｍjl+ およびθil+ をθj がθil+ より大きいときのみ更新し、ｍjl- およびθil- をθj がθil- より小さいときのみ更新する。すなわち、
【００４６】
【数１６】
0004395689.tif 000017
【００４７】
とする。
〔７〕ステップ＃３１２において隣接境界画素を選択する。選択されている境界画素から境界を反時計周りに辿って次の境界画素を選択する。
〔８〕ステップ＃３１４において、物体領域の境界を一周したか否かをチェックする。新しく選択された境界画素が既に処理済みであれば、１番目の物体領域Ｓj l の境界画素はすべて処理済みであるので、ステップ＃３０２に戻り、他の物体領域の境界画素の処理を始める。まだ、処理されていないときは、ステップ＃３０６に戻る。
【００４８】
以上の実施形態において次ような変形例がある。
〔変形例１〕冶具４０および回転台３０の色を既知とせず、物体領域の抽出に際してステップ＃２１０を省略し、ユーザーの操作によって物体領域を抽出するようにしてもよい。この変形例を採用しても、投影された視体積の交わり領域は実際の物体領域を完全に包含するので、ユーザーは余分な物体領域を消去するだけでよく、新たに物体領域を追加する必要がない。また、複雑な操作手順に煩わされる頻度が少ないという利点がある。
〔変形例２〕冶具４０および回転台３０の色を既知とせず、ステップ＃２１０において、既知として与えられるべき色を視体積の交わり領域の外側の画像領域からのサンプリングにより取得してもよい。こうすることにより、システムは照明環境の変動に影響されにくくなる。
〔変形例３〕ディジタルカメラ１０の内部パラメータおよび位置・姿勢パラメータを冶具４０と回転台３０とを用いてオンラインで校正する構成に代えて、冶具を使用せずにカメラの内部パラメータをオフラインで事前に校正しておき、位置・姿勢パラメータを米国特許０５４０２５８２“Ｔｈｒｅｅ  ｄｉｍｅｎｓｉｏｎａｌ  ｃｏｏｒｄｉｎａｔｅ  ｍｅａｓｕｒｉｎｇ  ａｐｐａｒａｔｕｓ”にあるようにロボットアームの先にデジタルカメラを備え付けて取得してもよい。または、ディジタルカメラ１０に、米国特許０５３０７０７２“Ｎｏｎ‐ｃｏｎｃｅｎｔｒｉｃｉｔｙ  ｃｏｍｐｅｎｓａｔｉｏｎ  ｉｎ  ｐｏｓｉｔｉｏｎ  ａｎｄ  ｏｒｉｅｎｔａｔｉｏｎ  ｍｅａｓｕｒｅｍｅｎｔ  ｓｙｓｔｅｍｓ”にあるような磁気を検知する位置・姿勢センサを取り付けるか、ジャイロセンサと加速度センサを組み合わせて取り付けて、位置・姿勢パラメータを取得してもよい。このとき、変形例１と併用して、完全に任意の背景で処理することも可能である。
〔変形例４〕上述の実施例では、領域抽出の対象画像に他の画像に係る視体積を投影し、その後に投射像領域の交わり領域を求めたが、３次元空間中で視体積の交わりを求めた後、領域抽出の対象として注目する画像にその３次元体積を投影してもよい。すなわち、図３のステップ＃１１６とステップ＃１１８の実行順序を入れ替え、ステップ＃２００〜２０８の代わりに、ステップ＃１１８で更新された３次元形状データを注目画像に投影し、その投影像領域にある画素を処理対象として表す印をつけてもよい。
〔変形例５〕変形例４は抽出された物体領域の修正を２次元画像上で行うものであったが、３次元空間中で視体積の交わりそのものを修正することにより間接的に物体領域の修正を行ってもよい。
〔変形例６〕領域抽出の結果を、対象物の画像中の位置をトラッキングするための情報として用いてもよい。すなわち、カメラを連続的に移動して対象物を撮影した画像列に対して、前の画像でのパラメータを初期値として対象物の輪郭にＳｎａｋｅと呼ばれる輪郭モデルをフィッテングさせる手法（Ｒ．Ｃｉｐｏｌｌａａｎｄ  Ａ．Ｂｌａｋｅ，”Ｔｈｅ  Ｄｙｎａｍｉｃ  Ａｎａｌｙｓｉｓ  ｏｆ  Ａｐｐａｒｅｎｔ  Ｃｏｎｔｏｕｒｓ，”Ｐｒｏｃ．  Ｔｈｉｒｄ  ＩＣＣＶ，１９９０．）を適用する場合に、領域抽出の結果を初期値として利用する。〔変形例７〕ディジタルカメラ１０の内部パラメータおよび位置・姿勢パラメータの校正に冶具４０を使用せず、画像間で物体や背景の任意の対応点を求めてパラメータの校正を行うことも可能である。
【００４９】
【発明の効果】
請求項１ないし請求項９の発明によれば、複数の画像について領域抽出を行う際の総所要時間の短縮を図ることができる。
【図面の簡単な説明】
【図１】本発明に係るモデリングシステムの構成図である。
【図２】モニター表示の画面構成を示す図である。
【図３】モデリングの概略の手順を示すフローチャートである。
【図４】物体領域の抽出方法の概念図である。
【図５】３次元形状モデルの更新の概念図である。
【図６】物体領域抽出の詳細手順を示すフローチャートである。
【図７】視体積の投影の詳細手順を示すフローチャートである。
【図８】画像データ処理装置およびモデリング装置の機能構成を示す図である。
【符号の説明】
９０  対象物（物体）
７１，７２，７３，７４，７５  画像
７１０，７２０，７３０，７４０，７５０  物体領域
１０  ディジタルカメラ
Ｖ７１，Ｖ７３，Ｖ７４  視体積
７５７  重なり範囲（投影像どうしが重なる領域）
６０  コンピュータ（画像データ処理装置、モデリング装置）
Ｄ１  撮影条件データ
【図１】
0004395689.tif 000018
【図２】
0004395689.tif 000019
【図３】
0004395689.tif 000020
【図４】
0004395689.tif 000021
【図５】
0004395689.tif 000022
【図６】
0004395689.tif 000023
【図７】
0004395689.tif 000024
【図８】
0004395689.tif 000025