(57)【要約】      （修正有）【課題】カメラを移動させることなく、１台のカメラで撮像した画像から物体の３次元形状を推定する３次元形状測定装置を提供する。【解決手段】物体を撮像して得られた第一の画像データを取得するＳ６０１。また、物体の３次元形状を示すパラメータを含む再現モデルをコンピュータグラフィックスで再現して得られた第二の画像データを取得するＳ６０７。パラメータを変更しながらこれらの画像データを比較することによりＳ６０８、再現モデルのパラメータを調整する。【選択図】図６
2015197374.tif 000002
【特許請求の範囲】
【請求項１】
物体を撮像して得られた第一の画像データを取得する第一取得手段と、
前記物体の３次元形状を示すパラメータを含む再現モデルを生成する生成手段と、
前記再現モデルをコンピュータグラフィックスで再現して得られた第二の画像データを取得する第二取得手段と、
前記第一の画像データと前記第二の画像データとを比較することにより、前記再現モデルのパラメータを調整する調整手段と
を備える３次元形状推定装置。
【請求項２】
前記生成手段は、前記調整手段で調整されたパラメータに基づいて再現モデルを再生成する請求項１に記載の３次元形状推定装置。
【請求項３】
前記調整手段は、前記調整されたパラメータに基づく第二の画像データと前記第一の画像データとの比較を繰り返すことによって前記再現モデルのパラメータを調整する請求項２に記載の３次元形状推定装置。
【請求項４】
前記調整手段は、前記比較の結果、前記第一の画像データと前記第二の画像データとの間の差が所定の閾値より小さい場合、前記第二の画像データの元となる再現モデルのパラメータを前記物体の形状を示すパラメータとして推定する請求項１から３のいずれか一項に記載の３次元形状推定装置。
【請求項５】
前記パラメータは頂点座標を示し、
前記調整手段は、前記第一の画像データと前記第二の画像データとの間の差が前記閾値より小さくなく、かつ、前記比較の回数が第一の回数より少ない場合、前記頂点座標の座標位置を変更し、
前記生成手段は、前記変更された座標位置で再現モデルを再生成する請求項４に記載の３次元形状推定装置。
【請求項６】
前記調整手段は、前記第一の画像データと前記第二の画像データとの間の差が前記閾値より小さくなく、かつ、前記比較の回数が前記第一の回数より少なくない場合、前記頂点座標の数を追加し、
前記生成手段は、前記追加された頂点座標を含む頂点座標で再現モデルを再生成する請求項５に記載の３次元形状推定装置。
【請求項７】
前記調整手段は、前記追加された頂点座標の座標位置を変更し、
前記生成手段は、前記追加されかつ変更された頂点座標の座標位置で再現モデルを再生成する請求項６に記載の３次元形状推定装置。
【請求項８】
前記調整手段は、前記比較の回数が第二の回数に達した場合、それまでに得られた比較結果の中で、前記第一の画像データと前記第二の画像データとの間の差が小さい場合における前記第二の画像データの元となる再現モデルのパラメータを前記物体の形状を示すパラメータとして推定する請求項１から７のいずれか一項に記載の３次元形状推定装置。
【請求項９】
前記生成手段は、前記第一の画像データと同じサイズ、同じ色、同じ模様、同じコンテンツが設定された再現モデルを生成する請求項１から８のいずれか一項に記載の３次元形状推定装置。
【請求項１０】
前記第二の画像データ取得手段は、前記第一の画像データと同じ画角を有する第二の画像データを取得する請求項１から９のいずれか一項に記載の３次元形状推定装置。
【請求項１１】
前記再現モデルに対して、評価領域を設定する設定手段をさらに備え、
前記調整手段は、前記評価領域ごとの画像データの比較により前記評価領域ごとにパラメータを調整する請求項１から１０のいずれか一項に記載の３次元形状推定装置。
【請求項１２】
前記調整手段は、前記比較の結果、前記第一の画像データと前記第二の画像データとの間の差が所定の閾値よりも高い評価領域のパラメータを調整する請求項１１に記載の３次元形状推定装置。
【請求項１３】
時間的に連続した複数フレーム中の物体の３次元形状を推定する３次元形状推定装置であって、
ｔ番目のフレームにおいて物体を撮像して得られた第一の画像データを取得する第一取得手段と、
ｔ−１番目のフレームの３次元形状を示すパラメータを含む再現モデルを生成する生成手段と、
前記再現モデルをコンピュータグラフィックスで再現して得られた第二の画像データを取得する第二取得手段と、
前記第一の画像データと前記第二の画像データとを比較することにより、前記再現モデルのパラメータを調整する調整手段と
を備える３次元形状推定装置。
【請求項１４】
物体を撮像して得られた第一の画像データを取得する第一取得ステップと、
前記物体の３次元形状を示すパラメータを含む再現モデルを生成する生成ステップと、
前記再現モデルをコンピュータグラフィックスで再現して得られた第二の画像データを取得する第二取得ステップと、
前記第一の画像データと前記第二の画像データとを比較することにより、前記再現モデルのパラメータを調整する調整ステップと
を備える３次元形状推定方法。
【請求項１５】
時間的に連続した複数フレーム中の物体の３次元形状を推定する３次元形状推定方法であって、
ｔ番目のフレームにおいて物体を撮像して得られた第一の画像データを取得する第一ステップと、
ｔ−１番目のフレームの３次元形状を示すパラメータを含む再現モデルを生成する生成ステップと、
前記再現モデルをコンピュータグラフィックスで再現して得られた第二の画像データを取得する第二取得ステップと、
前記第一の画像データと前記第二の画像データとを比較することにより、前記再現モデルのパラメータを調整する調整ステップと
を備える３次元形状推定方法。
【請求項１６】
コンピュータを、請求項１から１３のいずれか一項に記載の３次元形状推定装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の３次元形状を推定する技術に関する。
【背景技術】
【０００２】
従来、物体の３次元形状を取得する技術として、被写体にマーカを付与した状態で複数の視点から被写体を撮像し、それぞれの撮像画像中のマーカの位置関係から形状を推定する技術がある。
【０００３】
特許文献１では、被写体に干渉縞を発生させて異なる角度から複数回撮像を行い、干渉縞を等高線とみたてることで、奥行き、即ち３次元形状を推定する技術が開示されている。
【０００４】
また、特許文献２では、ステッピングモータの回転角度を制御しながらビデオカメラによって被写体を撮像する。これにより得られた各回転角度ごとの画像とステッピングモータの回転角度とに基づき、被写体の表面にある特徴点の動きを検出する。検出した特徴点の動きにより被写体の回転軸を検索し、この回転軸を元にして被写体の３次元形状情報を作成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１１８４４２号公報
【特許文献２】特開平８−１４８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、カメラを複数台使用するか、あるいは、１台のカメラを移動させながら複数視点からの撮像を行う必要があった。
【課題を解決するための手段】
【０００７】
本発明に係る３次元形状推定装置は、物体を撮像して得られた第一の画像データを取得する第一取得手段と、前記物体の３次元形状を示すパラメータを含む再現モデルを生成する生成手段と、前記再現モデルをコンピュータグラフィックスで再現して得られた第二の画像データを取得する第二取得手段と、前記第一の画像データと前記第二の画像データとを比較することにより、前記再現モデルのパラメータを調整する調整手段とを備える。
【発明の効果】
【０００８】
本発明によれば、カメラを移動させることなく、１台の撮像装置で撮像した画像から物体の３次元形状を推定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例における３次元形状を推定するシステムにおける構成の例を示す図である。
【図２】本発明の実施例におけるメイン処理装置のシステム構成例を示すブロック図。
【図３】紙を簡易モデル化した概念図。
【図４】本発明の実施例におけるＣＧ再現の概要を示した図。
【図５】本発明の実施例における３次元形状推定処理を行なう構成例を示すブロック図。
【図６】実施例１における３次元形状を取得する処理の一例を示したフローチャート。
【図７】実施例１における実写画像とＣＧ画像の例を示す図。
【図８】実施例１における頂点座標の更新の様子を示す図。
【図９】実施例１における頂点の追加の様子を示す図。
【図１０】実施例２における領域の分割例を示す図。
【図１１】実施例２における３次元形状を取得する処理の一例を示したフローチャート。
【図１２】実施例２における頂点の追加結果を示す図。
【図１３】実施例３における再現モデルの初期値の設定方法を示す図。
【図１４】実施例３における３次元形状を取得する処理の一例を示したフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して、本発明を好適な実施例に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１１】
本実施例では、非剛性の物体の３次元形状を推定する手法について記述する。なお、本実施例では、非剛性物体として紙を用いた場合の処理について説明する。非剛体物体とは、３次元形状が変化する物体のことである。
【００１２】
図１は、本実施例におけるシステムの構成例を示す図である。図１（ａ）は、本実施例の画像処理装置を含むシステム構成例を示す図である。本システムは、３次元形状推定装置であるメイン処理装置１０１と、カメラ装置１０２とを有する。様々な計算処理や、機器制御を行うメイン処理装置１０１に、紙を撮像するカメラ装置１０２が接続されている。カメラ装置１０２とメイン処理装置１０１とは、ＵＳＢ線(Universal Serial Bus)で接続されている。この接続線を用いて、メイン処理装置１０１からカメラ装置１０２への撮像命令信号の送信や、カメラ装置１０２からメイン処理装置１０１への撮像画像データの送信を行う。また、本システムにおいては台座１０３が設置され、その上に紙１０４を載せることができる。
【００１３】
図１（ｂ）は、本実施例における座標系を示した図である。台座１０３の中心部を原点Ｏとし、ｘ，ｙ，ｚの座標系を構成している。なお、座標系はメートル単位である。
【００１４】
図２は、メイン処理装置１０１の構成例を示すブロック図である。メイン処理装置１０１は、ＣＰＵ２０１、メインメモリ２０２、記憶装置２０３、ＧＰＵ２０４、及びカメラ入力ボード２０５を有する。ＣＰＵ２０１は、演算処理や各種プログラムの実行を行う。メインメモリ２０２は、処理に必要なプログラム、データ、作業領域などをＣＰＵ２０１に提供する。記憶装置２０３は、各種データ、プログラムを蓄積する装置で、通常は、ハードディスクが用いられる。ＧＰＵ(Graphic processing unit)２０４は、ＣＧ(コンピュータグラフィックス)レンダリングを行う際に用いられる。ＧＰＵ２０４は並列演算処理に特化しているため、ＣＰＵ２０１よりも高速にレンダリングを実行できる。カメラ入力ボード２０５は、ＵＳＢ線でカメラ装置１０２と接続する基盤装置で、カメラ装置１０２に対し各種信号命令を送信する。また、カメラ入力ボード２０５はカメラ装置１０２から撮像画像データの受信も行う。
【００１５】
図３は、紙１０４を簡易モデル化した概念図である。紙１０４は、再現モデル３０１に示すように、複数の頂点と複数の頂点で形成されるポリゴンとで構成されるメッシュ構造をとる。各頂点は３次元の座標値を持っており、これらの頂点座標により、紙の大きさや形、つまり３次元形状が決まる。
【００１６】
図４は、本実施例におけるＣＧ再現の概要を示す図である。図４（ａ）は、図３で説明した紙の再現モデル３０１を、ＣＧ上で表示する手法を説明した図である。初めに、座標系を決定する必要があるが、これは、図１（ｂ）の座標系をそのまま用いる。つまり、台座１０３と同じサイズで生成した、台座モデル４０３の中心を原点とするｘｙｚ座標系をとる。そこに、カメラ装置１０２と同じ位置に、仮想カメラ４０１をＣＧ空間上に設置する。このとき、仮想カメラ４０１の画角はカメラ装置１０２と同じ値にしておく。次に、台座モデル４０３を台座１０３と同じサイズでＣＧ上に設置する。そして、紙１０４と同じサイズ、同じ色、同じ模様、同じコンテンツの再現モデル３０１を、紙１０４と同じ位置に、ＣＧ上に設置する。このとき、図４（ｂ）のように、球状の頂点は描画せず、４つの頂点に囲まれた四角形を、２つのポリゴン（三角形）に分割して表示処理を行う。これにより、より紙１０４に近い表示が行える。カメラやモデルなどの設置が完了すると、仮想カメラ４０１から見た映像のレンダリング処理を行う。レンダリング処理は、以下の式１に沿って実行される。  
Image = Screen(  Proj * View * Pos(x,y,z)  )    式１
式１において、Ｐｏｓ（ｘ，ｙ，ｚ）は、各モデルのｘｙｚ座標系における位置を示す。Ｖｉｅｗは、視点変換行列であり、仮想カメラ４０１の位置、撮像方向を示す。ここで、仮想カメラ４０１の位置、撮像方向は、カメラ装置１０２と合わせておく。Ｐｒｏｊは、３次元から２次元への射影行列であり、仮想カメラ４０１の画角と、クリップ領域を示す。ここで、仮想カメラ４０１の画角は、カメラ装置１０２と合わせておく。また、クリップ領域は、前方クリップ面４０４と、後方クリップ面４０５で囲まれた台形領域を表し、この領域のみがレンダリング対象となる。Ｓｃｒｅｅｎ（）は、レンダリング結果を格納する画像データに合わせて座標系を変換する。以上の操作により、仮想カメラから見た映像を、画像データに変換することができる。なお、この他にも、ＣＧ画像をより実写画像に近付ける処理として、モデルに陰影をつけるライティング処理を行っても良い。このとき、実写環境とＣＧ空間で、光源位置を合わせることにより、より実写に近いＣＧ画像を生成できる。
【００１７】
図５は、本実施例における物体の３次元形状を推定する処理を行なうブロックの一例を示す図である。メイン処理装置１０１は、制御部５０６を有する。制御部５０６は、実写画像データ取得部５０１と、再現モデル生成部５０２と、ＣＧ画像データ生成部５０３と、比較部５０４と、パラメータ調整部５０５とを有する。本実施例において図５に示す各部に対応するプログラムが記憶装置２０３に格納されている。ＣＰＵ２０１及びＧＰＵ２０４がこれらのプログラムをメインメモリ２０２上で実行することで、図５に示す各部として機能させる。
【００１８】
図６は、本実施例におけるメイン処理装置を用いて紙の３次元形状を取得するフローを示したフローチャートである。本処理に必要なプログラム等は、あらかじめ記憶装置２０３からメインメモリ２０２に展開されており、実行待機状態にあるものとする。また、紙１０４のサイズは、あらかじめデータとして与えているものとする。図５のブロック図と図６のフローチャートを用いて本実施例の処理を説明する。
【００１９】
ステップＳ６０１で実写画像データ取得部５０１は、第一の画像データとして実写画像データを取得する。例えば、制御部５０６はカメラ装置１０２に対し撮像命令を送信し、撮像を実行させる。撮像が完了すると、制御部５０６はカメラ装置１０２に対し、画像取得命令を送信し、実写画像データを受信し、メインメモリ２０２に展開する。実写画像データ取得部５０１は、メインメモリに展開された実写画像データを取得する。なお、制御部５０６は、カメラ装置１０２におけるレンズの歪みを補正するためのレンズ補正処理も合わせて行う。実写画像データ取得部５０１は、メインメモリに展開された実写画像データを取得する。このときの実写画像の例を図７に示す。実写画像７０１には、変形した紙１０４や、台座１０３が撮像されている。
【００２０】
ステップＳ６０２で再現モデル生成部５０２は、紙１０４のサイズに合わせ、再現モデル３０１をメインメモリ２０２上に構成する。この際に、再現モデル３０１を構成するメッシュの頂点数と各頂点座標の初期値も決定し、メインメモリ２０２上に記憶させておく。
【００２１】
ステップＳ６０３で制御部５０６は、実写画像データとＣＧ画像データとの誤差に対する閾値Ｔｈをメインメモリ２０２に設定する。Ｔｈの値が小さいほど３次元形状の推測精度は上がるが、解が収束しない可能性が高くなる。そのため、推測処理の最大試行回数Ｎ（第二の回数）を決めておく。また、試行回数を記録する変数ｎをメインメモリ２０２に生成する。
【００２２】
ステップＳ６０４で制御部５０６は、頂点座標を変更する際の最大変更回数Ｓ（第一の回数）を入力する。以下で説明するように、初期に設定した頂点座標をある程度更新しても誤差が縮まらない場合、本実施例では頂点を追加する処理を行なう。そこで、このある程度更新する際の基準として最大変更回数Ｓを設定する。また、頂点座標の変更回数を記録する変数ｓをメインメモリ２０２に生成する。ステップＳ６０５で制御部５０６は、変数ｎを０に初期化する。ステップＳ６０６で制御部５０６は、変数ｓを０に初期化する。
【００２３】
ステップＳ６０７でＣＧ画像データ生成部５０３は、仮想カメラ視点からの第二の画像データであるＣＧ画像データを生成する。ＣＧ画像データ生成部５０３は、レンダリングに必要なデータを取得する。レンダリングに必要なデータは、図４において説明した通りであり、記憶装置２０３から一旦メインメモリ２０２に読み込まれ、ＧＰＵ２０４に転送され、ＧＰＵ２０４によって機能されるＣＧ画像データ生成部５０３が取得する。この際に、再現モデル３０１における各頂点座標も取得する。その後、図４において説明したように仮想カメラ４０１でＣＧレンダリングを行い、ＣＧ画像データを生成し、メインメモリ２０２上に展開する。このとき、ＣＧ画像データと実写画像データの画素数を一致させておく。生成したＣＧ画像の例を、図７に示す。ＣＧ画像７０２では、実写画像７０１と同様に変形した再現モデル３０１や、台座モデル４０３がレンダリングされている。図７に例示したように、この時点のＣＧ画像は、３次元形状が十分に再現されていない。以下では、実写画像とＣＧ画像との差を少なくする再現モデルのパラメータを算出することで、３次元形状を推定できるようにする。
【００２４】
ステップＳ６０８で比較部は、ステップＳ６０１で生成した実写画像７０１を表す実写画像データと、Ｓ６０７で生成したＣＧ画像７０２を表すＣＧ画像データとの誤差Ｅを算出する。誤差Ｅの算出方法としては、画像データ間の二乗誤差を算出する。前述したように、再現モデル３０１には、紙１０４と同じサイズ、同じ色、同じ模様、同じコンテンツが設定されているため、差分を計算することで誤差を評価することができる。このとき、再現モデル３０１の頂点部分に相当する画像領域のみの差分値を算出することで、計算時間を短縮することもできる。
【００２５】
ステップＳ６０９で比較部５０４は、誤差Ｅが所定の閾値Ｔｈより小さいかどうかを判定する。ＹＥＳの場合は処理を終了し、ＮＯの場合は、ステップＳ６１０へ進む。また、試行回数ｎが最大試行回数Ｎよりも大きい場合も処理を終了する。なお、試行回数がｎ＞Ｎの条件で処理が終了した場合、試行した比較結果の中で最も誤差の小さい場合の頂点座標値を推測解とする。Ｅ＜Ｔｈの条件で処理が終了した場合は、そのときの頂点座標値を推測解とする。
【００２６】
ステップＳ６１０で比較部５０４は、頂点座標の変更回数ｓが最大変更回数Ｓより小さいかどうかを判定する。ＹＥＳの場合はステップＳ６１１へと進み、ＮＯの場合はステップＳ６１３へと進む。ステップＳ６１１で制御部５０６は、頂点座標の変更回数ｓを１だけインクリメントする。
【００２７】
ステップＳ６１２でパラメータ調整部５０５は、再現モデル３０１の各頂点の３次元座標に対して新たな座標値を設定して座標位置を変更し、再びステップＳ６０７へと戻る。新たな座標値は乱数などを用いて決定する。ここで、紙のサイズや面積はあらかじめデータとして与えられているため、これらを拘束条件として新たな値の設定を行う。その後、新たな座標値に基づいてＣＧ画像データを再生成し、前述の処理を繰り返すことになる。図８に頂点座標の変更の様子を示す。頂点座標の変更回数ｓが増えるに従って、各頂点の３次元座標がランダムに更新されていく。図８の例では、ｓ＝１０となった時に、誤差Ｅが閾値Ｔｈを下回っているため、ステップＳ６０９の条件式において終了条件を満たすことになる。よって、この場合の推定値は、ｓ＝１０の時の各頂点の座標値となる。この各頂点の座標値が紙の３次元形状を示すパラメータである。
【００２８】
一方、頂点座標の変更回数ｓが最大変更回数Ｓ以上の場合、ステップＳ６１３で制御部は、試行回数ｎを１だけインクリメントする。
【００２９】
ステップＳ６１４でパラメータ調整部５０５は、再現モデル３０１に対して頂点の追加を行い、再びステップＳ６０６へと戻る。図９に頂点の追加の様子を示す。このように、例えば各頂点の間にさらに頂点を追加する形で頂点の追加を行う。追加された各頂点の座標は他の座標同様にメインメモリ２０２に記憶する。そして、先に説明したように、追加された頂点を含む各頂点の座標を変更して誤差が少ない頂点の座標値を求める。
【００３０】
このように、実写画像とＣＧ画像を比較することにより、紙の３次元形状を取得することができる。
【００３１】
なお、本実施例では、ランダムに各頂点の座標を更新しながら推定解を探索する方法について説明したが、このような方法では収束に時間がかかることが予想される。そのため、遺伝的アルゴリズムのような探索アルゴリズムを用いて、より高速に推定解を求めるような方法を用いることも可能である。例えば、遺伝的アルゴリズムでは、各頂点の座標をそれぞれ個体と捉えて遺伝子表現することによって、推定を行うことができる。
【実施例２】
【００３２】
実施例１では、画像データの全体像を用いて誤差を評価する例を説明した。実施例２では、誤差の評価を領域ごとに行うことによって、推定時間の短縮と３次元形状データのデータサイズ削減を行う方法について説明する。なお、装置等に関しては、実施例１と同じであるため説明は省略する。
【００３３】
図１０は、本実施例における評価領域の設定例を示す図である。図１０に示すように、再現モデル３０１に対し、領域Ａ、領域Ｂ、領域Ｃ、領域Ｄの４つの評価領域を設定する。本実施例では、実写画像データとＣＧ画像データとの誤差を算出する際に、この評価領域ごとに誤差を算出し、評価を行う。なお、本実施例では領域の設定数は４つとして説明するが、もちろんこれに限るものではない。他の設定数、あるいは領域分割の仕方を使用しても構わない。
【００３４】
図１１は、本実施例における紙の３次元形状を取得するフローを示したフローチャートである。本処理に必要なプログラム等は、あらかじめ記憶装置２０３からメインメモリ２０２に展開されており、実行待機状態にあるものとする。また、紙１０４のサイズは、あらかじめデータとして与えているものとする。
【００３５】
ステップＳ１１０１とステップＳ１１０２とは、図６のステップＳ６０１とＳ６０２と同じであるので、説明を省略する。
【００３６】
ステップＳ１１０３で制御部５０６は、紙の再現モデルに対して図１０に示すように評価領域を設定する。後述するステップＳ１１０９の誤差を算出するステップでは、ここで設定した評価領域ごとに誤差の計算を行うことになる。
【００３７】
ステップＳ１１０４からステップＳ１１０８までの処理は、ステップＳ６０３からＳ６０７までの処理と同じであるので、説明を省略する。
【００３８】
ステップＳ１１０９で比較部５０４は、ステップＳ１１０１で生成した実写画像データと、ステップＳ１１０８で生成したＣＧ画像データに対して、ステップＳ１１０３で設定した評価領域ごとに誤差Ｅｉを算出する。ここで、添え字のｉは、評価領域のインデックスを示している。誤差Ｅｉの算出方法としては、評価領域に対応する部分の画像データ間の二乗誤差を算出する。実施例１において説明したように、再現モデル３０１には、紙１０４と同じサイズ、同じ色、同じ模様、同じコンテンツが設定されているため、差分を計算することで誤差を評価することができる。このとき、再現モデル３０１の頂点部分に相当する画像領域のみの差分値を算出することで、計算時間を短縮することもできる。
【００３９】
ステップＳ１１１０で比較部５０４は、全ての評価領域に対して、誤差Ｅｉが閾値Ｔｈより小さいかどうかを判定する。全ての評価領域においてこの条件を満たす場合は処理を終了し、満たさない場合は、ステップＳ１１１１へ進む。また、試行回数ｎが最大試行回数Ｎよりも大きい場合も処理を終了する。なお、試行回数がｎ＞Ｎの条件で処理が終了した場合、試行した中で最も誤差の小さい頂点座標値を推測解とする。Ｅｉ＜Ｔｈの条件で処理が終了した場合は、そのときの頂点座標値を推測解とする。
【００４０】
ステップＳ１１１１で比較部５０４は、頂点座標の変更回数ｓが最大変更回数Ｓより小さいかどうかを判定する。ＹＥＳの場合はステップＳ１１１２へと進み、ＮＯの場合はステップＳ１１１４へと進む。ステップＳ１１１２で制御部５０６は、頂点座標の変更回数ｓを１だけインクリメントする。
【００４１】
ステップＳ１１１３でパラメータ調整部５０５は、ステップＳ１１１０において、評価領域の誤差Ｅｉが閾値Ｔｈよりも大きかった領域に対して、再現モデル３０１の各頂点の３次元座標に対して新たな座標値を設定し、再びステップＳ１１０８へと戻る。ステップＳ１１１０において、評価領域の誤差Ｅｉが閾値Ｔｈよりも小さかった領域に対しては、各頂点座標の更新は行わない。新たな座標値は例えば乱数などを用いて決定する。ここで、紙のサイズや面積はあらかじめデータとして与えられているため、これらを拘束条件として新たな値の設定を行う。頂点座標更新処理の詳細については実施例１で説明したためここでは省略する。
【００４２】
ステップＳ１１１４で制御部５０６は、試行回数ｎを１だけインクリメントする。ステップＳ１１１５でパラメータ調整部５０５は、ステップＳ１１１０において、評価領域の誤差Ｅｉが閾値Ｔｈよりも大きかった領域に対して、再現モデル３０１に対して頂点の追加を行い、再びステップＳ６０６へと戻る。ステップＳ１１１０において、評価領域の誤差Ｅｉが閾値Ｔｈよりも小さかった領域に対しては、頂点の追加処理は行わない。追加された各頂点の座標は他の座標同様にメインメモリ２０２に記憶する。図１２は、例として領域Ｂの誤差が閾値Ｔｈよりも大きかった場合の、頂点の追加結果を示す図である。
【００４３】
このように、評価領域を設定し、領域ごとに実写画像とＣＧ画像を比較することにより、紙の３次元形状を高速に推定し、かつ３次元形状データのデータサイズを削減することができる。
【００４４】
なお、実施例１でも説明したように、推定解の探索方法として、遺伝的アルゴリズムのような探索アルゴリズムを用いてもよい。
【実施例３】
【００４５】
本実施例では、時間的に連続して紙が動いた際の各フレームごとの紙の３次元形状を推定する場合に、推定時間を短縮する方法について説明する。なお、装置等に関しては、実施例１と同じであるため説明は省略する。
【００４６】
時間的に連続して紙が動いた場合の各フレーム中の紙の３次元形状は、前後のフレームと相関が非常に高いことが予想される。そこで、本実施例では、先頭のフレームの３次元形状の推定処理には実施例１または２で説明した方法を用いる。そして、それ以降のフレームの推定処理には、図１３に示すように再現モデル３０１の初期値に１つ前のフレームの推定結果を設定するという方法をとる。これにより推定時間の短縮を図る。なお、各フレームにおいて推定された３次元形状データはメインメモリ２０２に記憶されているものとする。
【００４７】
図１４は、本実施例における時間的に連続した複数フレーム中の紙の３次元形状を推定するフローを示したフローチャートである。
【００４８】
ステップＳ１４０１で制御部５０６は、メイン処理装置１０１からカメラ装置１０２に対し撮像命令を送信し、ｔ番目のフレーム画像の撮像を実行させる。撮像が完了すると、制御部５０６はカメラ装置１０２に画像取得命令を送信し、ｔ番目のフレームの実写画像データを受信し、メインメモリ２０２に展開する。制御部５０６は、カメラ装置１０２におけるレンズの歪みを補正するためのレンズ補正処理も合わせて行う。実写画像データ取得部５０１はｔ番目のフレーム画像を実写画像データとして取得する。
【００４９】
ステップＳ１４０２で制御部５０６は、メインメモリ２０２から、ｔ−１番目のフレームの３次元形状の推定結果を取得する。
【００５０】
ステップＳ１４０３で再現モデル生成部５０２は、ステップＳ１４０２で取得したｔ−１番目のフレームの３次元形状の推定結果を、再現モデル３０１の各頂点の初期値として設定し、メインメモリ２０２上に構成する。
【００５１】
これ以降のステップは、実施例１の図４のフローチャートと同様であるため、説明を省略する。
【００５２】
このように、１つ前のフレームの３次元形状の推定結果を再現モデルの初期値として使用することによって、時間的に連続して紙が動いた際の各フレームごとの紙の３次元形状の推定時間を短縮することができる。
【００５３】
＜その他の実施例＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００５４】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015197374.tif 000003
【図２】
2015197374.tif 000004
【図３】
2015197374.tif 000005
【図４】
2015197374.tif 000006
【図５】
2015197374.tif 000007
【図６】
2015197374.tif 000008
【図７】
2015197374.tif 000009
【図８】
2015197374.tif 000010
【図９】
2015197374.tif 000011
【図１０】
2015197374.tif 000012
【図１１】
2015197374.tif 000013
【図１２】
2015197374.tif 000014
【図１３】
2015197374.tif 000015
【図１４】
2015197374.tif 000016