点群やメッシュデータから3Dデータにしたい
点群データとは?
「点群 (point cloud)」 は、その名の通り、点の群(集まり)を表す言葉ですが、数学的な概念としての点群と、コンピュータにおけるデータ形式としての点群の、大きく分けて2通りの意味合いがあります。このページでは、「点群」 という言葉は、後者のデータ形式としての 「点群」 を表すとします。
点群は、一般的に3次元レーザースキャナーなどを利用して、物体表面を計測することで得られます。点群データは、座標値と色情報から成り立ちます。点群データは、部品のリバースエンジニアリング(現物を3Dモデルとしてデジタル化する手法)や品質管理、建物や地形のCAD・BIMデータ化・デジタルアーカイブ、映像・コンピュータグラフィクスのコンテンツ製作のためなどに利用されています。
点群データをCADデータに変換
3Dスキャンの場合、ひとつひとつの寸法を計測せずに、物体の3次元形状データを得られるため、現物の3Dモデル作成の効率化が期待できますが、スキャンしたデータはあくまで個々の点の集合であるため、そのままCADデータとして編集ができる訳ではありません。点群としてスキャンして得た3次元データを3Dモデルとして編集するには、点群データを 「面」 のデータへ変換する必要があります。
面のデータには、点群の各点を三角形や四角形でつないでいくメッシュデータ(ポリゴンデータ)や、数学的表現で曲面を表現するサーフェスデータ(ジオメトリデータ)があります。ここでは例として、次のような点群を考えてみます。
メッシュデータ(ポリゴンデータ)に変換
上記の点群を、メッシュにデータ変換した例が以下の画像です。メッシュデータは、点群のそれぞれの点を 「頂点」 とし、それらを 「辺」 と 「面」 で接続した形状データを表します。単に点を線で結んだ形状であるため、頂点の数を増やしたり、スムージング処理などをしない限り、カクカクとした形状となります。ただし、頂点数や辺などの要素数が増えるほどデータ容量も増大します。
メッシュ形式のデータは、コンピュータグラフィックス(CG)や数値解析の分野で一般的に用いられます。また、3Dプリンタで出力する場合も、メッシュ形式の3Dデータを用います。
変換手法としては、ドロネー三角形分割などの手法が用いられます。実際には、ノイズの除去やデータ不足箇所の補完、スムージングなどの処理も必要になるため、用途に合わせたスキャン方法や点群処理・変換ソフトを用いると良いでしょう。変換ソフトには、さまざまなものが存在しますが、汎用的なものとしては、CloudCompareやMeshLabが有名です。あるいは、3Dスキャナに変換ソフトが付属されている場合はそれを利用するのも一般的です。
サーフェスデータ(ジオメトリデータ)に変換
先の点群を、サーフェスにデータ変換した例が以下の画像です。サーフェスデータは、点と線の集まりであるメッシュデータとは異なり、数学的・幾何学的な表現方法により曲面を表したものです。寸法や精度が重要となるCADでは、主にこのジオメトリデータにより形状を定義します。
この例は、1枚のサーフェスなので比較的変換は簡単ですが、実際の機械部品や建築物は、さまざまな形状の面が組み合わされて構成されます。無数の点の集合である点群から、どの部分が角で、どの部分が面かを自動で判断することは容易ではないため、点群データやメッシュデータを、サーフェスデータに変換することは一般的には困難です。自動変換ツールも開発されつつあるようですが、どんな形状でも精度良く変換できるのはまだ先になるでしょう。
実用的には、点群あるいはメッシュデータを部品別・部分別に分け、それぞれをトレースするなり、各種ツールでサーフェス化するなどの処理を行います。
点群データをモデリングに活用した例
点群の形状をそのまま3Dモデル化する方法ではありませんが、こちらの動画は、実際の足を3Dスキャナで計測し、そのデータをもとにシューズの形状をモデリングした例です。
3Dスキャンからモデリングまでの具体的な流れは、次のようになります。
・3Dスキャナで、レーザー光を照射し、その反射光から位置情報(点群)を取得
・スキャンと同時に、表面のテクスチャ画像を撮影
・付属ソフトを利用して、点群をメッシュデータ(ポリゴン)に変換し、ポリゴンに撮影したテクスチャを適用
・変換したメッシュデータをトレースし、参考にしながら形状をシミュレーション
人間や生物などの有機的な形状は、曲面や複雑な形状が含まれるため、3Dスキャナでの直接計測が大変有効です。また、古い等の理由で図面の存在しない機器や建造物などの計測や品質の検査にも応用できるため、今後さらにさまざまな分野での活用が期待されます。