(57)【要約】【課題】  立体モデルに付与すべきテクスチャを短い処理時間で生成する。【解決手段】  画像取得部１３０は、三次元物体を複数の角度から撮像した撮像画像を取得する。立体モデル生成部１３８は、取得した複数の撮像画像をもとに、三次元物体の立体モデルを生成する。距離計算部１４０は、生成した立体モデルの表面座標点に関し、立体モデルを貫く軸からの距離を算出する。法線演算部１３６は、その軸からの距離に基づいて立体モデルの面法線ベクトルを算出する。テクスチャ情報処理部１４２は、算出した面法線ベクトルに基づいて、取得した複数の撮像画像から立体モデルに付与するために抽出した画像情報をテクスチャ情報として取得する。【選択図】図７
2005215724.tif 000002
【特許請求の範囲】
【請求項１】
三次元物体を複数の角度から撮像した撮像画像を取得する画像取得部と、
前記取得した複数の撮像画像をもとに、前記三次元物体の立体モデルを生成するモデル生成部と、
前記生成した立体モデルの表面座標点に関し、前記立体モデルを貫く軸からの距離を算出する距離計算部と、
前記算出した距離に基づいて前記立体モデルの面法線ベクトルを算出する法線演算部と、
前記算出した面法線ベクトルに基づいて、前記取得した複数の撮像画像から前記立体モデルに付与するために抽出した画像情報をテクスチャ情報として取得するテクスチャ情報取得部と、
を備えることを特徴とするテクスチャ情報生成装置。
【請求項２】
複数の表面座標点に関しそれぞれ算出した前記距離を前記立体モデルを包容する円筒座標系に基づく距離配列情報として格納する距離格納部を更に備え、
前記法線演算部は、前記距離配列情報に基づいて前記面法線ベクトルを算出することを特徴とする請求項１に記載のテクスチャ情報生成装置。
【請求項３】
前記法線演算部は、前記距離配列情報を参照し、前記軸を中心とした回転角度の異なる複数の表面座標点についてそれぞれ算出された前記距離に基づいて面法線ベクトルを算出することを特徴とする請求項２に記載のテクスチャ情報生成装置。
【請求項４】
前記モデル生成部は、前記三次元物体を複数の六面体により表現する立体モデルを生成し、
前記距離計算部は、前記六面体に隣接する別の六面体が存在するか否かに基づいて前記立体モデルの表面座標点を特定することを特徴とする請求項１から３のいずれかに記載のテクスチャ情報生成装置。
【請求項５】
前記距離計算部は、前記立体モデルの表面に位置する六面体の境界線上における表面座標点について前記軸からの距離を算出することを特徴とする請求項４に記載のテクスチャ情報生成装置。
【請求項６】
前記距離計算部は、前記立体モデルの切断面の略重心を貫く軸を設定して、前記軸からの距離を算出することを特徴とする請求項１から５のいずれかに記載のテクスチャ情報生成装置。
【請求項７】
三次元物体を複数の角度から撮像した撮像画像を取得する機能と、
前記取得した複数の撮像画像をもとに、前記三次元物体の立体モデルを生成する機能と、
前記生成した立体モデルの表面座標点に関し、前記立体モデルを貫く軸からの距離を算出する機能と、
前記算出した距離に基づいて前記立体モデルの面法線ベクトルを算出する機能と、
前記算出した面法線ベクトルに基づいて、前記取得した複数の撮像画像から前記立体モデルに付与するために抽出した画像情報をテクスチャ情報として取得する機能と、
をコンピュータに発揮させることを特徴とするテクスチャ情報生成プログラム。
【請求項８】
三次元物体を複数の角度から撮像した撮像画像を取得する画像取得部と、
前記取得した複数の撮像画像をもとに、前記三次元物体の立体モデルを生成するモデル生成部と、
前記生成した立体モデルの表面座標点に関し、前記立体モデルの外部に設定された基準平面からの距離を算出する距離計算部と、
前記算出した距離に基づいて前記立体モデルの面法線ベクトルを算出する法線演算部と、
前記算出した面法線ベクトルに基づいて、前記取得した複数の撮像画像から前記立体モデルに付与するために抽出した画像情報をテクスチャ情報として取得するテクスチャ情報取得部と、
を備えることを特徴とするテクスチャ情報生成装置。
【請求項９】
三次元物体を複数の角度から撮像した撮像画像を取得する機能と、
前記取得した複数の撮像画像をもとに、前記三次元物体の立体モデルを生成する機能と、
前記生成した立体モデルの表面座標点に関し、前記立体モデルの外部に設定された基準平面からの距離を算出する機能と、
前記算出した距離に基づいて前記立体モデルの面法線ベクトルを算出する機能と、
前記算出した面法線ベクトルに基づいて、前記取得した複数の撮像画像から前記立体モデルに付与するために抽出した画像情報をテクスチャ情報として取得する機能と、
をコンピュータに発揮させることを特徴とするテクスチャ情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は三次元モデリング技術に関し、特に、対象物体を撮像して生成される立体モデルにテクスチャ情報を付与するための技術に関する。
【背景技術】
【０００２】
コンピュータの画像表現力の向上や、ネットワークのブロードバンド化により、三次元デジタルコンテンツを取り扱うための土壌は整いつつある。このような時代背景の中、視覚によって感知される外界情報を三次元画像データに変換する技術が求められている。
【０００３】
美術品をアーカイブ化したり、クレイモデルから設計データを取得したり、人間を撮影してその立体像を得るようなとき、実在の対象物体を三次元デジタイズしてモデリングすることがある。コンピュータにより対象物体をモデリングして三次元画像データである立体モデルが生成されると、今度はこの立体モデルに対してテクスチャを付与する必要がある。
【０００４】
たとえば、特許文献１は、そのために立体モデルの表面領域をポリゴン分割して、テクスチャを付与するための技術を開示する。対象物体の三次元モデリングは、ＣＧ処理をするハードウエアの高性能化やオブジェクトデータを伝送する通信帯域の拡大により、今後さらに多くのアプリケーションを獲得していくと思われる。
【特許文献１】特開平１１−１２０３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の代表例として示した立体モデルにテクスチャを付与するための技術には、ポリゴンを生成する処理が必須である。このポリゴン生成処理のための時間がかかると、三次元モデリング処理全体として時間がかかることになる。とくに、ポリゴンを精緻化すると、三次元モデリング処理には更に時間がかかる。このテクスチャ付与に要する時間をいかに短縮できるかは、実用的な三次元モデリング技術を確立する上で極めて重要である。
【０００６】
本発明は、このような課題に鑑みてなされたものであり、その目的は、立体モデルへ付与すべきテクスチャ情報を高速に生成するための技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のテクスチャ情報生成装置は、三次元物体を複数の角度から撮像した撮像画像から立体モデルを生成する。次に、立体モデルを貫く軸から表面座標点までの距離に基づいて、立体モデルの面法線ベクトルを算出する。そして、この面法線ベクトルに基づいて、撮像画像から立体モデルに付与するために抽出した画像情報をテクスチャ情報として取得する。なお、立体モデルの算出すべき面法線ベクトルは、軸からの距離を計算した表面座標点における面法線ベクトルであればよい。テクスチャ情報生成装置は、立体モデルの外部に設定された基準平面からの距離に基づいて、立体モデルの面法線ベクトルを算出してもよい。
【発明の効果】
【０００８】
本発明によれば、立体モデルへ付与すべきテクスチャ情報を高速に生成できる。
【発明を実施するための最良の形態】
【０００９】
図１は、対象物体１０４の撮像画像を取得するためのハードウェア構成を示す図である。対象物体１０４は三次元モデリングの対象となる３次元物体である。１２個のカメラ１０２が同一平面上において３０度間隔で配置されている。すべてのカメラ１０２は対象物体１０４の中心を撮像方向に設定している。対象物体１０４の中心点と各カメラ１０２の距離は等距離である。これにより、計１２方向から１２枚の撮像画像が取得される。テクスチャ情報生成装置１００は、これら複数のカメラ１０２から得られた１２枚の撮像画像から立体モデルを生成する。テクスチャ情報生成装置１００は、専用のコンピュータであってもよいが、通常の計算処理能力を有する汎用的なコンピュータであってもよい。
【００１０】
図２は、三次元モデリングの全般的な処理過程を示すフローチャートである。図１に示したように、カメラ１０２が対象物体１０４を複数の角度から撮像することにより撮像画像が取得される（Ｓ１０）。これらの撮像画像はテクスチャ情報生成装置１００に入力される。テクスチャ情報生成装置１００は、特許文献１に示すボーティング処理により、仮想的なボクセル（voxel）に分割された三次元空間（以下、単に「ボクセル空間」とよぶ）にて立体モデルを生成する（Ｓ１２）。
【００１１】
ボクセルは、直交座標空間におけるＸ、Ｙ、Ｚ軸のそれぞれの方向に空間を等間隔で分割したときに切り出される立方体である。立体モデルはボクセル空間において、ボクセルを単位として積み木状に構成される。換言すれば、立体モデルを包含するボクセル空間内においては、立体モデルに含まれるボクセル（以下、単に「内ボクセル」とよぶ）と立体モデルに含まれないボクセル（以下、単に「外ボクセル」とよぶ）が存在することになる。
【００１２】
テクスチャ情報生成装置１００は、ボクセルによって構成された立体モデルの表面にテクスチャを付与する（Ｓ１４）。テクスチャは立体モデル表面に付与するための色彩情報であり、本装置の場合は、撮像画像から抽出される。これにより、彩色された立体モデルが完成する。本発明は、Ｓ１４におけるテクスチャを立体モデルに付与するための処理に関する。その説明に先立って、本発明の特徴をより明確にするために、従来のテクスチャ付与方法について簡単に説明する。
【００１３】
図３は、従来のポリゴン生成によるテクスチャ付与処理の過程を示すフローチャートである。同フローチャートは、図２のＳ１４の処理をさらに詳細に示すフローチャートである。立体モデルが生成されると、特許文献１に示すポリゴン生成処理により、立体モデルの表面はポリゴンとよばれる三角形状の平面で分割される（Ｓ２０）。次に、設定された一時変数ｉにゼロが代入される（Ｓ２２）。変数ｉは、テクスチャが付与済みのポリゴンを数えるための変数である。
【００１４】
ｉが総ポリゴン数以下であれば（Ｓ２４のＹ）、そのｉ番目のポリゴンにテクスチャが付与される（Ｓ２６）。付与後、ｉはインクリメントされる（Ｓ２８）。ｉが立体モデルの総ポリゴン数以上の数となっていれば（Ｓ２４のＮ）、すべてのポリゴンにテクスチャが付与されたので処理は終了する。
【００１５】
図４は、図３のＳ２６の処理を更に詳細に示すフローチャートである。まず、生成されたポリゴンについての面法線ベクトルが決定される（Ｓ３０）。次に、カメラ１０２が対象物体１０４を撮像した角度とこの面法線ベクトルの角度に応じて、付与すべきテクスチャを含む撮像画像が選択される（Ｓ３２）。選択した撮像画像から、更に、そのポリゴンに対応する位置のテクスチャが抽出される（Ｓ３４）。撮像画像から抽出されたテクスチャはポリゴンに付与される（Ｓ３６）。
【００１６】
ここに示す従来方法においては、図３のＳ２０に示したポリゴン生成処理に時間がかかる。とくに、精緻な立体モデルを生成するためにはポリゴンの総数を増やす必要があるため、さらに処理に時間がかかる。立体モデルの表面をポリゴンにより分割するのは、立体モデルに付与すべきテクスチャを特定するために面法線ベクトルが必要だからである。本発明者は、ポリゴン生成処理を経ることなく面法線ベクトルを特定できれば、三次元モデリング処理時間の大幅な短縮が可能であることに想到した。
【００１７】
図５は、本実施例のテクスチャ情報生成装置１００におけるテクスチャ付与処理の過程を示すフローチャートである。同フローチャートは、図２のＳ１４の処理をさらに詳細に示すフローチャートである。テクスチャ情報生成装置１００は、立体モデル生成後、距離情報を生成する（Ｓ４０）。ここでいう距離情報とは、立体モデルの表面座標点から立体モデルを貫く軸までの距離を、円筒座標系においてマッピングしたものである。詳しくは後述する。次に、テクスチャ情報生成装置１００は距離情報に基づいて、法線情報を生成する（Ｓ４２）。法線情報とは、立体モデルの表面座標点における面法線ベクトルについて、円筒座標系においてマッピングしたものである。これも詳しくは後述する。テクスチャ情報生成装置１００は、この表面座標点に対応づけられた表面座標領域に色彩情報としてテクスチャを付与する。表面座標領域は表面座標点そのものを表す立体モデルの一画素であってもよいし、表面座標点を中心とする矩形領域のように複数の画素によって構成される領域でもよい。結果として、立体モデルの表面は複数の表面座標領域によって分割される。
【００１８】
法線情報が生成されると、テクスチャ情報生成装置１００は一時変数ｉにゼロを代入して初期化する（Ｓ４４）。変数ｉは、テクスチャ付与処理が完了した表面座標点を数えるカウンタの役割を果たす。ｉが表面座標点の総数以下であれば（Ｓ４６のＹ）、テクスチャ情報生成装置１００は、カメラ１０２が対象物体１０４を撮像した角度とそのｉ番目の表面座標点における面法線ベクトルの一致度をもとに、表面座標点に対応する表面座標領域に付与すべきテクスチャを含む撮像画像を選択する（Ｓ４８）。テクスチャ情報生成装置１００は、選択した撮像画像から、更に、その表面座標領域に対応するテクスチャを抽出する（Ｓ５０）。テクスチャ情報生成装置１００は、撮像画像から抽出したテクスチャを表面座標領域に付与する（Ｓ５２）。ｉ番目の表面座標点に対応する表面座標領域にテクスチャが付与されると、ｉはインクリメントされる（Ｓ５４）。ｉが立体モデルにおいてマッピングされた表面座標点の総数以上となっていれば（Ｓ４６のＮ）、処理は終了する。
【００１９】
特許文献１に詳しい従来方法では、立体モデルの表面を多面体表現するため、多面体表現データ形式であるポリゴンを生成する処理が必要であった。そして、生成されたポリゴンごとに面法線ベクトルを求め、この面法線ベクトルをもとに、ポリゴンに対してテクスチャを付与していた。これに対して、本実施例のテクスチャ情報生成装置１００は、円筒座標系において一定間隔に設定できる表面座標点に基づいて面法線ベクトルを求め、表面座標点に対応する表面座標領域にテクスチャを付与する。表面座標領域は表面座標点の座標に基づいて定まる領域であるので、多様な形状のポリゴンを生成するよりも高速に生成できる。
【００２０】
図６は、対象物体１０４を包含する直交座標空間と円筒座標空間について示す模式図である。中心軸１１２は対象物体１０４を貫くよう設定される。この中心軸１１２を中心として円筒座標空間１１０が設定される。円筒座標空間１１０は中心軸１１２を中心として対象物体１０４を包含する円筒座標系で表される空間である。同図に示すように、中心軸１１２と一致する方向にｙ軸が設定される。また、中心軸１１２を中心とした回転角をθで表す。直交座標空間１２０は、対象物体１０４を包含する直交座標系で表される空間である。同図に示すように、ｘ、ｙ、ｚ軸が設定される。直交座標空間１２０のｘ軸方向の幅をｓｉｚｅ＿ｘ、ｙ軸方向の幅をｓｉｚｅ＿ｙ、ｚ軸方向の幅をｓｉｚｅ＿ｚで表す。
【００２１】
図７は、テクスチャ情報生成装置１００の機能ブロック図である。ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２２】
テクスチャ情報生成装置１００は、画像取得部１３０、ユーザインタフェース処理部１３２、制御部１３４、法線演算部１３６、立体モデル生成部１３８、距離計算部１４０、テクスチャ情報処理部１４２およびデータ格納部１５２を含む。データ格納部１５２は更に、撮像画像格納部１５４、立体モデル情報格納部１５６、距離情報格納部１５８および法線情報格納部１６０を含む。
【００２３】
ユーザインタフェース処理部１３２は、ユーザからの操作入力を取得すると共に、ユーザに対して各種情報の表示を行う。制御部１３４は、ユーザインタフェース処理部１３２などからの指示によりテクスチャ情報生成装置１００の各機能ブロックを統括的に制御する。画像取得部１３０は、カメラ１０２から対象物体１０４について複数の撮像画像を取得する。画像取得部１３０は、取得した撮像画像をその対象物体１０４に対する撮影位置や角度と対応づけて撮像画像格納部１５４に格納する。すなわち、撮像画像格納部１５４には、各カメラ１０２から取得された撮像画像が格納される。画像取得部１３０がすべての撮像画像を取得すると、立体モデル生成部１３８はボーティング処理を実行して対象物体１０４の立体モデルを生成する。立体モデル生成部１３８は、ボクセルの集合体として生成した立体モデルのデータを立体モデル情報格納部１５６に格納する。
【００２４】
距離計算部１４０は、この生成された立体モデルの表面座標点の中心軸１１２からの距離（以下、単に「軸距離」とよぶ）を計算する。距離計算部１４０は、まず、内ボクセルのうち、立体モデルの表面にあたるボクセル（以下、「表面ボクセル」とよぶ）を抽出する。そして、これらの表面ボクセル上の表面座標点に関しそれぞれ算出した軸距離を立体モデルを包容する円筒座標系に基づく距離情報として距離情報格納部１５８に格納する。法線演算部１３６は、この距離情報に基づいて各表面座標点について面法線ベクトルを算出する。法線演算部１３６は面法線ベクトルを法線情報として法線情報格納部１６０に格納する。テクスチャ情報処理部１４２は、法線情報格納部１６０が格納する法線情報を参照して立体モデルの表面座標領域にテクスチャを付与する。テクスチャ情報処理部１４２はテクスチャ付与後の立体モデルを立体モデル情報格納部１５６に再格納する。
【００２５】
図８は、距離情報格納部１５８が格納する距離情報のデータ構造を示す図である。距離情報は、円筒座標空間１１０に基づいて表される。同図において横軸は回転角θにあたり、３６０度を０〜３５９９の３６００個に等分した欄が設定される。縦軸はｙ軸にあたり、０〜６７９までの６８０個の欄が設定される。すなわち、３６００×６８０で合計２４４８０００個の表面座標点が設定される。同図では、座標（θ、ｙ）＝（１７０、２１０）における表面座標点の軸距離は「１２」である。次に、図５に示したＳ４０においてこの距離情報を生成する処理過程を更に詳細に説明する。
【００２６】
図９は、図５に示したＳ４０の処理を更に詳細に示すフローチャートである。距離計算部１４０は、距離情報を０に初期化する（Ｓ５８）。距離計算部１４０は、ｙ方向を表す変数ｊに０を代入して初期化する（Ｓ６０）。変数ｊがｓｉｚｅ＿ｙより小さければ（Ｓ６２のＹ）、距離計算部１４０はｙ＝ｊのｘｚ平面について距離情報を生成する（Ｓ６４）。このｘｚ平面での距離情報生成後、距離計算部１４０は変数ｊをインクリメントする（Ｓ６８）。変数ｊがｓｉｚｅ＿ｙ以上となっていれば（Ｓ６２のＮ）、処理は終了する。図８に示した例によれば、ｓｉｚｅ＿ｙ＝６８０であり、変数ｊは０〜６７９まで移行する。
【００２７】
図１０は、図９のＳ６４の処理を更に詳細に示すフローチャートである。距離計算部１４０は、ｚ方向を表す変数ｋに０を代入して初期化する（Ｓ７０）。変数ｋがｓｉｚｅ＿ｚより小さければ（Ｓ７２のＹ）、距離計算部１４０は、ｘ方向を表す変数ｎに０を代入して初期化する（Ｓ７４）。変数ｎがｓｉｚｅ＿ｘより小さければ（Ｓ７６のＹ）、直交座標空間１２０における座標（ｎ、ｊ、ｋ）に位置するボクセルに関して、距離情報を生成する（Ｓ７８）。距離情報生成後、距離計算部１４０は変数ｎをインクリメントする（Ｓ８０）。変数ｎがｓｉｚｅ＿ｘ以上となれば（Ｓ７６のＮ）、距離計算部１４０は変数ｋをインクリメントする（Ｓ８２）。変数ｋがｓｉｚｅ＿ｚ以上となれば（Ｓ７２のＮ）、処理は終了する。
【００２８】
図１１は、表面ボクセルの境界線分について説明するための模式図である。表面ボクセル１８０は内ボクセルである。表面ボクセル１８０には隣り合う内ボクセルが存在しない面がある。この場合、距離計算部１４０は表面ボクセル１８０が表面ボクセルであると判定する。図１０のＳ７８において、各ボクセルについての距離情報を生成するときには、まず表面ボクセル１８０のｘｚ平面における境界線分を特定する。同図では境界線分１８２と境界線分１８４が、境界線分として特定される。この境界線分上の点を表面座標点として特定し軸距離を計算する。次に、その具体的な処理過程を説明する。
【００２９】
図１２は、図１０のＳ７８の処理を更に詳細に示すフローチャートである。Ｓ７８は、ｙ＝ｊにおけるｘｚ平面に存在するすべてのボクセルに対して実行される。直交座標空間１２０は、内ボクセルに隣接する別の内ボクセルが存在するか否かに基づいて立体モデルの表面を特定する。
【００３０】
直交座標空間１２０における座標（ｎ、ｊ、ｋ）のボクセルが、内ボクセルでなければ（Ｓ９０のＮ）、そのボクセルについての処理は終了する。内ボクセルであれば（Ｓ９０のＹ）、直交座標空間１２０における座標（ｎ−１、ｊ、ｋ）の隣接するボクセルが、内ボクセルか否かを判定する（Ｓ９２）。外ボクセルであれば（Ｓ９２のＹ）、座標（ｎ、ｊ、ｋ）の内ボクセルの−ｘ方向に境界線分が存在する。距離計算部１４０は、この内ボクセルの−ｘ方向における境界線分について境界処理を実行する（Ｓ１２６）。境界処理とは、境界線分上に特定される表面座標点について軸距離を算出する処理である。図１１に示した表面ボクセル１８０の場合、−ｘ方向に境界線分１８４が存在しているので、境界線分１８４について境界処理が実行される。
【００３１】
Ｓ９２において内ボクセルであれば（Ｓ９２のＮ）、Ｓ１２６はスキップされる。−ｘ方向に隣接するボクセルが内ボクセルであれば、その向きに境界線分が存在しないからである。次に、座標（ｎ＋１、ｊ、ｋ）の隣接するボクセルが、内ボクセルか否かを判定する（Ｓ９４）。外ボクセルであれば（Ｓ９４のＹ）、＋ｘ方向に境界線分が存在する。距離計算部１４０は、このボクセルの＋ｘ方向の境界線分について境界処理を実行する（Ｓ１２８）。Ｓ９４において内ボクセルであれば（Ｓ９４のＮ）、Ｓ１２８はスキップされる。
【００３２】
次に、座標（ｎ、ｊ、ｋ−１）の隣接するボクセルが、内ボクセルか否かを判定する（Ｓ９６）。外ボクセルであれば（Ｓ９６のＹ）、−ｚ方向に境界線分が存在する。距離計算部１４０は、このボクセルの−ｚ方向の境界線分について境界処理を実行する（Ｓ１３０）。Ｓ９６において、内ボクセルであれば（Ｓ９６のＮ）、Ｓ１３０はスキップされる。
【００３３】
次に、座標（ｎ、ｊ、ｋ＋１）の隣接するボクセルが、内ボクセルか否かを判定する（Ｓ９８）。外ボクセルであれば（Ｓ９８のＹ）、＋ｚ方向に境界線分が存在する。距離計算部１４０は、このボクセルの＋ｚ方向の境界線分について境界処理を実行する（Ｓ１００）。Ｓ９８において、内ボクセルであれば（Ｓ９８のＮ）、Ｓ１００はスキップされる。
【００３４】
図１３は、境界処理の内容を説明するための模式図である。距離計算部１４０は、表面ボクセルの境界線分上における表面座標点について軸距離を算出する。面１９０は、立体モデルに含まれるある表面ボクセルのｘｚ平面である。面１９０は境界線分１９６を有する。境界線分１９６は、点Ａと点Ｂを両端とする。このとき、境界線分１９６上に表面座標点が設定される。点Ｃは、このｘｚ平面における中心軸１１２の位置である。点Ａの円筒座標系における回転角はθ１、点Ｂの回転角はθ２である。距離計算部１４０は、点Ａから点Ｂまでを走査して境界線分１９６上のθ１からθ２までのさまざまな回転角に対応した表面座標点について距離情報を生成する。
【００３５】
同図において、面１９２は、同一のｘｚ平面に存在する別の内ボクセルのｘｚ平面である。面１９２も表面ボクセルのｘｚ平面であり境界線分１９８を有する。点Ｄは境界線分１９８上に存在する表面座標点であり、その回転角はθ１である。境界線分１９６について境界処理を実行した場合には、回転角θ１についての軸距離は点Ａから点Ｃまでの距離と算出される。一方、境界線分１９８について境界処理を実行した場合には、回転角θ１について点Ｄから点Ｃまでの距離が軸距離として算出される。この場合には、回転角θ１についての軸距離は点Ｄから点Ｃまでの距離に決定される。このように、同一のｘｚ平面における同一の回転角に対する軸距離は、より長い軸距離に決定される。
【００３６】
図１４は、図１２のＳ１２６、Ｓ１２８、Ｓ１３０およびＳ１００の境界処理を更に詳細に示すフローチャートである。距離計算部１４０は、ｘｚ平面において境界線分を抽出すると、この線分を円筒座標空間１１０における円筒座標系に変換する（Ｓ１１０）。距離計算部１４０はこの境界線分について処理すべき回転角の範囲を決定する（Ｓ１１２）。図１３の境界線分１９６の場合には、処理すべき回転角の範囲はθ１からθ２である。距離計算部１４０は、ｘｚ平面における回転角を表す変数ｍを有する。ｍは計３６０度の回転角を３６００等分する。この場合、ｍの値は０から３５９９までの数である。たとえば、ｍ＝１２１は、回転角１２．１度に対応する。距離計算部１４０は、境界線分１９６における回転角の最低値であるθ１に対応してｍ＿ｍｉｎ、最大値であるθ２に対応してｍ＿ｍａｘを設定する。
【００３７】
まず、距離計算部１４０は、変数ｍにｍ＿ｍｉｎを代入して初期化する（Ｓ１１４）。ｍがｍ＿ｍａｘ以下であれば（Ｓ１１６のＹ）、距離計算部１４０は回転角ｍにおける境界線分上の表面座標点につき軸距離を計算する（Ｓ１１８）。このときの軸距離をｄｔｍｐ（ｍ、ｊ）と表す。距離計算部１４０は、変数ｍについての軸距離が別の表面ボクセルについての境界処理において既に計算されている場合には、すでに計算済みの軸距離ｄ（ｍ、ｊ）とｄｔｍｐ（ｍ、ｊ）の大小を比較判定する（Ｓ１２０）。新たに計算した軸距離ｄｔｍｐ（ｍ、ｊ）が既に計算済みの軸距離ｄ（ｍ、ｊ）よりも大きければ（Ｓ１２０のＹ）、軸距離ｄ（ｍ、ｊ）にｄｔｍｐ（ｍ、ｊ）を代入してその値を更新する（Ｓ１２２）。大きくなければ（Ｓ１２０のＮ）、Ｓ１２２はスキップされる。距離計算部１４０はｍをインクリメントし（Ｓ１２４）、処理はＳ１１６に戻る。Ｓ１１６において、ｍがｍ＿ｍａｘよりも大きければ（Ｓ１１６のＮ）、この境界線分についての境界処理は終了する。この境界処理をすべての境界線分について実行することにより、円筒座標空間１１０のすべての座標（ｍ、ｊ）について、距離情報が生成される。以上の処理により、図８に示した距離情報が完成する。
【００３８】
図１５は、法線情報格納部１６０が格納する法線情報のデータ構造を示す図である。法線情報も、円筒座標空間１１０に示した円筒座標系に基づいて表される。同図において横軸は回転角θにあたり、３６０度の回転角を０〜３５９９の３６００個に等分した欄が設定される。縦軸はｙ軸にあたり、０〜６７９までの６８０個の欄が設定される。すなわち、距離情報と同様に３６００×６８０で合計２４４８０００個の表面座標点が設定されている。同図では、座標（ｍ、ｊ）＝（１１２、１５０）における表面座標点の面法線ベクトルの回転角は「２４（度）」となっている。
【００３９】
図１６は、面法線ベクトルの算出処理を説明するための模式図である。法線演算部１３６は、距離情報を参照し、同一のｘｚ平面において回転角の異なる複数の表面座標点についてそれぞれ算出された軸距離に基づき、面法線ベクトルを算出する。境界線２０４は、立体モデルのあるｘｚ平面における境界線である。立体モデルはボクセルによって構成されるため、通常は境界線２０４は完全になめらかな線とはならない。点Ｅ、点Ｆ、点ＧはそれぞれＳ４０の処理過程において特定された、同一ｘｚ平面において隣り合う表面座標点である。点Ｃは、ｘｚ平面における中心軸１１２の位置である。円筒座標系における点Ｅの回転角はθ３、点Ｆの回転角はθ４、点Ｇの回転角はθ５である。同図では、説明のためにこれら各点についての回転角の差を大きく示すが、通常はこれらの回転角の差はきわめて小さい。なお、これらの隣り合う表面座標点間の回転角差は一定である。たとえば、同図に示した例では、θ４−θ３＝θ５−θ４となる。
【００４０】
隣り合う表面座標点であっても、それらは別々の境界線分や別々の内ボクセルに所属してよい。これらの各回転角ごとの軸距離は距離情報として距離情報格納部１５８に格納されている。同図では、点Ｆの面法線ベクトルを算出する場合を示す。面法線ベクトル２００は、点Ｆにおける真の面法線ベクトルである。このとき、点Ｆの隣の表面座標点である点Ｅと点Ｇを結ぶｘｚ平面上の線分ＥＧを設定する。次に、線分ＣＦと線分ＥＧの交点Ｈから線分ＥＧに対して垂直なベクトル２０２を求める。そして、この算出されたベクトル２０２を、点Ｆにおける真の面法線ベクトル２００であると近似する。点Ｅや点Ｇが点Ｆと十分に近ければ、より正確な面法線ベクトルを算出することができる。
【００４１】
図１７は、図５のＳ４２における処理を更に詳細に示すフローチャートである。法線演算部１３６はまず、法線情報に０を代入して初期化する（Ｓ１３８）。法線演算部１３６は、ｙ方向を表す変数ｊに０を代入して初期化する（Ｓ１４０）。ｊがｓｉｚｅ＿ｙよりも小さければ（Ｓ１４２のＹ）、法線演算部１３６は回転角θを表す変数ｍに０を代入して初期化する（Ｓ１４４）。ｍは３６０度を０から３５９９までの３６００等分して表す。ｍが３６０度、すなわち、３６００よりも小さければ（Ｓ１４６のＹ）、円筒座標空間１１０における座標（θ、ｙ）＝（ｍ、ｊ）における表面座標点についての面法線ベクトルを、同一のｘｚ平面にて隣り合う表面座標点から算出する（Ｓ１４８）。算出後、法線演算部１３６はｍをインクリメントし（Ｓ１５０）、処理はＳ１４６に戻る。ｍが３６０度以上となれば（Ｓ１４６のＮ）、法線演算部１３６はｊをインクリメントし（Ｓ１５２）、処理はＳ１４２に戻る。ｊがｓｉｚｅ＿ｙ以上となれば（Ｓ１４２のＮ）、法線情報の生成処理は終了する。
【００４２】
こうして、立体モデル生成部１３８は生成した法線情報を法線情報格納部１６０に格納する。テクスチャ情報処理部１４２は各表面座標点についての面法線ベクトルの角度と撮像の角度の差が最も１８０度に近くなるような角度で撮像された撮像画像を撮像画像格納部１５４から選択する。表面座標点から面法線ベクトル方向に伸びた線が選択された撮像画像と交わる点を求め、その交点における撮像画像の色彩をテクスチャ情報として表面座標点に対応する表面座標領域に投影する。このような処理により立体モデルが彩色される。
【００４３】
以上に示した実施例によれば、ポリゴンを生成することなく、立体モデルにテクスチャを付与できる。そのため、三次元モデリングに要する処理時間を従来よりも短縮できる。実施例では、立体モデルの中心を一直線に貫く軸に基づいて軸距離の計算を行う場合を示した。本発明においては、立体モデルを複数のｘｚ平面に分割して独立に処理を実行する。そのため、距離情報を生成するに際してｙの値が異なるｘｚ平面ごとに軸の位置が異なっても良い。たとえば、対象物体１０４がバナナ形状である場合、立体モデルを一直線に貫く軸を設定できない場合がある。このようなとき、距離計算部１４０は、立体モデルの切断面の略重心を貫く軸を設定して、軸距離を算出してもよい。これにより、立体モデルのすべてのｘｚ切断面に対して、正しく軸距離を算出できる。
【００４４】
以上、実施例をもとに本発明を説明した。なお本発明はこの実施の形態に限定されることなく、そのさまざまな変形例もまた、本発明の態様として有効である。
【００４５】
（変形例１）
上記実施例では、円筒座標系に基づいて距離情報を生成したが、直交座標系に基づいて距離情報を生成してもよい。この場合、立体モデルのｘｚ切断面につき、軸からではなく立体モデルを包含する直交座標空間のｘｙ平面やｙｚ平面から各表面座標点までの奥行き距離を距離情報として算出する。この方法によれば、立体モデルの正面に対してより簡便にテクスチャを付与できる。
【００４６】
図１８を参照して、本変形例における距離情報の生成方法について説明する。各表面座標点についての距離情報はｘｙ平面（以後、「基準ｘｙ平面」とよぶ）からの距離に基づいて生成される。たとえば、表面座標点Ｅにおける距離は線分ＥＥ’の長さに相当する。線分ＥＥ’は基準ｘｙ平面の法線である。点Ｅはこの法線と基準ｘｙ平面の交点である。各表面座標点の距離情報は、距離情報配列（ｄ[ｘ][ｙ]）に格納される。
【００４７】
基準ｘｙ平面からの距離の基づいて各表面座標点の距離情報を生成する場合には、ｘ座標が等しい表面座標点は２個以上存在する。本実施例におけるテクスチャ情報生成装置１００は、基準ｘｙ平面をボクセル空間の外側、すなわち、モデリング対象となる三次元物体の外側に設定し、基準ｘｙ平面からの距離が近い方の表面座標点の距離情報のみを距離情報配列に格納する。すなわち、基準ｘｙ平面から視認可能な物体面にのみテクスチャ情報が付与される。
【００４８】
この距離情報の生成処理は図１４に関連して説明したフローチャートと同様の処理過程により実行可能である。ただし、本実施例では、Ｓ１１８の距離算出処理は図１８に関連して説明した方法により距離情報が算出される。なお、処理の開始条件および終了条件は適切に設定すべきである。また、本実施例においては、Ｓ１１０における境界線分を円筒座標系に変換する処理は不要であることは言うまでもない。
【００４９】
次に図１９を参照して、本実施例における法線情報の生成方法について説明する。円筒座標系により生成された距離情報を利用する上記実施例と同様に、法線演算部１３６は各表面座標点における面法線ベクトルを表面座標点の両隣に位置する二つの表面座標点の間を結ぶ線分の垂線により近似的に求める。たとえば、表面座標点Ｇの面法線ベクトル２０２Ｇは、表面座標点Ｇに隣接する表面座標点Ｆと表面座標点Ｈを結ぶ線分ＦＨの垂線の方向と一致する。上記した実施例と同様、テクスチャ情報処理部１４２は求められた各表面座標点についての面法線ベクトルの角度に基づいて撮像画像格納部１５４から撮像画像を選択する。
【００５０】
この法線情報の生成処理は図１７に関連して説明したフローチャートと同様の処理過程により実行可能である。円筒座標系に基づいた法線情報生成の場合、Ｓ１４８の面法線ベクトルの算出を図１６に関連して説明した方法により実行した。本実施例では図１９に関連して説明した方法により算出される。なお、処理の開始条件および終了条件は適切に設定すべきである。
【００５１】
（変形例２）
上記実施例では、表面座標点における面法線ベクトルの方向に基づいて、テクスチャ生成用の撮像画像は選択された。すなわち、面法線ベクトルの方向に基づいて、どのカメラによる撮像画像に基づいてテクスチャ生成するかを決定する。しかし、凹凸が多くて滑らかでない表面形状の対象物体１０４の場合、近接する表面座標点でありながら、それぞれにおける面法線ベクトルの方向が大きく異なる場合がある。このとき、近接する表面座標点に対して選択される撮像画像の撮像角度差が大きくなりやすい。一般に、各撮像画像の撮像条件はカメラ１０２の配置に伴う照明条件に依存する。したがって、先述のように撮像画像の撮像角度が大きく変わる場合、各カメラ１０２の配置に伴う照明条件の違いに影響され、テクスチャ付与後の立体モデルの彩色に関し、このような表面座標点の近辺におけるむらが生じ得る。そこでテクスチャ情報処理部１４２は、近接する表面座標点に対して選択される撮像画像の撮像角度が大きく異ならないように処理してもよい。テクスチャ情報生成装置１００は、法線情報を円筒座標系における角度θと高さｙに基づく二次元配列に格納するので、２次元画像処理で行われる既知の方法であるスムージング処理によりこのような処理を実行可能である。
【００５２】
（変形例３）
上記実施例では、表面座標点における面法線ベクトルの方向に基づいて、テクスチャ生成用の撮像画像は一義的に選択された。しかし、テクスチャ生成用に複数の撮像画像を選択し、この複数の画像を合成処理してテクスチャを生成してもよい。たとえば、面法線ベクトルの角度と撮像角度の差が最も１８０度に近い角度で撮像された第１の撮像画像と、２番目にその差が１８０度に近い角度で撮像された第２の撮像画像を合成してテクスチャを生成してもよい。これにより、よりスムーズに立体モデルを彩色できる。
【００５３】
（変形例４）
上記実施例では、隣接する二つの表面座標点の距離情報に基づき、法線情報は生成された。しかし、法線演算部１３６は、２つに限ることなく、３つ以上の表面座標点の距離情報に基づき法線情報を生成してもよい。
【００５４】
（変形例５）
上記実施例では、対象物体１０４を固定し、その周囲に配置された複数台のカメラ１０２が撮像した複数の撮像画像に基づき、三次元モデリング処理が実行された。そのほかの方法として、カメラ１０２は一台のみとし、対象物体１０４を自転させて撮像された複数の撮像画像に基づいて、三次元モデリング処理を実行してもよい。この場合であっても、上記実施例や上記変形例１から４にて説明した処理過程と同等の処理過程により、三次元モデリング処理を実行できる。
【図面の簡単な説明】
【００５５】
【図１】対象物体の撮像画像を取得するためのハードウェア構成を示す図である。
【図２】三次元モデリングの全般的な処理過程を示すフローチャートである。
【図３】従来のポリゴン生成によるテクスチャ付与処理の過程を示すフローチャートである。
【図４】図３のＳ２６の処理を更に詳細に示すフローチャートである。
【図５】本実施例におけるテクスチャ付与処理の過程を示すフローチャートである。
【図６】対象物体を包含する直交座標空間と円筒座標空間について示す模式図である。
【図７】テクスチャ情報生成装置の機能ブロック図である。
【図８】距離情報のデータ構造を示す図である。
【図９】図５に示したＳ４０の処理を更に詳細に示すフローチャートである。
【図１０】図９のＳ６４の処理を更に詳細に示すフローチャートである。
【図１１】表面ボクセルの境界線分について説明するための模式図である。
【図１２】図１０のＳ７８の処理を更に詳細に示すフローチャートである。
【図１３】境界処理の内容を説明するための模式図である。
【図１４】図１２のＳ１２６、Ｓ１２８、Ｓ１３０およびＳ１００の境界処理を更に詳細に示すフローチャートである。
【図１５】法線情報のデータ構造を示す図である。
【図１６】面法線ベクトルの算出処理を説明するための模式図である。
【図１７】図５のＳ４２における処理を更に詳細に示すフローチャートである。
【図１８】変形例１の距離情報の算出処理を説明するための模式図である。
【図１９】変形例１の面法線ベクトルの算出処理を説明するための模式図である。
【符号の説明】
【００５６】
１００  テクスチャ情報生成装置、１０２  カメラ、１０４  対象物体、１３０  画像取得部、１３６  法線演算部、１３８  立体モデル生成部、１４０  距離計算部、１４２  テクスチャ情報処理部、１５２  データ格納部、１５４  撮像画像格納部、１５６  立体モデル情報格納部、１５８  距離情報格納部、１６０  法線情報格納部。
【図１】
2005215724.tif 000003
【図２】
2005215724.tif 000004
【図３】
2005215724.tif 000005
【図４】
2005215724.tif 000006
【図５】
2005215724.tif 000007
【図６】
2005215724.tif 000008
【図７】
2005215724.tif 000009
【図８】
2005215724.tif 000010
【図９】
2005215724.tif 000011
【図１０】
2005215724.tif 000012
【図１１】
2005215724.tif 000013
【図１２】
2005215724.tif 000014
【図１３】
2005215724.tif 000015
【図１４】
2005215724.tif 000016
【図１５】
2005215724.tif 000017
【図１６】
2005215724.tif 000018
【図１７】
2005215724.tif 000019
【図１８】
2005215724.tif 000020
【図１９】
2005215724.tif 000021