JP3954909B2 - 認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システム - Google Patents
認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システム Download PDFInfo
- Publication number
- JP3954909B2 JP3954909B2 JP2002178068A JP2002178068A JP3954909B2 JP 3954909 B2 JP3954909 B2 JP 3954909B2 JP 2002178068 A JP2002178068 A JP 2002178068A JP 2002178068 A JP2002178068 A JP 2002178068A JP 3954909 B2 JP3954909 B2 JP 3954909B2
- Authority
- JP
- Japan
- Prior art keywords
- recognition model
- shape
- generating
- ridge line
- ridgeline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータによる3次元形状認識に関し、より詳細には、コンピュータが認識した3次元形状の幾何学的な不都合を自動的に修正することにより、より効率的に3次元形状から矛盾のない認識モデルを生成し、構造メッシュを生成することを可能とする、認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システムに関する。
【0002】
【従来の技術】
近年、コンピュータ技術の進歩により3次元形状の認識をコンピュータが行い、その結果をコンピュータ支援設計、いわゆるCAD、コンピュータ・グラフィックスにおけるテクスチャ割り当て、有限要素法などに適用する試みが行われている。コンピュータに対して、3次元形状を認識させるためには、3次元立体をより単純な図形、たとえば立方体の集合に置換して認識させるなど、種々の認識モデルが使用されている。認識モデルの生成は、概ね入力形状の概形を表す立体を中間データとして生成する。その立体を複数のグリッドに分割することにより6面体メッシュが生成される。
【0003】
一般に、認識モデルでは、ijk空間として参照される整数空間に定義される立体を使用する。認識モデルを構成する面は、すべてij平面、jk平面、あるいはki平面のいずれかと平行となるように定義される。この際、法線[i j k]=[1,0,0]を持つ面にはラベル”+I”が属性として与えられる。同様に、各面には、“+I”, “-I”, “+J”, “-J”, “+K”, “-K”の何れかのラベルが与えられる。下記表1に、各面と、各面を定義する法線との対応を示す。
【0004】
【表1】
【0005】
また、認識モデルは、シェル、面、ループ、半稜線、頂点を含んで構成された、いわゆるハーフエッジデータ構造で表現される。シェルは面の集合であり、面は外部ループと複数の内部ループから構成され、ループは半稜線の列として定義される。認識モデルの定義により、各半稜線はi, j, kの何れかの軸に平行とされる。[1,0,0]方向を持つ半稜線には、ラベル“+I”が属性として与えられ、面と同様に、各半稜線は、“+I”, “-I”, “+J”, “-J”, “+K”, “-K”の何れかの属性として分類される。認識モデルおよびその面、半稜線へのラベルの定義を図18に示す。以下、本明細書においては、向きを考慮しない時にはペアとなる半稜線を組にして単に稜線として参照する。
【0006】
一般に、認識モデルを中間データとして用いるメッシュ生成手法は、主として以下の4つのステップを含んで構成される。図19には、従来の認識モデル生成の手順を示す。図19に示すように、従来の認識モデルの生成においては、
1)入力された3次元形状(図19(a))の表面を“+I”, “-I”, “+J”, “-J”, “+K”, “-K”の何れかの属性を持つ部分に分類(図19(b))する。なお、図19(b)では、それぞれにラベルされた面と、K,J,Iの方向とを示す。
2)分類された表面から6面体の頂点で構成された認識モデルを生成する(図19(c))。上述したように、認識モデルの面は、3次元形状表面の一つの面へと対応付けられ、稜線は面の境界線へと対応付けられ、頂点は、面のかどの点へと対応付けられる。
3)認識モデルを所与のサイズのメッシュを使用してグリッド状に細分化して6面体メッシュとして表現する(図19(d))。
4)この6面体メッシュを入力された形状にフィッティングした後、スムージング処理を施して6面体要素における歪みを取り除くことにより、6面体メッシュのノード座標値を決定する(図19(e))。
【0007】
認識モデルをメッシュ生成の中間データとして生成する従来の方法が種々提案されており、代表的な方法として、高橋他、「形状認識を用いた三次元自動要素分割システムの開発」、日本機械学会論文集(A編),第59巻(569)、pp.279−285、1993年1、Reza Taghavi、“Automatic Block Decomposition Using Fuzzy Logic Analysis”(9th International Meshing Roundtable, pp. 187-192, 2000.)およびDavid R. Whiteらの“Automated Hexahedral Mesh Generation by Virtual Decomposition”(4th International Meshing Roundtable, 1995.)を挙げることができる。
【0008】
高橋らは、入力された形状(実モデル)の各辺に対して、 +I, -I, +J, -Jのいずれかのラベルが既に設定されている状態から認識モデルを作成する。図20には、高橋らの方法によるメッシュ作成方法を示す。各方向に属する線分の数をNs (s=(+I), (-I), (+J), or (-J))とし、実モデルにおける各辺の長さをls,t (t=1, …, Ns)、各方向の辺長さの合計をLs (s=(+I), (-I), (+J), or (-J))とする。一方認識モデルにおける各辺の長さを、ms,t (t=1, …, Ns)とし、各方向の辺長さの合計を、Ms (s=(+I), (-I), (+J), or (-J))とする。ここで求めたいものは、ms,tである。認識モデルの定義よりM(+I) = M(-I), M(+J) = M(-J)でなければならないので、Msを次の式により計算する。
【0009】
【数1】
【0010】
上式は、相対する方向の平均としてMsを求めることを意味する。これらのMsを使って、ms,tを下記式を使用して算出する。
【0011】
【数2】
以上が高橋らにより提案された認識モデル上での各稜線の長さを計算する方法である。しかしながらこの方法は、単に実モデル上での辺長さに近い値になるように認識モデル上での稜線長さを計算しているだけといえ、高橋らの方法では、認識モデル上で稜線の干渉が起きないことは、一切保証されていない。
【0012】
Taghaviらも同様に、認識モデルを中間データとして生成しているものの、Taghaviらの方法は、生成された認識モデルに対して干渉が起こらないようにどのように分割数を決定するかという問題に関しては、まったく対応できるものではない。また、Whiteは、既に表面の4角形構造メッシュが与えられている場合に、その内部にどのように6面体を生成するかについて検討している。Whiteによる予め与えられた表面の構造メッシュは、分割数の情報を既に含んでいる。このためWhiteによる方法では分割数を計算する必要が排除できる。しかしながらWhiteの方法は、表面のメッシュが与えられていない場合には適用することができないという不都合がある。
【0013】
また、これまで整数計画問題として稜線の分割数を決定する方法も提案されている。Tamら(T. K. H. Tam, ”Finite Element Mesh Control by Integer Programming”, International Journal for Numerical Methods in Engineering, Vol. 36, pp. 2581-2605, 1993.)およびScottら(Scott A. Mitchell(“High Fidelity Interval Assignment”, 6th International Meshing Roundtable, 1997.)は、予め粗いメッシュがすでに与えられている場合に、粗いメッシュをさらに細分化するための方法を提案している。図21には、Tamらにより提案された構造メッシュの生成方法を示す。Tamらの方法では、図21(a)に示されるように、予め粗いメッシュがすでに与えられているので、領域は、凸な形状の集まりに領域が分割されていることが前提とされる。この場合には、稜線や面の干渉などはすでに排除されており、稜線または面の干渉を除去することは必要とはされない。
【0014】
図22には、これまで知られた整数計画問題として稜線の分割数を決定するための別の方法を示す。図22に示したメッシュの生成方法は、Mitchell(Scott A. Mitchell, High Fidelity Interval Assignment, 6th International Meshing Roundtalbe, 1997)により提案されたものであり、構造メッシュと非構造メッシュとが混在する場合の分割数決定を取り扱っている。しかしながら、構造メッシュ生成の部分に関してはTamと同様に、凸な形状の処理を開示しているにすぎない。
【0015】
多くの3次元形状には、凹部が形成されており、このため凹部を含む3次元形状の認識モデルには、凹な部分を含む面が現れる。凹な部分を含む3次元形状に対して従来の認識モデル生成方法を適用すると、予期しない不都合が生成する場合がある。図23には、説明のため、2次元形状へと次元を削減して上述した不都合を概略的に示す。図23(a)が入力形状であり、図23(b)が生成された認識モデルである。従来の方法では、凹部分を含む図23(a)の形状が入力された場合には、稜線の分割数の割り当て方次第で稜線や面の縮退や干渉を生じ、図23(a)の入力形状が、図23(b)に示す矛盾した認識モデルを与えてしまう場合がある。図23に示した例では、凹部の存在によりメッシュが縮退または干渉しているのが例示的に示されている。なお、本発明において、稜線の縮退または干渉とは、稜線が他の稜線に重なり合ってしまったり、稜線が当該稜線が含まれる面以外の面と交差することを意味する。また、面の縮退または干渉とは、面が他の面と交差したり、面が他の面と重なり合ってしまうことを意味する。
【0016】
図23に示した従来の方法による問題点は、図23(b)に示した不都合を防止するべく、予めユーザの手作業により適切な荒いメッシュを生成させておくなどして対応しているものの、コンピュータが凹な部分を含む立体に対して縮退や干渉を生じないように分割数を決定できるものではない。ところで、上述したような凹部を含む3次元形状は、ごく普通に存在し、たとえば種々の機械要素、現実の物体においては通常現れる特徴であり、従来の方法における凹部処理の問題は、認識モデルの汎用的な利用性を制限してしまう1つの理由となっている。
【0017】
すなわち、これまで、向かい合う稜線の分割数の不一致により、グリッドが生成できず、その結果3次元立体の良好なメッシュが生成できないといった問題を発生せず、認識モデルにおける縮退や干渉といった不都合を自動的に排除することが必要とされていた。さらにこれまで、手作業を最大限に排除しつつ3次元立体の適切な認識モデルの自動的な生成およびメッシュ化を可能とすることが必要とされていた。
【0018】
【発明が解決しようとする課題】
本発明は、上述した従来技術の不都合に鑑みてなされたものであり、本発明は、入力された3次元形状を適切に分割し、面や稜線の縮退や干渉といった不都合を生じさせずに、手作業によりメッシュを割り当てるといった労力を排除することを可能とする、認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システムを提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明は、上述した認識モデルの生成において、認識モデルを所与のメッシュサイズを使用してグリッド状に細分化して6面体から構成される構造メッシュとして表現する場合に、分割数を最適に決定し、稜線や面の縮退および干渉を自動的に排除することにより中間データとして使用される認識モデルを生成することができれば、良好な構造メッシュを自動的にコンピュータにより生成することができる、という着想のもとになされたものである。
【0020】
本発明においては、認識モデルの面、稜線に対して付されるラベルを使用して、稜線の凹凸や面内での頂点の凹凸などの認識モデルの位相を判断して、目的関数および制約条件を生成する。同時に、本発明においては位相的な関係の他に、認識モデルの形状認識を規制することにより、良好な形状認識を実行させる。形状の規制は、形状規制値を生成し、形状規制値を使用する項を含む目的関数を採用することにより達成される。本発明において、上述した形状規制値は、目的関数に使用される各値のうちでも特に本発明において使用する目的関数の項に使用される値を意味し、具体的には推定稜線長さの値および稜線または面の推定間隔の値を示すものとして参照される。
【0021】
さらに、本発明においては、上述したように決定された認識モデルの各稜線および面の位相の関係を導入し、稜線や面の干渉を自動的に排除することにより、効率的に凹凸のある3次元形状に対する認識モデルに対して縮退および干渉の生成する条件を判断させ、生成する縮退および干渉に対応して、整数計画問題を修正しつつ認識モデルを生成する。
【0022】
本発明の好適な実施の形態においては、形状規制値としては、稜線の推定長さおよび稜線または面の推定距離を使用することができる。本発明によれば、認識モデルにおいてまず、形状規制値を使用した項を含む目的関数で形状認識を規制し、その後位相条件を満たすように稜線および面の分割を実行させることにより、入力3次元形状の良好な認識モデルを生成すると共に、良好な構造メッシュの自動生成を行うことが可能であることが見出された。
【0023】
生成された認識モデルは、構造メッシュ生成における中間モデルとして使用することができ、位相的に矛盾のない良好な構造メッシュを生成することを可能とする。また、生成された構造メッシュは、有限要素法などを使用した種々の力学的解析、構造解析、強度解析、劣化解析などのモデルを与えることができる。さらに、生成された認識モデルは、表面レンダリング技術に対しても好適に適用することができる。
【0024】
すなわち、本発明によれば、入力3次元形状の認識モデルを自動的に生成するシステムであって、
入力3次元形状の稜線および面のラベルを識別する手段と、
前記稜線および面のラベルに基づき形状規制値を生成するための手段と、
前記生成された形状規制値を使用して形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記認識モデルの頂点の位置座標を生成するための手段と
を含む、認識モデル生成システムが提供される。
【0025】
本発明における前記形状規制値を生成する手段は、
推定稜線長さを生成する手段と、推定稜線間隔または推定面間隔を生成する手段と、
を含む。本発明の前記形状規制手段は、前記生成された推定稜線長さと前記生成された位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数を含む。本発明の前記位置座標を生成するための手段は、さらに稜線および面の位相に関連する制約条件とを使用して前記位置座標を生成する手段を含む。
【0026】
本発明の認識モデル生成システムは、さらに、前記稜線および前記面のデータに基づいて前記稜線および面の位相条件を判断するための手段を含む。本発明における前記入力3次元形状は、凹部を含む形状であることが好ましい。
本発明においては、入力3次元形状の認識モデルを自動的に生成するための方法であって、該方法は、
入力3次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記入力3次元形状を6面体で置換して得られる形状の頂点の位置座標を生成するステップと
を含む、認識モデル生成方法が提供される。
【0027】
本発明においては、入力3次元形状の認識モデルを自動的に生成するための方法を実行するためのコンピュータ実行可能なプログラムであって、該プログラムは、
入力3次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
をコンピュータ・システムに実行させるプログラムが提供される。
【0028】
本発明においては、入力3次元形状の認識モデルを自動的に生成するための方法を実行するためのコンピュータ実行可能なプログラムが記録されたコンピュータ可読な記録媒体であって、
入力3次元形状の稜線および面のラベルを識別するステップと、
前記稜線および面のラベルに基づき形状規制値を生成して記憶するステップと、
前記生成された形状規制値を読み取って形状認識を規制するステップと、
前記形状規制を使用して、前記認識モデルの頂点の位置座標を生成するステップと
をコンピュータ・システムに実行させるプログラムが記録されたコンピュータ可読な記録媒体が提供される。
【0029】
本発明においては、入力3次元形状の認識モデルから自動的に構造メッシュを生成するシステムであって、
入力3次元形状の稜線および面のラベルを識別するための手段と、
前記稜線および面のラベルに基づき形状規制値を生成するための手段と、
前記生成された形状規制値を使用して形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記認識モデルを6面体で置換して得られる形状における各6面体の頂点の位置座標を生成するための手段とを含み、
前記形状規制値を生成する手段は、
推定稜線長さを生成する手段と、推定稜線間隔または推定面間隔を生成する手段と、を含む、構造メッシュ生成システムが提供される。
【0030】
【発明の実施の形態】
以下、本発明につき、図面に示した具体的な実施の形態をもって説明するが、本発明は後述する実施の形態に制限されるわけではない。本発明の認識モデル生成方法を概略的に説明すると、本発明では、まず認識モデルの稜線分割数を変数として整数計画問題を解くことにより、認識モデル頂点のijk座標値を計算する。整数計画問題とは一般的に下式に示すように、制約条件を満たし、かつ目的関数zを最小にする整数変数x1, …, xnを求める問題である。
目的関数:
【0031】
【数3】
【0032】
制約条件:
【数4】
上記式(2)中、cj、aij、biは、定数を示し、Zは整数全体の集合を表す。
【0033】
図1には、本発明の認識モデル生成方法のプロセスの概略的なフローチャートを示す。図1に示すプロセスは、まずステップS10において認識モデルに使用されるメッシュサイズおよび入力3次元形状の稜線および面といった3次元形状のデータを入力し、面および稜線に付されたラベルを識別する。しかしながら、本発明の他の実施の形態においては、入力された3次元形状のデータから稜線および面のラベリングを自動的に生成し、生成されたラベルを識別して後の処理に使用することもできる。入力データにおいて面として分類された3次元形状表面の一つの分類は、認識モデルにおける面に対応し、稜線は、境界線へと分類され、頂点は、認識モデルにおける角の点に対応する。さらに図1に示した本発明のプロセスは、ステップS12へと進み、認識モデルにブリッジ稜線を追加する。このステップS12は、より詳細には後述するように内部ループの位置座標を、算出するために必要なステップである。次いで、ステップS14において推定稜線長差さに関連する目的関数を生成し、ステップS16において、稜線間または面間の推定距離を生成し、これらの要素を目的関数として追加する。
【0034】
ステップS18〜ステップS24において、本発明において自動的に縮退および干渉を解消させるために必要とされる位相条件を含んで構成される制約条件を、整数計画問題に含ませる。これらのステップは、本発明において特に凹形状を扱うことができるようにするために本発明で採用するステップである。以下では各処理ステップについて説明する。ステップS26においてステップS14〜ステップS24において含ませた条件を使用して整数計画問題を解くことにより、認識モデルを生成し、ステップS28において、認識モデルにおける頂点のijk座標値を出力する。以下、本発明の図1に示したプロセスの詳細を説明する前に、本発明において、稜線および面の縮退および干渉および最適な分割数を得るための条件について以下に概略的に説明する。
【0035】
図2は、上述した稜線および面の縮退および干渉の発生する態様(位相条件)および形状認識の不完全な場合の態様を例示した図である。稜線および面の縮退制約条件の発生を概略的に示した図である。図2(a)〜図2(d)が位相条件に関連する状態であり、図2(e)〜図2(f)が、形状認識の不完全さに起因する状態である。図2に沿って説明すると、図2(a)は、稜線分割数の和が向かい合う方向で一致しない場合である。図2(a)に示した稜線E1, E2の分割数合計は、7であるのに対して、稜線E3の分割数が8となっている。このため図2(a)に示した場合には、認識モデルをメッシュに分割することができない。図2(b)は、認識モデルを構成する面に干渉が生じた状態であり、図2(c)は、認識モデルを構成する面内においてループどうしの位相が反転した状態である。いずれの状態が生成しても、良好なメッシュへの分割ができなくなる。また、図2(d)は、認識モデルを構成するすべての面には問題がないにもかかわらず、認識モデルが空間的に干渉した状態が生成しており、この場合にもグリッド状の分割ができなくなるという不都合が生じる。
【0036】
また、形状認識の不完全な場合の態様としては、図2(e)に示すように、稜線長さが入力形状(実モデル)と比べて大きく異なる問題である。この場合、最終的に生成されるメッシュは大きく歪んだメッシュとなる。また、これとは別に、図2(f)に示すように、認識モデル上での稜線間の間隔や内部ループの位置関係が実モデルと比べて大きく異なるという形状認識の不完全な態様も存在する。図2(e)の状態との違いは、図2(f)の場合には対応する1つの稜線が存在しないことにある。この場合にも最終的に生成されるメッシュは大きく歪んだメッシュとなる。
【0037】
本発明者らは、鋭意検討を加えた結果、上述した6種類の問題のうち図2(a)〜図2(d)の縮退および干渉という位相的な不都合は、整数計画問題における制約条件を新たに採用することにより充分に対応することが可能であり、図2(e)〜図2(f)の形状認識における不完全性については、推定稜線長さおよび推定稜線または面間隔に関連する項を含ませた目的関数を、整数計画問題において採用することにより充分な精度をもって解決することができることを見出し、本発明に至ったものである。以下、上述した制約条件および目的関数に基づいて、本発明の認識モデル生成方法について説明する。
【0038】
A.認識モデルにブリッジ稜線を追加するステップ
ここで、認識モデルの稜線分割数を、Ns(s=1, …, n)とし、認識モデルの何れの面も内部ループを持たない認識モデルについて検討する。この認識モデルにおける任意の頂点を原点[i,j,k]=[0,0,0]とすると、それ以外の頂点のijk座標値は、稜線分割数により表現することができる。簡単のため、図3に示したij空間にある2次元の例を用いて説明する。図3(a)が稜線追加前の認識モデルであり、図3(b)が、内側にループを含む認識モデルであって、本発明により稜線が追加された後の認識モデルである。
【0039】
図3(a)に示された認識モデルにおいて頂点V0を原点とすると、頂点Vaの座標値は、[N0-N2, N1]となる。一方認識モデルの面が内部ループILを持つ場合、内部ループILと外部ループOLとは稜線で結ばれていないため、その相対位置関係を稜線分割数を使って表現することはできない。このため、本発明においては図3(b)に示すように、ブリッジ稜線Bと呼ぶ仮想稜線を導入する。ブリッジ稜線Bは、外部ループOL上の頂点と内部ループIL上の頂点を結ぶ稜線であり、それには2つの座標方向の分割数が割り当てられる。導入するブリッジ稜線Bの個数は、認識モデルの任意の頂点から任意の別の頂点まで稜線続きでたどることができるための必要最低限の数とすることが好ましい。簡単のためにij空間にある2次元の例を図3(b)を使用して説明すると、ブリッジ稜線には位置座標Nbi、Nbjが割り当てられているため、頂点V0を原点とすると、頂点Vbのij座標値は[N0-Nbi-N8, N1-Nbj-N7+N9]で表される。
【0040】
図4は、3次元立体の認識モデルにおいて稜線を追加する実施の形態を示した図である。図4に示した認識モデルでは、奥の面Fについても内部ループILを有する。内部ループILと外部ループOLとの位置関係を手前の面のブリッジ稜線を経由して得ることができるため、奥の面Fについては、ブリッジ稜線は導入しなくともすむ。このようにブリッジ稜線Bを導入することにより、認識モデルの任意の頂点を原点[i,j,k]=[0,0,0]とすると、それ以外の全ての頂点のijk座標値は、稜線分割数を使用して表現することができる。
【0041】
ステップS12で生成したブリッジ稜線は、図1に示したステップ(ステップS14、ステップS20、ステップS22)の中で、稜線分割数と頂点のijk座標値とを互いに変換するために利用される。ステップS14、ステップS20、ステップS22では、ijk座標値の関係として制約条件式、目的関数を一旦記述するが、整数計画問題の変数は稜線分割数なので、ijk座標値から稜線分割数の式に変換する必要があるためである。
【0042】
一方ステップS24では逆に、稜線分割数から頂点のijk座標値に変換するため、このステップで生成したブリッジ稜線を用いる。整数計画問題の解は稜線分割数の値として求まる。求められた分割数から頂点のijk座標値を計算するために、ステップS12で生成したブリッジ稜線を使用することができる。以下、ステップS12において実行される処理を示す。
1)全ての内部ループをリストに入れる。
2)リストから1つずつ内部ループを取り出し、リストが空になるまで以下の処理を繰り返す。
2−1)内部ループの1頂点とその内部ループが属している外部ループの1頂点を選ぶ。
2−2)2点を結ぶ稜線列が存在するかどうかを調べる。
2−3)もし稜線列が存在しない場合には、2つの頂点を結ぶブリッジ稜線を認識モデルに追加する。
2−4)もし稜線列が存在する場合には、次の内部ループに処理を移す。
【0043】
B.稜線推定長さから目的関数を生成するステップ
図1に示したステップS14の処理は、図2(e)の問題を解決するための本質的なステップであり、形状規制値としては、本発明の好適な実施の形態では、稜線の推定長さを使用することができ、さらに具体的な実施の形態では、各稜線の推定長さLj’ (j=1, …, n)をメッシュサイズMで除算した値をNj’ (j=1, …, n)として使用することができる。これは各稜線に対して推定された分割数、すなわち折れ線の数である。ステップS14で行う処理は、この推定分割数Nj’と最終的に決定される分割数Njとの差が小さくなるように目的関数を生成することである。本発明における第1の方法は、下記式で示される目的関数における推定稜線長さの絶対値に関連した項を生成する。
【0044】
【数5】
【0045】
上記式中、wjは重み係数である。この式は絶対値を含む式であるが、線形な式に変換することができる。ここで、非負の補助変数rj_p, rj_mを新規に導入する。上述した補助変数を使用すれば、上記式で示された目的関数を、下記式で示される目的関数および下記式で示される制約条件のペアで書き換えることができる。
【0046】
目的関数:
【数6】
【0047】
制約条件:
【数7】
【0048】
上記式のように分解できる理由は、最終的な解では目的関数の値が最小化されるためにrj_pとrj_mのどちらかは0となり、Nj>Nj’ならばrj_p>0, rj_m=0となり、Nj’<Njならばrj_p=0, rj_m>0となるためである。なお、上記式におけるwjも重み係数であり、この重み係数wjは、Nj’が小さな稜線ほど、分割数1つの違いの影響が大きいので、Nj’が小さな稜線ほど大きな重み係数wjを持つように設定することが望ましい。本発明の特定の実施の形態においては、例えばwj=1/Nj’を重み係数として採用することができる。
【0049】
また本発明の別の実施の形態においては、推定稜線長さの絶対値に関連した項として、下記式を用いることもできる。
【0050】
【数8】
【0051】
【数9】
【0052】
【数10】
【0053】
本発明の好適な実施の形態では、zを推定分割数からの差分の総和を最小化する。しかしながら、本発明の他の実施の形態ではzを、推定分割数からの差分の最大値とし、このzを最小化する方法を使用することもできる。
【0054】
C:稜線間の距離の項を目的関数に追加するステップ
このステップS16は図2(f)の問題を解決するために採用する第2の本質的なステップであり、形状規制値を生成するステップである。ステップS14では、各稜線に対して推定分割数を計算し、推定分割数と生成された位置座標から得られる分割数との差の絶対値が小さくなるような項を、目的関数に追加した。セクションCにおいて説明するステップでは、形状規制値として、稜線間および面間の距離を生成し、この変数を使用する目的関数における項を追加するステップである。図5は、稜線間および面間の距離の絶対値に関連する項を目的関数に追加することが必要な認識モデルの例を、2次元的に示した図である。ここで、図5を使用して説明すると、例えば図5において矢線Aで示す稜線間の距離は、目的関数に組み込まれていない場合には、図5(a)(b)において外部ループOLの内部ループILに対する相対位置が3次元形状における相対位置から大きくずれることも生じる。位相的には、これらの内部ループILと、外部ループOLとは、縮退や干渉といった条件には無いので、従来の制約条件を使用して認識モデルを生成したところで、最終的に生成されるメッシュには歪みが生じることになる。
【0055】
図1のステップS16は、図5の矢線Aの例のように、稜線が存在しない部分に対して、2つの稜線間の推定分割数を計算して目的関数に追加する。このプロセスは、位相的に矛盾のない認識モデルを生成するために必要とされるステップではなく、上述したように、形状認識の不完全性を排除する。
【0056】
稜線間または面間の距離を判断するためには、本発明においてMedial Axis、またはChordal Axisを使用して、稜線がない部分の推定距離を計算することができる。上述した方法は、従来では形状の中心軸を計算するときに用いられる手法として使用されている。本発明においては、認識モデル生成において、稜線間または面間の距離を推定稜線長さと共に目的関数として採用することで、驚くべくことに認識モデルの形状認識における不都合を解消することが可能であることが見出された。以下では離散的なChordal Axisを利用した処理方法について説明する。以下、説明の簡略化のためij平面を使用して説明するが、jk, ki平面の場合に関しても同様にして推定を行うことができる。
【0057】
ここで、認識モデルの1つのij面を考える。このij面には、入力形状の表面の一部分が対応し、その表面の境界部分とij面の稜線とが対応している。そのij面に対応する形状表面部分を平面に投影する。この処理を示したのが図6である。図6(a)がDelaunay3角形分割を示し、図6(b)、(c)がChordal Axisを利用した処理方法を説明した概略的な図である。図6(a)に示すように、平面へと投影した2次元形状領域境界にのみ充分な点を与えてDelaunay3角形分割を行う。次いで、図6(b)に示されるように、生成された3角形のうち、一辺が領域境界を規定する3角形のみを選択する。これらの三角形は、特定の2つの稜線を結ぶ3角形群に分けることができる。
【0058】
ここで、図6(b)に示されるように、3角形群が境界の稜線E1、E2の間に形成されたものとする。これらの3角形群の各3角形に対して、図6(b)に示すように、境界にない2辺の中点を結ぶ線分を生成する。その後、図6(c)に示すように、生成した線分の各端点から境界の辺に対して垂線Nを下ろす。稜線E1とE2とを結ぶ3角形群においてすべての垂線を平均し、この平均値を2倍した値を稜線E1、E2間の推定距離として採用することにより稜線間の距離を推定する。その推定距離を所与のメッシュサイズで除算した値をN’とし、稜線E1、E2間の分割数とN’との差の絶対値を、ステップS14において説明した目的関数における第2の項として加算という態様で追加する。この処理をij面内のすべての3角形群に対して行うことにより、1つの面に関して稜線間の距離の項を目的関数に追加することができる。すなわち、本発明において使用する目的関数は、式(3)または式(5)で表現される推定稜線長さの絶対値に関連する項と、上述した推定稜線間隔または推定面間隔と、稜線E1-E2の間の距離により得られる間隔との差の絶対値に関連する項とを含む目的関数を生成する。この目的関数を、最小化させることにより、最適な認識モデルを生成する。
【0059】
本発明においては、上述した処理を認識モデルのすべての面に対して行うことで、稜線間の距離を推定することができる。なお、面間の距離については、上述した本発明の好適な実施の形態で平面に射影した場合に射影される稜線の間隔を使用して、面間の距離を得ることができる。また、本発明の他の態様においては、面間について射影することなく、同様のDelaunay3角形分割を面間に適用することもできる。
【0060】
D.向かい合う稜線の分割数が一致するための制約条件を生成するステップ
図1のステップS18は、図2(a)の状態を判断し、解決するためのステップである。ステップS18で生成する条件は、図2(a)に示すように面内における向かい合う稜線間で分割数の合計が一致しないような状態が生成しないようにする制約条件である。上述したように、認識モデルを構成するループは、ij平面、jk平面、ki平面の何れかに存在する。以下に、説明の簡略化のためij平面の場合についてのみ説明する。しかしながら、本発明におけるそれ以外の平面場合についても、同様にして制約条件を生成することが可能である。
【0061】
ij平面にある1つのループを考える。上述したように、ループを構成する稜線は、“+I”, “-I”, “+J”, “-J”の何れかラベルを有している。ステップS18で生成する条件は、ラベル“+I”を持つ稜線分割数の総和とラベル“-I”を持つ稜線分割数の総和とが等しいという条件、および同様に“+J、 “-Jについての同様の条件であり、下記式で表される。
【0062】
【数11】
上述した条件を使用して、本発明のステップS18では、下記の処理を行う。
1)認識モデルを構成する全てのループをリストに入れる。
2)リストから1つずつループを取り出し、リストが空になるまで以下の処理を繰り返す。
2−1)ループに対して式(9)に示す2つの条件を整数計画問題の制約条件に追加する。
【0063】
E.稜線が交差しないための制約条件を生成するステップ
このステップは、図1におけるステップS20の処理に該当し、図2(b)の状態を判断し、解決するためのステップであり、ステップS20で生成される制約条件は、認識モデルの稜線が交差しないための制約条件である。上述したように、認識モデルを構成するループは、ij平面、jk平面、ki平面の何れかのラベルを有する。セクションEでも説明の簡略化のためij平面の場合についてのみ説明するが、それ以外の場合に関しても同様にして制約条件を生成することができる。
【0064】
ループを構成する稜線には、上述したと同様に、“+I”, “-I”, “+J”, “-J”の何れかラベルが与えられている。図7は、稜線の交差の判断を行う処理の概略を示す。図7(a)が、交差する稜線を示し、図7(b)が交差の判断を行う処理を示した図である。図7(a)に示すように、本発明の好適な実施の形態においては、i軸に平行な1つの稜線をE01としその両端点をV0[i0, j0], V1[i1, j1] (i1>i0), j軸に平行な稜線をEabとし、その両端点をVa[ia, ja], Vb[ib, jb](ja>jb)とする。この2つの稜線が交差する条件は、
【0065】
【数12】
であり、交差しないための条件は、
【0066】
【数13】
である。ここで、下記の条件を満たす変数X0a、X1a、 Y0b、Y0aを新たに生成する。
【0067】
【数14】
【0068】
上述した変数X0a、X1a、Y0b、Y0aを使用すれば、2稜線が交差しないための条件は、下記式で示される1つの線形な不等式で表現することができる。この理由は、変数X0a、X1a、 Y0b、Y0aのいずれかの値が1のとき、2稜線が交差しないといえるためである。
【0069】
【数15】
【0070】
ここで、変数X0a, X1a, Y0b, Y0aが満たさなければいけない、式(12)で示される条件を線形な方程式に変換する。変数X0aを例として説明すると、図7(b)に示すように、充分になだらかな上限直線(図7(b)中の点線)と下限直線(図7(b)中の実線)とを生成し、導入することにより、X0aがとり得る値を0、1の2値となるように絞り込む。この方針に従って上記式(12)を線形な式に変換すると下記式が得られる。
【0071】
【数16】
【0072】
上記式中、kx0aはi0-iaが取りうる値と比べて充分に大きな値をもつ定数である。ここで、整数計画問題を解いた結果、kx0aよりも値、|i0-ia|が大きくなる場合には、k0aの値を変えて整数計画問題を解き直し、式(11)、(12)を満たすように整数計画問題の処理を反復する。kx1a, ky0b, ky0aに関しても同様である。結論として式(11)、(12)が2つの稜線E01, Eabが交差しないための制約条件となる。
【0073】
ステップS20の処理手順は、各面を構成する稜線の組み合わせに対して、式(11)および式(12)に相当する制約条件を追加することである。しかしながら上述したステップS20処理方法では、稜線の組み合わせによって、制約条件の数が著しく増加する。これを解消するために本発明の他の態様では、一度整数計画問題を解いて交差が生じた稜線ペアに対してのみ式(11)および式(12)に相当する制約条件を追加することで、制約条件の追加を行うことが好ましい。この処理方法に関しては、本発明の第2の実施の形態としてより詳細に後述する。
【0074】
F:ループどうしの内外が反転しないための制約条件を生成するステップ
このステップは、図1におけるステップS22に相当し、図2(c)の状態を判断し、解決するためのステップである。ステップS22で行われる判断および生成する制約条件は、内部ループILが外部ループOLの外に出ないことを判断して、内部ループILが外部ループOLの外に出ないための制約条件、また内部ループが別の内部ループの内部に含まれないための制約条件である。
【0075】
このステップS22では、ステップS20において稜線が交差しないための条件が制約条件として追加されているため、ループの任意の1頂点が別のループの内部(あるいは外部)にあることを判断し、この判断に応じてステップS22において制約条件を追加することができる。この理由は、もしその一点のみが内部(あるいは外部)にあり、それ以外の点が外部(あるいは内部)にある場合には稜線の交差が生じるために、稜線交差の制約条件により上述した状態が排除できるためである。
【0076】
この場合でも、認識モデルを構成するループは、ij平面、jk平面、ki平面の何れかに含まれている。以下、本発明においてはij平面の場合についてのみ説明するが、それ以外のjk平面、ki平面の場合に関しても同様にして制約条件を生成することができる。
【0077】
図8には、ステップS22において使用することができる内外判定方法を概略的に示す。ある頂点Va[ia, ja]が、頂点V1[i1, j1],…, Vn[in, jn]により構成されるループの内部(あるいは外部)にあることを判断するために、本発明においては内外判定を頂点の凹凸を利用して実行する。本発明においては、最初にインデックス値を0とし、各頂点の扇形領域S(図8に示すように稜線を延長してできるハッチングした領域)に対し、内外の判定を、点Vaが扇型領域Sの内部に存在する場合には、インデックス値に1加算し、Vaが扇型領域Sの内部にない場合には、0を加算する。ここで、本発明の好適な実施の形態では、インデックスのダブルカウントを避けるため、扇型領域Sの片側線上は外部扱いとする。しかしながら、扇形領域Sの片側線上を、内部扱いとする他の実施の形態でも同様の結果を得ることができる。
【0078】
この判断をループのすべての頂点に関して反時計回りに繰り返し、最後にインデックス値を調べ、偶数ならば頂点Vaはループ内部、奇数ならばループ外部と判定できる。例えば、図8に示した実施の形態では、点Vaは、カウント値は、1なのでループ外となり、点Vbは、カウント値が0なので、ループ内と判断される。認識モデルの面の稜線には既に、”+I”, “-I”, “+I”, “-I”の属性が与えられているので、ループを反時計回りにたどるときに連続する3頂点Vs, Vt, Vuは、図9(a)〜(h)の8通りのいずれかの場合に分類される。図9(a)〜(d)は、頂点が凸の場合であり、残りの図は頂点が凹の場合の実施の形態である。ここで、頂点が凸の例として図9(a)の場合を考える。点Vaが扇型領域にあるための判断条件は、図10を参照して下記式で示される。
【0079】
【数17】
(上記式中、一方のみ等号を含むのはインデックスを重複して数えないためである。)
ここで次の条件を満たす変数Btを新たに導入する。
【0080】
【数18】
【0081】
変数Btを使用すれば、点がループの内部にあるための条件は、上述したようにループを一周したときにインデックス値が偶数であることであるから、下記式の線形な制約条件で表現することができる。
【0082】
【数19】
一方、点がループの外部にある条件は、上述したようにインデックス値が奇数であることから下記式で与えられる。
【0083】
【数20】
ここで、新たに導入した変数Btに関する式(16)を線形な制約条件で表現する必要があるが、それを行うために新たな変数Bt0, Bt1, Ctを導入することにより、式(16)を次のように書き換えることができる。
【0084】
【数21】
【0085】
再度、Bt0, Bt1, Btに関する3つの式を、稜線の交差判定で利用した上限と下限とを表す直線で挟む、図7で示した手法を使って、線形な制約式に書き直すと、下記式のように書き換えることができる。
【0086】
【数22】
上記式(20)中、kbt0, kbt1は交差判定の場合と同様に、充分に大きな値である必要がある。kbtに関しては、Ctが0,1,2の何れかの値しかとりえないので大きな値である必要はなく、3以上の小さな値でよい。同様にして図9(b)、(c)、(d)に示す凸頂点に関しても同様にして制約条件を定めることができる。一方では凹頂点の例として、図9(f)を考えると、点Vaが扇型領域にあるための条件は、
【0087】
【数23】
となる。この扇形領域にあることを判断する条件も凸の場合と同様な操作で、線形な制約式に書き換えることができ、図9(g)、(h)、(i)に関しても線形な制約式に書き換えることが可能である。
【0088】
この結果、点Vaがループの内部にあるための制約条件は、各頂点に関する式(20)と同様な式と、式(17)との組として生成することができる。一方点Vaがループの外部にあるための制約条件は、頂点に関する式(20)と同様な式と式(18)との組として生成することができる。
【0089】
これまでは、点のループに対する内外判定を行い、制約条件を生成する一般的な方法について説明した。以下に、この内外判定の制約条件を使って、ステップS22で行う処理を示す。
1)認識モデルを構成するすべての面をリストに入れる。
2)リストから1つずつ面を取り出し、リストが空になるまで以下の処理を繰り返す。
2−1)面の外部ループに対して、内部ループの1頂点が内部にあるための制約条件を追加する。
2−2)面の内部ループの組み合わせに対して、ある内部ループに対して別の内部ループの1頂点が外部にあるための制約条件を追加する。
【0090】
上述した各ステップを実行することにより、良好な内外判断を行うことができる。しかしながら本発明における内外判定の制約条件を認識モデルにおけるすべての要素に対して追加すると、整数計画問題を解く時間が急増し、計算時間やメモリなどのハードウエア資源を浪費することにもなる。さらに、上述した2−2)の処理は、内部ループの組み合わせによって、制約条件の数が爆発的に増加するという問題も生じる場合がある。そこで実用的には、一度整数計画問題を解いて、ループの反転が生じたループペアに対してのみ制約条件を追加することも可能である。この処理方法に関しては、本発明の第2の実施の形態においてより詳細に後述する。
【0091】
G:稜線と面とが空間的に交差しないための制約条件を生成するステップ
このパラグラフでは、図2(d)の状態を判断し、解決するための、図1のステップS24の処理を説明する。図1のステップS24で使用する判断条件は、認識モデルの稜線と面とが空間的に交差しない条件である。図11に示すように、稜線と面との交差を解消する方法は2通りある。1つめは稜線と面との交点を面の外部に逃がす方法(図11(a))であり、2つめは稜線の両端点が面のどちらか片方にとなるように逃がす方法(図11(b))である。図11(a)に示した方法は、ステップS22で説明したように、交点がループの外部にあるための制約条件として記述できる。また、図11(b)に示した方法は、ステップS20で説明した稜線どうしが交差しないための制約条件と同様な制約条件として記述できる。この2種類の制約条件のいずれか(or)が満たされることがステップS24で生成する制約条件である。このため、ステップS24の制約条件は、式(9)および式(11)と同様の方法を使用して、(or)を排除することにより判断条件および制約条件として生成することができる。
【0092】
H.整数計画問題を解くステップ
このステップS26は、ステップS16〜ステップS24で判断および生成した目的関数を最小化することにより、制約条件を使って整数計画問題を解くステップである。ステップS26においては、これまで知られた既存の整数計画ソルバーであればいかなるものでも使用することができる。その結果、各稜線に対する分割数が決定する。さらにステップS26では、ステップS12で説明した方法により、稜線分割数から認識モデルのすべての頂点のijk座標値を計算する。認識モデルの任意の頂点を原点[i,j,k]=[0,0,0]とすると、それ以外の頂点のijk座標値は、稜線分割数を使って記述することができるため、稜線分割数が計算されていればijk座標はこの方法により計算することができる。
【0093】
以下、本発明の構造メッシュ生成方法の第2の実施の形態を説明する。本発明の構造メッシュ生成方法の第2の実施の形態においては、すべての稜線および面について反復的、かつ適応的に制約条件を追加し整数計画問題を解く方法を採用する。これまで説明した図1において説明した方法では、必要な制約条件をすべて作成してから、整数計画問題を解くものである。しかしながら、ハードウエア資源の節約および処理時間節約といった観点からは、必要な制約条件を稜線および面に対して判断し、制約条件を順次使用して整数計画問題を解く方法を採用することもできる。
【0094】
図12には、本発明の構造メッシュ生成方法の第2の実施の形態の方法のプロセスを示したフローチャートを示す。本発明の第2の実施の形態のプロセスは、ステップS40において認識モデルの位相、メッシュサイズを入力し、ステップS42において認識モデルにブリッジ稜線を追加する。さらに、ステップS44において稜線推定長さから目的関数を生成し、ステップS46において稜線間、面間の距離の項を目的関数に追加する。ついでステップS48において向かい合う稜線の分割数が一致するための制約条件を生成する。
【0095】
さらに本発明の第2の実施の形態におけるプロセスは、ステップS50において上述した制約条件の下で整数計画問題をいったん解く。ステップS52において、算出された稜線および面に対して上述した判断を実行し、制約条件を追加する必要がある稜線、面が有るか否かを判断する。制約条件を追加する必要がある稜線、面が有ると判断された場合(yes)には、ステップS54において該当する制約条件を追加してステップS50へと戻り、再度整数計画問題を解き、制約条件が発生しなくなるまで処理を繰り返す。ステップS52の判断において制約条件を追加する必要がある稜線および面がない場合には、ステップS56へと進み、認識モデルについて得られた構造メッシュのijk座標を出力する。
【0096】
図13には、ステップS50〜ステップS54のプロセスを実行するための擬似コードの実施の形態を示す。
【0097】
図14は、本発明の上述した認識モデル生成方法を実行させるためのシステムの機能ブロック図を示す。図14に示されたシステム10は、3次元形状の入力手段12と、認識モデル生成手段14と、生成された認識モデルを出力するための3次元形状出力手段16とを含んで構成されている。入力手段12は、3次元形状の位置座標に関する数値データを保持しており、認識モデル生成手段14へと3次元形状の数値データを入力している。
【0098】
認識モデル生成手段14は、中央処理装置(CPU)を含んで構成されるパーソナル・コンピュータまたはワークステーションから構成することができる。本発明において使用することができるパーソナル・コンピュータ、またはワークステーションとしては、PENTIUM(登録商標)といったCPU、またはこれと互換性のあるCPUを搭載することが可能で、WINDOWS(登録商標)、WINDOWS(登録商標)NT、WINDOWS(登録商標)XP、OS/2(商標:インターナショナル・ビジネス・マシーンズ・コーポレーション)、AIX(商標:インターナショナル・ビジネス・マシーンズ・コーポレーション)、ユニックス、リナックスといったオペレーティング・システムを動作させることが可能なパーソナル・コンピュータ、ワークステーションを挙げることができるが、これらのものに限定されるわけではない。
【0099】
認識モデル生成手段14は、さらに、ソフトウエア・モジュールなどとして構成することができる稜線・面認識手段18と、形状規制値生成手段20と、形状規制手段22とを含んで構成されている。稜線・面認識手段18は、入力手段12から入力された3次元形状データに付された面および稜線のラベリングを解析して、稜線・面のラベルを識別し、認識モデルを生成するための稜線と、面とを特定している。
【0100】
形状規制値生成手段20は、本発明に従い、認識モデルにおいて稜線または面が位相的に矛盾がない場合であっても発生しうる、形状認識に不完全性が生じないように形状を規制する変数を生成する手段である。図14に示されるように、形状規制値生成手段20は、より詳細には、推定稜線長さ生成手段20aと、推定間隔生成手段20bとを含んで構成されている。推定稜線長さ推定手段20aは、本発明において上述したように、形状規制値として使用される推定稜線長さを計算し、ソフトウエア・モジュールなどとして構成される形状規制手段22が保持する稜線長さを規定する目的関数へと推定稜線長さを渡している。同様に、推定間隔生成手段20bは、同様に稜線または面の推定間隔を計算して、形状規制手段22が保持する稜線または面の間隔を規定する目的関数へと、生成された変数である間隔値を渡している。
【0101】
本発明においては、形状規制値生成手段20は、変数値が必要とされるまで一時的に値を保持するためのメモリを含んで構成することができる。また、生成された形状規制値は、本発明の別の実施の形態では、認識モデル生成手段14のいずれか適切な部分または認識モデル生成手段14を構成する手段のいずれかに設けられたメモリ手段に一時的に記憶させておくことができる。
【0102】
形状規制手段22は、これまで知られた既存の制約条件の他、本発明において形状規制値として機能する推定稜線長さに関連する項および推定間隔に関連する項を含む目的関数を保持している。図14に示した形状規制手段22は、整数計画問題解法手段24の要求に応じて、制約条件を使用して上述した目的関数を最小化するように、別のソフトウエア・モジュールとして構成される、整数計画問題解法手段24を動作させ、最適な認識モデルおよび構造メッシュを生成させている。また、本発明においては、上述した各機能手段を別々の構成のモジュールとして示しているが、本発明においては、上述したすべての機能モジュールを、例えば、整数計画問題解法モジュールとして一体として構成することもできる。
【0103】
本発明の第1の実施の形態においては、認識モデル生成システム10は、すべての稜線および面について形状規制手段22に保持された目的関数および制約条件の算出を実行させることにより、認識モデルの頂点の座標を繰り返し算出する。算出された認識モデルの頂点座標ijkは、出力手段16へと出力され、図示しないディスプレイ手段に表示され、適切な段階で反復計算を停止させることができる構成とすることができる。反復計算の終了は、ディスプレイ上に出力された認識モデルを目視判断してユーザが終了させることもできるし、適切な終了条件を設定して、コンピュータにより終了判断を実行させることもできる。また出力された認識モデルの頂点の位置座標および構造メッシュの位置座標は、適切な記憶媒体に適切なフォーマットで記憶させることもできる。また、本発明の好適な実施の形態においては、認識モデル生成システムは、認識モデルをスムージングするための手段を含むことができる。
【0104】
図15は、本発明の第2の実施の形態の認識モデル生成システム10の実施の形態を示した図である。図15に示された認識モデル生成システム10においては、整数計画問題解法手段24には、位相判断手段26が構成される。この位相判断手段26は、稜線・面認識手段18により認識された稜線・面のラベリングに基づき、稜線および面の位相的な矛盾を制約条件を使用して判断し、その結果を稜線・面のデータと共に整数計画問題解法手段24へと渡す。整数計画問題解法手段24は、位相判断手段26の出力を受けて、矛盾を生じている稜線または面について必要とされる制約条件を形状規制手段22から取得し、図13に示すように、制約条件に該当する稜線および面について、対応する制約条件および目的関数の下で整数計画問題を解く構成とされている。
【0105】
本発明の図15に示した実施の形態においては、すべての稜線および面について制約条件および目的関数の計算を実行させることが必要とされないので、計算時間の短縮を可能とし、ハードウエア資源の節約を可能として、本発明の認識モデル生成システムの利用性をさらに向上させることができる。
【0106】
本発明の認識モデル生成方法を実行させるためのプログラムは、種々のプログラミング言語、例えばC言語、C++言語、Java(登録商標)、などを使用して記述することができ、本発明のプログラムを記述したコードは、磁気テープ、フレキシブル・ディスク、ハード・ディスク、コンパクト・ディスク、光磁気ディスク、ディジタル・バーサタイル・ディスク(DVD)といったコンピュータ可読な記録媒体に保持させることができる。
【0107】
【実施例】
(実施例1)
本発明の手法により認識モデルを生成し、入力された3次元形状と比較を行った。実施例1では、認識モデルを生成し、その構造メッシュのijk座標を計算した例を示す。処理方式としては、既存の目的関数としてTamらの提案した目的関数を使用し、さらに本発明により形状認識を規制するための目的関数を含め、本発明にしたがい、図12および図13に示した反復的に制約条件を追加していく方法を用いた。また整数計画問題解法手段の停止は、ディスプレイに表示された認識モデルの形状を、入力した3次元形状と目視比較して判断した。
【0108】
図16には、認識モデル生成処理において生成される3次元形状を示す。図16(a)は、入力データとして使用される3次元形状であり、図16(b)は、表面を三角形を使用して分類して、稜線・面を認識させるために使用する途中の結果を示した図である。図16(c)は、本発明の手法により生成した認識モデルである。図16(c)に示される本発明により得られた認識モデルに対して、端部処理を施し、認識モデルに対して、6面体メッシュを生成した最終結果を図16(d)に示す。図16に示すように、本発明によれば、入力した3次元形状に対応し、かつ良好な構造メッシュが生成された認識モデルが構成されているのが示される。
【0109】
(実施例2)
実施例1と同一の条件を使用して本発明において、稜線および面の干渉や縮退のない、良好な形状認識がなされた認識モデルの生成について検討を加えた。図17には、図16(c)に示した認識モデルを、本発明の方法により生成する実施例を示す。表示を見やすくするために、図17では、では3次元的な認識モデルを2次元的に見やすい方向から表示している。
【0110】
図17(a)−(g)に示すように、図17においては、整数計画問題は、7回計算され、図17(g)に示すように、最終的に矛盾のない認識モデルが得られている。図17(a)は、「向かい合う稜線の分割数が一致するための制約条件」のみを与えて整数計画問題を解いた結果である。この制約条件のみだとループに干渉が生じていることがわかる。さらに、図17(b)−(d)では、T字形の内部ループが外部ループと干渉を起こさないように、稜線および面を指定し、制約条件を追加しながら計算を進めている。図17(e)では、左上の内部ループが外部ループと干渉しないように計算が実行された段階で出力した結果である。図17(f)−(g)では、残りの中央付近の小さい内部ループが、他の内部ループや外部ループと干渉を起こさないように計算が実行されている。この結果、図17(g)において、干渉のない認識モデルを生成することができることが示されている。
【0111】
本発明によれば、凹な部分を含む可能性のある認識モデルに対してその稜線の分割数が不適切に計算された場合に、その稜線分割数から決定される認識モデルの形状自身が縮退や干渉する可能性を排除する条件を加味して稜線分割数を決定するため、縮退や干渉といった問題が生じないことを保証することができる。このため、特に本発明によれば、凹な部分を含む認識モデルに対しても、問題のないように確実に稜線分割数を決定することができる。
【0112】
また本発明では、その両者が可能な限り似た形状となるように形状を規制することができるので、より入力形状に近い認識モデルが自動的に生成されることになり、結果として最終的に生成される構造メッシュの質を向上させることができる。
【0113】
これまで本発明を図面に記載した具体的な実施の形態をもって説明してきたが、本発明は、上述した特定の実施の形態に制限されるものではなく、種々の変更例および他の実施の形態であっても、本発明の効果を奏する範囲において、これまで知られたいかなる構成要素であっても用いることができる。
【図面の簡単な説明】
【図1】 本発明の認識モデル生成方法のプロセスの概略的なフローチャート。
【図2】 制約条件の発生の態様を概略的に示した図。
【図3】 本発明において、認識モデルにブリッジ稜線を追加するステップを説明した図。
【図4】 3次元立体の認識モデルにおいて稜線を追加する実施の形態を示した図。
【図5】 稜線間の距離の項を目的関数に追加することが必要な認識モデルの例を、2次元的に示した図。
【図6】 本発明において稜線間の距離の項を目的関数に追加するステップを説明した図。
【図7】 本発明において、稜線の交差の判断を行う処理の概略を示した図。
【図8】 本発明において使用することができる内外判定方法を概略的に示した図。
【図9】 本発明においてループを半時計回りにたどるときに連続する3頂点Vs、Vt、Vuの分類を示した図。
【図10】 点が扇型領域にあるための判断条件を例示した図。
【図11】 本発明において、稜線と面との交差を解消する方法を示した概略図。
【図12】 本発明の認識モデル生成方法の第2の実施の形態の方法のプロセスを示したフローチャート。
【図13】 本発明の図12に示したステップS50〜ステップS54のプロセスを実行するための擬似コードの実施の形態を示した図。
【図14】 本発明の第1の実施の形態の認識モデル生成システムの機能ブロック図。
【図15】 本発明の第2の実施の形態の認識モデル生成システムの機能ブロック図。
【図16】 本発明において、認識モデル生成処理において生成される3次元形状を示した図。
【図17】 図16(c)に示す認識モデルを、本発明の方法により生成する実施例を示した図。
【図18】 本発明において使用する認識モデルおよびその面、半稜線へのラベルの定義を示した図。
【図19】 従来の認識モデル生成の手順を示した図。
【図20】 従来法によるメッシュ作成方法を示した概略図。
【図21】 従来の構造メッシュの生成方法を示した概略図。
【図22】 従来の構造メッシュ生成のための別の方法を示した図。
【図23】 2次元形状へと次元を削減して認識モデルの縮退および干渉の不都合を概略的に示した図。
【符号の説明】
10…認識モデル生成システム
12…入力手段
14…認識モデル生成手段
16…3次元形状出力手段
18…稜線・面認識手段
20…形状規制値生成手段
22…形状規制手段
24…整数計画問題解法手段
26…位相判断手段
Claims (10)
- 入力3次元形状の認識モデルを自動的に生成するシステムであって、
入力3次元形状の稜線および面のラベルを識別する手段と、
前記稜線および面のラベルを使用し、前記稜線から推定稜線長さを生成する手段および前記稜線の間の距離を計算して推定稜線間隔を生成する手段を含む形状規制値を生成するための手段と、
前記生成された形状規制値に対して、前記認識モデルが満たしていなければならない、ブリッジ稜線で連結した面を形成するループの内外の反転および稜線・面が空間的に交差しないように位相を規制する制約条件の下で、前記生成された推定稜線長さと位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数を最小化することにより形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記制約条件の下で前記目的関数を最小化させるように入力されたメッシュサイズを使用した整数計画問題として前記稜線により与えられる前記認識モデルの頂点の位置座標を生成して前記形状規制手段に渡して反復計算させる手段と
を含む、認識モデル生成システム。 - 前記位置座標を生成するための手段は、さらに、前記位置座標を、内部ループと外部ループとを連結する前記ブリッジ稜線の位置座標を使用して前記位置座標を生成する手段を含む、
請求項1に記載の認識モデル生成システム。 - 前記入力3次元形状は、凹部を含む形状である、
請求項1に記載の認識モデル生成システム。 - 入力3次元形状の認識モデルを自動的に生成するためにコンピュータが実行する認識モデル生成方法であって、該認識モデル生成方法は、
コンピュータが、入力された入力3次元形状のデータから稜線および面のラベルを識別するステップと、
コンピュータが、前記稜線および面のラベルを使用し、前記稜線から推定稜線長さを生成し、かつ前記稜線の間の距離を計算して推定稜線間隔を含む形状規制値を生成してメモリ手段に一時的に記憶させるステップと、
コンピュータが、前記生成された形状規制値を前記メモリ手段から読み取って、前記生成された形状規制値に対して、前記認識モデルが満たしていなければならない、ブリッジ稜線で連結した面を形成するループの内外の反転および稜線・面が空間的に交差しないように位相を規制する制約条件の下で、前記生成された推定稜線長さと位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数の最小値を記憶させて形状認識を規制するステップと、
コンピュータが、前記形状認識を規制するステップにより規制された稜線および面の位置座標を使用し、前記制約条件の下で前記目的関数を最小化させるように入力されたメッシュサイズを使用した整数計画問題として前記稜線により与えられる前記認識モデルの頂点の位置座標を生成するステップと
を含む、認識モデル生成方法。 - コンピュータが、前記位置座標を、内部ループと外部ループとを連結する前記ブリッジ稜線の位置座標を使用して生成するステップを含む、
請求項4に記載の認識モデル生成方法。 - 請求項4および請求項5に記載の入力3次元形状の認識モデルを自動的に生成するための認識モデル生成方法の各ステップをコンピュータに実行させるためのプログラム。
- 請求項4および請求項5に記載の入力3次元形状の認識モデルを自動的に生成するための認識モデル生成方法の各ステップをコンピュータに実行させるためのプ ログラムを記録したコンピュータ読み取り可能な記録媒体。
- 入力3次元形状の認識モデルから自動的に構造メッシュを生成するシステムであって、
入力3次元形状の稜線および面のラベルを識別する手段と、
前記稜線および面のラベルを使用し、前記稜線から推定稜線長さを生成する手段および前記稜線の間の距離を計算して推定稜線間隔を生成する手段を含む形状規制値を生成するための手段と、
前記生成された形状規制値に対して、前記認識モデルが満たしていなければならない、ブリッジ稜線で連結した面を形成するループの内外の反転および稜線・面が空間的に交差しないように位相を規制する制約条件の下で、前記生成された推定稜線長さと位置座標から得られる稜線長さの差の絶対値に関連する項と、推定間隔と前記位置座標から得られる間隔の差の絶対値に関連する項とを含む目的関数を最小化することにより形状認識を規制する形状規制手段と、
前記形状規制手段の出力を使用し、前記制約条件の下で前記目的関数を最小化させるように入力されたメッシュサイズを使用した整数計画問題として前記稜線により与えられる前記認識モデルの頂点の位置座標を生成して前記形状規制手段に渡して反復計算させ、生成された前記認識モデルを6面体で置換して得られる形状における各6面体の頂点として構造メッシュの位置座標を生成するための手段と
を含む、構造メッシュ生成システム。 - 前記位置座標を生成するための手段は、さらに、前記認識モデルの頂点の位置座標を、内部ループと外部ループとを連結する前記ブリッジ稜線の位置座標を使用して前記認識モデルの頂点の位置座標を生成する手段を含む、
請求項8に記載の構造メッシュ生成システム。 - 前記入力3次元形状は、凹部を含む形状である、
請求項8または9に記載の構造メッシュ生成システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002178068A JP3954909B2 (ja) | 2002-06-19 | 2002-06-19 | 認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システム |
US10/464,338 US7486289B2 (en) | 2002-06-19 | 2003-06-18 | Recognition model generation and structured mesh generation system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002178068A JP3954909B2 (ja) | 2002-06-19 | 2002-06-19 | 認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004021773A JP2004021773A (ja) | 2004-01-22 |
JP3954909B2 true JP3954909B2 (ja) | 2007-08-08 |
Family
ID=31175898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002178068A Expired - Fee Related JP3954909B2 (ja) | 2002-06-19 | 2002-06-19 | 認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7486289B2 (ja) |
JP (1) | JP3954909B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3962361B2 (ja) | 2003-06-27 | 2007-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 位相判断装置、分解可能形状生成装置、構造メッシュ生成装置、位相判断方法、分解可能形状生成方法、および該位相判断方法を実行させるためのコンピュータ実行可能なプログラム、分解可能形状生成方法を実行させるためのコンピュータ実行可能なプログラム並びに構造メッシュ生成システム |
WO2008076993A2 (en) * | 2006-12-15 | 2008-06-26 | Concepts Eti, Inc. | Variational error correction system and method of grid generation |
US8112245B2 (en) * | 2006-12-15 | 2012-02-07 | Concepts Eti, Inc. | First-point distance parameter system and method for automatic grid generation |
US20080143708A1 (en) * | 2006-12-18 | 2008-06-19 | John Owen | System and method for auto-dimensioning boundary representation model |
US7952576B2 (en) * | 2006-12-20 | 2011-05-31 | Canon Kabushiki Kaisha | Image processing apparatus and method thereof |
JP5332954B2 (ja) * | 2009-06-29 | 2013-11-06 | 富士通株式会社 | 設計対象形状の幾何特性を考慮した多目的最適化設計支援装置、方法、及びプログラム |
JP5878907B2 (ja) * | 2013-10-30 | 2016-03-08 | 株式会社シーイーシー | 干渉判定装置、干渉判定方法、及び干渉判定プログラム |
US10210657B2 (en) * | 2015-07-24 | 2019-02-19 | The University Of British Columbia | Methods and systems for hex-mesh optimization via edge-cone rectification |
US10956625B2 (en) * | 2015-09-01 | 2021-03-23 | Siemens Industry Software Inc. | Mesh generation system and method |
US10586380B2 (en) | 2016-07-29 | 2020-03-10 | Activision Publishing, Inc. | Systems and methods for automating the animation of blendshape rigs |
US10055880B2 (en) | 2016-12-06 | 2018-08-21 | Activision Publishing, Inc. | Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional |
CN111191390B (zh) * | 2018-10-26 | 2023-09-01 | 中国航发商用航空发动机有限责任公司 | 表面带有内凹部的零件建模方法、设备以及电子设备 |
CN112434356B (zh) * | 2020-10-16 | 2024-06-14 | 杭州群核信息技术有限公司 | 一种基于半边模型的造型方法及*** |
JP2022075139A (ja) | 2020-11-06 | 2022-05-18 | 富士通株式会社 | 形状データ出力プログラム、形状データ出力方法および情報処理装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2920195B2 (ja) | 1989-03-10 | 1999-07-19 | 株式会社日立製作所 | 形状変換方法及び装置 |
JP3153578B2 (ja) * | 1991-08-20 | 2001-04-09 | 株式会社リコー | オフセット曲面生成装置及びオフセット立体生成装置 |
JPH05174111A (ja) | 1991-12-25 | 1993-07-13 | Hitachi Ltd | 有限要素発生装置及び有限要素生成方法 |
JP3186870B2 (ja) | 1992-12-11 | 2001-07-11 | 株式会社日立製作所 | 有限要素生成装置、有限要素生成方法 |
WO1994023390A1 (en) * | 1993-03-29 | 1994-10-13 | Matsushita Electric Industrial Co., Ltd. | Apparatus for identifying person |
US5894308A (en) * | 1996-04-30 | 1999-04-13 | Silicon Graphics, Inc. | Interactively reducing polygon count in three-dimensional graphic objects |
JP2909625B1 (ja) * | 1998-06-17 | 1999-06-23 | 株式会社超高速ネットワーク・コンピュータ技術研究所 | 三次元動画データ圧縮方法および三次元動画データ転送方法 |
JP3787743B2 (ja) * | 1998-11-18 | 2006-06-21 | 株式会社日立製作所 | 数値解析用メッシュ生成装置 |
US6697078B2 (en) * | 1999-01-29 | 2004-02-24 | Adobe Systems Incorporated | Trap shaping |
US6816170B1 (en) * | 2002-02-22 | 2004-11-09 | Zyvex Corporation | System and method for robust and efficient resizing of simple polygons |
-
2002
- 2002-06-19 JP JP2002178068A patent/JP3954909B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-18 US US10/464,338 patent/US7486289B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004021773A (ja) | 2004-01-22 |
US20040032408A1 (en) | 2004-02-19 |
US7486289B2 (en) | 2009-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3954909B2 (ja) | 認識モデル生成システム、認識モデル生成方法、該認識モデル生成方法をコンピュータに対して実行させるためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体、ならびに構造メッシュ生成システム | |
US7714867B2 (en) | Topology determination, decomposable shape generation, and structured mesh generation | |
EP1074946B1 (en) | Detail-directed hierarchical distance fields for object modelling | |
Boissonnat et al. | Effective computational geometry for curves and surfaces | |
RU2413996C2 (ru) | Большая деформация сетки с использованием лапласиана объемного графа | |
Bischoff et al. | Automatic restoration of polygon models | |
EP1074947B1 (en) | Sculpturing objects using detail-directed hierarchical distance fields | |
US7295202B2 (en) | System for approximating and displaying three dimensional CAD data, and system for executing method thereof | |
JP3968056B2 (ja) | 形状作成装置、コンピュータ装置を形状作成装置として動作させるための制御方法、該制御方法をコンピュータ装置に対して実行させるためのコンピュータ実行可能なプログラム | |
Grosso et al. | A parallel dual marching cubes approach to quad only surface reconstruction | |
Trettner et al. | EMBER: exact mesh booleans via efficient & robust local arrangements | |
Borouchaki et al. | Simplification of surface mesh using Hausdorff envelope | |
Leng et al. | Rapid simplification of 3D geometry model of mechanisms in the digital twins-driven manufacturing system design | |
US7388584B2 (en) | Method and program for determining insides and outsides of boundaries | |
US6226405B1 (en) | Method and apparatus for updating node position | |
JP5458440B2 (ja) | 曲面生成装置及び曲面生成プログラム | |
US20180018818A1 (en) | Method for Immediate Boolean Operations Using Geometric Facets | |
Yamazaki et al. | Non-manifold implicit surfaces based on discontinuous implicitization and polygonization | |
US20050283513A1 (en) | Method of calculating intersections between triangle and line segment and program therefrom | |
JP2000251095A (ja) | ポリゴンメッシュの領域分割方法及びその装置並びに情報記録媒体 | |
JP2012230668A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP7054336B2 (ja) | モデル化装置、方法及びプログラム | |
Flórez Díaz | Improvements in the ray tracing of implicit surfaces based on interval arithmetic | |
JP3087497B2 (ja) | 図形演算安定化方法 | |
Safko | Tessellation of trimmed NURBS surfaces. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060425 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070328 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070424 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20070424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070427 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130511 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140511 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |