JP2016215598A - 立体物造形用データ出力規制装置 - Google Patents
立体物造形用データ出力規制装置 Download PDFInfo
- Publication number
- JP2016215598A JP2016215598A JP2015106060A JP2015106060A JP2016215598A JP 2016215598 A JP2016215598 A JP 2016215598A JP 2015106060 A JP2015106060 A JP 2015106060A JP 2015106060 A JP2015106060 A JP 2015106060A JP 2016215598 A JP2016215598 A JP 2016215598A
- Authority
- JP
- Japan
- Prior art keywords
- distribution
- polygon
- edge
- image
- frequency distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
【課題】 ポリゴンモデルを基に立体物の出力を行う際に、2次元の画像を基準として、出力を規制すべきか否かの判定を的確に行うことが可能な立体物造形用データ出力規制装置を提供する。【解決手段】 出力を規制すべき画像である規制画像からエッジ点を抽出し、規制画像の基準点から各エッジ点までの距離分布と各エッジ点固有の角度分布を算出する画像度数分布算出手段92と、対象モデルに対して、対象モデルの基準点から各ポリゴンまでの距離分布と各ポリゴン固有の角度分布を算出するモデル度数分布算出手段10と、規制画像の距離分布、角度分布と、対象モデルの距離分布、角度分布を照合し、出力を規制すべきか否かを判定する度数分布照合手段20を備える。【選択図】 図13
Description
本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する3Dプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する3Dプリンタが立体物造形装置として普及してきている。3Dプリンタは、立体物の3次元形状をポリゴンの集合で表現したポリゴンモデルを用いて立体物の出力を行う。3Dプリンタの医療応用として、医療診断で撮影されるCT/MRI画像(DICOM形式3次元ボクセルデータ)を基に、3Dプリンタ出力用モデリングデータ(ポリゴンモデル)を作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器(血管、骨、関節など)を作成したりする試みが始まっている。
3Dプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、3Dプリンタによりモノとして容易に入手可能になるという問題が発生している。
具体的には、あるWEBサイトにて3Dプリンタを用いて所定のモデルの拳銃を製造できるSTL(Standard Triangulated Language)が無償で公開されている。金属製に比べて射程距離などは多少劣るが、3Dプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の3Dプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の3Dプリンタが普及するにあたり、3Dプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する手法が考えられ、その実現にあたり、ポリゴン同士を照合する技術が用いられている。しかし、3Dプリンタでの出力を規制すべき対象としては、3次元のポリゴンモデルを複製したものだけでなく、イラストや写真等の2次元で表現されたものを3次元化したものも含める必要がある。これに対応するため、2次元の画像を基に3次元のポリゴンモデルと照合を行う技術も開発されている(特許文献1〜3参照)。
しかしながら、上記従来の技術は、いずれも3次元のポリゴンモデルを2次元に投影して画像を生成し、この画像から得られる特徴ベクトルを照合に用いるものであるため、投影条件により特徴ベクトルが一意に定まらない。このため、2次元の画像を基にして、3次元のポリゴンモデルの出力適正を判定するのは、難しいという問題がある。
そこで、本発明は、ポリゴンモデルを基に立体物の出力を行う際に、2次元の画像を基準として、出力を規制すべきか否かの判定を的確に行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
上記課題を解決するため、本発明第1の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度(A(i))の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布をそれぞれ、前記データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、を備え、
前記データベースに登録された規制画像の距離分布、角度分布は、
前記規制画像に対して、対象物(オブジェクト)のエッジ(端)を構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度(Ae(i))の度数分布である角度分布とを算出する画像度数分布算出手段を有する画像度数分布算出装置により得られたものであり、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像の基準点から各エッジ点への方向のなす角度を、前記エッジ点固有の角度として算出することを特徴とする立体物造形用データ出力規制装置を提供する。
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度(A(i))の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布をそれぞれ、前記データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、を備え、
前記データベースに登録された規制画像の距離分布、角度分布は、
前記規制画像に対して、対象物(オブジェクト)のエッジ(端)を構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度(Ae(i))の度数分布である角度分布とを算出する画像度数分布算出手段を有する画像度数分布算出装置により得られたものであり、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像の基準点から各エッジ点への方向のなす角度を、前記エッジ点固有の角度として算出することを特徴とする立体物造形用データ出力規制装置を提供する。
ここで、対象物(オブジェクト)とは、規制画像中のポリゴンモデルに造形される対象領域であり、それ以外の領域は背景である。したがって、対象物とは、画像が写真であれば、被写体に相当する部分であり、人工的に作成された画像であれば、イラストやキャラクター等に相当する部分である。画像において対象物であるか背景であるかは、主観的なものとなるが、規制画像として登録される画像は、複製を防止したい部分が対象物として明確であることが多いため、対象物と背景の区分は比較的明確である。「エッジを特定する方向」とは、対象物と背景の境界線を設けた場合に、境界線に直交もしくは、直交に近い角度となる方向に相当する。
本発明第1の態様によれば、規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースを備え、対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布を算出し、算出された対象モデルの距離分布、角度分布をそれぞれ、データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定するようにし、データベースに登録された規制画像の距離分布、角度分布は、規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、規制画像の基準点から各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度の度数分布である角度分布とを算出する装置により得られたものであり、エッジ点固有の角度として、エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、規制画像の基準点から各エッジ点への方向のなす角度を算出するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、次元の異なる2次元の規制画像と照合を行うことにより出力を規制すべきか否かの判定を行うことが可能となる。特に、エッジ点固有の角度を求めるために重要なエッジ点のエッジを特定する方向が基本的に所定数に限られる場合であっても、中間位置の方向に補正した角度で角度分布を得ることができ、連続的な分布が作成され、3次元のポリゴンモデルの角度分布との照合が行い易くなる。
本発明第1の態様によれば、モデル度数分布算出手段により得られる対象モデルの距離分布および角度分布と整合性をもたせることができ、度数分布照合手段により2次元の規制画像と3次元の対象モデルという相互に次元の異なるデータどうしの類似性を各々の距離分布および角度分布を照合することにより判定することが可能となる。即ち、対象モデルと類似した3次元のポリゴンモデルを規制モデルとして事前に入手しデータベースに登録しなくても、2次元の規制画像を事前に入手しデータベースに登録すれば、規制画像の対象物を基に作成された3次元の対象モデルの出力を規制することが可能になる。
また、本発明第2の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度(Ae(i))の度数分布である角度分布とを算出する画像度数分布算出手段と、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出結果に基づいて各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度(A(i))の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記画像度数分布算出手段により算出された規制画像の距離分布、角度分布と、前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布と、を照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備え、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像の基準点から各エッジ点への方向のなす角度を、前記エッジ点固有の角度として算出することを特徴とする立体物造形用データ出力規制装置を提供する。
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度(Ae(i))の度数分布である角度分布とを算出する画像度数分布算出手段と、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出結果に基づいて各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度(A(i))の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記画像度数分布算出手段により算出された規制画像の距離分布、角度分布と、前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布と、を照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備え、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像の基準点から各エッジ点への方向のなす角度を、前記エッジ点固有の角度として算出することを特徴とする立体物造形用データ出力規制装置を提供する。
本発明第2の態様によれば、規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、規制画像の基準点から各エッジまでの距離の度数分布である距離分布と、各エッジ点固有の角度の度数分布である角度分布とを算出し、対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された距離の度数分布である距離分布を算出し、算出された角度の度数分布である角度分布を算出し、対象モデルの距離分布、角度分布と、規制画像の距離分布、角度分布とを照合し、出力を規制すべきか否かを判定し、エッジ点固有の角度として、エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、規制画像の基準点から各エッジ点への方向のなす角度を算出するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、次元の異なる2次元の規制画像と照合を行うことにより出力を規制すべきか否かの判定を行うことが可能となる。特に、エッジ点固有の角度を求めるために重要なエッジ点のエッジを特定する方向が基本的に所定数に限られる場合であっても、中間位置の方向に補正した角度で角度分布を得ることができ、連続的な分布が作成され、3次元のポリゴンモデルの角度分布との照合が行い易くなる。
また、本発明第3の態様では、前記画像度数分布算出手段は、前記規制画像の各画素の値に対して、事前に定義された複数のフィルタマトリクスを適用し、各画素について前記各フィルタマトリクスで算出された複数の強度の最大値をエッジ強度とし、最大値を与えるフィルタマトリクスに固有な方向を前記エッジを特定する方向として算出し、エッジ強度が所定の値を超える画素をエッジ点として抽出し、前記規制画像の基準点から各エッジ点へのベクトルを前記規制画像の基準点から各エッジ点への方向を示すエッジ個別ベクトルとして求め、前記エッジ個別ベクトルと対応するエッジ点のエッジを特定する方向とのなす角度を前記エッジ点固有の角度として算出する際、前記エッジ点のエッジを特定する方向の補正は、対象とする前記エッジ点の周囲のエッジ点におけるエッジを特定する方向と当該周囲のエッジ点のエッジ強度を加重しながら平均化することにより行われることを特徴とする。
本発明第3の態様によれば、規制画像の各画素の値に対して、事前に定義された複数のフィルタマトリクスを適用し、各画素について各フィルタマトリクスで算出された複数の強度の最大値をエッジ強度とし、最大値を与えるフィルタマトリクスに固有な方向を前記エッジを特定する方向として算出し、エッジ強度が所定の値を超える画素をエッジ点として抽出し、前記規制画像の基準点から各エッジ点へのベクトルを前記規制画像の基準点から各エッジ点への方向を示すエッジ個別ベクトルとして求め、前記エッジ個別ベクトルと対応するエッジ点のエッジを特定する方向とのなす角度を前記エッジ点固有の角度として算出する際、前記エッジ点のエッジを特定する方向の補正は、対象とする前記エッジ点の周囲のエッジ点におけるエッジを特定する方向と当該周囲のエッジ点のエッジ強度を加重しながら平均化することにより行われるようにしたので、モデル度数分布算出手段により得られる対象モデルの角度分布と整合性をもたせた角度分布を規制画像からも算出することができ、2次元の規制画像と3次元の対象モデルという相互に次元の異なるデータどうしの類似性を各々の角度分布を照合することにより判定することが可能となる。
また、本発明第4の態様では、前記規制画像の基準点の座標値は、前記エッジ点の座標値に当該エッジ点のエッジ強度を重みとして乗じた座標値を、全エッジ点について加算した座標値を、全エッジ点のエッジ強度の総和で除した座標値で与えられるものであることを特徴とする。
本発明第4の態様によれば、規制画像の基準点の座標値は、エッジ点の座標値にエッジ強度を重みとして乗じた座標値を、全エッジ点について加算した座標値を、全エッジ点のエッジ強度の総和で除した座標値で与えられるので、規制画像中の対象物の重心に近い位置を基準点として迅速に算出することが可能となる。
また、本発明第5の態様では、前記画像度数分布算出手段は、前記エッジ点のx座標の最大値、最小値とy座標の最大値、最小値を求め、それぞれの丁度中間の値であるx座標の中央の値、y座標の中央の値をもつ中央点を前記規制画像の基準点とすることを特徴とする。
本発明第5の態様によれば、エッジ点のx座標の最大値、最小値とy座標の最大値、最小値を求め、それぞれの丁度中間の値であるx座標の中央の値、y座標の中央の値をもつ中央点を規制画像の基準点とするようにしたので、エッジ点の抽出ムラによる影響を受け難く、規制画像内の対象物の形状によらず、偏りの少ない基準点を定めることが可能となる。
また、本発明第6の態様では、前記フィルタマトリクスとして、事前に定義された16方向の3×3画素のフィルタマトリクスを適用し、各方向について事前に設定された値を用いて、各方向の強度を求める演算を行うことを特徴とする。
本発明第6の態様によれば、フィルタマトリクスとして、事前に定義された16方向の3×3画素のフィルタマトリクスを適用し、各方向について事前に設定された値を用いて、各方向の強度を求める演算を行うようにしたので、規制画像において、対象物のエッジを構成する画素であるエッジ点を抽出するだけでなくエッジの方向を的確に算出することが可能となる。
また、本発明第7の態様では、前記画像度数分布算出手段は、フィルタマトリクスに対応した16方向の各方向について事前に設定された強度補正量を用いて、前記求められた各方向の強度を補正することを特徴とする。
本発明第7の態様によれば、フィルタマトリクスに対応した16方向の各方向について事前に設定された強度補正量を用いて、求められた各方向の強度を補正するようにしたので、フィルタマトリクスの特性に応じた方向によるエッジ強度の偏りを適正なものに補正することが可能となる。
また、本発明第8の態様では、前記画像度数分布算出手段は、各画素について算出されたエッジ強度に対して、所定の設定最小値(SL)を減算し、減算した値に、エッジ強度の階調数を乗算し、当該階調数と前記設定最小値との差を除算することにより前記エッジ強度を補正し、補正されたエッジ強度が正の値になる画素を前記エッジ点として抽出することを特徴とする。
本発明第8の態様によれば、各画素について算出されたエッジ強度に対して、所定の設定最小値を減算し、減算した値に、エッジ強度の階調数を乗算し、階調数と設定最小値との差を除算することによりエッジ強度を補正し、補正されたエッジ強度が正の値になる画素をエッジ点として抽出するようにしたので、補正後のエッジ強度が正の値であるか否かを判定するだけで済み、効率的なエッジ点の抽出が可能となる。
また、本発明第9の態様では、前記画像度数分布算出手段は、前記距離分布を算出するにあたり、所定数(MD)の要素で構成される1次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする。
本発明第9の態様によれば、規制画像の距離分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、算出された距離の最大値の範囲を所定数に均等分割した上で、各距離をその距離に基づいて要素のいずれかに割り当て、要素に該当する数を計数するようにしたので、基準点から各エッジ点までの距離を用いて容易に距離分布を算出することが可能となる。
また、本発明第10の態様では、前記画像度数分布算出手段は、前記角度分布を算出するにあたり、所定数(MA)の要素で構成される1次元配列を準備し、角度0度から180度の範囲を前記所定数に均等分割した上で、前記各エッジ点固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
本発明第10の態様によれば、規制画像の角度分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、角度0度から180度の範囲を所定数に均等分割した上で、各エッジ点固有の角度に基づいて要素のいずれかに割り当て、要素の値を計数することにより、角度分布を算出するようにしたので、各エッジ点固有の角度を用いて容易に角度分布を算出することが可能となる。
また、本発明第11の態様では、前記画像度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記エッジ個別ベクトルに対応するエッジ点のエッジ強度で重み付けするようにしていることを特徴とする。
本発明第11の態様によれば、規制画像の距離分布または角度分布を算出するにあたり、割り当てられた要素の値を計数する際、前記エッジ個別ベクトルに対応するエッジ点のエッジ強度で重み付けするようにしたので、規制画像の精細度の差異が、距離分布または角度分布にあまり反映せず、画素数が異なる複数の規制画像をデータベースに登録しなくても、的確に判定させることが可能となる。
また、本発明第12の態様では、前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標に当該ポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるものであることを特徴とする。
本発明第12の態様によれば、対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標にそのポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるようにしたので、対象モデルの重心に近い位置を基準点として迅速に算出することができる。
また、本発明第13の態様では、前記モデル度数分布算出手段は、前記基準点から各ポリゴンの平均座標へのベクトルをポリゴン個別ベクトルとして求め、当該ポリゴン個別ベクトルの大きさを前記各ポリゴンまでの距離、前記ポリゴン個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を前記各ポリゴン固有の角度とすることにより、前記各ポリゴンまでの距離と前記ポリゴン固有の角度を算出することを特徴とする。
本発明第13の態様によれば、基準点から各ポリゴンの平均座標へのベクトルをポリゴン個別ベクトルとして求め、ポリゴン個別ベクトルの大きさを各ポリゴンまでの距離、ポリゴン個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を各ポリゴン固有の角度とすることにより、各ポリゴンまでの距離とポリゴン固有の角度を算出するようにしたので、各ポリゴンの3次元空間的な位置関係を反映し、ポリゴンモデルの形状特徴を正確に反映した度数分布を容易に算出することが可能となる。
また、本発明第14の態様では、前記モデル度数分布算出手段は、前記距離分布を算出するにあたり、所定数(MD)の要素で構成される1次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする。
本発明第14の態様によれば、距離分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、算出された距離の最大値の範囲を所定数に均等分割した上で、各距離をその距離に基づいて所定数のいずれかの要素に割り当て、その要素に該当する数を計数することにより、距離分布を算出するようにしたので、基準点から各ポリゴンへのベクトルを用いて容易に距離分布を算出することが可能となる。
また、本発明第15の態様では、前記モデル度数分布算出手段は、前記角度分布を算出するにあたり、所定数(MA)の要素で構成される1次元配列を準備し、角度0度から180度の範囲を前記所定数に均等分割した上で、前記各ポリゴン固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
本発明第15の態様によれば、角度分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、角度0度から180度の範囲を所定数に均等分割した上で、各ポリゴン固有の角度に基づいて所定数のいずれかの要素に割り当て、その要素の値を計数することにより、角度分布を算出するようにしたので、基準点から各ポリゴンへのベクトルを用いて容易に角度分布を算出することが可能となる。
また、本発明第16の態様では、前記モデル度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記各ポリゴンの面積で重み付けするようにしていることを特徴とする。
本発明第16の態様によれば、距離分布または角度分布を算出するにあたり、割り当てられた要素の値を計数する際、各ポリゴンの面積で重み付けするようにしたので、ポリゴン分割の精細度の差異が、距離分布または角度分布にあまり反映せず、ポリゴン分割の精細度が異なる複数のポリゴンモデルに対して同一(出力を規制すべき)であると判定させることが可能となる。
また、本発明第17の態様では、
前記度数分布照合手段は、前記対象モデルの距離分布、角度分布をそれぞれ、前記規制画像の距離分布、角度分布と照合するにあたり、
前記距離分布同士の相関係数、前記角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
前記度数分布照合手段は、前記対象モデルの距離分布、角度分布をそれぞれ、前記規制画像の距離分布、角度分布と照合するにあたり、
前記距離分布同士の相関係数、前記角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
本発明第17の態様によれば、対象モデルの距離分布、角度分布をそれぞれ、規制画像の距離分布、角度分布と照合するにあたり、距離分布同士の相関係数、角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしたので、対象モデルと規制画像の特徴の照合を、迅速かつ的確に行うことが可能となる。
また、本発明第18の態様では、前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、前記ポリゴンが削減された対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする。
本発明第18の態様によれば、まず、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、距離分布、角度分布を算出するようにしたので、対象モデルの微細形状の相違を許容して高速に出力が適正か否かの判断を行うことが可能となる。
また、本発明第19の態様では、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、前記部分対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする。
本発明第19の態様によれば、まず、対象モデルを複数の部分対象モデルに分割し、部分対象モデルに対して、距離分布、角度分布を算出するようにしたので、複数の部品で構成される物品を表現した対象モデルの照合の際、規制画像を基に作成されたものと対象モデルとで互いに部品構成が異なる場合でも、適切に出力が適正か否かの判断を行うことが可能となる。
また、本発明第20の態様では、前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする。
本発明第20の態様によれば、ポリゴンは三角形であり、対象モデル分割手段は、あるポリゴンと、そのポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように分割するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分割することが可能となる。
また、本発明第21の態様では、前記規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離と各エッジ点固有の角度を算出し、算出結果に基づいて各エッジ点までの距離の度数分布である距離分布と、前記各エッジ点固有の角度の度数分布である角度分布を算出する画像度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする。
本発明第21の態様によれば、規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、規制画像の基準点から規制画像の各エッジ点までの距離と各エッジ点固有の角度を算出し、算出結果に基づいて各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度の度数分布である角度分布を算出する画像度数分布算出装置を別途用意し、この画像度数分布算出装置から規制画像の度数分布を受信し、データベースに登録するようにしたので、データベースの更新を遠隔地から迅速に行うことが可能となる。
また、本発明第22の態様では、
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである(出力不適)と判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする。
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである(出力不適)と判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする。
本発明第22の態様によれば、対象モデルを、接続された立体物造形装置に出力し、並行して実行される度数分布照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
また、本発明第23の態様では、
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記モデル度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を更に有することを特徴とする。
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記モデル度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を更に有することを特徴とする。
本発明第23の態様によれば、ネットワークを介して対象モデルの距離分布と角度分布を受信し、出力を規制すべきか否かの判定により得られた出力を規制すべきか否かに基づくデータを対象モデルの距離分布と角度分布の送信元に送信するようにしたので、出力を規制すべきか否かの判定をクラウド型で提供することができ、出力側における処理を軽減することができる。更に、データベースをクラウド側で一元管理でき、3Dプリンタ等の立体物造形装置ごとに接続されている出力制御用端末内でデータベースを管理する必要がないため、常に最新のデータベースに基づいて出力を規制すべきか否かの判定を行うことが可能になる。
また、本発明第24の態様では、
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
本発明第24の態様によれば、立体物造形用データ出力規制装置と、立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ3Dプリンタ等の形態で、立体物造形システムを提供することが可能となる。
本発明によれば、ポリゴンモデルを基に立体物の出力を行う際に、2次元の画像を基準として、出力を規制すべきか否かの判定を的確に行うことが可能となる。
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<1.本発明の基本概念>
最初に、本発明の基本概念について説明しておく。3Dプリンタでキャラクターのモチーフ画像を基に、フィギュアを造形するためには、3次元のポリゴンモデルを制作する必要があるが、近年、画面上に表示されているイラストや写真の上をトレースするだけで、自動的に円柱形状などにより奥行きを付加し、3次元のポリゴンモデルを半自動的に制作できるツールの開発が活発になっている。これに伴い、キャラクターやイラストなど著作物性の高い2次元の画像を基に、3Dプリンタにより違法なフィギュアが容易に制作され、金型等で成形されるフィギュア正規品の市場が圧迫されようとしている。
<1.本発明の基本概念>
最初に、本発明の基本概念について説明しておく。3Dプリンタでキャラクターのモチーフ画像を基に、フィギュアを造形するためには、3次元のポリゴンモデルを制作する必要があるが、近年、画面上に表示されているイラストや写真の上をトレースするだけで、自動的に円柱形状などにより奥行きを付加し、3次元のポリゴンモデルを半自動的に制作できるツールの開発が活発になっている。これに伴い、キャラクターやイラストなど著作物性の高い2次元の画像を基に、3Dプリンタにより違法なフィギュアが容易に制作され、金型等で成形されるフィギュア正規品の市場が圧迫されようとしている。
本発明では、キャラクターやイラストなど著作物性の高い2次元の画像を基に、3次元のポリゴンモデルを作成し、このポリゴンモデルをキャラクターやイラストの権利者の許可なく出力しようとした際に、出力を規制することを一つの目的としている。しかし、事前に違法なフィギュアの3次元のポリゴンモデルをデータベース化することは困難で、たとえデータベースに登録できても、キャラクターのモチーフ画像を基に制作される3次元のポリゴンモデルの形状には無尽蔵の多様性があり、出力対象のポリゴンモデルをデータベースに登録されているポリゴンモデルと照合する方法ではタイムリーな出力規制を行うことができない。そこで、データベースには多様性が少ない典型的なキャラクターの2次元モチーフ画像を登録し、3次元のポリゴンモデルを3Dプリンタで出力しようとした際に、登録されている2次元の画像を用いて照合を行えるようにする機能を実現する必要がある。
図1は、本発明の基本概念を説明するための図である。図1(a)は、出力しようとする3次元のポリゴンモデルであり、図1(b)は、データベースに登録された規制すべき2次元の画像である。本発明では、図1(a)に示したポリゴンモデルから図1(c)に示した距離、角度についての2種の度数分布を作成し、図1(b)に示した画像から図1(c)に示したような距離、角度についての2種の度数分布を図1(d)に示すように作成する。そして、図1(c)および図1(d)に示す距離、角度についての2種の度数分布に対して、互いに整合性をもたせるようにすれば、これらを照合し、その相関をとることにより、図1(a)に示すポリゴンモデルと図1(b)に示す画像の類似性を判定することができる。ポリゴンモデルが登録された画像に類似する特徴をもつ場合には、当該ポリゴンモデルの出力が規制されることになる。
<2.第1の実施形態>
<2.1.画像度数分布算出装置の装置構成>
第1の実施形態では、3次元のポリゴンモデルの出力適否の判定を行う際に、ポリゴンモデルから作成した度数分布と、規制対象とする2次元の画像から作成した度数分布との照合を行う。このため、事前に画像から度数分布を作成しておく必要がある。まず、このような画像から度数分布を作成する画像度数分布算出装置について説明する。
<2.1.画像度数分布算出装置の装置構成>
第1の実施形態では、3次元のポリゴンモデルの出力適否の判定を行う際に、ポリゴンモデルから作成した度数分布と、規制対象とする2次元の画像から作成した度数分布との照合を行う。このため、事前に画像から度数分布を作成しておく必要がある。まず、このような画像から度数分布を作成する画像度数分布算出装置について説明する。
図2は、画像度数分布算出装置のハードウェア構成図である。画像度数分布算出装置300は、汎用のコンピュータで実現することができ、図2に示すように、CPU(Central Processing Unit)81と、コンピュータのメインメモリであるRAM(Random Access Memory)82と、CPU81が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置83と、キーボード、マウス等のキー入力I/F(インターフェース)84と、3Dプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)85と、液晶ディスプレイ等の表示デバイスである表示部86と、を備え、互いにバスを介して接続されている。
図3は、画像度数分布算出装置の構成を示す機能ブロック図である。図3において、91は規制画像記憶手段、92は画像度数分布算出手段、93は画像度数分布記憶手段である。
画像度数分布算出手段92は、規制対象の画像である規制画像に対して、規制画像の基準点から規制画像を構成する各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度の度数分布である角度分布を算出する処理を行う。
画像度数分布算出手段92は、CPU81が、記憶装置83に記憶されているプログラムを実行することにより実現される。規制画像記憶手段91は、出力を規制すべき画像である規制画像を記憶した記憶手段であり、記憶装置83により実現される。
画像度数分布記憶手段93は、出力を規制すべき画像である規制画像に対して、2種の度数分布として算出された距離分布および角度分布を記憶して、データベース化したものであり、記憶装置83により実現される。2種の度数分布である距離分布および角度分布は、規制画像の特徴を表現した特徴ベクトルとしての役割を果たすものとなる。即ち、2種の度数分布により、元の規制画像の相違を識別可能であるが、元の規制画像を復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、2種の度数分布は、著作物としての役割は果たさないが、2つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割を果たすことになる。画像度数分布記憶手段93には、距離分布および角度分布だけでなく、距離分布および角度分布の算出の基になった規制画像自体を登録しておけば類似性が判定された規制画像に対してヒトが目視で確認できるため、通常は、著作権者から許諾を受け、商用品質に値しない解像度で規制画像自体も登録される。
図3に示した各構成手段は、現実には図2に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
図2に示した記憶装置83には、CPU81を動作させ、コンピュータを、画像度数分布算出装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU81は、画像度数分布算出手段92としての機能を実現することになる。また、記憶装置83は、規制画像記憶手段91、画像度数分布記憶手段93として機能するだけでなく、画像度数分布算出装置としての処理に必要な様々なデータを記憶する。
<2.2.画像度数分布算出装置の処理動作>
次に、図2、図3に示した画像度数分布算出装置の処理動作について説明する。画像度数分布算出装置の画像度数分布算出手段92は、出力を規制すべき画像である規制画像について、2種の度数分布である距離分布および角度分布を算出する。図4は、度数分布の算出処理の詳細を示すフローチャートである。ここでは、後述するフィルタ演算を簡便に行うため、規制画像を256階調のモノクロ画像として扱う。したがって、カラー画像の場合は、事前に256階調のモノクロ画像に変換する処理を行っておき、二値画像の場合は、0または255のいずれかの値をもつ256階調のモノクロ画像として処理する。したがって、x方向の画素数Xs、y方向の画素数Ysの規制画像は、Img(x,y)=0〜255(x=0,・・・,Xs−1;y=0,・・・,Ys−1)と定義される。規制画像には、対象物部分と背景部分が存在し、対象物部分はグレーまたは白く表示されるImg(x,y)>0に設定し、背景は黒く表示されるImg(x,y)=0に設定する。規制画像の四隅は、背景となるため、Img(0,0)=Img(0,Ys−1)=Img(Xs−1,0)=Img(Xs−1,Ys−1)=0となっている。
次に、図2、図3に示した画像度数分布算出装置の処理動作について説明する。画像度数分布算出装置の画像度数分布算出手段92は、出力を規制すべき画像である規制画像について、2種の度数分布である距離分布および角度分布を算出する。図4は、度数分布の算出処理の詳細を示すフローチャートである。ここでは、後述するフィルタ演算を簡便に行うため、規制画像を256階調のモノクロ画像として扱う。したがって、カラー画像の場合は、事前に256階調のモノクロ画像に変換する処理を行っておき、二値画像の場合は、0または255のいずれかの値をもつ256階調のモノクロ画像として処理する。したがって、x方向の画素数Xs、y方向の画素数Ysの規制画像は、Img(x,y)=0〜255(x=0,・・・,Xs−1;y=0,・・・,Ys−1)と定義される。規制画像には、対象物部分と背景部分が存在し、対象物部分はグレーまたは白く表示されるImg(x,y)>0に設定し、背景は黒く表示されるImg(x,y)=0に設定する。規制画像の四隅は、背景となるため、Img(0,0)=Img(0,Ys−1)=Img(Xs−1,0)=Img(Xs−1,Ys−1)=0となっている。
画像度数分布算出手段92は、まず、規制画像の各画素についてフィルタ演算を行い、各画素のエッジ強度とエッジ方向ベクトルを算出する(ステップS510)。まず、フィルタ演算に用いるフィルタマトリクスであるエッジ抽出フィルタについて説明する。フィルタマトリクスとは、マトリクスフィルタ、空間フィルタなどとも呼ばれ、一般には、注目画素とその周囲の画素の値を使用して注目画素の画素値を変換するために用いられるものである。
図5は、本実施形態で用いる16方向エッジ抽出フィルタを示す図である。図5に示す16方向エッジ抽出フィルタは、自身を含めた8近傍の9画素の値を16方向の各方向に応じて重みを変化させたものとなっている。図5の例では、方向0から方向15までの16方向について示している。方向0の場合を例にとって説明すると、右側の(0.0,−1.0)は、方向0を特定する単位ベクトルである方向ベクトルを示している。また、縦3×横3の9個の数字は、M(d,u,v)=[−2,−1,1,2]で定義される重みを示している。重みは、−2,−1,1,2の4つの値をとる。そして、9個の数字は、中心を(u,v)=(0,0)として、u,vがそれぞれ−1,0,1の3通りの値をとる。中心の場合、dの値のいかんに関わらず必ずM(d,0,0)=1であり、中心以外の場合、方向dに応じてM(d,u,v)の値の−2、−1,1および2の位置が異なっている。方向0(d=0)の場合、図5の右側の例に示すように、重みM(d,u,v)は、M(0,−1,−1)=−2〜M(0,1,1)=1の9個が定義される。この際、方向0の場合のフィルタの方向ベクトルEx(d),Ey(d)はEx(0)=0.0,Ey(0)=−1.0となる。図5に示した16方向エッジ抽出フィルタは22.5度刻みで方向を変化させたものである。
画像度数分布算出手段92は、図5に示したエッジ抽出フィルタM(d,u,v)を用いて以下の〔数式1〕に従った処理を実行し、各画素のエッジ強度とエッジ方向ベクトルを決定する。
〔数式1〕
F(d,x,y)=[Σv=-1,1Σu=-1,1M(d,u,v)[Img(x,y)−128] ]/6
EK(x,y)=F(dmax,x,y)=MAXd=0,DF(d,x,y)
Vx(x,y)=Ex(dmax)
Vy(x,y)=Ey(dmax)
F(d,x,y)=[Σv=-1,1Σu=-1,1M(d,u,v)[Img(x,y)−128] ]/6
EK(x,y)=F(dmax,x,y)=MAXd=0,DF(d,x,y)
Vx(x,y)=Ex(dmax)
Vy(x,y)=Ey(dmax)
上記〔数式1〕の第1式において、Σの添え字の“v=−1,1”、“u=−1,1”は、vが−1から1、uが−1から1の全ての整数をとる場合について、総和を求めることを示している。上記〔数式1〕の第1式により、各画素について、強度を表すフィルタ演算値F(d,x,y)が得られる。上記〔数式1〕の第2式において、“MAXd=0,D”は、方向d=0から方向d=Dまでの全ての方向の中での最大値を示している。16方向エッジ抽出フィルタを用いる場合は、D=15である。上記〔数式1〕の第2式により、最大のフィルタ演算値が、各画素のエッジ強度EK(x,y)として得られる。また、最大のフィルタ演算値をとり、エッジ強度を与える方向dをdmaxとする。上記〔数式1〕の第3式、第4式により、画素(x,y)のエッジ方向ベクトルVx(x,y),Vy(x,y)は、方向dmaxの方向として得られる。エッジ方向ベクトルとは、エッジ点(対象物のエッジを構成する画素)のエッジを特定する方向を示すベクトルであり、規制画像における対象物と背景との境界部においては境界線と直交し対象物から背景方向に横切る方向を示す。規制画像の対象物内部においては、濃淡差が顕著な境界部においては、境界線と直交し濃度が薄い(白いに近い)方から濃度が濃い(黒に近い)方向に横切る方向を示す。
次に、画像度数分布算出手段92は、各画素のエッジ強度の補正およびコントラスト補正を行う(ステップS520)。まず、方向別のエッジ強度補正量を用いてエッジ強度の補正を行う。方向別のエッジ強度補正量Tc(d)を記録したエッジ強度補正テーブルを図6に示す。図6に示すように、エッジ強度補正テーブルには、方向d=0〜15それぞれについて、エッジ強度補正量が記録されている。図6に示すエッジ強度補正テーブルでは、エッジ強度補正量を%単位で示している。上述のように、16方向エッジ抽出フィルタは22.5度刻みとなっており、これに対応してエッジ強度補正テーブルも22.5度刻みとなっている。図6の例では、方向dが4つ異なるごと、すなわち90度異なるごとにエッジ強度補正量が同一値となるように繰り返されている。これは、16方向エッジ抽出フィルタにより算出されるエッジ強度が、90度単位で所定の特性をもつため、それに応じて補正をする必要が生じることを意味している。
画像度数分布算出手段92は、図6に示したエッジ強度補正量Tc(d)を用いて以下の〔数式2〕に従った処理を実行し、各画素のエッジ強度を補正する。
〔数式2〕
EK´(x,y)=EK(x,y)・Tc(d)/100
EK´(x,y)=EK(x,y)・Tc(d)/100
上記〔数式2〕において、“・”は、乗算を示している。Tc(d)は、図6に示したような%単位の数値であるため、補正前のエッジ強度に乗じた後、100で除算している。この結果、補正されたエッジ強度EK´(x,y)が得られる。
次に、画像度数分布算出手段92は、エッジ強度のコントラスト補正を行う。具体的には、以下の〔数式3〕に従った処理を実行し、各画素のエッジ強度のコントラスト補正を行う。
〔数式3〕
EK´´(x,y)={EK´(x,y)−SL}・256/{256−SL}
EK´´(x,y)={EK´(x,y)−SL}・256/{256−SL}
上記〔数式3〕において、256は階調数であり、規制画像の画素が取り得る0〜255の数を示している。SLは、コントラスト補正後に最小とする値である設定最小値を示している。設定最小値SLについては、適宜設定することができるが、元の画像が0〜255の値を取り得る場合に、72程度とすることが好ましい。この、設定最小値は、実質的には、エッジ強度と比較することによりエッジ点とするか否かを判定するためのしきい値として機能する。
〔数式2〕によるエッジ強度補正、〔数式3〕によるコントラスト補正を行った結果、補正されたエッジ強度EK´´(x,y)が得られるが、説明が繁雑になるのを避けるため、以下では、補正されたエッジ強度をEK(x,y)として説明する。
次に、エッジ点の抽出を行う(ステップS530)。具体的には、ステップS520において補正されたエッジ強度と、事前に設定されたしきい値とを比較し、エッジ強度がしきい値以上の画素をエッジ点として抽出する。ステップS520においてコントラスト補正を行っている場合は、しきい値として“0”を設定し、コントラスト補正後のエッジ強度が0以上の画素が抽出されるようにすることが好ましい。
次に、画像度数分布算出手段92は、エッジ方向ベクトルの補正を行う(ステップS540)。上述のように、エッジ方向ベクトルは、エッジ抽出フィルタを用いて、方向dの数Dのいずれかの方向を示すベクトルとして算出される。したがって、例えば、D=16の場合、16通りの方向しかなく、これを用いて算出される基準点からエッジ点へのベクトル(エッジ個別ベクトル)とのなす角度は、不連続なものになる(エッジ個別ベクトルの方が連続量のため、これとのなす角は16段階に限定されるわけではないが、かなり粗いものになる)。一方、比較対象とする3次元のポリゴンモデルにおいて特定される角度は、エッジ方向ベクトルに相当するポリゴンの法線ベクトルを用いて算出され、法線ベクトルは3次元空間内の連続量であるため、これを用いて算出される基準点からポリゴン平均点へのベクトル(ポリゴン個別ベクトル)とのなす角度は0〜180度の範囲で連続量となる。そのため、規制画像から作成される角度分布は、対象モデルから作成される角度分布に比べて、角度の分解能が粗いものとなり、両者の相関を精度良く計算できなくなる。そのため、ここでは、エッジ点として特定された画素の周囲の画素を用いて、エッジ方向ベクトルの補正を行っている。具体的には、以下の〔数式4〕に従った処理を実行し、各エッジ点のエッジ方向ベクトルを補正する。
〔数式4〕
Vx´(x,y)=[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)Vx(x+u,y+v)・EK(x+u,y+v)]/[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)EK(x+u,y+v)]
Vy´(x,y)=[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)Vy(x+u,y+v)・EK(x+u,y+v)]/[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)EK(x+u,y+v)]
Vx´(x,y)=[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)Vx(x+u,y+v)・EK(x+u,y+v)]/[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)EK(x+u,y+v)]
Vy´(x,y)=[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)Vy(x+u,y+v)・EK(x+u,y+v)]/[Σv=-1,1Σu=-1,1;EK(x+u,y+v)≧EK(x,y)EK(x+u,y+v)]
上記〔数式4〕においては、EK(x+u,y+v)≧EK(x,y)となる画素についてのみ演算を行っている(中心となる画素(x,y)も加算対象)。EK(x+u,y+v)≧EK(x,y)とは、中心となる画素(エッジ点)のエッジ強度EK(x,y)以上のエッジ強度を有する周囲のエッジ点の画素(x+u,y+v)についてのみ、総和演算を行うことを示している。上記〔数式4〕の分子においては、補正前のエッジ方向ベクトルに補正前のエッジ強度を乗じており、上記〔数式4〕の分母においては、中心の画素(エッジ点)とその8近傍画素を合わせた最大9画素の平均エッジ強度を算出している。結局、上記〔数式4〕においては、対象とするエッジ点(x,y)の周囲のエッジ点(x+u,y+v)におけるエッジを特定する方向Vx(x+u,y+v)と周囲のエッジ点のエッジ強度EK(x+u,y+v)を加重しながら平均化していることになる。次に、規制画像における基準点を算出する(ステップS550)。
ステップS530において抽出したエッジ点の抽出順をiとすると、Ne個のエッジ点が抽出された場合、エッジ点の配列は[Xe(i),Ye(i)](i=0,・・・,Ne−1)と定義することができる。基準点は、エッジ点を用いて求めることができる。基準点としては、エッジ強度を加味したエッジ強度の重心とする場合と、エッジ点の中央点とする場合の2種がある。
まず、エッジ強度を加味したエッジ強度の重心を基準点とする場合について説明する。i番目のエッジ点のエッジ強度EK(i)=EK(Xe(i),Ye(i))とし、画像度数分布算出手段92は、以下の〔数式5〕に従った処理を実行することにより、規制画像の基準点(Xge,Yge)を算出する。
〔数式5〕
EKsum=Σi=0,Ne-1EK(i)
Xge={Σi=0,Ne-1(Xe(i)・EK(i))}/EKsum
Yge={Σi=0,Ne-1(Ye(i)・EK(i))}/EKsum
EKsum=Σi=0,Ne-1EK(i)
Xge={Σi=0,Ne-1(Xe(i)・EK(i))}/EKsum
Yge={Σi=0,Ne-1(Ye(i)・EK(i))}/EKsum
上記〔数式5〕において、EKsumは抽出された全てのエッジ点のエッジ強度の総和である。規制画像の基準点は、上記〔数式5〕に示すように、各エッジ点のエッジ強度を乗じているため、規制画像の対象物の重心に近い点を示しており、エッジ点のエッジ強度を加味した基準点となっている。規制画像の対象物とは、背景部分を除いたキャラクターの絵柄等を意味する。
次に、エッジ点の中央点を基準点とする場合について説明する。i番目のエッジ点のエッジ強度EK(i)=EK(Xe(i),Ye(i))とし、画像度数分布算出手段92は、以下の〔数式6〕に従った処理を実行することにより、規制画像の基準点(Xge,Yge)を算出する。
〔数式6〕
Xge={MAXi=0,Ne-1Xe(i)+MINi=0,Ne-1Xe(i)}/2
Yge={MAXi=0,Ne-1Ye(i)+MINi=0,Ne-1Ye(i)}/2
Xge={MAXi=0,Ne-1Xe(i)+MINi=0,Ne-1Xe(i)}/2
Yge={MAXi=0,Ne-1Ye(i)+MINi=0,Ne-1Ye(i)}/2
上記〔数式6〕において、MAXは、添え字の“i=0,Ne−1”のXe(i)またはYe(i)の中から最大値を選択することを示しており、MINは、添え字の“i=0,Ne−1”のXe(i)またはYe(i)の中から最小値を選択することを示している。したがって、エッジ点のX座標およびY座標ごとに、最大となるX座標と最小となるX座標および最大となるY座標と最小となるY座標の各々中央の座標値を有する中央点が基準点として得られることになる。
次に、画像度数分布算出手段92は、基準点からエッジ点へのベクトルの算出を行う(ステップS560)。具体的には、以下の〔数式7〕に従った処理を実行することにより、規制画像の基準点(Xge,Yge)から各エッジ点i[Xe(i),Ye(i)]へのベクトルであるエッジ個別ベクトル(Dxe(i),Dye(i))を算出する。基準点については、上述のような、エッジ強度を加味したエッジ強度の重心、中央点のどちらを用いることもできる。ただし、エッジ強度を加味したエッジ強度の重心は、エッジ点の抽出ムラによる影響を受け易い。そのため、中央点を用いる方が、規制画像内の対象物の形状によらず、偏りのない基準点となることが多い。
〔数式7〕
Dxe(i)=Xe(i)−Xge
Dye(i)=Ye(i)−Yge
Dxe(i)=Xe(i)−Xge
Dye(i)=Ye(i)−Yge
次に、画像度数分布算出手段92は、基準点とエッジ点の最大距離の算出を行う(ステップS570)。具体的には、以下の〔数式8〕に従った処理を実行することにより、規制画像の基準点(Xge,Yge)から各エッジ点i(Xe(i),Ye(i))までの距離De(i)を求め、Ne個の距離De(i)のうち最大のものを最大距離Demaxとする。
〔数式8〕
De(i)=[Dxe(i)2+Dye(i)2]1/2
Demax=MAXi=0,Ne-1De(i)
De(i)=[Dxe(i)2+Dye(i)2]1/2
Demax=MAXi=0,Ne-1De(i)
上記〔数式8〕において、MAXは、添え字の“i=0,Ne−1”のDe(i)の中から最大値を選択することを示している。
次に、画像度数分布算出手段92は、基準点からエッジ点へのベクトルであるエッジ個別ベクトルと、エッジ方向ベクトルのなす角度の算出を行う(ステップS580)。具体的には、以下の〔数式9〕に従った処理を実行することにより、エッジ点iのエッジ個別ベクトル(Dxe(i),Dye(i))と、エッジ点iのエッジ方向ベクトル(Vx(i),Vy(i))(=(Vx(x,y),Vy(x,y)))のなす角度Ae(i)を算出する。
〔数式9〕
Ae(i)=[cos-1[Dxe(i)・Vx(i)+Dye(i)・Vy(i)]/De(i)]・180/π
Ae(i)=[cos-1[Dxe(i)・Vx(i)+Dye(i)・Vy(i)]/De(i)]・180/π
上記〔数式9〕においては、単位をラジアンから度に変更するため[]で括られた部分に180/πを乗じている。したがって、Ae(i)は、0〜180の値をとることになる。基準点からエッジ点へのエッジ個別ベクトルとエッジ方向ベクトルのなす角度は、各エッジ点固有の角度となる。
次に、画像度数分布算出手段92は、基準点とエッジ点の距離分布を算出する(ステップS590)。本実施形態で算出される距離分布は、エッジ強度を加重した距離の分布である。要素数をMDとし、各要素md(md=0,・・・,MD−1)の度数をHdo(md)と表す。Hdoは、MD個の要素で構成される1次元配列である。
画像度数分布算出手段92は、初期値をHdo(md)=0と設定し、以下の〔数式10〕に従った処理を実行することにより、要素mdの度数Hdo(md)を算出する。
〔数式10〕
Demax・md/MD≦De(i)<Demax・(md+1)/MDならば、
Hdo(md)←Hdo(md)+EK(i)
Demax・md/MD≦De(i)<Demax・(md+1)/MDならば、
Hdo(md)←Hdo(md)+EK(i)
上記〔数式10〕は、規制画像の基準点からエッジ点iまでの距離De(i)が、最大距離Demaxにmd/MDを乗じた値以上で、(md+1)/MDを乗じた値より小さい場合に、Hdo(md)にエッジ点iのエッジ強度EK(i)を加算することを意味している。〔数式10〕の上段の条件においては、DemaxをMDで除して均等分割した区間に距離De(i)が該当するか否かを判定している。
上記〔数式10〕に従った処理を、Ne個のエッジ点について実行することにより、距離分布Hdo(md)(md=0,・・・,MD−1)が算出される。各要素には、単なる頻度ではなく、エッジ強度EK(i)が加算されているため、距離分布Hdo(md)は、エッジ強度加重の距離分布を示すことになる。エッジ強度EK(i)でなく単に1を加算するようにすることも可能であるが、その場合、エッジ強度が加味されない距離分布となり、同一の規制画像に対して画素が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、距離分布算出時にエッジ点のエッジ強度を加算するようにしている。また、上記〔数式10〕で算出されたHdo(md)に、更に100/EKsumを乗じてHdo(md)と置き換えることにより、単位をエッジ強度率[%]に正規化している。
次に、画像度数分布算出手段92は、エッジ個別ベクトルとエッジ方向ベクトルのなす角度であるエッジ点固有の角度の角度分布を算出する(ステップS600)。本実施形態で算出される角度分布は、エッジ強度を加重した角度の分布であ。要素数をMAとし、各要素ma(ma=0,・・・,MA−1)の度数をHao(ma)と表す。Haoは、MA個の要素で構成される1次元配列である。要素数MAは、上記要素数MDと同一であってもよい。
画像度数分布算出手段92は、初期値をHao(ma)=0と設定し、以下の〔数式11〕に従った処理を実行することにより、要素maの度数Hao(ma)を算出する。
〔数式11〕
180・ma/MA≦Ae(i)<180・(ma+1)/MAならば、
Hao(ma)←Hao(ma)+EK(i)
180・ma/MA≦Ae(i)<180・(ma+1)/MAならば、
Hao(ma)←Hao(ma)+EK(i)
上記〔数式11〕は、エッジ点iのエッジ個別ベクトルと、エッジ点iのエッジ方向ベクトルのなす角の角度Ae(i)が、180にma/MAを乗じた値以上で、(ma+1)/MAを乗じた値より小さい場合に、Hao(ma)にエッジ点iのエッジ強度EK(i)を加算することを意味している。〔数式11〕の上段の条件においては、180をMAで除して均等分割した区間に角度Ae(i)が該当するか否かを判定している。
上記〔数式11〕に従った処理を、Ne個のエッジ点について実行することにより、角度分布Hao(ma)(ma=0,・・・,MA−1)が算出される。各要素には、単なる頻度ではなく、エッジ強度EK(i)が加算されているため、角度分布Hao(ma)は、エッジ強度加重の角度分布を示すことになる。エッジ強度EK(i)でなく単に1を加算するようにすることも可能であるが、その場合、エッジ強度が加味されない角度分布となり、同一の規制画像に対して画素が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布算出時にエッジ点のエッジ強度を加算するようにし、さらにHao(ma)に100/EKsumを乗じてHao(ma)と置き換えることにより、単位をエッジ強度率[%]に正規化している。図4に示した処理により得られた距離分布と角度分布の2種の度数分布は、規制画像を特定する識別情報と対応付けて、画像度数分布記憶手段93に格納される。
規制画像から得られた距離分布と角度分布における距離と角度の関係を図7(a)に示す。図7(a)において、斜線の網掛け部分が規制画像の対象物である。この部分は背景とは画素値が大きく異なっている。基準点は、通常、対象物の重心付近に位置する。エッジ点は対象物と背景との境界部または図7(a)の例には存在しないが対象物内での濃淡差が顕著な境界部に位置する。そして、規制画像の基準点からエッジ点までの距離が各エッジ点について算出される。各エッジ点固有の角度は、基準点から各エッジ点へのベクトルであるエッジ個別ベクトルと、エッジ点のエッジ方向ベクトルとのなす角度である。
<2.3.立体物造形用データ出力規制装置の構成>
次に、本発明第1の実施形態に係る立体物造形用データ出力規制装置について説明する。図8は、本発明第1の実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置100は、汎用のコンピュータで実現することができ、図8に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等のキー入力I/F(インターフェース)4と、3Dプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、を備え、互いにバスを介して接続されている。
次に、本発明第1の実施形態に係る立体物造形用データ出力規制装置について説明する。図8は、本発明第1の実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置100は、汎用のコンピュータで実現することができ、図8に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等のキー入力I/F(インターフェース)4と、3Dプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、を備え、互いにバスを介して接続されている。
3Dプリンタ7は、汎用の3Dプリンタであり、立体物の3次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。3Dプリンタ7は、データ処理部7aと出力部7bを有している。3Dプリンタ7のデータ処理部7aは、データ入出力I/F5に接続されており、データ入出力I/F5から受け取った立体物造形用データを基に、出力部7bが立体物を造形するようになっている。
図8では、立体物造形用データ出力規制装置100と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置100の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図8に示した立体物造形システムを1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
図9は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図9において、10はモデル度数分布算出手段、20は度数分布照合手段、30は対象モデル記憶手段、40は度数分布データベースである。
モデル度数分布算出手段10は、出力対象のポリゴンモデルである対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出する処理を行う。度数分布照合手段20は、対象モデルについて算出された距離分布、角度分布をそれぞれ、度数分布データベース40に登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。
モデル度数分布算出手段10、度数分布照合手段20は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段30は、出力を規制すべきか否かの判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置3により実現される。ポリゴンモデルとは、ポリゴンの集合により3次元空間における所定の立体形状を表現したデータであり、3Dプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてSTL(Standard Triangulated Language)を採用している。
度数分布データベース40は、出力を規制すべきポリゴンモデルである規制モデル、および出力を規制すべき画像である規制画像に対して2種の度数分布として算出された距離分布および角度分布を記憶して、データベース化したものであり、記憶装置3により実現される。2種の度数分布である距離分布および角度分布は、規制画像や規制モデルの特徴を表現した特徴ベクトルとしての役割を果たすものとなる。即ち、2種の度数分布により、元の規制モデルや規制画像の相違を識別可能であるが、元の規制モデルや規制画像を復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、2種の度数分布は、著作物としての役割は果たさないが、2つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割を果たすことになる。度数分布データベース40には、距離分布および角度分布だけでなく、距離分布および角度分布の算出の基になった規制モデルや規制画像自体を登録しておくことも可能であるが、規制モデルについては、通常は、著作権の問題から規制モデル自体は登録されないが、規制画像については、著作権者から許諾を得てデータベース登録される運用が通常であり、照合結果に対してヒトによる目視確認を可能にするため、規制画像自体も併せて登録されることが多い。
図9に示した各構成手段は、現実には図8に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。
図8に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、モデル度数分布算出手段10、度数分布照合手段20としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段30、度数分布データベース40として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
<2.4.立体物造形用データ出力規制装置の処理動作>
<2.4.1.前処理>
次に、図8、図9に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、上述のような、画像度数分布算出装置により、出力を規制すべき画像である規制画像から2種の度数分布を作成し、作成した度数分布を、度数分布データベース40に登録しておく。画像度数分布算出装置は、立体物造形用データ出力規制装置と別のコンピュータで実現する必要はなく、立体物造形用データ出力規制装置を実現するコンピュータに、画像度数分布算出装置を実現するためのプログラムを組み込んでおくこともできる。
<2.4.1.前処理>
次に、図8、図9に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、上述のような、画像度数分布算出装置により、出力を規制すべき画像である規制画像から2種の度数分布を作成し、作成した度数分布を、度数分布データベース40に登録しておく。画像度数分布算出装置は、立体物造形用データ出力規制装置と別のコンピュータで実現する必要はなく、立体物造形用データ出力規制装置を実現するコンピュータに、画像度数分布算出装置を実現するためのプログラムを組み込んでおくこともできる。
さらに、規制画像から作成した度数分布だけでなく、規制対象とするポリゴンモデルである規制モデルを表現した度数分布を作成し、度数分布データベース40に登録しておくこともできる。この場合、規制モデルについて、2種の度数分布である距離分布および角度分布を作成する。ポリゴンモデルからの距離分布および角度分布の作成については、後述する立体物造形用データ出力規制装置における処理と同様にして行うことができる。規制モデルからの距離分布および角度分布の作成は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。作成された距離分布および角度分布は、度数分布データベース40に登録される。2次元データである規制画像から作成される度数分布と、3次元データである規制モデルから作成される度数分布は、同一の形式になるように作成される。これにより、後述する照合時において、規制画像と規制モデルのどちらについても、同様に照合を行うことが可能となる。
出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作された画像やポリゴンモデルには著作権者が存在する著作物になる。したがって、著作物である画像やポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。画像については著作権者が明示されている法人である場合が多く、許諾を得ることが可能であるが、ポリゴンモデルについては個人など著作権者が不明なものも多く、許諾を得ることが困難である。距離分布および角度分布の形式により、元の画像やポリゴンモデルの相違を識別可能であるが、元の画像やポリゴンモデルを復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様で、距離分布および角度分布の形式はフィンガープリントに相当し、著作物には該当しない。そこで、本発明のように、距離分布および角度分布の形式で登録することにより、著作者の許諾を必要とせずに、規制画像や規制モデルの特徴を記録したデータベースを構築することができる。ただし、規制画像については、著作者の許諾を得て商用利用できないレベルに解像度を落とした状態で規制画像自体も併せて登録し、距離分布および角度分布の形式で照合し適合した規制画像をヒトが目視で確認できるようにする運用をとることが望ましい。
<2.4.2.処理概要>
次に、図8、図9に示した立体物造形用データ出力規制装置の処理動作について説明する。図10は、本発明第1の実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、モデル度数分布算出手段10が、ポリゴンモデルである対象モデルについて、2種の度数分布である距離分布および角度分布を算出する(ステップS100)。そして、算出された対象モデルの度数分布と、度数分布データベース40に登録された規制画像や規制モデルの度数分布との照合を行う(ステップS200)。
次に、図8、図9に示した立体物造形用データ出力規制装置の処理動作について説明する。図10は、本発明第1の実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、モデル度数分布算出手段10が、ポリゴンモデルである対象モデルについて、2種の度数分布である距離分布および角度分布を算出する(ステップS100)。そして、算出された対象モデルの度数分布と、度数分布データベース40に登録された規制画像や規制モデルの度数分布との照合を行う(ステップS200)。
<2.4.3.度数分布の算出処理>
まず、ステップS100の度数分布の算出処理について説明する。図11は、モデル度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xu(i),Yu(i),Zu(i))と定義されたものとする。uは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、u=0,1,2の3つの値をとる。したがって、例えばXu(i)は、X0(i)、X1(i)、X2(i)とも表記される。また、各ポリゴンiの法線ベクトルを(Xn(i),Yn(i),Zn(i))と定義する。頂点を特定したポリゴンおよび法線ベクトルは、立体物造形装置である3Dプリンタによる出力に必要なものであり、法線ベクトルの方向が造形面の外側(材料から空中方向)を示す。
まず、ステップS100の度数分布の算出処理について説明する。図11は、モデル度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xu(i),Yu(i),Zu(i))と定義されたものとする。uは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、u=0,1,2の3つの値をとる。したがって、例えばXu(i)は、X0(i)、X1(i)、X2(i)とも表記される。また、各ポリゴンiの法線ベクトルを(Xn(i),Yn(i),Zn(i))と定義する。頂点を特定したポリゴンおよび法線ベクトルは、立体物造形装置である3Dプリンタによる出力に必要なものであり、法線ベクトルの方向が造形面の外側(材料から空中方向)を示す。
モデル度数分布算出手段10は、まず、対象モデルを構成する各ポリゴンiの面積S(i)、N個のポリゴンの面積S(i)の総和である総面積Ssumを以下の〔数式12〕に従った処理を実行することにより算出する(ステップS110)。
〔数式12〕
Vx=[Y1(i)−Y0(i)][Z2(i)−Z0(i)]−[Z1(i)−Z0(i)][ Y2(i)−Y0(i)]
Vy=[Z1(i)−Z0(i)][X2(i)−X0(i)]−[X1(i)−X0(i)][ Z2(i)−Z0(i)]
Vz=[X1(i)−X0(i)][Y2(i)−Y0(i)]−[Y1(i)−Y0(i)][X2(i)−X0(i)]
S(i)=[Vx(i)2+Vy(i)2+Vz(i)2]1/2
Ssum=Σi=0,N-1S(i)
Vx=[Y1(i)−Y0(i)][Z2(i)−Z0(i)]−[Z1(i)−Z0(i)][ Y2(i)−Y0(i)]
Vy=[Z1(i)−Z0(i)][X2(i)−X0(i)]−[X1(i)−X0(i)][ Z2(i)−Z0(i)]
Vz=[X1(i)−X0(i)][Y2(i)−Y0(i)]−[Y1(i)−Y0(i)][X2(i)−X0(i)]
S(i)=[Vx(i)2+Vy(i)2+Vz(i)2]1/2
Ssum=Σi=0,N-1S(i)
上記〔数式12〕において、Σの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合について、総和を求めることを示している。以下の〔数式14〕においても同様である。次に、対象モデルにおける基準点を算出する(ステップS120)。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、各ポリゴンの平均点にそのポリゴンの面積を重みとして乗じた値の、ポリゴンモデルを構成するN個のポリゴンについての平均値を、ポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式13〕に従った処理を実行することにより、各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))を算出する。
〔数式13〕
Xc(i)={X0(i)+X1(i)+X2(i)}/3
Yc(i)={Y0(i)+Y1(i)+Y2(i)}/3
Zc(i)={Z0(i)+Z1(i)+Z2(i)}/3
Xc(i)={X0(i)+X1(i)+X2(i)}/3
Yc(i)={Y0(i)+Y1(i)+Y2(i)}/3
Zc(i)={Z0(i)+Z1(i)+Z2(i)}/3
次に、モデル度数分布算出手段10は、上記〔数式12〕に従った処理により算出されたポリゴンの面積S(i)、および面積S(i)の総和である総面積Ssumを用いて、以下の〔数式14〕に従った処理を実行することにより、対象モデルの基準点(Xg,Yg,Zg)を算出する。
〔数式14〕
Xg={Σi=0,N-1(Xc(i)・S(i))}/Ssum
Yg={Σi=0,N-1(Yc(i)・S(i))}/Ssum
Zg={Σi=0,N-1(Zc(i)・S(i))}/Ssum
Xg={Σi=0,N-1(Xc(i)・S(i))}/Ssum
Yg={Σi=0,N-1(Yc(i)・S(i))}/Ssum
Zg={Σi=0,N-1(Zc(i)・S(i))}/Ssum
対象モデルの基準点は、上記〔数式14〕に示すように、各ポリゴンの面積を乗じているため、対象モデルの重心に近い点を示しており、ポリゴンの重さを加味した基準点となっている。
次に、モデル度数分布算出手段10は、基準点からポリゴン平均点へのベクトルの算出を行う(ステップS130)。具体的には、以下の〔数式15〕に従った処理を実行することにより、対象モデルの基準点(Xg,Yg,Zg)から各ポリゴンiの平均点(Xc(i),Yc(i),Zc(i))へのベクトルであるポリゴン個別ベクトル(Dx(i),Dy(i),Dz(i))を算出する。
〔数式15〕
Dx(i)=Xc(i)−Xg
Dy(i)=Yc(i)−Yg
Dz(i)=Zc(i)−Zg
Dx(i)=Xc(i)−Xg
Dy(i)=Yc(i)−Yg
Dz(i)=Zc(i)−Zg
次に、モデル度数分布算出手段10は、基準点とポリゴン平均点の最大距離の算出を行う(ステップS140)。具体的には、以下の〔数式16〕に従った処理を実行することにより、対象モデルの基準点(Xg,Yg,Zg)から各ポリゴンiの平均点(Xc(i),Yc(i),Zc(i))までの距離D(i)を求め、N個の距離D(i)のうち最大のものを最大距離Dmaxとする。
〔数式16〕
D(i)=[Dx(i)2+Dy(i)2+Dz(i)2]1/2
Dmax=MAXi=0,N-1D(i)
D(i)=[Dx(i)2+Dy(i)2+Dz(i)2]1/2
Dmax=MAXi=0,N-1D(i)
上記〔数式16〕において、MAXは、添え字の“i=0,N−1”のN個のD(i)の中から最大値を選択することを示している。
次に、モデル度数分布算出手段10は、基準点からポリゴン平均点へのベクトルであるポリゴン個別ベクトルと、法線ベクトルのなす角度の算出を行う(ステップS150)。具体的には、以下の〔数式17〕に従った処理を実行することにより、ポリゴンiのポリゴン個別ベクトル(Dx(i),Dy(i),Dz(i))と、ポリゴンiの法線ベクトル(Xn(i),Yn(i),Zn(i))のなす角度A(i)を算出する。
〔数式17〕
A(i)=[cos-1[Dx(i)Xn(i)+Dy(i)Yn(i)+Dz(i)Zn(i)]/D(i)]・180/π
A(i)=[cos-1[Dx(i)Xn(i)+Dy(i)Yn(i)+Dz(i)Zn(i)]/D(i)]・180/π
上記〔数式17〕においては、単位をラジアンから度に変更するため[]で括られた部分に180/πを乗じている。したがって、A(i)は、0〜180の値をとることになる。基準点からポリゴン平均点へのベクトルであるポリゴン個別ベクトルと、法線ベクトルのなす角度は、各ポリゴン固有の角度となる。
次に、モデル度数分布算出手段10は、基準点とポリゴン平均点の距離分布を算出する(ステップS160)。本実施形態で算出される距離分布は、面積加重した距離の分布であり、要素数をMDとし、各要素md(md=0,・・・,MD−1)の度数をHd(md)と表す。
モデル度数分布算出手段10は、初期値をHd(md)=0と設定し、以下の〔数式18〕に従った処理を実行することにより、要素mdの度数Hd(md)を算出する。
〔数式18〕
Dmax・md/MD≦D(i)<Dmax・(md+1)/MDならば、
Hd(md)←Hd(md)+S(i)
Dmax・md/MD≦D(i)<Dmax・(md+1)/MDならば、
Hd(md)←Hd(md)+S(i)
上記〔数式18〕は、対象モデルの基準点からポリゴンiの平均点までの距離D(i)が、最大距離Dmaxにmd/MDを乗じた値以上で、(md+1)/MDを乗じた値より小さい場合に、Hd(md)にポリゴンiの面積S(i)を加算することを意味している。
上記〔数式18〕に従った処理を、N個のポリゴンについて実行することにより、距離分布Hd(md)(md=0,・・・,MD−1)が算出される。各要素には、単なる頻度ではなく、面積S(i)が加算されているため、距離分布Hd(md)は、面積加重の距離分布を示すことになる。面積S(i)でなく単に1を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない距離分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、距離分布算出時にポリゴンの面積を加算するようにしている。また、上記〔数式18〕で算出されたHd(md)に、更に100/Ssumを乗じてHd(md)と置き換えることにより、単位を面積率[%]に正規化している。
次に、モデル度数分布算出手段10は、ポリゴン個別ベクトルと法線ベクトルのなす角度であるポリゴン固有の角度の角度分布を算出する(ステップS170)。本実施形態で算出される角度分布は、面積加重した角度の分布であり、要素数をMAとし、各要素ma(ma=0,・・・,MA−1)の度数をHa(ma)と表す。要素数MAは、上記要素数MDと同一であってもよい。
モデル度数分布算出手段10は、初期値をHa(ma)=0と設定し、以下の〔数式19〕に従った処理を実行することにより、要素maの度数Ha(ma)を算出する。
〔数式19〕
180・ma/MA≦A(i)<180・(ma+1)/MAならば、
Ha(ma)←Ha(ma)+S(i)
180・ma/MA≦A(i)<180・(ma+1)/MAならば、
Ha(ma)←Ha(ma)+S(i)
上記〔数式19〕は、ポリゴンiのポリゴン個別ベクトルと、ポリゴンiの法線ベクトルのなす角の角度A(i)が、180にma/MAを乗じた値以上で、(ma+1)/MAを乗じた値より小さい場合に、Ha(ma)にポリゴンiの面積S(i)を加算することを意味している。
上記〔数式19〕に従った処理を、N個のポリゴンについて実行することにより、角度分布Ha(ma)(ma=0,・・・,MA−1)が算出される。各要素には、単なる頻度ではなく、面積S(i)が加算されているため、角度分布Ha(ma)は、面積加重の角度分布を示すことになる。面積S(i)でなく単に1を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない角度分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布算出時にポリゴンの面積を加算するようにし、さらにHa(ma)に100/Ssumを乗じてHa(ma)と置き換えることにより、単位を面積率[%]に正規化している。
対象モデルから得られた距離分布と角度分布における距離と角度の関係を図7(b)に示す。図7(b)は、ポリゴンモデルの斜視図を示している。図7(b)に示すポリゴンモデルは、三角形のポリゴンの集合体である。基準点は、通常、ポリゴンモデルの重心付近に位置する。1つのポリゴンの頂点の平均座標をもつ平均点と、基準点までの距離が各ポリゴンについて算出される。各ポリゴン固有の角度は、基準点から各ポリゴンへのベクトルであるポリゴン個別ベクトルと、ポリゴンの法線ベクトルとのなす角度である。
<2.4.4.度数分布の照合処理>
次に、ステップS200の度数分布の照合処理について説明する。図12は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段20は、度数分布データベース40に記憶されているRE個のレコードの中からレコードre(re=0,・・・,RE−1)に登録されている度数分布を抽出する(ステップS210)。度数分布として、距離分布Hdo(re,md)(md=0,・・・,MD−1)、角度分布Hao(re,ma)(ma=0,・・・,MA−1)を抽出する。
次に、ステップS200の度数分布の照合処理について説明する。図12は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段20は、度数分布データベース40に記憶されているRE個のレコードの中からレコードre(re=0,・・・,RE−1)に登録されている度数分布を抽出する(ステップS210)。度数分布として、距離分布Hdo(re,md)(md=0,・・・,MD−1)、角度分布Hao(re,ma)(ma=0,・・・,MA−1)を抽出する。
次に、度数分布照合手段20は、対象モデルから算出された距離分布と、度数分布データベース40から抽出された規制モデルの距離分布同士で各要素間の相関係数を算出する(ステップS220)。相関係数とは、二つの配列要素の関連性の強弱を示す指標である。ここでは、対象モデルと規制画像(または規制モデル)の類似性の強弱を判定するために用いる。まず、以下の〔数式20〕に従った処理を実行することにより、対象モデルから算出された距離分布Hd(md)の平均値Ad、度数分布データベース40から抽出された規制画像の距離分布Hdo(re,md)の平均値Ado(re)を算出する。
〔数式20〕
Ad=Σmd=0,MD-1Hd(md)/MD
Ado(re)=Σmd=0,MD-1Hdo(re,md)/MD
Ad=Σmd=0,MD-1Hd(md)/MD
Ado(re)=Σmd=0,MD-1Hdo(re,md)/MD
続いて、以下の〔数式21〕に従った処理を実行することにより、対象モデルから算出された距離分布Hd(md)の標準偏差Sd、度数分布データベース40から抽出された規制画像の距離分布Hdo(re,md)の標準偏差Sdo(re)を算出する。
〔数式21〕
Sd=[Σmd=0,MD-1(Hd(md)−Ad)2]1/2
Sdo(re)=[Σmd=0,MD-1(Hdo(re,md)−Ado(re))2]1/2
Sd=[Σmd=0,MD-1(Hd(md)−Ad)2]1/2
Sdo(re)=[Σmd=0,MD-1(Hdo(re,md)−Ado(re))2]1/2
厳密には、標準偏差は、上記〔数式21〕の{}内において、さらに定数MDで除算しておく必要がある。しかし、ここでは、相関係数を算出することが目的であるため、後述の〔数式22〕における分子の共分散を算出する項においても定数MDで除算する必要があり、分子と分母で重複して定数MDで除算する演算がキャンセルされる(分母は定数MDの平方根で2回除算)。
次に、算出された平均値および標準偏差を用いて、以下の〔数式22〕に従った処理を実行することにより、対象モデルの距離分布とレコードreに対応する規制モデルの距離分布の相関係数Dd(re)を算出する。
〔数式22〕
Dd(re)=[Σmd=0,MD-1(Hd(md)−Ad)・(Hdo(re,md)−Ado(re))]/(Sdo(re)・Sd)
Dd(re)=[Σmd=0,MD-1(Hd(md)−Ad)・(Hdo(re,md)−Ado(re))]/(Sdo(re)・Sd)
上記〔数式22〕において、Σの添え字の“md=0,MD−1”は、mdが0からMD−1の全ての整数をとる場合について、総和を求めることを示している。相関係数Dd(re)は、度数分布Hd(md)、Hdo(re,md)の共分散を、それぞれの標準偏差で除したものとなっている。上記〔数式22〕の演算のように、分母の平方根の割算を2回行うのは一般に処理負荷が高い。このため、画像処理の分野においては、分子の積和演算だけで済ますものを「相関係数」と呼び、上記〔数式22〕に示したDd(re)を「正規化相関係数」と呼ぶ習慣もある。
次に、度数分布照合手段20は、ステップS220において算出された距離分布の相関係数Dd(re)と、判定しきい値との比較を行う(ステップS230)。相関係数Dd(re)が判定しきい値以上である場合は、適合と判定し、相関係数Dd(re)が判定しきい値より小さい場合は、不適合と判定する。判定しきい値としては、正の値であれば任意に設定可能であるが、例えば、+5.0とすることができる。
ステップS230において適合と判定された場合には、度数分布照合手段20は、対象モデルから算出された角度分布と、度数分布データベース40から抽出された規制画像の角度分布同士で、各要素間の相関係数を算出する(ステップS240)。まず、以下の〔数式23〕に従った処理を実行することにより、対象モデルから算出された角度分布Ha(ma)の平均値Aa、度数分布データベース40から抽出された規制画像の角度分布Hao(re,ma)の平均値Aao(re)を算出する。
〔数式23〕
Aa=Σma=0,MA-1Ha(ma)/MA
Aao(re)=Σma=0,MA-1Hao(re,ma)/MA
Aa=Σma=0,MA-1Ha(ma)/MA
Aao(re)=Σma=0,MA-1Hao(re,ma)/MA
続いて、以下の〔数式24〕に従った処理を実行することにより、対象モデルから算出された角度分布Ha(ma)の標準偏差Sa、度数分布データベース40から抽出された規制画像の角度分布Hao(re,ma)の標準偏差Sao(re)を算出する。
〔数式24〕
Sa=[Σma=0,MA-1(Ha(ma)−Aa)2]1/2
Sao(re)=[Σma=0,MA-1(Hao(re,ma)−Aao(re))2]1/2
Sa=[Σma=0,MA-1(Ha(ma)−Aa)2]1/2
Sao(re)=[Σma=0,MA-1(Hao(re,ma)−Aao(re))2]1/2
厳密には、標準偏差は、上記〔数式24〕の{}内において、さらに定数MAで除算しておく必要がある。しかし、ここでは、相関係数を算出することが目的であるため、後述の〔数式25〕における分子の共分散を算出する項においても定数MAで除算する必要があり、分子と分母で重複して定数MAで除算する演算がキャンセルされる(分母は定数MAの平方根で2回除算)。
次に、算出された平均値および標準偏差を用いて、以下の〔数式25〕に従った処理を実行することにより、対象モデルの角度分布とレコードreに対応する規制画像の角度分布の相関係数Da(re)を算出する。
〔数式25〕
Da(re)=[Σma=0,MA-1(Ha(ma)−Aa)・(Hao(re,ma)−Aao(re))]/(Sao(re)・Sa)
Da(re)=[Σma=0,MA-1(Ha(ma)−Aa)・(Hao(re,ma)−Aao(re))]/(Sao(re)・Sa)
上記〔数式25〕において、Σの添え字の“ma=0,MA−1”は、maが0からMA−1の全ての整数をとる場合について、総和を求めることを示している。相関係数Da(re)は、度数分布Ha(ma)、Hao(re,ma)の共分散を、それぞれの標準偏差で除したものとなっている。上記〔数式25〕の演算のように、分母の平方根の割算を2回行うのは一般に処理負荷が高い。このため、画像処理の分野においては、分子の積和演算だけで済ますものを「相関係数」と呼び、上記〔数式25〕に示したDa(re)を「正規化相関係数」と呼ぶ習慣もある。
次に、度数分布照合手段20は、ステップS240において算出された角度分布の相関係数Da(re)と、判定しきい値との比較を行う(ステップS250)。相関係数Da(re)が判定しきい値以上である場合は、適合と判定し、相関係数Da(re)が判定しきい値より小さい場合は、不適合と判定する。判定しきい値としては、正の値であれば任意に設定可能であるが、例えば、+5.0とすることができる。
ステップS250において適合と判定された場合には、度数分布照合手段20は、対象モデルとレコードreの規制画像が適合することになるため、出力を規制すべきである(出力不適)との判定を行う。
ステップS230、S250のいずれかにおいて不適合と判定された場合には、度数分布照合手段20は、対象モデルとレコードreの規制画像の照合を終え、次のレコードre+1の規制画像との照合に移行する。図12のフローチャートに従った処理を、度数分布データベース40内の全レコードに対して実行し、適合となる規制画像が1つでも存在したら、対象モデルを“出力を規制すべきである(出力不適)”としてステップS200の照合処理を終了することになる。
<2.4.4.1.ユークリッド距離による照合>
上述のように、照合には、相関係数を用いることが好ましいが、ユークリッド距離を用いることもできる。この場合、上記ステップS220〜S250の処理は、以下のようになる。度数分布照合手段20は、対象モデルから算出された距離分布と、度数分布データベース40から抽出された規制画像の距離分布同士で各要素間のユークリッド距離を算出する(ステップS220)。具体的には、以下の〔数式26〕に従った処理を実行することにより、対象モデルの距離分布とレコードreに対応する規制画像の距離分布のユークリッド距離Dd2(re)を算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を2乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離Dd2(re)は、MD/K次元ユークリッド空間内の2点の距離として求められる。
上述のように、照合には、相関係数を用いることが好ましいが、ユークリッド距離を用いることもできる。この場合、上記ステップS220〜S250の処理は、以下のようになる。度数分布照合手段20は、対象モデルから算出された距離分布と、度数分布データベース40から抽出された規制画像の距離分布同士で各要素間のユークリッド距離を算出する(ステップS220)。具体的には、以下の〔数式26〕に従った処理を実行することにより、対象モデルの距離分布とレコードreに対応する規制画像の距離分布のユークリッド距離Dd2(re)を算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を2乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離Dd2(re)は、MD/K次元ユークリッド空間内の2点の距離として求められる。
〔数式26〕
Dd2(re)=Σi=0,MD/K-1[{Σk=0,K-1Hdo(re,i・K+k)/K−Σk=0,K-1Hd(i・K+k)/K}2・K/MD]1/2
Dd2(re)=Σi=0,MD/K-1[{Σk=0,K-1Hdo(re,i・K+k)/K−Σk=0,K-1Hd(i・K+k)/K}2・K/MD]1/2
上記〔数式26〕において、Σの添え字の“i=0,MD/K−1”は、iが0からMD/K−1の全ての整数をとる場合について総和を求めることを示し、Σの添え字の“k=0,K−1”は、mdが0からMD−1の全ての整数をとる場合について総和を求めることを示している。上記〔数式26〕において、Kは距離の位置ずれ許容範囲である。Kとしては、任意に設定することが可能であるが、例えばMD=360のときK=10としている。kはk=0,・・・,K−1の値をとる整数である。許容範囲Kは、対象モデルの形状が若干変化することにより基準点が変動した場合の影響を排除するために用いられる(ポリゴン構成の精細度が変化したり、形状の装飾に軽微な変化があったりする場合に限定)。許容範囲Kを設けることにより、対象モデルの距離分布に若干の変動があった場合でも、的確に規制画像との照合を行うことが可能となる。
次に、度数分布照合手段20は、ステップS220において算出された距離分布のユークリッド距離Dd2(re)と、判定しきい値との比較を行う(ステップS230)。判定しきい値との比較による判定は、相関係数の場合とは逆になる。すなわち、ユークリッド距離Dd2(re)が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Dd2(re)が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、例えば、0.5とすることができる。
ステップS230において適合と判定された場合には、度数分布照合手段20は、対象モデルから算出された角度分布と、度数分布データベース40から抽出された規制画像の角度分布の間で、互いのユークリッド距離を算出する(ステップS240)。具体的には、以下の〔数式27〕に従った処理を実行することにより、対象モデルの角度分布とレコードreに対応する規制画像の角度分布のユークリッド距離Da2(re)を算出する。ユークリッド距離Da2(re)は、MA次元ユークリッド空間内の2点の距離として求められる。
〔数式27〕
Da2(re)=Σma=0,MA-1[{Hao(re,ma)−Ha(ma)}2/MA]1/2
Da2(re)=Σma=0,MA-1[{Hao(re,ma)−Ha(ma)}2/MA]1/2
上記〔数式27〕において、Σの添え字の“ma=0,MA−1”は、maが0からMA−1の全ての整数をとる場合について、後続の[・・・]1/2の総和を求めることを示している。
次に、度数分布照合手段20は、ステップS240において算出された角度分布のユークリッド距離Da2(re)と、判定しきい値との比較を行う(ステップS250)。判定しきい値との比較による判定は、相関係数の場合とは逆になる。すなわち、ユークリッド距離Da2(re)が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Da2(re)が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、例えば、0.5とすることができる。
<3.第2の実施形態>
次に、第2の実施形態について説明する。上記第1の実施形態では、画像度数分布算出装置により事前に規制画像の度数分布を作成しておき、立体物造形用データ出力規制装置の度数分布データベースに登録しておくようにした。第2の実施形態では、規制画像そのものを規制画像データベースに登録しておき、規制画像からリアルタイムにその場で上記2種の度数分布を作成し、照合まで行う。
次に、第2の実施形態について説明する。上記第1の実施形態では、画像度数分布算出装置により事前に規制画像の度数分布を作成しておき、立体物造形用データ出力規制装置の度数分布データベースに登録しておくようにした。第2の実施形態では、規制画像そのものを規制画像データベースに登録しておき、規制画像からリアルタイムにその場で上記2種の度数分布を作成し、照合まで行う。
<3.1.装置構成>
図13は、本発明第2の実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図13において、10はモデル度数分布算出手段、20は度数分布照合手段、30は対象モデル記憶手段、41は規制画像データベース、92は画像度数分布算出手段である。図13において、図3、図9と同等の機能を有するものについては、同一符号を付して詳細な説明を省略する。
図13は、本発明第2の実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図13において、10はモデル度数分布算出手段、20は度数分布照合手段、30は対象モデル記憶手段、41は規制画像データベース、92は画像度数分布算出手段である。図13において、図3、図9と同等の機能を有するものについては、同一符号を付して詳細な説明を省略する。
モデル度数分布算出手段10は、図9に示したものと同様、対象モデルに対して、距離の度数分布である距離分布と、角度の度数分布である角度分布を算出する処理を行う。画像度数分布算出手段92は、図3に示したものと同様、規制画像に対して、距離の度数分布である距離分布と、角度の度数分布である角度分布を算出する処理を行う。度数分布照合手段20は、図9に示したものと同様、対象モデルについて算出された距離分布、角度分布と、規制画像について算出された距離分布、角度分布をそれぞれ照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。
モデル度数分布算出手段10、画像度数分布算出手段92、度数分布照合手段20は、図8に示したCPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段30は、図9に示したものと同様、対象モデルを記憶した記憶手段であり、記憶装置3により実現される。
規制画像データベース41は、規制画像を記憶した記憶手段であり、記憶装置3により実現される。
図13に示した各構成手段は、現実には図8に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
図8に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、モデル度数分布算出手段10、画像度数分布算出手段92、度数分布照合手段20としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段30、規制画像データベース41として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
<3.2.処理動作>
次に、図13に示した立体物造形用データ出力規制装置の処理動作について説明する。図14は、図13に示した立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、モデル度数分布算出手段10が、対象モデルについて、2種の度数分布である距離分布および角度分布を算出する(ステップS100)。次に、画像度数分布算出手段92が、規制画像について、2種の度数分布である距離分布および角度分布を算出する(ステップS300)。そして、算出された対象モデルの度数分布と、規制画像の度数分布との照合を行う(ステップS200)。ステップS300の画像度数分布の算出処理、ステップS200の度数分布の照合処理は、照合処理において、出力すべきでない(出力不適)と判定された場合か、全ての規制画像との照合において不適合となって、出力適正と判定された場合に終了する。ステップS100、ステップS200における処理は、図10に示したものと同様であるので詳細な説明は省略する。また、ステップS300における処理は、図4に示した画像度数分布の算出処理と同様であるので詳細な説明は省略する。
次に、図13に示した立体物造形用データ出力規制装置の処理動作について説明する。図14は、図13に示した立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、モデル度数分布算出手段10が、対象モデルについて、2種の度数分布である距離分布および角度分布を算出する(ステップS100)。次に、画像度数分布算出手段92が、規制画像について、2種の度数分布である距離分布および角度分布を算出する(ステップS300)。そして、算出された対象モデルの度数分布と、規制画像の度数分布との照合を行う(ステップS200)。ステップS300の画像度数分布の算出処理、ステップS200の度数分布の照合処理は、照合処理において、出力すべきでない(出力不適)と判定された場合か、全ての規制画像との照合において不適合となって、出力適正と判定された場合に終了する。ステップS100、ステップS200における処理は、図10に示したものと同様であるので詳細な説明は省略する。また、ステップS300における処理は、図4に示した画像度数分布の算出処理と同様であるので詳細な説明は省略する。
<4.距離分布と角度分布の有用性>
ここで、上記第1、第2の実施形態において、距離分布と角度分布の2種の度数分布を用いて照合を行うことの有用性について、説明の都合上、3種の3次元ポリゴンモデルの例を用いて説明するが、後述するように、各々2次元イラストで表現された2次元画像(図15・図16の球体モデルを円形モデルとみなす)に対しても同様な説明が成立する。図15は、2つの球体モデルA、Bそれぞれに対して得られる距離分布と角度分布を示す図である。図15(a)は、球体モデルAを示し、図15(b)(c)は、それぞれ球体モデルAの距離分布、角度分布を示している。図15(d)は、球体モデルBを示し、図15(e)(f)は、それぞれ球体モデルBの距離分布、角度分布を示している。
ここで、上記第1、第2の実施形態において、距離分布と角度分布の2種の度数分布を用いて照合を行うことの有用性について、説明の都合上、3種の3次元ポリゴンモデルの例を用いて説明するが、後述するように、各々2次元イラストで表現された2次元画像(図15・図16の球体モデルを円形モデルとみなす)に対しても同様な説明が成立する。図15は、2つの球体モデルA、Bそれぞれに対して得られる距離分布と角度分布を示す図である。図15(a)は、球体モデルAを示し、図15(b)(c)は、それぞれ球体モデルAの距離分布、角度分布を示している。図15(d)は、球体モデルBを示し、図15(e)(f)は、それぞれ球体モデルBの距離分布、角度分布を示している。
図15(a)に示す球体モデルAは、内部に空洞がなく、中身が詰まった状態の球体モデルである。内部に空洞がない場合、図15(a)に右上向きの矢印で示すように全てのポリゴンの法線ベクトルは全て外側を向いている。図15(d)に示す球体モデルBは、内部に空洞がある球体モデルである。内部に空洞がある場合、図15(d)に示すようにポリゴンの法線ベクトルは外側(図中右上向き)を向くものと内側(図中左下向き)を向くものの双方が存在する。球体モデルA、球体モデルBのいずれも球体であるため、重心に相当する基準点は、球体の中心に位置する。図15(a)(d)において左右方向に延びる矢印は、基準点からポリゴンまでの距離を示している。
球体モデルAでは、基準点から等距離にポリゴンが分布しているため、図15(b)に示すように球体モデルAの距離分布は、一定の距離の分布だけが突出して高くなる。球体モデルBでは、外周部に厚みが存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離がわずかに異なる。そのため、図15(e)に示すように球体モデルBの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の2箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違がないと、図15(e)の2個所のピークは同一位置に統合加算され、球体モデルAの距離分布と一致する分布となる。
また、球体モデルAでは、空洞がなく中身が詰まった状態とするため、法線ベクトルは、基準点(この場合、球の中心)から外側を向く方向になっている。そのため、基準点からポリゴンまでのベクトルと、ポリゴンの法線ベクトルのなす角の角度分布は、図15(c)に示すように0°付近だけが突出して高くなる。球体モデルBでは、外側のポリゴンの法線ベクトルは、基準点(球の中心)から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図15(f)に示すように0°付近と180°付近の2箇所だけが突出して高くなる。
図15(b)(e)に示すように、距離分布は双方とも所定の距離だけ突出して高くなった分布であり、大きな相違がない。そのため、球体モデルAと球体モデルBの照合を、距離分布のみを用いて行った場合、適合する(類似する)と判定されてしまう可能性が高まる。しかし、図15(c)(f)に示すように、角度分布では、180°付近の分布が大きく異なる。このため、球体モデルAと球体モデルBの照合を、角度分布を用いて行うことにより、両者が相違すると判定することができる。
距離分布と角度分布の2種の度数分布を用いて照合を行うことの有用性についてもう2つ目の例を用いて説明する。図16は、2つの球体モデルB、Cそれぞれに対して得られる距離分布と角度分布を示す図である。図16(a)は、球体モデルBを示し、図16(b)(c)は、それぞれ球体モデルBの距離分布、角度分布を示している。図16(a)〜(c)は、図15(d)〜(f)と同一である。図16(d)は、球体モデルCを示し、図16(e)(f)は、それぞれ球体モデルCの距離分布、角度分布を示している。
図16(d)に示す球体モデルCは、球体モデルBよりも外周部分が厚く、空洞の体積が小さい球体モデルである。内部に空洞があるため、球体モデルBと同様、図16(d)に示すようにポリゴンの法線ベクトルは外側と内側の双方を向いている。球体モデルB、球体モデルCのいずれも球体であるため、重心に相当する基準点は、球体の中心に位置する。図16(d)において左右方向に延びる大小の矢印は、それぞれ基準点から外側のポリゴン、内側のポリゴンまでの距離を示している。
球体モデルBでは、外側のポリゴンの法線ベクトルは、基準点(球の中心)から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図16(c)に示すように0°付近と180°付近の2箇所だけが突出して高くなる。球体モデルCでも、外側のポリゴンの法線ベクトルは、基準点(球の中心)から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図16(f)に示すように0°付近と180°付近の2箇所だけが突出して高くなる。外側の方が、表面積が大きく、ポリゴンの総面積も大きくなるため、0°付近の分布の方が180°付近の分布よりも大きくなる。
球体モデルBでは、外周部に薄い層が存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離がわずかに異なる。そのため、図16(b)に示すように球体モデルBの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の2箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違がないため、突出した2箇所は接近している。球体モデルCでは、外周部に厚い層が存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離が大きく異なる。そのため、図16(e)に示すように球体モデルCの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の2箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違があるため、突出した2箇所が離れている。
図16(c)(f)に示すように、角度分布は双方とも0°付近と180°付近の2箇所だけが突出して高くなった分布であり、大きな相違がない。そのため、球体モデルBと球体モデルCの照合を、角度分布のみを用いて行った場合、適合する(類似する)と判定されてしまう可能性が高まる。しかし、図16(b)(e)に示すように、距離分布では、内側のポリゴンまでの距離の分布が大きく異なる。このため、球体モデルBと球体モデルCの照合を、距離分布を用いて行うことにより、両者が相違すると判定することができる。図15、図16に示した2つの例のように、角度分布と距離分布の2種の度数分布を用いることにより、2つのポリゴンモデルが大きく相違するか否かの判定をより確実に行うことが可能となる。
上記は3次元ポリゴンモデルを例に用いて説明してきたが、規制画像のような2次元画像に対しても同様な説明が成り立つ。図15(a)(d)と図16(d)に2次元的に図示されているように、図15(a)は、内部が塗りつぶされた円形画像、図15(d)は、縁取りされた円形画像、図16(d)は、太く縁取りされた円形画像と仮定し、これらを規制画像とみなして、前述した第1、第2の実施形態の方法で距離分布と角度分布の2種の度数分布を算出しても、各々図15(b)(c)、図15(e)(f)および図16(e)(f)と類似した結果になる(ただし、後述するように球体モデルと円形画像の角度分布は完全には一致しない)。球体モデルA、球体モデルBおよび球体モデルCが不透明体の場合、3種の球体モデルの差は2次元投影画像では確認できず、いずれも内部が塗りつぶされた円形イラスト画像から変換された度数分布と類似した結果になる。しかし、内部が塗りつぶされた円形イラスト画像、縁取りされた円形イラスト画像および太く縁取りされた円形イラスト画像の各々から変換された度数分布は、球体モデルA、球体モデルBおよび球体モデルCから変換された度数分布と各々適合し、3種の円形イラスト画像と照合すれば、3種の球体モデルを識別することができる。
<5.3Dプリンタへのデータ出力>
上記ステップS200において、度数分布照合手段20により“出力を規制すべきでない(出力適正)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力する。一方、度数分布照合手段20により“出力を規制すべきである(出力不適)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力しない。また、出力適正か出力不適かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か出力不適かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、利用者から見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か出力不適かの判定のための処理の実行が開始されることは気付かない。
上記ステップS200において、度数分布照合手段20により“出力を規制すべきでない(出力適正)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力する。一方、度数分布照合手段20により“出力を規制すべきである(出力不適)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力しない。また、出力適正か出力不適かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か出力不適かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、利用者から見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か出力不適かの判定のための処理の実行が開始されることは気付かない。
<6.ポリゴン削減処理>
図10に示したステップS100のモデル度数分布の算出処理に先立って、対象モデルのポリゴン数の削減を行うポリゴン削減処理を行うようにしてもよい。事前に重要度の低いポリゴンの削減を行っておくことにより、ポリゴンモデルの微細形状の相違を許容して高速に出力が適正か否かの判定を行うことが可能となる。以下に、度数分布の算出処理に先立つポリゴン削減処理について説明する。ポリゴン削減処理は、図8に示したCPU1が記憶装置3に記憶されたプログラムを実行することにより実現されるポリゴン削減手段により行われる。
図10に示したステップS100のモデル度数分布の算出処理に先立って、対象モデルのポリゴン数の削減を行うポリゴン削減処理を行うようにしてもよい。事前に重要度の低いポリゴンの削減を行っておくことにより、ポリゴンモデルの微細形状の相違を許容して高速に出力が適正か否かの判定を行うことが可能となる。以下に、度数分布の算出処理に先立つポリゴン削減処理について説明する。ポリゴン削減処理は、図8に示したCPU1が記憶装置3に記憶されたプログラムを実行することにより実現されるポリゴン削減手段により行われる。
図17は、ポリゴン削減手段によるポリゴン削除の基本原理を示す図である。ポリゴンモデルを構成するポリゴン集合は、現実には、空間における3次元の値をもつポリゴン群であるが、図17の例では、説明の便宜上、2次元の値をもつポリゴン群を示している。図17(a)の例では、削除前、18個のポリゴンからなるポリゴン群を示している。
図18は、ポリゴン削減手段によるポリゴン削減処理の詳細を示すフローチャートである。まず、ポリゴン削減手段は、対象モデルを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する(ステップS11)。次に、ポリゴン削減手段は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する(ステップS12)。図17の例では、図17(b)に示すように、3個の頂点E、J、Kで構成されるポリゴンEJKが削除対象ポリゴンとして選定される。
続いて、ポリゴン削減手段は、削除対象ポリゴンの3辺のうち最短の1辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する(ステップS13)。図17の例では、図17(c)に示すように、削除対象ポリゴンEJKの辺JKが削除対象辺として選定される。さらに、辺JKの中点Oが算出される。次に、ポリゴン削減手段は、削除対象ポリゴンを削除する(ステップS14)。これによりポリゴン数が1つ削減されることになる。次に、ポリゴン削減手段は、削除対象ポリゴンの削除対象辺と頂点を共有していた削除頂点共有ポリゴンを順次選定する(ステップS15)。削除対象ポリゴンの削除対象辺と2頂点を共有(すなわち辺を共有)している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段は、その削除頂点共有ポリゴンを削除する(ステップS16)。図17の例では、3個の頂点J、K、Nで構成されるポリゴンJKNが削除される。これによりさらにポリゴン数が1つ削減されることになる。
削除対象ポリゴンの削除対象辺と1頂点を共有している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段は、共有頂点をステップS13で算出された中点に補正し、面積および周長を再算出する(ステップS17)。図17の例では、図17(c)と図17(d)を比較するとわかるように、ポリゴンEHJ→ポリゴンEHO、ポリゴンEFK→ポリゴンEFO、ポリゴンHJM→ポリゴンHOM、ポリゴンJMN→ポリゴンOMN、ポリゴンFKN→ポリゴンFONに変更される。この結果、図17の例においては、図17(a)の時点で18個あったポリゴンが、図17(d)の時点では16個に削減される。
ステップS15〜ステップS17の処理を終えたら、ポリゴン削減手段は、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する(ステップS18)。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップS12に戻って、ポリゴン削減手段は、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップS18における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図18のフローチャートに従った処理を実行することにより、設定された目標値以下になるように、ポリゴン数が削減されることになる。
<7.対象モデル分割処理>
図10に示したモデル度数分布の算出処理に先立ち、対象モデルの分割を行う対象モデル分割処理を行うようにしてもよい。事前に対象モデルの分割を行っておくことにより、規制モデルと対象モデルとで互いに部品構成が異なる場合でも適切に出力が適正か否かの判断を行うことが可能となる。以下に、度数分布の算出処理に先立つ対象モデル分割処理について説明する。対象モデル分割処理は、図1に示したCPU1が記憶装置3に記憶されたプログラムを実行することにより実現される対象モデル分割手段により行われる。
図10に示したモデル度数分布の算出処理に先立ち、対象モデルの分割を行う対象モデル分割処理を行うようにしてもよい。事前に対象モデルの分割を行っておくことにより、規制モデルと対象モデルとで互いに部品構成が異なる場合でも適切に出力が適正か否かの判断を行うことが可能となる。以下に、度数分布の算出処理に先立つ対象モデル分割処理について説明する。対象モデル分割処理は、図1に示したCPU1が記憶装置3に記憶されたプログラムを実行することにより実現される対象モデル分割手段により行われる。
図19は、対象モデル分割手段による対象モデル分割処理の詳細を示すフローチャートである。対象モデル分割手段は、まず、初期設定を行う(ステップS21)。具体的には、読み込んだ対象モデルのポリゴン集合を構成するポリゴン数P、ポリゴンを特定する変数p(p=0,・・・,P−1)、探索ステータスS(p)、グループ属性G(p)、グループを特定する変数g、探索ステータス示す変数sを設定する。探索ステータスS(p)は、0以上の整数値をとる。S(p)=0はポリゴンpがグループに未分類の状態、S(p)>0はS(p)回目に実行されるステップS22においてポリゴンpがグループ属性G(p)に分類された状態を示す。さらに、ステップS21においては、p=0,・・・,P−1の全てのpについてS(p)=G(p)=0、g=1、s=1と初期設定する。
次に、全ポリゴンより、S(p)=G(p)=0となるポリゴンpを1つ抽出する(ステップS22)。初期状態では、全てS(p)=G(p)=0であるので、初回は必ずp=0のポリゴンの抽出が行われる。ステップS22において、S(p)=G(p)=0となるポリゴンpが存在しない場合、すなわち、全てのp=0,・・・,P−1について、S(p)>0である場合、g−1個のグループに分離でき、対象モデルをg−1個の部分対象モデルに分割できたものとして対象モデル分割処理を終了する。なお、ステップS22において、S(p)<0である状態は存在しないため、S(p)は“0”か正の値のいずれかの状態である。S(p)=G(p)=0となるポリゴンpが抽出できた場合は、抽出したポリゴンpに対応する探索ステータスS(p)=s、グループ属性G(p)=gに設定する。さらに、更新をカウントする変数である更新カウンタc=0に設定する。
ステップS22において、S(p)=G(p)=0となるポリゴンpを1つ抽出し、抽出したポリゴンpに対応する探索ステータスS(p)=s、グループ属性G(p)=gに設定した場合は、全ポリゴンより、S(q)=sとなるポリゴンqを1つ抽出する(ステップS23)。qはポリゴンを特定する変数であり、ポリゴンpと同様、q=0,・・・,P−1内のいずれかの整数値をとる。S(q)=sとなるポリゴンqが複数存在する場合は、例えばqの値が最も小さいものを抽出する。
ステップS23において、S(q)=sとなるポリゴンqを1つ抽出した場合、全ポリゴンより、抽出されたポリゴンqと辺を共有する隣接ポリゴンr1、r2、r3の3つを探索の上、探索された3つの隣接ポリゴンr1、r2、r3の中でS(r)=G(r)=0を満たすポリゴンrに対して、それぞれ探索ステータスS(r)=s+1、グループ属性G(r)=gに設定し、併せてcの値をc←c+1と更新する(ステップS24)。rはr1、r2、r3のいずれかのポリゴンを特定する変数であり、ポリゴンp、qと同様、r=0,・・・,P−1内のいずれかの整数値をとる。“ポリゴンqと隣接ポリゴンrの辺を共有する”とは、ポリゴンqの2頂点とポリゴンrの2頂点が同一であることを意味する。すなわち、隣接ポリゴンrのいずれか1つの辺はポリゴンqのいずれか1つの辺と同一になる。
本実施形態では、ポリゴンが三角形であるので、ポリゴンを構成する3つの辺に対して、各々1辺を共有する隣接ポリゴンは必ず3つ存在する。コンピュータグラフィックで画面表示する場合にはこの条件が満足されなくても支障ないが、3Dプリンタで出力する場合は、物理的に造形物を形成できなくなるため、この条件は必須要件になる(もし満足されない場合はエラー警告が出され、プリンタ出力が実行されないのが一般的である。)。抽出された3つの隣接ポリゴンの中で、S(r)=G(r)=0を満たすポリゴンrについては、それぞれ探索ステータスS(r)=s+1、グループ属性G(r)=g、c←c+1に設定する。
そして、ステップS23に戻って、全ポリゴンよりS(q)=sとなるポリゴンqが他にも存在する場合、更に1つ抽出し、同様にステップS24を実行する。即ち、ステップS23とステップS24の処理を繰り返すことにより、対象モデル中、S(q)=sとなるポリゴン全てについて、ステップS24の処理を実行する。ステップS23において、S(q)=sとなるポリゴンqが存在しない場合、すなわち、全てのS(q)=sとなるポリゴンqについて、3つの隣接ポリゴンを探索したら、探索ステータス示す変数sを1インクリメント(s←s+1)する(ステップS25)。
次に、更新カウンタc=0であるか否かを判定する(ステップS26)。判定の結果、c=0でない場合は、ステップS24においてポリゴンqと隣接する3つのポリゴンの中でS(r)=G(r)=0を満たすポリゴンrが少なくとも1つは存在していたことを意味するので、他にも同一のグループgに含めるべきグループ属性が未定義であるポリゴンpが存在しないか、ステップS22に戻って、全ポリゴンより、S(p)=G(p)=0となるポリゴンpを更に探索し、もし存在すれば1つ抽出し、抽出したポリゴンpに対応する探索ステータスS(p)=s、グループ属性G(p)=g、更新カウンタc=0に設定する。そして、上述のように、ステップS23およびステップS24の処理ループに進み全てのS(q)=sとなるポリゴンqについて3つの隣接ポリゴンを探索する処理を繰り返す。
このようにして、ステップS22〜ステップS25の処理を繰り返して実行し、ステップS26における判定の結果、更新カウンタc=0である場合、即ちステップS24においてポリゴンqと隣接する3つのポリゴンのいずれもが既に同一のグループgに設定され、グループgに含めるべきS(r)=G(r)=0を満たすグループ属性が未定義ポリゴンrが全く存在しない場合はグループgへの分類は終了したとみなし、次のグループg+1への分類に移行するため、グループを特定する変数gを1インクリメント(g←g+1)する(ステップS27)。そしてステップS22に戻り、新たなグループgへの分類を同様に行う。もし、ステップS22において、S(p)=G(p)=0となるグループ属性が未定義のポリゴンpが見つからなかった場合、全P個のポリゴンのグループ属性はいずれかの値に設定されていることから、分類処理が終了したとみなすことができる。その際、ステップS27で更新されたグループgはいずれのポリゴンのグループ属性として設定されていないことから、全P個のポリゴンはg−1個のグループに分類されたことになる。
図19のフローチャートに従った処理を実行することにより、全P個のポリゴンが、2頂点を共有して連結するポリゴン集合ごとにグループに分類される。この分類されたグループが、部分対象モデルとなる。図19の例では、対象モデルの各ポリゴンは、g−1個の部分対象モデルのいずれかに属することになる。この結果、対象モデルはg−1個の部分対象モデルに分割される。
モデル度数分布の算出処理に先立って行われる、ポリゴン削減手段によるポリゴン削減処理、対象モデル分割手段による対象モデル分割処理は、どちらの順序で行ってもよい。できれば、ポリゴン削減処理を行った後に、対象モデル分割処理を行う方が効率的である。また、ポリゴン削減処理、対象モデル分割処理の双方でなく、どちらか一方のみを行うようにしてもよい。
<8.規制画像および規制モデルの度数分布算出および登録について>
変形例として、度数分布照合手段20を備えた立体物造形用データ出力規制装置とは別の場所で、規制画像および規制モデルに対して算出された距離分布および角度分布を、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
変形例として、度数分布照合手段20を備えた立体物造形用データ出力規制装置とは別の場所で、規制画像および規制モデルに対して算出された距離分布および角度分布を、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
図20は、変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。図20に示した立体物造形システムにおいて、立体物造形用データ出力規制装置101は、図8に示した立体物造形用データ出力規制装置100の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8を備えた構成となっている。画像度数分布算出装置301は、汎用のコンピュータで実現することができ、図20に示すように、CPU(Central Processing Unit)1aと、コンピュータのメインメモリであるRAM(Random Access Memory)2aと、CPU1aが実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3aと、キーボード、マウス等のキー入力I/F(インターフェース)4aと、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5aと、液晶ディスプレイ等の表示デバイスである表示部6aと、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8aを備え、互いにバスを介して接続されている。立体物造形用データ出力規制装置101のネットワーク通信部8と画像度数分布算出装置301のネットワーク通信部8aは互いに通信を行い、画像度数分布算出装置301から立体物造形用データ出力規制装置101へ規制画像に対して算出された2種の度数分布の送信を行うことが可能になっている。
図20では、立体物造形用データ出力規制装置101と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置101の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)、ネットワーク通信部8(無線LAN機能)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図20に示した立体物造形用データ出力規制装置101および3Dプリンタ7を1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
画像度数分布算出装置301においては、CPU1aが、記憶装置3aに記憶されているプログラムを実行することにより、画像度数分布算出手段、度数分布送信手段が実現される。画像度数分布算出装置301で実現される画像度数分布算出手段は、立体物造形用データ出力規制装置100で実現される画像度数分布算出手段92と同様の機能を有し、規制画像に対して2種の度数分布として距離分布、角度分布を算出する。度数分布送信手段は、規制画像について算出された2種の度数分布である距離分布、角度分布を立体物造形用データ出力規制装置101に送信する。立体物造形用データ出力規制装置101では、ネットワーク通信部8が、画像度数分布算出装置301から度数分布を受信すると、CPU1が所定のプログラムを実行して度数分布登録手段として機能し、受信した度数分布を記憶装置3で実現される度数分布データベース40に登録する。
<9.クラウド型の立体物造形システム>
本発明は、クラウド型の立体物造形システムに適用することも可能である。図21は、クラウド型の立体物造形システムのハードウェア構成図である。図21に示した立体物造形システムでは、出力制御用端末201と処理サーバ202により立体物造形用データ出力規制装置が実現される。図21に示した立体物造形システムにおいて、出力制御用端末201は、図20において立体物造形用データ出力規制装置101として示したコンピュータと同等のハードウェア構成を有する。すなわち、出力制御用端末201は、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を備え、互いにバスを介して接続されている。
本発明は、クラウド型の立体物造形システムに適用することも可能である。図21は、クラウド型の立体物造形システムのハードウェア構成図である。図21に示した立体物造形システムでは、出力制御用端末201と処理サーバ202により立体物造形用データ出力規制装置が実現される。図21に示した立体物造形システムにおいて、出力制御用端末201は、図20において立体物造形用データ出力規制装置101として示したコンピュータと同等のハードウェア構成を有する。すなわち、出力制御用端末201は、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を備え、互いにバスを介して接続されている。
処理サーバ202は、汎用のコンピュータに専用のプログラムを組み込むことにより実現することができる。図21に示すように、CPU11a、RAM12a、記憶装置13a、キー入力I/F14aと、データ入出力I/F15aと、表示部16aと、ネットワーク通信部18aを備え、互いにバスを介して接続されている。出力制御用端末201のネットワーク通信部18と処理サーバ202のネットワーク通信部18aは互いに通信を行い、処理サーバ202から出力制御用端末201へ出力適否の判定に基づく出力適否データの送信を行うことが可能になっている。図21では、出力制御用端末201と3Dプリンタ7は分離した形態で示されているが、図20の例と同様、3Dプリンタ製品に出力制御用端末201の構成要素である、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を重複して備えていてもよい。
図22は、クラウド型の立体物造形システムの機能ブロック図である。クラウド型の立体物造形システムを構成する処理サーバ202は、図9に示した立体物造形用データ出力規制装置の各手段に加えて、対象モデル受信手段50、出力適否データ送信手段60を備えた構成となっている。対象モデル記憶手段31は、対象モデル自体ではなく、対象モデルについて算出された2種の度数分布を記憶する。また、モデル度数分布算出手段10は、処理サーバ202ではなく、出力制御用端末201が備えた構成となっている。
図9に示した立体物造形用データ出力規制装置と同等の機能を有するものについては、同一符号を付して説明を省略する。対象モデル受信手段50は、出力制御用端末201から送信された対象モデルの度数分布を受信して対象モデル記憶手段31に登録する手段であり、CPU11aが所定のプログラムを実行するとともに、ネットワーク通信部18aを制御することにより実現される。出力適否データ送信手段60は、度数分布照合手段20により判定された“出力を規制すべきであるか否か”に基づき、出力適否データを出力制御用端末201に送信する手段であり、CPU11aが所定のプログラムを実行するとともに、ネットワーク通信部18aを制御することにより実現される。
処理サーバ202は、インターネット等のネットワークに接続され、多数の出力制御用端末からアクセス可能になっている。クラウド型の立体物造形システムの「クラウド型」とは、3Dプリンタにより立体物を出力する出力側でなく、出力側からネットワークを介した遠隔地のコンピュータにおいて、規制すべきか否かを判定することを意味する。従来のサーバ型コンピュータでは多数の利用者のアクセスが集中すると応答性が遅くなり利用者に迷惑をかけることが多かったが、クラウド型では仮想化技術によりコンピュータの物理的構成を動的に変更することが可能になるため、常に安定した応答性を維持できるという特徴がある。処理サーバ202は物理的には複数台のコンピュータにより実現されるのが一般的である。
図21、図22に示したクラウド型の立体物造形システムの処理動作について説明する。出力制御用端末201において、利用者がキー入力I/F14を介して出力したい対象モデルを指定すると、CPU11は、記憶装置13に記憶されている指定された対象モデルを抽出し、対象モデルを特定する識別情報であるモデルIDを付与する。そして、CPU11は、モデルIDが付与された対象モデルに対して、図11に示したフローチャートに従って、モデル度数分布算出手段10が処理を行い、距離分布および角度分布で構成される度数分布を生成する。さらにCPU11は、生成された度数分布を、記憶装置13に事前に設定されているURL等のアドレス宛に、ネットワーク通信部18を介して送信する。ポリゴンデータに比べ情報量が顕著に少ない度数分布を送信する方法をとることにより、伝送時間が大幅に短縮されるだけでなく、サーバ側には著作物であるポリゴンデータが送信されず、サーバ側に複製物が残らないため、著作権侵害を回避することができる。並行してCPU11は、モデルIDが付与された対象モデルを、データ入出力I/F15を介して3Dプリンタ7のデータ処理部7aに送信する。データ処理部7a内のプリンタキューには、出力制御用端末201から受信した対象モデルが保持され、出力ジョブとして待機状態となる。この時、3Dプリンタ出力における前処理であるポリゴン形式のデータを積層形式のデータに変換する処理のみ実行させるようにし、積層形式のデータに変換された段階で待機状態にする手法もとることができる。このデータ処理負荷もそれなりに高いため、この間に出力適否判定が完了すれば、利用者側に余分な待ち時間を感じさせないようにすることができる。
処理サーバ202では、対象モデル受信手段50が、出力制御用端末201から送信された対象モデルの度数分布を受信すると、その度数分布を対象モデル記憶手段31に記憶する。ここで、図10に示したフローチャートに従って、度数分布照合手段20が処理を行い、受信した度数分布に対応する対象モデルの出力適否を判定する。出力適否の結果である出力適否データは、度数分布照合手段20から出力適否データ送信手段60に渡される。そして、出力適否データ送信手段60は、度数分布の送信元(アクセス元)である出力制御用端末201に、モデルIDを付加した出力適否データを送信する。
出力制御用端末201では、ネットワーク通信部18が、処理サーバ202から出力適否データを受信すると、CPU11が、受信した出力適否データを、データ入出力I/F15を介して3Dプリンタ7のデータ処理部7aに送信する。データ処理部7aは、受信した出力適否データに付与されたモデルIDでプリンタキュー内の出力ジョブを参照する。そして、出力適否データが“適(出力適正)”である場合、データ処理部7aは、その出力ジョブを待機状態から出力状態に変更し、出力部7bに対象モデルを出力する。これは、出力許可がなされた場合を示している。一方、出力適否データが“否(出力不適)”である場合、データ処理部7aは、その出力ジョブを破棄する。すなわち、プリンタキューから削除する。
<10.度数分布算出事例>
図23、図24に、球体および円について、上記実施形態に係る立体物造形用データ出力規制装置による度数分布算出事例を示す。図23、図24のいずれにおいても、左端にポリゴンモデルまたは画像、右側に度数分布を示している。度数分布は上段が距離分布(Distance)を示し、下段が角度分布(Angle)を示している。
図23、図24に、球体および円について、上記実施形態に係る立体物造形用データ出力規制装置による度数分布算出事例を示す。図23、図24のいずれにおいても、左端にポリゴンモデルまたは画像、右側に度数分布を示している。度数分布は上段が距離分布(Distance)を示し、下段が角度分布(Angle)を示している。
図23(a)は、球体a(実際には多面体)のポリゴンモデル(5040ポリゴン)を示す図である。図23(a)のような球体のポリゴンモデルに対しては、図23(b)に示すように、特定の距離だけが突出して高い距離分布と、0°付近だけが突出して高い角度分布が得られる。得られた距離分布と角度分布を見ると、図23(a)のポリゴンモデルは中身が詰まった球体を出力するためのものであることがわかる。
図23(c)は、円bの2次元二値画像を示す図である。図23(c)のような2次元二値画像に対しては、図23(d)(e)に示すような距離分布と角度分布が得られる。図23(d)は、図4のステップS540におけるエッジ方向ベクトルの補正を行わない場合の結果であり、図23(e)は、エッジ方向ベクトルの補正を行った場合の結果である。なお、図23(e)は、併せてステップS520におけるコントラスト補正も行っており、その場合の設定最小値SL=72である。図23(e)の下側のグラフの0度近辺が、図23(d)に比べシャープになり、図23(b)により類似する形態になっていることがわかる。
図24(a)は、球体cの2次元シェーディング画像を示す図である。図24(a)のような2次元シェーディング画像に対しては、図24(b)(c)に示すような距離分布と角度分布が得られる。図24(b)は、図4のステップS540におけるエッジ方向ベクトルの補正を行わない場合の結果であり、図24(c)は、エッジ方向ベクトルの補正を行った場合の結果である。なお、図24(c)は、併せてステップS520におけるコントラスト補正も行っており、その場合の設定最小値SL=72である。図24(c)の下側のグラフの0度近辺が、図24(b)に比べシャープになり、図23(b)により類似する形態になっていることがわかる。また、図24(c)では基準点を〔数式6〕で算出される中央点に変更したため、図24(b)の上側のグラフではピークが2つに分断されているが、図24(c)の上側のグラフではピークが1つに統合され、図23(b)の上側のグラフにより類似する形態になっていることがわかる。
図23(d)の分布と図23(e)の分布を比較すると、エッジ方向ベクトルの補正を行った場合に、図23(b)の球体aの角度分布のみならず距離分布との相関も高まることがわかる。また、図24(b)の分布と図24(c)の分布を比較すると、エッジ方向ベクトルの補正を行った場合に、図23(b)の球体aの角度分布のみならず距離分布との相関も高まることがわかる。これらは、エッジ方向ベクトルの補正に加え、コントラスト補正が加わったのと、基準点を〔数式6〕で算出される中央点に変更したことによる効果である。
図25、図26に、達磨について、上記実施形態に係る立体物造形用データ出力規制装置による度数分布算出事例を示す。図25、図26のいずれにおいても、左端にポリゴンモデルまたは画像、右側に度数分布を示している。度数分布は上段が距離分布(Distance)を示し、下段が角度分布(Angle)を示している。
図25(a)は、達磨dのポリゴンモデル(15944ポリゴン)を示す図である。図25(a)のような基本形が球体に近く顔部分に凹凸が加わったポリゴンモデルに対しては、図25(b)に示すように、図23(b)の球体と類似した傾向を示すが球体に比べてバラツキの多い距離分布、角度分布が得られる。
図25(c)は、達磨eの2次元三値画像を示す図である。図25(c)のような2次元三値画像に対しては、図25(d)(e)に示すような距離分布と角度分布が得られる。図25(d)は、図4のステップS540におけるエッジ方向ベクトルの補正を行わない場合の結果であり、図25(e)は、エッジ方向ベクトルの補正を行った場合の結果である。なお、図25(e)は、併せてステップS520におけるコントラスト補正も行っており、その場合の設定最小値SL=72である。図25(e)の下側のグラフの左端近辺が、図25(d)に比べシャープになり、図25(b)により類似する形態になっていることがわかる。また、図25(e)の上側のグラフの右端のピークが、図25(d)に比べ右側にシフトし、図25(b)により類似する形態になっていることがわかる。これは、図25(e)でコントラスト補正が加わったのと、基準点を〔数式6〕で算出される中央点に変更したことによる効果である。
図26(a)は、達磨fの2次元シェーディング画像を示す図である。図26(a)のような2次元シェーディング画像に対しては、図26(b)(c)に示すような距離分布と角度分布が得られる。図26(b)は、図4のステップS540におけるエッジ方向ベクトルの補正を行わない場合の結果であり、図26(c)は、エッジ方向ベクトルの補正を行った場合の結果である。なお、図26(c)は、併せてステップS520におけるコントラスト補正も行っており、その場合の設定最小値SL=72である。図26(c)の下側のグラフの左端近辺が、図26(b)に比べシャープになり、図25(b)により類似する形態になっていることがわかる。また、図26(c)の上側のグラフの右端のピークが、図26(b)に比べ右側にシフトし、図25(b)により類似する形態になっていることがわかる。これは、図26(c)でコントラスト補正が加わったのと、基準点を〔数式6〕で算出される中央点に変更したことによる効果である。
図26(d)は、達磨gの2次元写真画像を示す図である。図26(d)のような2次元写真画像に対しては、図26(e)(f)に示すような距離分布と角度分布が得られる。図26(e)は、図4のステップS540におけるエッジ方向ベクトルの補正を行わない場合の結果であり、図26(f)は、エッジ方向ベクトルの補正を行った場合の結果である。なお、図26(f)は、併せてステップS520におけるコントラスト補正も行っており、その場合の設定最小値SL=72である。図26(e)の下側のグラフでは分布が全体的に平坦であるが、図26(f)の下側のグラフでは左端近辺がシャープに盛り上がり、図25(b)により類似する形態になっていることがわかる。また、図26(f)の上側のグラフの右端近辺に図26(e)には無い新たなピークが盛り上がり、図25(b)により類似する形態になっていることがわかる。これは、図26(f)でコントラスト補正が加わったのと、基準点を〔数式6〕で算出される中央点に変更したことによる効果である。
図25(d)の分布と図25(e)の分布を比較すると、エッジ方向ベクトルの補正を行った場合に、図25(b)の達磨dの角度分布のみならず距離分布との相関も高まることがわかる。また、図26(b)の分布と図26(c)の分布を比較すると、エッジ方向ベクトルの補正を行った場合に、図25(b)の達磨dの角度分布のみならず距離分布との相関も高まることがわかる。また、図26(e)の分布と図26(f)の分布を比較すると、エッジ方向ベクトルの補正を行った場合に、図25(b)の達磨dの角度分布のみならず距離分布との相関も高まることがわかる。これらは、エッジ方向ベクトルの補正に加え、コントラスト補正が加わったのと、基準点を〔数式6〕で算出される中央点に変更したことによる効果である。
図27は、図23、図24に示したポリゴンモデルと画像の度数分布照合手段20による照合結果を示す図である。照合結果として、算出された距離分布の相関係数Dd(図中「距離相関Dd」と表記)、角度分布の相関係数Da(図中「角度相関Da」と表記)を示している。このうち、図27(a)は、二次元の画像の度数分布を求める際、図4のステップS540におけるエッジ方向ベクトルの補正を行わない場合の結果であり、図27(b)は、エッジ方向ベクトルの補正を行った場合の結果である。
図27(a)に示すように、エッジ方向ベクトルの補正を行わない場合、3次元の球体aは、2次元の円b、球体cとはいずれも相関が低いことがわかる。これに対して、図27(b)に示すように、エッジ方向ベクトルの補正を行った場合、3次元の球体aは、2次元の円b、球体cとはいずれも相関が高いことがわかる。このため、2次元の円b、球体cの画像を規制画像としてデータベースに登録しておき、エッジ方向ベクトルの補正を行うことにより、球体aの3次元ポリゴンモデルを対象モデルとして出力しようとした際に、出力を規制すべきである(出力不適)と判定されることになる。
図28に、本実施形態に係る立体物造形用データ出力規制装置によるモデル度数分布の算出処理(ステップS100)により、医療臓器模型に対して算出された度数分布の例を示す。図28おいては、左端にポリゴンモデルまたは画像、右側に度数分布を示している。度数分布は上段が距離分布(Distance)を示し、下段が角度分布(Angle)を示している。
図28(c)に示した2次元シェーディング画像に対してエッジ方向ベクトルの補正を行い、度数分布を得た後、図28(a)に示したポリゴンモデルと、度数分布照合手段20による照合を行うと、距離分布の相関係数Ddが47.63、角度分布の相関係数Daが51.81となる。したがって、この場合も出力を規制すべきであると判定されることになる。
<11.変形例等>
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象の画像をモノクロ256階調の画素で表現されたラスター形式としたが、ベクトル形式のイラスト画像であってもよく、その場合はエッジ線が与えられるため、フィルタ演算によるエッジ点抽出の処理を簡素化できる。また、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象の画像をモノクロ256階調の画素で表現されたラスター形式としたが、ベクトル形式のイラスト画像であってもよく、その場合はエッジ線が与えられるため、フィルタ演算によるエッジ点抽出の処理を簡素化できる。また、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
また、上記実施形態では、度数分布データベースに、規制画像の度数分布、規制モデルの度数分布を登録しておき、対象モデルから作成した度数分布と照合するようにしたが、規制モデルの度数分布については、必ずしも登録、照合を行う必要はない。また、度数分布データベースに規制画像自体も登録することを推奨しているが、許諾が得られなければ登録しなくてもよい。また、規制モデル自体については登録しないことを推奨しているが、許諾が得られれば登録してもよい。
1、1a、11、11a、81・・・CPU(Central Processing Unit)
2、2a、12、12a、82・・・RAM(Random Access Memory)
3、3a、13、13a、83・・・記憶装置
4、4a、14、14a、84・・・キー入力I/F
5、5a、15、15a、85・・・データ入出力I/F
6、6a、16、16a、86・・・表示部
7・・・3Dプリンタ(立体物造形装置)
7a・・・データ処理部
7b・・・出力部
8、8a、18、18a・・・ネットワーク通信部
10・・・モデル度数分布算出手段
20・・・度数分布照合手段
30、31・・・対象モデル記憶手段
40・・・度数分布データベース
41・・・規制画像データベース
50・・・対象モデル受信手段
60・・・出力適否データ送信手段
91・・・規制画像記憶手段
92・・・画像度数分布算出手段
93・・・画像度数分布記憶手段
100、101・・・立体物造形用データ出力規制装置
201・・・出力制御用端末
202・・・処理サーバ
300、301・・・画像度数分布算出装置
2、2a、12、12a、82・・・RAM(Random Access Memory)
3、3a、13、13a、83・・・記憶装置
4、4a、14、14a、84・・・キー入力I/F
5、5a、15、15a、85・・・データ入出力I/F
6、6a、16、16a、86・・・表示部
7・・・3Dプリンタ(立体物造形装置)
7a・・・データ処理部
7b・・・出力部
8、8a、18、18a・・・ネットワーク通信部
10・・・モデル度数分布算出手段
20・・・度数分布照合手段
30、31・・・対象モデル記憶手段
40・・・度数分布データベース
41・・・規制画像データベース
50・・・対象モデル受信手段
60・・・出力適否データ送信手段
91・・・規制画像記憶手段
92・・・画像度数分布算出手段
93・・・画像度数分布記憶手段
100、101・・・立体物造形用データ出力規制装置
201・・・出力制御用端末
202・・・処理サーバ
300、301・・・画像度数分布算出装置
Claims (25)
- ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像の特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布をそれぞれ、前記データベースに登録されている規制画像の距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、を備え、
前記データベースに登録された規制画像の距離分布、角度分布は、前記規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度の度数分布である角度分布とを算出する画像度数分布算出手段を有する画像度数分布算出装置により得られたものであり、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像の基準点から各エッジ点への方向のなす角度を、前記エッジ点固有の角度として算出することを特徴とする立体物造形用データ出力規制装置。 - ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべき画像である規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離の度数分布である距離分布と、各エッジ点固有の角度の度数分布である角度分布とを算出する画像度数分布算出手段と、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出するモデル度数分布算出手段と、
前記画像度数分布算出手段により算出された規制画像の距離分布、角度分布と、前記モデル度数分布算出手段により算出された対象モデルの距離分布、角度分布と、を照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備え、
前記画像度数分布算出手段は、前記エッジ点のエッジを特定する方向を、エッジ点の周囲の画素を参照して補正した後、補正後のエッジを特定する方向と、前記規制画像の基準点から各エッジ点への方向のなす角度を、前記エッジ点固有の角度として算出することを特徴とする立体物造形用データ出力規制装置。 - 前記画像度数分布算出手段は、前記規制画像の各画素の値に対して、事前に定義された複数のフィルタマトリクスを適用し、各画素について前記各フィルタマトリクスで算出された複数の強度の最大値をエッジ強度とし、最大値を与えるフィルタマトリクスに固有な方向を前記エッジを特定する方向として算出し、エッジ強度が所定の値を超える画素をエッジ点として抽出し、前記規制画像の基準点から各エッジ点へのベクトルを前記規制画像の基準点から各エッジ点への方向を示すエッジ個別ベクトルとして求め、前記エッジ個別ベクトルと対応するエッジ点のエッジを特定する方向とのなす角度を前記エッジ点固有の角度として算出する際、前記エッジ点のエッジを特定する方向の補正は、対象とする前記エッジ点の周囲のエッジ点におけるエッジを特定する方向と当該周囲のエッジ点のエッジ強度を加重しながら平均化することにより行われることを特徴とする請求項1または請求項2に記載の立体物造形用データ出力規制装置。
- 前記規制画像の基準点の座標値は、前記エッジ点の座標値に当該エッジ点のエッジ強度を重みとして乗じた座標値を、全エッジ点について加算した座標値を、全エッジ点のエッジ強度の総和で除した値で特定される点として与えられるものであることを特徴とする請求項3に記載の立体物造形用データ出力規制装置。
- 前記画像度数分布算出手段は、前記エッジ点のx座標の最大値、最小値とy座標の最大値、最小値を求め、それぞれの丁度中間の値であるx座標の中央の値、y座標の中央の値をもつ中央点を前記規制画像の基準点とすることを特徴とする請求項3に記載の立体物造形用データ出力規制装置。
- 前記フィルタマトリクスとして、事前に定義された16方向の3×3画素のフィルタマトリクスを適用し、各方向について事前に設定された値を用いて、各方向の強度を求める演算を行うことを特徴とする請求項3から請求項5のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記画像度数分布算出手段は、前記16方向の各方向について事前に設定された強度補正量を用いて、前記求められた各方向の強度を補正することを特徴とする請求項6に記載の立体物造形用データ出力規制装置。
- 前記画像度数分布算出手段は、各画素について算出されたエッジ強度に対して、所定の設定最小値を減算し、減算した値に、エッジ強度の階調数を乗算し、当該階調数と前記設定最小値との差を除算することにより前記エッジ強度を補正し、補正されたエッジ強度が正の値になる画素を前記エッジ点として抽出することを特徴とする請求項3から請求項7のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記画像度数分布算出手段は、前記距離分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする請求項3から請求項7のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記画像度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、角度0度から180度の範囲を前記所定数に均等分割した上で、前記各エッジ点固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項3から請求項8のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記画像度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記エッジ個別ベクトルに対応するエッジ点のエッジ強度で重み付けするようにしていることを特徴とする請求項9または請求項10に記載の立体物造形用データ出力規制装置。
- 前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標に当該ポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるものであることを特徴とする請求項1から請求項11のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記モデル度数分布算出手段は、前記基準点から各ポリゴンの平均座標へのベクトルをポリゴン個別ベクトルとして求め、当該ポリゴン個別ベクトルの大きさを前記各ポリゴンまでの距離、前記ポリゴン個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を前記各ポリゴン固有の角度とすることにより、前記各ポリゴンまでの距離と前記ポリゴン固有の角度を算出することを特徴とする請求項1から請求項12のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記モデル度数分布算出手段は、前記距離分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記要素のいずれかに割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする請求項1から請求項13のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記モデル度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、角度0度から180度の範囲を前記所定数に均等分割した上で、前記各ポリゴン固有の角度に基づいて前記要素のいずれかに割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項1から請求項14のいずれか一項に記載の立体物造形用データ出力規制装置。
- 前記モデル度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記各ポリゴンの面積で重み付けするようにしていることを特徴とする請求項14または請求項15に記載の立体物造形用データ出力規制装置。
- 前記度数分布照合手段は、前記対象モデルの距離分布、角度分布をそれぞれ、前記規制画像の距離分布、角度分布と照合するにあたり、
前記距離分布同士の相関係数、前記角度分布同士の相関係数を算出し、算出された双方の相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする請求項1から請求項16のいずれか一項に記載の立体物造形用データ出力規制装置。 - 前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、
前記ポリゴンが削減された対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする請求項1から請求項17のいずれか一項に記載の立体物造形用データ出力規制装置。 - 出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、
前記部分対象モデルに対して、前記モデル度数分布算出手段が処理を行うことを特徴とする請求項1から請求項18のいずれか一項に記載の立体物造形用データ出力規制装置。 - 前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする請求項19に記載の立体物造形用データ出力規制装置。
- 前記規制画像に対して、対象物のエッジを構成する画素をエッジ点として抽出し、当該規制画像の基準点から当該規制画像の各エッジ点までの距離と各エッジ点固有の角度を算出し、算出結果に基づいて各エッジ点までの距離の度数分布である距離分布と、前記各エッジ点固有の角度の度数分布である角度分布を算出する画像度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする請求項1に記載の立体物造形用データ出力規制装置。
- 前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする請求項1から請求項21のいずれか一項に記載の立体物造形用データ出力規制装置。 - 出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記モデル度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする請求項1に記載の立体物造形用データ出力規制装置。 - 請求項1から請求項23のいずれか一項に記載の立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可された対象モデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システム。 - コンピュータを、請求項1から請求項23のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015106060A JP2016215598A (ja) | 2015-05-26 | 2015-05-26 | 立体物造形用データ出力規制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015106060A JP2016215598A (ja) | 2015-05-26 | 2015-05-26 | 立体物造形用データ出力規制装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016215598A true JP2016215598A (ja) | 2016-12-22 |
Family
ID=57579561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015106060A Pending JP2016215598A (ja) | 2015-05-26 | 2015-05-26 | 立体物造形用データ出力規制装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016215598A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114932682A (zh) * | 2022-06-30 | 2022-08-23 | 深圳市智能派科技有限公司 | 一种实时监测光固化打印机的方法和系统 |
-
2015
- 2015-05-26 JP JP2015106060A patent/JP2016215598A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114932682A (zh) * | 2022-06-30 | 2022-08-23 | 深圳市智能派科技有限公司 | 一种实时监测光固化打印机的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112419144B (zh) | 人脸图像的处理方法、装置、电子设备及存储介质 | |
CN114241119A (zh) | 一种游戏模型生成方法、装置、系统及计算机存储介质 | |
JP6557988B2 (ja) | 立体物造形用データ出力規制装置 | |
JP6540238B2 (ja) | 立体物造形用データ出力規制装置 | |
JP2016215598A (ja) | 立体物造形用データ出力規制装置 | |
JP2015162167A (ja) | 立体物造形用データ出力規制装置 | |
JP2016224887A (ja) | 立体物造形用データ出力規制装置 | |
CN115984440A (zh) | 对象渲染方法、装置、计算机设备和存储介质 | |
JP6409513B2 (ja) | 立体物造形用データ出力規制装置 | |
JP2019018446A (ja) | 立体物造形用データ出力規制装置 | |
JP2018075755A (ja) | 立体物造形用データ出力規制装置 | |
JP6638341B2 (ja) | 立体物造形用データ出力規制装置 | |
JP6511959B2 (ja) | 立体物造形用データ出力規制装置 | |
JP2017207900A (ja) | 立体物造形用データ出力規制装置 | |
JP2016150573A (ja) | 立体物造形用データ出力規制装置 | |
JP6613707B2 (ja) | 立体物造形用データ出力規制装置 | |
JP6451932B2 (ja) | 立体物造形用データ出力規制装置 | |
CN109002553B (zh) | 头发模型的构建方法、装置、电子设备和计算机可读介质 | |
JP6638466B2 (ja) | 立体物造形用データ出力規制装置 | |
KR20170089143A (ko) | 3d 프린팅 서비스 제공 장치 및 이에 의한 3d 프린팅 서비스 제공 방법 | |
Roullier et al. | Automated visual quality assessment for virtual and augmented reality based digital twins | |
JP6369116B2 (ja) | 立体物造形用データ出力規制装置 | |
JP2018126939A (ja) | 立体物造形用データ出力規制装置 | |
JP2019022964A (ja) | 立体物造形用データ出力規制装置 | |
JP2018147128A (ja) | 立体物造形用データ出力規制装置 |