(57)【要約】【課題】幾何学的な三次元モデルにおける穿孔された面を識別するコンピュータ実装される方法を提供する。【解決手段】幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するコンピュータ実装される方法であって、当該方法は：前記モデルの面の二次元（2D）表現を取得し；2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類することを含む、方法。【選択図】図１
2018142304.tif 000002
【特許請求の範囲】
【請求項１】
幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するコンピュータ実装される方法であって、当該方法は：
前記モデルの面の二次元（2D）表現を取得し；
2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；
前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；
前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類することを含む、
方法。
【請求項２】
前記ニューラル・ネットワークにおいて、穿孔された面の穿孔の幾何学的な型および／または配置を範疇分けすることをさらに含む、
請求項１記載の方法。
【請求項３】
穿孔されているとして分類された面を含む前記モデルにおけるいずれかのパーツを選択することと；
任意的に、パーツ幾何構成、パーツ製造コスト、パーツ配達時間およびパーツ識別情報のいずれかを検索することとをさらに含む、
請求項１または２記載の方法。
【請求項４】
三角形分割されたCADデータによるモデルについては、前記2D表現は、解析関数への当てはめを介して生成され；
解析的なCADデータによるモデルについては、前記2D表現は、CADカーネルによって提供される、
請求項１ないし３のうちいずれか一項記載の方法。
【請求項５】
前記モデルは複数のパーツを含み、面の何らかの2D画像が得られる前に、パーツ・フィルタが、穿孔された領域を含むのに適さないパーツを消去する、
請求項１ないし４のうちいずれか一項記載の方法。
【請求項６】
面の何らかの2D画像が得られる前に、面フィルタが、穿孔された領域を含むのに適さない面を消去する、
請求項１ないし５のうちいずれか一項記載の方法。
【請求項７】
もとの面画像が、ラベル付けされた穿孔画像と比較される面領域画像に分割されて、好ましくは、
穿孔されているとして分類される面領域画像に対応する面領域が、穿孔を除去することによって、中実な面領域で置き換えられる、
請求項１ないし６のうちいずれか一項記載の方法。
【請求項８】
面画像が、前記面画像の中心に対する法線に沿った位置からレンダリング・カメラによって撮影され、前記位置は面画像全体がカメラの視野に収まる位置である、
請求項１ないし７のうちいずれか一項記載の方法。
【請求項９】
異なるサイズの穿孔を捕捉するために、前記法線に沿った異なる位置で、さらなる面画像が撮影される、請求項７記載の方法。
【請求項１０】
穿孔を含む前記幾何学的な三次元（3D）モデルを単純化することをさらに含み、単純化は、前記面画像の分類によって識別された穿孔された面について、前記3Dモデルにおいてその面を、穿孔を除去することにより、中実な面で置き換えることによる、
請求項１ないし９のうちいずれか一項記載の方法。
【請求項１１】
前記中実な面は、穿孔の代わりに空孔率値を与えられる、
請求項１ないし１０のうちいずれか一項記載の方法。
【請求項１２】
幾何学的な三次元（3D）モデルを解析するコンピュータ実装される方法であって、請求項９ないし１１のうちいずれか一項記載の方法を実行し、次いで、単純化されたモデルを数値的な技法を使って解析して、熱的、機械的もしくは電磁的属性または前記モデルのまわりのおよび／もしくは前記モデルを通る気流といった、モデル形状の物理的な結果を決定することを含む、コンピュータ実装される方法。
【請求項１３】
幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するよう構成された装置であって、当該装置は一つまたは複数のプロセッサおよびメモリを有し、前記一つまたは複数のプロセッサは：
前記モデルの面の二次元（2D）表現を取得し；
2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；
前記面画像をニューラル・ネットワークを使って、前記メモリに記憶されているラベル付けされた穿孔画像と比較し；
前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類するよう構成されている、
装置。
【請求項１４】
実行されたときに、幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するコンピュータ実装される方法を実行するコンピュータ・プログラムであって、前記方法は：
前記モデルの面の二次元（2D）表現を取得し；
2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；
前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；
前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類することを含む、
コンピュータ・プログラム。
【請求項１５】
請求項１４記載のコンピュータ・プログラムを記憶している非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ援用設計および工学に関する。詳細には、本発明はコンピュータまたはデジタル環境におけるオブジェクトの三次元（3D）モデルにおける穿孔の識別に関する。
【０００２】
本発明は、そのモデルをその構造および属性の解析のためにより好適にするための前記モデルの潜在的な適応にも関する。いくつかの発明実施形態は、特に、任意の形または開口のパターン化された穴の検出および単純化に関し、モデル修正およびそれに続くシミュレーションにおいて（たとえば構造解析のためにまたは熱流体力学のために）有用である。目標用途は、製造製品の開発において使われる三次元シミュレーション・ソフトウェアである。
【背景技術】
【０００３】
このモデル修正プロセスは、設計および製造プロセスにおいて最も普通に見出される。たとえば、エンジニアは、AUTO  CADまたはPro/ENGINEERのようなCAD（コンピュータ援用設計）パッケージにおいてモデルを使って三次元コンポーネントまたは複雑なパーツの形で製品プロトタイプを設計し、次いで、そのモデルを使用の好適性について試験することを望むことがある。仮想プロトタイプ／モデルのそのような解析は、耐久性のような仕様要件、健康および安全要求ならびに製造容易性のために必要とされることがある。設計エンジニアはたとえば、熱耐性、電磁場または他の場の伝搬または応力‐歪み属性を決定するためにシミュレーションにおいてモデルを解析したいことがある。このシミュレーション・プロセスは、実際の製造および物理的な試験の費用がかかることなく、製品設計を洗練できる。しかしながら、モデルが単純化され、より簡単に解析できるよう、モデルを修正することがしばしば必要になる。
【０００４】
幾何学的モデルについての修正プロセスの一つの具体的応用は、たとえば気流または換気を提供／改善するためまたは火災シミュレーションのための、建物の構造モデルの単純化にある。コンピュータ・サーバーおよびモバイル通信装置のような熱を生じる電子装置のためのモデルの気流および熱的冷却シミュレーション前の修正が、さらなる具体的応用である。さらなる応用は、自動車分野における乗り物の前面において使われるグリルにある。
【０００５】
近年では、三次元（3D）数値シミュレーション技術（たとえば構造解析または計算流体力学（CFD））が工業製品を設計および開発する助けとなるよう一般化されている。そのような技法の使用はシミュレーション技術および計算パワーの成長に関連している。3Dシミュレーション・モデルが準備されるとき、幾何データが3D-CADデータから提供されてもよい。しかしながら、3D-CADにおける幾何データは一般に、修正なしで三次元数値シミュレーションのために使うには複雑すぎる。したがって、3D-CADにおける幾何データは通例、計算規模の低減のために単純化される。CADからCAEへのモデル準備（CCMP:CAD-to-CAE  model  preparation）における単純化は、（電子的記憶の点での）モデル・サイズを有意に低減し、さまざまなクラスの解析のためにモデルを整える。モデルは通例、解析／シミュレーションに好適にするには、修正（時にdefeaturing〔フィーチャー除去〕として知られる）の形の準備を必要とする。最近まで、CCMP段は労働集約的であり、主として手作業のプロセスであった。フィーチャーを自動的に検出して処理するコンピュータ援用ツールの発達により、効率は有意に改善された。
【０００６】
幾何構成の単純化／修正後のモデル・セットアップにおけるその後の段階は、メッシュ生成である。メッシュ・モデルは頂点、エッジおよび面からなり、これらは各表面を構成する三角形および四辺形といった多角形をもつ多角形表現を使って、多数の小さな多角形を使って3D形状を定義する。自動的かつ高速なメッシュ生成が、構造化された（有限差分）および構造化されない（有限要素）メッシュのために利用可能である。通例、単純化されたモデルについてはずっと単純なメッシュが使用されることができる。
【０００７】
幾何構成の修正における第一のプロセスは、フィーチャー検出である。この第一のプロセスにおいて、たとえば混合および面取り面（blend  and  chamfer  faces）が検出され、次いでこれらの面が削除される（そして、より単純な概形を与える面で置き換えられる）。
【０００８】
別の修正プロセスは、穿孔のパターン（任意の形状（単数または複数）でありうる貫通穴または開口の規則的なまたは一貫した配列）をもつパーツに関係しうる。穿孔されたシートのような多孔性媒体または冷却を要する他の製品がたとえば、サーバー、ラップトップPCまたは記憶システムのような多くのICT（情報および通信技術）製品のための製品モデルにおいて入口または出口において使われることがある。多孔性の媒体が単純化されるとき、貫通穴または開口（本稿では単に穴と称する）が検出される。
【０００９】
熱気流解析またはシミュレーションの実行は、ICTおよび他の製品のための、コンピュータ援用工学（CAE）設計および開発プロセスの一部である。穿孔されたパーツ幾何を修正なしで使うことは、細かいメッシュと、ドメイン周を定義する外部境界の隣の穿孔された穴それぞれについての流量条件の複雑な設定とを要求する。細かいメッシュは高い計算資源需要および長い解析時間につながる。さらに、個々の穿孔された穴についての条件を設定することは、きわめて非効率的である。
【００１０】
したがって、熱気流／気流および他の解析では、一つの有利な慣行は、穿孔された領域を単一の多孔性の領域として扱うことである。空孔率は、そのパーツの総面積／体積に対する穿孔（空隙）の開口比に基づく。空孔率はしばしば、0から1までの間の比または0%から100%までの間の等価な百分率として表わされる。
【００１１】
これは幾何構成を大幅に（穿孔されたものから穿孔のないものに）単純化し、要求される境界および／または内部条件設定を最小にする。多孔性の等価物への変更は通例、解の精度に対して有意な効果をもたず、非常に効率的である。
【００１２】
特許文献１は、穿孔の群を識別し、穿孔されたパーツを同じ形の中実パーツに空孔率（たとえば100%未満）を加えたもので置き換えることによって、穿孔された領域を単一の多孔性の領域に変換する方法を開示している。加えられた空孔率が除去された穿孔と同じ効果を気流に対してもつ。特許文献２は、パーツのエッジをなす不完全な穿孔をさらに考慮することによって、この技術をさらに一歩進める。これらの刊行物の内容はここに参照によって組み込まれる。
【００１３】
本発明のためのもう一つの目標用途は、技術パーツ検索にありうる。設計者またはエンジニアのようなユーザーは、既存のパーツ（壊れているなど）または写真に基づいて、交換候補として同じまたは同様のパーツのカタログもしくはデータベースを検索するためのパーツIDや他の情報を知らずに、パーツ（穿孔されたシート）を探すことがある。このように、この意図された用途は、撮影された画像を使った、たとえば自動車パーツを探すための3D形状パーツ・カタログ検索用である。
【００１４】
3D形状検索のさらなる用途は、自動化された価格見積もりのための製造コストおよびおそらくはまた配達時間の予測である。このプロセスは、同様の形状を検索して、コストを計算するための導出された公式において最も近いN個の同様の形状を使うことに基づくことができる（たとえば最も類似したものに、より高い重みをかける）。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】EP2705450
【特許文献２】EP3002694
【非特許文献】
【００１６】
【非特許文献１】Alex  Krizhevsky  et  al.、ImageNet  Classification  with  Deep  Convolutional  Neural  Networks"、Advances  in  neural  information  processing  systems、2012、http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
【非特許文献２】Szegedy,  Christian,  et  al.、"Going  deeper  with  convolutions"、Proceedings  of  the  IEEE  Conference  on  Computer  Vision  and  Pattern  Recognition、2015
【非特許文献３】Marchandise  et  al.、"Optimal  parametrizations  for  surface  remeshing"、http://gmsh.info/doc/preprints/gmsh_stl3_preprint.pdf
【発明の概要】
【課題を解決するための手段】
【００１７】
本発明の第一の側面のある実施形態によれば、幾何学的な三次元（3D）モデルにおいて穿孔された面を識別するコンピュータ実装される方法が提供される。本方法は、前記モデルの面の二次元（2D）表現を取得し；2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類する（こうして穿孔された面を識別する）ことを含む。
【００１８】
畳み込みニューラル・ネットワークのようなニューラル・ネットワークの使用は、穿孔を認識するために解析的なCAD定義を使うことに頼らず、検出すべき新たな型の穿孔を追加するために新たなコードを必要としない、単純かつ効果的な仕方で穿孔の検出を許容する。
【００１９】
本方法はさらに、前記ニューラル・ネットワークを使って穿孔された面の穿孔の幾何学的な型および／または配置を範疇分けすることを含んでいてもよい。これは、特定の穿孔および／または穿孔パターンの検出を許容する。この範疇分けは、前記面画像の分類と同時に行なわれてもよいが、分類後に実行されれば、時間および計算資源を節約できる。
【００２０】
本方法は、穿孔されているとして分類された面を含む前記モデルにおけるいずれかの部分を選択することを含んでいてもよい。これは、穿孔されたパーツが穿孔されていないパーツから分離されることを許容する。本方法は、次いで、穿孔されたパーツの特徴、たとえばパーツ幾何構成、パーツ製造コスト、パーツ配達時間およびパーツ識別情報のいずれかを検索してもよい。パーツ幾何構成および／または識別情報は単に、検索の間にユーザーによって閲覧されてもよい。この製造コストおよび／または配達時間は、おそらくは他の穿孔されたパーツについての同じ因子（単数または複数）と組み合わされて、新たな穿孔されたパーツについて製造コストおよび配達時間のいずれかまたは両方を計算するために使われてもよい。本方法は、新たな穿孔されたパーツの面画像を、既知の製造コストおよび／または配達時間をもつ既知のパーツの面画像と比較して、新たな穿孔されたパーツと既知のパーツとの間の類似性を使って製造コストおよび／または配達時間を推定してもよい。
【００２１】
本方法は、三角形分割されたCADデータを使って表現されているモデルについて使われてもよい。その場合、前記2D表現は、解析関数への当てはめ〔フィッティング〕を介して生成される。本方法は、解析的なCADデータを使って表現されているモデルについて使われてもよい。その場合、前記2D表現は、CADカーネルによって提供される。
【００２２】
前記モデルは、諸パーツから構成されていてもよく、その場合、面の何らかの2D画像が得られる前に、パーツ・フィルタが、穿孔された領域を含むのに（たとえばサイズまたは定義の点で）適さないパーツを消去してもよい。
【００２３】
面の何らかの2D画像が得られる前に、穿孔された領域を含むのに（おそらくはやはりサイズの点で）適さない面を消去する面フィルタもあってもよい。
【００２４】
もとの面画像（たとえば所定のサイズより大きいもの）が、ラベル付けされた穿孔画像と比較される面領域画像に分割されてもよい。この場合、面は、よってその面を含むパーツは、その面のいずれかの領域が穿孔されているとして分類される場合には、穿孔されているとして分類される。
【００２５】
面画像を提供するいかなる好適な方法が使われてもよい。面画像は、物理的な関心オブジェクトの前記モデルの前記面画像の中心に対する法線に沿った位置からレンダリング・カメラによって撮影されてもよい。この場合、レンダリング・カメラは、面画像全体がカメラの視野に収まるよう位置される。
【００２６】
異なるサイズの穿孔を捕捉するために、前記法線に沿った異なる位置で、さらなる面画像が撮影されてもよい。これは、カメラが前記穿孔（単数または複数）を明瞭に見るためには近すぎるまたは遠すぎることがありうる場合についてである。たとえば、穴のサイズが非常に大きければ、表面近くに置かれたカメラは穿孔されたパターンを明瞭に見ないことがありうるが、前記法線上でより遠く離れて置かれたカメラなら、前記パターンがより明瞭になる、より広い領域の画像を生成することができるであろう。
【００２７】
本方法は、穿孔を含む幾何学的な三次元（3D）モデルを単純化することを含んでいてもよい。単純化は、前記面画像の分類によって識別された穿孔された面について、前記3Dモデルにおいてその面を、穿孔を除去することにより、中実〔ソリッド〕な面で置き換えることによる。対応して、穿孔されているとして分類されている面領域画像に対応する面領域が、穿孔を除去することによって、中実な面領域によって置き換えられてもよい。
【００２８】
よって、本発明の実施形態は、穿孔された面を中実な面で置き換えることによって、穿孔を含む幾何学的な三次元（3D）モデルを単純化するコンピュータ実装される方法を提供してもよい。本方法は、前記モデルの面の二次元（2D）表現を取得し；2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較して、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類し；前記面画像の分類によって識別された穿孔された面について、前記3Dモデルにおいてその面を、穿孔を除去することにより、中実な面で置き換えることを含む。
【００２９】
穿孔はバウンディングボックスを使って除去されてもよい。たとえば、面（または面画像）上の各穿孔がバウンディングボックスによって（二次元においてのみ）囲まれてもよく、該バウンディングボックスのサイズがあるオフセット因子だけ大きくされてもよい。これは、互いに直交する方向（たとえばuおよびv表面座標方向）の少なくとも一方においてバウンディングボックスの最高および最低の広がりを等しく反対方向に調整する。
【００３０】
前記オフセット因子は、別個のバウンディングボックスのうちの少なくとも二つを重ならせ；次いで、すべてのバウンディングボックスの合併集合が生成されて、重なり合う別個のバウンディングボックスが単一の組み合わされたバウンディングボックスとなり；合併集合における各バウンディングボックスのサイズは前記スケーリング因子によって縮小され；前記一つまたは複数の縮小されたサイズのバウンディングボックスによって形成される前記一つまたは複数の個別のボディが前記合併集合から抽出され、各個別のボディは潜在的には穿孔の群を表わす。
【００３１】
前記中実な面は、穿孔の代わりに空孔率値を与えられてもよい。
【００３２】
本発明の実施形態は、幾何学的な三次元（3D）モデルを解析するコンピュータ実装される方法を提供してもよい。本方法は、上記の方法を実行することを含み、前記単純化して穿孔を除去する段階と、前記単純化されたモデルを数値的な技法を使って解析してモデル形状の物理的な結果、たとえば熱的、機械的または電磁的属性または前記モデルのまわりのおよび／または前記モデルを通る気流を決定することを含む。
【００３３】
本発明の第二の側面のある実施形態によれば、幾何学的な三次元（3D）モデルにおいて穿孔された面を識別するよう構成された装置が提供される。本装置は一つまたは複数のプロセッサおよびメモリを有し、前記一つまたは複数のプロセッサは：前記モデルの面の二次元（2D）表現を取得し；2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；前記面画像をニューラル・ネットワークを使って、前記メモリに記憶されているラベル付けされた穿孔画像と比較し；前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類するよう構成されている。
【００３４】
本発明の第三の側面のある実施形態によれば、実行されたときに、幾何学的な三次元（3D）モデルにおいて穿孔された面を識別するコンピュータ実装される方法を実行するコンピュータ・プログラムが提供される。本方法は：前記モデルの面の二次元（2D）表現を取得し；2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類することを含む。
【００３５】
本発明の第四の側面のある実施形態によれば、上記のコンピュータ・プログラムを記憶している非一時的なコンピュータ可読媒体が提供される。
【００３６】
本発明の好ましい実施形態に基づく装置またはコンピュータ・プログラムは、方法の諸側面の任意の組み合わせを含んでいてもよい。さらなる実施形態に基づく方法またはコンピュータ・プログラムは、処理およびメモリ機能を必要とするという点でコンピュータ実装されるものとして記述されうる。
【００３７】
好ましい実施形態に基づく装置は、ある種の機能を実行するよう構成されているもしくは配置されているまたは単にある種の機能を実行するものとして記述される。この構成または配置は、ハードウェアもしくはミドルウェアまたは他の任意の好適なシステムの使用によることができる。好ましい実施形態では、構成または配置はソフトウェアによる。
【００３８】
このように、ある側面によれば、少なくとも一つのコンピュータにロードされたときに、先の装置定義の任意のものまたはその任意の組み合わせに基づく装置となるよう該コンピュータを構成するプログラムが提供される。
【００３９】
あるさらなる側面によれば、前記少なくとも一つのコンピュータにロードされたときに、先の方法定義の任意のものまたはその任意の組み合わせに基づく方法段階を実行するよう前記少なくとも一つのコンピュータを構成するプログラムが提供される。
【００４０】
一般に、前記コンピュータは、定義された機能を提供するよう構成されるまたは配置されるものとして列挙される諸要素を有していてもよい。たとえば、このコンピュータは、メモリ、処理およびネットワーク・インターフェースを含んでいてもよい。
【００４１】
本発明は、デジタル電子回路においてまたはコンピュータ・ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせにおいて実装されることができる。本発明は、一つまたは複数のハードウェア・モジュールによる実行のためのまたは一つまたは複数のハードウェア・モジュールの動作を制御するための、コンピュータ・プログラムまたはコンピュータ・プログラム・プロダクト、すなわち非一時的な情報担体において、たとえば機械可読記憶デバイスにおいて、または伝搬される信号において有体に具現されているコンピュータ・プログラムとして実装されることができる。
【００４２】
コンピュータ・プログラムは、スタンドアローンのプログラム、コンピュータ・プログラムの一部分または二つ以上のコンピュータ・プログラムの形であることができ、コンパイルされる言語またはインタープリター言語を含む任意の形のプログラミング言語で書かれることができ、コンピュータ・プログラムは、スタンドアローンのプログラムとして、あるいはモジュール、コンポーネント、サブルーチンまたはデータ処理環境における使用に好適な他の単位としてなど、任意の形で展開されることができる。コンピュータ・プログラムは、一つのモジュール上で、あるいは一つのサイトにあるまたは複数のサイトを横断して分散され通信ネットワークによって相互接続された複数のモジュール上で実行されるよう展開されることができる。
【００４３】
本発明の方法段階は、入力データに対して作用して出力データを生成することにより本発明の機能を実行するようコンピュータ・プログラムを実行する一つまたは複数のプログラム可能プロセッサによって実行されることができる。本発明の装置は、プログラムされたハードウェアとしてまたはたとえばFPGA（フィールドプログラマブルゲートアレイ）またはASIC（特定用途向け集積回路）を含む特殊目的論理回路として実装されることができる。
【００４４】
コンピュータ・プログラムの実行に好適なプロセッサは、たとえば、汎用および特殊目的マイクロプロセッサの両方ならびに任意の種類のデジタル・コンピュータの任意の一つまたは複数のプロセッサを含む。一般に、プロセッサは命令およびデータを読み出し専用メモリもしくはランダム・アクセス・メモリまたは両方から受領する。コンピュータの本質的な要素は、命令およびデータを記憶する一つまたは複数のメモリ・デバイスに結合された、命令を実行するためのプロセッサである。
【００４５】
本発明は、具体的な実施形態を用いて記述される。他の実施形態が付属の請求項の範囲内である。たとえば、本発明の段階は、異なる順序で実行されることができ、それでも望ましい結果を達成することができる。
【００４６】
本発明の要素は、「モジュール」、「プロセッサ」などの用語を使って記述されてきた。当業者は、そのような用語およびその等価物が、空間的に離れているが組み合わさって、定義される機能に資するシステムの諸部分を指しうることを理解するであろう。同じく、システムの同じ物理的な部分が、定義される機能の二つ以上を提供してもよい。
【００４７】
たとえば、別個に定義された手段が、適宜同じメモリおよび／またはプロセッサを使って実装されてもよい。
【００４８】
本発明の好ましい特徴についてこれから、付属の図面を参照して純粋に例として述べる。
【図面の簡単な説明】
【００４９】
【図１】一般的な実施形態における方法のフローチャートである。
【図２】本発明の一般的な実施形態における主要なシステム・コンポーネントのブロック図である。
【図３】種々の型の穿孔の図である。
【図４】穿孔検出の概観を与えるフローチャートである。
【図５】発明実施形態を実装するシステムにおける処理の概要のフローチャートである。
【図６】二つのフィルタによって消去されなかった各面を解析するためのプロセスのフローチャートである。
【図７】三角形分割された面を四つの領域に分割する例を示す図である。
【図８】領域を穿孔の型に基づいて穿孔されている／穿孔されていないとして分類するために取られる手法を示すフローチャートである。
【図９】画像の幾何構成から画像を生成するためのプロセスのフローチャートである。
【図１０】サーバー・モデルの図である。
【図１１】コンポーネント・フィルタによって消去されるコンポーネントの例を示す図である。
【図１２】不適なコンポーネントの消去後に処理のために残っている部分を示す図である。
【図１３】図１２の残っている部分から解析されるべきCAD面を示す図である。
【図１４】二つの領域に分割された図１３のCAD面を示す図である。
【図１５】図１３の領域の画像を示す図である。
【図１６】発明実施形態を実装するために使われるハードウェアを示すハードウェア図である。
【発明を実施するための形態】
【００５０】
穿孔されたシートを検出する必要性は、コンピュータ援用工学（CAE）のような分野で生じる。CAEでは、解析されるべきモデルを単純化するために、穿孔された領域が除去されるおよび／または多孔性の領域で置換される。そのような非常に小さな構造を除去することによって、メッシュの複雑さが、よって必要とされる計算量が大幅に低減できる。伝統的に、この目的のためには特許文献１および特許文献２のような規則ベースのシステムが使われてきた。これらは穿孔を検出するためにCADモデルにおける形状定義を使う。
【００５１】
近年、大量の安価な計算パワーおよびラベル付けされたデータ（特に画像）の結果、ニューラル・ネットワーク（特に深層ニューラル・ネットワーク）が画像処理および他のコンピュータ・ビジョン・タスクのための選択される方法となっている。画像認識のためにトレーニングされた深層ニューラル・ネットワークのよく知られた例はAlexNetである（非特許文献１参照）。もう一つの好適なニューラル・ネットワークはGoogLeNetにおいて記述されている（非特許文献２参照）。
【００５２】
規則ベースの方法は、穿孔の各範疇について特化したコードを書くことを必要とする。これは穿孔の範疇の数が増すにつれて、持続できなくなる。本発明の実施形態は、この困難を解決し、異なる一般的なアプローチを提案する。それは機械学習（ニューラル・ネットワークの使用）に基づくものである。
【００５３】
図１は、幾何学的な三次元（3D）モデルにおける穿孔された面を識別する方法の一般的なフローチャートを示している。まず、S10において、モデルの面の二次元（2D）表現が得られる。このプロセスではモデルのすべての面は必要とされない。いくつかの面は、のちにより詳細に説明するように、前もってフィルタリングによって消去されてもよい。S20では、（レンダリング・カメラを使って）各面のレンダリングを表わす面画像が2D表現において生成される。この面画像は次いで、S30においてニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較される。最後に、S40において、該比較を使って、穿孔があれば検出し、面画像を、穿孔されているまたは穿孔されていない面のどちらかに属するものとして分類する。
【００５４】
図２は、装置１０における主要なシステム・コンポーネントへの情報フローのブロック図である。3Dモデルがプロセッサ２０によって処理されてモデル面の2D画像を生成する。これらは、これらの画像を分類するために、プロセッサ３０（これはプロセッサ２０と同じプロセッサであってもよい）上で実行されるトレーニングされたニューラル・ネットワークを使って、ラベル付けされた画像と比較される。この分類は、プロセッサ４０（これはプロセッサ２０および／または３０と同じであってもよい）において、穿孔された面を、よって穿孔されたパーツを検出するために使われる。
【００５５】
所与の3Dパーツ・モデル（たとえば、組立体モデルのコンポーネント）について、発明実施形態は自動的に下記を決定してもよい：
１．そのコンポーネントは穿孔されたパーツ（または穿孔されたフィーチャーをもつパーツ）か。そして任意的に、
２．穿孔されたパーツにおいてどの範疇の穿孔が使われているか。
【００５６】
他の3Dモデルとは異なり、穿孔されたパーツ・モデルは一般にシート・モデルである（すなわち、基本的には2Dモデルであって、第三の次元方向の寸法は他の次元に比して小さい）。図３に示されるように、たとえば円、菱形、蜂の巣状など、穿孔されたシートの多くの範疇がある。穿孔の形／サイズおよびシート上でのその配置（すなわち、格子、オフセット、ランダム、互い違い）はいずれもさまざまでありうる。
【００５７】
一つのねらいは、パーツが穿孔されたフィーチャーをもつかどうかを判定することである。つまるところ、これは、各パーツから生成された一つまたは複数の画像を、データベースに記憶されている穿孔されたシートのラベル付けされた画像と比較することによって達成されうる。こうして、モデルのある領域が穿孔されていることの信頼度は、その領域の、データベースに記憶されている穿孔されたシートの他の例との類似度に比例しうる。このプロセスの例が図４に示されている。
【００５８】
穿孔を検出するために使われる信頼レベルは、用途に依存する、ユーザー定義されたパラメータであってもよい。50%程度の数字は自然な閾値であろう（すなわち、そうでないよりも可能性が高い）。しかしながら、偽陽性および偽陰性に伴うビジネス・コストに依存して、これはより高く、あるいはより低くてもよい。
【００５９】
段階S100において、3Dモデルが（たとえば図２におけるプロセッサ２０に）入力される。S110では、（モデル面の）2D画像がモデルから生成される。それらの画像とラベル付けされた画像のデータベースとがS120において（たとえば図２のプロセッサ３０によって）比較され、データベース画像に類似しているモデル画像が、穿孔されているとしてタグ付けされ、S130における穿孔されたシート（または他のパーツ）検出またはS140における非検出となる（たとえば図２のプロセッサ４０による）。
【００６０】
シートのような穿孔されたパーツが検出される場合、第二のねらいは、（たとえばやはり図２のプロセッサ４０によって）穿孔されたシートの型を判別することであってもよい。これは、異なる型の穿孔されたシートにラベル付けして、穿孔の異なる形および／または配置および／またはサイズを定義する別個のクラス（たとえば、菱形クラス、クラブ形クラス、蜂の巣形クラスなど）に入れることによって達成できる。このようなクラス分けは、モデル画像の、データベースにおいて表現されているこれらの個別のクラスとの類似性を使うことによる。ここでもまた、特定の型の穿孔の検出のための好適な信頼レベルが、上記のようにユーザーによって決定されてもよい。
【００６１】
次のような恩恵がありうる。
【００６２】
新規の穿孔パターンの検出のためにコーディングが必要ない。これはたとえば特許文献１（これは穿孔されたシートCADモデルの検出および単純化のための規則ベースの方法を説明している）に開示されるような規則ベースの方法に比べた利点である。
【００６３】
本検出は、メッシュ――通例は多数の三角形――を使って形を表現する三角形分割されたデータ（たとえばSTLデータ――STL（StereoLithography〔ステレオリソグラフィー〕）は３Ｄシステムズによって作り出されたステレオリソグラフィーCADソフトウェアにネイティブなファイル・フォーマット――またはVRMLデータ――VRML（Virtual  Reality  Modeling  Language）は三次元（3D）対話的ベクター・グラフィックス・データを表現するための標準的なファイル・フォーマット――）についてでさえも機能する。規則ベースのシステムは通例、数学的関数を使って形を定義する解析的なCADデータを必要とする。
【００６４】
本方法論は、穿孔されたシート／パーツの下位範疇への精密な分類を、よって類似したシートの精密な検索または穿孔範疇に固有の解析アルゴリズムの精密な使用を許容する。
【００６５】
検出プロセスは、パーツ・モデルにおけるすべての穿孔されたフィーチャーを（たとえば種々の穿孔範疇に）範疇分けするために使用されることができる。
【実施例】
【００６６】
発明実施形態の詳細な説明
処理の一つのフローチャートが図５に示されている。図４は穿孔されたシートの検出の概観であり、図５は段階１１０（画像を生成する）および段階１２０（画像が穿孔されているとしてタグ付けできるようにする）における処理の詳細を示しており、穿孔を含みうるパーツおよび面のみを処理することによって処理コストを下げるためのフィルタリング段階を含んでいる。
【００６７】
段階S150におけるシステムへの入力は、一つまたは複数のパーツを含む組立体モデルの入力である。
【００６８】
S160において、穿孔されたシートを含むことができないと（先験的知識を使って）判断されるパーツを除去するために、フィルタが適用される。そのようなフィルタはサイズに基づいていてもよく、十分小さい（たとえば最大バウンディングボックス寸法が1cmなど所与のサイズより小さい）コンポーネントが消去されることができる。電子製品または小さな接続パーツを含む他の製品の場合、そのようなフィルタはねじ、コネクタ、プラグなどといった小さなパーツすべてを自動的に消去することができる。
【００６９】
この第一のフィルタ処理プロセスに続いて、システムは、S170において、消去されなかったすべてのパーツを解析することに進み、i番目のパーツを取り上げる。このプロセスは、面ごとに実行され、各立体の各面が穿孔された領域があるかどうかについて解析される。こうして、段階S180は、そのパーツを面に分解する。パーツについて使われたフィルタ処理と同様に、第二のフィルタ処理段階S190は、モデルについての先験的知識を使って、穿孔された領域を含むことができない面を消去する。たとえば、十分小さな（たとえば最大面積が1cm2より小さい）面積をもつ面が自動的に消去されることができる。消去されなかったすべての面が、S200において抽出される。
【００７０】
この第二のフィルタ処理プロセスに続いて、システムはS210において、消去されなかったすべての面を解析することに進む。この解析は、（規則を使う通常のシステムと違って）機械学習に基づく、よってニューラル・ネットワークの使用に基づく方法を使ってなされ、S220において穿孔された面（シートと称される）の間の分割をする。解析が肯定的な結果を返す場合（つまり、その面が少なくとも一つの穿孔された領域を含む）、S230における第二の解析段階（やはり機械学習およびニューラル・ネットワークの使用に基づく）が穿孔の型を評価するために使われて、S240において穿孔の型が返される。上記結果が否定的である場合、システムはS250において、その面を、いかなる穿孔されたシート領域も含んでいないものとして標識付けする。その後、少なくとも一つの穿孔された領域を含む少なくとも一つの面を含むパーツが、穿孔された領域を含むパーツとしてラベル付けされる。
【００７１】
二つのフィルタによって消去されなかった各面を解析するためのプロセスが図６に示されている。よって、このプロセスは、i番目の面が抽出された後に行なわれ、面が領域に分割されるときに一般的な段階S210ないしS250を置き換えることができる。
【００７２】
S260における3D幾何構成の入力後、S270において、デカルト座標(X,Y,Z)でのもとの3D呈示が、表面座標における2D表現に変換される。解析的なCADデータについては、そのような表現は、使用されるCADカーネルによってすぐに提供される。たとえば、OpenCASCADE  CADカーネルは、CAD面について、表面座標で表わされた「Geom_Surface」表現を提供する。この表現では、表面の境界は関数「Bounds」を使って取得できる。これはUおよびVについての始まりおよび終わりの値を返す。
【００７３】
三角形分割されたデータの場合には、面は同じ面ID（Face  ID）を共有する三角形の集合によって定義され、そのような表現は、再メッシュ（remeshing）アルゴリズムによって用いられるような、解析関数への当てはめを介して抽出できる（たとえば非特許文献３を参照）。
【００７４】
ひとたび(U,V)表面座標についての限界値が見出されたら、S280において、面は、U、Vまたは両方の座標に沿って、一つまたは複数の区画に分割される。分割はたとえば小さめの面については行なわれる必要はないが、分割に関する決定はこの時点でなされる。どのように分割するかについての決定は一般には、面のサイズを考慮することによってなされる。そのような分割の例が図７に示されている。ここでは三角形分割された表面が四つの領域に分割されている。面の各領域が、次いで、S290において、機械学習／ニューラル・ネットワーク方法を使って独立して解析されてもよい。S300において方法が領域が穿孔されていることを返す場合、穿孔の型を見出すために、その後の段階S310が実行される。S320において面のすべての領域が処理された後、S330において、次の二つの出力が可能である：
・面はいかなる穿孔された領域も含んでいない。この場合、面のどの領域も穿孔されておらず、S340において、この面について否定的な結果が返される。
・S350における穿孔の一つまたは複数の型のリスト。この場合、一つまたは複数の領域が穿孔されているとラベル付けされる。
【００７５】
前の段階において得られた各領域が解析され、分類される。分類のために取られる手法は、図８に示されるような画像ベースの手法である。S360での表面座標での領域の入力後、該表面の幾何構成のレンダリングを表わす一つまたは複数の画像がS370において幾何学的情報から生成される。各画像はS380において、当技術分野において知られている、教師付き機械学習アルゴリズムを使って分類される。アルゴリズムは、ニューラル・ネットワークを使って画像を穿孔されている／穿孔されていないものに分類するようトレーニングされている。そのような目的のために使用できる現状技術のアルゴリズムの例は、さまざまな型の穿孔されたおよび穿孔されていないシートのラベル付けされた画像の集合に基づいてチューニングされた、AlexNet（先述）のような再トレーニングされた畳み込みニューラル・ネットワークである。穿孔されているとして分類された画像について、ニューラル・ネットワークにおける同様の教師付き機械学習アルゴリズムがS390において、穿孔パターンをいくつかの既知のパターンに分類するために使用されることができる（あるいは、これら二つの段階は一緒にまとめられてもよい）。領域は、その領域から生成された少なくとも一つの画像が穿孔されていると分類される場合には、穿孔されていると分類される。
【００７６】
最後に、画像の幾何構成から画像を生成するためのプロセスが図９に示されている。S400における表面座標での領域の入力後、段階S410において、Cが、(u,v)座標で表わされた該領域の中心として定義され、nCが、Cを通る領域表面への外向きの法線として定義される。市販のCADパッケージおよびレンダリング・パッケージにおいて利用可能な標準的な技法を使って、段階S420において、レンダリング（概念的）カメラ（これは定義された始点からのオブジェクトの3Dビューを保存する）が、法線nC上に、表面から距離（高さh1）で、点Cのほうを向いて、位置される。h1の選択は、領域全体がカメラの視野に収まるようなものである。このレンダリング・カメラを使って、S430においてその領域についての第一の画像を生成する。
【００７７】
穿孔が種々のサイズをもつことがありうるという事実を考慮に入れるために、第二の、より近くのカメラがS440において、h1と点Cとの間の高さh2のところに置かれてもよく、S450において、第二の（ズームインされた）画像も生成されることができる。このプロセスは、ズームインおよびズームアウトによって、より多くの画像を生成するために反復されることができる（このため、S450ではn番目の画像という言い方をしている）。
【００７８】
図１０の例において示したサーバー・モデルを、システムへの入力として考える。サーバーは1000個より多いパーツをもつ組立体モデルである。第一のフィルタ処理段階は、3cmより小さなバウンディングボックスをもつすべてのパーツを消去する。このフィルタ処理は、穿孔を含まないとわかっている、コネクタまたはねじのような小さなパーツを除去する。この段階において消去されたコンポーネントの例が図１１に示されている。
【００７９】
第一のフィルタ処理プロセス後に残されたすべてのパーツ（今や数百個）がさらに処理される。例として、図１２に示されるパーツが処理される。
【００８０】
図１２のパーツは845個のCAD面を含んでいる。これは非常に多い数であるが、大多数の面は非常に小さいまたは非常に薄く、よって穿孔された領域を含むことができない。1cmより大きな少なくとも二つの次元方向の寸法をもたない面を除去するよう設定された第二のフィルタを実行した後、残る面は20個未満である。これらの面のすべてが次の段階において解析される。
【００８１】
たとえば、解析は図１３に示される面について実行される。そのサイズに基づいて、この面は、図１４に示されるように二つの領域に分割されてもよい。それらの領域の中心（C1およびC2と記される）から外向きの法線方向上に、それぞれC1およびC2のほうを向いて、カメラが配置される。これらのカメラは、領域全体が視野にはいるような仕方で配置される。
【００８２】
二つのカメラからのレンダリングは、それぞれ領域１および２に対応する画像１および画像２を生成する。これらは図１５に示されている。その後、穿孔された画像に対してチューニングされた、あらかじめトレーニングされたAlexNetが、第一の画像を穿孔されていないとして、第二の画像を穿孔されているとして分類する。さらに、第二の画像は、丸い穿孔をもつとして分類される。
【００８３】
穿孔の除去
幾何学的なモデルにおいて穿孔の群を除去する好ましい方法は、特許文献１においてより詳細に記載されているように、検出された穿孔／貫通穴のそれぞれのまわりのバウンディングボックスを使う。この方法は二次元で使われてもよく、それは処理を簡単にする。
【００８４】
貫通穴の集合における各貫通穴を囲む別個のバウンディングボックスが提供され；各別個のバウンディングボックスの体積（または画像で使われる2Dバウンディングボックスについては面積）が計算され；各別個のバウンディングボックスのサイズがオフセット因子によって増大させられる。オフセット因子は、互いに直交するx,y,z方向（またはuおよびv方向）の少なくとも一つにおいてバウンディングボックスの最高および最低の限度を等しく反対方向に調整する。そのようなスケーリング因子は、バウンディングボックスのもとのサイズに依存しない。
【００８５】
前記オフセット因子は、別個のバウンディングボックスのうちの少なくとも二つを重ならせ；次いで、すべてのバウンディングボックスの合併集合が生成され、重なり合う別個のバウンディングボックスが単一の組み合わされたバウンディングボックスとなり；合併集合における各バウンディングボックスのサイズが前記スケーリング因子によって縮小され；前記一つまたは複数の縮小されたサイズのバウンディングボックスによって形成される前記一つまたは複数の個別のボディが前記合併集合から抽出され、各個別のボディは潜在的には穿孔の群を表わす。
【００８６】
検出後に、多孔性の置換部分による置換が行なわれることができる。
【００８７】
この方法論は、配列における別個の貫通穴（穿孔）を、隣接位置を使って、だがいかなる種類の逐次反復的探索プロセスもなしに、一緒にグループ化することができる。この方法は、バウンディングボックスをオフセット（スケーリング）させることと、合併および抽出動作（どちらも時にブール演算と称される）とを使って、要求される結果を達成する。このプロセスは、いかなる種類の穿孔された形および穿孔パターンについても同じであることができる。
【００８８】
CADアプリケーションにおいて使われるブール演算は、当業者には既知の、合併演算、交わり演算および差分演算のような、集合に対する演算である。抽出は合併演算の逆を行なって、併合された集合における個々のボディを分離する。それによりそれらのボディが個々に扱えるようになる。
【００８９】
好ましい実施形態では、少なくとも集合中の諸貫通穴の体積が（通常の誤差マージンの範囲内で）同じである場合、あるいは諸貫通穴の体積／形のいかなる相違にも関わらず単一のバウンディングボックス体積が提供される場合、それぞれの別個のバウンディングボックスの体積を計算する段階は、一つのバウンディングボックスの体積を計算するだけで、この体積をそれぞれの別個のバウンディングボックスのために使うことを含んでいてもよい。
【００９０】
オフセット因子の数値は、デフォルト値に設定されることおよび／またはユーザー入力によって設定されることができる。ユーザー入力は、方法の開始時であってもよいし、あるいは前のスケーリング因子が隣接するバウンディングボックスを結合して少なくとも一つの単一の組み合わされたバウンディングボックスを提供するのに十分でなかった場合には、方法の実行中であってもよい。
【００９１】
スケーリングし戻された個々のボディは、二つ以上の穿孔を含む組み合わされたバウンディングボックス、または、他のどのバウンディングボックスとも重ならないため併合段階において他のどれとも組み合わされなかった別個のバウンディングボックスのいずれかに対応する。個々のボディのこの後者の範疇は、個々のボディを選択解除するためにもとの体積と比較することによって除去される。それぞれの別個のバウンディングボックスが同じ体積で始まるとすると、比較は、単に、すべてのバウンディングボックスの既知のもとの体積に対してである。もとの別個のバウンディングボックスが異なる体積をもつ場合には、比較は、平均体積に対して、あるもとの別個のバウンディングボックスの最小の体積、あるもとの別個のバウンディングボックスの最大体積またはスケールアップされてもとのサイズにサイズ変更し戻されたそのもとの別個のバウンディングボックスの体積に対してであってもよい。当業者は、比較が誤差マージンを考慮に入れてもよいことを理解するであろう。
【００９２】
ひとたび個々のボディ（または残りの個々のボディ）が利用可能になれば、次の段階は、それらに空孔率値を与えて、それらが、それらが置換する穿孔と等価になるようにすることである。本方法は、識別された群の穿孔における個々の穿孔の組み合わされた効果と等価な空孔率を与えるために、それぞれの（残りの）個々のボディについての空孔率を導出するまたは少なくとも使うことを含んでいてもよい。
【００９３】
処理が穴の数を、そして必要なら穴の体積をも記憶していて、この体積が個々のボディに割り当てられることができるのでもよい。これはたとえば、併合動作が貫通穴の前記集合から単一の個別のボディを作り出しており、よって穿孔の単一の群が同定された場合に成り立つ。しかしながら、他の状況では、ブール併合演算は、もはや貫通穴と個々のボディとの間にリンクがないことを意味することができる。これらの状況では、それぞれの個々のボディについて、空孔率計算のためだけに、該個別のボディの、パーツ・モデルとのブール交わりによって、一時的なボディが生成されてもよい。このように、この一時的なパーツは前記個別のボディとサイズ、位置および形が同一であるが、その体積は穿孔の前記群によって低減されている。次いで、個別のボディの空孔率は、前記個別のボディの体積と前記一時的パーツの体積との間の比を使うことによって導出されてもよい。比の値はたとえば1.0であってもよい（一時的パーツの体積／個別のボディの体積）。
【００９４】
その後、一時的なボディは破棄される。
【００９５】
ひとたび個別のボディが、個別のボディが占める、以前に含められた体積内の穿孔に対する等価な気流を提供する、計算された空孔率を与えられたら、処理は完了である。いくつかのシステムでは、この最終的な帰結のために特定の段階が必要とされてもよく、他のシステムでは、すでに定義されている個別のボディが、幾何学的モデルの対応する部分を自動的に置換していて、それにより貫通穴を除去しているであろう。
【００９６】
ある好ましい実施形態では、個別のボディはモデルにすでに存在していて（ひとたび導出されたら）、最終的な置換段階が、たとえばブール減算によって、穿孔を除去する。このブール減算は、もとのモデルの、それぞれの個別のボディと交わる部分を除去しうる。
【００９７】
ハードウェア
図１６は、本発明を具現し、穿孔の検出および任意的には除去ならびにもしあれば必要とされるCAE解析の方法を実装するために使用されうる、CADモデル処理のために好適な資源を組み込んでいるサーバーのような、コンピューティング装置のブロック図である。コンピューティング装置はプロセッサ９９３およびメモリ９９４を有する。任意的に、コンピューティング装置は、他のコンピューティング装置との、たとえば発明実施形態の他のコンピューティング装置との通信のためのネットワーク・インターフェース９９７をも含む。
【００９８】
たとえば、ある実施形態は、そのようなコンピューティング装置のネットワークから構成されていてもよい。任意的に、コンピューティング装置は、たとえば特定の穿孔を探すための探索パラメータ、穿孔を含みうるパーツまたはプロセス変数の任意のものをユーザーが入力するための、キーボードおよびマウスのような一つまたは複数の入力機構９９６と、一つまたは複数のモニタのようなディスプレイ・ユニット９９５とを含む。ディスプレイ・ユニットは、コンピューティング装置によって記憶されるデータの表現、たとえば穿孔が同定されたまたは除去されたシートの表現またはCAEシミュレーションの可視化を示してもよい。ディスプレイ・ユニット９９５はまた、ユーザーとプログラムおよびコンピューティング装置に記憶されているデータとの間の対話を可能にする、カーソルおよびダイアログボックスおよび画面をも表示してもよい。入力機構９９６は、ユーザーがデータおよび命令をコンピューティング装置に入力できるようにしてもよい。コンポーネントはバス９９２を介して互いに接続可能である。
【００９９】
メモリ９９４はコンピュータ可読媒体を含んでいてもよい。この用語は、単一の媒体または複数の媒体（たとえば中央集中式のまたは分散式のデータベースおよび／または関連するキャッシュおよびサーバー）であって、コンピュータ実行可能命令を担持するまたはデータ構造が記憶されているよう構成されたものを指しうる。コンピュータ実行可能命令はたとえば、汎用コンピュータ、特殊目的コンピュータまたは特殊目的処理装置（たとえば一つまたは複数のプロセッサ）によってアクセス可能であり、それに一つまたは複数の機能または動作を実行させる命令およびデータを含んでいてもよい。よって、用語「コンピュータ可読記憶媒体」は、機械による実行のための一組の命令を記憶、エンコードまたは担持することができ、機械に本開示の方法の任意の一つまたは複数を実行させるいかなる媒体をも含みうる。よって、用語「コンピュータ可読記憶媒体」は、半導体メモリ、光学式メディアおよび磁気メディアを含むがそれに限られないものと解釈されうる。限定ではなく例として、そのようなコンピュータ可読媒体は、ランダム・アクセス・メモリ（RAM）、読み出し専用メモリ（ROM）、電気的に消去可能なプログラム可能型読み出し専用メモリ（EEPROM）、コンパクトディスク読み出し専用メモリ（CD-ROM）または他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュ・メモリ・デバイス（たとえば半導体メモリ・デバイス）を含む非一時的なコンピュータ可読記憶媒体を含みうる。
【０１００】
プロセッサ９９３はコンピューティング装置を制御し、処理動作を実行する、たとえば本稿および請求項において記載されているさまざまな異なる機能を実装するためにメモリに記憶されているコードを実行するよう構成されている。そのような処理動作は、モデルの面の二次元（2D）表現を取得すること、2D表現の面のそれぞれのレンダリングを表わす面画像を生成すること、ニューラル・ネットワークにおいて面画像をラベル付けされた穿孔画像と比較すること、該比較を使って穿孔があれば検出し、面画像を穿孔されたおよび穿孔されていない面の一方に属するものとして分類することを含む。
【０１０１】
メモリ９９４は、プロセッサ９９３によって読まれ、書かれるデータ、たとえば入力（たとえば、ラベル付けされた画像またはニューラル・ネットワークをトレーニングするための画像および3Dモデル）、中間結果（たとえば面画像）および上記で参照した諸プロセスの結果（たとえば面およびパーツの分類）を記憶する。本稿で言うところでは、プロセッサは、マイクロプロセッサ、中央処理ユニットなどといった一つまたは複数の汎用処理装置を含みうる。プロセッサは、複雑命令セット・コンピューティング（CISC）マイクロプロセッサ、縮小命令セット・コンピューティング（RISC）マイクロプロセッサ、超長命令語（VLIW:  very  long  instruction  word）マイクロプロセッサまたは他の命令セットを実装するプロセッサまたは命令セットの組み合わせを実装する諸プロセッサを含みうる。プロセッサは、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、デジタル信号プロセッサ（DSP）、ネットワーク・プロセッサなどといった一つまたは複数の特殊目的処理装置をも含みうる。一つまたは複数の実施形態では、プロセッサは、本稿で論じられる動作および段階を実行するための命令を実行するよう構成される。
【０１０２】
ネットワーク・インターフェース（ネットワークI/F）９９７はインターネットのようなネットワークに接続されてもよく、該ネットワークを介して他のそのようなコンピューティング装置に接続可能である。ネットワークI/F  ９９７はネットワークを介した他の装置との間のデータ入出力を制御しうる。マイクロフォン、スピーカー、プリンター、電源ユニット、ファン、ケース、スキャナ、トラックボールなどといった他の周辺装置がコンピューティング装置に含まれていてもよい。
【０１０３】
本発明を具現する方法は、図１６に示されるようなコンピューティング装置で実行されてもよい。そのようなコンピューティング装置は図１６に示されるすべてのコンポーネントを有する必要はなく、それらのコンポーネントの部分集合から構成されていてもよい。本発明を具現する方法は、一つまたは複数のデータ記憶サーバーとネットワークを介して通信する単一のコンピューティング装置によって実行されてもよい。該コンピューティング装置は、処理の前後の、よってたとえば穿孔されているとして分類されたパーツをもち、また潜在的には、穿孔ありおよびなしのCADモデルを記憶しているデータ記憶自身であってもよい。
【０１０４】
本発明を具現する方法は、互いと協働して動作する複数のコンピューティング装置によって実行されてもよい。前記複数のコンピューティング装置の一つまたは複数は、CADモデルの少なくとも一部分を記憶するデータ記憶サーバーであってもよい。
【０１０５】
他のハードウェア構成、たとえばラップトップ、iPad（登録商標）およびタブレットPC一般が代替的に提供されてもよい。発明実施形チアの方法を実行するためのソフトウェアならびにラベル付けされた画像、CADデータ・ファイルおよび必要とされる他の任意のファイルは、たとえばインターネットのようなネットワークを通じてまたはルムーバブル・メディアを使ってダウンロードされてもよい。任意の修正されたCADファイルが、記憶され、リムーバブル・メディアに書き込まれ、あるいはネットワークを通じてダウンロードされることができる。
【０１０６】
発明実施形態は、穿孔されたモデルに関わる3Dデータの分類および問い合わせを必要とするいかなる分野にも適用できる。例は機械設計（たとえば自動車およびコンピュータ）、3D印刷などである。
【０１０７】
ニューラル・ネットワーク
人工ニューラル・ネットワークは、いわゆる「機械学習」を使って、パターンマッチングおよび診断手順を実行するために広く用いられている。人工ニューラル・ネットワークの典型的な構造は、ネットワークに観察が入力される入力層と、入力層から受領される情報に対してさらなる処理動作が実行される隠れた層もしくは処理層と、処理層から受領された情報に基づいて出力信号が生成される出力層とを有する三層構造である。人工ニューラル・ネットワークの精密な構造は限定されず、各層の具体的な機能についても同様である。
【０１０８】
好適なニューラル・ネットワーク・システムは、試験データおよび注釈付けされたデータを利用して、穿孔検出のためのトレーニングされたモデルを生成するトレーニング・プロセッサを含むことができる。該トレーニングされたモデルは検出プロセッサによってアクセス可能である。検出は、類似性値計算プロセッサを参照して実行される。
【０１０９】
そのようなシステムは、図１６（上述）に示されるようなハードウェア・アーキテクチャーを有する。これは、CAD処理段階のために使われるものと同じであってもよく、あるいは異なるアーキテクチャーだがネットワーク・インターフェース９９７を介して面画像の入力およびラベル付け／分類された面画像の出力のためにCAD処理アーキテクチャーにリンクされているのであってもよい。
【０１１０】
特に、プロセッサ９９３は、トレーニング・プロセッサ、検出プロセッサおよび類似性値計算プロセッサの処理命令を実行する。
【０１１１】
一つまたは複数の記憶ユニット（メモリ）９９４が処理命令、穿孔検出のためのトレーニングされたモデル、面画像データ、試験データならびに穿孔されたおよび穿孔されていないシートのラベル付けされた画像の形の注釈付けされたデータを記憶する。
【０１１２】
トレーニング装置は、トレーニング・プロセスを実行するよう構成されている。トレーニング装置はトレーニング・プロセッサの制御のもとにあり、試験データ、注釈付けされたデータおよびトレーニングされているモデルをメモリ９９４に記憶するよう構成される。
【０１１３】
ひとたびトレーニング処理が完了したら、トレーニングされた画像分類畳み込みニューラル・ネットワーク・モデルが得られ、検出プロセッサによって画像データに直接、適用されることができる。そのような直接適用は、前方伝搬と称されることができる。
【０１１４】
たとえば、トレーニングされているモデルは、画像分類畳み込みニューラル・ネットワーク・モデルであってもよい。
【０１１５】
使用されるネットワークは分類ネットワークであってもよく、該分類ネットワークにおいて、トレーニング集合が、それぞれラベル（これは通例、自然数としてエンコードされる）をもつ諸画像を受け取る。単純アレイでは、入力データは次のフォーマットまたは同様のフォーマットで入力されてもよい：
Img1.jpg  0
Img2.jpg  0
Img3.jpg  1
Img4.jpg  2
0は「丸い穿孔されたシート」（円形穿孔をもつシート）であってもよく、1は「正方形の穿孔されたシート」（正方形の穿孔をもつシート）であってもよい。
【０１１６】
見たことのない画像を与えられて、ネットワークはそれがあるクラス（穿孔されているまたは穿孔されていない）およびある範疇（たとえば丸いまたは四角い穿孔）に属する確率を計算することができる。ネットワークの最終層が、特徴ベクトルを抽出し、これらのベクトルを使って（たとえば余弦類似性を計算することによって）複数の画像の間の類似性を計算するために使われることができる。
【０１１７】
画像はメモリ９９４に生（raw）画像ファイルとして（すなわち、ピクセル値ごとに）記憶されても、あるいはtiff、jpegまたはビットマップのような画像フォーマットで記憶されてもよい。
【０１１８】
LeNetまたはAlexNetのような画像分類ニューラル・ネットワーク・モデルは画像分類畳み込みニューラル・ネットワーク・モデルとして記憶され、トレーニング・プロセッサによってトレーニングされることができる。入力画像データは通常はサイズが大きく、畳み込みニューラル・ネットワーク・モデルが効果的に次元削減（dimension  reduction）を実行して、入力画像データを、画像表現のキーとなる特徴を表わす画像毎の特徴値の単一のベクトルに還元してもよい。
【０１１９】
発明実施形態の恩恵
発明実施形態の重要な恩恵は、コーディングや修正（これは、機能拡張のエンドレスなケースと称されることができる）なしに、穿孔の新規の範疇が（CNNをトレーニングするために使われる画像に追加することによって）動的に追加されることができるということである。
【０１２０】
上述したように、本方法はCADおよび三角形分割されたデータ、たとえばSTLおよびVRMLの両方について機能する。
【０１２１】
発明実施形態は、穿孔されたモデルが下位範疇に分類されることを許容し、それにより穿孔の型の間の区別をし、穿孔の型、たとえば円形、菱形、六角形などを特に複数の穿孔されたパターンをもつ諸パーツについて与える分類におけるさらなる精度を提供する。
【０１２２】
したがって、クエリー検索システムを使って、主分類、たとえば穿孔されているか否かおよび下位分類、たとえば円形のみまたは複合パターンの類似の範疇モデル（同じまたは類似の型の穿孔をもつシートを有する範疇モデル）を検索することが可能である。
【０１２３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するコンピュータ実装される方法であって、当該方法は：
前記モデルの面の二次元（2D）表現を取得し；
2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；
前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；
前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類することを含む、
方法。
（付記２）
前記ニューラル・ネットワークにおいて、穿孔された面の穿孔の幾何学的な型および／または配置を範疇分けすることをさらに含む、
付記１記載の方法。
（付記３）
穿孔されているとして分類された面を含む前記モデルにおけるいずれかのパーツを選択することと；
任意的に、パーツ幾何構成、パーツ製造コスト、パーツ配達時間およびパーツ識別情報のいずれかを検索することとをさらに含む、
付記１または２記載の方法。
（付記４）
三角形分割されたCADデータによるモデルについては、前記2D表現は、解析関数への当てはめを介して生成され；
解析的なCADデータによるモデルについては、前記2D表現は、CADカーネルによって提供される、
付記１ないし３のうちいずれか一項記載の方法。
（付記５）
前記モデルは複数のパーツを含み、面の何らかの2D画像が得られる前に、パーツ・フィルタが、穿孔された領域を含むのに適さないパーツを消去する、
付記１ないし４のうちいずれか一項記載の方法。
（付記６）
面の何らかの2D画像が得られる前に、面フィルタが、穿孔された領域を含むのに適さない面を消去する、
付記１ないし５のうちいずれか一項記載の方法。
（付記７）
もとの面画像が、ラベル付けされた穿孔画像と比較される面領域画像に分割されて、好ましくは、
穿孔されているとして分類される面領域画像に対応する面領域が、穿孔を除去することによって、中実な面領域で置き換えられる、
付記１ないし６のうちいずれか一項記載の方法。
（付記８）
面画像が、前記面画像の中心に対する法線に沿った位置からレンダリング・カメラによって撮影され、前記位置は面画像全体がカメラの視野に収まる位置である、
付記１ないし７のうちいずれか一項記載の方法。
（付記９）
異なるサイズの穿孔を捕捉するために、前記法線に沿った異なる位置で、さらなる面画像が撮影される、付記７記載の方法。
（付記１０）
穿孔を含む前記幾何学的な三次元（3D）モデルを単純化することをさらに含み、単純化は、前記面画像の分類によって識別された穿孔された面について、前記3Dモデルにおいてその面を、穿孔を除去することにより、中実な面で置き換えることによる、
付記１ないし９のうちいずれか一項記載の方法。
（付記１１）
前記中実な面は、穿孔の代わりに空孔率値を与えられる、
付記１ないし１０のうちいずれか一項記載の方法。
（付記１２）
幾何学的な三次元（3D）モデルを解析するコンピュータ実装される方法であって、付記９ないし１１のうちいずれか一項記載の方法を実行し、次いで、単純化されたモデルを数値的な技法を使って解析して、熱的、機械的もしくは電磁的属性または前記モデルのまわりのおよび／もしくは前記モデルを通る気流といった、前記モデル形状の物理的な結果を決定することを含む、コンピュータ実装される方法。
（付記１３）
幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するよう構成された装置であって、当該装置は一つまたは複数のプロセッサおよびメモリを有し、前記一つまたは複数のプロセッサは：
前記モデルの面の二次元（2D）表現を取得し；
2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；
前記面画像をニューラル・ネットワークを使って、前記メモリに記憶されているラベル付けされた穿孔画像と比較し；
前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類するよう構成されている、
装置。
（付記１４）
実行されたときに、幾何学的な三次元（3D）モデルにおいて、穿孔された面を識別するコンピュータ実装される方法を実行するコンピュータ・プログラムであって、前記方法は：
前記モデルの面の二次元（2D）表現を取得し；
2D表現における前記面のそれぞれのレンダリングを表現する面画像を生成し；
前記面画像をニューラル・ネットワークにおいて、ラベル付けされた穿孔画像と比較し；
前記比較を使って、穿孔があれば検出し、前記面画像を：穿孔された面および穿孔されていない面の一方に属するとして分類することを含む、
コンピュータ・プログラム。
（付記１５）
付記１４記載のコンピュータ・プログラムを記憶している非一時的なコンピュータ可読媒体。
【符号の説明】
【０１２４】
１０  装置
２０  プロセッサ
３０  ニューラル・ネットワークを備えたプロセッサ
４０  プロセッサ
S10  3Dモデルの面の2D表現を取得
S20  2Dモデルにおける各面について面画像を生成
S30  ニューラル・ネットワークを使って、面画像をラベル付けされた穿孔画像と比較
S40  穿孔を検出して画像を分類
S100  3Dモデルを入力
S110  画像を生成
S120  モデル画像が、穿孔されているとタグ付けされたDB画像に類似
S130  穿孔されたシート検出
S140  穿孔されたシート非検出
S150  組立体モデルを入力
S160  穿孔されたシート領域を含み得ないパーツを消去するフィルタを適用
S170  組立体の、消去されなかったi番目のパーツを抽出
S180  パーツを面に分解
S190  穿孔されたシート領域を含み得ない面を消去するフィルタを適用
S200  そのパーツの、消去されなかったi番目の面を抽出
S210  機械学習を使って面が穿孔されているかどうかを判断
S220  穿孔されている？
S230  機械学習を使って穿孔の型を特定
S240  穿孔の型を返す
S250  否定的な結果を返す
S260  3D空間における面幾何構成を入力
S270  面座標(U,V)で幾何構成を表現
S280  (U,V)表現を一つまたは複数の領域に分割
S290  各(U,V)領域について、機械学習を使って、その領域が穿孔されているか否かを評価
S300  i番目の領域が穿孔されている？
S310  各(U,V)領域について、機械学習を使って穿孔の型を評価
S320  穿孔の型を返す
S330  穿孔された領域あり？
S340  面について否定的な結果を返す
S350  見出された一つまたは複数の穿孔型のリストを返す
S360  (U,V)空間において面領域を入力
S370  諸領域についてn枚の画像を生成
S380  すべての画像を、穿孔されている／穿孔されていない  に分類
S390  穿孔されていると分類された画像について、型1,2,…,mに分類
S400  (U,V)空間において面領域を入力
S410  C＝(uc,vc)を中心点の座標とする
S420  点Cにおける外向きの法線上で、高さh1のところに、Cに向けてレンダリング・カメラを配置
S430  第一の画像を生成
S440  点Cにおける外向きの法線上で、高さh2のところに、Cに向けてレンダリング・カメラを配置
S450  第nの画像を生成
S460  領域について諸画像を出力
【図１】
2018142304.tif 000003
【図２】
2018142304.tif 000004
【図３】
2018142304.tif 000005
【図４】
2018142304.tif 000006
【図５】
2018142304.tif 000007
【図６】
2018142304.tif 000008
【図７】
2018142304.tif 000009
【図８】
2018142304.tif 000010
【図９】
2018142304.tif 000011
【図１０】
2018142304.tif 000012
【図１１】
2018142304.tif 000013
【図１２】
2018142304.tif 000014
【図１３】
2018142304.tif 000015
【図１４】
2018142304.tif 000016
【図１５】
2018142304.tif 000017
【図１６】
2018142304.tif 000018