JP6409513B2 - 立体物造形用データ出力規制装置 - Google Patents

立体物造形用データ出力規制装置 Download PDF

Info

Publication number
JP6409513B2
JP6409513B2 JP2014226569A JP2014226569A JP6409513B2 JP 6409513 B2 JP6409513 B2 JP 6409513B2 JP 2014226569 A JP2014226569 A JP 2014226569A JP 2014226569 A JP2014226569 A JP 2014226569A JP 6409513 B2 JP6409513 B2 JP 6409513B2
Authority
JP
Japan
Prior art keywords
polygon
distance
distribution
model
dimensional object
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.)
Active
Application number
JP2014226569A
Other languages
English (en)
Other versions
JP2016091392A (ja
Inventor
茂出木 敏雄
敏雄 茂出木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014226569A priority Critical patent/JP6409513B2/ja
Publication of JP2016091392A publication Critical patent/JP2016091392A/ja
Application granted granted Critical
Publication of JP6409513B2 publication Critical patent/JP6409513B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する3Dプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する3Dプリンタが立体物造形装置として普及してきている。3Dプリンタは、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルを用いて立体物の出力を行う。3Dプリンタの医療応用として、医療診断で撮影されるCT/MRI画像(DICOM形式3次元ボクセルデータ)を基に、3Dプリンタ出力用モデリングデータ(ポリゴンモデル)を作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器(血管、骨、関節など)を作成したりする試みが始まっている。
3Dプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、3Dプリンタによりモノとして容易に入手可能になるという問題が発生している。
具体的には、あるWEBサイトにて3Dプリンタを用いて所定のモデルの拳銃を製造できるSTL(Standard Triangulated Language)が無償で公開されている。金属製に比べて射程距離などは多少劣るが、3Dプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の3Dプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の3Dプリンタが普及するにあたり、3Dプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する手法が考えられ、その実現にあたり、ポリゴン照合技術が必要になる。しかし、ポリゴン照合には、従来、次の問題が知られている。3Dプリンタ出力用のポリゴンデータ(STL形式など)では、3次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるCADや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の3Dモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。
そこで、特許文献1のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献2では、ポリゴンモデルの重心からの距離分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献3では、3次元モデルを複数アングルに2次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。
特許第3610270号公報 特開2000−222428号公報 特許第5024767号公報
上記従来の技術を出力物規制に応用する場合、規制すべきポリゴンモデルをデータベースに登録しておき、出力要求のあったポリゴンモデルと比較する手法をとることになる。出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルは、著作権者が存在する著作物になる。
しかしながら、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。しかし、銃砲・刀剣などの危険物を制作した著作権者から許諾を得ることは難しい。このため、著作物の出力規制をするためのデータベースの構築が困難になるという問題がある。これに対して、ポリゴンモデルから特徴となる情報である特徴ベクトルを作成し、この特徴ベクトルによりデータベースを構築する手法が考えられる。しかし、特徴ベクトルはポリゴンモデルに比べて情報量が少ないため、出力を規制すべきか否かを的確に判定することが困難であった。
そこで、本発明は、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を的確に行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
上記課題を解決するため、本発明第1の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデルの特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出結果に基づいて各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出する度数分布算出手段と、
前記算出された距離分布、角度分布をそれぞれ、前記データベースに登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備えることを特徴とする立体物造形用データ出力規制装置を提供する。
本発明第1の態様によれば、規制モデルの特徴を表現した距離分布および角度分布が登録されたデータベースを備え、対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された距離の度数分布である距離分布を算出し、算出された角度の度数分布である角度分布を算出し、算出された距離分布、角度分布をそれぞれ、データベースに登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否かを判定するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を効率的に行うことが可能となる。
また、本発明第2の態様では、前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標に当該ポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるものであることを特徴とする。
本発明第2の態様によれば、対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標にそのポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるようにしたので、対象モデルの重心に近い位置を基準点として迅速に算出することができ、立体物造形装置に出力予定のポリゴンモデルの各頂点がデータベースに登録されている規制モデルのものと若干異なっていても、出力を規制すべきか否かの判定を行うことが可能となる。
また、本発明第3の態様では、前記度数分布算出手段は、前記基準点から各ポリゴンの平均座標へのベクトルを個別ベクトルとして求め、当該個別ベクトルの大きさを前記各ポリゴンまでの距離、前記個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を前記各ポリゴン固有の角度とすることにより、前記各ポリゴンまでの距離と前記ポリゴン固有の角度を算出することを特徴とする。
本発明第3の態様によれば、度数分布算出手段は、基準点から各ポリゴンの平均座標へのベクトルを個別ベクトルとして求め、個別ベクトルの大きさを各ポリゴンまでの距離、個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を各ポリゴン固有の角度とすることにより、各ポリゴンまでの距離とポリゴン固有の角度を算出するようにしたので、各ポリゴンの3次元空間的な位置関係を反映し、ポリゴンモデルの形状特徴を正確に反映した度数分布を容易に算出することが可能となる。
また、本発明第4の態様では、前記度数分布算出手段は、前記距離分布を算出するにあたり、所定数(MD)の要素で構成される1次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする。
本発明第4の態様によれば、距離分布を算出するにあたり、所定数(MD)の要素で構成される1次元配列を準備し、算出された距離の最大値の範囲を所定数に均等分割した上で、各距離をその距離に基づいて所定数のいずれかの要素に割り当て、その要素に該当する数を計数することにより、距離分布を算出するようにしたので、基準点から各ポリゴンへのベクトルを用いて容易に距離分布を算出することが可能となる。
また、本発明第5の態様では、前記度数分布算出手段は、前記角度分布を算出するにあたり、所定数(MA)の要素で構成される1次元配列を準備し、角度0度から180度の範囲を前記所定数に均等分割した上で、前記各ポリゴン固有の角度に基づいて前記所定数のいずれかの要素に割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
本発明第5の態様によれば、角度分布を算出するにあたり、所定数(MA)の要素で構成される1次元配列を準備し、角度0度から180度の範囲を所定数に均等分割した上で、各ポリゴン固有の角度に基づいて所定数のいずれかの要素に割り当て、その要素の値を計数することにより、角度分布を算出するようにしたので、基準点から各ポリゴンへのベクトルを用いて容易に角度分布を算出することが可能となる。
また、本発明第6の態様では、前記度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記個別ベクトルに対応するポリゴンの面積で重み付けするようにしていることを特徴とする。
本発明第6の態様によれば、距離分布または角度分布を算出するにあたり、割り当てられた要素の値を計数する際、個別ベクトルに対応するポリゴンの面積で重み付けするようにしたので、ポリゴン分割の精細度の差異が、距離分布または角度分布にあまり反映せず、ポリゴン分割の精細度が異なる複数のポリゴンモデルに対して同一(出力を規制すべき)であると判定させることが可能となる。
また、本発明第7の態様では、
前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された距離分布および角度分布を前記データベースに登録されている前記距離分布および角度分布と照合するにあたり、
前記距離分布同士のユークリッド距離、前記角度分布同士のユークリッド距離を算出し、算出された双方のユークリッド距離が所定の判定しきい値より小さい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
本発明第7の態様によれば、対象モデルから算出された距離分布および角度分布を前記データベースに登録されている前記距離分布および角度分布と照合するにあたり、距離分布同士のユークリッド距離、前記角度分布同士のユークリッド距離を算出し、算出された双方のユークリッド距離が所定の判定しきい値より小さい場合に、出力を規制すべきであると判定するようにしたので、対象モデルと規制モデルの特徴の照合を、迅速かつ的確に行うことが可能となる。
また、本発明第8の態様では、
前記度数分布照合手段は、前記距離分布同士のユークリッド距離を算出するにあたり、
近傍の複数(K個(K<MD))の要素を平均化して再構成された所定数(MD/K個)の要素を用いて前記距離分布同士のユークリッド距離を算出するようにしていることを特徴とする。
本発明第8の態様によれば、距離分布同士のユークリッド距離を算出するにあたり、近傍の複数(K個(K<MD))の要素を平均化して再構成された所定数(MD/K個)の要素を用いて距離分布同士のユークリッド距離を算出するようにしたので、許容範囲として設定された所定数(K)の要素の範囲で、対象モデルの形状が変化することにより基準点が変動した場合の影響を排除することができる。このため、対象モデルの距離分布に変動があった場合でも、的確に規制モデルとの照合を行うことが可能となる。
また、本発明第9の態様では、前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、前記ポリゴンが削減された対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする。
本発明第9の態様によれば、まず、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、距離分布、角度分布を算出するようにしたので、ポリゴンモデルの微細形状の相違を許容して高速に出力が適正か否かの判断を行うことが可能となる。
また、本発明第10の態様では、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする。
本発明第10の態様によれば、まず、対象モデルを複数の部分対象モデルに分割し、部分対象モデルに対して、距離分布、角度分布を算出するようにしたので、複数の部品で構成される物品を表現した対象モデルの照合の際、規制モデルと対象モデルとで互いに部品構成が異なる場合でも、適切に出力が適正か否かの判断を行うことが可能となる。
また、本発明第11の態様では、前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする。
本発明第11の態様によれば、ポリゴンは三角形であり、対象モデル分割手段は、あるポリゴンと、そのポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように分割するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分割することが可能となる。
また、本発明第12の態様では、前記規制モデルに対して、前記規制モデルの基準点から当該規制モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された各ポリゴンまでの距離の度数分布である距離分布を算出し、算出された各ポリゴン固有の角度の度数分布である角度分布を算出する規制モデル度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする。
本発明第12の態様によれば、規制モデルに対して、規制モデルの基準点から規制モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された各ポリゴンまでの距離の度数分布である距離分布を算出し、算出された各ポリゴン固有の角度の度数分布である角度分布を算出する規制モデル度数分布算出装置を別途用意し、この規制モデル度数分布算出装置から規制モデルの度数分布を受信し、データベースに登録するようにしたので、データベースの更新を遠隔地から迅速に行うことが可能となる。
また、本発明第13の態様では、
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである(出力不適)と判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする。
本発明第13の態様によれば、対象モデルを、接続された立体物造形装置に出力し、並行して実行される度数分布照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
また、本発明第14の態様では、
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を更に有することを特徴とする。
本発明第14の態様によれば、ネットワークを介して対象モデルの距離分布と角度分布を受信し、出力を規制すべきか否かの判定により得られた出力を規制すべきか否かに基づくデータを対象モデルの距離分布と角度分布の送信元に送信するようにしたので、出力を規制すべきか否かの判定をクラウド型で提供することができ、出力側における処理を軽減することができる。更に、データベースをクラウド側で一元管理でき、3Dプリンタ等の立体物造形装置ごとに接続されている出力制御用端末内でデータベースを管理する必要がないため、常に最新のデータベースに基づいて出力を規制すべきか否かの判定を行うことが可能になる。
また、本発明第15の態様では、
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
本発明第15の態様によれば、立体物造形用データ出力規制装置と、立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ3Dプリンタ等の形態で、立体物造形システムを提供することが可能となる。
本発明によれば、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を効率的に行うことが可能となる。
本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。 ステップS100の度数分布の算出処理の詳細を示すフローチャートである。 ステップS200の度数分布の照合処理の詳細を示すフローチャートである。 2つの球体モデルA、Bそれぞれに対して得られる距離分布と角度分布を示す図である。 2つの球体モデルB、Cそれぞれに対して得られる距離分布と角度分布を示す図である。 ポリゴン削除の基本原理を示す図である。 ポリゴン削減処理の詳細を示すフローチャートである。 対象モデル分割処理の詳細を示すフローチャートである。 変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。 クラウド型の立体物造形システムのハードウェア構成図である。 クラウド型の立体物造形システムの機能ブロック図である。 球体aに対する度数分布算出事例を示す図である。 球体bに対する度数分布算出事例を示す図である。 模擬拳銃cに対する度数分布算出事例を示す図である。 模擬拳銃dに対する度数分布算出事例を示す図である。 模擬拳銃eに対する度数分布算出事例を示す図である。 図14〜図18に示したポリゴンモデル同士のユークリッド距離Dd、Daを示す図である。 医療臓器模型に対する度数分布算出事例を示す図である。 医療臓器模型に対する度数分布算出事例を示す図である。
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<1.装置構成>
図1は、本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置100は、汎用のコンピュータで実現することができ、図1に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等のキー入力I/F(インターフェース)4と、3Dプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、を備え、互いにバスを介して接続されている。
3Dプリンタ7は、汎用の3Dプリンタであり、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。3Dプリンタ7は、データ処理部7aと出力部7bを有している。3Dプリンタ7のデータ処理部7aは、データ入出力I/F5に接続されており、データ入出力I/F5から受け取った立体物造形用データを基に、出力部7bが立体物を造形するようになっている。
図1では、立体物造形用データ出力規制装置100と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置100の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図1に示した立体物造形システムを1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
図2は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図2において、10は度数分布算出手段、30はポリゴンモデル照合手段、40は対象モデル記憶手段、50は規制モデルデータベースである。
度数分布算出手段10は、出力対象のポリゴンモデルである対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの方向と距離を算出し、算出された距離の度数分布である距離分布を算出し、算出された方向と各ポリゴン固有の方向(法線ベクトル)とのなす角度の度数分布である角度分布を算出する処理を行う。度数分布照合手段30は、対象モデルについて算出された距離分布、角度分布をそれぞれ、規制モデルデータベース50に登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。
度数分布算出手段10、度数分布照合手段30は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段40は、出力を規制すべきか否かの判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置3により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、3Dプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてSTL(Standard Triangulated Language)を採用している。
規制モデルデータベース50は、出力を規制すべきポリゴンモデルである規制モデルに対して2種の度数分布として算出された距離分布および角度分布を記憶して、データベース化したものであり、記憶装置3により実現される。2種の度数分布である距離分布および角度分布は、規制モデルの特徴を表現した特徴ベクトルとしての役割を果たすものとなる。即ち、2種の度数分布により、元の規制モデルの相違を識別可能であるが、元の規制モデルを復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、2種の度数分布は、著作物としての役割は果たさないが、2つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割を果たすことになる。規制モデルデータベース50には、距離分布および角度分布だけでなく、距離分布および角度分布の算出の基になった規制モデル自体を登録しておくことも可能であるが、通常は、著作権の問題から規制モデル自体は登録されていない。
図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。
図1に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、度数分布算出手段10、度数分布照合手段30としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段40、規制モデルデータベース50として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
<2.処理動作>
<2.1.前処理>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制対象とするポリゴンモデルである規制モデルについて、2種の度数分布である距離分布および角度分布を作成する。ポリゴンモデルからの距離分布および角度分布の作成については、後述する立体物造形用データ出力規制装置における処理と同様にして行うことができる。規制モデルからの距離分布および角度分布の作成は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。作成された距離分布および角度分布は、規制モデルデータベース50に登録される。
出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルには著作権者が存在する著作物になる。したがって、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。距離分布および角度分布の形式により、元のポリゴンモデルの相違を識別可能であるが、元のポリゴンモデルを復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様で、距離分布および角度分布の形式はフィンガープリントに相当し、著作物には該当しない。そこで、本発明のように、距離分布および角度分布の形式で登録することにより、著作者の許諾を必要とせずに、規制モデルの特徴を記録したデータベースを構築することができる。
<2.2.処理概要>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。図3は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、度数分布算出手段10が、ポリゴンモデルである対象モデルについて、2種の度数分布である距離分布および角度分布を算出する(ステップS100)。そして、算出された対象モデルの度数分布と、規制モデルデータベース50に登録された規制モデルの度数分布との照合を行う(ステップS200)。
<2.3.度数分布の算出処理>
まず、ステップS100の度数分布の算出処理について説明する。図4は、度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数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を以下の〔数式1〕に従った処理を実行することにより算出する(ステップS110)。
〔数式1〕
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)
上記〔数式1〕において、Σの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合について、総和を求めることを示している。以下の〔数式3〕においても同様である。次に、対象モデルにおける基準点を算出する(ステップS120)。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、各ポリゴンの平均点にそのポリゴンの面積を重みとして乗じた値の、ポリゴンモデルを構成するN個のポリゴンについての平均値を、ポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式2〕に従った処理を実行することにより、各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))を算出する。
〔数式2〕
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は、上記〔数式1〕に従った処理により算出されたポリゴンの面積S(i)およびS(i)の総和である総面積Ssumを用いて、以下の〔数式3〕に従った処理を実行することにより、対象モデルの基準点(Xg,Yg,Zg)を算出する。
〔数式3〕
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
対象モデルの基準点は、上記〔数式3〕に示すように、各ポリゴンの面積を乗じているため、対象モデルの重心に近い点を示しており、ポリゴンの重さを加味した基準点となっている。
次に、度数分布算出手段10は、基準点からポリゴン平均点へのベクトル算出を行う(ステップS130)。具体的には、以下の〔数式4〕に従った処理を実行することにより、対象モデルの基準点(Xg,Yg,Zg)から各ポリゴンiの平均点(Xc(i),Yc(i),Zc(i))へのベクトルである個別ベクトル(Dx(i),Dy(i),Dz(i))を算出する。
〔数式4〕
Dx(i)=Xc(i)−Xg
Dy(i)=Yc(i)−Yg
Dz(i)=Zc(i)−Zg
次に、度数分布算出手段10は、基準点とポリゴン平均点の最大距離の算出を行う(ステップS140)。具体的には、以下の〔数式5〕に従った処理を実行することにより、対象モデルの基準点(Xg,Yg,Zg)から各ポリゴンiの平均点(Xc(i),Yc(i),Zc(i))までの距離D(i)を求め、N個の距離D(i)のうち最大のものを最大距離Dmaxとする。
〔数式5〕
D(i)=[Dx(i)2+Dy(i)2+Dz(i)2]1/2
Dmax=MAXi=0,N-1D(i)
上記〔数式5〕において、Maxは、添え字の“i=0,N−1”のD(i)の中から最大値を選択することを示している。
次に、度数分布算出手段10は、基準点からポリゴン平均点へのベクトルと法線ベクトルのなす角度の算出を行う(ステップS150)。具体的には、以下の〔数式6〕に従った処理を実行することにより、ポリゴンiの個別ベクトル(Dx(i),Dy(i),Dz(i))と、ポリゴンiの法線ベクトル(Xn(i),Yn(i),Zn(i))のなす角度A(i)を算出する。
〔数式6〕
A(i)=[cos-1[Dx(i)Xn(i)+Dy(i)Yn(i)+Dz(i)Zn(i)]/D(i)]・180/π
上記〔数式6〕においては、単位をラジアンから度に変更するため[]で括られた部分に180/πを乗じている。したがって、A(i)は、0〜180の値をとることになる。基準点からポリゴン平均点へのベクトルと法線ベクトルのなす角度は、各ポリゴン固有の角度となる。
次に、度数分布算出手段10は、基準点とポリゴン平均点の距離分布を算出する(ステップS160)。本実施形態で算出される距離分布は、面積加重した距離の分布であり、要素数をMDとし、各要素md(md=0,・・・,MD−1)の度数をHd(md)と表す。
度数分布算出手段10は、初期値をHd(md)=0と設定し、以下の〔数式7〕に従った処理を実行することにより、要素mdの度数Hd(md)を算出する。
〔数式7〕
Dmax×md/MD≦D(i)<Dmax×(md+1)/MDならば、
Hd(md)←Hd(md)+S(i)
上記〔数式7〕は、対象モデルの基準点からポリゴンiの平均点までの距離D(i)が、最大距離Dmaxにmd/MDを乗じた値以上で、(md+1)/MDを乗じた値より小さい場合に、Hd(md)にポリゴンiの面積S(i)を加算することを意味している。
上記〔数式7〕に従った処理を、N個のポリゴンについて実行することにより、距離分布Hd(md)(md=0,・・・,MD−1)が算出される。各要素には、単なる頻度ではなく、面積S(i)が加算されているため、距離分布Hd(md)は、面積加重の距離分布を示すことになる。面積S(i)でなく単に1を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない距離分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、距離分布算出時にポリゴンの面積を加算するようにしている。また、上記〔数式7〕で算出されたHd(md)に、更に100/Ssumを乗じてHd(md)と置き換えることにより、単位を面積率[%]に正規化している。
次に、度数分布算出手段10は、ポリゴン平均点へのベクトルと法線ベクトルの角度分布を算出する(ステップS170)。本実施形態で算出される角度分布は、面積加重した角度の分布であり、要素数をMAとし、各要素ma(ma=0,・・・,MA−1)の度数をHa(ma)と表す。要素数MAは、上記要素数MDと同一であってもよい。
度数分布算出手段10は、初期値をHa(ma)=0と設定し、以下の〔数式8〕に従った処理を実行することにより、要素maの度数Ha(ma)を算出する。
〔数式8〕
180×ma/MA≦A(i)<180×(ma+1)/MAならば、
Ha(ma)←Ha(ma)+S(i)
上記〔数式8〕は、ポリゴンiの個別ベクトルと、ポリゴンiの法線ベクトルのなす角の角度A(i)が、180にma/MAを乗じた値以上で、(ma+1)/MAを乗じた値より小さい場合に、Ha(ma)にポリゴンiの面積S(i)を加算することを意味している。
上記〔数式8〕に従った処理を、N個のポリゴンについて実行することにより、角度分布Ha(ma)(ma=0,・・・,MA−1)が算出される。各要素には、単なる頻度ではなく、面積S(i)が加算されているため、角度分布Ha(ma)は、面積加重の角度分布を示すことになる。面積S(i)でなく単に1を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない角度分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布算出時にポリゴンの面積を加算するようにし、さらにHa(ma)に100/Ssumを乗じてHa(ma)と置き換えることにより、単位を面積率[%]に正規化している。
<2.4.度数分布の照合処理>
次に、ステップS200の度数分布の照合処理について説明する。図5は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段30は、規制モデルデータベース50に記憶されているRE個のレコードの中からレコードre(re=0,・・・,RE−1)に登録されている度数分布を抽出する(ステップS210)。度数分布として、距離分布Hdo(re,md)(md=0,・・・,MD−1)、角度分布Hao(re,md)(md=0,・・・,MD−1)を抽出する。
次に、度数分布照合手段30は、対象モデルから算出された距離分布と、規制モデルデータベース50から抽出された規制モデルの距離分布同士で各要素間のユークリッド距離を算出する(ステップS220)。具体的には、以下の〔数式9〕に従った処理を実行することにより、対象モデルの距離分布とレコードreに対応する規制モデルの距離分布のユークリッド距離Dd(re)を算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を2乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離Dd(re)は、MD/K次元ユークリッド空間内の2点の距離として求められる。
〔数式9〕
Dd(r)=Σ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
上記〔数式9〕において、Σの添え字の“i=0,MD/K−1”は、iが0からMD/K−1の全ての整数をとる場合について総和を求めることを示し、Σの添え字の“k=0,K−1”は、mdが0からMD−1の全ての整数をとる場合について総和を求めることを示している。上記〔数式9〕において、Kは距離の位置ずれ許容範囲である。Kとしては、任意に設定することが可能であるが、例えばMD=360のときK=10としている。kはk=0,・・・,K−1の値をとる整数である。許容範囲Kは、対象モデルの形状が若干変化することにより基準点が変動した場合の影響を排除するために用いられる(ポリゴン構成の精細度が変化したり、形状の装飾に軽微な変化がある場合に限定)。許容範囲Kを設けることにより、対象モデルの距離分布に若干の変動があった場合でも、的確に規制モデルとの照合を行うことが可能となる。
次に、度数分布照合手段30は、ステップS220において算出された距離分布のユークリッド距離Dd(re)と、判定しきい値との比較を行う(ステップS230)。ユークリッド距離Dd(re)が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Dd(re)が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、ここでは、0.5としてある。
ステップS230において適合と判定された場合には、度数分布照合手段30は、対象モデルから算出された角度分布と、規制モデルデータベース50から抽出された規制モデルの角度分布の間で、互いのユークリッド距離を算出する(ステップS240)。具体的には、以下の〔数式10〕に従った処理を実行することにより、対象モデルの角度分布とレコードreに対応する規制モデルの角度分布のユークリッド距離Da(re)を算出する。ユークリッド距離Da(re)は、MA次元ユークリッド空間内の2点の距離として求められる。
〔数式10〕
Da(re)=Σma=0,MA-1[{Hao(re,ma)−Ha(ma)}2/MA]1/2
上記〔数式10〕において、Σの添え字の“ma=0,MA−1”は、maが0からMA−1の全ての整数をとる場合について、後続の[・・・]1/2の総和を求めることを示している。
次に、度数分布照合手段30は、ステップS240において算出された角度分布のユークリッド距離Da(re)と、判定しきい値との比較を行う(ステップS250)。ユークリッド距離Da(re)が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Da(re)が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、ここでは、0.5としてある。
ステップS250において適合と判定された場合には、度数分布照合手段30は、対象モデルとレコードreの規制モデルが適合することになるため、出力を規制すべきである(出力不適)との判定を行う。
ステップS230、S250のいずれかにおいて不適合と判定された場合には、度数分布照合手段30は、対象モデルとレコードreの規制モデルの照合を終え、次のレコードre+1の規制モデルとの照合に移行する。図5のフローチャートに従った処理を、規制モデルデータベース50内の全レコードに対して実行し、適合となる規制モデルが1つでも存在したら、対象モデルを“出力を規制すべきである(出力不適)”としてステップS200の照合処理を終了することになる。
ここで、本実施形態において、距離分布と角度分布の2種の度数分布を用いて照合を行うことの有用性について2つの例を用いて説明する。図6は、2つの球体モデルA、Bそれぞれに対して得られる距離分布と角度分布を示す図である。図6(a)は、球体モデルAを示し、図6(b)(c)は、それぞれ球体モデルAの距離分布、角度分布を示している。図6(d)は、球体モデルBを示し、図6(e)(f)は、それぞれ球体モデルBの距離分布、角度分布を示している。
図6(a)に示す球体モデルAは、内部に空洞がなく、中身が詰まった状態の球体モデルである。内部に空洞がない場合、図6(a)に右上向きの矢印で示すように全てのポリゴンの法線ベクトルは全て外側を向いている。図6(d)に示す球体モデルBは、内部に空洞がある球体モデルである。内部に空洞がある場合、図6(d)に示すようにポリゴンの法線ベクトルは外側(図中右上向き)を向くものと内側(図中左下向き)を向くものの双方が存在する。球体モデルA、球体モデルBのいずれも球体であるため、重心に相当する基準点は、球体の中心に位置する。図6(a)(d)において左右方向に延びる矢印は、基準点からポリゴンまでの距離を示している。
球体モデルAでは、基準点から等距離にポリゴンが分布しているため、図6(b)に示すように球体モデルAの距離分布は、一定の距離の分布だけが突出して高くなる。球体モデルBでは、外周部に厚みが存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離がわずかに異なる。そのため、図6(e)に示すように球体モデルBの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の2箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違がないと、図6(e)の2個所のピークは同一位置に統合加算され、球体モデルAの距離分布と一致する分布となる。
また、球体モデルAでは、空洞がなく中身が詰まった状態とするため、法線ベクトルは、基準点(この場合、球の中心)から外側を向く方向になっている。そのため、基準点からポリゴンまでのベクトルと、ポリゴンの法線ベクトルのなす角の角度分布は、図6(c)に示すように0°付近だけが突出して高くなる。球体モデルBでは、外側のポリゴンの法線ベクトルは、基準点(球の中心)から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図6(f)に示すように0°付近と180°付近の2箇所だけが突出して高くなる。
図6(b)(e)に示すように、距離分布は双方とも所定の距離だけ突出して高くなった分布であり、大きな相違がない。そのため、球体モデルAと球体モデルBの照合を、距離分布のみを用いて行った場合、適合する(類似する)と判定されてしまう可能性が高まる。しかし、図6(c)(f)に示すように、角度分布では、180°付近の分布が大きく異なる。このため、球体モデルAと球体モデルBの照合を、角度分布を用いて行うことにより、両者が相違すると判定することができる。
距離分布と角度分布の2種の度数分布を用いて照合を行うことの有用性についてもう2つ目の例を用いて説明する。図7は、2つの球体モデルB、Cそれぞれに対して得られる距離分布と角度分布を示す図である。図7(a)は、球体モデルBを示し、図7(b)(c)は、それぞれ球体モデルAの距離分布、角度分布を示している。図7(a)〜(c)は、図6(d)〜(f)と同一である。図7(d)は、球体モデルCを示し、図7(e)(f)は、それぞれ球体モデルCの距離分布、角度分布を示している。
図7(a)に示す球体モデルCは、球体モデルBよりも外周部分が厚く、空洞の体積が小さい球体モデルである。内部に空洞があるため、球体モデルBと同様、図7(d)に示すようにポリゴンの法線ベクトルは外側と内側の双方を向いている。球体モデルB、球体モデルCのいずれも球体であるため、重心に相当する基準点は、球体の中心に位置する。図7(d)において左右方向に延びる大小の矢印は、それぞれ基準点から外側のポリゴン、内側のポリゴンまでの距離を示している。
球体モデルBでは、外側のポリゴンの法線ベクトルは、基準点(球の中心)から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図7(c)に示すように0°付近と180°付近の2箇所だけが突出して高くなる。球体モデルCでも、外側のポリゴンの法線ベクトルは、基準点(球の中心)から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図7(f)に示すように0°付近と180°付近の2箇所だけが突出して高くなる。外側の方が、表面積が大きく、ポリゴンの総面積も大きくなるため、0°付近の分布の方が180°付近の分布よりも大きくなる。
球体モデルBでは、外周部に薄い層が存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離がわずかに異なる。そのため、図7(b)に示すように球体モデルBの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の2箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違がないため、突出した2箇所は接近している。球体モデルCでは、外周部に厚い層が存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離が大きく異なる。そのため、図7(e)に示すように球体モデルCの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の2箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違があるため、突出した2箇所が離れている。
図7(c)(f)に示すように、角度分布は双方とも0°付近と180°付近の2箇所だけが突出して高くなった分布であり、大きな相違がない。そのため、球体モデルBと球体モデルCの照合を、角度分布のみを用いて行った場合、適合する(類似する)と判定されてしまう可能性が高まる。しかし、図7(b)(e)に示すように、距離分布では、内側のポリゴンまでの距離の分布が大きく異なる。このため、球体モデルBと球体モデルCの照合を、距離分布を用いて行うことにより、両者が相違すると判定することができる。
図6、図7に示した2つの例のように、角度分布と距離分布の2種の度数分布を用いることにより、2つのポリゴンモデルが大きく相違するか否かの判定をより確実に行うことが可能となる。
<3.3Dプリンタへのデータ出力>
上記ステップS200において、度数分布照合手段30により“出力を規制すべきでない(出力適正)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力する。一方、度数分布照合手段30により“出力を規制すべきである(出力不適)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力しない。また、出力適正か出力不適かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か出力不適かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、利用者から見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か出力不適かの判定のための処理の実行が開始されることは気付かない。
<4.ポリゴン削減処理>
図3に示したステップS100の度数分布の算出処理に先立って、対象モデルのポリゴン数の削減を行うポリゴン削減処理を行うようにしてもよい。事前に重要度の低いポリゴンの削減を行っておくことにより、ポリゴンモデルの微細形状の相違を許容して高速に出力が適正か否かの判定を行うことが可能となる。以下に、度数分布の算出処理に先立つポリゴン削減処理について説明する。ポリゴン削減処理は、図1に示したCPU1が記憶装置3に記憶されたプログラムを実行ことにより実現されるポリゴン削減手段により行われる。
図8は、ポリゴン削減手段によるポリゴン削除の基本原理を示す図である。ポリゴン集合は、現実には、空間における三次元の値をもつポリゴン群であるが、図8の例では、説明の便宜上、二次元の値をもつポリゴン群を示している。図8(a)の例では、削除前、18個のポリゴンからなるポリゴン群を示している。
図9は、ポリゴン削減手段によるポリゴン削減処理の詳細を示すフローチャートである。まず、ポリゴン削減手段は、対象モデルを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する(ステップS11)。次に、ポリゴン削減手段は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する(ステップS12)。図8の例では、図8(b)に示すように、3個の頂点E、J、Kで構成されるポリゴンEJKが削除対象ポリゴンとして選定される。
続いて、ポリゴン削減手段は、削除対象ポリゴンの3辺のうち最短の1辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する(ステップS13)。図8の例では、図8(c)に示すように、削除対象ポリゴンEJKの辺JKが削除対象辺として選定される。さらに、辺JKの中点Oが算出される。
次に、ポリゴン削減手段は、削除対象ポリゴンを削除する(ステップS14)。これによりポリゴン数が1つ削減されることになる。次に、ポリゴン削減手段は、削除対象ポリゴンの削除対象辺と頂点を共有していた削除頂点共有ポリゴンを順次選定する(ステップS15)。削除対象ポリゴンの削除対象辺と2頂点を共有(すなわち辺を共有)している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段は、その削除頂点共有ポリゴンを削除する(ステップS16)。図8の例では、3個の頂点J、K、Nで構成されるポリゴンJKNが削除される。これによりさらにポリゴン数が1つ削減されることになる。
削除対象ポリゴンの削除対象辺と1頂点を共有している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段は、共有頂点をステップS13で算出された中点に補正し、面積および周長を再算出する(ステップS17)。図8の例では、図8(c)と図8(d)を比較するとわかるように、ポリゴンEHJ→ポリゴンEHO、ポリゴンEFK→ポリゴンEFO、ポリゴンHJM→ポリゴンHOM、ポリゴンJMN→ポリゴンOMN、ポリゴンFKN→ポリゴンFONに変更される。この結果、図8の例においては、図8(a)の時点で18個あったポリゴンが、図8(d)の時点では16個に削減される。
ステップS15〜ステップS17の処理を終えたら、ポリゴン削減手段は、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する(ステップS18)。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップS12に戻って、ポリゴン削減手段は、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップS18における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図9のフローチャートに従った処理を実行することにより、設定された目標値以下になるように、ポリゴン数が削減されることになる。
<5.対象モデル分割処理>
図3に示した度数分布の算出処理に先立ち、対象モデルの分割を行う対象モデル分割処理を行うようにしてもよい。事前に対象モデルの分割を行っておくことにより、規制モデルと対象モデルとで互いに部品構成が異なる場合でも適切に出力が適正か否かの判断を行うことが可能となる。以下に、度数分布の算出処理に先立つ対象モデル分割処理について説明する。対象モデル分割処理は、図1に示したCPU1が記憶装置3に記憶されたプログラムを実行ことにより実現される対象モデル分割手段により行われる。
図10は、対象モデル分割手段による対象モデル分割処理の詳細を示すフローチャートである。対象モデル分割手段は、まず、初期設定を行う(ステップ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個のグループに分類されたことになる。
図10のフローチャートに従った処理を実行することにより、全P個のポリゴンが、2頂点を共有して連結するポリゴン集合ごとにグループに分類される。この分類されたグループが、部分対象モデルとなる。図10の例では、対象モデルの各ポリゴンは、g−1個の部分対象モデルのいずれかに属することになる。この結果、対象モデルはg−1個の部分対象モデルに分割される。
度数分布の算出処理に先立って行われる、ポリゴン削減手段によるポリゴン削減処理、対象モデル分割手段による対象モデル分割処理は、どちらの順序で行ってもよい。できれば、ポリゴン削減処理を行った後に、対象モデル分割処理を行う方が効率的である。また、ポリゴン削減処理、対象モデル分割処理の双方でなく、どちらか一方のみを行うようにしてもよい。
<6.規制モデルの度数分布算出および登録について>
変形例として、度数分布照合手段30を備えた立体物造形用データ出力規制装置とは別の場所で、規制モデルに対して算出された距離分布および角度分布を、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
図11は、変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。図11に示した立体物造形システムにおいて、立体物造形用データ出力規制装置101は、図1に示した立体物造形用データ出力規制装置100の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8を備えた構成となっている。規制モデル度数分布算出装置102は、汎用のコンピュータで実現することができ、図11に示すように、CPU(Central Processing Unit)1aと、コンピュータのメインメモリであるRAM(Random Access Memory)2aと、CPU1aが実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3aと、キーボード、マウス等のキー入力I/F(インターフェース)4aと、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5aと、液晶ディスプレイ等の表示デバイスである表示部6aと、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8aを備え、互いにバスを介して接続されている。立体物造形用データ出力規制装置101のネットワーク通信部8と規制モデル度数分布算出装置102のネットワーク通信部8aは互いに通信を行い、規制モデル度数分布算出装置102から立体物造形用データ出力規制装置101へ規制モデルに対して算出された2種の度数分布の送信を行うことが可能になっている。
図11では、立体物造形用データ出力規制装置101と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置101の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)、ネットワーク通信部8(無線LAN機能)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図11に示した立体物造形用データ出力規制装置101および3Dプリンタ7を1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
規制モデル度数分布算出装置102においては、CPU1aが、記憶装置3aに記憶されているプログラムを実行することにより、第2の度数分布算出手段、度数分布送信手段が実現される。規制モデル度数分布算出装置102で実現される第2の度数分布算出手段は、立体物造形用データ出力規制装置100で実現される度数分布算出手段10と同様の機能を有し、規制モデルに対して2種の度数分布として距離分布、角度分布を算出する。度数分布送信手段は、規制モデルについて算出された2種の度数分布である距離分布、角度分布を立体物造形用データ出力規制装置101に送信する。立体物造形用データ出力規制装置101では、ネットワーク通信部8が、規制モデル度数分布算出装置102から度数分布を受信すると、CPU1が所定のプログラムを実行して度数分布登録手段として機能し、受信した度数分布を記憶装置3で実現される規制モデルデータベース50に登録する。
<7.クラウド型の立体物造形システム>
本発明は、クラウド型の立体物造形システムに適用することも可能である。図12は、クラウド型の立体物造形システムのハードウェア構成図である。図12に示した立体物造形システムでは、出力制御用端末201と処理サーバ202により立体物造形用データ出力規制装置が実現される。図12に示した立体物造形システムにおいて、出力制御用端末201は、図11において立体物造形用データ出力規制装置101として示したコンピュータと同等のハードウェア構成を有する。すなわち、出力制御用端末201は、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を備え、互いにバスを介して接続されている。
処理サーバ202は、汎用のコンピュータに専用のプログラムを組み込むことにより実現することができる。図12に示すように、CPU11a、RAM12a、記憶装置13a、キー入力I/F14aと、データ入出力I/F15aと、表示部16aと、ネットワーク通信部18aを備え、互いにバスを介して接続されている。出力制御用端末201のネットワーク通信部18と処理サーバ202のネットワーク通信部18aは互いに通信を行い、処理サーバ202から出力制御用端末201へ出力適否の判定に基づく出力適否データの送信を行うことが可能になっている。図12では、出力制御用端末201と3Dプリンタ7は分離した形態で示されているが、図11の例と同様、3Dプリンタ製品に出力制御用端末201の構成要素である、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を重複して備えていてもよい。
図13は、クラウド型の立体物造形システムの機能ブロック図である。クラウド型の立体物造形システムを構成する処理サーバ202は、図2に示した立体物造形用データ出力規制装置の各手段に加えて、対象モデル受信手段60、出力適否データ送信手段70を備えた構成となっている。対象モデル記憶手段41は、対象モデル自体ではなく、対象モデルについて算出された2種の度数分布を記憶する。また、度数分布算出手段10は、処理サーバ202ではなく、出力制御用端末201が備えた構成となっている。
図2に示した立体物造形用データ出力規制装置と同等の機能を有するものについては、同一符号を付して説明を省略する。対象モデル受信手段60は、出力制御用端末201から送信された対象モデルの度数分布を受信して対象モデル記憶手段41に登録する手段であり、CPU11aが所定のプログラムを実行するとともに、ネットワーク通信部18aを制御することにより実現される。出力適否データ送信手段70は、度数分布照合手段30により判定された“出力を規制すべきであるか否か”に基づき、出力適否データを出力制御用端末201に送信する手段であり、CPU11aが所定のプログラムを実行するとともに、ネットワーク通信部18aを制御することにより実現される。
処理サーバ202は、インターネット等のネットワークに接続され、多数の出力制御用端末からアクセス可能になっている。クラウド型の立体物造形システムの「クラウド型」とは、3Dプリンタにより立体物を出力する出力側でなく、出力側からネットワークを介した遠隔地のコンピュータにおいて、規制すべきか否かを判定することを意味する。従来のサーバ型コンピュータでは多数の利用者のアクセスが集中すると応答性が遅くなり利用者に迷惑をかけることが多かったが、クラウド型では仮想化技術によりコンピュータの物理的構成を動的に変更することが可能になるため、常に安定した応答性を維持できるという特徴がある。処理サーバ202は物理的には複数台のコンピュータにより実現されるのが一般的である。
図12、図13に示したクラウド型の立体物造形システムの処理動作について説明する。出力制御用端末201において、利用者がキー入力I/F14を介して出力したい対象モデルを指定すると、CPU11は、記憶装置13に記憶されている指定された対象モデルを抽出し、対象モデルを特定する識別情報であるモデルIDを付与する。そして、CPU11は、モデルIDが付与された対象モデルに対して、図3に示したフローチャートに従って、度数分布算出手段10が処理を行い、距離分布および角度分布で構成される度数分布を生成する。さらにCPU11は、生成された度数分布を、記憶装置13に事前に設定されているURL等のアドレス宛に、ネットワーク通信部18を介して送信する。ポリゴンデータに比べ情報量が顕著に少ない度数分布を送信する方法をとることにより、伝送時間が大幅に短縮されるだけでなく、サーバ側には著作物であるポリゴンデータが送信されず、サーバ側に複製物が残らないため、著作権侵害を回避することができる。並行してCPU11は、モデルIDが付与された対象モデルを、データ入出力I/F15を介して3Dプリンタ7のデータ処理部7aに送信する。データ処理部7a内のプリンタキューには、出力制御用端末201から受信した対象モデルが保持され、出力ジョブとして待機状態となる。この時、3Dプリンタ出力における前処理であるポリゴン形式のデータを積層形式のデータに変換する処理のみ実行させるようにし、積層形式のデータに変換された段階で待機状態にする手法もとることができる。このデータ処理負荷もそれなりに高いため、この間に出力適否判定が完了すれば、利用者側に余分な待ち時間を感じさせないようにすることができる。
処理サーバ202では、対象モデル受信手段60が、出力制御用端末201から送信された対象モデルの度数分布を受信すると、その度数分布を対象モデル記憶手段41に記憶する。ここで、図3に示したフローチャートに従って、度数分布照合手段30が処理を行い、受信した度数分布に対応する対象モデルの出力適否を判定する。出力適否の結果である出力適否データは、度数分布照合手段30から出力適否データ送信手段70に渡される。そして、出力適否データ送信手段70は、度数分布の送信元(アクセス元)である出力制御用端末201に、モデルIDを付加した出力適否データを送信する。
出力制御用端末201では、ネットワーク通信部18が、処理サーバ202から出力適否データを受信すると、CPU11が、受信した出力適否データを、データ入出力I/F15を介して3Dプリンタ7のデータ処理部7aに送信する。データ処理部7aは、受信した出力適否データに付与されたモデルIDでプリンタキュー内の出力ジョブを参照する。そして、出力適否データが“適(出力適正)”である場合、データ処理部7aは、その出力ジョブを待機状態から出力状態に変更し、出力部7bに対象モデルを出力する。出力適否データが“否(出力不適)”である場合、データ処理部7aは、その出力ジョブを破棄する。すなわち、プリンタキューから削除する。
<8.度数分布算出事例>
図14〜図18に、本実施形態に係る立体物造形用データ出力規制装置による度数分布の算出処理(ステップS100)による度数分布算出事例を示す。図14〜図18のいずれにおいても、左側にポリゴンモデル、右側に度数分布を示している。度数分布は上段が距離分布(Distance)を示し、下段が角度分布(Angle)を示している。図14(a)は、球体a(実際には多面体)のポリゴンモデル(1224ポリゴン)を示す図である。図14(a)のような球体のポリゴンモデルに対しては、図14(b)に示すように、特定の距離だけが突出して高い距離分布と、0°付近だけが突出して高い角度分布が得られる。得られた距離分布と角度分布を見ると、図14(a)のポリゴンモデルは中身が詰まった球体を出力するためのものであることがわかる。
図15(a)は、図14(a)よりポリゴン数が少ない球体b(実際には多面体)のポリゴンモデル(120ポリゴン)を示す図である。図15(a)のような多面体のポリゴンモデルに対しては、図15(b)に示すように、特定の距離だけが突出して高い距離分布と、0°付近だけが突出して高い角度分布が得られる。得られた距離分布と角度分布を見ると、図15(a)のポリゴンモデルは中身が詰まった球体を出力するためのものであることがわかる。ただし、図14のポリゴンモデルと比較するとポリゴン数が少ないため、距離のバラツキが若干大きくなる。
図16(a)は、模擬拳銃cのポリゴンモデルを示す図である。図16(a)のような模擬拳銃のポリゴンモデルに対しては、図16(b)に示すように、距離、角度ともに分散された状態の距離分布、角度分布が得られる。図17(a)は、実質的には図16(a)に示したものと同じであるが、スケールとアングルが異なる模擬拳銃dのポリゴンモデルを示す図である。図17(a)に示した模擬拳銃のポリゴンモデルに対しては、図17(b)に示すように、距離、角度ともに分散された状態の距離分布、角度分布が得られる。図16(b)に示した距離分布および角度分布と、図17(b)に示した距離分布および角度分布は全く同じである。これは、度数分布算出手段10により算出された度数分布は、スケールとアングルの影響を排除して得られることを意味している。
図18(a)は、図16(a)に示した模擬拳銃cのポリゴンモデルの一部を欠損させた模擬拳銃eのポリゴンモデルを示す図である。図18(a)のような模擬拳銃のポリゴンモデルに対しては、図18(b)に示すように、距離、角度ともに分散された状態の距離分布、角度分布が得られる。しかし、図16(b)に示した距離分布および角度分布と比較すると、その分散の程度が異なり、特に距離分布については横軸方向に顕著なずれが生じていることがわかる。これは、一部の欠損により重心がずれたために生じたものである。
図19は、図14〜図18に示したポリゴンモデル同士の度数分布照合手段30による照合結果を示す図である。照合結果として、算出された距離分布のユークリッド距離Dd、角度分布のユークリッド距離Daを示している。図19に示すように、球体aと球体bのユークリッド距離Dd、Daはともに“0.000000”である。ポリゴンの数が変わっても両者は一致するものと判定される。図14(b)の上段の距離分布と図15(b)の上段の距離分布を比較すると、一見異なっているように見えるが、上記〔数式9〕に示したように、位置ずれ許容範囲Kを用いて、近傍の平均値として距離を求めているため、球体aと球体bのユークリッド距離Ddは“0.000000”となる。また、球体aと模擬拳銃cのユークリッド距離Ddは“1.727299”であり、ユークリッド距離Daは“5.300318”である。判定しきい値が0.5の場合、大きく超えることになる。これは、球体と模擬拳銃で形態が全く異なるためである。
また、模擬拳銃cと模擬拳銃dのユークリッド距離Dd、Daはともに“0.000000”である。これは、スケールとアングルが異なるだけで、実質的には同一のものであるためである。また、模擬拳銃cと模擬拳銃eのユークリッド距離Ddは“0.372824”であり、ユークリッド距離Daは“0.816411”である。判定しきい値が0.5の場合、距離については適合と判定されるが、角度については、不適合と判定されることになる。このように一方が不適合である場合、出力を規制すべきでない(出力適正)と判定されることになる。
図20、図21に、本実施形態に係る立体物造形用データ出力規制装置による度数分布の算出処理(ステップS100)により、医療臓器模型に対して算出された度数分布の例を示す。図20、図21のいずれにおいても、左側にポリゴンモデル、右側に度数分布を示している。度数分布は上段が距離分布(Distance)を示し、下段が角度分布(Angle)を示している。
<9.変形例等>
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
1、1a、11、11a・・・CPU(Central Processing Unit)
2、2a、12、12a・・・RAM(Random Access Memory)
3、3a、13、13a・・・記憶装置
4、4a、14、14a・・・キー入力I/F
5、5a、15、15a・・・データ入出力I/F
6、6a、16、16a・・・表示部
7・・・3Dプリンタ(立体物造形装置)
7a・・・データ処理部
7b・・・出力部
8、8a、18、18a・・・ネットワーク通信部
10・・・度数分布算出手段
30・・・度数分布照合手段
40、41・・・対象モデル記憶手段
50・・・規制モデルデータベース
60・・・対象モデル受信手段
70・・・出力適否データ送信手段
100、101・・・立体物造形用データ出力規制装置
102・・・規制モデル度数分布算出装置
201・・・出力制御用端末
202・・・処理サーバ

Claims (16)

  1. ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
    出力を規制すべきポリゴンモデルである規制モデルの特徴を表現した距離分布および角度分布が登録されたデータベースと、
    出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出結果に基づいて各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出する度数分布算出手段と、
    前記算出された距離分布、角度分布をそれぞれ、前記データベースに登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
    を備えることを特徴とする立体物造形用データ出力規制装置。
  2. 前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標に当該ポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるものであることを特徴とする請求項1に記載の立体物造形用データ出力規制装置。
  3. 前記度数分布算出手段は、前記基準点から各ポリゴンの平均座標へのベクトルを個別ベクトルとして求め、当該個別ベクトルの大きさを前記各ポリゴンまでの距離、前記個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を前記各ポリゴン固有の角度とすることにより、前記各ポリゴンまでの距離と前記ポリゴン固有の角度を算出することを特徴とする請求項1または請求項2に記載の立体物造形用データ出力規制装置。
  4. 前記度数分布算出手段は、前記距離分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする請求項3に記載の立体物造形用データ出力規制装置。
  5. 前記度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される1次元配列を準備し、角度0度から180度の範囲を前記所定数に均等分割した上で、前記各ポリゴン固有の角度に基づいて前記所定数のいずれかの要素に割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項3に記載の立体物造形用データ出力規制装置。
  6. 前記度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記個別ベクトルに対応するポリゴンの面積で重み付けするようにしていることを特徴とする請求項4または請求項5に記載の立体物造形用データ出力規制装置。
  7. 前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された距離分布および角度分布を前記データベースに登録されている前記距離分布および角度分布と照合するにあたり、
    前記距離分布同士のユークリッド距離、前記角度分布同士のユークリッド距離を算出し、算出された双方のユークリッド距離が所定の判定しきい値より小さい場合に、出力を規制すべきであると判定するようにしていることを特徴とする請求項1から請求項6のいずれか一項に記載の立体物造形用データ出力規制装置。
  8. 前記度数分布照合手段は、前記距離分布同士のユークリッド距離を算出するにあたり、
    近傍の複数の要素を平均化して再構成された所定数の要素を用いて前記距離分布同士のユークリッド距離を算出するようにしていることを特徴とする請求項7に記載の立体物造形用データ出力規制装置。
  9. 前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、
    前記ポリゴンが削減された対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする請求項1から請求項8のいずれか一項に記載の立体物造形用データ出力規制装置。
  10. 出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、
    前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする請求項1から請求項9のいずれか一項に記載の立体物造形用データ出力規制装置。
  11. 前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする請求項10に記載の立体物造形用データ出力規制装置。
  12. 前記規制モデルに対して、前記規制モデルの基準点から当該規制モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された各ポリゴンまでの距離の度数分布である距離分布を算出し、算出された各ポリゴン固有の角度の度数分布である角度分布を算出する規制モデル度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする請求項1から請求項11のいずれか一項に記載の立体物造形用データ出力規制装置。
  13. 前記対象モデルを、接続された立体物造形装置に出力する手段と、
    前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、
    を更に備えることを特徴とする請求項1から請求項12のいずれか一項に記載の立体物造形用データ出力規制装置。
  14. 出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
    前記出力制御用端末は、前記度数分布算出手段を有し、
    前記処理サーバは、
    前記データベースと、
    ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
    前記度数分布照合手段と、
    前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
    を有することを特徴とする請求項1から請求項13のいずれか一項に記載の立体物造形用データ出力規制装置。
  15. 請求項1から請求項14のいずれか一項に記載の立体物造形用データ出力規制装置と、
    前記立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
    を有することを特徴とする立体物造形システム。
  16. コンピュータを、請求項1から請求項14のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
JP2014226569A 2014-11-07 2014-11-07 立体物造形用データ出力規制装置 Active JP6409513B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014226569A JP6409513B2 (ja) 2014-11-07 2014-11-07 立体物造形用データ出力規制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014226569A JP6409513B2 (ja) 2014-11-07 2014-11-07 立体物造形用データ出力規制装置

Publications (2)

Publication Number Publication Date
JP2016091392A JP2016091392A (ja) 2016-05-23
JP6409513B2 true JP6409513B2 (ja) 2018-10-24

Family

ID=56019747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014226569A Active JP6409513B2 (ja) 2014-11-07 2014-11-07 立体物造形用データ出力規制装置

Country Status (1)

Country Link
JP (1) JP6409513B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7206705B2 (ja) * 2018-08-30 2023-01-18 富士フイルムビジネスイノベーション株式会社 三次元形状データの生成装置、三次元造形装置、及び三次元形状データの生成プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222428A (ja) * 1999-02-03 2000-08-11 Hitachi Ltd 3次元モデルの類似検索システム及び3次元モデルデータベース登録システム
JP4780459B2 (ja) * 2006-03-30 2011-09-28 学校法人東京電機大学 3次元物体モデル数値化方法及び3次元物体モデル数値化プログラム及びその記録媒体
US8494310B2 (en) * 2006-11-10 2013-07-23 National University Corporation Toyohashi University Of Technology Three-dimensional model search method, computer program, and three-dimensional model search system
CN103903297B (zh) * 2012-12-27 2016-12-28 同方威视技术股份有限公司 三维数据处理和识别方法

Also Published As

Publication number Publication date
JP2016091392A (ja) 2016-05-23

Similar Documents

Publication Publication Date Title
US11665317B2 (en) Interacting with real-world items and corresponding databases through a virtual twin reality
US11443484B2 (en) Reinforced differentiable attribute for 3D face reconstruction
US10062354B2 (en) System and methods for creating virtual environments
JP6318701B2 (ja) 立体物造形用データ出力規制装置
JP6409513B2 (ja) 立体物造形用データ出力規制装置
JP6557988B2 (ja) 立体物造形用データ出力規制装置
JP6375768B2 (ja) 立体物造形用データ出力規制装置
JP6451932B2 (ja) 立体物造形用データ出力規制装置
JP6540238B2 (ja) 立体物造形用データ出力規制装置
JP2019018446A (ja) 立体物造形用データ出力規制装置
JP2016124241A (ja) 立体物造形用データ出力規制装置
JP2016215598A (ja) 立体物造形用データ出力規制装置
JP2016224887A (ja) 立体物造形用データ出力規制装置
JP6369117B2 (ja) 立体物造形用データ出力規制装置
JP6638466B2 (ja) 立体物造形用データ出力規制装置
US11429662B2 (en) Material search system for visual, structural, and semantic search using machine learning
JP6369116B2 (ja) 立体物造形用データ出力規制装置
JP2018126939A (ja) 立体物造形用データ出力規制装置
JP6511959B2 (ja) 立体物造形用データ出力規制装置
JP2018075755A (ja) 立体物造形用データ出力規制装置
JP6638341B2 (ja) 立体物造形用データ出力規制装置
JP6613707B2 (ja) 立体物造形用データ出力規制装置
JP2016107471A (ja) 立体物造形用データ出力規制装置
JP2017041023A (ja) 立体物造形用データ出力規制装置
JP2017207900A (ja) 立体物造形用データ出力規制装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180910

R150 Certificate of patent or registration of utility model

Ref document number: 6409513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150