JP6311404B2 - 管理プログラム、管理装置および管理方法 - Google Patents

管理プログラム、管理装置および管理方法 Download PDF

Info

Publication number
JP6311404B2
JP6311404B2 JP2014072504A JP2014072504A JP6311404B2 JP 6311404 B2 JP6311404 B2 JP 6311404B2 JP 2014072504 A JP2014072504 A JP 2014072504A JP 2014072504 A JP2014072504 A JP 2014072504A JP 6311404 B2 JP6311404 B2 JP 6311404B2
Authority
JP
Japan
Prior art keywords
coordinates
polygons
reference point
search
data
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.)
Active
Application number
JP2014072504A
Other languages
English (en)
Other versions
JP2015194909A (ja
Inventor
唯 野間
唯 野間
真喜子 此島
真喜子 此島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014072504A priority Critical patent/JP6311404B2/ja
Priority to US14/637,739 priority patent/US9898859B2/en
Priority to EP15158600.5A priority patent/EP2927827B1/en
Priority to CN201510130046.XA priority patent/CN104952086B/zh
Priority to KR1020150041818A priority patent/KR101741894B1/ko
Publication of JP2015194909A publication Critical patent/JP2015194909A/ja
Application granted granted Critical
Publication of JP6311404B2 publication Critical patent/JP6311404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Description

本発明は管理プログラム、管理装置および管理方法に関する。
現在、3次元モデルの描画を支援するソフトウェアが利用されている。例えば、製図を支援する技術として、CAD(Computer Aided Design)がある。CADのソフトウェアを実行するコンピュータは、入力デバイスを用いたユーザの入力操作に応じて3次元の構造物を描画し、ディスプレイに表示させる。ユーザは、ディスプレイに描画された内容を視認することで、構造物の立体的なイメージを把握しながら製図を行える。
例えば、コンピュータでは、3次元の座標情報を用いて3次元の形状を表し得る。3次元の形状を表すデータ形式の一例にSTL(Standard Triangulated Language)がある。STLでは、複数の三角形の組合せで3次元モデルの形状を表す。STLデータは、1つの三角形に対し、3つの頂点の座標と三角形の面に対する法線ベクトルとの情報を含む。
ところで、ある3次元モデルに対する別の3次元モデルを検索することがある。例えば、製品の設計において、ある部品に類似する形状の部品を設計済であるかを確認して重複設計を抑える場合である。そこで、3次元モデルに対して形状が類似する他の3次元モデルを検索する方法が考えられている。例えば、3次元モデルの形状の特徴を定量化する。特徴を表す量(特徴量)が近似する3次元モデル同士は、形状も類似していると考えられる。複数の種類の特徴量(特徴ベクトル)を用いて検索を行うこともある。
例えば、モデルの重心とモデル面との距離の分布をモデルの形状を表す特徴量とする、または、モデルのクリーズ角(2つの隣接面の法線に対する交差角度)の平均値を特徴量とする提案がある。また、3次元形状のモデルを構成するパッチに対応付けて生成された形状解析木のノードのうち、幾何的な隣接関係にあるノードの間にエッジを生成することにより近傍グラフを生成し、モデル間の形状の差異の検出に用いる提案もある。
更に、複雑な3次元モデルを、スケルトンと呼ばれるより簡単な表現に縮小し、3次元モデルおよびスケルトンとから重要な際立った特徴を抽出して、データベース内に特徴ベクトルとして保存する提案もある。
特開2000−222428号公報 特開2001−307111号公報 特表2006−520948号公報
上記のように構造物の3次元形状を多角形の組合せとして表すことがある(例えば、STLデータ)。この場合、構造物の頂点は多角形の頂点により表され、構造物の2つの頂点を結ぶ辺は多角形の辺により表される。このとき、構造物の頂点をノード、構造物の2つの頂点を結ぶ辺をエッジとして構造物データをグラフ化し、グラフから特徴量を計算して類似の形状の検索に利用することが考えられる。しかし、グラフの情報はエッジ同士の角度の情報を含まないため、凹凸形状の差異を特徴量に反映させにくいという問題がある。また、エッジ同士の角度の情報をグラフの情報に含めることも考えられるが、その情報量は膨大であり、グラフに角度の情報を含めることは難しい。
1つの側面では、本発明は、構造物データの検索に利用可能な点の座標を取得できる管理プログラム、管理装置および管理方法を提供することを目的とする。
1つの態様では、コンピュータによって実行される管理プログラムが提供される。この管理プログラムは、コンピュータに、3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを参照して、複数の多角形が属する3次元空間内での複数の多角形の配置に応じて、複数の多角形の頂点とともに構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、算出した点の座標を構造物データに関連付けて記憶装置に格納する、処理を実行させる。
また、1つの態様では、管理装置が提供される。この管理装置は、記憶部と演算部とを有する。記憶部は、3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを記憶する。演算部は、構造物データを参照して、複数の多角形が属する3次元空間内での複数の多角形の配置に応じて、複数の多角形の頂点とともに構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、算出した点の座標を構造物データに関連付けて記憶装置に格納する。
また、1つの態様では、管理方法が提供される。この管理方法では、コンピュータが、3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを参照して、複数の多角形が属する3次元空間内での複数の多角形の配置に応じて、複数の多角形の頂点とともに構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、算出した点の座標を構造物データに関連付けて記憶装置に格納する。
1つの側面では、構造物データの検索に利用可能な点の座標を取得できる。
第1の実施の形態の管理装置を示す図である。 第2の実施の形態の管理装置のハードウェア例を示す図である。 第2の実施の形態の構造物およびポリゴンの例を示す図である。 第2の実施の形態のポリゴンに対するベクトルの例を示す図である。 第2の実施の形態のグラフ化の例を示す図である。 第2の実施の形態の管理装置の機能例を示す図である。 第2の実施の形態のSTLデータの例を示す図である。 第2の実施の形態の参照点テーブルの例を示す図である。 第2の実施の形態のグラフデータの例を示す図である。 第2の実施の形態の参照点の設定例を示す図である。 第2の実施の形態の登録時の処理例を示すフローチャートである。 第2の実施の形態の参照点の設定例を示すフローチャートである。 第2の実施の形態の検索時の処理例を示すフローチャートである。 第2の実施の形態の参照点の設定の他の例を示す図である。 第3の実施の形態のポリゴンに対するベクトルの例を示す図である。 第3の実施の形態の参照点の設定例を示すフローチャートである。 第3の実施の形態の参照点の設定例を示す図である。 第4の実施の形態の参照点の設定例を示すフローチャートである。 第4の実施の形態の参照点の設定例を示す図である。 第5の実施の形態の特徴ベクトルテーブルの例を示す図である。 第5の実施の形態の参照点の設定例を示すフローチャートである。 第5の実施の形態の参照点の他の設定例を示すフローチャートである。 第5の実施の形態の参照点の他の設定例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の管理装置を示す図である。管理装置1は、3次元で構造物を表す構造物データを管理する。管理装置1は、ユーザによって指定された構造物データを含む検索クエリを受け付けると、指定された構造物データに対応する構造物と形状の類似する他の構造物を検索する。管理装置1は、構造物データをグラフ化し、グラフから計算された特徴量を構造物データの特徴量(グラフ特徴量ということもある)とする。管理装置1は、特徴量(あるいは、複数の特徴量を含む特徴ベクトル)に基づいて検索を行える。管理装置1は、検索結果を、管理装置1に接続されたディスプレイに表示させたり、ユーザが利用する端末装置に送信したりする。
管理装置1が特徴量を計算するタイミングは2種類ある。第1には、ライブラリ内の構造物データに対して検索用の特徴量を予め付与するときである。第2には、ユーザから指定された検索クエリに含まれる構造物データに対して検索用の特徴量を計算するときである。管理装置1は、後者で求めた特徴量を、前者で求めたライブラリ内の構造物データの特徴量と照合することで、検索クエリで指定された構造物データと形状が類似する他の構造物データを検索できる。以下に示す処理は上記第1,第2の両方の場合に適用できる。
管理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、例えば、プロセッサを含む。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)でもよいし、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路でもよい。また、プロセッサは、複数のプロセッサの集合(マルチプロセッサ)でもよい。プロセッサは、例えば、記憶部1aに記憶されたプログラムを実行するものでもよい。
記憶部1aは、構造物データを記憶する。構造物データは、複数の多角形の組合せにより構造物の3次元での形状を表す。具体的には、構造物表面における曲面を多角形の平面により近似的に表す。ここで、多角形を意味するポリゴン(polygon)という用語を、物体を3次元で表現する際の要素としての多角形を示す用語として用いることもある。例えば、ポリゴンを三角形とするデータ形式としてSTLがある。ただし、四角形や五角形など他の多角形でもよい。
演算部1bは、記憶部1aに記憶された構造物データを参照して、複数の多角形の空間内での配置に応じて、複数の多角形の頂点とともに構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出する。演算部1bは、算出した点の座標を構造物データに関連付けて記憶装置に格納する。記憶装置は管理装置1に内蔵されていてもよいし、管理装置1の外部に設けられ、管理装置1から(例えば、ネットワークを介して)アクセス可能なものでもよい。当該記憶装置の一部の記憶領域が記憶部1aでもよい。
例えば、記憶部1aは、構造物2を示す第1の構造物データおよび構造物3を示す第2の構造物データを記憶する。構造物2は上面(図1の紙面上側の面)に凸部を有する多面体である。構造物3は上面に凹部を有する多面体である。構造物2,3の形状は、複数の多角形により形成される。構造物の頂点は多角形の頂点により表され、構造物の2つの頂点を結ぶ辺は多角形の辺により表される。具体的には、構造物2の1つの頂点は、3以上の多角形により共有される頂点に対応する。構造物2の2つの頂点を結ぶ1つの辺は隣接する2つの多角形により共有される辺に対応する。
演算部1bは、第1の構造物データで示される複数の多角形の空間内での配置に応じて、点P1の座標を算出する。点P1は、構造物2の頂点とは異なる点である。例えば、点P1は、構造物2の密度を一定と考えたときの、構造物2の重心でもよい。構造物2の重心は、構造物2を形成する複数の多角形の配置から求まる。演算部1bは、算出した点P1の座標を第1の構造物データ(構造物2のデータ)に関連付けて記憶装置に格納する。
同様に、演算部1bは、第2の構造物データで示される複数の多角形の空間内での配置に応じて点P2(例えば、構造物3の重心)の座標を算出する。演算部1bは、算出した点P2の座標に第2の構造物データ(構造物2のデータ)に関連付けて記憶装置に格納する。
管理装置1によれば、3次元の構造物を表す複数の多角形の頂点の座標を含む構造物データが参照されて、複数の多角形の空間内での配置に応じて複数の多角形の頂点とともに構造物データをグラフ化したときの特徴量の計算に用いられる点の座標が算出される。算出された点の座標が構造物データに関連付けて記憶装置に格納される。これにより、構造物の検索に利用可能な点の座標を取得できる。
例えば、点P1は、構造物2の頂点とともにノードとして扱われ、構造物2の2つの頂点を結ぶ辺をエッジとして構造物2をグラフ化したときの特徴量の計算に用いられる。グラフ化では、例えば、形状の回転不変性を保つために、ノードに固定の座標をもたせずに、エッジに重みをもたせる(例えば、辺の長さに応じた量をエッジの重みとする)。ノードの重みを一定(例えば、“1”)とする。
例えば、点P1が構造物2の全ての頂点との間に辺をもつと考えれば、点P1と構造物2の各頂点との位置関係をグラフに反映させることができる。構造物2の場合、上面の凸型形状を形成する各頂点と点P1との位置関係の情報をグラフに反映させることができる。図1では構造物2の凸部の頂点を含む面および構造物2の下面(図1の紙面下側の面)の各頂点と点P1とを結ぶ線分(辺)を表記している。ただし、構造物2の他の頂点と点P1とを結ぶ線分(辺)を設けてもよい。同様に、構造物3の場合、凹型形状を形成する各頂点と点P2との位置関係の情報をグラフに反映させることができる。図1では構造物3の凹部の頂点を含む面および構造物3の下面の各頂点と点P2とを結ぶ線分(辺)を表記している。ただし、構造物3の他の頂点と点P2とを結ぶ線分(辺)を設けてもよい。
点P1を考慮して得られる構造物2の第1のグラフは、構造物2の凸型形状の特徴が強く反映された情報となる。点P2を考慮して得られる構造物3の第2のグラフは、構造物3の凹型形状の特徴が強く反映された情報となる。第1のグラフから所定の演算により求めた特徴量(または、特徴ベクトル)と、第2のグラフから所定の演算により求めた特徴量(または、特徴ベクトル)とを用いれば凹凸形状の差異を適切に区別できる。
なお、点P1,P2の座標の決定方法には種々の方法が考えられる。例えば、複数の多角形の空間内での配置の偏りに応じて重心からずらした位置に新たな点を設けてもよい。例えば、構造物2の主成分方向の2次以上のモーメント(積率)に応じた距離だけ重心からずらした位置としてもよい。あるいは、構造物2の内部または外部の空間のうち、局所的に(例えば、所定半径の球内における)多角形の個数密度が大きいと判断される領域を検索し、その領域内に新たな点を設けてもよい。構造物2の比較的平坦な表面では多角形の数の削減が図られていることもあり、多角形の密度が大きい箇所ほど、凹凸形状が際立っていると考えられる。凹凸形状が際立っていると考えられる箇所に新たな点を設けることで、当該箇所の形状の特徴をグラフに反映させることができ、形状の特徴をより顕著に表した特徴量をグラフから求めることができる。
また、回転不変性を保つために、ノードに固定の座標をもたせずに、エッジに重みをもたせる場合、構造物の任意の2ノード間にエッジが存在する完全グラフを生成することも考えられる。しかし、この場合、グラフの情報量が膨大となり、特徴量を計算する演算コストが増大してしまう。この問題は、エッジ同士の角度の情報をグラフに含める場合にも生ずる。一方、管理装置100は、構造物の頂点とは異なる点を設けて、構造物の形状の特徴をグラフに保持させることで、完全グラフを生成したり、エッジ同士の角度の情報をグラフに含めたりするよりもグラフの情報量を削減でき、特徴量の計算を高速化できる。
[第2の実施の形態]
図2は、第2の実施の形態の管理装置のハードウェア例を示す図である。管理装置100は、CADによる3次元での構造物の設計を支援する。管理装置100は、ユーザによる操作入力を受け付けると、当該操作入力に応じた3次元の図形を管理装置100に接続されたディスプレイに表示させる。ユーザは、管理装置100に対して既存の(設計済の)構造物のデータの検索を依頼できる。
例えば、ユーザは、管理装置100を用いて、所定の3次元構造を描き、当該構造に類似する他の構造物を管理装置100に検索させる。管理装置100は、指定された構造物に形状が類似する他の構造物をライブラリから検索し、ユーザに提示する。ライブラリは、設計済である種々の構造物データを格納したデータベースである。ライブラリは、管理装置100に内蔵された記憶装置に格納される。ライブラリは、管理装置100が接続するネットワーク10に接続された記憶装置に格納されていてもよい。以下の説明では、構造物の形状を示す3次元モデル(多面体)を指して、単に構造物と称することがある。
管理装置100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、読み取り装置106および通信インタフェース107を有する。各ユニットは管理装置100のバスに接続されている。
プロセッサ101は、管理装置100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、管理装置100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、管理装置100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。管理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、管理装置100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、管理装置100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウス、デジタイザおよびタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
読み取り装置106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置106は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク10を介して他の装置と通信を行う。
図3は、第2の実施の形態の構造物およびポリゴンの例を示す図である。以下の説明では、構造物の形状をSTL形式の構造物データ(STLデータ)により表すことを想定する。STLデータで扱うポリゴンは三角形である。ただし、他の多角形のポリゴンでもよい。
図3(A)は構造物の例を示している。構造物50は直方体である。構造物50の形状は、構造物50の表面の複数の三角形で表される。図3(A)の例では、構造物50の1つの面を2つの三角形で表している。構造物50の1つの頂点は、3つの三角形の頂点に対応する。構造物50の2つの頂点を結ぶ1つの辺は、2つの三角形の辺に対応する。
図3(B)はポリゴンの例を示している。ポリゴン51は、三角形の3つの頂点K1,K2,K3の座標およびポリゴン51の表側の表面に対する法線ベクトルrの情報を含む。法線ベクトルrの長さは単位長さでもよい。座標および法線ベクトルは、直交するx,y,zの3軸に対する座標値を用いて表される。
なお、ポリゴン51の表裏は、STLデータにおける3つの頂点K1,K2,K3の座標の定義の順番により区別することもできる。頂点K1,K2,K3はポリゴン51の表側から見たときに、1つ目の頂点から反時計周りに2つ目の頂点、3つ目の頂点と順番に定義される。以下の説明では、ポリゴンという場合、三角形を示すものとする。
図4は、第2の実施の形態のポリゴンに関するベクトルの例を示す図である。構造物の形状はN(Nは4以上の整数)個のポリゴンにより表される。例えば、i(iは1≦i≦Nの整数)個目のポリゴンに関する種々の位置ベクトルを次のように定義する。
ベクトルp1,p2,p3は、原点Oを起点としたi番目のポリゴンの3つの頂点を示すベクトルである。ここで、ベクトルp1,p2,p3は各ポリゴンによって異なるセットとなるが、iの添え字を省略する。
ベクトルηiは、原点Oおよびi番目のポリゴンの3つの頂点によって形成される四面体の重心を示すベクトルである。
図5は、第2の実施の形態のグラフ化の例を示す図である。構造物50の8つの頂点をノードとし、2つの頂点を結ぶ1つの辺をエッジとして構造物50をグラフ化すると、グラフ60を得る。一方、管理装置100は、構造物50の8つの頂点に、特徴量の計算に用いる1つ以上の点P(参照点という)を設ける。図5では、一例として、構造物50の8つの頂点と参照点Pとを結ぶ8つの辺を加えてグラフ化したグラフ60aも図示している。グラフ60aは、参照点Pに対応するノードを含む。また、グラフ60aは、参照点Pに対応するノードと他のノードとの間の8つのエッジを含む。
図6は、第2の実施の形態の管理装置の機能例を示す図である。管理装置100は、記憶部110、参照点設定部120、グラフ合成処理部130、特徴量計算部140および検索部150を有する。参照点設定部120、グラフ合成処理部130、特徴量計算部140および検索部150は、プロセッサ101によって実行されるプログラムのモジュールであってもよい。
記憶部110は、各部の処理に用いられる情報を記憶する。記憶部110が記憶する情報は、STLデータ、参照点テーブル、グラフデータおよび特徴ベクトルテーブルを含む。STLデータは、構造物の形状を示す構造物データである。STLデータは、作図された構造物毎に記憶部110に複数格納される。記憶部110に記憶された複数のSTLデータ(STLデータ群)を指して、ライブラリと称することもある。参照点テーブルは、構造物毎の参照点の座標を管理するための情報である。グラフデータは、構造物データおよび参照点から生成されたグラフを表すデータである。特徴ベクトルテーブルは、構造物に対してグラフデータから計算された特徴ベクトルを管理するための情報である。ただし、ネットワーク10を介して管理装置100からアクセス可能な記憶装置がある場合、記憶部110に記憶されるこれらの情報を当該記憶装置に格納してもよい。
参照点設定部120は、STLデータに含まれる複数のポリゴンの情報に基づいて、参照点の座標を算出する(STLデータに対して参照点を設定するともいえる)。第2の実施の形態では、参照点設定部120は、STLデータに含まれる複数のポリゴンについて主成分分析を行い、STLデータから求まる構造物の重心と重心に対する主成分方向の2次以上のモーメントとに基づいて参照点の座標を算出する。参照点設定部120は、算出した参照点の座標をSTLデータに対応付けて、参照点テーブルに登録する。
グラフ合成処理部130は、構造物のSTLデータと参照点テーブルに登録された当該構造物に対する参照点の座標とに基づいて、グラフデータを生成する。例えば、図5で例示したように、グラフデータは、参照点に対応するノードを含む。また、グラフデータは、構造物の各頂点と参照点とを結ぶ辺に対応するエッジを含む。
特徴量計算部140は、グラフデータに基づく所定の演算により、構造物の形状の特徴を表す特徴量を計算する。グラフの特徴量の計算方法としては、既存の方法を利用できる。特徴量計算部140は、複数の種類の演算を行うことで、1つの構造物に対して複数の種類の特徴量を計算する。特徴量計算部140は、複数の種類の特徴量のセットを、当該構造物に対する特徴ベクトルとする。特徴量計算部140は、当該構造物のSTLデータに対応付けて特徴ベクトルを特徴ベクトルテーブルに登録する。
検索部150は、構造物の検索クエリを受け付ける。例えば、ユーザは、入力デバイス12を操作して、所定の検索クエリを管理装置100に入力できる。また、検索部150は、ネットワーク10を介して接続された他の情報処理装置から検索クエリを受け付けてもよい。検索クエリは、ユーザにより指定された構造物の形状を示すSTLデータを含む。検索部150は、参照点設定部120、グラフ合成処理部130および特徴量計算部140を用いて検索クエリのSTLデータに対する特徴ベクトルを求める。検索部150は、求めた特徴ベクトルと、記憶部110に記憶された特徴ベクトルテーブルとを照合して、ユーザにより指定された形状に類似する形状をもつ構造物を検索する。検索部150は、検索結果をディスプレイ11に表示させるなどして、ユーザに提示する。
図7は、第2の実施の形態のSTLデータの例を示す図である。STLデータ111は、次のようなフォーマットである。なお、STLデータ111の左側に付した番号は行番号である。“solid”の文字列の後には、構造物の識別情報(例えば、“構造物A”)が設定される(1行目)。
“facet normal”の文字列の後には、法線ベクトルの成分が設定される(2行目)。“facet normal”の行(2行目)から“endfacet”の行(8行目)までが1つのポリゴンの情報に相当する。“vertex”の文字列の後には、ポリゴンの頂点の座標が設定される。三角形のポリゴンを考えているから、1つのポリゴンに対し、“vertex”の文字列を用いて3つの頂点の座標が設定されることになる。
また、STLデータ111によれば、法線ベクトルでもポリゴンの表裏を区別できるし、ポリゴンの頂点の座標の設定順によってもポリゴンの表裏を区別できる。同様にして、9行目以降に他のポリゴンが順次定められる。STLデータ111の末尾行は“endsolid”の文字列が設定される(15行目)。
図8は、第2の実施の形態の参照点テーブルの例を示す図である。参照点テーブル112は、構造物および参照点の項目を含む。構造物の項目には、構造物の識別情報が登録される。参照点の項目には、参照点の座標が登録される。
例えば、参照点テーブル112には、構造物の識別情報“構造物A”に対して、参照点“P1,・・・”という情報が登録される。1つのSTLデータに対して設定される参照点の数は1つでもよいし複数でもよい。
図9は、第2の実施の形態のグラフデータの例を示す図である。ここでは、グラフデータ113をGraphML形式と呼ばれるフォーマットで表すことを想定する。GraphMLでは、XML(eXtensible Markup Language)の記法を用いてノードおよびエッジを記述する。ただし、他の形式のフォーマットとしてもよい。また、無向グラフを想定するが有向グラフとしてもよい。後述するように、有向グラフとすることで、形状の特徴をグラフにより顕著に反映させ得るからである。なお、グラフデータ113の左側に付した番号は行番号である。
例えば、3行目の記述は、エッジに対するキー“key0”を定義している。key id“key0”のタグにより、エッジの重み(“weight”)に相当する属性をエッジに付与する。例えば、エッジの重みは、エッジに対応する辺の長さである。
4行目の記述は、ノードに対するキー“key1”を定義している。key id“key1”のタグによりノードを定義し、“isSansyou”フラグにより、当該ノードが参照点に対応するものであるか否かを定める。“isSansyou”フラグが“true”であれば、当該ノードは参照点に対応するノードである。“isSansyou”フラグが“false”であれば、当該ノードは参照点に対応するノードではない。
グラフデータ113の例では、ノードID“n0”のノード(7行目〜9行目)およびノードID“n5”のノード(11行目〜13行目)は、参照点に対応するものではない。それぞれのノードの“key1”で指定される“isSansyou”フラグが“false”だからである。ノードID“n6”のノード(14行目〜16行目)は、参照点に対応するものである。ノードID“n6”のノードの“isSansyou”フラグが“true”だからである。
また、エッジについては、エッジid“e0”のエッジは、ノードid“n1”のノードとノードid“n0”のノードとを結ぶエッジであり、重みは“1.5”である(17行目〜19行目)。他のエッジも同様に表される。
特に、エッジid“e8”のエッジは、ノードid“n6”のノードとノードid“n5”のノードとを結ぶエッジであり、重みは“14”である(27行目〜29行目)。前述のように、ノードid“n6”は、参照点に対応するものである。したがって、エッジid“e8”のエッジは、構造物の頂点と参照点とを結ぶ辺に対応するエッジである。
図10は、第2の実施の形態の参照点の設定例を示す図である。図10(A)は、構造物70の重心を参照点P1として設定した場合を例示している。図10(B)は、構造物70の重心と重心に対する主成分方向の2次モーメントとに基づいて参照点P1,P2,P3を設定した場合を例示している。
具体的には、図10(A)と同様に、重心が参照点P1である。主成分方向の2次モーメントの平均値(分散)の2乗根(標準偏差σ)の分だけ重心から主成分方向にずらした点に参照点を設定する。構造物70の主成分方向の単位ベクトルをベクトルhとすれば、重心(参照点P1)の座標μに対し、μ+σhで示される座標を参照点P2、μ−σhで示される座標を参照点P3とする。
すると、重心に参照点P1を1つ設ける場合に比べて、構造物70の端側の構造をより詳細にグラフに反映させることができる。すなわち、グラフは当該構造をより顕著に表した情報となる。具体的には、主成分方向は構造物が特に広がっている方向である。中でも第1主成分方向の広がりは、第2、第3主成分方向に比べて大きい。例えば、図10(A)のように、重心に参照点P1を設けるのみとすると、参照点P1に対して、主成分方向に広がっている構造物70の端点の立体角が小さくなる。このため、構造物70の端点の情報(参照点P1と各端点とを結ぶ辺の長さ)に差異が現れにくくなり、構造物70の端点の差異に鈍感になる恐れがある。
そこで、主成分方向の標準偏差を、構造物の主成分方向の広がりと考え、重心から±σhの座標に参照点を設定する。これにより、構造物70の参照点P2側の各端点と参照点P2とを結ぶ辺の長さの差異が参照点P1のみを用いる場合よりも明瞭になる。同様に、構造物70の参照点P3側の各端点と参照点P3とを結ぶ辺の長さの差異が参照点P1のみを用いる場合よりも明瞭になる。このため、構造物70の形状の特徴をより詳細にグラフに反映させることができる。
次に、第2の実施の形態の処理手順を説明する。まず、既存の構造物のSTLデータに対する特徴ベクトルを予め算出して、記憶部110に登録する処理について説明する。
図11は、第2の実施の形態の登録時の処理例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(S11)参照点設定部120は、記憶部110に記憶されたSTLデータ111を読み出す。なお、記憶部110には複数のSTLデータが予め登録され得る。ステップS11〜S15の処理は、STLデータの分だけ繰り返される。
(S12)参照点設定部120は、STLデータ111を参照し、構造物を形成する複数のポリゴンの空間内での配置に応じて参照点の座標を算出する。参照点設定部120は、STLデータ111に関連付けて参照点の座標を参照点テーブル112に登録する。処理の詳細については後述する。
(S13)グラフ合成処理部130は、STLデータ111およびステップS12で設定された参照点の座標に基づいて、構造物のグラフ化を実行し、グラフデータ113を生成し、記憶部110に格納する。
(S14)特徴量計算部140は、グラフデータ113を用いた所定の演算により、構造物に対する特徴量を計算する。特徴量計算部140は、複数の種類の演算により、複数の種類の特徴量を計算することで、構造物に対する特徴ベクトルを計算する。
(S15)特徴量計算部140は、STLデータ111に関連付けて特徴ベクトルを記憶部110に格納する。
図12は、第2の実施の形態の参照点の設定例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。以下に示す処理は、図11のステップS12の処理に相当する。なお、以下の説明において、ベクトルまたは行列をボールド表記で表す。また、転置を示す添え字Tが付されていないベクトルは3行1列の列ベクトルである。添え字Tが付されているベクトルは1行3列の行ベクトルである。参照点設定部120は、参照点の設定に、主成分分析の手法を用いる。
(S21)参照点設定部120は、STLデータ111から構造物の重心の座標μを計算する。具体的には、i番目のポリゴンの3つの頂点と原点Oとを頂点とする四面体の符号付きの体積Viは、式(1)で表せる。
Figure 0006311404
ポリゴンの数はN個だから、構造物の全体積Vは式(2)で表せる。
Figure 0006311404
また、ポリゴンの3つの頂点が原点Oを基準とした位置ベクトルで表されているとき、i番目のポリゴンの3つの頂点と原点Oとを頂点とする四面体の重心の座標ηiは、式(3)で表せる。ただし、構造物の密度は一定であるとする。
Figure 0006311404
よって、構造物の重心の座標μは、式(4)により求まる。
Figure 0006311404
(S22)参照点設定部120は、重心の座標μに関する2次モーメント行列C(共分散行列ということもある)を計算する。2次モーメント行列Cは3行3列の対称行列である。ここでは、複数のポリゴンの頂点の空間内の偏りを示す2次モーメント行列Cを求める。ただし、複数のポリゴンの重心(各ポリゴンの頂点の座標から求まる)の空間内の偏りを示す2次モーメント行列を求めてもよい。何れの方法を用いても、複数のポリゴンの空間内の偏りを評価できる。2次モーメント行列Cは、式(5)で表せる。
Figure 0006311404
ここで、nはSTLデータ111に含まれるポリゴンの頂点の総数である。ベクトルpjは、総数nのポリゴンの頂点のうち、j番目の頂点の位置ベクトルである。2次モーメント行列Cの全成分は、ベクトルpj T=(xj,yj,zj)、ベクトルμT=(μx,μy,μz)として、式(6)で表せる。
Figure 0006311404
(S23)参照点設定部120は、2次モーメント行列Cを対角化することで、3軸で無相関となる新たな直交座標系における2次モーメント行列を求める。座標変換用の行列を行列Xとすれば、新たな2次モーメント行列XCXTは、式(7)で表せる。
Figure 0006311404
ここで、λ1,λ2,λ3(λ1≧λ2≧λ3)は、2次モーメント行列Cの固有値である。λ1,λ2,λ3それぞれに対応する2次モーメント行列Cの固有ベクトルは、構造物の主成分方向を示す単位長さのベクトルである。そのうち、λ1に対する固有ベクトル(偏りの度合いの最大の軸方向)は第1主成分の方向を示す。λ2に対する固有ベクトルは第2主成分の方向を示す。λ3に対する固有ベクトルは第3主成分の方向を示す。λ1,λ2,λ3は、3次の固有方程式(8)の解である(行列Iは単位行列である)。
Figure 0006311404
このとき、第1主成分方向の標準偏差は式(9)により求まる。また、第1主成分方向を示す単位固有ベクトルhのx,y,z成分は、3元連立1次方程式(10)の解として求まる。
Figure 0006311404
Figure 0006311404
(S24)参照点設定部120は、μ−σh,μ,μ+σhで示される座標を参照点の座標と決定する。参照点設定部120は、算出した参照点をSTLデータ111に関連付けて、参照点テーブル112に登録する。
このようにして、管理装置100は、参照点を設定する。なお、図12の例では、主に第1主成分方向を例示したが、第2、第3主成分方向に対しても同様に参照点を設定できる。
図13は、第2の実施の形態の検索時の処理例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(S31)検索部150は、検索クエリを受け付ける。検索クエリは、ユーザによって指定された構造物のSTLデータを含む。例えば、前述のように検索クエリは、ユーザにより管理装置100に直接入力されてもよいし、ネットワーク10を介して他の装置から入力されてもよい。
(S32)参照点設定部120は、検索クエリに含まれるSTLデータに基づいて、参照点を設定する。設定の手順は、図12の手順と同様である。
(S33)グラフ合成処理部130は、検索クエリに含まれるSTLデータおよびステップS32で設定された参照点の座標に基づいて、検索クエリの構造物のグラフ化を実行し、当該構造物に対するグラフデータを生成する。
(S34)特徴量計算部140は、ステップS33で生成したグラフデータを用いた所定の演算により、検索クエリに含まれる構造物に対する特徴量を計算する。特徴量計算部140は、複数の種類の演算により、複数の種類の特徴量を計算することで、構造物に対する特徴ベクトルを計算する。
(S35)検索部150は、ステップS34で計算された特徴ベクトルと、設計済の構造物に対して記憶部110に登録済の特徴ベクトルとを照合して、設計済の構造物の中から、検索クエリの構造物に形状が類似するものを検索する。
(S36)検索部150は、検索結果を出力する。例えば、検索部150は、ディスプレイ11に検索結果を表示させる。または、検索部150は、ネットワーク10を介して、検索クエリの送信元の装置に検索結果を送信する。
図14は、第2の実施の形態の参照点の設定の他の例を示す図である。図13までは、主に2次モーメントに基づいて参照点を設定する例を説明したが、3次以上(3次、4次、5次、・・・)のモーメントに基づいて参照点を設定してもよい。なお、2次以上のモーメントを指して高次モーメントということもある。
例えば、第1主成分方向の軸をx’軸とし、x’軸における重心μのx’座標に関するk(kは2以上の整数)次のモーメントの平均λ’を式(11)により算出する。そして、式(12)によりλ’に対応するσkを算出する。
Figure 0006311404
Figure 0006311404
図12のステップS24において、μ−σkh,μ+σkhを参照点に設定する。μ−σh,μ+σhの参照点とともに、μ−σkh,μ+σkhを追加して設定してもよい。μ−σh,μ+σhの参照点に代えて、μ−σkh,μ+σkhを設定してもよい。第1主成分方向について説明したが、第2,第3主成分に対しても、同様にして参照点を設定してもよい。例えば、より高い次数のモーメントを用いることで、図14に示す構造物80のように、第1主成分方向の構造物80の端部にポリゴンが偏在している場合に、参照点をより端部側に設けることができ、形状の特徴をより詳細にグラフに反映できる。
このように、管理装置100は、構造物80の重心と構造物を形成する複数のポリゴンの主成分方向の配置のばらつきにより参照点を設定する。これにより、構造物80の形状の特徴をより詳細にグラフに反映させることができる。
なお、第2の実施の形態では、特徴量の計算に用いるグラフとして無向グラフを想定したが、有向グラフとしてもよい。例えば、構造物の頂点と参照点とを結ぶ辺に対応するエッジに対して向きを設定することで、構造物の当該頂点が構造物の外側に凸の形状の先端であるか、構造物の内側に凸の形状の先端であるかを識別可能とすることが考えられる。
具体的には、構造物の重心μと構造物の頂点を含む複数のポリゴンの各法線ベクトルとの内積をとり、各内積値のうち正の内積値の数が負の内積値の数以上あれば、当該頂点を外側に凸の形状の先端であるとする。他方、正の内積値の数が負の内積値の数よりも少なければ、当該頂点を内側に凸の形状の先端であるとする。外側に凸の形状であれば、例えば参照点を始点、当該先端の頂点を終点とする向きをエッジに付与する。一方、内側に凸の形状であれば、当該先端の頂点を始点、参照点を終点とする向きをエッジに付与する。
このように、構造物の表面の凹凸形状をより詳細にグラフに反映して、特徴量を計算することも考えられる。
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。第3の実施の形態では、第2の実施の形態で算出した重心の座標をずらすことで、参照点を設定する点が、第2の実施の形態と異なる。
ここで、第3の実施の形態の管理装置のハードウェア例およびソフトウェア例は、第2の実施の形態の管理装置100のハードウェア例およびソフトウェア例と同様である。そこで、第3の実施の形態でも第2の実施の形態と同じ符号・名称を用いて各要素を指し示す。
図15は、第3の実施の形態のポリゴンに対するベクトルの例を示す図である。重心Riは、構造物を形成するi番目のポリゴンの重心である。重心Riの座標は、ポリゴンの3つの頂点に対する位置ベクトルの和を3で割ることで求まる。ベクトルqiは、構造物の重心μを始点とし、i番目のポリゴンの重心Riを終点とするベクトル(Ri−μ)である。
図16は、第3の実施の形態の参照点の設定例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。以下の手順は、図11のステップS12および図13のステップS32に相当する。
(S41)参照点設定部120は、STLデータ111から構造物の重心の座標μを計算する。計算方法は、図12のステップS21と同様である。
(S42)参照点設定部120は、重心μからi番目のポリゴン(ポリゴンi)の重心Riへ向かうベクトルqiを計算する。参照点設定部120は、構造物を形成する全てのポリゴンについて、ベクトルqiを計算する。
(S43)参照点設定部120は、ベクトルqiとポリゴンiの法線ベクトルriとの内積miを計算する。内積miは式(13)で表せる。
Figure 0006311404
(S44)参照点設定部120は、ポリゴンiの重心Riに内積miを割り当てる。
(S45)参照点設定部120は、ポリゴンiの重心Riに割り当てられた内積miを質量とみなしたときの構造物の重心の座標νを算出する。ここで、νの計算において、構造物の内部は中空であるとみなす(すなわち、構造物の表面を張るポリゴンiの重心Riのみが質量をもつとみなす)。このとき、構造物の質量は式(14)で表せる。
Figure 0006311404
よって、構造物の重心の座標νは式(15)で表せる。
Figure 0006311404
座標νは、内積miの3次元空間内での分布を反映した座標であるといえる。内積miは、ポリゴンiの重心に割り当てられる。このため、内積miの分布は、複数のポリゴンの空間内での配置に応じて決まる。
(S46)参照点設定部120は、ステップS45で算出した重心の座標νを参照点の座標と決定する。参照点設定部120は、参照点の座標をSTLデータ111に関連付けて、参照点テーブル112に登録する。
図17は、第3の実施の形態の参照点の設定例を示す図である。第3の実施の形態では、ポリゴンの重心に対して内積miを与え、当該内積に基づいて構造物の重心μ(第2の実施の形態の参照点P1に相当)をずらした重心νを求める。このようにすると、ポリゴンの面積の大小は関係なく、ポリゴンの数の比較的多い領域が大きな内積をもつことになる。特に、第3の実施の形態の方法で、構造物の当初の重心μから見て表面が外向きであるポリゴンが多い領域、または当該領域に近い領域に参照点P4を設定できる。これにより、構造物の外側に突出した形状の特徴(例えば、構造物70の端部の凸型形状)を、より詳細にグラフに反映させることができる。
[第4の実施の形態]
以下、第4の実施の形態を説明する。前述の第2,第3の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。第4の実施の形態では、ポリゴンが配置された密度が比較的大きな領域を判別する。ポリゴンの密度とは、所定の半径の球の内部に含まれるポリゴンの重心の個数を球の体積で割った値である。管理装置100は、ポリゴンの密度が比較的大きな箇所を、局所探索法(例えば、山登り法)を用いて探索する。
ここで、第4の実施の形態の管理装置のハードウェア例およびソフトウェア例は、第2の実施の形態の管理装置100のハードウェア例およびソフトウェア例と同様である。そこで、第4の実施の形態でも第2の実施の形態と同じ符号・名称を用いて各要素を指し示す。
図18は、第4の実施の形態の参照点の設定例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。以下の手順は、図11のステップS12および図13のステップS32に相当する。
(S51)参照点設定部120は、構造物を形成する各ポリゴンの重心の座標を計算する。
(S52)参照点設定部120は、構造物の近傍のa(aは1以上の整数)個の点Pi(ここで、iは1以上a以下の整数である)の座標と各点Piに付随する正の実数diとを決定する。例えば、第2の実施の形態で求めた重心μに対する主成分方向の標準偏差σを用いて、μ±σの領域を構造物の近傍領域と考えて、近傍領域内にa個の点Piを乱数などにより設けることが考えられる。この場合、σは3つの主成分に対して求まるので、構造物の近傍領域の形状は楕円体となる。また、参照点設定部120は、平均(√λ1)/100、標準偏差(√λ1)/10のガウシアンからサンプリングすることで実数diを決定してもよい。あるいは、重心μに対して所定半径の球内を構造物の近傍領域とし、実数diとして、所定値を予め与えてもよい。
(S53)参照点設定部120は、点Piを中心とした半径diの球に含まれるポリゴンの重心の数Aiを計算する。
(S54)参照点設定部120は、以降のステップS55,S56を所定回数繰り返したか否かを判定する。所定回数繰り返した場合、処理をステップS57に進める。所定回数繰り返していない場合、処理をステップS55に進める。繰り返しの回数は、参照点設定部120に対して予め指定される。
(S55)参照点設定部120は、各点Piの近傍点を乱数により求める。各点Piの近傍点は、例えば、各点Piから所定の距離以内の領域にランダムに設けられる。参照点設定部120は、近傍点を中心とした半径diの球に含まれるポリゴンの重心の数Biを計算する。
(S56)参照点設定部120は、Bi>Aiであれば、ステップS55で求めた近傍点をPiとして設定する(Piの座標を更新する)。参照点設定部120は、Bi≦Aiであれば、何もしない。そして、処理をステップS54に進める。
(S57)参照点設定部120は、各点Piの座標を参照点の座標と決定する。参照点設定部120は、参照点の座標をSTLデータ111に関連付けて、参照点テーブル112に登録する。
図19は、第4の実施の形態の参照点の設定例を示す図である。第4の実施の形態では、球SP1,SP2,SP3,SP4に対して初期の中心位置と半径とを与えて、局所探索法(山登り法)を用いてポリゴンの密度が高い位置を探索する。図19において、点P11は球SP1の中心である。点P12は球SP2の中心である。点P13は球SP3の中心である。点P14は球SP4の中心である。半径d1は球SP1の半径である。半径d2は球SP2の半径である。半径d3は球SP3の半径である。半径d4は球SP4の半径である。
各球の半径を変えない場合、球の中心の位置によって、球内部に含まれるポリゴンの重心の数が変化する。例えば、球SP3の内部に含まれるポリゴンの重心の数がより大きな位置(すなわち、ポリゴンの密度が大きいと考えられる位置)を発見した場合、その位置を球SP3の中心として更新していく。これを、各球に対して実行する。前述のように、ポリゴンの密度が比較的大きい箇所は、構造物の凹凸の形状が他の箇所に比べて際立っていると考えられるからである。ポリゴンの密度が相対的に大きい領域内(ここでは、球SP1,SP2,SP3,SP4内)に参照点を設定することで、構造物の形状の特徴をより詳細にグラフに反映させることができる。
[第5の実施の形態]
以下、第5の実施の形態を説明する。前述の第2,第3,第4の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。第5の実施の形態では、検索の目的(検索目的)に応じて参照点の設定方法を変更する。
ここで、第5の実施の形態の管理装置のハードウェア例およびソフトウェア例は、第2の実施の形態の管理装置100のハードウェア例およびソフトウェア例と同様である。そこで、第5の実施の形態でも第2の実施の形態と同じ符号・名称を用いて各要素を指し示す。ただし、第5の実施の形態では、管理装置100は、ライブラリ内のSTLデータに対して、参照点の種類に応じた複数の種類の特徴ベクトルを予め計算し、記憶部110に格納しておく。
図20は、第5の実施の形態の特徴ベクトルテーブルの例を示す図である。特徴ベクトルテーブル114は、記憶部110に記憶される。特徴ベクトルテーブル114は、構造物、パターン1(2次モーメント)、パターン2(重心ν)、パターン3(ポリゴン密度)の項目を含む。
構造物の項目には、構造物の識別情報が登録される。パターン1(2次モーメント)の項目には、第2の実施の形態の方法を用いて求めた特徴ベクトルが登録される。パターン2(重心ν)の項目には、第3の実施の形態の方法を用いて求めた特徴ベクトルが登録される。パターン3(ポリゴン密度)の項目には、第4の実施の形態の方法を用いて求めた特徴ベクトルが登録される。
例えば、特徴ベクトルテーブル114には、識別情報“構造物A”に対して、パターン1の特徴ベクトル“V11”、パターン2の特徴ベクトル“V12”、パターン3の特徴ベクトル“V13”が登録されている。各パターンに対応する特徴ベクトルは、第2〜第4の実施の形態の方法を用いて、既存のSTLデータに対して予め計算され、特徴ベクトルテーブル114に登録される。
管理装置100は、これらの特徴ベクトルを、検索目的に応じて使い分ける。管理装置100は、検索クエリに含まれる情報に応じて、検索目的を判断する。例えば、ユーザは、検索を行いたい形状を示すSTLデータとともに、検索目的(全体構造が類似するものを検索、部分的な構造が類似するものを検索など)を検索クエリとして管理装置100に指定できる。
図21は、第5の実施の形態の参照点の設定例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。以下の手順は、図13のステップS32に相当する。
(S61)参照点設定部120は、検索クエリから検索目的を特定する。参照点設定部120は、検索目的が、検索クエリに含まれる構造物と全体構造が類似する他の構造物の検索(全体構造に対する類似検索)であるか否かを判定する。検索目的が、全体構造に対する類似検索である場合、処理をステップS62に進める。検索目的が、全体構造に対する類似検索でない場合、処理をステップS63に進める。
(S62)参照点設定部120は、検索クエリに含まれる構造物のSTLデータに基づいて、2次モーメントにより参照点を設定する(パターン1)。設定方法の手順として、図12で例示した第2の実施の形態の手順を適用できる。なお、ここでは2次モーメントを用いるものとしたが、第2の実施の形態で例示したように、3次以上のモーメントを用いて参照点を決定してもよい。その場合、特徴ベクトルテーブル114にも3次以上のモーメントを用いて決定された参照点に応じた特徴ベクトルが予め登録される。そして、処理を終了する。
(S63)参照点設定部120は、検索目的が、突起物が複数ある構造物の検索であるか否かを判定する。検索目的が、突起物が複数ある構造物の検索である場合、処理をステップS64に進める。検索目的が、突起物が複数ある構造物の検索でない場合、処理をステップS65に進める。
(S64)参照点設定部120は、検索クエリに含まれる構造物のSTLデータに基づいて、ポリゴン密度により参照点を設定する(パターン3)。設定方法の手順として、図18で例示した第4の実施の形態の手順を適用できる。そして、処理を終了する。
(S65)参照点設定部120は、検索クエリに含まれる構造物のSTLデータに基づいて、重心νにより参照点を設定する(パターン2)。設定方法の手順として、図16で例示した第3の実施の形態の手順を適用できる。そして、処理を終了する。
以後、グラフ合成処理部130および特徴量計算部140は、検索クエリに含まれる構造物のSTLデータと、図21の手順により設定された参照点とに基づいて、グラフ化、特徴ベクトルの計算を行う(図13のステップS33,S34)。参照点設定部120は、何れのパターンを選択して参照点の設定を行ったかを検索部150に通知する。
そして、図13のステップS35では、検索部150は、選択されたパターンに応じた特徴ベクトルを特徴ベクトルテーブル114から特定する。検索部150は、特徴ベクトルテーブル114から特定した特徴ベクトルと、検索クエリに対して求められた特徴ベクトルとを照合する。
このように、検索目的に応じて、参照点の設定方法を選択して特徴ベクトルを求めることが考えられる。例えば、全体構造の類似検索であれば、主成分方向の形状の特徴を基に検索を行うことで、全体構造が類似する構造物を適切に検索できる。
また、例えば、突起物が複数ある構造物の検索では、ポリゴンの密度が比較的大きい箇所に突起物の形状の特徴が現れると考えられるので、第4の実施の形態の方法により、当該突起物の形状の特徴が保持されるように参照点を設定する。そして、突起物の特徴を基に検索を行うことで、突起物が複数ある構造物を適切に検索できる。その他の検索目的では、全体および部分の構造の特徴に対してバランスのとれた検索を行うため、第3の実施の形態の方法を用いる。
上記のように検索目的に応じて参照点の設定方法を選択する他、検索対象物に応じて参照点の設定方法を選択することも考えられる。
図22は、第5の実施の形態の参照点の他の設定例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。以下の手順は、図13のステップS32に相当する。
(S71)参照点設定部120は、検索クエリから検索対象(検索目的の一例と考えることができる)を特定する。参照点設定部120は、検索対象がネジであるか否かを判定する。検索対象がネジである場合、処理をステップS72に進める。検索対象がネジでない場合、処理をステップS73に進める。
(S72)参照点設定部120は、検索クエリに含まれる構造物のSTLデータに基づいて、2次モーメントにより参照点を設定する(パターン1)。設定方法の手順として、図12で例示した第2の実施の形態の手順を適用できる。なお、ここでは2次モーメントを用いるものとしたが、第2の実施の形態で例示したように、3次以上のモーメントを用いて参照点を決定してもよい。その場合、特徴ベクトルテーブル114にも3次以上のモーメントを用いて決定された参照点に応じた特徴ベクトルが予め登録される。そして、処理を終了する。
(S73)参照点設定部120は、検索対象がバネであるか否かを判定する。検索対がバネである場合、処理をステップS74に進める。検索対象がバネでない場合、処理をステップS75に進める。
(S74)参照点設定部120は、検索クエリに含まれる構造物のSTLデータに基づいて、構造物(ここではバネの形状)をボクセル化し、モルフォルジーを用いて細線化して得た端点を参照点として設定する。そして、処理を終了する。
(S75)参照点設定部120は、検索クエリに含まれる構造物のSTLデータに基づいて、重心νにより参照点を設定する(パターン2)。設定方法の手順として、図16で例示した第3の実施の形態の手順を適用できる。そして、処理を終了する。
以後、グラフ合成処理部130および特徴量計算部140は、検索クエリに含まれる構造物のSTLデータと、図22の手順により設定された参照点とに基づいて、グラフ化、特徴ベクトルの計算を行う(図13のステップS33,S34)。参照点設定部120は、何れのパターンを選択して参照点の設定を行ったかを検索部150に通知する。
そして、図13のステップS35では、検索部150は、選択されたパターンに応じた特徴ベクトルを特徴ベクトルテーブル114から特定する。検索部150は、特徴ベクトルテーブル114から特定した特徴ベクトルと、検索クエリに対して求められた特徴ベクトルとを照合する。なお、この場合、管理装置100は、既存の構造物に対して、ステップS74で例示したパターンに対応する特徴ベクトルも予め求めておき、特徴ベクトルテーブル114に格納しておく。
例えば、ネジの構造物では、ネジの頭(頭部)と軸とが重要であるため、参照点がネジの頭と軸とにより近い位置に参照点が設定される方法を選択することで、ネジの形状の特徴をより詳細に反映した特徴ベクトルによる検索を行える。その結果、ネジの検索の精度を向上できる。
図23は、第5の実施の形態の参照点の他の設定例を示す図である。図23では、図22のステップS74における参照点の設定方法を例示している。図23(A)では、細線化する前のバネを例示している。図23(B)では細線化した後のバネを例示している。図23(B)において、参照点P21,P22は、細線化して得られたバネの端点に設定された参照点である。
バネは中空であるため、重心の位置は構造物の内部ではない。そのため、バネのスケルトンを求めて参照点を設定する。これにより、バネの柱状の形状の特徴をより詳細に反映した特徴ベクトルによる検索を行える。その結果、バネの検索の精度を向上できる。
ネジやバネ以外の構造物については、図21と同様に、全体および部分の構造の特徴に対してバランスのとれた検索を行うため、第3の実施の形態の方法を用いる。このように、検索目的に応じて、参照点の設定方法を選択することで、検索目的に合った特徴ベクトルによる検索を行える。これにより、構造物の検索の精度を向上できる。
なお、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2〜第5の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1〜第5の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを参照して、前記複数の多角形の空間内での配置に応じて、前記複数の多角形の頂点とともに前記構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、
算出した点の座標を前記構造物データに関連付けて記憶装置に格納する、
処理をコンピュータに実行させる管理プログラム。
(付記2) 前記算出では、前記複数の多角形の頂点の座標を用いた主成分分析の結果を用いて前記点の座標を算出する、付記1記載の管理プログラム。
(付記3) 前記算出では、前記構造物の重心に関する主成分方向の2次以上のモーメントに基づいて前記点の座標を算出する、付記2記載の管理プログラム。
(付記4) 前記算出では、前記構造物の重心、各多角形の重心および各多角形の法線ベクトルに基づいて前記点の座標を算出する、付記1記載の管理プログラム。
(付記5) 前記算出では、前記構造物の重心から多角形の重心へ向けたベクトルと当該多角形の法線ベクトルとの内積を算出して当該多角形の重心に割り当てる処理を多角形毎に行い、前記内積の分布に基づいて前記点の座標を算出する、付記4記載の管理プログラム。
(付記6) 前記算出では、空間内の複数の領域における多角形の個数の密度に基づいて前記点の座標を算出する、付記1記載の管理プログラム。
(付記7) 前記算出では、前記複数の領域のうち、多角形の個数の密度が他の領域よりも大きな領域を局所探索法により検索し、検索された領域内に前記点の座標を設定する、付記6記載の管理プログラム。
(付記8) 前記算出では、構造物データの検索クエリで指定された検索目的に応じて、前記点の座標の算出方法を選択する、付記1乃至7の何れか1つに記載の管理プログラム。
(付記9) 所定の構造物に類似する形状の他の構造物の検索を要求する検索クエリを受け付けた際に前記点の座標の前記算出を実行し、
前記算出では、前記点の座標の複数の算出方法のうち、前記検索クエリで指定された検索目的に応じた算出方法を選択し、選択した算出方法を用いて前記点の座標を算出する、付記8記載の管理プログラム。
(付記10) 前記記憶装置を参照して、前記点および前記構造物の各頂点をノード、前記点と前記構造物の各頂点とを結ぶ辺をエッジとして含み、辺の長さに応じた重みをエッジの重みとするグラフを生成し、前記グラフに基づいて前記特徴量を計算する、付記1乃至9の何れか1つに記載の管理プログラム。
(付記11) 3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを記憶する記憶部と、
前記構造物データを参照して、前記複数の多角形の空間内での配置に応じて、前記複数の多角形の頂点とともに前記構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、
算出した点の座標を前記構造物データに関連付けて記憶装置に格納する、演算部と、
を有する管理装置。
(付記12) コンピュータが、
3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを参照して、前記複数の多角形の空間内での配置に応じて、前記複数の多角形の頂点とともに前記構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、
算出した点の座標を前記構造物データに関連付けて記憶装置に格納する、
管理方法。
1 管理装置
1a 記憶部
1b 演算部
2,3 構造物
P1,P2 点

Claims (8)

  1. 3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを参照して、前記複数の多角形が属する3次元空間内での前記複数の多角形の配置に応じて、前記複数の多角形の頂点とともに前記構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、
    算出した点の座標を前記構造物データに関連付けて記憶装置に格納する、
    処理をコンピュータに実行させる管理プログラム。
  2. 前記算出では、前記構造物の主成分方向のk(kは2以上の整数)次のモーメントに基づいて前記点の座標を算出する、請求項1記載の管理プログラム。
  3. 前記算出では、前記構造物の重心、各多角形の重心および各多角形の法線ベクトルに基づいて前記点の座標を算出する、請求項1記載の管理プログラム。
  4. 前記算出では、前記3次元空間内の複数の領域における多角形の個数の密度に基づいて前記点の座標を算出する、請求項1記載の管理プログラム。
  5. 前記算出では、構造物データの検索クエリで指定された検索目的に応じて、前記点の座標の算出方法を選択する、請求項1乃至4の何れか1項に記載の管理プログラム。
  6. 前記記憶装置を参照して、前記点および前記構造物の各頂点をノード、前記点と前記構造物の各頂点とを結ぶ辺をエッジとして含み、辺の長さに応じた重みをエッジの重みとするグラフを生成し、前記グラフに基づいて前記特徴量を計算する、請求項1乃至5の何れか1項に記載の管理プログラム。
  7. 3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを記憶する記憶部と、
    前記構造物データを参照して、前記複数の多角形が属する3次元空間内での前記複数の多角形の配置に応じて、前記複数の多角形の頂点とともに前記構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、
    算出した点の座標を前記構造物データに関連付けて記憶装置に格納する、演算部と、
    を有する管理装置。
  8. コンピュータが、
    3次元で構造物を表す複数の多角形の頂点の座標を含む構造物データを参照して、前記複数の多角形が属する3次元空間内での前記複数の多角形の配置に応じて、前記複数の多角形の頂点とともに前記構造物データをグラフ化したときの特徴量の計算に用いられる点の座標を算出し、
    算出した点の座標を前記構造物データに関連付けて記憶装置に格納する、
    管理方法。
JP2014072504A 2014-03-31 2014-03-31 管理プログラム、管理装置および管理方法 Active JP6311404B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014072504A JP6311404B2 (ja) 2014-03-31 2014-03-31 管理プログラム、管理装置および管理方法
US14/637,739 US9898859B2 (en) 2014-03-31 2015-03-04 Apparatus and method for managing structure data
EP15158600.5A EP2927827B1 (en) 2014-03-31 2015-03-11 Program, apparatus, and method for managing structure data
CN201510130046.XA CN104952086B (zh) 2014-03-31 2015-03-24 用于管理结构数据的设备及方法
KR1020150041818A KR101741894B1 (ko) 2014-03-31 2015-03-25 관리 프로그램, 관리 장치 및 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014072504A JP6311404B2 (ja) 2014-03-31 2014-03-31 管理プログラム、管理装置および管理方法

Publications (2)

Publication Number Publication Date
JP2015194909A JP2015194909A (ja) 2015-11-05
JP6311404B2 true JP6311404B2 (ja) 2018-04-18

Family

ID=52692441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014072504A Active JP6311404B2 (ja) 2014-03-31 2014-03-31 管理プログラム、管理装置および管理方法

Country Status (5)

Country Link
US (1) US9898859B2 (ja)
EP (1) EP2927827B1 (ja)
JP (1) JP6311404B2 (ja)
KR (1) KR101741894B1 (ja)
CN (1) CN104952086B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965893B2 (en) * 2013-06-25 2018-05-08 Google Llc. Curvature-driven normal interpolation for shading applications
JP6650848B2 (ja) * 2016-08-22 2020-02-19 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
US10463445B2 (en) * 2017-11-27 2019-11-05 Biosense Webster (Israel) Ltd. Point density illustration
KR101911447B1 (ko) 2018-05-09 2018-10-24 권오성 구조설계 도면의 패턴분석을 통한 3차원 구조해석 모델 생성 장치
US10614340B1 (en) * 2019-09-23 2020-04-07 Mujin, Inc. Method and computing system for object identification
CN112116011B (zh) * 2020-09-21 2021-07-27 上海晓材科技有限公司 一种用于cad图形的特征编码方法和相似度比较方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631364B1 (en) * 1997-03-26 2003-10-07 National Research Council Of Canada Method of searching 3-Dimensional images
JP2000222573A (ja) 1999-01-28 2000-08-11 Internatl Business Mach Corp <Ibm> 多面体形状比較方法およびシステム
JP2000222428A (ja) * 1999-02-03 2000-08-11 Hitachi Ltd 3次元モデルの類似検索システム及び3次元モデルデータベース登録システム
JP2001155019A (ja) * 1999-11-25 2001-06-08 Olympus Optical Co Ltd 類似画像検索装置
JP3513562B2 (ja) 2000-04-20 2004-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 形状解析システム、3次元形状モデルの差分検出システム、類似形状検索システム、形状解析方法及び記憶媒体
JP3614761B2 (ja) * 2000-07-24 2005-01-26 日本電信電話株式会社 三次元物体データベースの検索方法及び三次元物体データベースの検索プログラムを記録した記録媒体
JP3766857B2 (ja) * 2002-04-02 2006-04-19 株式会社ヤッパ 3次元モデルの開発支援システム
EP1429264B1 (en) * 2002-12-05 2016-06-29 Samsung Electronics Co., Ltd. Method of perceptual 3D shape description and method and apparatus for searching 3D graphics model database using the description method
WO2004068300A2 (en) 2003-01-25 2004-08-12 Purdue Research Foundation Methods, systems, and data structures for performing searches on three dimensional objects
JP4893148B2 (ja) 2006-08-09 2012-03-07 株式会社日立製作所 形状簡略化装置及びそれに用いられるプログラム
JP5395868B2 (ja) * 2011-09-26 2014-01-22 富士フイルム株式会社 画像処理装置および方法ならびにプログラム

Also Published As

Publication number Publication date
KR20150113870A (ko) 2015-10-08
JP2015194909A (ja) 2015-11-05
EP2927827B1 (en) 2021-10-06
US9898859B2 (en) 2018-02-20
EP2927827A1 (en) 2015-10-07
CN104952086B (zh) 2018-06-12
CN104952086A (zh) 2015-09-30
US20150279097A1 (en) 2015-10-01
KR101741894B1 (ko) 2017-05-30

Similar Documents

Publication Publication Date Title
JP6311404B2 (ja) 管理プログラム、管理装置および管理方法
US9454580B2 (en) Recommendation system with metric transformation
JP2012043419A (ja) 三次元モデル検索装置、三次元モデル検索方法、モデルライブラリ生成装置及びモデルライブラリ生成方法
US20190065913A1 (en) Search method and information processing apparatus
JP6863926B2 (ja) データ分析システム及びデータ分析方法
US20150277435A1 (en) Computing apparatus and computing method
JP7017852B2 (ja) 記述子を用いた3dオブジェクトの位置特定
Kyung et al. Robust polyhedral Minkowski sums with GPU implementation
JP6947503B2 (ja) 量子化を用いた3dオブジェクトの位置特定
CN111340100B (zh) Bim模型的相似度计算方法
Jankowai et al. Robust extraction and simplification of 2D symmetric tensor field topology
Beilschmidt et al. An efficient aggregation and overlap removal algorithm for circle maps
JP2004185626A (ja) 知覚的に認識可能な3次元形状の記述方法と、それを利用した3次元グラフィックモデルのデータベース検索方法及び装置
JP2015106228A (ja) データ探索装置、データ探索装置の制御方法およびデータ探索装置の制御プログラム
Jahanshahloo et al. Reconstruction of 3D shapes with B-spline surface using diagonal approximation BFGS methods
Hong et al. Retrieval of non-rigid 3D models based on approximated topological structure and local volume
Hosseini Alamdari et al. New algorithms for generating isovist field and isovist measurements
JP7265143B2 (ja) 表示制御方法、表示制御プログラムおよび情報処理装置
Liu et al. Extended cone-curvature based salient points detection and 3D model retrieval
Dachsel et al. Shape matching by time integration of partial differential equations
Gao et al. Flip to regular triangulation and convex hull
US10877948B1 (en) Method and computer program product for geospatial binning
Berjón et al. A parallel implementation of 3D Zernike moment analysis
Behar et al. Dynamic Minkowski sums under scaling
Zhang et al. Spectral segmentation via minimum barrier distance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171211

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: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R150 Certificate of patent or registration of utility model

Ref document number: 6311404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150