(57)【要約】【課題】認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システムを提供する。【解決手段】本発明の認識モデル生成システムは、入力３次元形状の稜線および面をラベルするための手段１８と、形状規制値を生成するための手段２０と、生成された形状規制値を使用して形状認識を規制する形状規制手段２２と、形状規制手段の出力を使用し、入力３次元形状を６面体で置換して得られる形状の頂点の位置座標を生成するための手段２４とを含んでいる。また、本発明は、認識モデル生成方法、認識モデル生成方法をコンピュータに対して実行させるためのプログラム、および該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システムを提供する。【選択図】　図１４
2004021773.tif 000002
【特許請求の範囲】
【請求項１】
入力３次元形状の認識モデルを自動的に生成するシステムであって、
入力３次元形状の稜線および面のラベルを識別する手段と、
前記稜線および面のラベルに基づき形状規制値を生成するための手段と、
前記生成された形状規制値を使用して形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記認識モデルの頂点の位置座標を生成するための手段と
を含む、認識モデル生成システム。
【請求項２】
前記形状規制値を生成する手段は、
推定稜線長さを生成する手段と、推定稜線間隔または推定面間隔を生成する手段と、
を含む、請求項１に記載の認識モデル生成システム。
【請求項３】
前記形状規制手段は、
前記生成された推定稜線長さと前記生成された位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数を含む、
請求項２に記載の認識モデル生成システム。
【請求項４】
前記位置座標を生成するための手段は、さらに稜線および面の位相に関連する制約条件とを使用して前記位置座標を生成する手段を含む、
請求項１に記載の認識モデル生成システム。
【請求項５】
さらに、前記稜線および前記面のデータに基づいて前記稜線および面の位相条件を判断するための手段を含む
請求項１に記載の認識モデル生成システム。
【請求項６】
前記入力３次元形状は、凹部を含む形状である、
請求項１に記載の認識モデル生成システム。
【請求項７】
入力３次元形状の認識モデルを自動的に生成するための方法であって、該方法は、
入力３次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
を含む、認識モデル生成方法。
【請求項８】
前記形状規制値を生成するステップは、
推定稜線長さを生成するステップと、
推定稜線間隔または推定面間隔を生成するステップと
を含む、請求項７に記載の認識モデル生成方法。
【請求項９】
前記形状規制を行うステップは、
前記記憶された推定稜線長さと前記取得された位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数の最小値を記憶するステップを含む、
請求項８に記載の認識モデル生成方法。
【請求項１０】
前記位置座標を生成するための手段は、さらに稜線および面の位相に関連する制約条件を使用して前記位置座標を生成するステップを含む、
請求項７に記載の認識モデル生成方法。
【請求項１１】
さらに、前記稜線および前記面のデータに基づいて前記稜線および面の位相条件を判断するステップを含む
請求項７に記載の認識モデル生成方法。
【請求項１２】
入力３次元形状の認識モデルを自動的に生成するための方法を実行するためのコンピュータ実行可能なプログラムであって、該プログラムは、
入力３次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
をコンピュータ・システムに実行させるプログラム。
【請求項１３】
前記形状規制値を生成するステップは、
推定稜線長さを生成するステップと、
推定稜線間隔または推定面間隔を生成するステップと
を含む、請求項１２に記載のプログラム。
【請求項１４】
前記形状規制を行うステップは、
前記記憶された推定稜線長さと前記取得された位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数の最小値を記憶するステップを含む、
請求項１３に記載のプログラム。
【請求項１５】
さらに、前記稜線および前記面のデータに基づいて前記稜線および面の位相条件を判断するステップを含む
請求項１２に記載のプログラム。
【請求項１６】
入力３次元形状の認識モデルを自動的に生成するための方法を実行するためのコンピュータ実行可能なプログラムが記録されたコンピュータ可読な記録媒体であって、
入力３次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
をコンピュータ・システムに実行させるプログラムが記録されたコンピュータ可読な記録媒体。
【請求項１７】
前記形状規制値を生成するステップは、
推定稜線長さを生成するステップと、
推定稜線間隔または推定面間隔を生成するステップと
を含む、請求項１６に記載の記録媒体。
【請求項１８】
前記形状規制を行うステップは、
前記記憶された推定稜線長さと前記取得された位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数の最小値を記憶するステップを含む、
請求項１７に記載の記録媒体。
【請求項１９】
さらに、前記稜線および前記面のデータに基づいて前記稜線および面の位相条件を判断するステップを含む
請求項１６に記載の記録媒体。
【請求項２０】
入力３次元形状の認識モデルから自動的に構造メッシュを生成するシステムであって、
入力３次元形状の稜線および面のラベルを識別するための手段と、
前記稜線および面のラベルに基づき形状規制値を生成するための手段と、
前記生成された形状規制値を使用して形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記認識モデルを６面体で置換して得られる形状における各６面体の頂点の位置座標を生成するための手段とを含み、
前記形状規制値を生成する手段は、
推定稜線長さを生成する手段と、推定稜線間隔または推定面間隔を生成する手段と、を含む、構造メッシュ生成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータによる３次元形状認識に関し、より詳細には、コンピュータが認識した３次元形状の幾何学的な不都合を自動的に修正することにより、より効率的に３次元形状から矛盾のない認識モデルを生成し、構造メッシュを生成することを可能とする、認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システムに関する。
【０００２】
【従来の技術】
近年、コンピュータ技術の進歩により３次元形状の認識をコンピュータが行い、その結果をコンピュータ支援設計、いわゆるＣＡＤ、コンピュータ・グラフィックスにおけるテクスチャ割り当て、有限要素法などに適用する試みが行われている。コンピュータに対して、３次元形状を認識させるためには、３次元立体をより単純な図形、たとえば立方体の集合に置換して認識させるなど、種々の認識モデルが使用されている。認識モデルの生成は、概ね入力形状の概形を表す立体を中間データとして生成する。その立体を複数のグリッドに分割することにより６面体メッシュが生成される。
【０００３】
一般に、認識モデルでは、ｉｊｋ空間として参照される整数空間に定義される立体を使用する。認識モデルを構成する面は、すべてｉｊ平面、ｊｋ平面、あるいはｋｉ平面のいずれかと平行となるように定義される。この際、法線［ｉ　ｊ　ｋ］＝［１，０，０］を持つ面にはラベル”＋Ｉ”が属性として与えられる。同様に、各面には、“＋Ｉ”，　“−Ｉ”，　“＋Ｊ”，　“−Ｊ”，　“＋Ｋ”，　“−Ｋ”の何れかのラベルが与えられる。下記表１に、各面と、各面を定義する法線との対応を示す。
【０００４】
【表１】
2004021773.tif 000003
【０００５】
また、認識モデルは、シェル、面、ループ、半稜線、頂点を含んで構成された、いわゆるハーフエッジデータ構造で表現される。シェルは面の集合であり、面は外部ループと複数の内部ループから構成され、ループは半稜線の列として定義される。認識モデルの定義により、各半稜線はｉ，　ｊ，　ｋの何れかの軸に平行とされる。［１，０，０］方向を持つ半稜線には、ラベル“＋Ｉ”が属性として与えられ、面と同様に、各半稜線は、“＋Ｉ”，　“−Ｉ”，　“＋Ｊ”，　“−Ｊ”，　“＋Ｋ”，　“−Ｋ”の何れかの属性として分類される。認識モデルおよびその面、半稜線へのラベルの定義を図１８に示す。以下、本明細書においては、向きを考慮しない時にはペアとなる半稜線を組にして単に稜線として参照する。
【０００６】
一般に、認識モデルを中間データとして用いるメッシュ生成手法は、主として以下の４つのステップを含んで構成される。図１９には、従来の認識モデル生成の手順を示す。図１９に示すように、従来の認識モデルの生成においては、
１）入力された３次元形状（図１９（ａ））の表面を“＋Ｉ”，　“−Ｉ”，　“＋Ｊ”，　“−Ｊ”，　“＋Ｋ”，　“−Ｋ”の何れかの属性を持つ部分に分類（図１９（ｂ））する。なお、図１９（ｂ）では、それぞれにラベルされた面と、Ｋ，Ｊ，Ｉの方向とを示す。
２）分類された表面から６面体の頂点で構成された認識モデルを生成する（図１９（ｃ））。上述したように、認識モデルの面は、３次元形状表面の一つの面へと対応付けられ、稜線は面の境界線へと対応付けられ、頂点は、面のかどの点へと対応付けられる。
３）認識モデルを所与のサイズのメッシュを使用してグリッド状に細分化して６面体メッシュとして表現する（図１９（ｄ））。
４）この６面体メッシュを入力された形状にフィッティングした後、スムージング処理を施して６面体要素における歪みを取り除くことにより、６面体メッシュのノード座標値を決定する（図１９（ｅ））。
【０００７】
認識モデルをメッシュ生成の中間データとして生成する従来の方法が種々提案されており、代表的な方法として、高橋他、「形状認識を用いた三次元自動要素分割システムの開発」、日本機械学会論文集（Ａ編），第５９巻（５６９）、ｐｐ．２７９−２８５、１９９３年１、Ｒｅｚａ　Ｔａｇｈａｖｉ、“Ａｕｔｏｍａｔｉｃ　Ｂｌｏｃｋ　Ｄｅｃｏｍｐｏｓｉｔｉｏｎ　Ｕｓｉｎｇ　Ｆｕｚｚｙ　Ｌｏｇｉｃ　Ａｎａｌｙｓｉｓ”（９ｔｈ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｍｅｓｈｉｎｇ　Ｒｏｕｎｄｔａｂｌｅ，ｐｐ．　１８７−１９２，　２０００．）およびＤａｖｉｄ　Ｒ．　Ｗｈｉｔｅらの“Ａｕｔｏｍａｔｅｄ　Ｈｅｘａｈｅｄｒａｌ　ＭｅｓｈＧｅｎｅｒａｔｉｏｎ　ｂｙ　Ｖｉｒｔｕａｌ　Ｄｅｃｏｍｐｏｓｉｔｉｏｎ”（４ｔｈ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｍｅｓｈｉｎｇ　Ｒｏｕｎｄｔａｂｌｅ，　１９９５．）を挙げることができる。
【０００８】
高橋らは、入力された形状（実モデル）の各辺に対して、　＋Ｉ，　−Ｉ，　＋Ｊ，　−Ｊのいずれかのラベルが既に設定されている状態から認識モデルを作成する。図２０には、高橋らの方法によるメッシュ作成方法を示す。各方向に属する線分の数をＮｓ　（ｓ＝（＋Ｉ），　（−Ｉ），　（＋Ｊ），　ｏｒ　（−Ｊ））とし、実モデルにおける各辺の長さをｌｓ，ｔ　（ｔ＝１，　…，　Ｎｓ）、各方向の辺長さの合計をＬｓ　（ｓ＝（＋Ｉ），　（−Ｉ），　（＋Ｊ），　ｏｒ　（−Ｊ））とする。一方認識モデルにおける各辺の長さを、ｍｓ，ｔ　（ｔ＝１，　…，　Ｎｓ）とし、各方向の辺長さの合計を、Ｍｓ　（ｓ＝（＋Ｉ），　（−Ｉ），　（＋Ｊ），　ｏｒ　（−Ｊ））とする。ここで求めたいものは、ｍｓ，ｔである。認識モデルの定義よりＭ（＋Ｉ）　＝　Ｍ（−Ｉ），　Ｍ（＋Ｊ）　＝　Ｍ（−Ｊ）でなければならないので、Ｍｓを次の式により計算する。
【０００９】
【数１】
2004021773.tif 000004
【００１０】
上式は、相対する方向の平均としてＭｓを求めることを意味する。これらのＭｓを使って、ｍｓ，ｔを下記式を使用して算出する。
【００１１】
【数２】
2004021773.tif 000005
以上が高橋らにより提案された認識モデル上での各稜線の長さを計算する方法である。しかしながらこの方法は、単に実モデル上での辺長さに近い値になるように認識モデル上での稜線長さを計算しているだけといえ、高橋らの方法では、認識モデル上で稜線の干渉が起きないことは、一切保証されていない。
【００１２】
Ｔａｇｈａｖｉらも同様に、認識モデルを中間データとして生成しているものの、Ｔａｇｈａｖｉらの方法は、生成された認識モデルに対して干渉が起こらないようにどのように分割数を決定するかという問題に関しては、まったく対応できるものではない。また、Ｗｈｉｔｅは、既に表面の４角形構造メッシュが与えられている場合に、その内部にどのように６面体を生成するかについて検討している。Ｗｈｉｔｅによる予め与えられた表面の構造メッシュは、分割数の情報を既に含んでいる。このためＷｈｉｔｅによる方法では分割数を計算する必要が排除できる。しかしながらＷｈｉｔｅの方法は、表面のメッシュが与えられていない場合には適用することができないという不都合がある。
【００１３】
また、これまで整数計画問題として稜線の分割数を決定する方法も提案されている。Ｔａｍら（Ｔ．　Ｋ．　Ｈ．　Ｔａｍ，　”Ｆｉｎｉｔｅ　Ｅｌｅｍｅｎｔ　Ｍｅｓｈ　Ｃｏｎｔｒｏｌ　ｂｙ　Ｉｎｔｅｇｅｒ　Ｐｒｏｇｒａｍｍｉｎｇ”，　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｊｏｕｒｎａｌ　ｆｏｒ　Ｎｕｍｅｒｉｃａｌ　Ｍｅｔｈｏｄｓ　ｉｎ　Ｅｎｇｉｎｅｅｒｉｎｇ，　Ｖｏｌ．　３６，　ｐｐ．　２５８１−２６０５，　１９９３．）およびＳｃｏｔｔら（Ｓｃｏｔｔ　Ａ．　Ｍｉｔｃｈｅｌｌ（“Ｈｉｇｈ　Ｆｉｄｅｌｉｔｙ　Ｉｎｔｅｒｖａｌ　Ａｓｓｉｇｎｍｅｎｔ”，　６ｔｈ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｍｅｓｈｉｎｇ　Ｒｏｕｎｄｔａｂｌｅ，　１９９７．）は、予め粗いメッシュがすでに与えられている場合に、粗いメッシュをさらに細分化するための方法を提案している。図２１には、Ｔａｍらにより提案された構造メッシュの生成方法を示す。Ｔａｍらの方法では、図２１（ａ）に示されるように、予め粗いメッシュがすでに与えられているので、領域は、凸な形状の集まりに領域が分割されていることが前提とされる。この場合には、稜線や面の干渉などはすでに排除されており、稜線または面の干渉を除去することは必要とはされない。
【００１４】
図２２には、これまで知られた整数計画問題として稜線の分割数を決定する
ための別の方法を示す。図２２に示したメッシュの生成方法は、Ｍｉｔｃｈｅｌｌ（Ｓｃｏｔｔ　Ａ．　Ｍｉｔｃｈｅｌｌ，　Ｈｉｇｈ　Ｆｉｄｅｌｉｔｙ　Ｉｎｔｅｒｖａｌ　Ａｓｓｉｇｎｍｅｎｔ，　６ｔｈ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｍｅｓｈｉｎｇ　Ｒｏｕｎｄｔａｌｂｅ，　１９９７）により提案されたものであり、構造メッシュと非構造メッシュとが混在する場合の分割数決定を取り扱っている。しかしながら、構造メッシュ生成の部分に関してはＴａｍと同様に、凸な形状の処理を開示しているにすぎない。
【００１５】
多くの３次元形状には、凹部が形成されており、このため凹部を含む３次元形状の認識モデルには、凹な部分を含む面が現れる。凹な部分を含む３次元形状に対して従来の認識モデル生成方法を適用すると、予期しない不都合が生成する場合がある。図２３には、説明のため、２次元形状へと次元を削減して上述した不都合を概略的に示す。図２３（ａ）が入力形状であり、図２３（ｂ）が生成された認識モデルである。従来の方法では、凹部分を含む図２３（ａ）の形状が入力された場合には、稜線の分割数の割り当て方次第で稜線や面の縮退や干渉を生じ、図２３（ａ）の入力形状が、図２３（ｂ）に示す矛盾した認識モデルを与えてしまう場合がある。図２３に示した例では、凹部の存在によりメッシュが縮退または干渉しているのが例示的に示されている。なお、本発明において、稜線の縮退または干渉とは、稜線が他の稜線に重なり合ってしまったり、稜線が当該稜線が含まれる面以外の面と交差することを意味する。また、面の縮退または干渉とは、面が他の面と交差したり、面が他の面と重なり合ってしまうことを意味する。
【００１６】
図２３に示した従来の方法による問題点は、図２３（ｂ）に示した不都合を防止するべく、予めユーザの手作業により適切な荒いメッシュを生成させておくなどして対応しているものの、コンピュータが凹な部分を含む立体に対して縮退や干渉を生じないように分割数を決定できるものではない。ところで、上述したような凹部を含む３次元形状は、ごく普通に存在し、たとえば種々の機械要素、現実の物体においては通常現れる特徴であり、従来の方法における凹部処理の問題は、認識モデルの汎用的な利用性を制限してしまう１つの理由となっている。
【００１７】
すなわち、これまで、向かい合う稜線の分割数の不一致により、グリッドが生成できず、その結果３次元立体の良好なメッシュが生成できないといった問題を発生せず、認識モデルにおける縮退や干渉といった不都合を自動的に排除することが必要とされていた。さらにこれまで、手作業を最大限に排除しつつ３次元立体の適切な認識モデルの自動的な生成およびメッシュ化を可能とすることが必要とされていた。
【００１８】
【発明が解決しようとする課題】
本発明は、上述した従来技術の不都合に鑑みてなされたものであり、本発明は、入力された３次元形状を適切に分割し、面や稜線の縮退や干渉といった不都合を生じさせずに、手作業によりメッシュを割り当てるといった労力を排除することを可能とする、認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システムを提供することを目的とする。
【００１９】
【課題を解決するための手段】
本発明は、上述した認識モデルの生成において、認識モデルを所与のメッシュサイズを使用してグリッド状に細分化して６面体から構成される構造メッシュとして表現する場合に、分割数を最適に決定し、稜線や面の縮退および干渉を自動的に排除することにより中間データとして使用される認識モデルを生成することができれば、良好な構造メッシュを自動的にコンピュータにより生成することができる、という着想のもとになされたものである。
【００２０】
本発明においては、認識モデルの面、稜線に対して付されるラベルを使用して、稜線の凹凸や面内での頂点の凹凸などの認識モデルの位相を判断して、目的関数および制約条件を生成する。同時に、本発明においては位相的な関係の他に、認識モデルの形状認識を規制することにより、良好な形状認識を実行させる。形状の規制は、形状規制値を生成し、形状規制値を使用する項を含む目的関数を採用することにより達成される。本発明において、上述した形状規制値は、目的関数に使用される各値のうちでも特に本発明において使用する目的関数の項に使用される値を意味し、具体的には推定稜線長さの値および稜線または面の推定間隔の値を示すものとして参照される。
【００２１】
さらに、本発明においては、上述したように決定された認識モデルの各稜線および面の位相の関係を導入し、稜線や面の干渉を自動的に排除することにより、効率的に凹凸のある３次元形状に対する認識モデルに対して縮退および干渉の生成する条件を判断させ、生成する縮退および干渉に対応して、整数計画問題を修正しつつ認識モデルを生成する。
【００２２】
本発明の好適な実施の形態においては、形状規制値としては、稜線の推定長さおよび稜線または面の推定距離を使用することができる。本発明によれば、認識モデルにおいてまず、形状規制値を使用した項を含む目的関数で形状認識を規制し、その後位相条件を満たすように稜線および面の分割を実行させることにより、入力３次元形状の良好な認識モデルを生成すると共に、良好な構造メッシュの自動生成を行うことが可能であることが見出された。
【００２３】
生成された認識モデルは、構造メッシュ生成における中間モデルとして使用することができ、位相的に矛盾のない良好な構造メッシュを生成することを可能とする。また、生成された構造メッシュは、有限要素法などを使用した種々の力学的解析、構造解析、強度解析、劣化解析などのモデルを与えることができる。さらに、生成された認識モデルは、表面レンダリング技術に対しても好適に適用することができる。
【００２４】
すなわち、本発明によれば、入力３次元形状の認識モデルを自動的に生成するシステムであって、
入力３次元形状の稜線および面のラベルを識別する手段と、
前記稜線および面のラベルに基づき形状規制値を生成するための手段と、
前記生成された形状規制値を使用して形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記認識モデルの頂点の位置座標を生成するための手段と
を含む、認識モデル生成システムが提供される。
【００２５】
本発明における前記形状規制値を生成する手段は、
推定稜線長さを生成する手段と、推定稜線間隔または推定面間隔を生成する手段と、
を含む。本発明の前記形状規制手段は、前記生成された推定稜線長さと前記生成された位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数を含む。本発明の前記位置座標を生成するための手段は、さらに稜線および面の位相に関連する制約条件とを使用して前記位置座標を生成する手段を含む。
【００２６】
本発明の認識モデル生成システムは、さらに、前記稜線および前記面のデータに基づいて前記稜線および面の位相条件を判断するための手段を含む。本発明における前記入力３次元形状は、凹部を含む形状であることが好ましい。
本発明においては、入力３次元形状の認識モデルを自動的に生成するための方法であって、該方法は、
入力３次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記入力３次元形状を６面体で置換して得られる形状の頂点の位置座標を生成するステップと
を含む、認識モデル生成方法が提供される。
【００２７】
本発明においては、入力３次元形状の認識モデルを自動的に生成するための方法を実行するためのコンピュータ実行可能なプログラムであって、該プログラムは、
入力３次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
をコンピュータ・システムに実行させるプログラムが提供される。
【００２８】
本発明においては、入力３次元形状の認識モデルを自動的に生成するための方法を実行するためのコンピュータ実行可能なプログラムが記録されたコンピュータ可読な記録媒体であって、
入力３次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
をコンピュータ・システムに実行させるプログラムが記録されたコンピュータ可読な記録媒体が提供される。
【００２９】
本発明においては、入力３次元形状の認識モデルから自動的に構造メッシュを生成するシステムであって、
入力３次元形状の稜線および面のラベルを識別するための手段と、
前記稜線および面のラベルに基づき形状規制値を生成するための手段と、
前記生成された形状規制値を使用して形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記認識モデルを６面体で置換して得られる形状における各６面体の頂点の位置座標を生成するための手段とを含み、
前記形状規制値を生成する手段は、
推定稜線長さを生成する手段と、推定稜線間隔または推定面間隔を生成する手段と、を含む、構造メッシュ生成システムが提供される。
【００３０】
【発明の実施の形態】
以下、本発明につき、図面に示した具体的な実施の形態をもって説明するが、本発明は後述する実施の形態に制限されるわけではない。本発明の認識モデル生成方法を概略的に説明すると、本発明では、まず認識モデルの稜線分割数を変数として整数計画問題を解くことにより、認識モデル頂点のｉｊｋ座標値を計算する。整数計画問題とは一般的に下式に示すように、制約条件を満たし、かつ目的関数ｚを最小にする整数変数ｘ１，　…，　ｘｎを求める問題である。
目的関数：
【００３１】
【数３】
2004021773.tif 000006
【００３２】
制約条件：
【数４】
2004021773.tif 000007
上記式（２）中、ｃｊ、ａｉｊ、ｂｉは、定数を示し、Ｚは整数全体の集合を表す。
【００３３】
図１には、本発明の認識モデル生成方法のプロセスの概略的なフローチャートを示す。図１に示すプロセスは、まずステップＳ１０において認識モデルに使用されるメッシュサイズおよび入力３次元形状の稜線および面といった３次元形状のデータを入力し、面および稜線に付されたラベルを識別する。しかしながら、本発明の他の実施の形態においては、入力された３次元形状のデータから稜線および面のラベリングを自動的に生成し、生成されたラベルを識別して後の処理に使用することもできる。入力データにおいて面として分類された３次元形状表面の一つの分類は、認識モデルにおける面に対応し、稜線は、境界線へと分類され、頂点は、認識モデルにおける角の点に対応する。さらに図１に示した本発明のプロセスは、ステップＳ１２へと進み、認識モデルにブリッジ稜線を追加する。このステップＳ１２は、より詳細には後述するように内部ループの位置座標を、算出するために必要なステップである。次いで、ステップＳ１４において推定稜線長差さに関連する目的関数を生成し、ステップＳ１６において、稜線間または面間の推定距離を生成し、これらの要素を目的関数として追加する。
【００３４】
ステップＳ１８〜ステップＳ２４において、本発明において自動的に縮退および干渉を解消させるために必要とされる位相条件を含んで構成される制約条件を、整数計画問題に含ませる。これらのステップは、本発明において特に凹形状を扱うことができるようにするために本発明で採用するステップである。以下では各処理ステップについて説明する。ステップＳ２６においてステップＳ１４〜ステップＳ２４において含ませた条件を使用して整数計画問題を解くことにより、認識モデルを生成し、ステップＳ２８において、認識モデルにおける頂点のｉｊｋ座標値を出力する。以下、本発明の図１に示したプロセスの詳細を説明する前に、本発明において、稜線および面の縮退および干渉および最適な分割数を得るための条件について以下に概略的に説明する。
【００３５】
図２は、上述した稜線および面の縮退および干渉の発生する態様（位相条件）および形状認識の不完全な場合の態様を例示した図である。稜線および面の縮退制約条件の発生を概略的に示した図である。図２（ａ）〜図２（ｄ）が位相条件に関連する状態であり、図２（ｅ）〜図２（ｆ）が、形状認識の不完全さに起因する状態である。図２に沿って説明すると、図２（ａ）は、稜線分割数の和が向かい合う方向で一致しない場合である。図２（ａ）に示した稜線Ｅ１，　Ｅ２の分割数合計は、７であるのに対して、稜線Ｅ３の分割数が８となっている。このため図２（ａ）に示した場合には、認識モデルをメッシュに分割することができない。図２（ｂ）は、認識モデルを構成する面に干渉が生じた状態であり、図２（ｃ）は、認識モデルを構成する面内においてループどうしの位相が反転した状態である。いずれの状態が生成しても、良好なメッシュへの分割ができなくなる。また、図２（ｄ）は、認識モデルを構成するすべての面には問題がないにもかかわらず、認識モデルが空間的に干渉した状態が生成しており、この場合にもグリッド状の分割ができなくなるという不都合が生じる。
【００３６】
また、形状認識の不完全な場合の態様としては、図２（ｅ）に示すように、稜線長さが入力形状（実モデル）と比べて大きく異なる問題である。この場合、最終的に生成されるメッシュは大きく歪んだメッシュとなる。また、これとは別に、図２（ｆ）に示すように、認識モデル上での稜線間の間隔や内部ループの位置関係が実モデルと比べて大きく異なるという形状認識の不完全な態様も存在する。図２（ｅ）の状態との違いは、図２（ｆ）の場合には対応する１つの稜線が存在しないことにある。この場合にも最終的に生成されるメッシュは大きく歪んだメッシュとなる。
【００３７】
本発明者らは、鋭意検討を加えた結果、上述した６種類の問題のうち図２（ａ）〜図２（ｄ）の縮退および干渉という位相的な不都合は、整数計画問題における制約条件を新たに採用することにより充分に対応することが可能であり、図２（ｅ）〜図２（ｆ）の形状認識における不完全性については、推定稜線長さおよび推定稜線または面間隔に関連する項を含ませた目的関数を、整数計画問題において採用することにより充分な精度をもって解決することができることを見出し、本発明に至ったものである。以下、上述した制約条件および目的関数に基づいて、本発明の認識モデル生成方法について説明する。
【００３８】
Ａ．認識モデルにブリッジ稜線を追加するステップ
ここで、認識モデルの稜線分割数を、Ｎｓ（ｓ＝１，　…，　ｎ）とし、認識モデルの何れの面も内部ループを持たない認識モデルについて検討する。この認識モデルにおける任意の頂点を原点［ｉ，ｊ，ｋ］＝［０，０，０］とすると、それ以外の頂点のｉｊｋ座標値は、稜線分割数により表現することができる。簡単のため、図３に示したｉｊ空間にある２次元の例を用いて説明する。図３（ａ）が稜線追加前の認識モデルであり、図３（ｂ）が、内側にループを含む認識モデルであって、本発明により稜線が追加された後の認識モデルである。
【００３９】
図３（ａ）に示された認識モデルにおいて頂点Ｖ０を原点とすると、頂点Ｖａの座標値は、［Ｎ０−Ｎ２，　Ｎ１］となる。一方認識モデルの面が内部ループＩＬを持つ場合、内部ループＩＬと外部ループＯＬとは稜線で結ばれていないため、その相対位置関係を稜線分割数を使って表現することはできない。このため、本発明においては図３（ｂ）に示すように、ブリッジ稜線Ｂと呼ぶ仮想稜線を導入する。ブリッジ稜線Ｂは、外部ループＯＬ上の頂点と内部ループＩＬ上の頂点を結ぶ稜線であり、それには２つの座標方向の分割数が割り当てられる。導入するブリッジ稜線Ｂの個数は、認識モデルの任意の頂点から任意の別の頂点まで稜線続きでたどることができるための必要最低限の数とすることが好ましい。簡単のためにｉｊ空間にある２次元の例を図３（ｂ）を使用して説明すると、ブリッジ稜線には位置座標Ｎｂｉ、Ｎｂｊが割り当てられているため、頂点Ｖ０を原点とすると、頂点Ｖｂのｉｊ座標値は［Ｎ０−Ｎｂｉ−Ｎ８，　Ｎ１−Ｎｂｊ−Ｎ７＋Ｎ９］で表される。
【００４０】
図４は、３次元立体の認識モデルにおいて稜線を追加する実施の形態を示した図である。図４に示した認識モデルでは、奥の面Ｆについても内部ループＩＬを有する。内部ループＩＬと外部ループＯＬとの位置関係を手前の面のブリッジ稜線を経由して得ることができるため、奥の面Ｆについては、ブリッジ稜線は導入しなくともすむ。このようにブリッジ稜線Ｂを導入することにより、認識モデルの任意の頂点を原点［ｉ，ｊ，ｋ］＝［０，０，０］とすると、それ以外の全ての頂点のｉｊｋ座標値は、稜線分割数を使用して表現することができる。
【００４１】
ステップＳ１２で生成したブリッジ稜線は、図１に示したステップ（ステップＳ１４、ステップＳ２０、ステップＳ２２）の中で、稜線分割数と頂点のｉｊｋ座標値とを互いに変換するために利用される。ステップＳ１４、ステップＳ２０、ステップＳ２２では、ｉｊｋ座標値の関係として制約条件式、目的関数を一旦記述するが、整数計画問題の変数は稜線分割数なので、ｉｊｋ座標値から稜線分割数の式に変換する必要があるためである。
【００４２】
一方ステップＳ２４では逆に、稜線分割数から頂点のｉｊｋ座標値に変換するため、このステップで生成したブリッジ稜線を用いる。整数計画問題の解は稜線分割数の値として求まる。求められた分割数から頂点のｉｊｋ座標値を計算するために、ステップＳ１２で生成したブリッジ稜線を使用することができる。以下、ステップＳ１２において実行される処理を示す。
１）全ての内部ループをリストに入れる。
２）リストから１つずつ内部ループを取り出し、リストが空になるまで以下の処理を繰り返す。
２−１）内部ループの１頂点とその内部ループが属している外部ループの１頂点を選ぶ。
２−２）２点を結ぶ稜線列が存在するかどうかを調べる。
２−３）もし稜線列が存在しない場合には、２つの頂点を結ぶブリッジ稜線を認識モデルに追加する。
２−４）もし稜線列が存在する場合には、次の内部ループに処理を移す。
【００４３】
Ｂ．稜線推定長さから目的関数を生成するステップ
図１に示したステップＳ１４の処理は、図２（ｅ）の問題を解決するための本質的なステップであり、形状規制値としては、本発明の好適な実施の形態では、稜線の推定長さを使用することができ、さらに具体的な実施の形態では、各稜線の推定長さＬｊ’　（ｊ＝１，　…，　ｎ）をメッシュサイズＭで除算した値をＮｊ’　（ｊ＝１，　…，ｎ）として使用することができる。これは各稜線に対して推定された分割数、すなわち折れ線の数である。ステップＳ１４で行う処理は、この推定分割数Ｎｊ’と最終的に決定される分割数Ｎｊとの差が小さくなるように目的関数を生成することである。本発明における第１の方法は、下記式で示される目的関数における推定稜線長さの絶対値に関連した項を生成する。
【００４４】
【数５】
2004021773.tif 000008
【００４５】
上記式中、ｗｊは重み係数である。この式は絶対値を含む式であるが、線形な式に変換することができる。ここで、非負の補助変数ｒｊ＿ｐ，　ｒｊ＿ｍを新規に導入する。上述した補助変数を使用すれば、上記式で示された目的関数を、下記式で示される目的関数および下記式で示される制約条件のペアで書き換えることができる。
【００４６】
目的関数：
【数６】
2004021773.tif 000009
【００４７】
制約条件：
【数７】
2004021773.tif 000010
【００４８】
上記式のように分解できる理由は、最終的な解では目的関数の値が最小化されるためにｒｊ＿ｐとｒｊ＿ｍのどちらかは０となり、Ｎｊ＞Ｎｊ’ならばｒｊ＿ｐ＞０，　ｒｊ＿ｍ＝０となり、Ｎｊ’＜Ｎｊならばｒｊ＿ｐ＝０，　ｒｊ＿ｍ＞０となるためである。なお、上記式におけるｗｊも重み係数であり、この重み係数ｗｊは、Ｎｊ’が小さな稜線ほど、分割数１つの違いの影響が大きいので、Ｎｊ’が小さな稜線ほど大きな重み係数ｗｊを持つように設定することが望ましい。本発明の特定の実施の形態においては、例えばｗｊ＝１／Ｎｊ’を重み係数として採用することができる。
【００４９】
また本発明の別の実施の形態においては、推定稜線長さの絶対値に関連した項として、下記式を用いることもできる。
【００５０】
【数８】
2004021773.tif 000011
【００５１】
【数９】
2004021773.tif 000012
【００５２】
【数１０】
2004021773.tif 000013
【００５３】
本発明の好適な実施の形態では、ｚを推定分割数からの差分の総和を最小化する。しかしながら、本発明の他の実施の形態ではｚを、推定分割数からの差分の最大値とし、このｚを最小化する方法を使用することもできる。
【００５４】
Ｃ：稜線間の距離の項を目的関数に追加するステップ
このステップＳ１６は図２（ｆ）の問題を解決するために採用する第２の本質的なステップであり、形状規制値を生成するステップである。ステップＳ１４では、各稜線に対して推定分割数を計算し、推定分割数と生成された位置座標から得られる分割数との差の絶対値が小さくなるような項を、目的関数に追加した。セクションＣにおいて説明するステップでは、形状規制値として、稜線間および面間の距離を生成し、この変数を使用する目的関数における項を追加するステップである。図５は、稜線間および面間の距離の絶対値に関連する項を目的関数に追加することが必要な認識モデルの例を、２次元的に示した図である。ここで、図５を使用して説明すると、例えば図５において矢線Ａで示す稜線間の距離は、目的関数に組み込まれていない場合には、図５（ａ）（ｂ）において外部ループＯＬの内部ループＩＬに対する相対位置が３次元形状における相対位置から大きくずれることも生じる。位相的には、これらの内部ループＩＬと、外部ループＯＬとは、縮退や干渉といった条件には無いので、従来の制約条件を使用して認識モデルを生成したところで、最終的に生成されるメッシュには歪みが生じることになる。
【００５５】
図１のステップＳ１６は、図５の矢線Ａの例のように、稜線が存在しない部分に対して、２つの稜線間の推定分割数を計算して目的関数に追加する。このプロセスは、位相的に矛盾のない認識モデルを生成するために必要とされるステップではなく、上述したように、形状認識の不完全性を排除する。
【００５６】
稜線間または面間の距離を判断するためには、本発明においてＭｅｄｉａｌ　Ａｘｉｓ、またはＣｈｏｒｄａｌ　Ａｘｉｓを使用して、稜線がない部分の推定距離を計算することができる。上述した方法は、従来では形状の中心軸を計算するときに用いられる手法として使用されている。本発明においては、認識モデル生成において、稜線間または面間の距離を推定稜線長さと共に目的関数として採用することで、驚くべくことに認識モデルの形状認識における不都合を解消することが可能であることが見出された。以下では離散的なＣｈｏｒｄａｌ　Ａｘｉｓを利用した処理方法について説明する。以下、説明の簡略化のためｉｊ平面を使用して説明するが、ｊｋ，　ｋｉ平面の場合に関しても同様にして推定を行うことができる。
【００５７】
ここで、認識モデルの１つのｉｊ面を考える。このｉｊ面には、入力形状の表面の一部分が対応し、その表面の境界部分とｉｊ面の稜線とが対応している。そのｉｊ面に対応する形状表面部分を平面に投影する。この処理を示したのが図６である。図６（ａ）がＤｅｌａｕｎａｙ３角形分割を示し、図６（ｂ）、（ｃ）がＣｈｏｒｄａｌ　Ａｘｉｓを利用した処理方法を説明した概略的な図である。図６（ａ）に示すように、平面へと投影した２次元形状領域境界にのみ充分な点を与えてＤｅｌａｕｎａｙ３角形分割を行う。次いで、図６（ｂ）に示されるように、生成された３角形のうち、一辺が領域境界を規定する３角形のみを選択する。これらの三角形は、特定の２つの稜線を結ぶ３角形群に分けることができる。
【００５８】
ここで、図６（ｂ）に示されるように、３角形群が境界の稜線Ｅ１、Ｅ２の間に形成されたものとする。これらの３角形群の各３角形に対して、図６（ｂ）に示すように、境界にない２辺の中点を結ぶ線分を生成する。その後、図６（ｃ）に示すように、生成した線分の各端点から境界の辺に対して垂線Ｎを下ろす。稜線Ｅ１とＥ２とを結ぶ３角形群においてすべての垂線を平均し、この平均値を２倍した値を稜線Ｅ１、Ｅ２間の推定距離として採用することにより稜線間の距離を推定する。その推定距離を所与のメッシュサイズで除算した値をＮ’とし、稜線Ｅ１、Ｅ２間の分割数とＮ’との差の絶対値を、ステップＳ１４において説明した目的関数における第２の項として加算という態様で追加する。この処理をｉｊ面内のすべての３角形群に対して行うことにより、１つの面に関して稜線間の距離の項を目的関数に追加することができる。すなわち、本発明において使用する目的関数は、式（３）または式（５）で表現される推定稜線長さの絶対値に関連する項と、上述した推定稜線間隔または推定面間隔と、稜線Ｅ１−Ｅ２の間の距離により得られる間隔との差の絶対値に関連する項とを含む目的関数を生成する。この目的関数を、最小化させることにより、最適な認識モデルを生成する。
【００５９】
本発明においては、上述した処理を認識モデルのすべての面に対して行うことで、稜線間の距離を推定することができる。なお、面間の距離については、上述した本発明の好適な実施の形態で平面に射影した場合に射影される稜線の間隔を使用して、面間の距離を得ることができる。また、本発明の他の態様においては、面間について射影することなく、同様のＤｅｌａｕｎａｙ３角形分割を面間に適用することもできる。
【００６０】
Ｄ．向かい合う稜線の分割数が一致するための制約条件を生成するステップ
図１のステップＳ１８は、図２（ａ）の状態を判断し、解決するためのステップである。ステップＳ１８で生成する条件は、図２（ａ）に示すように面内における向かい合う稜線間で分割数の合計が一致しないような状態が生成しないようにする制約条件である。上述したように、認識モデルを構成するループは、ｉｊ平面、ｊｋ平面、ｋｉ平面の何れかに存在する。以下に、説明の簡略化のためｉｊ平面の場合についてのみ説明する。しかしながら、本発明におけるそれ以外の平面場合についても、同様にして制約条件を生成することが可能である。
【００６１】
ｉｊ平面にある１つのループを考える。上述したように、ループを構成する稜線は、“＋Ｉ”，　“−Ｉ”，　“＋Ｊ”，　“−Ｊ”の何れかラベルを有している。ステップＳ１８で生成する条件は、ラベル“＋Ｉ”を持つ稜線分割数の総和とラベル“−Ｉ”を持つ稜線分割数の総和とが等しいという条件、および同様に“＋Ｊ、　“−Ｊについての同様の条件であり、下記式で表される。
【００６２】
【数１１】
2004021773.tif 000014
上述した条件を使用して、本発明のステップＳ１８では、下記の処理を行う。
１）認識モデルを構成する全てのループをリストに入れる。
２）リストから１つずつループを取り出し、リストが空になるまで以下の処理を繰り返す。
２−１）ループに対して式（９）に示す２つの条件を整数計画問題の制約条件に追加する。
【００６３】
Ｅ．稜線が交差しないための制約条件を生成するステップ
このステップは、図１におけるステップＳ２０の処理に該当し、図２（ｂ）の状態を判断し、解決するためのステップであり、ステップＳ２０で生成される制約条件は、認識モデルの稜線が交差しないための制約条件である。上述したように、認識モデルを構成するループは、ｉｊ平面、ｊｋ平面、ｋｉ平面の何れかのラベルを有する。セクションＥでも説明の簡略化のためｉｊ平面の場合についてのみ説明するが、それ以外の場合に関しても同様にして制約条件を生成することができる。
【００６４】
ループを構成する稜線には、上述したと同様に、“＋Ｉ”，　“−Ｉ”，　“＋Ｊ”，　“−Ｊ”の何れかラベルが与えられている。図７は、稜線の交差の判断を行う処理の概略を示す。図７（ａ）が、交差する稜線を示し、図７（ｂ）が交差の判断を行う処理を示した図である。図７（ａ）に示すように、本発明の好適な実施の形態においては、ｉ軸に平行な１つの稜線をＥ０１としその両端点をＶ０［ｉ０，　ｊ０］，　Ｖ１［ｉ１，　ｊ１］　（ｉ１＞ｉ０），　ｊ軸に平行な稜線をＥａｂとし、その両端点をＶａ［ｉａ，　ｊａ］，　Ｖｂ［ｉｂ，　ｊｂ］（ｊａ＞ｊｂ）とする。この２つの稜線が交差する条件は、
【００６５】
【数１２】
2004021773.tif 000015
であり、交差しないための条件は、
【００６６】
【数１３】
2004021773.tif 000016
である。ここで、下記の条件を満たす変数Ｘ０ａ、Ｘ１ａ、　Ｙ０ｂ、Ｙ０ａを新たに生成する。
【００６７】
【数１４】
2004021773.tif 000017
【００６８】
上述した変数Ｘ０ａ、Ｘ１ａ、Ｙ０ｂ、Ｙ０ａを使用すれば、２稜線が交差しないための条件は、下記式で示される１つの線形な不等式で表現することができる。この理由は、変数Ｘ０ａ、Ｘ１ａ、　Ｙ０ｂ、Ｙ０ａのいずれかの値が１のとき、２稜線が交差しないといえるためである。
【００６９】
【数１５】
2004021773.tif 000018
【００７０】
ここで、変数Ｘ０ａ，　Ｘ１ａ，　Ｙ０ｂ，　Ｙ０ａが満たさなければいけない、式（１２）で示される条件を線形な方程式に変換する。変数Ｘ０ａを例として説明すると、図７（ｂ）に示すように、充分になだらかな上限直線（図７（ｂ）中の点線）と下限直線（図７（ｂ）中の実線）とを生成し、導入することにより、Ｘ０ａがとり得る値を０、１の２値となるように絞り込む。この方針に従って上記式（１２）を線形な式に変換すると下記式が得られる。
【００７１】
【数１６】
2004021773.tif 000019
【００７２】
上記式中、ｋｘ０ａはｉ０−ｉａが取りうる値と比べて充分に大きな値をもつ定数である。ここで、整数計画問題を解いた結果、ｋｘ０ａよりも値、｜ｉ０−ｉａ｜が大きくなる場合には、ｋ０ａの値を変えて整数計画問題を解き直し、式（１１）、（１２）を満たすように整数計画問題の処理を反復する。ｋｘ１ａ，　ｋｙ０ｂ，　ｋｙ０ａに関しても同様である。結論として式（１１）、（１２）が２つの稜線Ｅ０１，　Ｅａｂが交差しないための制約条件となる。
【００７３】
ステップＳ２０の処理手順は、各面を構成する稜線の組み合わせに対して、式（１１）および式（１２）に相当する制約条件を追加することである。しかしながら上述したステップＳ２０処理方法では、稜線の組み合わせによって、制約条件の数が著しく増加する。これを解消するために本発明の他の態様では、一度整数計画問題を解いて交差が生じた稜線ペアに対してのみ式（１１）および式（１２）に相当する制約条件を追加することで、制約条件の追加を行うことが好ましい。この処理方法に関しては、本発明の第２の実施の形態としてより詳細に後述する。
【００７４】
Ｆ：ループどうしの内外が反転しないための制約条件を生成するステップ
このステップは、図１におけるステップＳ２２に相当し、図２（ｃ）の状態を判断し、解決するためのステップである。ステップＳ２２で行われる判断および生成する制約条件は、内部ループＩＬが外部ループＯＬの外に出ないことを判断して、内部ループＩＬが外部ループＯＬの外に出ないための制約条件、また内部ループが別の内部ループの内部に含まれないための制約条件である。
【００７５】
このステップＳ２２では、ステップＳ２０において稜線が交差しないための条件が制約条件として追加されているため、ループの任意の１頂点が別のループの内部（あるいは外部）にあることを判断し、この判断に応じてステップＳ２２において制約条件を追加することができる。この理由は、もしその一点のみが内部（あるいは外部）にあり、それ以外の点が外部（あるいは内部）にある場合には稜線の交差が生じるために、稜線交差の制約条件により上述した状態が排除できるためである。
【００７６】
この場合でも、認識モデルを構成するループは、ｉｊ平面、ｊｋ平面、ｋｉ平面の何れかに含まれている。以下、本発明においてはｉｊ平面の場合についてのみ説明するが、それ以外のｊｋ平面、ｋｉ平面の場合に関しても同様にして制約条件を生成することができる。
【００７７】
図８には、ステップＳ２２において使用することができる内外判定方法を概略的に示す。ある頂点Ｖａ［ｉａ，　ｊａ］が、頂点Ｖ１［ｉ１，　ｊ１］，…，　Ｖｎ［ｉｎ，　ｊｎ］により構成されるループの内部（あるいは外部）にあることを判断するために、本発明においては内外判定を頂点の凹凸を利用して実行する。本発明においては、最初にインデックス値を０とし、各頂点の扇形領域Ｓ（図８に示すように稜線を延長してできるハッチングした領域）に対し、内外の判定を、点Ｖａが扇型領域Ｓの内部に存在する場合には、インデックス値に１加算し、Ｖａが扇型領域Ｓの内部にない場合には、０を加算する。ここで、本発明の好適な実施の形態では、インデックスのダブルカウントを避けるため、扇型領域Ｓの片側線上は外部扱いとする。しかしながら、扇形領域Ｓの片側線上を、内部扱いとする他の実施の形態でも同様の結果を得ることができる。
【００７８】
この判断をループのすべての頂点に関して反時計回りに繰り返し、最後にインデックス値を調べ、偶数ならば頂点Ｖａはループ内部、奇数ならばループ外部と判定できる。例えば、図８に示した実施の形態では、点Ｖａは、カウント値は、１なのでループ外となり、点Ｖｂは、カウント値が０なので、ループ内と判断される。認識モデルの面の稜線には既に、”＋Ｉ”，　“−Ｉ”，　“＋Ｉ”，　“−Ｉ”の属性が与えられているので、ループを半時計回りにたどるときに連続する３頂点Ｖｓ，　Ｖｔ，　Ｖｕは、図９（ａ）〜（ｈ）の８通りのいずれかの場合に分類される。図９（ａ）〜（ｄ）は、頂点が凸の場合であり、残りの図は頂点が凹の場合の実施の形態である。ここで、頂点が凸の例として図９（ａ）の場合を考える。点Ｖａが扇型領域にあるための判断条件は、図１０を参照して下記式で示される。
【００７９】
【数１７】
2004021773.tif 000020
（上記式中、一方のみ等号を含むのはインデックスを重複して数えないためである。）
ここで次の条件を満たす変数Ｂｔを新たに導入する。
【００８０】
【数１８】
2004021773.tif 000021
【００８１】
変数Ｂｔを使用すれば、点がループの内部にあるための条件は、上述したようにループを一周したときにインデックス値が偶数であることであるから、下記式の線形な制約条件で表現することができる。
【００８２】
【数１９】
2004021773.tif 000022
一方、点がループの外部にある条件は、上述したようにインデックス値が奇数であることから下記式で与えられる。
【００８３】
【数２０】
2004021773.tif 000023
ここで、新たに導入した変数Ｂｔに関する式（１６）を線形な制約条件で表現する必要があるが、それを行うために新たな変数Ｂｔ０，　Ｂｔ１，　Ｃｔを導入することにより、式（１６）を次のように書き換えることができる。
【００８４】
【数２１】
2004021773.tif 000024
【００８５】
再度、Ｂｔ０，　Ｂｔ１，　Ｂｔに関する３つの式を、稜線の交差判定で利用した上限と下限とを表す直線で挟む、図７で示した手法を使って、線形な制約式に書き直すと、下記式のように書き換えることができる。
【００８６】
【数２２】
2004021773.tif 000025
上記式（２０）中、ｋｂｔ０，　ｋｂｔ１は交差判定の場合と同様に、充分に大きな値である必要がある。ｋｂｔに関しては、Ｃｔが０，１，２の何れかの値しかとりえないので大きな値である必要はなく、３以上の小さな値でよい。同様にして図９（ｂ）、（ｃ）、（ｄ）に示す凸頂点に関しても同様にして制約条件を定めることができる。一方では凹頂点の例として、図９（ｆ）を考えると、点Ｖａが扇型領域にあるための条件は、
【００８７】
【数２３】
2004021773.tif 000026
となる。この扇形領域にあることを判断する条件も凸の場合と同様な操作で、線形な制約式に書き換えることができ、図９（ｇ）、（ｈ）、（ｉ）に関しても線形な制約式に書き換えることが可能である。
【００８８】
この結果、点Ｖａがループの内部にあるための制約条件は、各頂点に関する式（２０）と同様な式と、式（１７）との組として生成することができる。一方点Ｖａがループの外部にあるための制約条件は、頂点に関する式（２０）と同様な式と式（１８）との組として生成することができる。
【００８９】
これまでは、点のループに対する内外判定を行い、制約条件を生成する一般的な方法について説明した。以下に、この内外判定の制約条件を使って、ステップＳ２２で行う処理を示す。
１）認識モデルを構成するすべての面をリストに入れる。
２）リストから１つずつ面を取り出し、リストが空になるまで以下の処理を繰り返す。
２−１）面の外部ループに対して、内部ループの１頂点が内部にあるための制約条件を追加する。
２−２）面の内部ループの組み合わせに対して、ある内部ループに対して別の内部ループの１頂点が外部にあるための制約条件を追加する。
【００９０】
上述した各ステップを実行することにより、良好な内外判断を行うことができる。しかしながら本発明における内外判定の制約条件を認識モデルにおけるすべての要素に対して追加すると、整数計画問題を解く時間が急増し、計算時間やメモリなどのハードウエア資源を浪費することにもなる。さらに、上述した２−２）の処理は、内部ループの組み合わせによって、制約条件の数が爆発的に増加するという問題も生じる場合がある。そこで実用的には、一度整数計画問題を解いて、ループの反転が生じたループペアに対してのみ制約条件を追加することも可能である。この処理方法に関しては、本発明の第２の実施の形態においてより詳細に後述する。
【００９１】
Ｇ：稜線と面とが空間的に交差しないための制約条件を生成するステップ
このパラグラフでは、図２（ｄ）の状態を判断し、解決するための、図１のステップＳ２４の処理を説明する。図１のステップＳ２４で使用する判断条件は、認識モデルの稜線と面とが空間的に交差しない条件である。図１１に示すように、稜線と面との交差を解消する方法は２通りある。１つめは稜線と面との交点を面の外部に逃がす方法（図１１（ａ））であり、２つめは稜線の両端点が面のどちらか片方にとなるように逃がす方法（図１１（ｂ））である。図１１（ａ）に示した方法は、ステップＳ２２で説明したように、交点がループの外部にあるための制約条件として記述できる。また、図１１（ｂ）に示した方法は、ステップＳ２０で説明した稜線どうしが交差しないための制約条件と同様な制約条件として記述できる。この２種類の制約条件のいずれか（ｏｒ）が満たされることがステップＳ２４で生成する制約条件である。このため、ステップＳ２４の制約条件は、式（９）および式（１１）と同様の方法を使用して、（ｏｒ）を排除することにより判断条件および制約条件として生成することができる。
【００９２】
Ｈ．整数計画問題を解くステップ
このステップＳ２６は、ステップＳ１６〜ステップＳ２４で判断および生成した目的関数を最小化することにより、制約条件を使って整数計画問題を解くステップである。ステップＳ２６においては、これまで知られた既存の整数計画ソルバーであればいかなるものでも使用することができる。その結果、各稜線に対する分割数が決定する。さらにステップＳ２６では、ステップＳ１２で説明した方法により、稜線分割数から認識モデルのすべての頂点のｉｊｋ座標値を計算する。認識モデルの任意の頂点を原点［ｉ，ｊ，ｋ］＝［０，０，０］とすると、それ以外の頂点のｉｊｋ座標値は、稜線分割数を使って記述することができるため、稜線分割数が計算されていればｉｊｋ座標はこの方法により計算することができる。
【００９３】
以下、本発明の構造メッシュ生成方法の第２の実施の形態を説明する。本発明の構造メッシュ生成方法の第２の実施の形態においては、すべての稜線および面について反復的、かつ適応的に制約条件を追加し整数計画問題を解く方法を採用する。これまで説明した図１において説明した方法では、必要な制約条件をすべて作成してから、整数計画問題を解くものである。しかしながら、ハードウエア資源の節約および処理時間節約といった観点からは、必要な制約条件を稜線および面に対して判断し、制約条件を順次使用して整数計画問題を解く方法を採用することもできる。
【００９４】
図１２には、本発明の構造メッシュ生成方法の第２の実施の形態の方法のプロセスを示したフローチャートを示す。本発明の第２の実施の形態のプロセスは、ステップＳ４０において認識モデルの位相、メッシュサイズを入力し、ステップＳ４２において認識モデルにブリッジ稜線を追加する。さらに、ステップＳ４４において稜線推定長さから目的関数を生成し、ステップＳ４６において稜線間、面間の距離の項を目的関数に追加する。ついでステップＳ４８において向かい合う稜線の分割数が一致するための制約条件を生成する。
【００９５】
さらに本発明の第２の実施の形態におけるプロセスは、ステップＳ５０において上述した制約条件の下で整数計画問題をいったん解く。ステップＳ５２において、算出された稜線および面に対して上述した判断を実行し、制約条件を追加する必要がある稜線、面が有るか否かを判断する。制約条件を追加する必要がある稜線、面が有ると判断された場合（ｙｅｓ）には、ステップＳ５４において該当する制約条件を追加してステップＳ５０へと戻り、再度整数計画問題を解き、制約条件が発生しなくなるまで処理を繰り返す。ステップＳ５２の判断において制約条件を追加する必要がある稜線および面がない場合には、ステップＳ５６へと進み、認識モデルについて得られた構造メッシュのｉｊｋ座標を出力する。
【００９６】
図１３には、ステップＳ５０〜ステップＳ５４のプロセスを実行するための擬似コードの実施の形態を示す。
【００９７】
図１４は、本発明の上述した認識モデル生成方法を実行させるためのシステムの機能ブロック図を示す。図１４に示されたシステム１０は、３次元形状の入力手段１２と、認識モデル生成手段１４と、生成された認識モデルを出力するための３次元形状出力手段１６とを含んで構成されている。入力手段１２は、３次元形状の位置座標に関する数値データを保持しており、認識モデル生成手段１４へと３次元形状の数値データを入力している。
【００９８】
認識モデル生成手段１４は、中央処理装置（ＣＰＵ）を含んで構成されるパーソナル・コンピュータまたはワークステーションから構成することができる。本発明において使用することができるパーソナル・コンピュータ、またはワークステーションとしては、ＰＥＮＴＩＵＭ（登録商標）といったＣＰＵ、またはこれと互換性のあるＣＰＵを搭載することが可能で、ＷＩＮＤＯＷＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）ＮＴ、ＷＩＮＤＯＷＳ（登録商標）ＸＰ、ＯＳ／２（商標：インターナショナル・ビジネス・マシーンズ・コーポレーション）、ＡＩＸ（商標：インターナショナル・ビジネス・マシーンズ・コーポレーション）、ユニックス、リナックスといったオペレーティング・システムを動作させることが可能なパーソナル・コンピュータ、ワークステーションを挙げることができるが、これらのものに限定されるわけではない。
【００９９】
認識モデル生成手段１４は、さらに、ソフトウエア・モジュールなどとして構成することができる稜線・面認識手段１８と、形状規制値生成手段２０と、形状規制手段２２とを含んで構成されている。稜線・面認識手段１８は、入力手段１２から入力された３次元形状データに付された面および稜線のラベリングを解析して、稜線・面のラベルを識別し、認識モデルを生成するための稜線と、面とを特定している。
【０１００】
形状規制値生成手段２０は、本発明に従い、認識モデルにおいて稜線または面が位相的に矛盾がない場合であっても発生しうる、形状認識に不完全性が生じないように形状を規制する変数を生成する手段である。図１４に示されるように、形状規制値生成手段２０は、より詳細には、推定稜線長さ生成手段２０ａと、推定間隔生成手段２０ｂとを含んで構成されている。推定稜線長さ推定手段２０ａは、本発明において上述したように、形状規制値として使用される推定稜線長さを計算し、ソフトウエア・モジュールなどとして構成される形状規制手段２２が保持する稜線長さを規定する目的関数へと推定稜線長さを渡している。同様に、推定間隔生成手段２０ｂは、同様に稜線または面の推定間隔を計算して、形状規制手段２２が保持する稜線または面の間隔を規定する目的関数へと、生成された変数である間隔値を渡している。
【０１０１】
本発明においては、形状規制値生成手段２０は、変数値が必要とされるまで一時的に値を保持するためのメモリを含んで構成することができる。また、生成された形状規制値は、本発明の別の実施の形態では、認識モデル生成手段１４のいずれか適切な部分または認識モデル生成手段１４を構成する手段のいずれかに設けられたメモリ手段に一時的に記憶させておくことができる。
【０１０２】
形状規制手段２２は、これまで知られた既存の制約条件の他、本発明において形状規制値として機能する推定稜線長さに関連する項および推定間隔に関連する項を含む目的関数を保持している。図１４に示した形状規制手段２２は、整数計画問題解法手段２４の要求に応じて、制約条件を使用して上述した目的関数を最小化するように、別のソフトウエア・モジュールとして構成される、整数計画問題解法手段２４を動作させ、最適な認識モデルおよび構造メッシュを生成させている。また、本発明においては、上述した各機能手段を別々の構成のモジュールとして示しているが、本発明においては、上述したすべての機能モジュールを、例えば、整数計画問題解法モジュールとして一体として構成することもできる。
【０１０３】
本発明の第１の実施の形態においては、認識モデル生成システム１０は、すべての稜線および面について形状規制手段２２に保持された目的関数および制約条件の算出を実行させることにより、認識モデルの頂点の座標を繰り返し算出する。算出された認識モデルの頂点座標ｉｊｋは、出力手段１６へと出力され、図示しないディスプレイ手段に表示され、適切な段階で反復計算を停止させることができる構成とすることができる。反復計算の終了は、ディスプレイ上に出力された認識モデルを目視判断してユーザが終了させることもできるし、適切な終了条件を設定して、コンピュータにより終了判断を実行させることもできる。また出力された認識モデルの頂点の位置座標および構造メッシュの位置座標は、適切な記憶媒体に適切なフォーマットで記憶させることもできる。また、本発明の好適な実施の形態においては、認識モデル生成システムは、認識モデルをスムージングするための手段を含むことができる。
【０１０４】
図１５は、本発明の第２の実施の形態の認識モデル生成システム１０の実施の形態を示した図である。図１５に示された認識モデル生成システム１０においては、整数計画問題解法手段２４には、位相判断手段２６が構成される。この位相判断手段２６は、稜線・面認識手段１８により認識された稜線・面のラベリングに基づき、稜線および面の位相的な矛盾を制約条件を使用して判断し、その結果を稜線・面のデータと共に整数計画問題解法手段２４へと渡す。整数計画問題解法手段２４は、位相判断手段２６の出力を受けて、矛盾を生じている稜線または面について必要とされる制約条件を形状規制手段２２から取得し、図１３に示すように、制約条件に該当する稜線および面について、対応する制約条件および目的関数の下で整数計画問題を解く構成とされている。
【０１０５】
本発明の図１５に示した実施の形態においては、すべての稜線および面について制約条件および目的関数の計算を実行させることが必要とされないので、計算時間の短縮を可能とし、ハードウエア資源の節約を可能として、本発明の認識モデル生成システムの利用性をさらに向上させることができる。
【０１０６】
本発明の認識モデル生成方法を実行させるためのプログラムは、種々のプログラミング言語、例えばＣ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）、などを使用して記述することができ、本発明のプログラムを記述したコードは、磁気テープ、フレキシブル・ディスク、ハード・ディスク、コンパクト・ディスク、光磁気ディスク、ディジタル・バーサタイル・ディスク（ＤＶＤ）といったコンピュータ可読な記録媒体に保持させることができる。
【０１０７】
【実施例】
（実施例１）
本発明の手法により認識モデルを生成し、入力された３次元形状と比較を行った。実施例１では、認識モデルを生成し、その構造メッシュのｉｊｋ座標を計算した例を示す。処理方式としては、既存の目的関数としてＴａｍらの提案した目的関数を使用し、さらに本発明により形状認識を規制するための目的関数を含め、本発明にしたがい、図１２および図１３に示した反復的に制約条件を追加していく方法を用いた。また整数計画問題解法手段の停止は、ディスプレイに表示された認識モデルの形状を、入力した３次元形状と目視比較して判断した。
【０１０８】
図１６には、認識モデル生成処理において生成される３次元形状を示す。図１６（ａ）は、入力データとして使用される３次元形状であり、図１６（ｂ）は、表面を三角形を使用して分類して、稜線・面を認識させるために使用する途中の結果を示した図である。図１６（ｃ）は、本発明の手法により生成した認識モデルである。図１６（ｃ）に示される本発明により得られた認識モデルに対して、端部処理を施し、認識モデルに対して、６面体メッシュを生成した最終結果を図１６（ｄ）に示す。図１６に示すように、本発明によれば、入力した３次元形状に対応し、かつ良好な構造メッシュが生成された認識モデルが構成されているのが示される。
【０１０９】
（実施例２）
実施例１と同一の条件を使用して本発明において、稜線および面の干渉や縮退のない、良好な形状認識がなされた認識モデルの生成について検討を加えた。図１７には、図１６（ｃ）に示した認識モデルを、本発明の方法により生成する実施例を示す。表示を見やすくするために、図１７では、では３次元的な認識モデルを２次元的に見やすい方向から表示している。
【０１１０】
図１７（ａ）−（ｇ）に示すように、図１７においては、整数計画問題は、７回計算され、図１７（ｇ）に示すように、最終的に矛盾のない認識モデルが得られている。図１７（ａ）は、「向かい合う稜線の分割数が一致するための制約条件」のみを与えて整数計画問題を解いた結果である。この制約条件のみだとループに干渉が生じていることがわかる。さらに、図１７（ｂ）−（ｄ）では、Ｔ字形の内部ループが外部ループと干渉を起こさないように、稜線および面を指定し、制約条件を追加しながら計算を進めている。図１７（ｅ）では、左上の内部ループが外部ループと干渉しないように計算が実行された段階で出力した結果である。図１７（ｆ）−（ｇ）では、残りの中央付近の小さい内部ループが、他の内部ループや外部ループと干渉を起こさないように計算が実行されている。この結果、図１７（ｇ）において、干渉のない認識モデルを生成することができることが示されている。
【０１１１】
本発明によれば、凹な部分を含む可能性のある認識モデルに対してその稜線の分割数が不適切に計算された場合に、その稜線分割数から決定される認識モデルの形状自身が縮退や干渉する可能性を排除する条件を加味して稜線分割数を決定するため、縮退や干渉といった問題が生じないことを保証することができる。このため、特に本発明によれば、凹な部分を含む認識モデルに対しても、問題のないように確実に稜線分割数を決定することができる。
【０１１２】
また本発明では、その両者が可能な限り似た形状となるように形状を規制することができるので、より入力形状に近い認識モデルが自動的に生成されることになり、結果として最終的に生成される構造メッシュの質を向上させることができる。
【０１１３】
これまで本発明を図面に記載した具体的な実施の形態をもって説明してきたが、本発明は、上述した特定の実施の形態に制限されるものではなく、種々の変更例および他の実施の形態であっても、本発明の効果を奏する範囲において、これまで知られたいかなる構成要素であっても用いることができる。
【図面の簡単な説明】
【図１】本発明の認識モデル生成方法のプロセスの概略的なフローチャート。
【図２】制約条件の発生の態様を概略的に示した図。
【図３】本発明において、認識モデルにブリッジ稜線を追加するステップを説明した図。
【図４】３次元立体の認識モデルにおいて稜線を追加する実施の形態を示した図。
【図５】稜線間の距離の項を目的関数に追加することが必要な認識モデルの例を、２次元的に示した図。
【図６】本発明において稜線間の距離の項を目的関数に追加するステップを説明した図。
【図７】本発明において、稜線の交差の判断を行う処理の概略を示した図。
【図８】本発明において使用することができる内外判定方法を概略的に示した図。
【図９】本発明においてループを半時計回りにたどるときに連続する３頂点Ｖｓ、Ｖｔ、Ｖｕの分類を示した図。
【図１０】点が扇型領域にあるための判断条件を例示した図。
【図１１】本発明において、稜線と面との交差を解消する方法を示した概略図。
【図１２】本発明の認識モデル生成方法の第２の実施の形態の方法のプロセスを示したフローチャート。
【図１３】本発明の図１２に示したステップＳ５０〜ステップＳ５４のプロセスを実行するための擬似コードの実施の形態を示した図。
【図１４】本発明の第１の実施の形態の認識モデル生成システムの機能ブロック図。
【図１５】本発明の第２の実施の形態の認識モデル生成システムの機能ブロック図。
【図１６】本発明において、認識モデル生成処理において生成される３次元形状を示した図。
【図１７】図１６（ｃ）に示す認識モデルを、本発明の方法により生成する実施例を示した図。
【図１８】本発明において使用する認識モデルおよびその面、半稜線へのラベルの定義を示した図。
【図１９】従来の認識モデル生成の手順を示した図。
【図２０】従来法によるメッシュ作成方法を示した概略図。
【図２１】従来の構造メッシュの生成方法を示した概略図。
【図２２】従来の構造メッシュ生成のための別の方法を示した図。
【図２３】２次元形状へと次元を削減して認識モデルの縮退および干渉の不都合を概略的に示した図。
【符号の説明】
１０…認識モデル生成システム
１２…入力手段
１４…認識モデル生成手段
１６…３次元形状出力手段
１８…稜線・面認識手段
２０…形状規制値生成手段
２２…形状規制手段
２４…整数計画問題解法手段
２６…位相判断手段
【図１】
2004021773.tif 000027
【図２】
2004021773.tif 000028
【図３】
2004021773.tif 000029
【図４】
2004021773.tif 000030
【図５】
2004021773.tif 000031
【図６】
2004021773.tif 000032
【図７】
2004021773.tif 000033
【図８】
2004021773.tif 000034
【図９】
2004021773.tif 000035
【図１０】
2004021773.tif 000036
【図１１】
2004021773.tif 000037
【図１２】
2004021773.tif 000038
【図１３】
2004021773.tif 000039
【図１４】
2004021773.tif 000040
【図１５】
2004021773.tif 000041
【図１６】
2004021773.tif 000042
【図１７】
2004021773.tif 000043
【図１８】
2004021773.tif 000044
【図１９】
2004021773.tif 000045
【図２０】
2004021773.tif 000046
【図２１】
2004021773.tif 000047
【図２２】
2004021773.tif 000048
【図２３】
2004021773.tif 000049