(57)【特許請求の範囲】
【請求項１】
工作機械において加工対象を機械加工するための異なる複数の加工プログラムが登録されたデータベースを検索対象とし、
新たに加工プログラムが作成される加工対象の加工仕上がり形状を示す３次元モデルである第１の３次元モデルと、前記データベースに登録された前記複数の加工プログラムで機械加工された複数の加工対象の加工仕上がり形状を示す３次元モデルである複数の第２の３次元モデルとをＸ軸、Ｙ軸、Ｚ軸の３軸で構成され、前記３軸のそれぞれに沿った複数の分割空間で形成された仮想の３次元空間に配置し、前記第１の３次元モデルにおいて、前記３次元空間における前記複数の分割空間のそれぞれが前記第１の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第１の位置情報と、複数の前記第２の３次元モデルのそれぞれにおいて、前記複数の分割空間のそれぞれが前記第２の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す複数の第２の位置情報とを取得するモデル変換部と、
前記第１の位置情報と前記第２の位置情報とを比較することにより、前記第１の３次元モデルと前記第２の３次元モデルとの形状の類似度を判定する類似度判定部と、
前記類似度判定部における判定結果に基づいて、複数の前記第２の３次元モデルのうち前記形状の類似度が相対的に高い前記第２の３次元モデルを機械加工するための前記加工プログラムを前記データベースから検索して取得する登録プログラム取得部と、
を備えることを特徴とする加工プログラム検索装置。
【請求項２】
前記登録プログラム取得部が取得した前記加工プログラムを出力する出力部を備えること、
を特徴とする請求項１に記載の加工プログラム検索装置。
【請求項３】
前記モデル変換部は、前記３次元空間に配置した前記第１の３次元モデルと前記第２の３次元モデルとのうち少なくとも一方に対して、形状の回転移動、形状の拡大および形状の縮小のうち少なくとも１つの処理を行って、前記第１の位置情報と複数の前記第２の位置情報とを取得すること、
を特徴とする請求項１または２に記載の加工プログラム検索装置。
【請求項４】
前記類似度判定部は、前記分割空間の同一位置における前記第１の位置情報と複数の前記第２の位置情報とを比較すること、
を特徴とする請求項１から３のいずれか１つに記載の加工プログラム検索装置。
【請求項５】
前記第１の３次元モデルと複数の前記第２の３次元モデルとの形状の差異部の情報を取得するモデル差異取得部を備えること、
を特徴とする請求項２から４のいずれか１つに記載の加工プログラム検索装置。
【請求項６】
前記形状の差異部に対応する前記第２の３次元モデルを機械加工するための加工プログラムである差異部加工プログラムを前記第２の３次元モデルを機械加工するための加工プログラムから取得すること、
を特徴とする請求項５に記載の加工プログラム検索装置。
【請求項７】
工作機械において加工対象を機械加工するための異なる複数の加工プログラムが登録されたデータベースを検索対象とし、
新たに加工プログラムが作成される加工対象の加工仕上がり形状を示す３次元モデルである第１の３次元モデルと、前記データベースに登録された前記複数の加工プログラムで機械加工された複数の加工対象の加工仕上がり形状を示す３次元モデルである複数の第２の３次元モデルとをＸ軸、Ｙ軸、Ｚ軸の３軸で構成され、前記３軸のそれぞれに沿った複数の分割空間で形成された仮想の３次元空間に配置し、前記第１の３次元モデルにおいて、前記３次元空間における前記複数の分割空間のそれぞれが前記第１の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第１の位置情報と、複数の前記第２の３次元モデルのそれぞれにおいて、前記複数の分割空間のそれぞれが前記第２の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す複数の第２の位置情報とを取得するモデル変換部と、
加工対象の加工仕上がり形状を示す３次元モデルを前記３次元空間に配置し、前記３次元モデルにおいて、前記３次元空間における前記複数の分割空間のそれぞれが前記３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す位置情報と、複数の前記３次元モデルを複数の分類に分類した分類結果である教師データとをデータセットとして取得するデータ取得部と、前記データセットに基づいて、前記３次元モデルの前記分類結果を用いた指標を推論するための学習済モデルを生成する学習部と、を備える機械学習部と、
前記第１の位置情報と前記第２の位置情報とから前記学習済モデルを用いて出力された、前記第１の位置情報における前記３次元モデルの前記分類結果を用いた指標と前記第２の位置情報における前記３次元モデルの前記分類結果を用いた指標とに基づいて、前記第１の３次元モデルの特徴量と前記第２の３次元モデルの特徴量を取得する特徴量取得部と、
前記第１の３次元モデルの特徴量と前記第２の３次元モデルの特徴量とを比較することにより、前記第１の３次元モデルと前記第２の３次元モデルとの形状の類似度を判定する類似度判定部と、
前記類似度判定部における判定結果に基づいて、複数の前記第２の３次元モデルのうち前記形状の類似度が相対的に高い前記第２の３次元モデルを機械加工するための前記加工プログラムを前記データベースから検索して取得する登録プログラム取得部と、
を備えることを特徴とする加工プログラム検索装置。
【請求項８】
工作機械において加工対象を機械加工するための異なる複数の加工プログラムが登録されたデータベースを検索対象とする加工プログラム検索装置における加工プログラム検索方法であって、
新たに加工プログラムが作成される加工対象の加工仕上がり形状を示す３次元モデルである第１の３次元モデルと、前記データベースに登録された前記複数の加工プログラムで機械加工された複数の加工対象の加工仕上がり形状を示す３次元モデルである複数の第２の３次元モデルとをＸ軸、Ｙ軸、Ｚ軸の３軸で構成され、前記３軸のそれぞれに沿った複数の分割空間で形成された仮想の３次元空間に配置し、前記第１の３次元モデルにおいて、前記３次元空間における前記複数の分割空間のそれぞれが前記第１の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第１の位置情報と、複数の前記第２の３次元モデルのそれぞれにおいて、前記複数の分割空間のそれぞれが前記第２の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す複数の第２の位置情報とを取得するステップと、
前記第１の位置情報と前記第２の位置情報とを比較することにより、前記第１の３次元モデルと前記第２の３次元モデルとの形状の類似度を判定するステップと、
前記形状の類似度を判定するステップにおける判定結果に基づいて、複数の前記第２の３次元モデルのうち前記形状の類似度が相対的に高い前記第２の３次元モデルを機械加工するための前記加工プログラムを前記データベースから検索して取得するステップと、
を含むことを特徴とする加工プログラム検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、加工対象形状に類似した形状の加工プログラムを検索する加工プログラム検索装置および加工プログラム検索方法に関する。
【背景技術】
【０００２】
数値制御（Numerical  Control：ＮＣ）装置などの制御装置によって制御される工作機械は、加工対象を種々の加工仕上がり形状に機械加工する。工作機械により機械加工を実行するためには、制御装置が、加工プログラムに従って工作機械を制御する必要がある。しかしながら、制御装置が用いる工作機械を制御するための加工プログラムの作成は、多くの時間および経験が必要となるため、加工プログラムの作成を支援する作成支援機能の充実化が進められている。例えば、加工プログラムの作成支援機能としては、ユーザが図面を見ながら加工対象の寸法をＮＣ画面に設定することで加工プログラムを作成する機能、コンピュータ支援設計（Computer-Aided  Design：ＣＡＤ）データを直接読み込んでＮＣプログラムといった加工プログラムを作成する機能などがある。これらの作成支援機能は、一から加工プログラムを作成することを前提としており、過去に加工プログラムを作成したことのある加工仕上がり形状と類似形状の加工仕上がり形状を加工する場合でも一から加工プログラムを作成するため、加工プログラムの作成効率が悪かった。【０００３】
ユーザが、加工プログラムを作成する際に、上述の類似形状の加工仕上がり形状に対応する加工プログラムを流用することで作成効率は上がるが、加工プログラムを流用するためには、新たに加工する加工仕上がり形状が、過去に加工プログラムを作成したことのある加工仕上がり形状と類似しているか否かを判別する必要がある。【０００４】
特許文献１に記載の検索システムは、３次元形状データベースに対し、３次元形状モデルの一部または全体を検索質問とし、検索質問における部分の形状に類似する３次元形状を３次元データベースから選び出す３次元形状検索に関する技術が開示されている。具体的には、検索システムは、前処理として３次元物体を点群に変換し、多視点レンダリングにより部分形状を抽出し、特徴量抽出として該部分形状の姿勢正規化を行って、多視点からの法線ヒストグラムを用いて第一の特徴ベクトルを求めている。そして、検索システムは、検索質問に対して、３次元物体を点群に変換し、多視点レンダリングにより部分形状を抽出し、特徴量抽出として該部分形状の姿勢正規化を行って、多視点からの法線ヒストグラムを用いて第二の特徴ベクトルを求めている。検索システムは、３次元形状の検索時には、第一の特徴ベクトル及び第二の特徴ベクトル間の相違度を求めて、該相違度の値により検索質問における部分の形状に類似する３次元形状を３次元データベースから選び出す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−１３６６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の技術では、３次元の物体を表す３次元形状モデルを点群に変換し、多視点レンダリングにより画像に変換したのち、法線ヒストグラムを用いて特徴量抽出している。このため、特許文献１の技術では、多視点レンダリングで変換された画像に表れない、３次元の物体の形状内包部および３次元の物体に形成されている穴等による空間を含めた３次元形状を検出できないという問題があった。【０００７】
本開示は、上記に鑑みてなされたものであって、工作機械における機械加工の加工仕上がり形状に類似した形状を加工する加工プログラムをデータベースから自動で容易に検索する加工プログラム検索装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本開示にかかる加工プログラム検索装置は、工作機械において加工対象を機械加工するための異なる複数の加工プログラムが登録されたデータベースを検索対象とする。加工プログラム検索装置は、新たに加工プログラムが作成される加工対象の加工仕上がり形状を示す３次元モデルである第１の３次元モデルと、データベースに登録された複数の加工プログラムで機械加工された複数の加工対象の加工仕上がり形状を示す３次元モデルである複数の第２の３次元モデルとをＸ軸、Ｙ軸、Ｚ軸の３軸で構成され、３軸のそれぞれに沿った複数の分割空間で形成された仮想の３次元空間に配置し、第１の３次元モデルにおいて、３次元空間における複数の分割空間のそれぞれが第１の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第１の位置情報と、複数の第２の３次元モデルのそれぞれにおいて、複数の分割空間のそれぞれが第２の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す複数の第２の位置情報とを取得するモデル変換部と、を備える。加工プログラム検索装置は、第１の位置情報と第２の位置情報とを比較することにより、第１の３次元モデルと第２の３次元モデルとの形状の類似度を判定する類似度判定部と、類似度判定部における判定結果に基づいて、複数の第２の３次元モデルのうち形状の類似度が相対的に高い第２の３次元モデルを機械加工するための加工プログラムをデータベースから検索して取得する登録プログラム取得部と、を備える。
【発明の効果】
【０００９】
本開示にかかる加工プログラム検索装置は、工作機械における機械加工の加工仕上がり形状に類似した形状を加工する加工プログラムをデータベースから自動で容易に検索することができる、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかる加工プログラム検索装置の構成を示す図
【図２】実施の形態１にかかる加工プログラム検索装置が備えるモデル変換部の構成を示す図
【図３】実施の形態１にかかる加工プログラム検索装置が備える類似度判定部の構成を示す図
【図４】実施の形態１にかかる加工プログラム検索装置の処理の手順を示すフローチャート
【図５】実施の形態１にかかるモデル変換部の格子データ生成部の処理の手順を示すフローチャート
【図６】実施の形態１にかかるモデル変換部の格子データ生成部が取得した３次元モデルデータで示される３次元モデルを描画した一例を示す図
【図７】実施の形態１にかかるモデル変換部の格子データ生成部が取得した３次元モデルデータで示される３次元モデルを格子空間上に配置して描画した一例を示す図
【図８】実施の形態１にかかるモデル変換部のデータ圧縮部の処理の手順を示すフローチャート
【図９】実施の形態１にかかる類似度判定部の処理の手順を示すフローチャート
【図１０】実施の形態１における新規３次元モデルの例を示す図
【図１１】実施の形態１における登録３次元モデルの例を示す図
【図１２】図１１に示す２０個の登録３次元モデルから、図１０に示す新規３次元モデルに類似する登録３次元モデルとして検索された登録３次元モデルを示す図
【図１３】実施の形態１における機械学習を用いた類似度判定部の構成を示す図
【図１４】実施の形態１にかかる類似度判定部の処理の手順を示すフローチャート
【図１５】実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第１クラスタに分類された３次元モデルを示す図
【図１６】実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第２クラスタに分類された３次元モデルを示す図
【図１７】実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第３クラスタに分類された３次元モデルを示す図
【図１８】実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第４クラスタに分類された３次元モデルを示す図
【図１９】実施の形態１にかかる機械学習部の構成を示す図
【図２０】実施の形態１にかかる機械学習装置が用いるニューラルネットワークの構成を示す図
【図２１】図１０に示した新規３次元モデルに対する類似度が高い順にソートされた登録３次元モデルを示す図
【図２２】図１に示す加工プログラム検索装置においてデータ拡張を実行するモデル変換部の構成を示す図
【図２３】実施の形態１にかかるモデル変換部で実行されるデータ拡張処理を示すフローチャート
【図２４】実施の形態２にかかる加工プログラム検索装置の構成を示す図
【図２５】実施の形態２にかかる加工プログラム検索装置が備える差異認識部の構成を示す図
【図２６】実施の形態２にかかる差異認識部の処理の手順を示すフローチャート
【発明を実施するための形態】
【００１１】
以下に、実施の形態にかかる加工プログラム検索装置および加工プログラム検索方法を図面に基づいて詳細に説明する。なお、この実施の形態により本開示が限定されるものではない。
【００１２】
実施の形態１．
図１は、実施の形態１にかかる加工プログラム検索装置１００の構成を示す図である。加工プログラム検索装置１００は、加工対象となるワークの加工後の形状が類似した加工プログラムを検索するコンピュータである。
【００１３】
加工プログラム検索装置１００は、ＣＡＤシステム１１０に接続されており、ＣＡＤシステム１１０から３次元モデルデータを取得する。３次元モデルデータは、加工対象となるワークの加工後の形状である３次元の加工仕上がり形状を示す、加工形状データである。すなわち、３次元モデルは、加工対象の加工仕上がり形状と換言できる。３次元モデルデータには、ワークの加工仕上がり形状の情報およびワークの加工仕上がり形状の幾何情報が含まれる。幾何情報は、座標系における３次元形状の情報である。加工プログラム検索装置１００は、取得した３次元モデルデータに基づいて、３次元モデルデータで示される形状に類似する形状の３次元モデルを検索し、検索した３次元モデルと、この３次元モデルに対応する加工プログラムを出力する。以下、３次元モデルを単にモデルと呼ぶ場合がある。
【００１４】
加工プログラム検索装置１００は、情報が入力される入力部１１と、情報を表示する表示部１２と、情報を出力する出力部１３と、各種処理を実行するプロセッサ１４と、情報を記憶するメモリ１５と、を有する。
【００１５】
ＣＡＤシステム１１０は、３次元（three-dimensional：３Ｄ）ＣＡＤによって、加工対象となるワークの３次元の加工仕上がり形状を示す加工形状データを作成する。
【００１６】
入力部１１は、加工プログラム検索装置１００の外部の外部装置であるＣＡＤシステム１１０から、ＣＡＤシステム１１０で作成されたＣＡＤデータからなる３次元モデルデータを受け付けて、後述するモデル変換部２０に送信する。すなわち、入力部１１は、加工形状データが入力される加工形状データ入力部として機能する。
【００１７】
ただし、３次元モデルデータはＣＡＤデータに限定されない。３次元モデルデータは、加工プログラム検索装置１００において解釈可能なデータであればよい。表示部１２は、画面にて情報を表示してユーザに提示する。出力部１３は、加工プログラム検索装置１００の外部に情報を出力してユーザに提示する。
【００１８】
プロセッサ１４は、ＣＰＵ（Central  Processing  Unit）、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はＤＳＰ（Digital  Signal  Processor）である。メモリ１５は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）またはＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）、ＨＤＤ（Hard  Disk  Drive）またはＳＳＤ（Solid  State  Drive）を含む。加工プログラム検索装置１００の処理プログラムは、メモリ１５に格納される。プロセッサ１４は、メモリ１５に格納されているプログラムを実行する。
【００１９】
メモリ１５は、データベース６０と、加工プログラム検索装置１００の不図示の処理プログラム等を記憶する。
【００２０】
データベース６０は、３次元モデルデータを格納する。本実施の形態１では、データベース６０が、モデルデータＤ１からモデルデータＤＮ（Ｎは自然数）を記憶している場合について説明する。モデルデータＤ１からモデルデータＤＮのそれぞれは、３次元モデルデータと、この３次元モデルデータで示される加工仕上がり形状を加工する加工プログラムとを含んでいる。このように、データベース６０は、３次元モデルデータと加工プログラムとの組み合わせを複数組記憶している。３次元モデルデータの加工プログラムは、３次元モデルデータに対応する加工仕上がり形状を加工する際に用いられるプログラムである。モデルデータＤ１からモデルデータＤＮのそれぞれは、入力部１１から入力されてデータベース６０に記憶される。
【００２１】
なお、以下の説明では、モデルデータＤ１からモデルデータＤＮを識別する必要が無い場合には、モデルデータＤ１からモデルデータＤＮの何れかを、モデルデータＤｘという場合がある。第ｘ（ｘは１からＮの何れかの自然数）のモデルデータＤｘは、第ｘの３次元モデルデータと、第ｘの３次元モデルデータに対応する加工プログラムと、を含んでいる。このように、モデルデータＤｘでは、第ｘの３次元モデルデータと第ｘの加工プログラムとが対応付けされている。すなわち、データベース６０には、３次元モデルと、この３次元モデルに対応するワークを加工する際に用いられる加工プログラムと、が紐付けられて記憶されている。
【００２２】
なお、データベース６０は、加工プログラム検索装置１００の外部に配置されていてもよい。すなわち、データベース６０は、加工プログラム検索装置１００の外部装置であってもよい。
【００２３】
図１には、プロセッサ１４を使用することによって実現される加工プログラム検索装置１００の機能構成を示している。加工プログラム検索装置１００は、モデル変換部２０と、登録モデル取得部３０と、類似度判定部４０と、登録プログラム取得部５０と、を備える。
【００２４】
登録モデル取得部３０は、データベース６０に登録されているモデルデータＤｘから、３次元モデルデータを取得する。登録モデル取得部３０は、取得した３次元モデルデータを、モデル変換部２０に送る。登録モデル取得部３０は、データベース６０の３次元モデルデータをコピーして取得する。すなわち、登録モデル取得部３０は、データベース６０に３次元モデルデータを残したまま３次元モデルデータを取得する。
【００２５】
モデル変換部２０は、３次元モデルデータで示される３次元モデルのデータ変換を行う。モデル変換部２０は、入力部１１から取得した３次元モデルデータで示される３次元モデルと、登録モデル取得部３０から取得した３次元モデルデータで示される３次元モデルとを、格子データにデータ変換する。モデル変換部２０は、データ変換した格子データを類似度判定部４０に送信する。
【００２６】
以下の説明では、モデル変換部２０が入力部１１から取得した３次元モデルデータで示される３次元モデルを新規３次元モデルと呼び、モデル変換部２０が登録モデル取得部３０から取得した３次元モデルデータで示される３次元モデルを登録３次元モデルと呼ぶ場合がある。また、新規３次元モデルに対応する格子データを新規格子データと呼び、登録３次元モデルに対応する格子データを登録格子データと呼ぶ場合がある。また、新規３次元モデルを第１の３次元モデルとすると、登録３次元モデルは第２の３次元モデルといえる。
【００２７】
図２は、実施の形態１にかかる加工プログラム検索装置１００が備えるモデル変換部２０の構成を示す図である。モデル変換部２０は、格子データ生成部２１と、データ圧縮部２２とを備える。
【００２８】
格子データ生成部２１は、３次元モデルデータで示される３次元モデルに基づいて格子データを生成する。格子データは、３次元モデルの形状を３次元座標における仮想の３次元空間である格子ごとに分割してデータ化したものである。格子データ生成部２１は、新規３次元モデルの新規格子データを生成し、新規３次元モデルを新規格子データに変換する。また、格子データ生成部２１は、登録３次元モデルの登録格子データを生成し、登録３次元モデルを登録格子データに変換する。格子データを作成する際に用いる仮想の３次元空間は、Ｘ軸、Ｙ軸、Ｚ軸の３軸で構成されている。そして、仮想の３次元空間は、これら３軸のそれぞれに沿って仮想の３次元空間を分割する複数の分割空間で形成されている。格子データは、この仮想の３次元空間に３次元モデルを配置して作成される。つまり、新規格子データは、仮想の３次元空間における複数に分割された複数の分割空間のそれぞれが第１の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第１の位置情報といえる。また、登録格子データは、仮想の３次元空間における複数に分割された複数の分割空間のそれぞれが第２の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第２の位置情報といえる。
【００２９】
データ圧縮部２２は、格子データ生成部２１において生成された登録格子データおよび新規格子データから、予め決められた複数の選択数の格子ブロックの格子データを選択し、複数の選択数の格子データを１つの圧縮格子データに圧縮する。
【００３０】
類似度判定部４０は、入力部１１から取得した３次元モデルデータで示される３次元モデルと、データベース６０から取得した３次元モデルデータで示される３次元モデルと、の形状の類似度を判定する。類似度判定部４０は、新規３次元モデルの格子データと登録３次元モデルの格子データとの類似度を判定することにより、新規３次元モデルと登録３次元モデルとの形状の類似度を判定する。
【００３１】
図３は、実施の形態１にかかる加工プログラム検索装置１００が備える類似度判定部４０の構成を示す図である。類似度判定部４０は、ハッシュ値算出部４１と、ハミング距離算出部４２と、ハミング距離ソート部４３と、を備える。
【００３２】
ハッシュ値算出部４１は、モデル変換部２０において３次元モデルが変換された格子データから、ハッシュ値を算出する。ハッシュ値算出部４１は、算出したハッシュ値をハミング距離算出部４２に送信する。
【００３３】
ハッシュ値とは、元になるデータから予め決められた計算手順により求められた、規則性のない固定長の値である。ハッシュ値を求めるための計算手順は、ハッシュ関数、要約関数、メッセージダイジェスト関数などと呼ばれる。ハッシュ値は、元のデータの長さに依らず予め決められた長さとなっており、同じデータからは必ず同じハッシュ値が得られる。一方、ハッシュ値は、少しでも異なるデータ複数のデータからは、全く異なるハッシュ値が得られる。ハッシュ値は、不可逆で情報量の欠損を含む計算過程を経て算出される。このため、ハッシュ値から元のデータを復元することはできない。
【００３４】
ハミング距離算出部４２は、新規３次元モデルのハッシュ値と、１つの登録３次元モデルのハッシュ値とからハミング距離を算出する。ハミング距離とは、桁数が同じ２つの値を比べたとき、２つの値において対応する位置にある異なった値の桁の個数のことである。桁数が同じ２つの値を比べたとき、ハミング距離が小さい方が、類似度が高いと判定される。ハミング距離算出部４２は、算出したハミング距離をハミング距離ソート部４３に送信する。
【００３５】
ハミング距離ソート部４３は、ハミング距離算出部４２において算出された全ての登録３次元モデルのハミング距離に基づいて、新規３次元モデルに対する全ての登録３次元モデルの類似度を判定する。
【００３６】
登録プログラム取得部５０は、類似度判定部４０において判定された類似度に基づいて、新規３次元モデルで示される形状と類似度が高い登録３次元モデルの加工プログラムをデータベース６０から取得する。つまり、登録プログラム取得部５０は、類似度判定部４０における判定結果に基づいて、複数の第２の３次元モデルのうち形状の類似度が相対的に高い第２の３次元モデルを機械加工するための加工プログラムをデータベース６０から検索して取得すると言える。登録プログラム取得部５０は、類似度が高い登録３次元モデルと、この登録３次元モデルに対応付けされた加工プログラムと、を対応付けして出力部１３に出力する。
【００３７】
つぎに、加工プログラム検索装置１００が実行する検索処理の全体の処理手順について説明する。図４は、実施の形態１にかかる加工プログラム検索装置１００の処理の手順を示すフローチャートである。
【００３８】
ステップＳ１において、モデル変換部２０が、入力部１１を介してＣＡＤシステム１１０から３次元モデルデータを取得する。
【００３９】
ステップＳ２において、モデル変換部２０が、データベース６０に登録されている全ての３次元モデルデータを取得する。具体的に、登録モデル取得部３０が、データベース６０から全ての３次元モデルデータを取得し、モデル変換部２０に送信する。
【００４０】
ステップＳ３において、モデル変換部２０が、３次元モデルデータに示される３次元モデルを格子データにデータ変換する。すなわち、モデル変換部２０が、ＣＡＤシステム１１０から取得した３次元モデルデータに示される新規３次元モデルと、データベース６０から取得した３次元モデルデータに示される登録３次元モデルと、を格子データにデータ変換する。
【００４１】
モデル変換部２０で実行される処理について説明する。まず、格子データ生成部２１で実行される処理について説明する。図５は、実施の形態１にかかるモデル変換部２０の格子データ生成部２１の処理の手順を示すフローチャートである。モデル変換部２０は、入力部１１から取得した新規３次元モデルと、登録モデル取得部３０がデータベース６０から取得した全ての登録３次元モデルとを格子データに変換する。
【００４２】
上述したようにデータベース６０には、３次元モデルデータと、この３次元モデルデータで示される加工仕上がり形状を加工する加工プログラムとが対応付けられて記憶されている。登録モデル取得部３０はデータベース６０に接続し、データベース６０から登録されている全ての３次元モデルデータを取得する。
【００４３】
ステップＳ１０において、格子データ生成部２１は、３次元モデルデータで示される３次元モデルを予め決められた仮想の３次元空間である格子空間上に配置する。具体的に、格子データ生成部２１は、入力部１１から取得した３次元モデルデータで示される３次元モデルの形状を生成して、Ｘ軸、Ｙ軸、Ｚ軸の３軸が予め決められた長さからなる格子空間上に配置する。格子空間は、仮想の３次元空間であり、予め決められた長さからなる複数の分割空間である格子が３軸のそれぞれに沿って３次元に配列された空間である。すなわち、格子データ生成部２１は、３次元モデルを３軸が予め決められた長さからなり、複数の格子が配列された格子空間の座標系上に配置する。
【００４４】
図６は、実施の形態１にかかるモデル変換部２０の格子データ生成部２１が取得した３次元モデルデータで示される３次元モデルを描画した一例を示す図である。図７は、実施の形態１にかかるモデル変換部２０の格子データ生成部２１が取得した３次元モデルデータで示される３次元モデルを格子空間上に配置して描画した一例を示す図である。
【００４５】
格子空間は、格子として例えば１ｍｍ四方の立方体を１つの格子ブロックとして、３次元座標上にＸ軸方向、Ｙ軸方向およびＺ軸方向のそれぞれの方向に２００個ずつ格子ブロックが配置された、２００×２００×２００＝８００００００個の格子ブロックから構成される仮想３次元空間が例示される。格子ブロックの大きさおよび個数は、扱う３次元モデルにより、適宜変更されればよい。
【００４６】
ステップＳ２０において、格子データ生成部２１は、格子ブロックの頂点で３次元モデルの形状の内外判定を行う。具体的には、格子データ生成部２１は、格子空間の全格子ブロックのそれぞれの頂点の３次元座標値について、３次元モデルの内部にあるのか、３次元モデルの外部にあるのか、または３次元モデルの境界部にあるのかを判定する。格子ブロックの頂点の３次元座標値が３次元モデルの内部、外部、または境界部のうちのどこにあるのかの判定は、公知のソリッドモデルの形状の内外判定処理を行うことによって行うことができる。
【００４７】
格子データ生成部２１は、格子ブロックの頂点の３次元座標値が、３次元モデルの内部にあると判定された格子ブロックの頂点に、値：１を割り当てる。格子データ生成部２１は、格子ブロックの頂点の３次元座標値が、３次元モデルの外部にあると判定された格子ブロックの頂点に、値：０を割り当てる。格子データ生成部２１は、格子ブロックの頂点の３次元座標値が、３次元モデルの境界部にあると判定された格子ブロックの頂点に、値：０．５を割り当てる。
【００４８】
ステップＳ３０において、格子データ生成部２１は、１つの格子ブロックの全頂点に割り当てられた値の総和を頂点数で割り、算出した値を格子ブロックに割り当てる。以下、格子ブロックに割り当てられた値を、格子データと呼ぶ。格子データ生成部２１は、以上の処理を全ての格子ブロックに対して実施することにより、入力部１１から取得した新規３次元モデルの新規格子データを生成し、新規３次元モデルを新規格子データに変換する。これにより、第１の３次元モデルにおいて、３次元空間における分割空間のそれぞれが３次元モデルの内部、外部または境界部のいずれの部分に位置するかを示す第１の位置情報として新規格子データを取得することができる。
【００４９】
ステップＳ３０で行われる格子データの格子ブロックへの割り当ては、例えば、１つの格子ブロックの全８頂点が３次元モデルの内部にある場合には、格子ブロックには値：１＝８／８が割り当てられる。１つの格子ブロックの全８頂点が３次元モデルの外部にある場合には、格子ブロックには値：０＝０／８が割り当てられる。１つの格子データにおける７頂点が３次元モデルの内部にあり、１頂点が３次元モデルの外部にある場合には、格子ブロックには０．８７５＝７／８が割り当てられる。１つの格子ブロックの５頂点が３次元モデルの内部にあり、２頂点が３次元モデルの外部にあり、１頂点が３次元モデルの境界部にある場合には、格子ブロックに０．６８７５＝５．５／８が割り当てられる。
【００５０】
そして、格子データ生成部２１は、登録モデル取得部３０から取得したすべての登録３次元モデルについても、登録３次元モデルのそれぞれに対し、上記の処理を行って格子データを生成し、登録３次元モデルを登録格子データに変換する。これにより、第２の３次元モデルのそれぞれにおいて、３次元空間における分割空間のそれぞれが３次元モデルの内部、外部または境界部のいずれの部分に位置するかを示す複数の第２の位置情報として、複数の登録格子データを取得することができる。格子データ生成部２１は、生成した新規格子データと登録格子データとをデータ圧縮部２２に送信する。
【００５１】
格子データ生成部２１は、新規３次元モデルと、新規３次元モデルに対応する新規格子データと、を対応付けてデータ圧縮部２２に送信する。また、格子データ生成部２１は、登録３次元モデルと、登録３次元モデルに対応する登録格子データと、を関連付けてデータ圧縮部２２に送信する。
【００５２】
次に、データ圧縮部２２で実行される処理について説明する。図８は、実施の形態１にかかるモデル変換部２０のデータ圧縮部２２の処理の手順を示すフローチャートである。
【００５３】
ステップＳ１１０において、データ圧縮部２２は、格子データ生成部２１において生成された新規格子データから、予め決められた複数の選択数の格子ブロックの格子データを選択する。選択数は、データ圧縮部２２が格子データを圧縮するために選択する複数の格子ブロックの数であり、圧縮する格子データの数に対応する。そして、データ圧縮部２２は、選択した複数の格子ブロックに割り当てられた格子データの総和を算出する。
【００５４】
ステップＳ１２０において、データ圧縮部２２は、求めた格子データの総和を選択数で割り、算出した値を、選択数の格子ブロックからなる１つの圧縮化格子ブロックの格子データである、圧縮格子データとしてデータを割り当てる。圧縮格子データは、選択数の格子ブロックからなる１つの圧縮化格子ブロックに割り当てられる、選択数の格子ブロックの格子データが圧縮された格子データである。これにより、データ圧縮部２２は、予め決められた複数の選択数の格子データを１つの圧縮格子データに圧縮することができる。
【００５５】
格子データを１／２に圧縮する場合は、選択数は、２の３乗＝８とされればよい。格子データを１／４に圧縮する場合は、選択数は、４の３乗＝６４とされればよい。たとえば８個の格子ブロックを選択して格子データを１／２に圧縮する場合、選択した８個の格子ブロックの格子データがすべて１である場合は、圧縮化格子ブロックの圧縮格子データの値は１となる。８個の格子ブロックを選択して格子データを１／２に圧縮する場合、選択した８個の格子ブロックのうち、７個の格子ブロックの格子データが１であり、且つ１個の格子ブロックの格子データが０．７５である場合は、圧縮化格子ブロックの圧縮格子データの値は０．９６８７５＝７．７５／８となる。
【００５６】
データ圧縮部２２は、上記の処理を３次元モデルの全格子データに対して実施することにより、３次元モデルの格子データの圧縮を行う。なお、格子データを必ず圧縮する必要はなく、計算機の能力、計算機の使用環境、計算機の計算コスト等の諸条件により、圧縮率を決めればよい。
【００５７】
データ圧縮部２２は、上記の処理を、格子データ生成部２１から取得した新規格子データと登録格子データとの全てに対して行う。データ圧縮部２２は、新規格子データと登録格子データとについての、圧縮された格子データである圧縮格子データを、類似度判定部４０に送信する。
【００５８】
データ圧縮部２２は、新規３次元モデルと、新規３次元モデルに対応する圧縮新規格子データと、を対応付けて類似度判定部４０に送信する。圧縮新規格子データは、圧縮された新規格子データである。また、データ圧縮部２２は、登録３次元モデルと、登録３次元モデルに対応する圧縮登録格子データと、を対応付けて類似度判定部４０に送信する。圧縮登録格子データは、圧縮された登録格子データである。
【００５９】
図４に戻り、ステップＳ４において、類似度判定部４０が、新規３次元モデルと登録３次元モデルとの形状の類似度を判定する。具体的に、類似度判定部４０は、新規３次元モデルの格子データと登録３次元モデルの格子データとの類似度を判定して、新規３次元モデルと登録３次元モデルとの形状の類似度を判定する。すなわち、本実施の形態１では、類似度判定部４０は、新規３次元モデルに対応する圧縮新規格子データと登録３次元モデルに対応する圧縮登録格子データとを比較して、圧縮新規格子データと圧縮登録格子データとの類似度を判定する。
【００６０】
類似度判定部４０で実行される処理について説明する。図９は、実施の形態１にかかる類似度判定部４０の処理の手順を示すフローチャートである。
【００６１】
ステップＳ２１０において、ハッシュ値算出部４１は、モデル変換部２０において３次元モデルが変換された格子データから、ハッシュ値を算出する。ハッシュ値算出部４１は、新規３次元モデルに対応する圧縮新規格子データから、新規３次元モデルのハッシュ値を算出する。ハッシュ値算出部４１は、登録３次元モデルに対応する圧縮登録格子データから登録３次元モデルのハッシュ値を算出する。なお、新規格子データおよび登録格子データを圧縮していない場合には、新規格子データおよび登録格子データからハッシュ値を算出することとしてもよい。
【００６２】
ステップＳ２２０において、ハミング距離算出部４２は、新規３次元モデルのハッシュ値と、１つの登録３次元モデルのハッシュ値とからハミング距離を算出する。ハミング距離算出部４２は、全ての登録３次元モデルのハッシュ値について、ハミング距離を算出する。ハミング距離算出部４２は、算出したハミング距離をハミング距離ソート部４３に送信する。
【００６３】
ステップＳ２３０において、ハミング距離ソート部４３は、ハミング距離算出部４２において算出されたハミング距離をソートする。具体的に、ハミング距離ソート部４３は、ハミング距離算出部４２において算出された全ての登録３次元モデルのハミング距離を、数値の小さいものから大きいものへ昇順に並べる。
【００６４】
そして、ハミング距離ソート部４３は、並べた登録３次元モデルのハミング距離の昇順を、新規３次元モデルと登録３次元モデルとの形状の類似度の順番と判定する。すなわち、ハミング距離ソート部４３は、ハミング距離算出部４２が算出した複数のハミング値を比べたとき、ハミング距離の値が小さい登録３次元モデルほど、新規３次元モデルとの形状の類似度が高いと判定する。昇順に並べられた登録３次元モデルのハミング距離の昇順の情報は、新規３次元モデルと登録３次元モデルとの形状の類似度の順番の情報である、類似度順番情報である。
【００６５】
そして、ハミング距離ソート部４３は、登録３次元モデルと、登録３次元モデルに対応するハミング距離と、登録３次元モデルに対応する類似度順番情報と、を対応付けて登録プログラム取得部５０に送信する。
【００６６】
なお、類似度の判定は、ハッシュ値を用いた方法ではなく、新規３次元モデルと登録３次元モデルとを同一の座標系上に配置した場合における、同じ位置の新規３次元モデルの格子データと登録３次元モデルの格子データとを比較して、異なった値の桁の個数を算出する方法を用いることもできる。この場合、異なった値の桁の個数が小さい方が、類似度が高いと判定される。なお、この場合、新規３次元モデルの圧縮格子データと登録３次元モデルの圧縮格子データとを比較して、異なった値の桁の個数を算出してもよい。
【００６７】
また、類似度の判定は、格子データの特徴量の抽出、近似最近傍探索、格子データをベクトル化して差分を求める方法などを使用してもよい。
【００６８】
図４に戻り、ステップＳ５において、登録プログラム取得部５０は、類似度判定部４０のハミング距離ソート部４３から取得した類似度順番情報に示される類似度の高い登録３次元モデルの順に、登録３次元モデルに対応する加工プログラムをデータベース６０から取得する。登録プログラム取得部５０は、類似度判定部４０およびデータベース６０から取得した、登録３次元モデルと、加工プログラムと、類似度順番情報と、類似度情報と、を対応付けて出力部１３に送信する。類似度情報は、類似度順番情報における登録３次元モデルの類似度の順位の情報である。
【００６９】
ステップＳ６において、出力部１３は、登録プログラム取得部５０から取得した、加工プログラムと、登録３次元モデルと、類似度順番情報と、類似度情報と、を表示装置などに出力し、ユーザに提示する。これにより、加工プログラム検索装置１００は、新規３次元モデルに類似する登録３次元モデルの加工プログラムをデータベース６０から検索して、ユーザに提示することができる。
【００７０】
図１０は、実施の形態１における新規３次元モデルの例を示す図である。図１１は、実施の形態１における登録３次元モデルの例を示す図である。図１２は、図１１に示す２０個の登録３次元モデルから、図１０に示す新規３次元モデルに類似する登録３次元モデルとして検索された登録３次元モデルを示す図である。加工プログラム検索装置１００において上述したステップＳ１からステップＳ６の処理が実施されることにより、たとえば、図１１に示す２０個の登録３次元モデルから、図１０に示す新規３次元モデルに類似する登録３次元モデルとして、図１２に示す登録３次元モデルがデータベース６０から検索される。これにより、加工プログラム検索装置１００では、図１０に示す新規３次元モデルに類似する登録３次元モデルに対応する加工プログラムとして、図１２に示す登録３次元モデルに対応する加工プログラムがデータベース６０から検索される。
【００７１】
以上のような本実施の形態１にかかる加工プログラム検索装置１００では、３次元モデルデータに示される３次元モデルを画像表示した場合に、画像に表示されない、３次元の物体の形状内包部および３次元の物体に形成されている穴形状を含めた形状の細部を含めて、類似する３次元モデルの検索が自動で高精度に行える。これにより、新規の新規３次元モデルを加工するための新規の加工プログラムを作成する際に流用する加工プログラムを容易にデータベース６０から探索することが可能となり、新規３次元モデルを加工するための新規の加工プログラムの作成におけるユーザの手間を省くことができる。
【００７２】
また、本実施の形態１にかかる加工プログラム検索装置１００では、圧縮した格子データから類似度を算出することにより、処理するデータ量を低減することができ、高速で精度良く新規３次元モデルと登録３次元モデルとの形状の類似度を算出することができる。
【００７３】
次に、加工プログラム検索装置１００の類似度判定部４０において機械学習を用いた形態について説明する。図１３は、実施の形態１における機械学習を用いた類似度判定部４０ａの構成を示す図である。類似度判定部４０ａは、教師データ生成部７１と、機械学習部７２と、推論部７３と、類似度算出部７４と、類似度ソート部７５と、を備える。
【００７４】
教師データ生成部７１は、モデル変換部２０から取得する複数の３次元モデルの格子データを入力として、クラスタリングを行い、クラスタリングした結果をラベルとして、教師データを生成する。
【００７５】
機械学習部７２は、予め用意された複数の教師データおよび教師データに対応する３次元モデルの格子データを基に、教師有り機械学習を行ない、学習済モデルを生成する。ここでの教師データは、教師データ生成部７１で生成された、３次元モデルの格子データが入力とされ、分類結果であるラベルが出力とされた教師データである。
【００７６】
推論部７３は、機械学習部７２で学習された学習済モデルを用いて、３次元モデルデータで示される登録３次元モデルの格子データおよび入力部１１に入力された３次元モデルデータで示される新規３次元モデルの格子データを入力として推論を行い、出力データを取得する。
【００７７】
類似度算出部７４は、推論部７３から出力された新規３次元モデルについての出力データを新規３次元モデルの多次元特徴量ベクトルとし、またデータベース６０に登録されている登録３次元モデルについて推論部７３から出力された出力データを登録３次元モデルの多次元特徴量ベクトルとし、新規３次元モデルの多次元特徴量ベクトルと、登録３次元モデルの多次元特徴量ベクトルと、の距離を類似度として算出する。すなわち、類似度算出部７４は、第１の３次元モデルの特徴量と第２の３次元モデルの特徴量を取得する特徴量取得部と換言できる。
【００７８】
類似度ソート部７５は、類似度算出部７４において算出された全ての登録３次元モデルについての類似度を、数値の小さいものから大きいものへ昇順に並べる。なお、類似度ソート部７５は、類似度が高い順にソートすることができればよく、類似度の数値で１を除算し、除算した数値を数値の大きいものから小さいものへ降順に並べてソートしてもよい。
【００７９】
次に、類似度判定部４０ａで実行される処理について説明する。図１４は、実施の形態１にかかる類似度判定部４０ａの処理の手順を示すフローチャートである。
【００８０】
ステップＳ３１０において、教師データ生成部７１は、モデル変換部２０から、複数の３次元モデルの格子データを取得する。
【００８１】
ステップＳ３２０において、教師データ生成部７１は、複数の３次元モデルの格子データを入力データとして、複数の３次元モデルの格子データのクラスタリングを行い、クラスタリングした結果を３次元モデルの分類結果であるラベルとして、教師データを生成する。すなわち、教師データ生成部７１は、３次元モデルの格子データを入力とし、３次元モデルの分類結果であるラベルを出力とした教師データを生成する。以下では、クラスタリングにｋ−ｍｅａｎｓ法を用いた場合について説明する。
【００８２】
ｋ−ｍｅａｎｓ法とは、特徴量のユークリッド距離が最も近いクラスタに入力データを分類する手法である。具体的には、先ずあらかじめ決められたｋ個のクラスタに入力データがランダムに分類される。そして、ｋ個の各クラスタ内の入力データの特徴量の平均値が求められ、特徴量の平均値を可視化した画像データがクラスタごとに作成される。次に、各画像データについて、入力データの特徴量からユークリッド距離が最も近い特徴量の平均値を持つクラスタに対して入力データが再分類される。この再分類がなされなくなったときに、クラスタリング処理が完了する。クラスタリング処理が完了したときのクラスタリング結果が、３次元モデルの分類結果であるラベルとして決定される。クラスタリング結果のラベルに偏りがある場合には、格子データをＸＹ平面、ＹＺ平面、ＺＸ平面に投影したデータを入力データとする方法が行われてもよい。
【００８３】
教師データの生成は、与えられた入力データを外的基準なしに自動的に分類するクラスタリングを行えばよく、ウォード法、群平均法、最短距離法、最長距離法といったアルゴリズムを用いてもよい。また、ユーザが３次元モデルごとに手動で設定してもよい。
【００８４】
図１５は、実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第１クラスタＣ１に分類された３次元モデルを示す図である。図１６は、実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第２クラスタＣ２に分類された３次元モデルを示す図である。図１７は、実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第３クラスタＣ３に分類された３次元モデルを示す図である。図１８は、実施の形態１においてｋ−ｍｅａｎｓ法で２０個の３次元モデルを４つのクラスタにクラスタリングした例における第４クラスタＣ４に分類された３次元モデルを示す図である。
【００８５】
ステップＳ３３０において、機械学習部７２は、教師データ生成部７１で生成された、３次元モデルの格子データが入力とされ、３次元モデルの分類結果であるラベルが出力とされた、複数の教師データと教師データに対応する３次元モデルの格子データとを基に、教師有り機械学習を行ない、学習済モデルを生成する。学習済モデルは、３次元モデルの格子データから、３次元モデルをクラスタリングした結果である分類結果を用いた指標を類推するための学習済モデルである。機械学習は、所望の収束結果が得られるまで繰り返されてもよい。機械学習部７２は、生成した学習済モデルである３次元モデルの分類条件をメモリ１５に記憶させる。したがって、機械学習部７２は、複数の３次元モデルから取得した格子データをクラスタリングして教師データを取得し、複数の３次元モデルから取得した格子データと教師データとを併せてデータセットとし、データセットに基づいて学習済モデルを生成する。
【００８６】
図１９は、実施の形態１にかかる機械学習部の構成を示す図である。図２０は、実施の形態１にかかる機械学習装置が用いるニューラルネットワークの構成を示す図である。
【００８７】
機械学習部７２は、データ取得部７２１と、学習部７２２とを有している分類条件学習部である。データ取得部７２１は、教師データ生成部７１から出力される、３次元モデルの格子データが入力とされ、分類結果であるラベルが出力とされた、予め用意された複数の教師データと教師データに対応する３次元モデルの格子データとを取得して、データセットとして学習部７２２に送る。なお、教師データに対応する３次元モデルの格子データとは、教師データを作成する際に入力された格子データである。すなわち、機械学習部７２では、加工対象の加工仕上がり形状を示す３次元モデルを３次元空間に配置し、３次元モデルにおいて、３次元空間における複数の分割空間のそれぞれが３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す位置情報と、複数の３次元モデルを複数の分類に分類した教師データとがデータセットとされる。データ取得部７２１は、データセットを取得する。
【００８８】
学習部７２２は、３次元モデルの格子データが入力とされ分類結果であるラベルが出力とされた、予め用意された複数の教師データと、教師データに対応する３次元モデルデータで示される３次元モデルの格子データとの組み合わせに基づいて作成されるデータセットに基づいて、３次元モデルデータで示される３次元モデルの分類条件を学習する。学習部７２２は、学習した３次元モデルの分類条件をメモリ１５に記憶させる。すなわち、学習部７２２は、データセットに基づいて、推論部７３が３次元モデルの分類結果を用いた指標を推論するための学習済モデルを生成する。
【００８９】
機械学習部７２は、例えば、ニューラルネットワークモデルに従って、いわゆる教師有り学習により、格子データを分類結果であるラベルに分類するための分類条件、すなわち３次元モデルの分類条件を学習する。そして、機械学習部７２は、３次元モデルの分類条件を学習することで、３次元モデルの分類結果を用いた指標を推論するための学習済モデルを生成する。格子データがどのようなラベルに分類されるかを機械学習部７２に学習させておくことで、新しく入力された格子データがどのラベルに近いかを推論部７３が判定できるようになる。ここで、教師有り学習とは、ある入力と結果（ラベル）のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデルをいう。
【００９０】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層（隠れ層）、および複数のニューロンからなる出力層で構成される。中間層は、１層でもよいし２層以上でもよい。また、機械学習に他の方法、例えば、サポートベクターマシン等が用いられてもよい。
【００９１】
例えば、図２０に示すニューラルネットワークは、３層のニューラルネットワークである。入力層は、ニューロンＸ１，Ｘ２，Ｘ３を含む。中間層は、ニューロンＹ１，Ｙ２を含む。出力層は、ニューロンＺ１，Ｚ２，Ｚ３を含む。なお、各層のニューロンの数は任意とする。入力層へ入力された複数の値は、重みＷ１であるｗ１１，ｗ１２，ｗ１３，ｗ１４，ｗ１５，ｗ１６が乗算されて、中間層へ入力される。中間層へ入力された複数の値は、重みＷ２であるｗ２１，ｗ２２，ｗ２３，ｗ２４，ｗ２５，ｗ２６が乗算されて、出力層から出力される。出力層から出力される出力結果は、重みＷ１，Ｗ２の値に従って変化する。
【００９２】
続いて、ステップＳ３４０において、推論部７３は、機械学習部７２で生成された学習済みの学習済モデルを用いて、データベース６０に登録されている３次元モデルデータで示される登録３次元モデルの格子データおよび入力部１１に入力された３次元モデルデータで示される新規３次元モデルの格子データを入力として推論を行い、出力データを取得する。つまり、推論による出力データの取得は、データベース６０に登録されている全ての３次元モデルデータで示される登録３次元モデルの格子データと、入力部１１に入力された３次元モデルデータで示される新規３次元モデルの格子データに対して、出力データを取得する。
【００９３】
推論部７３は、ある入力のデータを機械学習で生成した学習済モデルにあてはめて、教師有り学習時の分類結果であるラベルになる確率を出力する。推論部７３は、教師有り学習時の分類結果である全てのラベルについて、ラベルになる確率を出力する。したがって、推論部７３からは、出力データとして、ラベルの個数分の数値が出力される。ここでは、推論部７３は、データベース６０に登録されている３次元モデルデータで示される新規３次元モデルの格子データを学習済モデルにあてはめて、教師有り学習時の分類結果であるラベルになる確率を出力する。なお、推論部７３は、後述する多次元特徴量ベクトルを出力するように構成されていてもよい。つまり、推論部７３は、学習済モデルを用いて３次元モデルの分類結果を用いた指標を推論する。
【００９４】
続いて、ステップＳ３５０において、類似度算出部７４は、入力部１１から入力された新規３次元モデルについての推論部７３から出力された出力データを新規３次元モデルの多次元特徴量ベクトルとし、またデータベース６０に登録されている登録３次元モデルについての推論部７３から出力された出力データを登録３次元モデルの多次元特徴量ベクトルとする。そして、類似度算出部７４は、新規３次元モデルの多次元特徴量ベクトルと、全ての登録３次元モデルの多次元特徴量ベクトルと、を比較して、最近傍探索を行い、新規３次元モデルの多次元特徴量ベクトルと、登録３次元モデルの多次元特徴量ベクトルと、の距離を類似度として算出する。類似度は、新規３次元モデルの形状と、登録３次元モデルの形状との間の類似度である。類似度算出部７４は、算出した類似度を類似度ソート部７５に送信する。
【００９５】
なお、類似度の算出は、新規３次元モデルの多次元特徴量ベクトルと、登録３次元モデルの多次元特徴量ベクトルとを比較して距離尺度を求めればよく、近似最近傍探索といったアルゴリズムを用いてもよい。
【００９６】
続いて、ステップＳ３６０において、類似度ソート部７５は、類似度算出部７４において算出された類似度をソートする。具体的に、類似度ソート部７５は、類似度算出部７４において算出された全ての登録３次元モデルについての類似度を、数値の小さいものから大きいものへ昇順に並べる。ここでは、類似度ソート部７５は、類似度を、数値の小さいものから大きいものへ昇順に並べているが、類似度ソート部７５は、類似度が高い順に並べることができればよく、類似度の数値で１を除算し、除算した数値を数値の大きいものから小さいものへ降順に並べてもよい。
【００９７】
上記の処理が行われることにより、類似度判定部４０ａにおいても類似度判定部４０と同様に、全ての登録３次元モデルについての類似度を判定することが可能である。
【００９８】
以上のような本実施形態にかかる加工プログラム検索装置１００では、類似度判定部４０ａにおいて３次元モデルの分類条件の機械学習が行われ、学習された３次元モデルの分類条件に基づいて、新規３次元モデルと登録３次元モデルとの形状の類似度を算出する。これにより、３次元モデルの形状特徴を効率良く認識して、新規３次元モデルと登録３次元モデルとの形状の類似度を算出することができ、新規の新規３次元モデルを加工するための新規の加工プログラムを作成する際に流用する加工プログラムを容易にデータベース６０から探索することが可能となる。
【００９９】
図２１は、図１０に示した新規３次元モデルに対する類似度が高い順にソートされた登録３次元モデルを示す図である。図２１においては、左側に示されている登録３次元モデルほど、図１０に示した新規３次元モデルに対する類似度が高く、右側に示されている登録３次元モデルほど、図１０に示した新規３次元モデルに対する類似度が低い。
【０１００】
次に、モデル変換部２０の他の形態について説明する。まず、モデル変換部２０で実行されるデータ拡張について説明する。図２２は、図１に示す加工プログラム検索装置１００においてデータ拡張を実行するモデル変換部２０ａの構成を示す図である。モデル変換部２０ａは、モデル形状変換部２３と、前述の格子データ生成部２１と、前述のデータ圧縮部２２と、を備える。モデル形状変換部２３は、入力部１１から入力されて格子空間上に配置された新規３次元モデルの形状を形状変換する。形状変換とは、形状の回転移動、形状の拡大および形状の縮小のうち、少なくとも１つを意味する。
【０１０１】
次に、モデル変換部２０ａで実行される処理について説明する。図２３は、実施の形態１にかかるモデル変換部２０ａで実行されるデータ拡張処理を示すフローチャートである。
【０１０２】
まず、格子データ生成部２１が、上述したステップＳ１０を実施する。
【０１０３】
次に、ステップＳ４１０において、モデル形状変換部２３は、格子空間上に配置された新規３次元モデルの形状を形状変換する。
【０１０４】
その後、形状変換が実施された新規３次元モデルに対して、上述したステップＳ２０、ステップＳ３０、ステップＳ１１０およびステップＳ１２０が実施されて、形状変換が実施された新規３次元モデルに対して、格子データの生成から格子データの圧縮が実施される。
【０１０５】
以上のような本実施の形態にかかる加工プログラム検索装置１００では、格子空間上に配置された新規３次元モデルを様々な方向、または様々な大きさに形状変換したうえで、３次元モデルの格子データを生成できる。また、新規３次元モデルと登録３次元モデルとのうち一方が、格子空間上における方向および大きさが等しくなるように形状変換されればよい。これにより、３次元モデルの形状特徴を精度よく認識して、類似度を算出することができる。また、あらかじめ新規３次元モデルと登録３次元モデルとの向きを３次元モデルデータにおいて揃えなくてはならないといった制約が不要となる。
【０１０６】
さらに、加工プログラム検索装置１００がモデル変換部２０ａと類似度判定部４０ａとを用いることにより、３次元モデルを様々な方向、または様々な大きさでデータ数を拡張して機械学習して、類似度を算出できるため、３次元モデルの形状特徴を精度良く認識して、類似度を算出することができる。
【０１０７】
上述したように、本実施の形態１にかかる加工プログラム検索装置１００では、３次元モデルデータに示される３次元モデルを画像表示した場合に、画像に表示されない、３次元の物体の形状内包部および３次元の物体に形成されている穴形状を含めた形状の細部を含めて、類似する３次元モデルの検索が自動で高精度に行える。これにより、加工プログラム検索装置１００では、新規の新規３次元モデルを加工するための新規の加工プログラムを作成する際に流用する加工プログラムを容易にデータベース６０から探索することが可能となり、新規３次元モデルを加工するための新規の加工プログラムの作成におけるユーザの負荷を低減することが可能である。
【０１０８】
また、本実施の形態１にかかる加工プログラム検索装置１００では、圧縮した格子データから類似度を算出することにより、処理するデータ量を低減することができ、高速で精度良く新規３次元モデルと登録３次元モデルとの形状の類似度を算出することができる。
【０１０９】
また、加工プログラム検索装置１００では、類似度判定部４０ａにおいて３次元モデルの分類条件の機械学習が行われ、学習された３次元モデルの分類条件に基づいて、新規３次元モデルと登録３次元モデルとの形状の類似度を算出する。これにより、３次元モデルの形状特徴を効率良く認識して、新規３次元モデルと登録３次元モデルとの形状の類似度を算出することができ、新規の新規３次元モデルを加工するための新規の加工プログラムを作成する際に流用する加工プログラムを容易にデータベース６０から探索することが可能となる。
【０１１０】
したがって、本実施の形態１にかかる加工プログラム検索装置１００は、ワークの加工後の加工仕上がり形状に類似した形状を加工する加工プログラムをデータベースから自動で容易に検索することができる、という効果を奏する。
【０１１１】
実施の形態２．
図２４は、実施の形態２にかかる加工プログラム検索装置１０１の構成を示す図である。図２４の各構成要素のうち図１に示す実施の形態１の加工プログラム検索装置１００と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１１２】
実施の形態２にかかる加工プログラム検索装置１０１では、新たに加工プログラムが作成される３次元モデルの形状と、過去に加工プログラムが作成された３次元モデルの形状との差異部を認識し、差異部にかかる加工プログラムを出力する。すなわち、加工プログラム検索装置１０１では、新規３次元モデルの形状と、登録３次元モデルの形状と、の差異部を認識し、差異部にかかる加工プログラムを出力する。
【０１１３】
加工プログラム検索装置１０１は、加工プログラム検索装置１００が備える構成要素に加えて、差異認識部８０を備えている。差異認識部８０は、入力部１１と、登録モデル取得部３０と、登録プログラム取得部５０と、出力部１３と、に接続されている。
【０１１４】
差異認識部８０は、新たに加工プログラムが作成される３次元モデルの形状と、過去に加工プログラムが作成された３次元モデルの形状との差異部を認識する。すなわち、加工プログラム検索装置１０１では、新規３次元モデルの形状と、登録３次元モデルの形状と、の差異部を認識する。
【０１１５】
図２５は、実施の形態２にかかる加工プログラム検索装置１０１が備える差異認識部８０の構成を示す図である。差異認識部８０は、モデル差異取得部８１と、加工プログラム差異取得部８２と、を備える。
【０１１６】
モデル差異取得部８１は、入力部１１から入力された３次元モデルデータで示される新規３次元モデルと、登録モデル取得部３０が取得した３次元モデルデータで示される登録３次元モデルとを取得する。そして、モデル差異取得部８１は、新規３次元モデルの形状と登録３次元モデルの形状との形状の差異部の情報を取得する。
【０１１７】
加工プログラム差異取得部８２は、モデル差異取得部８１から取得した新規３次元モデルの形状と登録３次元モデルの形状との形状の差異部の情報に基づいて、差異部にかかる加工プログラム部位を取得する。すなわち、加工プログラム差異取得部８２は、新規３次元モデルの加工仕上がり形状を加工するプログラムと、登録３次元モデルの加工仕上がり形状を加工するプログラムとの差異を取得する。
【０１１８】
次に、差異認識部８０で実行される処理について説明する。図２６は、実施の形態２にかかる差異認識部８０の処理の手順を示すフローチャートである。
【０１１９】
ステップＳ５１０において、モデル差異取得部８１は、入力部１１から入力された新規３次元モデルの３次元モデルデータを取得し、また登録モデル取得部３０から登録３次元モデルの３次元モデルデータを取得し、新規３次元モデルと登録３次元モデルとの３次元モデル間の形状の差異を取得する。具体的に、モデル差異取得部８１は、新規３次元モデルの形状から登録３次元モデルの形状を差し引いた形状である第１差異形状を算出する。また、モデル差異取得部８１は、登録３次元モデルの形状から新規３次元モデルの形状を差し引いた形状である第２差異形状を算出する。形状の差し引きは、ソリッドモデルの集合演算を用いればよい。モデル差異取得部８１は、算出した第１差異形状の情報と第２差異形状の情報とを加工プログラム差異取得部８２に送信する。
【０１２０】
次に、ステップＳ５２０において、加工プログラム差異取得部８２は、モデル差異取得部８１から取得した第１差異形状の情報と第２差異形状の情報とに基づき、第１差異形状と第２差異形状とに対応する加工プログラム部位を取得する。第１差異形状に対応する加工プログラムは、登録３次元モデルの加工プログラムに対して編集もしくは追加加工が必要となる。第２差異形状に対応する加工プログラムは、登録３次元モデルの加工プログラムに対して編集もしくは加工を減らすことが必要となる。第２差異形状が存在する場合には、第２差異形状の差異部に対応する差異部加工プログラムは、登録３次元モデルの加工プログラムの加工部位と、差異部の形状とが、３次元座標上で干渉すれば、干渉した部分の加工プログラム部分が差異部に対応する差異部加工プログラムとなる。加工プログラム差異取得部８２は、登録３次元モデルの加工プログラムから差異部に対応する差異部加工プログラムを抽出する。
【０１２１】
加工プログラム差異取得部８２は、新規３次元モデルの形状と登録３次元モデルの形状との差異部の情報、すなわち、第１差異形状の情報と第２差異形状とのうち少なくとも一方を出力部１３に送信する。また、加工プログラム差異取得部８２は、差異部にかかる加工プログラム部分の情報を出力部１３に送信する。
【０１２２】
出力部１３は、登録プログラム取得部５０から取得した加工プログラム等とともに、新規３次元モデルの形状と登録３次元モデルの形状との差異部の情報と、差異部加工プログラムとを表示装置などに出力し、ユーザに提示する。これにより、加工プログラム検索装置１０１は、新規３次元モデルに類似する登録３次元モデルと新規３次元モデルとの形状との差異部および差異部に対応する加工プログラム部分を容易にユーザに提示することができる。
【０１２３】
上述したように、本実施の形態１にかかる加工プログラム検索装置１０１では、新規３次元モデルの形状と登録３次元モデルの形状との差異部の情報と、差異部にかかる加工プログラム部分の情報とをユーザに提示する。これにより、ユーザの加工プログラム編集作業の効率が向上する。
【０１２４】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１２５】
１１  入力部、１２  表示部、１３  出力部、１４  プロセッサ、１５  メモリ、２０  モデル変換部、２１  格子データ生成部、２２  データ圧縮部、２３  モデル形状変換部、３０  登録モデル取得部、４０，４０ａ  類似度判定部、４１  ハッシュ値算出部、４２  ハミング距離算出部、４３  ハミング距離ソート部、５０  登録プログラム取得部、６０  データベース、７１  教師データ生成部、７２  機械学習部、７３  推論部、７４  類似度算出部、７５  類似度ソート部、８０  差異認識部、８１  モデル差異取得部、８２  加工プログラム差異取得部、１００，１０１  加工プログラム検索装置、１１０  ＣＡＤシステム、７２１  データ取得部、７２２  学習部、Ｃ１  第１クラスタ、Ｃ２  第２クラスタ、Ｃ３  第３クラスタ、Ｃ４  第４クラスタ、Ｄ１，ＤＮ  モデルデータ。
【要約】
加工プログラム検索装置（１００）は、３次元空間における複数の分割空間のそれぞれが第１の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す第１の位置情報と、第２の３次元モデルのそれぞれにおいて、複数の分割空間のそれぞれが第２の３次元モデルの内部、外部または境界部のうちのいずれの部分に位置するかを示す複数の第２の位置情報とを取得するモデル変換部（２０）と、を備える。加工プログラム検索装置は、第１の位置情報と第２の位置情報とを比較することにより、第１の３次元モデルと第２の３次元モデルとの形状の類似度を判定する類似度判定部（４０）と、類似度判定部における判定結果に基づいて、複数の第２の３次元モデルのうち形状の類似度が相対的に高い第２の３次元モデルを機械加工するための加工プログラムをデータベースから検索して取得する登録プログラム取得部（５０）と、を備える。【図１】
0006833150.tif 000002
【図２】
0006833150.tif 000003
【図３】
0006833150.tif 000004
【図４】
0006833150.tif 000005
【図５】
0006833150.tif 000006
【図６】
0006833150.tif 000007
【図７】
0006833150.tif 000008
【図８】
0006833150.tif 000009
【図９】
0006833150.tif 000010
【図１０】
0006833150.tif 000011
【図１１】
0006833150.tif 000012
【図１２】
0006833150.tif 000013
【図１３】
0006833150.tif 000014
【図１４】
0006833150.tif 000015
【図１５】
0006833150.tif 000016
【図１６】
0006833150.tif 000017
【図１７】
0006833150.tif 000018
【図１８】
0006833150.tif 000019
【図１９】
0006833150.tif 000020
【図２０】
0006833150.tif 000021
【図２１】
0006833150.tif 000022
【図２２】
0006833150.tif 000023
【図２３】
0006833150.tif 000024
【図２４】
0006833150.tif 000025
【図２５】
0006833150.tif 000026
【図２６】
0006833150.tif 000027