(57)【要約】【課題】  ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を少ない処理負荷で高速に行うことが可能な立体物造形用データ出力規制装置を提供する。【解決手段】  規制モデルの特徴を表現した面積分布が登録された規制モデルデータベース４０と、対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する度数分布算出手段１０と、算出された面積分布を、規制モデルデータベース４０に登録されている規制モデルの面積分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段２０を有する。【選択図】  図２
2017041023.tif 000002
【特許請求の範囲】
【請求項１】
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデル内の３つのポリゴンで形成される三角形の面積に基づく面積分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する度数分布算出手段と、
前記算出された面積分布を、前記データベースに登録されている規制モデルの面積分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を有することを特徴とする立体物造形用データ出力規制装置。
【請求項２】
前記度数分布算出手段は、前記対象モデルに対して、当該対象モデル内のポリゴンを第１グループ、第２グループ、第３グループの３つのグループに分類し、各グループから１つずつポリゴンを選択することにより、前記３つのポリゴンを選択することを特徴とする請求項１に記載の立体物造形用データ出力規制装置。
【請求項３】
前記度数分布算出手段は、前記各グループのポリゴン数をＮ／３個とした際、Ｎ／３個の連続する整数をランダムに入れ替えた乱数配列を作成するとともに、前記乱数配列の先頭から末尾への順序を逆にした反転乱数配列を作成し、前記３つのグループのうち、１つのグループに前記乱数配列、他の１つのグループに前記反転乱数配列をそれぞれ適用してグループ内のポリゴンの順序を入れ替えた後、各グループの先頭から順に、前記ポリゴンの選択を行うことを特徴とする請求項２に記載の立体物造形用データ出力規制装置。
【請求項４】
前記度数分布算出手段は、
前記第１グループのポリゴンに前記乱数配列、前記第２グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第３グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってＮ／３個の三角形を形成し、
前記第２グループのポリゴンに前記乱数配列、前記第３グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第１グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってＮ／３個の三角形を形成し、
前記第３グループのポリゴンに前記乱数配列、前記第１グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第２グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってＮ／３個の三角形を形成することを特徴とする請求項３に記載の立体物造形用データ出力規制装置。
【請求項５】
前記度数分布算出手段は、
前記面積分布を１回算出するごとに、前記３つのグループのうち２つのグループ内のポリゴンの順序を変化させて、前記面積分布を改めて算出する処理を繰り返し行い、所定回数算出された面積分布の平均値を、照合対象の面積分布とするものであることを特徴とする請求項３または請求項４に記載の立体物造形用データ出力規制装置。
【請求項６】
前記度数分布算出手段は、
前記面積分布を１回算出するごとに、前記３つのグループのうち２つのグループ内のポリゴンの順序を変化させて、前記面積分布を改めて算出する処理を繰り返し行い、
算出直後の面積分布と、直前に得られた前記面積分布を照合し、照合結果で類似性が認められる場合に、最後に得られた面積分布を、照合対象の面積分布とするものであることを特徴とする請求項３または請求項４に記載の立体物造形用データ出力規制装置。
【請求項７】
前記度数分布算出手段は、前記面積分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、前記算出された面積に基づく値の最大値の範囲を前記所定数に均等分割した上で、前記各面積に基づく値を当該面積に基づく値に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記面積分布を算出するようにしていることを特徴とする請求項１から請求項６のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項８】
前記データベースは、前記面積分布に加えて、前記三角形の一頂点の角度の度数分布である角度分布が登録されたものであり、
前記度数分布算出手段は、前記対象モデルに対して、前記面積分布に加えて、前記三角形の一頂点の角度を算出し、算出結果である角度の度数分布である角度分布を算出するものであり、
前記度数分布照合手段は、前記面積分布に加えて、前記算出された角度分布を、前記データベースに登録されている規制モデルの角度分布と照合し、出力を規制すべきか否かを判定するものであることを特徴とする請求項１から請求項７のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項９】
前記度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記算出された角度に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項８に記載の立体物造形用データ出力規制装置。
【請求項１０】
前記度数分布算出手段は、前記要素に該当する数を計数する際、前記選択された３つのポリゴンの面積の平均値で重み付けするようにしていることを特徴とする請求項９に記載の立体物造形用データ出力規制装置。
【請求項１１】
前記度数分布算出手段は、前記各対象モデルを構成するポリゴンの面積の総和値により、前記各要素の値を除算するようにしていることを特徴とする請求項１０に記載の立体物造形用データ出力規制装置。
【請求項１２】
前記対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、
前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする請求項１から請求項１１のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１３】
前記ポリゴンは三角形状であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする請求項１２に記載の立体物造形用データ出力規制装置。
【請求項１４】
前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された面積分布を前記データベースに登録されている前記面積分布と照合するにあたり、
前記面積分布同士の相関係数を算出し、算出された相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする請求項１から請求項１３のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１５】
前記規制モデルに対して、当該規制モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する規制モデル度数分布算出装置により算出された面積分布を受信し、受信した面積分布を前記データベースに登録する登録手段を更に有することを特徴とする請求項１から請求項１４のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１６】
前記規制モデル度数分布算出装置は、前記規制モデルに対して、当該規制モデル内のポリゴンを第１グループ、第２グループ、第３グループの３つのグループに分類し、各グループから１つずつポリゴンを選択することにより、前記３つのポリゴンを選択することを特徴とする請求項１５に記載の立体物造形用データ出力規制装置。
【請求項１７】
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に有することを特徴とする請求項１から請求項１６のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１８】
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの面積分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする請求項１から請求項１７のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１９】
請求項１から請求項１８のいずれか一項に記載の立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力が許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システム。
【請求項２０】
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定するために、前記ポリゴンモデルを基に度数分布を作成する装置であって、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する度数分布算出装置。
【請求項２１】
コンピュータを、請求項１から請求項１８のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する３Ｄプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
【背景技術】
【０００２】
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する３Ｄプリンタが立体物造形装置として普及してきている。３Ｄプリンタは、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルを用いて立体物の出力を行う。３Ｄプリンタの医療応用として、医療診断で撮影されるCT/MRI画像（DICOM形式３次元ボクセルデータ）を基に、３Ｄプリンタ出力用モデリングデータ（ポリゴンモデル）を作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器（血管、骨、関節など）を作成したりする試みが始まっている。
【０００３】
３Ｄプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、３Ｄプリンタによりモノとして容易に入手可能になるという問題が発生している。
【０００４】
具体的には、あるＷＥＢサイトにて３Ｄプリンタを用いて所定のモデルの拳銃を製造できるＳＴＬ（Standard Triangulated Language）が無償で公開されている。金属製に比べて射程距離などは多少劣るが、３Ｄプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の３Ｄプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の３Ｄプリンタが普及するにあたり、３Ｄプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
【０００５】
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する手法が考えられ、その実現にあたり、ポリゴン照合技術が必要になる。しかし、ポリゴン照合には、従来、次の問題が知られている。３Ｄプリンタ出力用のポリゴンデータ（ＳＴＬ形式など）では、３次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるＣＡＤや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の３Ｄモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。
【０００６】
そこで、特許文献１のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献２では、ポリゴンモデルの重心からの面積分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献３では、３次元モデルを複数アングルに２次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３６１０２７０号公報
【特許文献２】特開２０００−２２２４２８号公報
【特許文献３】特許第５０２４７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記従来の技術を出力物規制に応用する場合、規制すべきポリゴンモデルをデータベースに登録しておき、出力要求のあったポリゴンモデルと比較する手法をとることになる。出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルは、著作権者が存在する著作物になる。
【０００９】
しかしながら、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。しかし、銃砲・刀剣などの危険物を制作した著作権者から許諾を得ることは難しい。このため、著作物の出力規制をするためのデータベースの構築が困難になるという問題がある。これに対して、ポリゴンモデルから特徴となる情報である特徴ベクトルを作成し、この特徴ベクトルによりデータベースを構築する手法が考えられる。しかし、特徴ベクトルはポリゴンモデルに比べて情報量が少ないため、出力を規制すべきか否かを的確に判定することが困難であった。
【００１０】
そこで、本発明は、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を少ない処理負荷で高速に行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明第１の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデル内の３つのポリゴンで形成される三角形の面積に基づく面積分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する度数分布算出手段と、
前記算出された面積分布を、前記データベースに登録されている規制モデルの面積分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を有することを特徴とする立体物造形用データ出力規制装置を提供する。
【００１２】
本発明第１の態様によれば、規制モデル内の３つのポリゴンで形成される三角形の面積に基づく面積分布が登録されたデータベースを備え、対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出し、算出された面積分布を、データベースに登録されている規制モデルの面積分布と照合し、出力を規制すべきか否かを判定するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を高精度の面積分布を用いて行うことが可能となる。面積分布としては、面積の平方根の度数分布が好ましいが、面積に基づく値であれば、面積の平方根以外であっても、ポリゴンモデルの特徴は反映される。
【００１３】
また、本発明第２の態様では、前記度数分布算出手段は、前記対象モデルに対して、当該対象モデル内のポリゴンを第１グループ、第２グループ、第３グループの３つのグループに分類し、各グループから１つずつポリゴンを選択することにより、前記３つのポリゴンを選択することを特徴とする。
【００１４】
本発明第２の態様によれば、対象モデル内のポリゴンを第１グループ、第２グループ、第３グループの３つのグループに分類し、各グループから１つずつポリゴンを選択するようにしたので、三角形を形成するための３つのポリゴンの組み合わせを互いに重複することなく作成することができ、効率的な処理を行うことが可能となる。グループに分類せずにランダムに選択すれば、ある確率で重複が発生する方が自然である。第２の態様では、重複が発生しないように、各グループからエッジ点を１つずつ選択している。
【００１５】
また、本発明第３の態様では、前記度数分布算出手段は、前記各グループのポリゴン数をＮ／３個とした際、Ｎ／３個の連続する整数をランダムに入れ替えた（シャッフル）乱数配列を作成するとともに、前記乱数配列の先頭から末尾への順序を逆にした反転乱数配列を作成し、前記３つのグループのうち、１つのグループに前記乱数配列、他の１つのグループに前記反転乱数配列をそれぞれ適用してグループ内のポリゴンの順序を入れ替えた後、各グループの先頭から順に、前記ポリゴンの選択を行うことを特徴とする。
【００１６】
本発明第３の態様によれば、各グループのポリゴン数Ｎ／３の連続する整数をランダムに入れ替えた乱数配列を作成するとともに、乱数配列の先頭から末尾への順序を逆にした反転乱数配列を作成し、３つのグループのうち、１つのグループに乱数配列、他の１つのグループに反転乱数配列をそれぞれ適用してグループ内のポリゴンの順序を入れ替えた後、各グループの先頭から順に、ポリゴンの選択を行うようにしたので、３つのグループのポリゴンの配列順序を、三次元空間における位置からランダムに設定することができ、ランダムかつ互いに重複しないポリゴンの組み合わせで算出された三角形の面積に基づいて、面積分布を求めることが可能となる。
【００１７】
また、本発明第４の態様では、前記度数分布算出手段は、
前記第１グループのポリゴンに前記乱数配列、前記第２グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第３グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってＮ／３個の三角形を形成し、
前記第２グループのポリゴンに前記乱数配列、前記第３グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第１グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってＮ／３個の三角形を形成し、
前記第３グループのポリゴンに前記乱数配列、前記第１グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第２グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってＮ／３個の三角形を形成することを特徴とする。
【００１８】
本発明第４の態様によれば、第１グループのポリゴンに乱数配列、第２グループのポリゴンに反転乱数配列をそれぞれ適用して順序を入れ替え、第３グループのポリゴンの順序を入れ替えずにポリゴンの選択を行ってＮ／３個の三角形を形成し、第２グループのポリゴンに乱数配列、第３グループのポリゴンに反転乱数配列をそれぞれ適用して順序を入れ替え、第１グループのポリゴンの順序を入れ替えずにポリゴンの選択を行ってＮ／３個の三角形を形成し、第３グループのポリゴンに乱数配列、第１グループのポリゴンに反転乱数配列をそれぞれ適用して順序を入れ替え、第２グループのポリゴンの順序を入れ替えずにポリゴンの選択を行ってＮ／３個の三角形を形成するようにしたので、前記ポリゴンモデルのポリゴン数Ｎと同数のトータルＮ個の三角形をランダムかつ互いに重複することなく形成することが可能となる。
【００１９】
また、本発明第５の態様では、
前記度数分布算出手段は、
前記面積分布を１回算出するごとに、前記３つのグループのうち２つのグループ内のポリゴンの順序を変化させて、前記面積分布を改めて算出する処理を繰り返し行い、所定回数算出された面積分布の平均値を、照合対象の面積分布とするものであることを特徴とする。
【００２０】
本発明第５の態様によれば、面積分布を１回算出するごとに、３つのグループのうち２つのグループ内のポリゴンの順序を変化させて、面積分布を改めて算出する処理を繰り返し行い、所定回数算出された面積分布の平均値を、照合対象の面積分布とするようにしたので、既に算出されたＮ個の三角形とは重複しない新規なＮ個の三角形を基に面積分布が算出され、面積分布が更新されるようになるため、３つのポリゴンの組み合わせである三角形のサンプルが少な過ぎることにより面積分布が特異な形態に偏らないように的確な面積分布を得ることが可能となる。
【００２１】
また、本発明第６の態様では、
前記度数分布算出手段は、
前記面積分布を１回算出するごとに、前記３つのグループのうち２つのグループ内のポリゴンの順序を変化させて、前記面積分布を改めて算出する処理を繰り返し行い、
算出直後の面積分布と、直前に得られた前記面積分布を照合し、照合結果で類似性が認められる場合に、最後に得られた面積分布を、照合対象の面積分布とするものであることを特徴とする。
【００２２】
本発明第６の態様によれば、面積分布を１回算出するごとに、３つのグループのうち２つのグループ内のポリゴンの順序を変化させて、面積分布を改めて算出する処理を繰り返し行い、算出直後の面積分布と、直前に得られた面積分布を照合し、照合結果で類似性が認められる場合に、最後に得られた面積分布を、照合対象の面積分布とするようにしたので、３つのポリゴンの組み合わせである三角形のサンプルが少な過ぎることにより面積分布が特異な形態に偏りそうか否かを自動的に判断しながら最適な面積分布を得ることが可能となる。
【００２３】
また、本発明第７の態様では、前記度数分布算出手段は、前記面積分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、前記算出された面積に基づく値の最大値の範囲を前記所定数に均等分割した上で、前記各面積に基づく値を当該面積に基づく値に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記面積分布を算出するようにしていることを特徴とする。
【００２４】
本発明第７の態様によれば、面積分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、算出された面積に基づく値の最大値の範囲を所定数に均等分割した上で、各面積に基づく値を当該面積に基づく値に基づいて所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、面積分布を算出するようにしたので、前記ポリゴンモデルのスケールに依存しない面積分布を算出することが可能となる。
【００２５】
また、本発明第８の態様では、前記データベースは、前記面積分布に加えて、前記三角形の一頂点の角度の度数分布である角度分布が登録されたものであり、
前記度数分布算出手段は、前記対象モデルに対して、前記面積分布に加えて、前記三角形の一頂点の角度を算出し、算出結果である角度の度数分布である角度分布を算出するものであり、
前記面積分布に加えて、前記算出された角度分布を、前記データベースに登録されている規制モデルの角度分布と照合し、出力を規制すべきか否かを判定するものであることを特徴とする。
【００２６】
本発明第８の態様によれば、面積分布に加えて、三角形の一頂点の角度の度数分布である角度分布がデータベースに登録されており、対象モデルに対して、面積分布に加えて、三角形の一頂点の角度を算出し、算出結果である角度の度数分布である角度分布を算出し、面積分布に加えて、算出された角度分布を、データベースに登録されている規制モデルの角度分布と照合し、出力を規制すべきか否かを判定するようにしたので、複数の観点から２つのポリゴンモデルの類似性を判定することになり、出力を規制すべきか否かの判定をより的確に行うことが可能となる。
【００２７】
また、本発明第９の態様では、前記度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記算出された角度に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
【００２８】
本発明第９の態様によれば、角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、三角形の１頂点のとり得る角度範囲である角度０度から１８０度の範囲を所定数に均等分割した上で、算出された角度に基づいて所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、角度分布を算出するようにしたので、３つのポリゴンで形成される三角形の一頂点の角度に基づいて容易に角度分布を算出することが可能となる。
【００２９】
また、本発明第１０の態様では、前記度数分布算出手段は、前記要素に該当する数を計数する際、前記選択された３つのポリゴンの面積の平均値で重み付けするようにしていることを特徴とする。
【００３０】
本発明第１０の態様によれば、面積分布または角度分布を算出するにあたり、割り当てられた要素に該当する数を計数する際、選択された３つのポリゴンの面積の平均値で重み付けするようにしたので、ポリゴン分割の精細度の差異が、面積分布または角度分布にあまり反映せず、ポリゴン分割の精細度が異なる複数のポリゴンモデルに対して同一（出力を規制すべき）であると判定させることが可能となる。
【００３１】
また、本発明第１１の態様では、前記度数分布算出手段は、前記各対象モデルを構成するポリゴンの面積の総和値（Ｓｓｕｍ）により、前記各要素の値（Ｈｄ（ｍｄ）、Ｈａ（ｍａ））を除算するようにしていることを特徴とする。
【００３２】
本発明第１１の態様によれば、面積分布または角度分布を算出するにあたり、各対象モデルを構成するポリゴンの面積の総和値により、各要素の値を除算するようにしたので、対象モデルの表面積や容積の影響を排除した面積分布または角度分布を得ることが可能となる。
【００３３】
また、本発明第１２の態様では、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする。
【００３４】
本発明第１２の態様によれば、まず、対象モデルを複数の部分対象モデルに分割し、各部分対象モデルに対して、面積分布、角度分布を算出するようにしたので、複数の部品で構成される物品を表現した対象モデルの照合の際、規制モデルと対象モデルとで互いに部品構成が異なる場合でも、適切に出力が適正か否かの判断を行うことが可能となる。
【００３５】
また、本発明第１３の態様では、前記ポリゴンは三角形状であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする。
【００３６】
本発明第１３の態様によれば、ポリゴンは三角形状であり、対象モデル分割手段は、あるポリゴンと、そのポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように分割するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分割することが可能となる。
【００３７】
また、本発明第１４の態様では、
前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された面積分布を前記データベースに登録されている前記面積分布と照合するにあたり、
前記面積分布同士の相関係数を算出し、算出された相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
【００３８】
本発明第１４の態様によれば、対象モデルから算出された面積分布をデータベースに登録されている面積分布と照合するにあたり、面積分布同士の相関係数を算出し、算出された相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしたので、対象モデルと規制モデルの特徴の照合を、迅速かつ的確に行うことが可能となる。
【００３９】
また、本発明第１５の態様では、前記規制モデルに対して、当該規制モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する規制モデル度数分布算出装置により算出された面積分布を受信し、受信した面積分布を前記データベースに登録する登録手段を更に有することを特徴とする。
【００４０】
本発明第１５の態様によれば、規制モデルに対して、規制モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する規制モデル度数分布算出装置を別途用意し、この規制モデル度数分布算出装置から規制モデルの面積分布を受信し、データベースに登録するようにしたので、データベースの更新を遠隔地から迅速に行うことが可能となる。
【００４１】
また、本発明第１６の態様では、
前記規制モデル度数分布算出装置は、前記規制モデルに対して、当該規制モデル内のポリゴンを第１グループ、第２グループ、第３グループの３つのグループに分類し、各グループから１つずつポリゴンを選択することにより、前記３つのポリゴンを選択することを特徴とする。
【００４２】
本発明第１６の態様によれば、規制モデル度数分布算出装置により規制モデルから面積分布を算出する際、規制モデル内のポリゴンを第１グループ、第２グループ、第３グループの３つのグループに分類し、各グループから１つずつポリゴンを選択することにより、３つのポリゴンを選択するようにしたので、規制モデルの面積分布を算出する際においても、三角形を形成するための３つのポリゴンの組み合わせを互いに重複することなく作成することができ、効率的な処理を行うことが可能となる。
【００４３】
また、本発明第１７の態様では、
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである（出力不適）と判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に有することを特徴とする。
【００４４】
本発明第１７の態様によれば、対象モデルを、接続された立体物造形装置に出力し、並行して実行される度数分布照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
【００４５】
また、本発明第１８の態様では、
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの面積分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする。
【００４６】
本発明第１８の態様によれば、ネットワークを介して対象モデルの面積分布を受信し、出力を規制すべきか否かの判定により得られた出力を規制すべきか否かに基づくデータを対象モデルの面積分布の送信元に送信するようにしたので、出力を規制すべきか否かの判定をクラウド型で提供することができ、出力側における処理を軽減することができる。更に、データベースをクラウド側で一元管理でき、３Ｄプリンタ等の立体物造形装置ごとに接続されている出力制御用端末内でデータベースを管理する必要がないため、常に最新のデータベースに基づいて出力を規制すべきか否かの判定を行うことが可能になる。
【００４７】
また、本発明第１９の態様では、
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
【００４８】
本発明第１９の態様によれば、立体物造形用データ出力規制装置と、立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ３Ｄプリンタ等の形態で、立体物造形システムを提供することが可能となる。
【００４９】
また、本発明第２０の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定するために、前記ポリゴンモデルを基に度数分布を作成する装置であって、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出する度数分布算出装置を提供する。
【００５０】
本発明第２０の態様によれば、出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された３つのポリゴン上の所定の点により形成される三角形の面積に基づく値を算出し、面積に基づく値の度数分布である面積分布を算出するようにしたので、ポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定するための度数分布を少ない処理負荷で高速に作成することが可能となる。
【発明の効果】
【００５１】
本発明によれば、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を少ない処理負荷で高速に行うことが可能となる。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。
【図２】本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。
【図３】本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。
【図４】ステップＳ１００の度数分布の算出処理の第１の手法の詳細を示すフローチャートである。
【図５】ステップＳ１００の度数分布の算出処理の第２の手法の詳細を示すフローチャートである。
【図６】対象モデルから得られた面積分布と角度分布における面積と角度の関係を示す図である。
【図７】ステップＳ２００の度数分布の照合処理の詳細を示すフローチャートである。
【図８】対象モデル分割処理の詳細を示すフローチャートである。
【図９】変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。
【図１０】クラウド型の立体物造形システムのハードウェア構成図である。
【図１１】クラウド型の立体物造形システムの機能ブロック図である。
【図１２】球体についての度数分布算出事例を示す図である。
【図１３】球体についての度数分布算出事例を示す図である。
【図１４】模擬拳銃についての度数分布算出事例を示す図である。
【図１５】図１２、図１３、図１４に示したポリゴンモデルの照合結果を示す図である。
【発明を実施するための形態】
【００５３】
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
＜１．装置構成＞
図１は、本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置１００は、汎用のコンピュータで実現することができ、図１に示すように、ＣＰＵ（Central Processing Unit）１と、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２と、ＣＰＵ１が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３と、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４と、３Ｄプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５と、液晶ディスプレイ等の表示デバイスである表示部６と、を備え、互いにバスを介して接続されている。
【００５４】
３Ｄプリンタ７は、汎用の３Ｄプリンタであり、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。３Ｄプリンタ７は、データ処理部７ａと出力部７ｂを有している。３Ｄプリンタ７のデータ処理部７ａは、データ入出力Ｉ／Ｆ５に接続されており、データ入出力Ｉ／Ｆ５から受け取った立体物造形用データを基に、出力部７ｂが立体物を造形するようになっている。
【００５５】
図１では、立体物造形用データ出力規制装置１００と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１００の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネルやタッチパネルを重畳させてキー入力Ｉ／Ｆ４を兼ねることも多い）も小規模ながら重複して備えている。従って、３Ｄプリンタ７自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの形態の方が多い）。すなわち、図１に示した立体物造形システムを１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【００５６】
図２は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図２において、１０は度数分布算出手段、２０は度数分布照合手段、３０は対象モデル記憶手段、４０は規制モデルデータベースである。度数分布算出手段１０は、出力対象のポリゴンモデルである対象モデルに対して、対象モデル内のポリゴンにより形成された三角形の面積と三角形の一頂点の角度を算出し、算出結果である面積に基づく値の度数分布である面積分布と、三角形の一頂点の角度の度数分布である角度分布を算出する処理を行う。度数分布照合手段２０は、対象モデルについて算出された面積分布、角度分布をそれぞれ、規制モデルデータベース４０に登録されている規制モデルの面積分布、角度分布と照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。
【００５７】
度数分布算出手段１０、度数分布照合手段２０は、ＣＰＵ１が、記憶装置３に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段３０は、出力を規制すべきか否かの判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置３により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、３Ｄプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてＳＴＬ（Standard Triangulated Language）を採用している。
【００５８】
規制モデルデータベース４０は、出力を規制すべきポリゴンモデルである規制モデルに対して２種の度数分布として算出された面積分布および角度分布を記憶して、データベース化したものであり、記憶装置３により実現される。２種の度数分布である面積分布および角度分布は、規制モデルの特徴を表現した特徴ベクトルとしての役割を果たすものとなる。すなわち、２種の度数分布により、元の規制モデルの相違を識別可能であるが、元の規制モデルを復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、２種の度数分布は、著作物としての役割は果たさないが、２つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割も果たすことになる。規制モデルデータベース４０には、面積分布および角度分布だけでなく、面積分布および角度分布の算出の基になった規制モデル自体を登録しておくことも可能であるが、通常は、著作権の問題から規制モデル自体は登録されていない。
【００５９】
図２に示した各構成手段は、現実には図１に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、ＣＰＵ等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“３Ｄプリンタ”に組み込まれたボードコンピュータも含む。
【００６０】
図１に示した記憶装置３には、ＣＰＵ１を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、ＣＰＵ１は、度数分布算出手段１０、度数分布照合手段２０としての機能を実現することになる。また、記憶装置３は、対象モデル記憶手段３０、規制モデルデータベース４０として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
【００６１】
図１に示したハードウェア構成において、コンピュータを、度数分布算出手段１０として機能させるための専用のプログラムのみを記憶装置３に実装しておくことにより、度数分布を算出するための度数分布算出装置を実現することもできる。度数分布算出装置は、対象モデル記憶手段３０から読み込んだ対象モデルを基に、２種の度数分布を算出して出力する。出力された度数分布は、別途、度数分布照合手段２０、規制モデルデータベース４０を備えた装置に入力され、照合および出力規制の判定を行うことができる。
【００６２】
＜２．処理動作＞
＜２．１．前処理＞
次に、図１、図２に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制対象とするポリゴンモデルである規制モデルについて、２種の度数分布である面積分布および角度分布を作成する。ポリゴンモデルからの面積分布および角度分布の作成については、後述する立体物造形用データ出力規制装置における処理と同様にして行うことができる。規制モデルからの面積分布および角度分布の作成は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。作成された面積分布および角度分布は、規制モデルデータベース４０に登録される。
【００６３】
出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルは、著作権者が存在する著作物になる。したがって、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。面積分布および角度分布の形式により、元のポリゴンモデルの相違を識別可能であるが、元のポリゴンモデルを復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様であり、面積分布および角度分布の形式はフィンガープリントに相当し、著作物には該当しない。そこで、本発明のように、面積分布および角度分布の形式で登録することにより、著作者の許諾を必要とせずに、規制モデルの特徴を記録したデータベースを構築することができる。
【００６４】
＜２．２．処理概要＞
次に、図１、図２に示した立体物造形用データ出力規制装置の処理動作について説明する。図３は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、度数分布算出手段１０が、ポリゴンモデルである対象モデルについて、２種の度数分布である面積分布および角度分布を算出する（ステップＳ１００）。そして、算出された対象モデルの度数分布と、規制モデルデータベース４０に登録された規制モデルの度数分布との照合を行う（ステップＳ２００）。
【００６５】
＜２．３．度数分布の算出処理＞
＜２．３．１．第１の手法＞
まず、ステップＳ１００の度数分布の算出処理について説明する。度数分布の算出処理としては、第１の手法と第２の手法の２通りが存在する。まず、第１の手法について説明する。図４は、第１の手法による度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点を（Ｘｕ（ｉ），Ｙｕ（ｉ），Ｚｕ（ｉ））と定義されたものとする。ｕは頂点番号を示しており、本実施形態では、ポリゴンが三角形状であるため、ｕ＝０，１，２の３つの値をとる。したがって、例えばＸｕ（ｉ）は、Ｘ０（ｉ）、Ｘ１（ｉ）、Ｘ２（ｉ）とも表記される。頂点を特定したポリゴンおよび法線ベクトルは、立体物造形装置である３Ｄプリンタによる出力に必要なものであり、法線ベクトルの方向が造形面の外側（材料から空中方向）を示す。法線ベクトルは、３Ｄプリンタに出力用のポリゴンモデルにおいては、各ポリゴンについて記録されているのが普通である。度数分布算出手段１０は、まず、対象モデルを構成する各ポリゴンｉの面積Ｓ（ｉ）、Ｎ個のポリゴンの面積Ｓ（ｉ）の総和である総面積Ｓｓｕｍを以下の〔数式１〕に従った処理を実行することにより算出する（ステップＳ１０１）。
【００６６】
〔数式１〕
Ｖｘ＝[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｚ２（ｉ）−Ｚ０（ｉ）]−[Ｚ１（ｉ）−Ｚ０（ｉ）][ Ｙ２（ｉ）−Ｙ０（ｉ）]
Ｖｙ＝[Ｚ１（ｉ）−Ｚ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）]−[Ｘ１（ｉ）−Ｘ０（ｉ）][ Ｚ２（ｉ）−Ｚ０（ｉ）]
Ｖｚ＝[Ｘ１（ｉ）−Ｘ０（ｉ）][Ｙ２（ｉ）−Ｙ０（ｉ）]−[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）] 
Ｓ（ｉ）＝[Ｖｘ（ｉ）2+Ｖｙ（ｉ）2+Ｖｚ（ｉ）2]1/2
Ｓｓｕｍ＝Σi=0,N-1Ｓ（ｉ）
【００６７】
上記〔数式１〕において、Σの添え字の“ｉ＝０，Ｎ−１”は、ｉが０からＮ−１の全ての整数をとる場合について、総和を求めることを示している。次に、対象モデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出する（ステップＳ１０２）。具体的には、以下の〔数式２〕に従った処理を実行することにより、各ポリゴンの平均点であるポリゴン平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））を算出する。
【００６８】
〔数式２〕
Ｘｃ（ｉ）＝｛Ｘ０（ｉ）＋Ｘ１（ｉ）＋Ｘ２（ｉ）｝／３
Ｙｃ（ｉ）＝｛Ｙ０（ｉ）＋Ｙ１（ｉ）＋Ｙ２（ｉ）｝／３
Ｚｃ（ｉ）＝｛Ｚ０（ｉ）＋Ｚ１（ｉ）＋Ｚ２（ｉ）｝／３
【００６９】
上記〔数式２〕において、Ｘ０（ｉ）、Ｘ１（ｉ）、Ｘ２（ｉ）はそれぞれＸｕ（ｉ）において、頂点番号ｕ＝０，１，２の場合を示し、Ｙ０（ｉ）、Ｙ１（ｉ）、Ｙ２（ｉ）はそれぞれＹｕ（ｉ）において、頂点番号ｕ＝０，１，２の場合を示し、Ｚ０（ｉ）、Ｚ１（ｉ）、Ｚ２（ｉ）はそれぞれＺｕ（ｉ）において、頂点番号ｕ＝０，１，２の場合を示している。上記〔数式２〕に示すように、ポリゴン平均点は、ポリゴンの各頂点の平均座標として算出される。
【００７０】
次に、ポリゴンモデルを構成するポリゴンの集合を３つのグループに分け、各グループのポリゴンの順序を入れ替える（ステップＳ１０３）。３つのグループへの分け方としては、同数に分けることができれば、どのような手法を用いてもよい。本実施形態では、ポリゴンモデルのデータ配列における順序に基づき、３で除して余りが０となる順番のポリゴンの第１グループと、３で除して余りが１となる順番のポリゴンの第２グループと、３で除して余りが２となる順番のポリゴンの第３グループに分けている。これにより、ポリゴンモデルを構成するＮ個のポリゴンは、Ｎ／３個ずつのグループに分けられることになる。各グループのポリゴン数が同数になるように、元のポリゴン数Ｎの３の剰余が２の場合、先頭のポリゴン０を、最後尾のポリゴンＮ＝ポリゴン０として重複してもたせ、全ポリゴン数がＮ＋１個になるように修正する。また、元のポリゴン数Ｎの３の剰余が１の場合、先頭のポリゴン０および２番目のポリゴン１を、最後尾から２番目のポリゴンＮ＝ポリゴン０、最後尾のポリゴンＮ＋１＝ポリゴン１として重複してもたせ、全ポリゴン数がＮ＋２個になるように修正する。各グループのポリゴン数が同数になるように、ポリゴンを重複して追加し、全ポリゴン数がＮ＋１個またはＮ＋２個となった場合であっても、以下では、全ポリゴン数をＮ個として置き換えて説明していく。
【００７１】
３で除した余りによりグループ分けすることにより、３つの配列Ｇ１（ｈ）＝３ｈ、Ｇ２（ｈ）＝３ｈ＋１、Ｇ３（ｈ）＝３ｈ＋２（ｈ＝０，・・・，Ｎ／３−１）が得られる。次に、各グループのポリゴンの配列の順序を入れ替える。順序の入れ替えは無作為に行われる。すなわち、シャッフルされる。ポリゴンの配列の順序を入れ替えることができれば、どのような手法を用いてもよいが、本実施形態では、以下のような手法によりポリゴンの配列の順序を入れ替えている。まず、３種類の乱数配列Ｒ１（ｋ）、Ｒ２（ｋ）、Ｒ３（ｋ）を作成する。具体的には、ｋ＝０，・・・，Ｎ／３−１について、Ｒ１（ｋ）＝ｋに初期化する。続いて、０≦Ｒｎｄ（ｋ）＜１の範囲で実数値の一様乱数をＮ／３回発生させ、１回発生させるごとに、ｐｐ＝Ｒｎｄ（ｋ）×Ｎ／３なる演算で０≦ｐｐ≦Ｎ／３の整数値を算出し、Ｒ１（ｋ）の値とＲ１（ｐｐ）の値を交換する処理をＮ／３回繰り返す。繰り返しの結果、Ｎ／３個の連続する整数をランダムに入れ替えた乱数配列Ｒ１（ｋ）が得られる。これにより、例えば、第１グループのポリゴンの配列Ｇ１（ｈ）に対して、ｈ＝Ｒ１（ｋ）で与え、Ｇ１（Ｒ１（ｋ））＝３Ｒ１（ｋ）（ｋ＝０，・・・，Ｎｅ／３−１）のように、順序が入れ替えられた配列を得ることができる。第２の乱数配列Ｒ２（ｋ）に対しては、Ｒ２（ｋ）＝Ｒ１（Ｎ／３−１−ｋ）で与える。すなわち、第１の乱数配列Ｒ１（ｋ）の先頭から末尾への順序を逆にしたものが乱数配列Ｒ２（ｋ）である。乱数配列Ｒ１（ｋ）、乱数配列Ｒ２（ｋ）は、互いに他方の反転乱数配列となる。また、乱数配列Ｒ３（ｋ）＝ｋとし乱数にせず、ｋ＝０，・・・，Ｎ／３−１なるシーケンシャルな値に設定する。このように、ポリゴンの配列の順序を入れ替えることにより、各グループのポリゴンの配列順序を、３次元空間である対象モデル内のポリゴンからランダムに設定することができ、ランダムなポリゴン上の点の組み合わせで算出された三角形の面積に基づく値（面積の平方根）および三角形の角度に基づいて、面積分布および角度分布を求めることが可能となる。
【００７２】
このように３つのグループにポリゴンを分類するのは、３つのポリゴンをランダムに選択して三角形を作成する際、互いに重複しないようにするためである。ポリゴンモデルを構成する全てのポリゴンの組み合わせで三角形を順次構成することも可能であるが、ポリゴン数が多いと組み合わせが膨大な数になり実用的ではない。また、グループ分けをせず、ポリゴンモデルを構成する全てのポリゴンよりランダムに３つのポリゴンを選択して三角形を構成する方法も考えられるが、ある確率で同一の三角形が発生し、ランダムに抽出される三角形のサンプル数が十分に多くないと、偏った度数分布が算出される可能性がある。本実施形態のように、３つのグループに分類し、各グループから１つずつポリゴンを選択して計３つ選択するようにすることにより、三角形を形成するための３つのポリゴンを互いに重複することなくランダム性をもたせながら効率的に選択することが可能になる。
【００７３】
次に、初期設定を行う（ステップＳ１０４）。具体的には、算出する面積分布、角度分布の初期化、ループカウンタの初期化を行う。本実施形態で算出される面積分布は、ポリゴンの面積を加重した、三角形の面積に基づく値の分布であり、要素数をＭＤとし、各要素ｍｄ（ｍｄ＝０，・・・，ＭＤ−１）の度数をＨｄ（ｍｄ）と表す。Ｈｄ（ｍｄ）は、所定数ＭＤの要素で構成される１次元配列である。度数分布算出手段１０は、初期値をＨｄ（ｍｄ）＝０と設定する。本実施形態で算出される角度分布は、ポリゴンの面積を加重した、三角形の角度の分布であり、要素数をＭＡとし、各要素ｍａ（ｍａ＝０，・・・，ＭＡ−１）の度数をＨａ（ｍａ）と表す。要素数ＭＡは、上記要素数ＭＤと同一であってもよい。Ｈａ（ｍａ）は、所定数ＭＡの要素で構成される１次元配列である。度数分布算出手段１０は、初期値をＨａ（ｍａ）＝０と設定する。ループカウンタＬＣについては、初期値ＬＣ＝０と設定する。
【００７４】
次に、度数分布算出手段１０は、３つのグループ間における各ポリゴン平均点を頂点とする三角形の作成を行う（ステップＳ１０５）。３つのポリゴンを用いて三角形を作成する際、ポリゴン平均点に限らず、ポリゴン上の点としては、様々な点を用いることができる。しかし、ポリゴン平均点が、１つのポリゴンを代表する点として好ましいため、本実施形態では、ポリゴン平均点を頂点として三角形を作成する。ポリゴン上の点とは、ポリゴンを構成する頂点を全て通る面上であって、これらの頂点に囲まれる範囲に位置する点を意味する。ステップＳ１０５においては、三角形の数がポリゴン総数Ｎと同一になるように、グループ間の組み合わせを変えて３通り作成する。具体的には、第１グループのｈ（ｈ＝０，・・・，Ｎ／３−１）番目のポリゴンＧ１（ｈ）に対して乱数配列Ｒ１（ｋ）によりランダムに順番を入れ替えたＧ１（Ｒ１（ｋ））の平均点（Ｘｃ（Ｇ１（Ｒ１（ｋ））），Ｙｃ（Ｇ１（Ｒ１（ｋ））），Ｚｃ（Ｇ１（Ｒ１（ｋ））））、第２グループの対応する順序ｈのポリゴンＧ２（ｈ）に対して乱数配列Ｒ２（ｋ）によりランダムに順番を入れ替えたＧ２（Ｒ２（ｋ））の平均点（Ｘｃ（Ｇ２（Ｒ２（ｋ））），Ｙｃ（Ｇ２（Ｒ２（ｋ））），Ｚｃ（Ｇ２（Ｒ２（ｋ））））、第３グループの対応する順序ｈのポリゴンＧ３（ｈ）に対して乱数配列Ｒ３（ｋ）によりランダムに順番を入れ替えたＧ３（Ｒ３（ｋ））の平均点（Ｘｃ（Ｇ３（Ｒ３（ｋ））），Ｙｃ（Ｇ３（Ｒ３（ｋ））），Ｚｃ（Ｇ３（Ｒ３（ｋ））））の３点を頂点とする第１三角形をＮ／３個作成する。
【００７５】
同様に、第２グループのｈ番目のポリゴンＧ２（ｈ）に対して乱数配列Ｒ１（ｋ）によりランダムに順番を入れ替えたＧ２（Ｒ１（ｋ））の平均点（Ｘｃ（Ｇ２（Ｒ１（ｋ））），Ｙｃ（Ｇ２（Ｒ１（ｋ））），Ｚｃ（Ｇ２（Ｒ１（ｋ））））、第３グループの対応する順序ｈのポリゴンＧ３（ｈ）に対して乱数配列Ｒ２（ｋ）によりランダムに順番を入れ替えたＧ３（Ｒ２（ｋ））の平均点（Ｘｃ（Ｇ３（Ｒ２（ｋ））），Ｙｃ（Ｇ３（Ｒ２（ｋ））），Ｚｃ（Ｇ３（Ｒ２（ｋ））））、第１グループの対応する順序ｈのポリゴンＧ１（ｈ）に対して乱数配列Ｒ３（ｋ）によりランダムに順番を入れ替えたＧ１（Ｒ３（ｋ））の平均点（Ｘｃ（Ｇ１（Ｒ３（ｋ））），Ｙｃ（Ｇ１（Ｒ３（ｋ））），Ｚｃ（Ｇ１（Ｒ３（ｋ））））の３点を頂点とする第２三角形をＮ／３個作成する。
【００７６】
さらに、第３グループのｈ番目のポリゴンＧ３（ｈ）に対して乱数配列Ｒ１（ｋ）によりランダムに順番を入れ替えたＧ３（Ｒ１（ｋ））の平均点（Ｘｃ（Ｇ３（Ｒ１（ｋ））），Ｙｃ（Ｇ３（Ｒ１（ｋ））），Ｚｃ（Ｇ３（Ｒ１（ｋ））））、第１グループの対応する順序ｈのポリゴンＧ１（ｈ）に対して乱数配列Ｒ２（ｋ）によりランダムに順番を入れ替えたＧ１（Ｒ２（ｋ））の平均点（Ｘｃ（Ｇ１（Ｒ２（ｋ））），Ｙｃ（Ｇ１（Ｒ２（ｋ））），Ｚｃ（Ｇ１（Ｒ２（ｋ））））、第２グループの対応する順序ｈのポリゴンＧ２（ｈ）に対して乱数配列Ｒ３（ｋ）によりランダムに順番を入れ替えたＧ２（Ｒ３（ｋ））の平均点（Ｘｃ（Ｇ２（Ｒ３（ｋ））），Ｙｃ（Ｇ２（Ｒ３（ｋ））），Ｚｃ（Ｇ２（Ｒ３（ｋ））））の３点を頂点とする第３三角形をＮ／３個作成する。
【００７７】
次に、度数分布算出手段１０は、ポリゴン平均点を頂点とする三角形の面積の平方根の算出を行う（ステップＳ１０６）。具体的には、以下の〔数式３〕に従った処理を実行することにより、ｋ＝０，・・・，Ｎ／３−１の範囲で第１三角形の面積の平方根Ｄ（ｋ）を算出する。
【００７８】
〔数式３〕
Ｄｘ（ｋ）＝[Ｙｃ（Ｇ２（Ｒ２（ｋ）））−Ｙｃ（Ｇ１（Ｒ１（ｋ）））][Ｚｃ（Ｇ３（Ｒ３（ｋ）））−Ｚｃ（Ｇ１（Ｒ１（ｋ）））]−[Ｚｃ（Ｇ２（Ｒ２（ｋ）））−Ｚｃ（Ｇ１（Ｒ１（ｋ）））][Ｙｃ（Ｇ３（Ｒ３（ｋ）））−Ｙｃ（Ｇ１（Ｒ１（ｋ）））]
Ｄｙ（ｋ）＝[Ｚｃ（Ｇ２（Ｒ２（ｋ）））−Ｚｃ（Ｇ１（Ｒ１（ｋ）））][Ｘｃ（Ｇ３（Ｒ３（ｋ）））−Ｘｃ（Ｇ１（Ｒ１（ｋ）））]−[Ｘｃ（Ｇ２（Ｒ２（ｋ）））−Ｘｃ（Ｇ１（Ｒ１（ｋ）））][Ｚｃ（Ｇ３（Ｒ３（ｋ）））−Ｚｃ（Ｇ１（Ｒ１（ｋ）））]
Ｄｚ（ｋ）＝[Ｘｃ（Ｇ２（Ｒ２（ｋ）））−Ｘｃ（Ｇ１（Ｒ１（ｋ）））][Ｙｃ（Ｇ３（Ｒ３（ｋ）））−Ｙｃ（Ｇ１（Ｒ１（ｋ）））]−[Ｙｃ（Ｇ２（Ｒ２（ｋ）））−Ｙｃ（Ｇ１（Ｒ１（ｋ）））][Ｘｃ（Ｇ３（Ｒ３（ｋ）））−Ｘｃ（Ｇ１（Ｒ１（ｋ）））]
Ｄ（ｋ）＝[Ｄｘ（ｋ）2＋Ｄｙ（ｋ）2＋Ｄｚ（ｋ）2]1/4
【００７９】
同様に、以下の〔数式４〕に従った処理を実行することにより、ｋ＝０，・・・，Ｎ／３−１の範囲で第２三角形の面積の平方根Ｄ（ｋ）を算出する。
【００８０】
〔数式４〕
Ｄｘ（ｋ）＝[Ｙｃ（Ｇ２（Ｒ１（ｋ）））−Ｙｃ（Ｇ１（Ｒ３（ｋ）））][Ｚｃ（Ｇ３（Ｒ２（ｋ）））−Ｚｃ（Ｇ１（Ｒ３（ｋ）））]−[Ｚｃ（Ｇ２（Ｒ１（ｋ）））−Ｚｃ（Ｇ１（Ｒ３（ｋ）））][Ｙｃ（Ｇ３（Ｒ２（ｋ）））−Ｙｃ（Ｇ１（Ｒ３（ｋ）））]
Ｄｙ（ｋ）＝[Ｚｃ（Ｇ２（Ｒ１（ｋ）））−Ｚｃ（Ｇ１（Ｒ３（ｋ）））][Ｘｃ（Ｇ３（Ｒ２（ｋ）））−Ｘｃ（Ｇ１（Ｒ３（ｋ）））]−[Ｘｃ（Ｇ２（Ｒ１（ｋ）））−Ｘｃ（Ｇ１（Ｒ３（ｋ）））][Ｚｃ（Ｇ３（Ｒ２（ｋ）））−Ｚｃ（Ｇ１（Ｒ３（ｋ）））]
Ｄｚ（ｋ）＝[Ｘｃ（Ｇ２（Ｒ１（ｋ）））−Ｘｃ（Ｇ１（Ｒ３（ｋ）））][Ｙｃ（Ｇ３（Ｒ２（ｋ）））−Ｙｃ（Ｇ１（Ｒ３（ｋ）））]−[Ｙｃ（Ｇ２（Ｒ１（ｋ）））−Ｙｃ（Ｇ１（Ｒ３（ｋ）））][Ｘｃ（Ｇ３（Ｒ２（ｋ）））−Ｘｃ（Ｇ１（Ｒ３（ｋ）））]
Ｄ（ｋ）＝[Ｄｘ（ｋ）2＋Ｄｙ（ｋ）2＋Ｄｚ（ｋ）2]1/4
【００８１】
同様に、以下の〔数式５〕に従った処理を実行することにより、ｋ＝０，・・・，Ｎ／３−１の範囲で第３三角形の面積の平方根Ｄ（ｋ）を算出する。
【００８２】
〔数式５〕
Ｄｘ（ｋ）＝[Ｙｃ（Ｇ２（Ｒ３（ｋ）））−Ｙｃ（Ｇ１（Ｒ２（ｋ）））][Ｚｃ（Ｇ３（Ｒ１（ｋ）））−Ｚｃ（Ｇ１（Ｒ２（ｋ）））]−[Ｚｃ（Ｇ２（Ｒ３（ｋ）））−Ｚｃ（Ｇ１（Ｒ２（ｋ）））][Ｙｃ（Ｇ３（Ｒ１（ｋ）））−Ｙｃ（Ｇ１（Ｒ２（ｋ）））]
Ｄｙ（ｋ）＝[Ｚｃ（Ｇ２（Ｒ３（ｋ）））−Ｚｃ（Ｇ１（Ｒ２（ｋ）））][Ｘｃ（Ｇ３（Ｒ１（ｋ）））−Ｘｃ（Ｇ１（Ｒ２（ｋ）））]−[Ｘｃ（Ｇ２（Ｒ３（ｋ）））−Ｘｃ（Ｇ１（Ｒ２（ｋ）））][Ｚｃ（Ｇ３（Ｒ１（ｋ）））−Ｚｃ（Ｇ１（Ｒ２（ｋ）））]
Ｄｚ（ｋ）＝[Ｘｃ（Ｇ２（Ｒ３（ｋ）））−Ｘｃ（Ｇ１（Ｒ２（ｋ）））][Ｙｃ（Ｇ３（Ｒ１（ｋ）））−Ｙｃ（Ｇ１（Ｒ２（ｋ）））]−[Ｙｃ（Ｇ２（Ｒ３（ｋ）））−Ｙｃ（Ｇ１（Ｒ２（ｋ）））][Ｘｃ（Ｇ３（Ｒ１（ｋ）））−Ｘｃ（Ｇ１（Ｒ２（ｋ）））]
Ｄ（ｋ）＝[Ｄｘ（ｋ）2＋Ｄｙ（ｋ）2＋Ｄｚ（ｋ）2]1/4
【００８３】
上記〔数式３〕により算出されたＮ／３個の第１三角形の面積の平方根と、上記〔数式４〕により算出されたＮ／３個の第２三角形の面積の平方根と、上記〔数式５〕により算出されたＮ／３個の第３三角形の面積の平方根の３種のＮ／３個の配列Ｄ（ｋ）に対し、上記〔数式４〕により算出されたＮ／３個の配列にはＮ／３だけオフセットを加え、上記〔数式５〕により算出されたＮ／３個の配列には２Ｎ／３だけオフセットを加えた上で、通し番号ｉでまとめて、その範囲をｉ＝０，・・・，Ｎ−１に設定し直してＮ個の三角形の面積の平方根である面積平方根Ｄ（ｉ）（ｉ＝０，・・・，Ｎ−１を得る。本実施形態では、面積分布と称して、三角形の面積値そのままで度数分布を算出せず、面積の平方根を算出して面積の平方根に基づいて度数分布を算出しているが、三角形の面積に基づく値であれば、必ずしも平方根でなくてもよい。ただし、三角形は、ポリゴン平均点を結んだものであるため、三角形の面積の平方根は、三角形の頂点である平均点を有する３つのポリゴン間の距離と相関の高い値となる。このため、ポリゴンモデル同士を照合する際に、的確な指標となる。実験の結果、面積値そのままでは度数分布が特定の箇所に偏りがちで形状の差異が反映されにくく、平方根をとると度数分布が広がり形状の差異が反映されやすい傾向があった。そして、ｉ＝０，・・・，Ｎ−１のＮ個の面積平方根Ｄ（ｉ）のうち最大のものを最大面積平方根Ｄｍａｘとする。
【００８４】
次に、度数分布算出手段１０は、三角形の一頂点の角度の算出を行う（ステップＳ１０７）。三角形の一頂点としては、いずれのグループのポリゴン平均点を用いてもよいが、ここでは、第１グループのポリゴン平均点を用いる。したがって、第１三角形の場合、第１グループのポリゴン平均点から第２グループのポリゴン平均点への辺と、第１グループのポリゴン平均点から第３グループのポリゴン平均点への辺と、のなす角度となる。具体的には、以下の〔数式６〕に従った処理を実行することにより、第１三角形の一頂点の角度Ａ（ｋ）を算出する。
【００８５】
〔数式６〕
ｄ１２ｘ＝Ｘｃ（Ｇ２（Ｒ２（ｋ））−Ｘｃ（Ｇ１（Ｒ１（ｋ））
ｄ１２ｙ＝Ｙｃ（Ｇ２（Ｒ２（ｋ））−Ｙｃ（Ｇ１（Ｒ１（ｋ））
ｄ１２ｚ＝Ｚｃ（Ｇ２（Ｒ２（ｋ））−Ｚｃ（Ｇ１（Ｒ１（ｋ））
ｄ１３ｘ＝Ｘｃ（Ｇ３（Ｒ３（ｋ））−Ｘｃ（Ｇ１（Ｒ１（ｋ））
ｄ１３ｙ＝Ｙｃ（Ｇ３（Ｒ３（ｋ））−Ｙｃ（Ｇ１（Ｒ１（ｋ））
ｄ１３ｚ＝Ｚｃ（Ｇ３（Ｒ３（ｋ））−Ｚｃ（Ｇ１（Ｒ１（ｋ））
ｄ１２＝[ｄ１２ｘ2＋ｄ１２ｙ2＋ｄ１２ｚ2] 1/2
ｄ１３＝[ｄ１３ｘ2＋ｄ１３ｙ2＋ｄ１３ｚ2] 1/2
Ａ（ｋ）＝[ｃｏｓ-1[（ｄ１２ｘ・ｄ１３ｘ＋ｄ１２ｙ・ｄ１３ｙ＋ｄ１２ｚ・ｄ１３ｚ）／（ｄ１２・ｄ１３）］・１８０／π
【００８６】
同様に、以下の〔数式７〕に従った処理を実行することにより、第２三角形の一頂点の角度Ａ（ｋ）を算出する。第２三角形においても、上記の〔数式６〕同様に第１ポリゴングループに属するポリゴン平均点を採用する。
【００８７】
〔数式７〕
ｄ１２ｘ＝Ｘｃ（Ｇ２（Ｒ１（ｋ））−Ｘｃ（Ｇ１（Ｒ３（ｋ））
ｄ１２ｙ＝Ｙｃ（Ｇ２（Ｒ１（ｋ））−Ｙｃ（Ｇ１（Ｒ３（ｋ））
ｄ１２ｚ＝Ｚｃ（Ｇ２（Ｒ１（ｋ））−Ｚｃ（Ｇ１（Ｒ３（ｋ））
ｄ１３ｘ＝Ｘｃ（Ｇ３（Ｒ２（ｋ））−Ｘｃ（Ｇ１（Ｒ３（ｋ））
ｄ１３ｙ＝Ｙｃ（Ｇ３（Ｒ２（ｋ））−Ｙｃ（Ｇ１（Ｒ３（ｋ））
ｄ１３ｚ＝Ｚｃ（Ｇ３（Ｒ２（ｋ））−Ｚｃ（Ｇ１（Ｒ３（ｋ））
ｄ１２＝[ｄ１２ｘ2＋ｄ１２ｙ2＋ｄ１２ｚ2] 1/2
ｄ１３＝[ｄ１３ｘ2＋ｄ１３ｙ2＋ｄ１３ｚ2] 1/2
Ａ（ｋ）＝[ｃｏｓ-1[（ｄ１２ｘ・ｄ１３ｘ＋ｄ１２ｙ・ｄ１３ｙ＋ｄ１２ｚ・ｄ１３ｚ）／（ｄ１２・ｄ１３）］・１８０／π
【００８８】
さらに、以下の〔数式８〕に従った処理を実行することにより、第３三角形の一頂点の角度Ａ（ｋ）を算出する。第３三角形においても、上記の〔数式６〕同様に第１ポリゴングループに属するポリゴン平均点を採用する。
【００８９】
〔数式８〕
ｄ１２ｘ＝Ｘｃ（Ｇ２（Ｒ３（ｋ））−Ｘｃ（Ｇ１（Ｒ２（ｋ））
ｄ１２ｙ＝Ｙｃ（Ｇ２（Ｒ３（ｋ））−Ｙｃ（Ｇ１（Ｒ２（ｋ））
ｄ１２ｚ＝Ｚｃ（Ｇ２（Ｒ３（ｋ））−Ｚｃ（Ｇ１（Ｒ２（ｋ））
ｄ１３ｘ＝Ｘｃ（Ｇ３（Ｒ１（ｋ））−Ｘｃ（Ｇ１（Ｒ２（ｋ））
ｄ１３ｙ＝Ｙｃ（Ｇ３（Ｒ１（ｋ））−Ｙｃ（Ｇ１（Ｒ２（ｋ））
ｄ１３ｚ＝Ｚｃ（Ｇ３（Ｒ１（ｋ））−Ｚｃ（Ｇ１（Ｒ２（ｋ））
ｄ１２＝[ｄ１２ｘ2＋ｄ１２ｙ2＋ｄ１２ｚ2] 1/2
ｄ１３＝[ｄ１３ｘ2＋ｄ１３ｙ2＋ｄ１３ｚ2] 1/2
Ａ（ｋ）＝[ｃｏｓ-1[（ｄ１２ｘ・ｄ１３ｘ＋ｄ１２ｙ・ｄ１３ｙ＋ｄ１２ｚ・ｄ１３ｚ）／（ｄ１２・ｄ１３）］・１８０／π
【００９０】
上記〔数式６〕により算出されたＮ／３個の第１三角形の一頂点の角度Ａ（ｋ）と、上記〔数式７〕により算出されたＮ／３個の第２三角形の一頂点の角度Ａ（ｋ）と、上記〔数式８〕により算出されたＮ／３個の第３三角形の一頂点の角度Ａ（ｋ）の３種のＮ／３個の配列Ａ（ｋ）に対し、上記〔数式７〕により算出されたＮ／３個の配列にはＮ／３だけオフセットを加え、上記〔数式８〕により算出されたＮ／３個の配列には２Ｎ／３だけオフセットを加えた上で、通し番号ｉの範囲をｉ＝０，・・・，Ｎ−１に設定し直してＮ個の三角形の一頂点の角度Ａ（ｉ）（ｉ＝０，・・・，Ｎ−１を得る。
【００９１】
上記〔数式６〕〔数式７〕〔数式８〕においては、単位をラジアンから度に変更するため［］で括られた部分に１８０／πを乗じている。したがって、Ａ（ｉ）は、０〜１８０の値をとることになる。
【００９２】
次に、度数分布算出手段１０は、三角形の面積の平方根の度数分布である面積分布を算出する（ステップＳ１０８）。具体的には、以下の〔数式９〕に従った処理を実行することにより、要素ｍｄの度数Ｈｄ（ｍｄ）を、ｉ＝０，・・・，Ｎ−１について、算出する。
【００９３】
〔数式９〕
Ｄｍａｘ×ｍｄ／ＭＤ≦Ｄ（ｉ）＜Ｄｍａｘ×（ｍｄ＋１）／ＭＤならば、
Ｈｄ（ｍｄ）←Ｈｄ（ｍｄ）＋Ｓ
０≦ｉ≦Ｎ／３−１の場合
Ｓ＝[Ｓ（Ｇ１（Ｒ１（ｉ）））＋Ｓ（Ｇ２（Ｒ２（ｉ）））＋Ｓ（Ｇ３（Ｒ３（ｉ）））]／３
Ｎ／３≦ｉ≦２Ｎ／３−１の場合
Ｓ＝[Ｓ（Ｇ２（Ｒ１（ｉ）））＋Ｓ（Ｇ３（Ｒ２（ｉ）））＋Ｓ（Ｇ１（Ｒ３（ｉ）））] ／３
２Ｎ／３≦ｉ≦Ｎ−１の場合
Ｓ＝[Ｓ（Ｇ３（Ｒ１（ｉ）））＋Ｓ（Ｇ１（Ｒ２（ｉ）））＋Ｓ（Ｇ２（Ｒ３（ｉ）））]／３
【００９４】
上記〔数式９〕は、三角形の面積平方根Ｄ（ｉ）が、最大面積平方根Ｄｍａｘにｍｄ／ＭＤを乗じた値以上で、（ｍｄ＋１）／ＭＤを乗じた値より小さい場合に、三角形の頂点をポリゴン平均点として有する３つのポリゴンの平均面積ＳをＨｄ（ｍｄ）に加算することを意味している。
【００９５】
上記〔数式９〕に従った処理を、Ｎ個の三角形について実行することにより、面積分布Ｈｄ（ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）が算出される。各要素には、単なる頻度ではなく、ポリゴンの面積が加算されているため、面積分布Ｈｄ（ｍｄ）は、面積加重の面積分布を示すことになる。面積でなく単に１を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない面積分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、面積分布に顕著な差が生じてしまう。そこで、本実施形態では、面積分布算出時にポリゴンの面積を加算するようにしている。
【００９６】
次に、度数分布算出手段１０は、各三角形の一頂点の角度分布を算出する（ステップＳ１０９）。具体的には、以下の〔数式１０〕に従った処理を実行することにより、要素ｍａの度数Ｈａ（ｍａ）を、ｉ＝０，・・・，Ｎ−１について、算出する。
【００９７】
〔数式１０〕
１８０×ｍａ／ＭＡ≦Ａ（ｉ）＜１８０×（ｍａ＋１）／ＭＡならば、
Ｈａ（ｍａ）←Ｈａ（ｍａ）＋Ｓ
【００９８】
上記〔数式１０〕は、三角形の一頂点の角度Ａ（ｉ）が、１８０にｍａ／ＭＡを乗じた値以上で、（ｍａ＋１）／ＭＡを乗じた値より小さい場合に、三角形の頂点を平均点として有する３つのポリゴンの平均面積ＳをＨａ（ｍａ）に加算することを意味している。３つのポリゴンの平均面積Ｓについては、上記〔数式９〕に従った処理により算出したものを用いる。
【００９９】
上記〔数式１０〕に従った処理を、Ｎ個の三角形について実行することにより、角度分布Ｈａ（ｍａ）（ｍａ＝０，・・・，ＭＡ−１）が算出される。各要素には、単なる頻度ではなく、ポリゴンの面積が加算されているため、角度分布Ｈａ（ｍａ）は、面積加重の角度分布を示すことになる。面積でなく単に１を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない角度分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、角度分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布算出時にポリゴンの面積を加算するようにしている。
【０１００】
面積分布および角度分布が算出されたら、次に、ループカウンタＬＣが規定値以上であるかどうかを判定する（ステップＳ１１０）。判定の結果、ループカウンタＬＣが規定値未満である場合は、２つのグループの配列を１だけずらす処理を行う（ステップＳ１１１）。例えば、第１グループの順序を固定する場合、本実施形態では、以下の〔数式１１〕に従った処理を実行することにより、第２、第３グループの２つのグループに用いる乱数配列Ｒ２（ｋ）、乱数配列Ｒ３（ｋ）の順序をずらしている。
【０１０１】
〔数式１１〕
Ｒｏ＝Ｒ２（０）、Ｒｏ３＝Ｒ３（０）とし、
ｋ＝０，・・・，Ｎ／３−２に対して、
Ｒ２（ｋ）←Ｒ２（ｋ＋１）、Ｒ３（ｋ）←Ｒ３（ｋ＋１）を繰り返し、
Ｒ２（Ｎ／３−１）＝Ｒｏ、Ｒ３（Ｎ／３−１）＝Ｒｏ３とする。
【０１０２】
第２グループの順序を固定する場合、第３グループの順序を固定する場合については、グループの関係を変えて、〔数式１１〕に従った処理を実行することにより行われる。併せて、ループカウンタＬＣをインクリメント（ＬＣ←ＬＣ＋１）する処理も行う。既に算出された度数分布が存在する場合は、その度数分布の各要素について、各要素に該当する度数の値を加算する。ステップＳ１１１において、２つのグループの配列をずらした後、２つのグループともう１つのグループのポリゴンの組み合わせを１回目とは変えて、ステップＳ１０５〜ステップＳ１０９の処理を実行し、面積分布および角度分布を算出する。ステップＳ１０５〜ステップＳ１０９の面積分布および角度分布の算出処理は、規定値として設定された所定回数だけ繰り返される。規定値としては、適宜設定することが可能であるが、ポリゴン総数Ｎ＝１００００の場合、１０程度である。
【０１０３】
ループカウンタＬＣが規定値に達した場合、ステップＳ１１０において、ループカウンタＬＣが規定値以上であると判定されるため、２種の度数分布の正規化を行う（ステップＳ１１２）。
【０１０４】
具体的には、上記〔数式９〕で算出されたＨｄ（ｍｄ）に、更に１００／｛Ｓｓｕｍ×ＬＣ｝を乗じてＨｄ（ｍｄ）と置き換えることにより、単位を面積率［％］に正規化している。すなわち、ポリゴンの面積の総和値Ｓｓｕｍとループ回数ＬＣの乗算値により、各要素の値Ｈｄ（ｍｄ）を除算している。これにより、ポリゴンの面積の総和値が異なる、即ちスケールが異なるポリゴンモデルであっても同一の面積分布に変換され、同一形状のポリゴンモデルとして判定が可能になる。また、ループ回数ＬＣで除算していることになるため、ループ回数分の平均値が得られることになる。
【０１０５】
また、上記〔数式１０〕で算出されたＨａ（ｍａ）に、更に１００／｛Ｓｓｕｍ×ＬＣ｝を乗じてＨａ（ｍａ）と置き換えることにより、単位を面積率［％］に正規化している。すなわち、ポリゴンの面積の総和値Ｓｓｕｍとループ回数ＬＣの乗算値により、各要素の値Ｈａ（ｍａ）を除算している。これにより、ポリゴンの面積の総和値が異なる、即ちスケールが異なるポリゴンモデルであっても同一の角度分布に変換され、同一形状のポリゴンモデルとして判定が可能になる。また、ループ回数ＬＣで除算していることになるため、ループ回数分の平均値が得られることになる。
【０１０６】
本実施形態では、三角形の面積の平方根と、三角形の一頂点の角度の算出に際し、ポリゴンの平均点を３つの頂点とする三角形を作成するようにした。三角形の頂点は、ポリゴンの各頂点の平均点とすることが好ましいが、平均点以外のポリゴン上の所定の点同士を結んだ三角形とすることも可能である。ポリゴン上の所定の点としては、例えば、ポリゴンを構成するいずれかの頂点、ポリゴンの重心点、ポリゴンの頂点のｘｙｚ座標別の最大値と最小値の丁度中間となる値をもつ点、等を用いることができる。
【０１０７】
＜２．３．２．第２の手法＞
次に、第２の手法について説明する。図５は、第２の手法による度数分布の算出処理の詳細を示すフローチャートである。第１の手法と同様の処理については、同一符号を付して説明を省略する。第２の手法においても、ステップＳ１０１〜ステップＳ１０９までは、第１の手法と同様に行われる。そして、第１の手法のステップＳ１１２と同様に、２種の度数分布の正規化を行う（ステップＳ１１２）。第２の手法では、２種の度数分布の算出後、強制的に正規化を行う。具体的には、上記〔数式９〕で算出されたＨｄ（ｍｄ）に、更に１００／Ｓｓｕｍを乗じてＨｄ（ｍｄ）と置き換えることにより、単位を面積率［％］に正規化している。また、上記〔数式１０〕で算出されたＨａ（ｍａ）に、更に１００／Ｓｓｕｍを乗じてＨａ（ｍａ）と置き換えることにより、単位を面積率［％］に正規化している。第１の手法とは異なり、ループカウンタＬＣによる除算は行わない。
【０１０８】
面積分布および角度分布の正規化が行われたら、次に、ループカウンタＬＣが１以上であるかどうかを判定する（ステップＳ１２１）。これは、度数分布の算出が初回であるか否かの判定を行っている。ループカウンタＬＣが１未満である場合は、度数分布の算出が初回であることを意味するので、２つのグループの配列を１だけずらす処理を行う（ステップＳ１１１）。具体的には、第１の手法のステップＳ１１１と同様に、上記〔数式１１〕に従った処理を実行することにより、配列Ｒ１（ｋ）、Ｒ２（ｋ）、Ｒ３（ｋ）のうち２つの配列の順序をずらしている。
【０１０９】
ステップＳ１２１において、２つのグループの配列をずらした後、２つのグループともう１つのグループのポリゴンの組み合わせを１回目とは変えて、ステップＳ１０５〜ステップＳ１１２の処理を実行し、面積分布および角度分布の正規化を行う。２回目以降では、ステップＳ１２１において、ループカウンタＬＣが１以上と判定されるため、直前の面積分布および角度分布との照合を行う（ステップＳ１２２）。まず、以下の〔数式１２〕に従った処理を実行することにより、算出された面積分布と直前の面積分布のユークリッド距離Ｄｄを算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を２乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離Ｄｄは、ＭＤ次元ユークリッド空間内の２点の距離として求められる。
【０１１０】
〔数式１２〕
Ｄｄ＝Σmd=0,MD-1［｛Ｈｄ（ｍｄ）−Ｈｄｐ（ｍｄ）｝2／ＭＤ］1/2
【０１１１】
上記〔数式１２〕において、Σの添え字の“ｍｄ＝０，ＭＤ−１”は、ｍｄが０からＭＤ−１の全ての整数をとる場合について、後続の［・・・］1/2の総和を求めることを示している。
【０１１２】
続いて、以下の〔数式１３〕に従った処理を実行することにより、算出された角度分布と直前の角度分布のユークリッド距離Ｄａを算出する。ユークリッド距離Ｄａは、ＭＡ次元ユークリッド空間内の２点の距離として求められる。
【０１１３】
〔数式１３〕
Ｄａ＝Σma=0,MA-1［｛Ｈａ（ｍａ）−Ｈａｐ（ｍａ）｝2／ＭＡ］1/2
【０１１４】
上記〔数式１３〕において、Σの添え字の“ｍａ＝０，ＭＡ−１”は、ｍａが０からＭＡ−１の全ての整数をとる場合について、後続の［・・・］1/2の総和を求めることを示している。
【０１１５】
次に、度数分布算出手段１０は、ステップＳ１２２において算出された角度分布のユークリッド距離と、判定しきい値との比較を行う（ステップＳ１２３）。具体的には、ユークリッド距離Ｄｄ、Ｄａが判定しきい値よりともに小さい場合は、適合と判定し、ユークリッド距離Ｄｄ、Ｄａのいずれか一方が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、ここでは、０．０５としてある。
【０１１６】
ステップＳ１２３において適合と判定された場合、すなわち両者に類似性が認められる場合には、度数分布算出手段１０は、最後に算出された面積分布および角度分布を、正式に２種の度数分布とすることを決定する（ステップＳ１２４）。
【０１１７】
ステップＳ１２３において不適合と判定された場合には、２つのグループの配列を１だけずらす処理を行った後（ステップＳ１１１）、ステップＳ１０５〜ステップＳ１０９、Ｓ１１２、Ｓ１２１、Ｓ１２２の処理を繰り返し実行する。
【０１１８】
対象モデルから得られた面積分布と角度分布における面積に基づく値と角度の関係を図６に示す。図６は、ポリゴンが三角形状の場合のポリゴンモデルを示している。ポリゴンモデル上から選択された３つのポリゴンについて、それぞれのポリゴンの頂点の平均座標をもつ平均点を結ぶことにより三角形が作成される。そして、三角形の３つの頂点のうち一頂点の角度を求める。図６の例では、一頂点から出る２つの辺を矢印で示している。この矢印間における角度を求めることになる。そして、面積に基づく値としては、形成された三角形の面積の平方根を求める。この“面積に基づく値”は、ポリゴンモデルにおける具体的な箇所の距離を示すものではないが、三角形を形成する３つのポリゴン間の距離に影響される値ともなる。
【０１１９】
＜２．４．度数分布の照合処理＞
次に、ステップＳ２００の度数分布の照合処理について説明する。図７は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段２０は、規制モデルデータベース４０に記憶されているＲＥ個のレコードの中からレコードｒｅ（ｒｅ＝０，・・・，ＲＥ−１）に登録されている度数分布を抽出する（ステップＳ２１０）。度数分布として、面積分布Ｈｄｏ（ｒｅ，ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）、角度分布Ｈａｏ（ｒｅ，ｍａ）（ｍａ＝０，・・・，ＭＡ−１）を抽出する。
【０１２０】
次に、度数分布照合手段２０は、対象モデルから算出された面積分布と、規制モデルデータベース４０から抽出された規制画像の面積分布同士で各要素間の相関係数を算出する（ステップＳ２２０）。相関係数とは、二つの配列要素の関連性の強弱を示す指標である。ここでは、対象モデルと規制画像（または規制モデル）の類似性の強弱を判定するために用いる。まず、以下の〔数式１４〕に従った処理を実行することにより、対象モデルから算出された面積分布Ｈｄ（ｍｄ）の平均値Ａｄ、規制モデルデータベース４０から抽出された規制画像の距離分布Ｈｄｏ（ｒｅ，ｍｄ）の平均値Ａｄｏ（ｒｅ）を算出する。
【０１２１】
〔数式１４〕
Ａｄ＝Σmd=0,MD-1Ｈｄ（ｍｄ）／ＭＤ
Ａｄｏ（ｒｅ）＝Σmd=0,MD-1Ｈｄｏ（ｒｅ，ｍｄ）／ＭＤ
【０１２２】
続いて、以下の〔数式１５〕に従った処理を実行することにより、対象モデルから算出された面積分布Ｈｄ（ｍｄ）の標準偏差Ｓｄ、規制モデルデータベース４０から抽出された規制画像の面積分布Ｈｄｏ（ｒｅ，ｍｄ）の標準偏差Ｓｄｏ（ｒｅ）を算出する。
【０１２３】
〔数式１５〕
Ｓｄ＝[Σmd=0,MD-1（Ｈｄ（ｍｄ）−Ａｄ）2]1/2
Ｓｄｏ（ｒｅ）＝[Σmd=0,MD-1（Ｈｄｏ（ｒｅ，ｍｄ）−Ａｄｏ（ｒｅ））2]1/2
【０１２４】
厳密には、標準偏差は、上記〔数式１５〕の｛｝内において、さらに定数ＭＤで除算しておく必要がある。しかし、ここでは、相関係数を算出することが目的であるため、後述の〔数式１６〕における分子の共分散を算出する項においても定数ＭＤで除算する必要があり、分子と分母で重複して定数ＭＤで除算する演算がキャンセルされる（分母は定数ＭＤの平方根で２回除算）。
【０１２５】
次に、算出された平均値および標準偏差を用いて、以下の〔数式１６〕に従った処理を実行することにより、対象モデルの面積分布とレコードｒｅに対応する規制モデルの面積分布の相関係数Ｄｄ（ｒｅ）を算出する。
【０１２６】
〔数式１６〕
Ｄｄ（ｒｅ）＝[Σmd=0,MD-1（Ｈｄ（ｍｄ）−Ａｄ）・（Ｈｄｏ（ｒｅ，ｍｄ）−Ａｄｏ（ｒｅ））]／（Ｓｄｏ（ｒｅ）・Ｓｄ）
【０１２７】
上記〔数式１６〕において、Σの添え字の“ｍｄ＝０，ＭＤ−１”は、ｍｄが０からＭＤ−１の全ての整数をとる場合について、総和を求めることを示している。相関係数Ｄｄ（ｒｅ）は、度数分布Ｈｄ（ｍｄ）、Ｈｄｏ（ｒｅ，ｍｄ）の共分散を、それぞれの標準偏差で除したものとなっている。上記〔数式１６〕の演算のように、分母の平方根の割算を２回行うのは一般に処理負荷が高い。このため、画像処理の分野においては、分子の積和演算だけで済ますものを「相関係数」と呼び、上記〔数式１６〕に示したＤｄ（ｒｅ）を「正規化相関係数」と呼ぶ習慣もある。
【０１２８】
次に、度数分布照合手段２０は、ステップＳ２２０において算出された面積分布の相関係数Ｄｄ（ｒｅ）と、判定しきい値との比較を行う（ステップＳ２３０）。相関係数Ｄｄ（ｒｅ）が判定しきい値以上である場合は、適合と判定し、相関係数Ｄｄ（ｒｅ）が判定しきい値より小さい場合は、不適合と判定する。判定しきい値としては、正の値であれば任意に設定可能であるが、ここでは、＋５．０（−１から＋１の範囲をとる相関係数値を１００倍して％次元で表現した場合）としてある。
【０１２９】
ステップＳ２３０において適合と判定された場合には、度数分布照合手段２０は、対象モデルから算出された角度分布と、規制モデルデータベース４０から抽出された規制画像の角度分布同士で、各要素間の相関係数を算出する（ステップＳ２４０）。まず、以下の〔数式１７〕に従った処理を実行することにより、対象モデルから算出された角度分布Ｈａ（ｍａ）の平均値Ａａ、規制モデルデータベース４０から抽出された規制画像の角度分布Ｈａｏ（ｒｅ，ｍａ）の平均値Ａａｏ（ｒｅ）を算出する。
【０１３０】
〔数式１７〕
Ａａ＝Σma=0,MA-1Ｈａ（ｍａ）／ＭＡ
Ａａｏ（ｒｅ）＝Σma=0,MA-1Ｈａｏ（ｒｅ，ｍａ）／ＭＡ
【０１３１】
続いて、以下の〔数式１８〕に従った処理を実行することにより、対象モデルから算出された角度分布Ｈａ（ｍａ）の標準偏差Ｓａ、規制モデルデータベース４０から抽出された規制画像の角度分布Ｈａｏ（ｒｅ，ｍａ）の標準偏差Ｓａｏ（ｒｅ）を算出する。
【０１３２】
〔数式１８〕
Ｓａ＝[Σma=0,MA-1（Ｈａ（ｍａ）−Ａａ）2]1/2
Ｓａｏ（ｒｅ）＝[Σma=0,MA-1（Ｈａｏ（ｒｅ，ｍａ）−Ａａｏ（ｒｅ））2]1/2
【０１３３】
厳密には、標準偏差は、上記〔数式１８〕の｛｝内において、さらに定数ＭＡで除算しておく必要がある。しかし、ここでは、相関係数を算出することが目的であるため、後述の〔数式１９〕における分子の共分散を算出する項においても定数ＭＡで除算する必要があり、分子と分母で重複して定数ＭＡで除算する演算がキャンセルされる（分母は定数ＭＡの平方根で２回除算）。
【０１３４】
次に、算出された平均値および標準偏差を用いて、以下の〔数式１９〕に従った処理を実行することにより、対象モデルの角度分布とレコードｒｅに対応する規制画像の角度分布の相関係数Ｄａ（ｒｅ）を算出する。
【０１３５】
〔数式１９〕
Ｄａ（ｒｅ）＝[Σma=0,MA-1（Ｈａ（ｍａ）−Ａａ）・（Ｈａｏ（ｒｅ，ｍａ）−Ａａｏ（ｒｅ））]／（Ｓａｏ（ｒｅ）・Ｓａ）
【０１３６】
上記〔数式１９〕において、Σの添え字の“ｍａ＝０，ＭＡ−１”は、ｍａが０からＭＡ−１の全ての整数をとる場合について、総和を求めることを示している。相関係数Ｄａ（ｒｅ）は、度数分布Ｈａ（ｍａ）、Ｈａｏ（ｒｅ，ｍａ）の共分散を、それぞれの標準偏差で除したものとなっている。上記〔数式１９〕の演算のように、分母の平方根の割算を２回行うのは一般に処理負荷が高い。このため、画像処理の分野においては、分子の積和演算だけで済ますものを「相関係数」と呼び、上記〔数式１９〕に示したＤａ（ｒｅ）を「正規化相関係数」と呼ぶ習慣もある。
【０１３７】
次に、度数分布照合手段２０は、ステップＳ２４０において算出された角度分布の相関係数Ｄａ（ｒｅ）と、判定しきい値との比較を行う（ステップＳ２５０）。相関係数Ｄａ（ｒｅ）が判定しきい値以上である場合は、適合と判定し、相関係数Ｄａ（ｒｅ）が判定しきい値より小さい場合は、不適合と判定する。判定しきい値としては、正の値であれば任意に設定可能であるが、ここでは、＋５．０（−１から＋１の範囲をとる相関係数値を１００倍して％次元で表現した場合）としてある。ステップＳ２５０において適合と判定された場合には、度数分布照合手段２０は、対象モデルとレコードｒｅの規制画像が適合することになるため、出力を規制すべきである（出力不適）との判定を行う。
【０１３８】
ステップＳ２３０、Ｓ２５０のいずれかにおいて不適合と判定された場合には、度数分布照合手段２０は、対象モデルとレコードｒｅの規制画像の照合を終え、次のレコードｒｅ＋１の規制画像との照合に移行する。図１４のフローチャートに従った処理を、規制モデルデータベース４０内の全レコードに対して実行し、適合となる規制画像が１つでも存在したら、対象モデルを“出力を規制すべきである（出力不適）”としてステップＳ２００の照合処理を終了することになる。
【０１３９】
＜２．４．１．ユークリッド距離による照合＞
上述のように、照合には、相関係数を用いることが好ましいが、ユークリッド距離を用いることもできる。この場合、上記ステップＳ２２０〜Ｓ２５０の処理は、以下のようになる。度数分布照合手段２０は、対象モデルから算出された距離分布と、規制モデルデータベース４０から抽出された規制画像の距離分布同士で各要素間のユークリッド距離を算出する（ステップＳ２２０）。具体的には、以下の〔数式２０〕に従った処理を実行することにより、対象モデルの距離分布とレコードｒｅに対応する規制画像の距離分布のユークリッド距離Ｄｄ２（ｒｅ）を算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を２乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離Ｄｄ２（ｒｅ）は、ＭＤ／Ｔ次元ユークリッド空間内の２点の距離として求められる。
【０１４０】
〔数式２０〕
Ｄｄ２（ｒｅ）＝Σi=0,MD/T-1［｛Σt=0,T-1Ｈｄｏ（ｒｅ，ｉ・Ｔ＋ｔ）／Ｔ−Σt=0,T-1Ｈｄ（ｉ・Ｔ＋ｔ）／Ｔ｝2・Ｔ／ＭＤ］1/2
【０１４１】
上記〔数式２０〕において、Σの添え字の“ｉ＝０，ＭＤ／Ｔ−１”は、ｉが０からＭＤ／Ｔ−１の全ての整数をとる場合について総和を求めることを示し、Σの添え字の“ｔ＝０，Ｔ−１”は、ｍｄが０からＭＤ−１の全ての整数をとる場合について総和を求めることを示している。上記〔数式２０〕において、Ｔは面積平方根の位置ずれ許容範囲である。Ｔとしては、任意に設定することが可能であるが、例えばＭＤ＝３６０のときＴ＝１０としている。ｔはｔ＝０，・・・，Ｔ−１の値をとる整数である。許容範囲Ｔは、対象モデルの形状が若干変化することにより三角形が変動した場合の影響を排除するために用いられる（ポリゴン構成の精細度が変化したり、形状の装飾に軽微な変化があったりする場合に限定）。許容範囲Ｔを設けることにより、対象モデルの面積分布に若干の変動があった場合でも、的確に規制画像との照合を行うことが可能となる。
【０１４２】
次に、度数分布照合手段２０は、ステップＳ２２０において算出された面積分布のユークリッド距離Ｄｄ２（ｒｅ）と、判定しきい値との比較を行う（ステップＳ２３０）。判定しきい値との比較による判定は、相関係数の場合とは逆になる。すなわち、ユークリッド距離Ｄｄ２（ｒｅ）が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Ｄｄ２（ｒｅ）が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、例えば、０．５とすることができる。
【０１４３】
ステップＳ２３０において適合と判定された場合には、度数分布照合手段２０は、対象モデルから算出された角度分布と、規制モデルデータベース４０から抽出された規制画像の角度分布の間で、互いのユークリッド距離を算出する（ステップＳ２４０）。具体的には、以下の〔数式２１〕に従った処理を実行することにより、対象モデルの角度分布とレコードｒｅに対応する規制画像の角度分布のユークリッド距離Ｄａ２（ｒｅ）を算出する。ユークリッド距離Ｄａ２（ｒｅ）は、ＭＡ次元ユークリッド空間内の２点の距離として求められる。
【０１４４】
〔数式２１〕
Ｄａ２（ｒｅ）＝Σma=0,MA-1［｛Ｈａｏ（ｒｅ，ｍａ）−Ｈａ（ｍａ）｝2／ＭＡ］1/2
【０１４５】
上記〔数式２１〕において、Σの添え字の“ｍａ＝０，ＭＡ−１”は、ｍａが０からＭＡ−１の全ての整数をとる場合について、後続の［・・・］1/2の総和を求めることを示している。
【０１４６】
次に、度数分布照合手段２０は、ステップＳ２４０において算出された角度分布のユークリッド距離Ｄａ２（ｒｅ）と、判定しきい値との比較を行う（ステップＳ２５０）。判定しきい値との比較による判定は、相関係数の場合とは逆になる。すなわち、ユークリッド距離Ｄａ２（ｒｅ）が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Ｄａ２（ｒｅ）が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、例えば、０．５とすることができる。
【０１４７】
＜３．３Ｄプリンタへのデータ出力＞
上記ステップＳ２００において、度数分布照合手段２０により“出力を規制すべきでない（出力適正）”と判定された場合には、立体物造形装置である３Ｄプリンタ７へ対象モデルを出力する。一方、度数分布照合手段２０により“出力を規制すべきである（出力不適）”と判定された場合には、立体物造形装置である３Ｄプリンタ７へ対象モデルを出力しない。また、出力適正か出力不適かの判定に時間がかかる場合には、３Ｄプリンタ７に対象モデルを出力し、３Ｄプリンタ７の出力処理(立体物造形処理)と並行して出力適正か出力不適かの判定を行い、出力不適である場合に出力中止命令を３Ｄプリンタ７に出力するようにしてもよい。この際、利用者から見れば、対象モデルの出力という一つの命令を行うことにより、３Ｄプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か出力不適かの判定のための処理の実行が開始されることは気付かない。
【０１４８】
＜４．対象モデル分割処理＞
図３に示した度数分布の算出処理に先立ち、対象モデルの分割を行う対象モデル分割処理を行うようにしてもよい。事前に対象モデルの分割を行っておくことにより、規制モデルと対象モデルとで互いに部品構成が異なる場合であっても、適切に出力適正か出力不適かの判断を行うことが可能となる。以下に、度数分布の算出処理に先立つ対象モデル分割処理について説明する。対象モデル分割処理は、図１に示したＣＰＵ１が記憶装置３に記憶されたプログラムを実行ことにより実現される対象モデル分割手段により行われる。
【０１４９】
図８は、対象モデル分割手段による対象モデル分割処理の詳細を示すフローチャートである。対象モデル分割手段は、まず、初期設定を行う（ステップＳ２１）。具体的には、読み込んだ対象モデルのポリゴン集合を構成するポリゴン数Ｐ、ポリゴンを特定する変数ｐ（ｐ＝０，・・・，Ｐ−１）、探索ステータスＳ（ｐ）、グループ属性Ｇ（ｐ）、グループを特定する変数ｇ、探索ステータスを示す変数ｓを設定する。探索ステータスＳ（ｐ）は、０以上の整数値をとる。Ｓ（ｐ）＝０はポリゴンｐがグループに未分類の状態、Ｓ（ｐ）＞０はＳ（ｐ）回目に実行されるステップＳ２２においてポリゴンｐがグループ属性Ｇ（ｐ）に分類された状態を示す。さらに、ステップＳ２１においては、ｐ＝０，・・・，Ｐ−１の全てのｐについてＳ（ｐ）＝Ｇ（ｐ）＝０、ｇ＝１、ｓ＝１と初期設定する。
【０１５０】
次に、全ポリゴンより、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを１つ抽出する（ステップＳ２２）。初期状態では、全てＳ（ｐ）＝Ｇ（ｐ）＝０であるので、初回は必ずｐ＝０のポリゴンの抽出が行われる。ステップＳ２２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが存在しない場合、すなわち、全てのｐ＝０，・・・，Ｐ−１について、Ｓ（ｐ）＞０である場合、ｇ−１個のグループに分離でき、対象モデルをｇ−１個の部分対象モデルに分割できたものとして対象モデル分割処理を終了する。なお、ステップＳ２２において、Ｓ（ｐ）＜０である状態は存在しないため、Ｓ（ｐ）は“０”か正の値のいずれかの状態である。Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが抽出できた場合は、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝ｓ、グループ属性Ｇ（ｐ）＝ｇに設定する。さらに、更新をカウントする変数である更新カウンタｃ＝０に設定する。
【０１５１】
ステップＳ２２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを１つ抽出し、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝ｓ、グループ属性Ｇ（ｐ）＝ｇに設定した場合は、全ポリゴンより、Ｓ（ｑ）＝ｓとなるポリゴンｑを１つ抽出する（ステップＳ２３）。ｑはポリゴンを特定する変数であり、ポリゴンｐと同様、ｑ＝０，・・・，Ｐ−１内のいずれかの整数値をとる。Ｓ（ｑ）＝ｓとなるポリゴンｑが複数存在する場合は、例えばｑの値が最も小さいものを抽出する。
【０１５２】
ステップＳ２３において、Ｓ（ｑ）＝ｓとなるポリゴンｑを１つ抽出した場合、全ポリゴンより、抽出されたポリゴンｑと辺を共有する隣接ポリゴンｒ１、ｒ２、ｒ３の３つを探索の上、探索された３つの隣接ポリゴンｒ１、ｒ２、ｒ３の中でＳ（ｒ）＝Ｇ（ｒ）＝０を満たすポリゴンｒに対して、それぞれ探索ステータスＳ（ｒ）＝ｓ＋１、グループ属性Ｇ（ｒ）＝ｇに設定し、併せてｃの値をｃ←ｃ＋１と更新する（ステップＳ２４）。ｒはｒ１、ｒ２、ｒ３のいずれかのポリゴンを特定する変数であり、ポリゴンｐ、ｑと同様、ｒ＝０，・・・，Ｐ−１内のいずれかの整数値をとる。“ポリゴンｑと隣接ポリゴンｒの辺を共有する”とは、ポリゴンｑの２頂点とポリゴンｒの２頂点が同一であることを意味する。すなわち、隣接ポリゴンｒのいずれか１つの辺はポリゴンｑのいずれか１つの辺と同一になる。
【０１５３】
本実施形態では、ポリゴンが三角形状であるので、ポリゴンを構成する３つの辺に対して、各々１辺を共有する隣接ポリゴンは必ず３つ存在する。コンピュータグラフィックで画面表示する場合にはこの条件が満足されなくても支障ないが、３Ｄプリンタで出力する場合は、物理的に造形物を形成できなくなるため、この条件は必須要件になる（仮に満足されない場合はエラー警告が出され、プリンタ出力が実行されないのが一般的である。）。抽出された３つの隣接ポリゴンの中で、Ｓ（ｒ）＝Ｇ（ｒ）＝０を満たすポリゴンｒについては、それぞれ探索ステータスＳ（ｒ）＝ｓ＋１、グループ属性Ｇ（ｒ）＝ｇ、ｃ←ｃ＋１に設定する。
【０１５４】
そして、ステップＳ２３に戻って、全ポリゴンよりＳ（ｑ）＝ｓとなるポリゴンｑが他にも存在する場合、更に１つ抽出し、同様にステップＳ２４を実行する。すなわち、ステップＳ２３とステップＳ２４の処理を繰り返すことにより、対象モデル中、Ｓ（ｑ）＝ｓとなるポリゴン全てについて、ステップＳ２４の処理を実行する。ステップＳ２３において、Ｓ（ｑ）＝ｓとなるポリゴンｑが存在しない場合、すなわち、全てのＳ（ｑ）＝ｓとなるポリゴンｑについて、３つの隣接ポリゴンを探索したら、探索ステータスを示す変数ｓを１インクリメント（ｓ←ｓ＋１）する（ステップＳ２５）。
【０１５５】
次に、更新カウンタｃ＝０であるか否かを判定する（ステップＳ２６）。判定の結果、ｃ＝０でない場合は、ステップＳ２４においてポリゴンｑと隣接する３つのポリゴンの中でＳ（ｒ）＝Ｇ（ｒ）＝０を満たすポリゴンｒが少なくとも１つは存在していたことを意味するので、他にも同一のグループｇに含めるべきグループ属性が未定義であるポリゴンｐが存在しないか、ステップＳ２２に戻って、全ポリゴンより、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを更に探索し、もし存在すれば１つ抽出し、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝ｓ、グループ属性Ｇ（ｐ）＝ｇ、更新カウンタｃ＝０に設定する。そして、上述のように、ステップＳ２３およびステップＳ２４の処理ループに進み全てのＳ（ｑ）＝ｓとなるポリゴンｑについて３つの隣接ポリゴンを探索する処理を繰り返す。
【０１５６】
このようにして、ステップＳ２２〜ステップＳ２５の処理を繰り返して実行し、ステップＳ２６における判定の結果、更新カウンタｃ＝０である場合、即ちステップＳ２４においてポリゴンｑと隣接する３つのポリゴンのいずれもが既に同一のグループｇに設定され、グループｇに含めるべきＳ（ｒ）＝Ｇ（ｒ）＝０を満たすグループ属性が未定義のポリゴンｒが全く存在しない場合は、グループｇへの分類は終了したとみなし、次のグループｇ＋１への分類に移行するため、グループを特定する変数ｇを１インクリメント（ｇ←ｇ＋１）する（ステップＳ２７）。そしてステップＳ２２に戻り、新たなグループｇへの分類を同様に行う。もし、ステップＳ２２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるグループ属性が未定義のポリゴンｐが見つからなかった場合、全Ｐ個のポリゴンのグループ属性はいずれかの値に設定されていることから、分類処理が終了したとみなすことができる。その際、ステップＳ２７で更新されたグループｇはいずれのポリゴンのグループ属性として設定されていないことから、全Ｐ個のポリゴンはｇ−１個のグループに分類されたことになる。
【０１５７】
図８のフローチャートに従った処理を実行することにより、全Ｐ個のポリゴンが、２頂点を共有して連結するポリゴン集合ごとにグループに分類される。この分類されたグループが、部分対象モデルとなる。図８の例では、対象モデルの各ポリゴンは、ｇ−１個の部分対象モデルのいずれかに属することになる。この結果、対象モデルはｇ−１個の部分対象モデルに分割される。
【０１５８】
＜５．規制モデルの度数分布算出および登録について＞
変形例として、度数分布照合手段２０を備えた立体物造形用データ出力規制装置とは別の場所で、規制モデルに対して算出された面積分布および角度分布を、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
【０１５９】
図９は、変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。図９に示した立体物造形システムにおいて、立体物造形用データ出力規制装置１０１は、図１に示した立体物造形用データ出力規制装置１００の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部８を備えた構成となっている。規制モデル度数分布算出装置１０２は、汎用のコンピュータで実現することができ、図９に示すように、ＣＰＵ（Central Processing Unit）１ａと、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２ａと、ＣＰＵ１ａが実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３ａと、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４ａと、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５ａと、液晶ディスプレイ等の表示デバイスである表示部６ａと、インターネット等の公衆ネットワークと通信するためのネットワーク通信部８ａを備え、互いにバスを介して接続されている。立体物造形用データ出力規制装置１０１のネットワーク通信部８と規制モデル度数分布算出装置１０２のネットワーク通信部８ａは互いに通信を行い、規制モデル度数分布算出装置１０２から立体物造形用データ出力規制装置１０１へ、規制モデルに対して算出された２種の度数分布の送信を行うことが可能になっている。
【０１６０】
図９では、立体物造形用データ出力規制装置１０１と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１０１の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させてキー入力Ｉ／Ｆ４を兼ねることも多い）、ネットワーク通信部８（無線ＬＡＮ機能）も小規模ながら重複して備えている。従って、３Ｄプリンタ自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの形態の方が多い）。すなわち、図９に示した立体物造形用データ出力規制装置１０１および３Ｄプリンタ７を１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【０１６１】
規制モデル度数分布算出装置１０２においては、ＣＰＵ１ａが、記憶装置３ａに記憶されているプログラムを実行することにより、第２の度数分布算出手段、度数分布送信手段が実現される。規制モデル度数分布算出装置１０２で実現される第２の度数分布算出手段は、立体物造形用データ出力規制装置１００で実現される度数分布算出手段１０と同様の機能を有し、規制モデルに対して２種の度数分布として面積分布、角度分布を算出する。度数分布送信手段は、規制モデルについて算出された２種の度数分布である面積分布、角度分布を立体物造形用データ出力規制装置１０１に送信する。立体物造形用データ出力規制装置１０１では、ネットワーク通信部８が、規制モデル度数分布算出装置１０２から度数分布を受信すると、ＣＰＵ１が所定のプログラムを実行して度数分布登録手段として機能し、受信した度数分布を記憶装置３で実現される規制モデルデータベース４０に登録する。
【０１６２】
＜６．クラウド型の立体物造形システム＞
本発明は、クラウド型の立体物造形システムに適用することも可能である。図１０は、クラウド型の立体物造形システムのハードウェア構成図である。図１０に示した立体物造形システムでは、出力制御用端末２０１と処理サーバ２０２により立体物造形用データ出力規制装置が実現される。図１０に示した立体物造形システムにおいて、出力制御用端末２０１は、図９において立体物造形用データ出力規制装置１０１として示したコンピュータと同等のハードウェア構成を有する。すなわち、出力制御用端末２０１は、ＣＰＵ１１、ＲＡＭ１２、記憶装置１３、キー入力Ｉ／Ｆ１４、データ入出力Ｉ／Ｆ１５、表示部１６、ネットワーク通信部１８を備え、互いにバスを介して接続されている。
【０１６３】
処理サーバ２０２は、汎用のコンピュータに専用のプログラムを組み込むことにより実現することができる。図１０に示すように、ＣＰＵ１１ａ、ＲＡＭ１２ａ、記憶装置１３ａ、キー入力Ｉ／Ｆ１４ａ、データ入出力Ｉ／Ｆ１５ａ、表示部１６ａ、ネットワーク通信部１８ａを備え、互いにバスを介して接続されている。出力制御用端末２０１のネットワーク通信部１８と処理サーバ２０２のネットワーク通信部１８ａは互いに通信を行い、処理サーバ２０２から出力制御用端末２０１へ出力適否の判定に基づく出力適否データの送信を行うことが可能になっている。図１０では、出力制御用端末２０１と３Ｄプリンタ７は分離した形態で示されているが、図９の例と同様、３Ｄプリンタ製品に出力制御用端末２０１の構成要素である、ＣＰＵ１１、ＲＡＭ１２、記憶装置１３、キー入力Ｉ／Ｆ１４、データ入出力Ｉ／Ｆ１５、表示部１６、ネットワーク通信部１８を重複して備えていてもよい。
【０１６４】
図１１は、クラウド型の立体物造形システムの機能ブロック図である。クラウド型の立体物造形システムを構成する処理サーバ２０２は、図２に示した立体物造形用データ出力規制装置の各手段に加えて、対象モデル受信手段５０、出力適否データ送信手段６０を備えた構成となっている。対象モデル記憶手段３１は、対象モデル自体ではなく、対象モデルについて算出された２種の度数分布を記憶する。また、度数分布算出手段１０は、処理サーバ２０２ではなく、出力制御用端末２０１が備えた構成となっている。
【０１６５】
図２に示した立体物造形用データ出力規制装置と同等の機能を有するものについては、同一符号を付して説明を省略する。対象モデル受信手段５０は、出力制御用端末２０１から送信された対象モデルの度数分布を受信して対象モデル記憶手段３１に登録する手段であり、ＣＰＵ１１ａが所定のプログラムを実行するとともに、ネットワーク通信部１８ａを制御することにより実現される。出力適否データ送信手段６０は、度数分布照合手段２０により判定された“出力を規制すべきであるか否か”に基づき、出力適否データを出力制御用端末２０１に送信する手段であり、ＣＰＵ１１ａが所定のプログラムを実行するとともに、ネットワーク通信部１８ａを制御することにより実現される。
【０１６６】
処理サーバ２０２は、インターネット等のネットワークに接続され、多数の出力制御用端末からアクセス可能になっている。クラウド型の立体物造形システムの「クラウド型」とは、３Ｄプリンタにより立体物を出力する出力側でなく、出力側からネットワークを介した遠隔地のコンピュータにおいて、出力を規制すべきか否かを判定することを意味する。従来のサーバ型コンピュータでは多数の利用者のアクセスが集中すると応答性が遅くなり利用者に迷惑をかけることが多かったが、クラウド型では仮想化技術によりコンピュータの物理的構成を動的に変更することが可能になるため、常に安定した応答性を維持できるという特徴がある。処理サーバ２０２は物理的には複数台のコンピュータにより実現されるのが一般的である。
【０１６７】
図１０、図１１に示したクラウド型の立体物造形システムの処理動作について説明する。出力制御用端末２０１において、利用者がキー入力Ｉ／Ｆ１４を介して出力したい対象モデルを指定すると、ＣＰＵ１１は、記憶装置１３に記憶されている指定された対象モデルを抽出し、対象モデルを特定する識別情報であるモデルＩＤを付与する。そして、ＣＰＵ１１は、モデルＩＤが付与された対象モデルに対して、図４または図５に示したフローチャートに従って、度数分布算出手段１０が処理を行い、面積分布および角度分布で構成される度数分布を生成する。さらにＣＰＵ１１は、生成された度数分布を、記憶装置１３に事前に設定されているＵＲＬ等のアドレス宛に、ネットワーク通信部１８を介して送信する。ポリゴンデータに比べ情報量が顕著に少ない度数分布を送信する方法をとることにより、伝送時間が大幅に短縮されるだけでなく、処理サーバ２０２側には著作物であるポリゴンデータが送信されず、処理サーバ２０２側に複製物が残らないため、著作権侵害を回避することができる。
【０１６８】
並行してＣＰＵ１１は、モデルＩＤが付与された対象モデルを、データ入出力Ｉ／Ｆ１５を介して３Ｄプリンタ７のデータ処理部７ａに送信する。データ処理部７ａ内のプリンタキューには、出力制御用端末２０１から受信した対象モデルが保持され、出力ジョブとして待機状態となる。この時、３Ｄプリンタ出力における前処理であるポリゴン形式のデータを積層形式のデータに変換する処理のみ実行させるようにし、積層形式のデータに変換された段階で待機状態にする手法もとることができる。このデータ処理負荷もそれなりに高いため、この間に出力適否判定が完了すれば、利用者側に余分な待ち時間を感じさせないようにすることができる。
【０１６９】
処理サーバ２０２では、対象モデル受信手段５０が、出力制御用端末２０１から送信された対象モデルの度数分布を受信すると、その度数分布を対象モデル記憶手段３１に記憶する。ここで、図３に示したフローチャートに従って、度数分布照合手段２０が処理を行い、受信した度数分布に対応する対象モデルの出力適否を判定する。出力適否の結果である出力適否データは、度数分布照合手段２０から出力適否データ送信手段６０に渡される。そして、出力適否データ送信手段６０は、度数分布の送信元（アクセス元）である出力制御用端末２０１に、モデルＩＤを付加した出力適否データを送信する。
【０１７０】
出力制御用端末２０１では、ネットワーク通信部１８が処理サーバ２０２から出力適否データを受信すると、ＣＰＵ１１が、受信した出力適否データを、データ入出力Ｉ／Ｆ１５を介して３Ｄプリンタ７のデータ処理部７ａに送信する。データ処理部７ａは、受信した出力適否データに付与されたモデルＩＤでプリンタキュー内の出力ジョブを参照する。そして、出力適否データが“適（出力適正）”である場合、データ処理部７ａは、その出力ジョブを待機状態から出力状態に変更し、出力部７ｂに対象モデルを出力する。出力適否データが“否（出力不適）”である場合、データ処理部７ａは、その出力ジョブを破棄する。すなわち、プリンタキューから削除する。
【０１７１】
＜７．度数分布算出事例＞
図１２、図１３に、球体（実際には、球体に近似した多面体）について、上記実施形態に係る立体物造形用データ出力規制装置による度数分布算出事例を示す。図１２、図１３のいずれにおいても、左端にポリゴンモデル、右側に度数分布を示している。度数分布は上段が距離分布または面積分布（Ｄｉｓｔａｎｃｅ）を示し、下段が角度分布（Ａｎｇｌｅ）を示している。
【０１７２】
図１２（ａ）は、球体ａ（実際には多面体）のポリゴンモデル（５０４０ポリゴン）、図１２（ｂ）は他方式による球体ａの度数分布、図１２（ｃ）は本発明による球体ａの度数分布である。図１２（ｄ）は、球体ｂ（実際には多面体）のポリゴンモデル（１２２４ポリゴン）、図１２（ｅ）は他方式による球体ｂの度数分布、図１２（ｆ）は本発明による球体ｂの度数分布である。図１３（ａ）は、球体ｃ（実際には多面体）のポリゴンモデル（１２０ポリゴン）、図１３（ｂ）は他方式による球体ｃの度数分布、図１３（ｃ）は本発明による球体ｃの度数分布である。図１２〜図１４において、他方式の距離分布（本発明の面積分布に相当）は、ポリゴンモデル内の２つのポリゴンの距離の分布であり、他方式の角度分布は、２つのポリゴンを結ぶ方向と２つのポリゴンのうちの一方のポリゴンの法線ベクトルとの角度の分布である。球体ａ、ｂ、ｃの度数分布を比較した場合、本発明における、３つのポリゴンで形成した三角形の面積に基づく面積分布、３つのポリゴンで形成した三角形の一頂点の角度分布の方が、他方式に比べて、ポリゴン数に影響されずに互いに類似性がある。このため、適合するポリゴンモデルを発見し易く、出力規制を行い易いことがわかる。
【０１７３】
図１４（ａ）は、模擬拳銃ｄのポリゴンモデル（１９２ポリゴン）、図１４（ｂ）は他方式による模擬拳銃ｄの度数分布、図１４（ｃ）は本発明による模擬拳銃ｄの度数分布である。図１４（ｄ）は、模擬拳銃ｅのポリゴンモデル（１６８ポリゴン）、図１４（ｅ）は他方式による模擬拳銃ｅの度数分布、図１４（ｆ）は本発明による模擬拳銃ｅの度数分布である。模擬拳銃ｄ、ｅの度数分布を比較した場合、本発明により得られた面積分布、角度分布の方が、他方式に比べて、ポリゴン数に影響されずに互いに類似性がある。このため、適合するポリゴンモデルを発見し易く、出力規制を行い易いことがわかる。
【０１７４】
図１５は、図１２、図１３、図１４に示したポリゴンモデルの度数分布照合手段２０による照合結果を示す図である。照合結果として、算出された距離分布の相関係数（図中「距離相関」と表記）、算出された面積分布の相関係数Ｄｄ（図中「面積相関Ｄｄ」と表記）、角度分布の相関係数Ｄａ（図中「角度相関Ｄａ」と表記）を示している。このうち、図１５（ａ）は、他方式、すなわちポリゴンモデル内の２つのポリゴンの距離、２つのポリゴンを結ぶ方向と２つのポリゴンのうちの一方のポリゴンの法線ベクトルとの角度の分布による相関である。また、図１５（ｂ）は、本発明、すなわち３つのポリゴンで形成した三角形の面積に基づく値（面積平方根）、３つのポリゴンで形成した三角形の一頂点の角度の分布による相関である。
【０１７５】
球体ａ、ｂ、ｃについては、相関が高いことが要求されるが、図１５（ａ）（ｂ）に示すように、他方式よりも本発明の方が、相関が高くなっており、改善が見られる。特に、面積分布（距離分布）の相関について、本発明では大きく改善されている。ここで、他方式の距離分布と本発明の面積分布を比較の対象としているのは、面積分布が面積の平方根の分布であり、距離と同次元となるためである。また、球体ａ、ｂと、模擬拳銃ｄでは、相関が低いことが要求されるが、図１５（ａ）（ｂ）に示すように、面積分布について他方式よりも本発明の方が逆相関が高くなっており、改善が見られる。したがって、他方式のようにポリゴンモデル内の２つのポリゴンの距離の度数分布である距離分布よりも、本発明のようにポリゴンモデル内の３つのポリゴンにより形成される三角形の面積の平方根の度数分布である面積分布を用いた方が、より的確な照合を行うことができる。
【０１７６】
＜８．変形例等＞
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形状としたが、四角形状以上の多角形状であってもよい。
【０１７７】
また、上記実施形態では、三角形を構成するためのポリゴン上の一点として、ポリゴンの各頂点の平均座標をもつポリゴン平均点を用いたが、ポリゴン上の点であれば、ポリゴン平均点以外の点であってもよい。例えば、ポリゴン上の点としては、ポリゴンの重心点、ポリゴンの頂点のｘｙｚ座標別の最大値と最小値の丁度中間となる値をもつ点、等を用いることができる。
【０１７８】
また、上記実施形態では、面積分布を求めるための三角形の面積に基づく値として、三角形の面積の平方根を算出するようにしたが、三角形の面積に基づく値であれば、三角形の面積の平方根以外の値であってもよい。例えば、三角形の面積そのものであってもよい。
【０１７９】
また、上記実施形態では、対象モデルと規制モデルの照合対象の度数分布として面積分布と角度分布を用いたが、角度分布を用いず、面積分布のみを用いるようにしてもよい。
【符号の説明】
【０１８０】
１、１ａ、１１、１１ａ・・・ＣＰＵ（Central Processing Unit）
２、２ａ、１２、１２ａ・・・ＲＡＭ（Random Access Memory）
３、３ａ、１３、１３ａ・・・記憶装置
４、４ａ、１４、１４ａ・・・キー入力Ｉ／Ｆ
５、５ａ、１５、１５ａ・・・データ入出力Ｉ／Ｆ
６、６ａ、１６、１６ａ・・・表示部
７・・・３Ｄプリンタ（立体物造形装置）
７ａ・・・データ処理部
７ｂ・・・出力部
８、８ａ、１８、１８ａ・・・ネットワーク通信部
１０・・・度数分布算出手段（度数分布算出装置）
２０・・・度数分布照合手段
３０、３１・・・対象モデル記憶手段
４０・・・規制モデルデータベース
５０・・・対象モデル受信手段
６０・・・出力適否データ送信手段
１００、１０１・・・立体物造形用データ出力規制装置
１０２・・・規制モデル度数分布算出装置
２０１・・・出力制御用端末
２０２・・・処理サーバ
【図１】
2017041023.tif 000003
【図２】
2017041023.tif 000004
【図３】
2017041023.tif 000005
【図４】
2017041023.tif 000006
【図５】
2017041023.tif 000007
【図６】
2017041023.tif 000008
【図７】
2017041023.tif 000009
【図８】
2017041023.tif 000010
【図９】
2017041023.tif 000011
【図１０】
2017041023.tif 000012
【図１１】
2017041023.tif 000013
【図１５】
2017041023.tif 000014
【図１２】
2017041023.tif 000015
【図１３】
2017041023.tif 000016
【図１４】
2017041023.tif 000017