(57)【特許請求の範囲】
【請求項１】
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内の各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布をそれぞれ、前記データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、を備え、
前記データベースに登録された規制画像の距離分布、角度分布は、前記規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像内の各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布とを算出する画像度数分布算出手段を有する画像度数分布算出装置により得られたものであり、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像内の各エッジ点間を結ぶ方向のなす角度を、前記エッジ点間固有の角度として算出することを特徴とする立体物造形用データ出力規制装置。
【請求項２】
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像内の各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布とを算出する画像度数分布算出手段と、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内の各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記画像度数分布算出手段により算出された規制画像の距離分布、角度分布と、前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布と、を照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備え、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像内の各エッジ点間を結ぶ方向のなす角度を、前記エッジ点間固有の角度として算出することを特徴とする立体物造形用データ出力規制装置。
【請求項３】
前記画像度数分布算出手段は、前記規制画像の各画素の値に対して、事前に定義された複数のフィルタマトリクスを適用し、各画素について前記各フィルタマトリクスで算出された複数の強度の最大値をエッジ強度とし、最大値を与えるフィルタマトリクスに固有な方向を、前記エッジを特定する方向として算出し、エッジ強度が所定の値を超える画素を前記エッジ点として抽出し、前記規制画像のあるエッジ点から他のエッジ点へのベクトルを前記規制画像内の各エッジ点間を結ぶ方向を示すエッジ点間ベクトルとして求め、前記エッジ点間ベクトルと対応する一方のエッジ点のエッジを特定する方向とのなす角度を前記エッジ点間固有の角度として算出する際、前記エッジ点のエッジを特定する方向の補正は、対象とする前記エッジ点の周囲のエッジ点におけるエッジを特定する方向と当該周囲のエッジ点のエッジ強度を加重しながら平均化することにより行われることを特徴とする請求項１または請求項２に記載の立体物造形用データ出力規制装置。
【請求項４】
前記フィルタマトリクスとして、事前に定義された１６方向の３×３画素のフィルタマトリクスを適用し、各方向について事前に設定された値を用いて、各方向の強度を求める演算を行うことを特徴とする請求項３に記載の立体物造形用データ出力規制装置。
【請求項５】
前記画像度数分布算出手段は、前記１６方向の各方向について事前に設定された強度補正量を用いて、前記求められた各方向の強度を補正することを特徴とする請求項４に記載の立体物造形用データ出力規制装置。
【請求項６】
前記画像度数分布算出手段は、各画素について算出されたエッジ強度に対して、所定の設定最小値を減算し、減算した値に、エッジ強度の階調数を乗算し、当該階調数と前記設定最小値との差を除算することにより前記エッジ強度を補正し、補正されたエッジ強度が正の値になる画素を前記エッジ点として抽出することを特徴とする請求項３から請求項５のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項７】
前記画像度数分布算出手段は、前記距離分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする請求項３から請求項６のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項８】
前記画像度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記各エッジ点間固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項３から請求項７のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項９】
前記画像度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記エッジ点間ベクトルに対応するエッジ点のエッジ強度で重み付けするようにしていることを特徴とする請求項７または請求項８に記載の立体物造形用データ出力規制装置。
【請求項１０】
前記画像度数分布算出手段は、前記重み付けのための前記エッジ強度として、前記エッジ点間ベクトルの大きさをＤｅ、エッジ点間ベクトルの最大値をＤｅｍａｘとしたとき、Ｄｅ×｛Ｄｅｍａｘ2−Ｄｅ2｝1/2なる値を元のエッジ強度に乗じて補正を施した値を用いることを特徴とする請求項９に記載の立体物造形用データ出力規制装置。
【請求項１１】
前記モデル度数分布算出手段は、前記対象モデル内のあるポリゴンの平均座標から他のポリゴンの平均座標へのベクトルをポリゴン間ベクトルとして求め、当該ポリゴン間ベクトルの大きさを前記各ポリゴン間の距離、前記ポリゴン間ベクトルと対応する一方のポリゴンの法線ベクトルとのなす角度を前記各ポリゴン間固有の角度とすることにより、前記各ポリゴン間の距離と前記ポリゴン間固有の角度を算出することを特徴とする請求項１から請求項１０のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１２】
前記モデル度数分布算出手段は、前記距離分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする請求項１から請求項１１のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１３】
前記モデル度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記各ポリゴン間固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項１から請求項１２のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１４】
前記モデル度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記各ポリゴンの面積で重み付けするようにしていることを特徴とする請求項１２または請求項１３に記載の立体物造形用データ出力規制装置。
【請求項１５】
前記度数分布照合手段は、前記対象モデルの距離分布、角度分布をそれぞれ、前記規制画像の距離分布、角度分布と照合するにあたり、
前記距離分布同士の相関係数、前記角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする請求項１から請求項１４のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１６】
前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、
前記ポリゴンが削減された対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする請求項１から請求項１５のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１７】
出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、
前記部分対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする請求項１から請求項１６のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１８】
前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする請求項１７に記載の立体物造形用データ出力規制装置。
【請求項１９】
前記画像度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする請求項１に記載の立体物造形用データ出力規制装置。
【請求項２０】
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする請求項１から請求項１９のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項２１】
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記モデル度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする請求項１に記載の立体物造形用データ出力規制装置。
【請求項２２】
請求項１から請求項２１のいずれか一項に記載の立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システム。
【請求項２３】
コンピュータを、請求項１から請求項２１のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する３Ｄプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
【背景技術】
【０００２】
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する３Ｄプリンタが立体物造形装置として普及してきている。３Ｄプリンタは、立体物の３次元形状をポリゴンの集合で表現したポリゴンモデルを用いて立体物の出力を行う。３Ｄプリンタの医療応用として、医療診断で撮影されるCT/MRI画像（DICOM形式３次元ボクセルデータ）を基に、３Ｄプリンタ出力用モデリングデータ（ポリゴンモデル）を作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器（血管、骨、関節など）を作成したりする試みが始まっている。
【０００３】
３Ｄプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、３Ｄプリンタによりモノとして容易に入手可能になるという問題が発生している。
【０００４】
具体的には、あるＷＥＢサイトにて３Ｄプリンタを用いて所定のモデルの拳銃を製造できるＳＴＬ（Standard Triangulated Language）が無償で公開されている。金属製に比べて射程距離などは多少劣るが、３Ｄプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の３Ｄプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の３Ｄプリンタが普及するにあたり、３Ｄプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
【０００５】
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する手法が考えられ、その実現にあたり、ポリゴン同士を照合する技術が用いられている。しかし、３Ｄプリンタでの出力を規制すべき対象としては、３次元のポリゴンモデルを複製したものだけでなく、イラストや写真等の２次元で表現されたものを３次元化したものも含める必要がある。これに対応するため、２次元の画像を基に３次元のポリゴンモデルと照合を行う技術も開発されている（特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４７０９６６８号公報
【特許文献２】特許第５２７８８８１号公報
【特許文献３】特許第５５６０９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の技術は、いずれも３次元のポリゴンモデルを２次元に投影して画像を生成し、この画像から得られる特徴ベクトルを照合に用いるものであるため、投影条件により特徴ベクトルが一意に定まらない。このため、２次元の画像を基にして、３次元のポリゴンモデルの出力適正を判定するのは、難しいという問題がある。
【０００８】
そこで、本発明は、ポリゴンモデルを基に立体物の出力を行う際に、２次元の画像を基準として、出力を規制すべきか否かの判定を的確に行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明第１の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内の各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布をそれぞれ、前記データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、を備え、
前記データベースに登録された規制画像の距離分布、角度分布は、前記規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像内の各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布とを算出する画像度数分布算出手段を有する画像度数分布算出装置により得られたものであり、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像内の各エッジ点間を結ぶ方向のなす角度を、前記エッジ点間固有の角度として算出することを特徴とする立体物造形用データ出力規制装置を提供する。
【００１０】
ここで、対象物（オブジェクト）とは、規制画像中のポリゴンモデルに造形される対象領域であり、それ以外の領域は背景である。したがって、対象物とは、画像が写真であれば、被写体に相当する部分であり、人工的に作成された画像であれば、イラストやキャラクター等に相当する部分である。画像において対象物であるか背景であるかは、主観的なものとなるが、規制画像として登録される画像は、複製を防止したい部分が対象物として明確であることが多いため、対象物と背景の区分は比較的明確である。「エッジを特定する方向」とは、対象物と背景の境界線を設けた場合に、境界線に直交もしくは、直交に近い角度となる方向に相当する。
【００１１】
本発明第１の態様によれば、規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースを備え、対象モデルに対して、対象モデル内の各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布とを算出し、算出された対象モデルの距離分布、角度分布をそれぞれ、データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定するようにし、データベースに登録された規制画像の距離分布、角度分布は、規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、規制画像内の各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布とを算出する装置により得られたものであり、エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、規制画像内の各エッジ点間を結ぶ方向のなす角度を、エッジ点間固有の角度として算出するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、次元の異なる２次元の規制画像と照合を行うことにより出力を規制すべきか否かの判定を行うことが可能となる。特に、エッジ点間固有の角度を求めるために重要なエッジ点のエッジを特定する方向が基本的に所定数に限られる場合であっても、中間位置の方向に補正した角度で角度分布を得ることができ、連続的な分布が作成され、３次元のポリゴンモデルの角度分布との照合が行い易くなる。
【００１２】
また、本発明第２の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像内の各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布とを算出する画像度数分布算出手段と、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内の各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記画像度数分布算出手段により算出された規制画像の距離分布、角度分布と、前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布と、を照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備え、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像内の各エッジ点間を結ぶ方向のなす角度を、前記エッジ点間固有の角度として算出することを特徴とする立体物造形用データ出力規制装置を提供する。
【００１３】
本発明第２の態様によれば、規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布とを算出し、対象モデルに対して、対象モデルの各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布を算出し、対象モデルの距離分布、角度分布と、規制画像の距離分布、角度分布とを照合し、出力を規制すべきか否かを判定し、エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像内の各エッジ点間を結ぶ方向のなす角度を、エッジ点間固有の角度として算出するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、次元の異なる２次元の規制画像と照合を行うことにより、出力を規制すべきか否かの判定を的確に行うことが可能となる。特に、エッジ点間固有の角度を求めるために重要なエッジ点のエッジを特定する方向が基本的に所定数に限られる場合であっても、中間位置の方向に補正した角度で角度分布を得ることができ、連続的な分布が作成され、３次元のポリゴンモデルの角度分布との照合が行い易くなる。
【００１４】
また、本発明第３の態様では、前記画像度数分布算出手段は、前記規制画像の各画素の値に対して、事前に定義された複数のフィルタマトリクスを適用し、各画素について前記各フィルタマトリクスで算出された複数の強度の最大値をエッジ強度とし、最大値を与えるフィルタマトリクスに固有な方向を前記エッジを特定する方向として算出し、エッジ強度が所定の値を超える画素をエッジ点として抽出し、前記規制画像のあるエッジ点から他のエッジ点へのベクトルを前記規制画像内の各エッジ点間を結ぶ方向を示すエッジ点間ベクトルとして求め、前記エッジ点間ベクトルと対応する一方のエッジ点のエッジを特定する方向とのなす角度を前記エッジ点間固有の角度として算出する際、前記エッジ点のエッジを特定する方向の補正は、対象とする前記エッジ点の周囲のエッジ点におけるエッジを特定する方向と当該周囲のエッジ点のエッジ強度を加重しながら平均化することにより行われることを特徴とする。
【００１５】
本発明第３の態様によれば、規制画像の各画素の値に対して、事前に定義された複数のフィルタマトリクスを適用し、各画素について各フィルタマトリクスで算出された複数の強度の最大値をエッジ強度とし、最大値を与えるフィルタマトリクスに固有な方向を前記エッジを特定する方向として算出し、エッジ強度が所定の値を超える画素をエッジ点として抽出し、規制画像のあるエッジ点から他のエッジ点へのベクトルを前記規制画像内の各エッジ点間を結ぶ方向を示すエッジ点間ベクトルとして求め、エッジ点間ベクトルと対応する一方のエッジ点のエッジを特定する方向とのなす角度をエッジ点間固有の角度として算出する際、エッジ点のエッジを特定する方向の補正は、対象とする前記エッジ点の周囲のエッジ点におけるエッジを特定する方向と当該周囲のエッジ点のエッジ強度を加重しながら平均化することにより行われるようにしたので、モデル度数分布算出手段により得られる対象モデルの角度分布と整合性をもたせた角度分布を規制画像からも算出することができ、２次元の規制画像と３次元の対象モデルという相互に次元の異なるデータどうしの類似性を各々の角度分布を照合することにより判定することが可能となる。
【００１６】
また、本発明第４の態様では、前記フィルタマトリクス（エッジ抽出フィルタ）として、事前に定義された１６方向の３×３画素のフィルタマトリクスを適用し、各方向について事前に設定された値を用いて、各方向の強度を求める演算を行うことを特徴とする。
【００１７】
本発明第４の態様によれば、フィルタマトリクスとして、事前に定義された１６方向の３×３画素のフィルタマトリクスを適用し、各方向について事前に設定された値を用いて、各方向の強度を求める演算を行うようにしたので、規制画像において、対象物のエッジを構成する画素であるエッジ点を抽出するだけでなくエッジの方向を的確に算出することが可能となる。
【００１８】
また、本発明第５の態様では、前記画像度数分布算出手段は、前記１６方向の各方向について事前に設定された強度補正量を用いて、前記求められた各方向の強度を補正することを特徴とする。
【００１９】
本発明第５の態様によれば、フィルタマトリクスに対応した１６方向の各方向について事前に設定された強度補正量を用いて、求められた各方向の強度を補正するようにしたので、フィルタマトリクスの特性に応じた方向によるエッジ強度の偏りを適正なものに補正することが可能となる。
【００２０】
また、本発明第６の態様では、前記画像度数分布算出手段は、各画素について算出されたエッジ強度に対して、所定の設定最小値（ＳＬ）を減算し、減算した値に、エッジ強度の階調数を乗算し、当該階調数と前記設定最小値との差を除算することにより前記エッジ強度を補正し、補正されたエッジ強度が正の値になる画素を前記エッジ点として抽出することを特徴とする。
【００２１】
本発明第６の態様によれば、各画素について算出されたエッジ強度に対して、所定の設定最小値を減算し、減算した値に、エッジ強度の階調数を乗算し、当該階調数と前記設定最小値との差を除算することにより前記エッジ強度を補正し、補正されたエッジ強度が正の値になる画素を前記エッジ点として抽出するようにしたので、補正後のエッジ強度が正の値であるか否かを判定するだけで済み、効率的なエッジ点の抽出が可能となる。
【００２２】
また、本発明第７の態様では、前記画像度数分布算出手段は、前記距離分布を算出するにあたり、所定数（ＭＤ）の要素で構成される１次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする。
【００２３】
本発明第７の態様によれば、規制画像の距離分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、算出された距離の最大値の範囲を所定数に均等分割した上で、各距離をその距離に基づいて要素のいずれかに割り当て、要素に該当する数を計数するようにしたので、各エッジ点間の距離を用いて容易に距離分布を算出することが可能となる。
【００２４】
また、本発明第８の態様では、前記画像度数分布算出手段は、前記角度分布を算出するにあたり、所定数（ＭＡ）の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記各エッジ点間固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
【００２５】
本発明第８の態様によれば、規制画像の角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を所定数に均等分割した上で、各エッジ点間固有の角度に基づいて要素のいずれかに割り当て、要素の値を計数することにより、角度分布を算出するようにしたので、各エッジ点間固有の角度を用いて容易に角度分布を算出することが可能となる。
【００２６】
また、本発明第９の態様では、前記画像度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記エッジ点間ベクトルに対応するエッジ点のエッジ強度で重み付けするようにしていることを特徴とする。
【００２７】
本発明第９の態様によれば、規制画像の距離分布または角度分布を算出するにあたり、割り当てられた要素の値を計数する際、エッジ点間ベクトルに対応するエッジ点のエッジ強度で重み付けするようにしたので、規制画像の精細度の差異が、距離分布または角度分布にあまり反映せず、画素数が異なる複数の規制画像をデータベースに登録しなくても、的確に出力を規制すべきか否かを判定させることが可能となる。
【００２８】
また、本発明第１０の態様では、前記画像度数分布算出手段は、前記重み付けのための前記エッジ強度として、前記エッジ点間ベクトルの大きさをＤｅ（ｉ，ｊ）、エッジ点間ベクトルの最大値をＤｅｍａｘとしたとき、Ｄｅ（ｉ，ｊ）×｛Ｄｅｍａｘ2−Ｄｅ（ｉ，ｊ）2｝1/2なる値を元のエッジ強度に乗じて補正を施した値を用いることを特徴とする。
【００２９】
本発明第１０の態様によれば、重み付けのための前記エッジ強度として、エッジ点間ベクトルの大きさをＤｅ（ｉ，ｊ）、エッジ点間ベクトルの最大値をＤｅｍａｘとしたとき、Ｄｅ（ｉ，ｊ）×｛Ｄｅｍａｘ2−Ｄｅ（ｉ，ｊ）2｝1/2なる値を元のエッジ強度に乗じて補正を施した値を用いるようにしたので、２次元の平面的な規制画像から３次元の球面的な特徴を有する距離分布が得られ、より的確な判定を行うことが可能となる。
【００３０】
また、本発明第１１の態様では、前記モデル度数分布算出手段は、前記対象モデル内のあるポリゴンの平均座標から他のポリゴンの平均座標へのベクトルをポリゴン間ベクトルとして求め、当該ポリゴン間ベクトルの大きさを前記各ポリゴン間の距離、前記ポリゴン間ベクトルと対応する一方のポリゴンの法線ベクトルとのなす角度を前記各ポリゴン間固有の角度とすることにより、前記各ポリゴン間の距離と前記ポリゴン間固有の角度を算出することを特徴とする。
【００３１】
本発明第１１の態様によれば、あるポリゴンの平均座標から他のポリゴンの平均座標へのベクトルをポリゴン間ベクトルとして求め、ポリゴン間ベクトルの大きさを各ポリゴン間の距離、ポリゴン間ベクトルと対応する一方のポリゴンの法線ベクトルとのなす角度を各ポリゴン間固有の角度とすることにより、各ポリゴン間の距離とポリゴン間固有の角度を算出するようにしたので、各ポリゴンの３次元空間的な位置関係を反映し、ポリゴンモデルの形状特徴を正確に反映した度数分布を容易に算出することが可能となる。
【００３２】
また、本発明第１２の態様では、前記モデル度数分布算出手段は、前記距離分布を算出するにあたり、所定数（ＭＤ）の要素で構成される１次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする。
【００３３】
本発明第１２の態様によれば、距離分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、算出された距離の最大値の範囲を所定数に均等分割した上で、各距離をその距離に基づいて所定数のいずれかの要素に割り当て、その要素に該当する数を計数することにより、距離分布を算出するようにしたので、各ポリゴン間の距離を用いて容易に距離分布を算出することが可能となる。
【００３４】
また、本発明第１３の態様では、前記モデル度数分布算出手段は、前記角度分布を算出するにあたり、所定数（ＭＡ）の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記各ポリゴン間固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
【００３５】
本発明第１３の態様によれば、角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を所定数に均等分割した上で、各ポリゴン固有の角度に基づいて所定数のいずれかの要素に割り当て、その要素の値を計数することにより、角度分布を算出するようにしたので、あるポリゴンから他のポリゴンへのベクトルを用いて容易に角度分布を算出することが可能となる。
【００３６】
また、本発明第１４の態様では、前記モデル度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記ポリゴン間ベクトルに対応するポリゴンの面積で重み付けするようにしていることを特徴とする。
【００３７】
本発明第１４の態様によれば、距離分布または角度分布を算出するにあたり、割り当てられた要素の値を計数する際、ポリゴン間ベクトルに対応するポリゴンの面積で重み付けするようにしたので、ポリゴン分割の精細度の差異が、距離分布または角度分布にあまり反映せず、ポリゴン分割の精細度が異なる複数のポリゴンモデルに対して同一（出力を規制すべき）であると判定させることが可能となる。
【００３８】
また、本発明第１５の態様では、
前記度数分布照合手段は、前記対象モデルの距離分布、角度分布をそれぞれ、前記規制画像の距離分布、角度分布と照合するにあたり、
前記距離分布同士の相関係数、前記角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
【００３９】
本発明第１５の態様によれば、対象モデルの距離分布、角度分布をそれぞれ、規制画像の距離分布、角度分布と照合するにあたり、距離分布同士の相関係数、角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしたので、対象モデルと規制画像の特徴の照合を、迅速かつ的確に行うことが可能となる。
【００４０】
また、本発明第１６の態様では、前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、前記ポリゴンが削減された対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする。
【００４１】
本発明第１６の態様によれば、まず、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、距離分布、角度分布を算出するようにしたので、対象モデルの微細形状の相違を許容して高速に出力が適正か否かの判断を行うことが可能となる。
【００４２】
また、本発明第１７の態様では、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、前記部分対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする。
【００４３】
本発明第１７の態様によれば、まず、対象モデルを複数の部分対象モデルに分割し、部分対象モデルに対して、距離分布、角度分布を算出するようにしたので、複数の部品で構成される物品を表現した対象モデルの照合の際、規制画像を基に作成されたものと対象モデルとで互いに部品構成が異なる場合でも、適切に出力が適正か否かの判断を行うことが可能となる。
【００４４】
また、本発明第１８の態様では、前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする。
【００４５】
本発明第１８の態様によれば、ポリゴンは三角形であり、対象モデル分割手段は、あるポリゴンと、そのポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように分割するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分割することが可能となる。
【００４６】
また、本発明第１９の態様では、前記規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の各エッジ点間の距離と各エッジ点間固有の角度を算出し、算出結果に基づいて各エッジ点間の距離の度数分布である距離分布と、前記各エッジ点間固有の角度の度数分布である角度分布を算出する画像度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする。
【００４７】
本発明第１９の態様によれば、規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、規制画像の各エッジ点間の距離と各エッジ点間固有の角度を算出し、算出結果に基づいて各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布を算出する画像度数分布算出装置を別途用意し、この画像度数分布算出装置から規制画像の度数分布を受信し、データベースに登録するようにしたので、データベースの更新を遠隔地から迅速に行うことが可能となる。
【００４８】
また、本発明第２０の態様では、
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである（出力不適）と判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする。
【００４９】
本発明第２０の態様によれば、対象モデルを、接続された立体物造形装置に出力し、並行して実行される度数分布照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
【００５０】
また、本発明第２１の態様では、
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記モデル度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を更に有することを特徴とする。
【００５１】
本発明第２１の態様によれば、ネットワークを介して対象モデルの距離分布と角度分布を受信し、出力を規制すべきか否かの判定により得られた出力を規制すべきか否かに基づくデータを対象モデルの距離分布と角度分布の送信元に送信するようにしたので、出力を規制すべきか否かの判定をクラウド型で提供することができ、出力側における処理を軽減することができる。更に、データベースをクラウド側で一元管理でき、３Ｄプリンタ等の立体物造形装置ごとに接続されている出力制御用端末内でデータベースを管理する必要がないため、常に最新のデータベースに基づいて出力を規制すべきか否かの判定を行うことが可能になる。
【００５２】
また、本発明第２２の態様では、
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
【００５３】
本発明第２２の態様によれば、立体物造形用データ出力規制装置と、立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ３Ｄプリンタ等の形態で、立体物造形システムを提供することが可能となる。
【発明の効果】
【００５４】
本発明によれば、ポリゴンモデルを基に立体物の出力を行う際に、２次元の画像を基準として、出力を規制すべきか否かの判定を的確に行うことが可能となる。
【図面の簡単な説明】
【００５５】
【図１】本発明の基本概念を説明するための図である。
【図２】画像度数分布算出装置３００のハードウェア構成図である。
【図３】画像度数分布算出装置３００の構成を示す機能ブロック図である。
【図４】画像度数分布算出装置３００の処理動作を示すフローチャートである。
【図５】フィルタマトリクスである１６方向エッジ抽出フィルタを示す図である。
【図６】方向別のエッジ強度補正量を記録したエッジ強度補正テーブルを示す図である。
【図７】距離分布と角度分布における距離と角度の関係を示す図である。
【図８】本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。
【図９】本発明第１の実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。
【図１０】本発明第１の実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。
【図１１】ステップＳ１００のモデル度数分布の算出処理の詳細を示すフローチャートである。
【図１２】ステップＳ２００の度数分布の照合処理の詳細を示すフローチャートである。
【図１３】本発明第２の実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。
【図１４】本発明第２の実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。
【図１５】２つの球体モデルＡ、Ｂそれぞれに対して得られる距離分布と角度分布を示す図である。
【図１６】２つの球体モデルＢ、Ｃそれぞれに対して得られる距離分布と角度分布を示す図である。
【図１７】ポリゴン削除の基本原理を示す図である。
【図１８】ポリゴン削減処理の詳細を示すフローチャートである。
【図１９】対象モデル分割処理の詳細を示すフローチャートである。
【図２０】変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。
【図２１】クラウド型の立体物造形システムのハードウェア構成図である。
【図２２】クラウド型の立体物造形システムの機能ブロック図である。
【図２３】球体ａと円ｂに対する度数分布算出事例を示す図である。
【図２４】球体ｃに対する度数分布算出事例を示す図である。
【図２５】達磨ｄと達磨ｅに対する度数分布算出事例を示す図である。
【図２６】達磨ｆに対する度数分布算出事例を示す図である。
【発明を実施するための形態】
【００５６】
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
＜１．本発明の基本概念＞
最初に、本発明の基本概念について説明しておく。３Ｄプリンタでキャラクターのモチーフ画像を基に、フィギュアを造形するためには、３次元のポリゴンモデルを制作する必要があるが、近年、画面上に表示されているイラストや写真の上をトレースするだけで、自動的に円柱形状などにより奥行きを付加し、３次元のポリゴンモデルを半自動的に制作できるツールの開発が活発になっている。これに伴い、キャラクターやイラストなど著作物性の高い二次元の画像を基に、３Ｄプリンタにより違法なフィギュアが容易に制作され、金型等で成形されるフィギュア正規品の市場が圧迫されようとしている。
【００５７】
本発明では、キャラクターやイラストなど著作物性の高い二次元の画像を基に、３次元のポリゴンモデルを作成し、このポリゴンモデルをキャラクターやイラストの権利者の許可なく出力しようとした際に、出力を規制することを一つの目的としている。しかし、事前に違法なフィギュアの３次元のポリゴンモデルをデータベース化することは困難で、たとえデータベースに登録できても、キャラクターのモチーフ画像を基に制作される３次元のポリゴンモデルの形状には無尽蔵の多様性があり、出力対象のポリゴンモデルをデータベースに登録されているポリゴンモデルと照合する方法ではタイムリーな出力規制を行うことができない。そこで、データベースには多様性が少ない典型的なキャラクターの２次元モチーフ画像を登録し、３次元のポリゴンモデルを３Ｄプリンタで出力しようとした際に、登録されている２次元の画像を用いて照合を行えるようにする機能を実現する必要がある。
【００５８】
図１は、本発明の基本概念を説明するための図である。図１（ａ）は、出力しようとする３次元のポリゴンモデルであり、図１（ｂ）は、データベースに登録された規制すべき２次元の画像である。本発明では、図１（ａ）に示したポリゴンモデルから図１（ｃ）に示した距離、角度についての２種の度数分布を作成し、図１（ｂ）に示した画像から図１（ｃ）に示したような距離、角度についての２種の度数分布を図１（ｄ）に示すように作成する。そして、図１（ｃ）および図１（ｄ）に示す距離、角度についての２種の度数分布に対して、互いに整合性をもたせるようにすれば、これらを照合し、その相関をとることにより、図１（ａ）に示すポリゴンモデルと図１（ｂ）に示す画像の類似性を判定することができる。ポリゴンモデルが登録された画像に類似する特徴をもつ場合には、当該ポリゴンモデルの出力が規制されることになる。
【００５９】
＜２．第１の実施形態＞
＜２．１．画像度数分布算出装置の装置構成＞
第１の実施形態では、３次元のポリゴンモデルの出力適否の判定を行う際に、ポリゴンモデルから作成した度数分布と、規制対象とする２次元の画像から作成した度数分布との照合を行う。このため、事前に画像から度数分布を作成しておく必要がある。まず、このような画像から度数分布を作成する画像度数分布算出装置について説明する。
【００６０】
図２は、画像度数分布算出装置のハードウェア構成図である。画像度数分布算出装置３００は、汎用のコンピュータで実現することができ、図２に示すように、ＣＰＵ（Central Processing Unit）８１と、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）８２と、ＣＰＵ８１が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置８３と、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）８４と、３Ｄプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）８５と、液晶ディスプレイ等の表示デバイスである表示部８６と、を備え、互いにバスを介して接続されている。
【００６１】
図３は、画像度数分布算出装置の構成を示す機能ブロック図である。図３において、９１は規制画像記憶手段、９２は画像度数分布算出手段、９３は画像度数分布記憶手段である。
【００６２】
画像度数分布算出手段９２は、規制対象の画像である規制画像に対して、規制画像内の各エッジ点間の距離と各エッジ点間固有の角度を算出し、算出結果に基づいて各エッジ点間の距離の度数分布である距離分布と、各エッジ点間固有の角度の度数分布である角度分布を算出する処理を行う。
【００６３】
画像度数分布算出手段９２は、ＣＰＵ８１が、記憶装置８３に記憶されているプログラムを実行することにより実現される。規制画像記憶手段９１は、出力を規制すべき画像である規制画像を記憶した記憶手段であり、記憶装置８３により実現される。
【００６４】
画像度数分布記憶手段９３は、出力を規制すべき画像である規制画像に対して、２種の度数分布として算出された距離分布および角度分布を記憶して、データベース化したものであり、記憶装置８３により実現される。２種の度数分布である距離分布および角度分布は、規制画像の特徴を表現した特徴ベクトルとしての役割を果たすものとなる。即ち、２種の度数分布により、元の規制画像の相違を識別可能であるが、元の規制画像を復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、２種の度数分布は、著作物としての役割は果たさないが、２つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割を果たすことになる。画像度数分布記憶手段９３には、距離分布および角度分布だけでなく、距離分布および角度分布の算出の基になった規制画像自体を登録しておけば類似性が判定された規制画像に対してヒトが目視で確認できるため、通常は、著作権者から許諾を受け、商用品質に値しない解像度で規制画像自体も登録される。
【００６５】
図３に示した各構成手段は、現実には図２に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
【００６６】
図２に示した記憶装置８３には、ＣＰＵ８１を動作させ、コンピュータを、画像度数分布算出装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、ＣＰＵ８１は、画像度数分布算出手段９２としての機能を実現することになる。また、記憶装置８３は、規制画像記憶手段９１、画像度数分布記憶手段９３として機能するだけでなく、画像度数分布算出装置としての処理に必要な様々なデータを記憶する。
【００６７】
＜２．２．画像度数分布算出装置の処理動作＞
次に、図２、図３に示した画像度数分布算出装置の処理動作について説明する。画像度数分布算出装置の画像度数分布算出手段９２は、出力を規制すべき画像である規制画像について、２種の度数分布である距離分布および角度分布を算出する。図４は、度数分布の算出処理の詳細を示すフローチャートである。ここでは、後述するフィルタ演算を簡便に行うため、規制画像を２５６階調のモノクロ画像として扱う。したがって、カラー画像の場合は、事前に２５６階調のモノクロ画像に変換する処理を行っておき、二値画像の場合は、０または２５５のいずれかの値をもつ２５６階調のモノクロ画像として処理する。したがって、ｘ方向の画素数Ｘｓ、ｙ方向の画素数Ｙｓの規制画像は、Ｉｍｇ（ｘ，ｙ）＝０〜２５５（ｘ＝０，・・・，Ｘｓ−１；ｙ＝０，・・・，Ｙｓ−１）と定義される。規制画像には、対象物部分と背景部分が存在し、対象物部分はグレーまたは白く表示されるＩｍｇ（ｘ，ｙ）＞０に設定し、背景部分は黒く表示されるＩｍｇ（ｘ，ｙ）＝０に設定する。規制画像の四隅は、背景となるため、Ｉｍｇ（０，０）＝Ｉｍｇ（０，Ｙｓ−１）＝Ｉｍｇ（Ｘｓ−１，０）＝Ｉｍｇ（Ｘｓ−１，Ｙｓ−１）＝０となっている。
【００６８】
画像度数分布算出手段９２は、まず、規制画像の各画素についてフィルタ演算を行い、各画素のエッジ強度とエッジ方向ベクトルを算出する（ステップＳ５１０）。まず、フィルタ演算に用いるフィルタマトリクスであるエッジ抽出フィルタについて説明する。フィルタマトリクスとは、マトリクスフィルタ、空間フィルタなどとも呼ばれ、一般には、中心画素（注目画素）とその周囲の画素の画素値を使用して中心画素の画素値を変換するために用いられるものである。基本的には、規制画像内の全ての画素を対象として行う。
【００６９】
図５は、本実施形態で用いる１６方向エッジ抽出フィルタを示す図である。図５に示す１６方向エッジ抽出フィルタは、自身を含めた８近傍の９画素の値を１６方向の各方向に応じて重みを変化させたものとなっている。図５の例では、方向０から方向１５までの１６方向について示している。方向０の場合を例にとって説明すると、右側の（０．０，−１．０）は、方向０を特定する単位ベクトルである方向ベクトルを示している。また、縦３×横３の９個の数字は、Ｍ（ｄ，ｕ，ｖ）＝[−２，−１，１，２]で定義される重みを示している。重みは、−２，−１，１，２の４つの値をとる。そして、９個の数字は、中心を（ｕ，ｖ）＝（０，０）として、ｕ，ｖがそれぞれ−１，０，１の３通りの値をとる。中心の場合、ｄの値のいかんに関わらず必ずＭ（ｄ，０，０）＝１であり、中心以外の場合、方向ｄに応じてＭ（ｄ，ｕ，ｖ）の値の−２、−１，１および２の位置が異なっている。方向０（ｄ＝０）の場合、図５の右側の例に示すように、重みＭ（ｄ，ｕ，ｖ）は、Ｍ（０，−１，−１）＝−２〜Ｍ（０，１，１）＝１の９個が定義される。この際、方向０の場合のフィルタの方向ベクトルＥｘ（ｄ），Ｅｙ（ｄ）はＥｘ（０）＝０．０，Ｅｙ（０）＝−１．０となる。図５に示した１６方向エッジ抽出フィルタは２２．５度刻みで方向を変化させたものである。
【００７０】
画像度数分布算出手段９２は、図５に示したエッジ抽出フィルタＭ（ｄ，ｕ，ｖ）を用いて以下の〔数式１〕に従った処理を実行し、各画素のエッジ強度とエッジ方向ベクトルを決定する。
【００７１】
〔数式１〕
Ｆ（ｄ，ｘ，ｙ）＝［Σv=-1,1Σu=-1,1Ｍ（ｄ，ｕ，ｖ）[Ｉｍｇ（ｘ，ｙ）−１２８] ］／６
ＥＫ（ｘ，ｙ）＝Ｆ（ｄｍａｘ，ｘ，ｙ）＝ＭＡＸd=0,D-1Ｆ（ｄ，ｘ，ｙ）
Ｖｘ（ｘ，ｙ）＝Ｅｘ（ｄｍａｘ）
Ｖｙ（ｘ，ｙ）＝Ｅｙ（ｄｍａｘ）
【００７２】
上記〔数式１〕の第１式において、Σの添え字の“ｖ＝−１，１”、“ｕ＝−１，１”は、ｖが−１から１、ｕが−１から１の全ての整数をとる場合について、総和を求めることを示している。上記〔数式１〕の第１式により、各画素について、強度を表すフィルタ演算値Ｆ（ｄ，ｘ，ｙ）が得られる。上記〔数式１〕の第２式において、“ＭＡＸd=0,D”は、方向ｄ＝０から方向ｄ＝Ｄ−１までの全ての方向の中での最大値を示している。１６方向エッジ抽出フィルタを用いる場合は、Ｄ＝１６である。上記〔数式１〕の第２式により、最大のフィルタ演算値が、各画素のエッジ強度ＥＫ（ｘ，ｙ）として得られる。また、最大のフィルタ演算値をとり、エッジ強度を与える方向ｄをｄｍａｘとする。上記〔数式１〕の第３式、第４式により、画素（ｘ，ｙ）のエッジ方向ベクトルＶｘ（ｘ，ｙ），Ｖｙ（ｘ，ｙ）は、方向ｄｍａｘの方向として得られる。エッジ方向ベクトルとは、エッジ点（対象物のエッジを構成する画素）のエッジを特定する方向を示すベクトルであり、規制画像における対象物と背景との境界部においては境界線と直交し対象物から背景方向に横切る方向を示す。規制画像の対象物内部においては、濃淡差が顕著な境界部においては、境界線と直交し濃度が薄い（白いに近い）方から濃度が濃い（黒に近い）方向に横切る方向を示す。
【００７３】
次に、画像度数分布算出手段９２は、各画素のエッジ強度の補正および階調補正を行う（ステップＳ５２０）。まず、方向別のエッジ強度補正量を用いてエッジ強度の補正を行う。方向別のエッジ強度補正量Ｔｃ（ｄ）を記録したエッジ強度補正テーブルを図６に示す。図６に示すように、エッジ強度補正テーブルには、方向ｄ＝０〜１５それぞれについて、エッジ強度補正量が記録されている。図６に示すエッジ強度補正テーブルでは、エッジ強度補正量を％単位で示している。上述のように、１６方向エッジ抽出フィルタは２２．５度刻みとなっており、これに対応してエッジ強度補正テーブルも２２．５度刻みとなっている。図６の例では、方向ｄが４つ異なるごと、すなわち９０度異なるごとにエッジ強度補正量が同一値となるように繰り返されている。これは、１６方向エッジ抽出フィルタにより算出されるエッジ強度が、９０度単位で所定の特性をもつため、それに応じて補正をする必要が生じることを意味している。
【００７４】
画像度数分布算出手段９２は、図６に示したエッジ強度補正量Ｔｃ（ｄ）を用いて以下の〔数式２〕に従った処理を実行し、各画素のエッジ強度を補正する。
【００７５】
〔数式２〕
ＥＫ´（ｘ，ｙ）＝ＥＫ（ｘ，ｙ）・Ｔｃ（ｄ）／１００
【００７６】
上記〔数式２〕において、“・”は、乗算を示している。Ｔｃ（ｄ）は、図６に示したような％単位の数値であるため、補正前のエッジ強度に乗じた後、１００で除算している。この結果、補正されたエッジ強度ＥＫ´（ｘ，ｙ）が得られる。
【００７７】
次に、画像度数分布算出手段９２は、エッジ強度の階調補正（コントラスト補正）を行う。具体的には、以下の〔数式３〕に従った処理を実行し、各画素のエッジ強度の階調補正を行う。
【００７８】
〔数式３〕
ＥＫ´´（ｘ，ｙ）＝｛ＥＫ´（ｘ，ｙ）−ＳＬ｝・２５６／｛２５６−ＳＬ｝
【００７９】
上記〔数式３〕において、２５６は階調数であり、規制画像の画素が取り得る０〜２５５の数を示している。ＳＬは、階調補正後に最小とする値である設定最小値を示している。設定最小値ＳＬについては、適宜設定することができるが、元の画像が０〜２５５の値を取り得る場合に、７２程度とすることが好ましい。この、設定最小値は、実質的には、エッジ強度と比較することによりエッジ点とするか否かを判定するためのしきい値として機能する。
【００８０】
〔数式２〕によるエッジ強度補正、〔数式３〕による階調補正を行った結果、補正されたエッジ強度ＥＫ´´（ｘ，ｙ）が得られるが、説明が繁雑になるのを避けるため、以下では、補正されたエッジ強度をＥＫ（ｘ，ｙ）として説明する。
【００８１】
次に、エッジ点の抽出を行う（ステップＳ５３０）。具体的には、ステップＳ５２０において補正されたエッジ強度と、事前に設定されたしきい値とを比較し、エッジ強度がしきい値以上の画素をエッジ点として抽出する。ステップＳ５２０において階調補正を行っている場合は、しきい値として“０”を設定し、階調補正後のエッジ強度が０以上の画素が抽出されるようにすることが好ましい。
【００８２】
次に、画像度数分布算出手段９２は、エッジ方向ベクトルの補正を行う（ステップＳ５４０）。上述のように、エッジ方向ベクトルは、エッジ抽出フィルタを用いて、方向ｄの数Ｄのいずれかの方向を示すベクトルとして算出される。したがって、例えば、Ｄ＝１６の場合、１６通りの方向しかなく、これを用いて算出されるあるエッジ点から他のエッジ点へのベクトル（エッジ点間ベクトル）とのなす角度は、不連続なものになる（エッジ点間ベクトルの方が連続量のため、これとのなす角は１６段階に限定されるわけではないが、かなり粗いものになる）。一方、比較対象とする３次元のポリゴンモデルにおいて特定される角度は、エッジ方向ベクトルに相当するポリゴンの法線ベクトルを用いて算出され、法線ベクトルは３次元空間内の連続量であるため、これを用いて算出されるあるポリゴンから他のポリゴンへのベクトル（ポリゴン間ベクトル）とのなす角度は０〜１８０度の範囲で連続量となる。そのため、規制画像から作成される角度分布は、対象モデルから作成される角度分布に比べて、角度の分解能が粗いものとなり、両者の相関を精度良く計算できなくなる。そのため、ここでは、エッジ点として特定された画素の周囲の画素を用いて、エッジ方向ベクトルの補正を行っている。具体的には、以下の〔数式４〕に従った処理を実行し、各エッジ点のエッジ方向ベクトルを補正する。
【００８３】
〔数式４〕
Ｖｘ´（ｘ，ｙ）＝［Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)Ｖｘ（ｘ＋ｕ，ｙ＋ｖ）・ＥＫ（ｘ＋ｕ，ｙ＋ｖ）］／［Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)ＥＫ（ｘ＋ｕ，ｙ＋ｖ）］
Ｖｙ´（ｘ，ｙ）＝［Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)Ｖｙ（ｘ＋ｕ，ｙ＋ｖ）・ＥＫ（ｘ＋ｕ，ｙ＋ｖ）］／［Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)ＥＫ（ｘ＋ｕ，ｙ＋ｖ）］
【００８４】
上記〔数式４〕においては、ＥＫ（ｘ＋ｕ，ｙ＋ｖ）≧ＥＫ（ｘ，ｙ）となる画素についてのみ演算を行っている（中心となる画素（ｘ，ｙ）も加算対象）。ＥＫ（ｘ＋ｕ，ｙ＋ｖ）≧ＥＫ（ｘ，ｙ）とは、中心となる画素（エッジ点）のエッジ強度ＥＫ（ｘ，ｙ）以上のエッジ強度を有する周囲のエッジ点の画素（ｘ＋ｕ，ｙ＋ｖ）についてのみ、総和演算を行うことを示している。上記〔数式４〕の分子においては、補正前のエッジ方向ベクトルに補正前のエッジ強度を乗じており、上記〔数式４〕の分母においては、中心の画素（エッジ点）とその８近傍画素を合わせた最大９画素の平均エッジ強度を算出している。結局、上記〔数式４〕においては、対象とするエッジ点（ｘ，ｙ）の周囲のエッジ点（ｘ＋ｕ，ｙ＋ｖ）におけるエッジを特定する方向Ｖｘ（ｘ＋ｕ，ｙ＋ｖ）と周囲のエッジ点のエッジ強度ＥＫ（ｘ＋ｕ，ｙ＋ｖ）を加重しながら平均化していることになる。
【００８５】
次に、画像度数分布算出手段９２は、各エッジ点間のベクトルの算出を行う（ステップＳ５５０）。ステップＳ５３０において抽出したエッジ点の抽出順をｉとすると、Ｎｅ個のエッジ点が抽出された場合、エッジ点の配列は［Ｘｅ（ｉ），Ｙｅ（ｉ）］（ｉ＝０，・・・，Ｎｅ―１）と定義することができる。そして、ｉ番目のエッジ点のエッジ強度ＥＫ（ｉ）＝ＥＫ（Ｘｅ（ｉ），Ｙｅ（ｉ））とする。さらに、画像度数分布算出手段９２は、以下の〔数式５〕に従った処理を実行することにより、規制画像内のあるエッジ点ｉ（Ｘｅ（ｉ），Ｙｅ（ｉ））から同じ規制画像内の他のエッジ点ｊ（ｊ＝０，・・・，Ｎｅ−１）（Ｘｅ（ｊ），Ｙｅ（ｊ））へのベクトルであるエッジ点間ベクトル（Ｄｘｅ（ｉ，ｊ），Ｄｙｅ（ｉ，ｊ））を算出する。なお、エッジ点間ベクトルは、自分以外の他のエッジ点へのベクトルであるため、ｉ＝ｊの場合を除外している。
【００８６】
〔数式５〕
Ｄｘｅ（ｉ，ｊ）＝Ｘｅ（ｊ）−Ｘｅ（ｉ）
Ｄｙｅ（ｉ，ｊ）＝Ｙｅ（ｊ）−Ｙｅ（ｉ）
【００８７】
次に、画像度数分布算出手段９２は、各エッジ点間の最大距離の算出を行う（ステップＳ５６０）。具体的には、以下の〔数式６〕に従った処理を実行することにより、規制画像内のあるエッジ点ｉ（Ｘｅ（ｉ），Ｙｅ（ｉ））から他のエッジ点ｊ（Ｘｅ（ｊ），Ｙｅ（ｊ））までの距離Ｄｅ（ｉ，ｊ）を求め、Ｎｅ×（Ｎｅ−1）／２個の距離Ｄｅ（ｉ，ｊ）のうち最大のものを最大距離Ｄｅｍａｘとする。
【００８８】
〔数式６〕
Ｄｅ（ｉ，ｊ）＝[Ｄｘｅ（ｉ，ｊ）2＋Ｄｙｅ（ｉ，ｊ）2]1/2
Ｄｅｍａｘ＝ＭＡＸj=0,Ne-1;i=0,Ne-1Ｄｅ（ｉ，ｊ）
【００８９】
上記〔数式６〕において、ＭＡＸは、添え字の“ｉ，ｊ”の取り得る範囲であるｉ＝０，・・・，Ｎｅ−１、ｊ＝０，・・・，Ｎｅ−１（ｉ＝ｊの場合を除く）におけるＤｅ（ｉ，ｊ）の中から最大値を選択することを示している。
【００９０】
次に、画像度数分布算出手段９２は、エッジ点間ベクトルと、対応するエッジ点のエッジ方向ベクトルのなす角度の算出を行う（ステップＳ５７０）。具体的には、以下の〔数式７〕に従った処理を実行することにより、エッジ点ｉとエッジ点ｊの間のエッジ点間ベクトル（Ｄｘｅ（ｉ，ｊ），Ｄｙｅ（ｉ，ｊ））と、エッジ点ｊのエッジ方向ベクトル（Ｖｘ（ｊ），Ｖｙ（ｊ））（＝（Ｖｘ（ｘ，ｙ），Ｖｙ（ｘ，ｙ）））のなす角度Ａｅ（ｉ，ｊ）を算出する。
【００９１】
〔数式７〕
Ａｅ（ｉ，ｊ）＝[ｃｏｓ-1[Ｄｘｅ（ｉ，ｊ）・Ｖｘ（ｊ）＋Ｄｙｅ（ｉ，ｊ）・Ｖｙ（ｊ）]／Ｄｅ（ｉ，ｊ）］・１８０／π
【００９２】
上記〔数式７〕においては、単位をラジアンから度に変更するため［］で括られた部分に１８０／πを乗じている。したがって、Ａｅ（ｉ，ｊ）は、０〜１８０の値をとることになる。各エッジ点間ベクトルと各エッジ方向ベクトルのなす角度は、各エッジ点間固有の角度となる。
【００９３】
次に、画像度数分布算出手段９２は、各エッジ点間の距離分布を算出する（ステップＳ５８０）。本実施形態で算出される距離分布は、エッジ強度を加重した距離の分布であり、要素数をＭＤとし、各要素ｍｄ（ｍｄ＝０，・・・，ＭＤ−１）の度数をＨｄｏ（ｍｄ）と表す。
【００９４】
画像度数分布算出手段９２は、初期値をＨｄｏ（ｍｄ）＝０、ＥＫｓｕｍ＝０と設定し、ｉ＝０，・・・，Ｎｅ−１、ｊ＝０，・・・，Ｎｅ−１（ｉ＝ｊの場合を除く）において、以下の〔数式８〕に従った処理を実行することにより、要素ｍｄの度数Ｈｄｏ（ｍｄ）を算出する。ここで、ＥＫｓｕｍは距離分布Ｈｄｏ（ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）において加重されるエッジ強度の総和である。
【００９５】
〔数式８〕
Ｄｅｍａｘ・ｍｄ／ＭＤ≦Ｄｅ（ｉ，ｊ）＜Ｄｅｍａｘ・（ｍｄ＋１）／ＭＤならば、
Ｈｄｏ（ｍｄ）←Ｈｄｏ（ｍｄ）＋ＥＫ（ｊ）
ＥＫｓｕｍ←ＥＫｓｕｍ＋ＥＫ（ｊ）
【００９６】
上記〔数式８〕は、エッジ点ｉからエッジ点ｊまでの距離Ｄｅ（ｉ，ｊ）が、最大距離Ｄｅｍａｘにｍｄ／ＭＤを乗じた値以上で、（ｍｄ＋１）／ＭＤを乗じた値より小さい場合に、Ｈｄｏ（ｍｄ）にエッジ点ｊのエッジ強度ＥＫ（ｊ）を加算することを意味している。
【００９７】
上記〔数式８〕に従った処理を、Ｎｅ（Ｎｅ−１）／２個のエッジ点間について実行することにより、距離分布Ｈｄｏ（ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）が算出される。各要素には、単なる頻度ではなく、エッジ強度ＥＫ（ｊ）が加算されているため、距離分布Ｈｄｏ（ｍｄ）は、エッジ強度加重の距離分布を示すことになる。エッジ強度ＥＫ（ｊ）でなく単に１を加算するようにすることも可能であるが、その場合、エッジ強度が加味されない距離分布となり、同一の規制画像に対して画素が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、距離分布の算出時にエッジ点のエッジ強度を加算するようにしている。上記〔数式８〕に従った処理の実行後、さらにＨｄｏ（ｍｄ）に１００／ＥＫｓｕｍを乗じてＨｄｏ（ｍｄ）と置き換える処理を実行することにより、単位をエッジ強度率［％］に正規化してもよい。
【００９８】
上記〔数式８〕に従った処理により算出される距離分布は、２次元の規制画像から得られるものであるので、このままでは、後に３次元のポリゴンモデルから得られる距離分布との照合に最適な状態とはなっていない。このため、２次元の規制画像から距離分布を算出する際、球面補正を行うことが好ましい。具体的には、以下の〔数式９〕に従った処理を実行することにより、球面補正エッジ強度ＥＫａ（ｊ）を算出する。
【００９９】
〔数式９〕
ＥＫａ（ｊ）＝ＥＫ（ｊ）・Ｄｅ（ｉ，ｊ）・｛Ｄｅｍａｘ2−Ｄｅ（ｉ，ｊ）2｝1/2
【０１００】
上記〔数式９〕に従った処理を実行することにより算出された球面補正エッジ強度ＥＫａ（ｊ）を、上記〔数式８〕におけるＥＫ（ｊ）と置き換えて上記〔数式８〕に従った処理を実行する。球面補正エッジ強度ＥＫａ（ｊ）を用いることにより、球面補正が行われ、平面的な規制画像から球面的な特徴を有する距離分布が得られる。
【０１０１】
次に、画像度数分布算出手段９２は、エッジ点間ベクトルと、対応するエッジ点のエッジ方向ベクトルの角度分布を算出する（ステップＳ５９０）。本実施形態で算出される角度分布は、エッジ強度を加重した角度の分布であり、要素数をＭＡとし、各要素ｍａ（ｍａ＝０，・・・，ＭＡ−１）の度数をＨａｏ（ｍａ）と表す。要素数ＭＡは、上記要素数ＭＤと同一であってもよい。
【０１０２】
画像度数分布算出手段９２は、初期値をＨａｏ（ｍａ）＝０と設定し、以下の〔数式１０〕に従った処理を実行することにより、要素ｍａの度数Ｈａｏ（ｍａ）を算出する。
【０１０３】
〔数式１０〕
１８０・ｍａ／ＭＡ≦Ａｅ（ｉ，ｊ）＜１８０・（ｍａ＋１）／ＭＡならば、
Ｈａｏ（ｍａ）←Ｈａｏ（ｍａ）＋ＥＫ（ｊ）
【０１０４】
上記〔数式１０〕は、エッジ点ｉとエッジ点ｊのエッジ点間ベクトルと、エッジ点ｊのエッジ方向ベクトルのなす角の角度Ａｅ（ｉ，ｊ）が、１８０にｍａ／ＭＡを乗じた値以上で、（ｍａ＋１）／ＭＡを乗じた値より小さい場合に、Ｈａｏ（ｍａ）にエッジ点ｊのエッジ強度ＥＫ（ｊ）を加算することを意味している。
【０１０５】
上記〔数式１０〕に従った処理を、Ｎｅ（Ｎｅ−１）／２個のエッジ点間について実行することにより、角度分布Ｈａｏ（ｍａ）（ｍａ＝０，・・・，ＭＡ−１）が算出される。各要素には、単なる頻度ではなく、エッジ強度ＥＫ（ｊ）が加算されているため、角度分布Ｈａｏ（ｍａ）は、エッジ強度加重の角度分布を示すことになる。エッジ強度ＥＫ（ｊ）でなく単に１を加算するようにすることも可能であるが、その場合、エッジ強度が加味されない角度分布となり、同一の規制画像に対して画素が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布の算出時にエッジ点のエッジ強度を加算するようにしている。上記〔数式１０〕に従った処理の実行後、さらにＨａｏ（ｍａ）に１００／ＥＫｓｕｍを乗じてＨａｏ（ｍａ）と置き換える処理を実行することにより、単位をエッジ強度率［％］に正規化してもよい。ここで、ＥＫｓｕｍは〔数式８〕に基づいて距離分布を算出する際に求めたＥＫｓｕｍを流用できる。
【０１０６】
上記〔数式１０〕に従った処理により算出される角度分布は、２次元の規制画像から得られるものであるので、このままでは、後に３次元のポリゴンモデルから得られる角度分布との照合に最適な状態とはなっていない。このため、２次元の規制画像から距離分布を算出する際、球面補正を行うことが好ましい。具体的には、〔数式７〕に基づいてＡｅ（ｉ，ｊ）を算出する際に使用したＤｅ（ｉ，ｊ）を用いて、距離分布の場合と同様、上記〔数式９〕に従った処理を実行することにより、球面補正エッジ強度ＥＫａ（ｊ）を算出する。
【０１０７】
上記〔数式９〕に従った処理を実行することにより算出された球面補正エッジ強度ＥＫａ（ｊ）を、上記〔数式１０〕におけるＥＫ（ｊ）と置き換えて上記〔数式１０〕に従った処理を実行する。球面補正エッジ強度ＥＫａ（ｊ）を用いることにより、球面補正が行われ、平面的な規制画像から球面的な特徴を有する角度分布が得られる。
【０１０８】
図４に示した処理により得られた距離分布と角度分布の２種の度数分布は、規制画像を特定する識別情報と対応付けて、画像度数分布記憶手段９３に格納される。
【０１０９】
規制画像（２Ｄ画像）から得られた距離分布と角度分布における距離と角度の関係を図７（ａ）に示す。図７（ａ）において、斜線の網掛け部分が規制画像の対象物である。規制画像の対象物とは、背景部分を除いたキャラクターの絵柄等を意味する。この部分は背景とは画素値が大きく異なっている。エッジ点は対象物と背景との境界部または図７（ａ）の例には存在しないが対象物内での濃淡差が顕著な境界部に位置する。そして、規制画像内のあるエッジ点から同じ規制画像内の他のエッジ点までの距離が各エッジ点間について算出される。各エッジ点間固有の角度は、あるエッジ点から他のエッジ点へのベクトルであるエッジ点間ベクトルと、エッジ点のエッジ方向ベクトルとのなす角度である。
【０１１０】
＜２．３．立体物造形用データ出力規制装置の構成＞
次に、本発明第１の実施形態に係る立体物造形用データ出力規制装置について説明する。図８は、本発明第１の実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置１００は、汎用のコンピュータで実現することができ、図８に示すように、ＣＰＵ（Central Processing Unit）１と、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２と、ＣＰＵ１が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３と、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４と、３Ｄプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５と、液晶ディスプレイ等の表示デバイスである表示部６と、を備え、互いにバスを介して接続されている。
【０１１１】
３Ｄプリンタ７は、汎用の３Ｄプリンタであり、立体物の３次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。３Ｄプリンタ７は、データ処理部７ａと出力部７ｂを有している。３Ｄプリンタ７のデータ処理部７ａは、データ入出力Ｉ／Ｆ５に接続されており、データ入出力Ｉ／Ｆ５から受け取った立体物造形用データを基に、出力部７ｂが立体物を造形するようになっている。
【０１１２】
図８では、立体物造形用データ出力規制装置１００と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１００の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力Ｉ／Ｆ４を兼ねることも多い）も小規模ながら重複して備えている。従って、３Ｄプリンタ７自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの形態の方が多い）。すなわち、図８に示した立体物造形システムを１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【０１１３】
図９は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図９において、１０はモデル度数分布算出手段、２０は度数分布照合手段、３０は対象モデル記憶手段、４０は度数分布データベースである。
【０１１４】
モデル度数分布算出手段１０は、出力対象のポリゴンモデルである対象モデルに対して、対象モデル内の各ポリゴン間の距離と各ポリゴン間固有の角度を算出し、算出された距離の度数分布である距離分布を算出し、算出結果に基づいて各ポリゴン間の距離の度数分布である距離分布と、各ポリゴン間固有の角度の度数分布である角度分布とを算出する処理を行う。度数分布照合手段２０は、対象モデルについて算出された距離分布、角度分布をそれぞれ、度数分布データベース４０に登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。
【０１１５】
モデル度数分布算出手段１０、度数分布照合手段２０は、ＣＰＵ１が、記憶装置３に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段３０は、出力を規制すべきか否かの判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置３により実現される。ポリゴンモデルとは、ポリゴンの集合により３次元空間における所定の立体形状を表現したデータであり、３Ｄプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてＳＴＬ（Standard Triangulated Language）を採用している。
【０１１６】
度数分布データベース４０は、出力を規制すべきポリゴンモデルである規制モデル、および出力を規制すべき画像である規制画像に対して２種の度数分布として算出された距離分布および角度分布を記憶して、データベース化したものであり、記憶装置３により実現される。２種の度数分布である距離分布および角度分布は、規制画像や規制モデルの特徴を表現した特徴ベクトルとしての役割を果たすものとなる。即ち、２種の度数分布により、元の規制モデルや規制画像の相違を識別可能であるが、元の規制モデルや規制画像を復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、２種の度数分布は、著作物としての役割は果たさないが、２つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割を果たすことになる。度数分布データベース４０には、距離分布および角度分布だけでなく、距離分布および角度分布の算出の基になった規制モデルや規制画像自体を登録しておくことも可能である。規制モデルについては、通常は、著作権の問題から規制モデル自体は登録されないが、規制画像については、著作権者から許諾を得てデータベース登録される運用が通常であり、照合結果に対してヒトによる目視確認を可能にするため、規制画像自体も併せて登録されることが多い。
【０１１７】
図９に示した各構成手段は、現実には図８に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、ＣＰＵ等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“３Ｄプリンタ”に組み込まれたボードコンピュータも含む。
【０１１８】
図８に示した記憶装置３には、ＣＰＵ１を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、ＣＰＵ１は、モデル度数分布算出手段１０、度数分布照合手段２０としての機能を実現することになる。また、記憶装置３は、対象モデル記憶手段３０、度数分布データベース４０として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
【０１１９】
＜２．４．立体物造形用データ出力規制装置の処理動作＞
＜２．４．１．前処理＞
次に、図８、図９に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、上述のような、画像度数分布算出装置により、出力を規制すべき画像である規制画像から２種の度数分布を作成し、作成した度数分布を、度数分布データベース４０に登録しておく。画像度数分布算出装置は、立体物造形用データ出力規制装置と別のコンピュータで実現する必要はなく、立体物造形用データ出力規制装置を実現するコンピュータに、画像度数分布算出装置を実現するためのプログラムを組み込んでおくこともできる。
【０１２０】
さらに、規制画像から作成した度数分布だけでなく、規制対象とするポリゴンモデルである規制モデルを表現した度数分布を作成し、度数分布データベース４０に登録しておくこともできる。この場合、規制モデルについて、２種の度数分布である距離分布および角度分布を作成する。ポリゴンモデルからの距離分布および角度分布の作成については、後述する立体物造形用データ出力規制装置における処理と同様にして行うことができる。規制モデルからの距離分布および角度分布の作成は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。作成された距離分布および角度分布は、度数分布データベース４０に登録される。２次元データである規制画像から作成される度数分布と、３次元データである規制モデルから作成される度数分布は、同一の形式になるように作成される。これにより、後述する照合時において、規制画像と規制モデルのどちらについても、同様に照合を行うことが可能となる。
【０１２１】
出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作された画像やポリゴンモデルには著作権者が存在する著作物になる。したがって、著作物である画像やポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。画像については著作権者が明示されている法人である場合が多く、許諾を得ることが可能であるが、ポリゴンモデルについては個人など著作権者が不明なものも多く、許諾を得ることが困難である。距離分布および角度分布の形式により、元の画像やポリゴンモデルの相違を識別可能であるが、元の画像やポリゴンモデルを復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様で、距離分布および角度分布の形式はフィンガープリントに相当し、著作物には該当しない。
【０１２２】
そこで、本発明のように、距離分布および角度分布の形式で登録することにより、著作者の許諾を必要とせずに、規制画像や規制モデルの特徴を記録したデータベースを構築することができる。ただし、規制画像については、著作者の許諾を得て商用利用できないレベルに解像度を落とした状態で規制画像自体も併せて登録し、距離分布および角度分布の形式で照合し適合した規制画像をヒトが目視で確認できるようにする運用をとることが望ましい。
【０１２３】
＜２．４．２．処理概要＞
次に、図８、図９に示した立体物造形用データ出力規制装置の処理動作について説明する。図１０は、本発明第１の実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、モデル度数分布算出手段１０が、ポリゴンモデルである対象モデルについて、２種の度数分布である距離分布および角度分布を算出する（ステップＳ１００）。そして、算出された対象モデルの度数分布と、度数分布データベース４０に登録された規制画像や規制モデルの度数分布との照合を行う（ステップＳ２００）。
【０１２４】
＜２．４．３．度数分布の算出処理＞
まず、ステップＳ１００のモデル度数分布の算出処理について説明する。図１１は、モデル度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点を（Ｘｕ（ｉ），Ｙｕ（ｉ），Ｚｕ（ｉ））と定義されたものとする。ｕは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、ｕ＝０，１，２の３つの値をとる。したがって、例えばＸｕ（ｉ）は、Ｘ０（ｉ）、Ｘ１（ｉ）、Ｘ２（ｉ）とも表記される。また、各ポリゴンｉの法線ベクトルを（Ｘｎ（ｉ），Ｙｎ（ｉ），Ｚｎ（ｉ））と定義する。頂点を特定したポリゴンおよび法線ベクトルは、立体物造形装置である３Ｄプリンタによる出力に必要なものであり、法線ベクトルの方向が造形面の外側（材料から空中方向）を示す。
【０１２５】
モデル度数分布算出手段１０は、まず、対象モデルを構成する各ポリゴンｉの面積Ｓ（ｉ）、Ｎ個のポリゴンの面積Ｓ（ｉ）の総和である総面積Ｓｓｕｍを以下の〔数式１１〕に従った処理を実行することにより算出する（ステップＳ１１０）。
【０１２６】
〔数式１１〕
Ｖｘ＝[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｚ２（ｉ）−Ｚ０（ｉ）]−[Ｚ１（ｉ）−Ｚ０（ｉ）][ Ｙ２（ｉ）−Ｙ０（ｉ）]
Ｖｙ＝[Ｚ１（ｉ）−Ｚ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）]−[Ｘ１（ｉ）−Ｘ０（ｉ）][ Ｚ２（ｉ）−Ｚ０（ｉ）]
Ｖｚ＝[Ｘ１（ｉ）−Ｘ０（ｉ）][Ｙ２（ｉ）−Ｙ０（ｉ）]−[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）] 
Ｓ（ｉ）＝[Ｖｘ（ｉ）2+Ｖｙ（ｉ）2+Ｖｚ（ｉ）2]1/2
Ｓｓｕｍ＝Σi=0,N-1Ｓ（ｉ）
【０１２７】
上記〔数式１１〕において、Σの添え字の“ｉ＝０，Ｎ−１”は、ｉが０からＮ−１の全ての整数をとる場合について、総和を求めることを示している。次に、対象モデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出する（ステップＳ１２０）。具体的には、以下の〔数式１２〕に従った処理を実行することにより、各ポリゴンの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））を算出する。
【０１２８】
〔数式１２〕
Ｘｃ（ｉ）＝｛Ｘ０（ｉ）＋Ｘ１（ｉ）＋Ｘ２（ｉ）｝／３
Ｙｃ（ｉ）＝｛Ｙ０（ｉ）＋Ｙ１（ｉ）＋Ｙ２（ｉ）｝／３
Ｚｃ（ｉ）＝｛Ｚ０（ｉ）＋Ｚ１（ｉ）＋Ｚ２（ｉ）｝／３
【０１２９】
上記〔数式１２〕において、Ｘ０（ｉ）、Ｘ１（ｉ）、Ｘ２（ｉ）はそれぞれＸｕ（ｉ）において、頂点番号ｕ＝０，１，２の場合を示し、Ｙ０（ｉ）、Ｙ１（ｉ）、Ｙ２（ｉ）はそれぞれＹｕ（ｉ）において、頂点番号ｕ＝０，１，２の場合を示し、Ｚ０（ｉ）、Ｚ１（ｉ）、Ｚ２（ｉ）はそれぞれＺｕ（ｉ）において、頂点番号ｕ＝０，１，２の場合を示している。上記〔数式１２〕に示すように、各ポリゴンの平均点は、ポリゴンの各頂点の平均座標をもつ点として算出される。
【０１３０】
次に、モデル度数分布算出手段１０は、各ポリゴン平均点間のベクトルの算出を行う（ステップＳ１３０）。具体的には、以下の〔数式１３〕に従った処理を実行することにより、対象モデル内のあるポリゴンｉの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））から同じ対象モデル内の他のポリゴンｊ（ｊ＝０，・・・，Ｎ−１）の平均点（Ｘｃ（ｊ），Ｙｃ（ｊ），Ｚｃ（ｊ））へのベクトルであるポリゴン間ベクトル（Ｄｘ（ｉ，ｊ），Ｄｙ（ｉ，ｊ），Ｄｚ（ｉ，ｊ））を算出する。なお、ポリゴン間ベクトルは、自分以外の他のポリゴンへのベクトルであるため、ｉ＝ｊの場合を除外している。
【０１３１】
〔数式１３〕
Ｄｘ（ｉ，ｊ）＝Ｘｃ（ｊ）−Ｘｃ（ｉ）
Ｄｙ（ｉ，ｊ）＝Ｙｃ（ｊ）−Ｙｃ（ｉ）
Ｄｚ（ｉ，ｊ）＝Ｚｃ（ｊ）−Ｚｃ（ｉ）
【０１３２】
次に、モデル度数分布算出手段１０は、各ポリゴン平均点間の最大距離の算出を行う（ステップＳ１４０）。具体的には、以下の〔数式１４〕に従った処理を実行することにより、対象モデル内のあるポリゴンｉの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））から他のポリゴンｊの平均点（Ｘｃ（ｊ），Ｙｃ（ｊ），Ｚｃ（ｊ））までの距離Ｄ（ｉ，ｊ）を求め、Ｎ（Ｎ−１）／２個の距離Ｄ（ｉ，ｊ）のうち最大のものを最大距離Ｄｍａｘとする。
【０１３３】
〔数式１４〕
Ｄ（ｉ，ｊ）＝[Ｄｘ（ｉ，ｊ）2＋Ｄｙ（ｉ，ｊ）2＋Ｄｚ（ｉ，ｊ）2]1/2
Ｄｍａｘ＝ＭＡＸi,jＤ（ｉ，ｊ）
【０１３４】
上記〔数式１４〕において、ＭＡＸは、添え字の“ｉ，ｊ” の取り得る範囲であるｉ＝０，・・・，Ｎ−１、ｊ＝０，・・・，Ｎ−１（ｉ＝ｊの場合を除く）におけるＤ（ｉ，ｊ）の中から最大値を選択することを示している。
【０１３５】
次に、モデル度数分布算出手段１０は、あるポリゴンから他のポリゴンへのベクトルであるポリゴン間ベクトルと、対応するポリゴンの法線ベクトルのなす角度の算出を行う（ステップＳ１５０）。ポリゴン間ベクトルと対応するポリゴンとは、ポリゴン間ベクトルを算出する基になったポリゴンｉとポリゴンｊを意味するが、ここでは、一方のポリゴンであるポリゴンｊを用いる。具体的には、以下の〔数式１５〕に従った処理を実行することにより、ポリゴンｉとポリゴンｊの間のポリゴン間ベクトル（Ｄｘ（ｉ，ｊ），Ｄｙ（ｉ，ｊ），Ｄｚ（ｉ，ｊ））と、ポリゴンｊの法線ベクトル（Ｘｎ（ｊ），Ｙｎ（ｊ），Ｚｎ（ｊ））のなす角度Ａ（ｉ，ｊ）を算出する。
【０１３６】
〔数式１５〕
Ａ（ｉ，ｊ）＝[ｃｏｓ-1[Ｄｘ（ｉ，ｊ）Ｘｎ（ｊ）＋Ｄｙ（ｉ，ｊ）Ｙｎ（ｊ）＋Ｄｚ（ｉ，ｊ）Ｚｎ（ｊ）]／Ｄ（ｉ，ｊ）］・１８０／π
【０１３７】
上記〔数式１５〕においては、単位をラジアンから度に変更するため［］で括られた部分に１８０／πを乗じている。したがって、Ａ（ｉ，ｊ）は、０〜１８０の値をとることになる。各ポリゴン間ベクトルと、法線ベクトルのなす角度は、各ポリゴン間固有の角度となる。
【０１３８】
次に、モデル度数分布算出手段１０は、各ポリゴン平均点間の距離分布を算出する（ステップＳ１６０）。本実施形態で算出される距離分布は、面積加重した距離の分布であり、要素数をＭＤとし、各要素ｍｄ（ｍｄ＝０，・・・，ＭＤ−１）の度数をＨｄ（ｍｄ）と表す。
【０１３９】
モデル度数分布算出手段１０は、初期値をＨｄ（ｍｄ）＝０と設定し、以下の〔数式１６〕に従った処理を実行することにより、要素ｍｄの度数Ｈｄ（ｍｄ）を、ｉ＝０，・・・，Ｎ−１、ｊ＝０，・・・，Ｎ−１（ｉ＝ｊの場合を除く）について、算出する。
【０１４０】
〔数式１６〕
Ｄｍａｘ・ｍｄ／ＭＤ≦Ｄ（ｉ，ｊ）＜Ｄｍａｘ・（ｍｄ＋１）／ＭＤならば、
Ｈｄ（ｍｄ）←Ｈｄ（ｍｄ）＋Ｓ（ｊ）
Ｓｓｕｍ←Ｓｓｕｍ＋Ｓ（ｊ）
【０１４１】
上記〔数式１６〕は、ポリゴンｉの平均点からポリゴンｊの平均点までの距離Ｄ（ｉ，ｊ）が、最大距離Ｄｍａｘにｍｄ／ＭＤを乗じた値以上で、（ｍｄ＋１）／ＭＤを乗じた値より小さい場合に、Ｈｄ（ｍｄ）にポリゴンｊの面積Ｓ（ｊ）を加算することを意味している。
【０１４２】
上記〔数式１６〕に従った処理を、Ｎ（Ｎ−１）／２個のポリゴン間距離について実行することにより、距離分布Ｈｄ（ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）が算出される。各要素には、単なる頻度ではなく、面積Ｓ（ｊ）が加算されているため、距離分布Ｈｄ（ｍｄ）は、面積加重の距離分布を示すことになる。面積Ｓ（ｊ）でなく単に１を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない距離分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、距離分布算出時にポリゴンの面積を加算するようにしている。また、上記〔数式１６〕で算出されたＨｄ（ｍｄ）に、更に１００／Ｓｓｕｍを乗じてＨｄ（ｍｄ）と置き換えることにより、単位を面積率［％］に正規化している。これにより、ポリゴンの面積の総和値が異なる、即ちスケールが異なるポリゴンモデルであっても同一の距離分布に変換され、スケールに関わらず形状の判定が可能になる。
【０１４３】
次に、モデル度数分布算出手段１０は、各ポリゴン平均点間のベクトルであるポリゴン間ベクトルと、対応する一方のポリゴンの法線ベクトルの角度分布を算出する（ステップＳ１７０）。本実施形態で算出される角度分布は、面積加重した角度の分布であり、要素数をＭＡとし、各要素ｍａ（ｍａ＝０，・・・，ＭＡ−１）の度数をＨａ（ｍａ）と表す。要素数ＭＡは、上記要素数ＭＤと同一であってもよい。
【０１４４】
モデル度数分布算出手段１０は、初期値をＨａ（ｍａ）＝０と設定し、以下の〔数式１７〕に従った処理を実行することにより、要素ｍａの度数Ｈａ（ｍａ）を、ｉ＝０，・・・，Ｎ−１、ｊ＝０，・・・，Ｎ−１（ｉ＝ｊの場合を除く）について、算出する。
【０１４５】
〔数式１７〕
１８０・ｍａ／ＭＡ≦Ａ（ｉ，ｊ）＜１８０・（ｍａ＋１）／ＭＡならば、
Ｈａ（ｍａ）←Ｈａ（ｍａ）＋Ｓ（ｊ）
【０１４６】
上記〔数式１７〕は、ポリゴンｉとポリゴンｊのポリゴン間ベクトルと、ポリゴンｊの法線ベクトルのなす角の角度Ａ（ｉ，ｊ）が、１８０にｍａ／ＭＡを乗じた値以上で、（ｍａ＋１）／ＭＡを乗じた値より小さい場合に、Ｈａ（ｍａ）にポリゴンｊの面積Ｓ（ｊ）を加算することを意味している。
【０１４７】
上記〔数式１７〕に従った処理を、Ｎ（Ｎ−１）／２個のポリゴン間について実行することにより、角度分布Ｈａ（ｍａ）（ｍａ＝０，・・・，ＭＡ−１）が算出される。各要素には、単なる頻度ではなく、面積Ｓ（ｊ）が加算されているため、角度分布Ｈａ（ｍａ）は、面積加重の角度分布を示すことになる。面積Ｓ（ｊ）でなく単に１を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない角度分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布算出時にポリゴンの面積を加算するようにし、さらにＨａ（ｍａ）に１００／Ｓｓｕｍを乗じてＨａ（ｍａ）と置き換えることにより、単位を面積率［％］に正規化している。これにより、ポリゴンの面積の総和値が異なる、即ちスケールが異なるポリゴンモデルであっても同一の距離分布に変換され、スケールに関わらず形状の判定が可能になる。
【０１４８】
本実施形態では、各ポリゴン間の距離と各ポリゴン間固有の角度の算出に際し、各ポリゴンの平均点間のベクトルをポリゴン間ベクトルとして求めるようにした。ポリゴン間を結ぶベクトルは、ポリゴンの各頂点の平均点とすることが好ましいが、平均点以外のポリゴン上の所定の点（例えばポリゴンを構成するいずれかの頂点）同士を結んだベクトルをポリゴン間ベクトルとするようにすることも可能である。
【０１４９】
対象モデルから得られた距離分布と角度分布における距離と角度の関係を図７（ｂ）に示す。図７（ｂ）は、ポリゴンモデル（３Ｄモデル）の一断面を示している。図７（ｂ）において、周囲の線分がポリゴンを示している。１つのポリゴンの頂点の平均座標をもつ平均点と、他のポリゴンの平均点までの距離が各ポリゴン間について算出される。各ポリゴン間固有の角度は、あるポリゴンの平均点から他のポリゴンの平均点へのベクトルであるポリゴン間ベクトルと、ポリゴンの法線ベクトルとのなす角度である。
【０１５０】
＜２．４．４．度数分布の照合処理＞
次に、ステップＳ２００の度数分布の照合処理について説明する。図１２は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段２０は、度数分布データベース４０に記憶されているＲＥ個のレコードの中からレコードｒｅ（ｒｅ＝０，・・・，ＲＥ−１）に登録されている度数分布を抽出する（ステップＳ２１０）。度数分布として、距離分布Ｈｄｏ（ｒｅ，ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）、角度分布Ｈａｏ（ｒｅ，ｍａ）（ｍａ＝０，・・・，ＭＡ−１）を抽出する。
【０１５１】
次に、度数分布照合手段２０は、対象モデルから算出された距離分布と、度数分布データベース４０から抽出された規制モデルの距離分布同士で各要素間の相関係数を算出する（ステップＳ２２０）。相関係数とは、二つの配列要素の関連性の強弱を示す指標である。ここでは、対象モデルと規制画像（または規制モデル）の類似性の強弱を判定するために用いる。まず、以下の〔数式１８〕に従った処理を実行することにより、対象モデルから算出された距離分布Ｈｄ（ｍｄ）の平均値Ａｄ、度数分布データベース４０から抽出された規制画像の距離分布Ｈｄｏ（ｒｅ，ｍｄ）の平均値Ａｄｏ（ｒｅ）を算出する。
【０１５２】
〔数式１８〕
Ａｄ＝Σ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/K-1［｛Σk=0,K-1Ｈｄｏ（ｒｅ，ｉ・Ｋ＋ｋ）／Ｋ−Σk=0,K-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）
３、３ａ、１３、１３ａ、８３・・・記憶装置
４、４ａ、１４、１４ａ、８４・・・キー入力Ｉ／Ｆ
５、５ａ、１５、１５ａ、８５・・・データ入出力Ｉ／Ｆ
６、６ａ、１６、１６ａ、８６・・・表示部
７・・・３Ｄプリンタ（立体物造形装置）
７ａ・・・データ処理部
７ｂ・・・出力部
８、８ａ、１８、１８ａ・・・ネットワーク通信部
１０・・・モデル度数分布算出手段
２０・・・度数分布照合手段
３０、３１・・・対象モデル記憶手段
４０・・・度数分布データベース
４１・・・規制画像データベース
５０・・・対象モデル受信手段
６０・・・出力適否データ送信手段
９１・・・規制画像記憶手段
９２・・・画像度数分布算出手段
９３・・・画像度数分布記憶手段
１００、１０１・・・立体物造形用データ出力規制装置
２０１・・・出力制御用端末
２０２・・・処理サーバ
３００、３０１・・・画像度数分布算出装置
【図１】
0006540238.tif 000002
【図２】
0006540238.tif 000003
【図３】
0006540238.tif 000004
【図４】
0006540238.tif 000005
【図５】
0006540238.tif 000006
【図６】
0006540238.tif 000007
【図７】
0006540238.tif 000008
【図８】
0006540238.tif 000009
【図９】
0006540238.tif 000010
【図１０】
0006540238.tif 000011
【図１１】
0006540238.tif 000012
【図１２】
0006540238.tif 000013
【図１３】
0006540238.tif 000014
【図１４】
0006540238.tif 000015
【図１５】
0006540238.tif 000016
【図１６】
0006540238.tif 000017
【図１７】
0006540238.tif 000018
【図１８】
0006540238.tif 000019
【図１９】
0006540238.tif 000020
【図２０】
0006540238.tif 000021
【図２１】
0006540238.tif 000022
【図２２】
0006540238.tif 000023
【図２３】
0006540238.tif 000024
【図２４】
0006540238.tif 000025
【図２５】
0006540238.tif 000026
【図２６】
0006540238.tif 000027