不都合な計測データ形状の修正
By K.Yoshimi
はじめに
近年、医療用や工業用のCTなどで計測された形状を使用して、CAEの解析を行う機会が増えて参りました。
一般に、CTなどで取得された形状は、3次元画像データからマーチングキューブス法などを用いて抽出された 三角形からなるポリゴンデータで表現されます。
しかし、これらのポリゴンデータは、測定の精度などにより、不適切な箇所を有することが多々あります。
例えば、3次元画像のピクセル幅より短い距離にある形状間はつながっているべきではないのに、 下図のようにつながってしまうことがあります。
この記事では、このように予期せずつながってしまった血管や繊維のような円筒形状を分離することを試みます。
曲面論における双曲点
この不都合にもつながった箇所を見ますと、曲面論などでよく見る双曲点の近傍の形状に似ていないでしょうか? (下図の右上)
ここで
📌 曲面論におけるガウス曲率(あるいは主曲率)$K$を用いた点の分類:
・楕円点:$K>0$の点
・放物点:$K=0$の点
・双曲点:$K<0$の点
と定義される。
に注意すると、もし、双曲点の領域を識別できれば、それを取り除くこともできるでしょう。
ガウス曲率と平均曲率
それでは、三角形からなるポリゴンデータのガウス曲率を求めるにはどうしたらよいでしょうか?
今は、オープンソースのParaViewなどの便利なツールが使えます。
ここでは、ParaViewのCurvatureフィルターを使用して、先ほどのつながった円柱形状のGauss曲率を描画してみましょう。
ガウス曲率が負の領域を紫色で描画しましたが、不都合につながった領域を判別することはできませんでした (原因は不明です)。
ここで、まだあきらめる必要はありません。ParaViewには、平均曲率$H$を計算するオプションもあります。
では、平均曲率の場合も負の領域を紫色で描画することを試してみます。
今度はいい感じに、不都合につながった領域をうまく識別することができました。
負の平均曲率の領域の削除
さらに、ParaViewのThresholdフィルターを使用しますと、下図のように、 負の平均曲率の領域を削除することができます。
形状に空いた穴を埋める
しかし、領域を削除したので、穴が空いてしまいました。
形状に空いた穴を埋めるツールとして、Ansys SpaceClaimなど たくさんあります。
ここでは、2014年にGeometry Processing Award Programsの賞を受賞した Marco Attene氏のMeshFixがなかなか優秀ですので、 こちらを使ってみましょう。
結果は下図のようになり、周囲の曲率を考慮して穴をうまく埋めてくれました。
以上で、不都合につながった形状を分離することに成功しました。
おわりに
実際の計測データでは、このようにつながってしまった形状が、1つのデータに多数含まれる場合がありますので、 以上の処理をプログラミングしておくと自動化でき、生産効率を上げることができるでしょう。
また、計測対象が円筒形状やチューブ形状を仮定できるのであれば、各形状の中心線を抽出してから円筒やチューブ形状で 近似してしまうのも良いかもしれません。(下図参照)