Support Vector Machines for 3D Shape Processing
SIGGRAPH 2012 に"Object-Space Multiphase Implicit Functions"
という複数材質の陰関数を求める論文がありました.
これはラベル付けされたvolumeを入力としていて,Octreeのノードなどの小領域一つに
SVMにより最適化した陰関数をあてはめます.
SVMで陰関数をfittingしてSurface Reconstructionをするというのが面白かったので,
おそらく陰関数のfittingを使ったSurface ReconstructionにSVMを初めて使ってであろう
”Support Vector Machines for 3D Shape Processing”という論文を読んでみました.
Eurographcis 2005年の論文です.
- Introduction
この論文以前は点群からの陰関数のフィティングにはparametricな方法が使われるのが一般的でした.
例えば点一つ一つにRBFを当てはめる手法や,Octreeのノードにcompact support な関数を当てはめる手法(MPU)等.
それを当時流行っていたKernel法を使ってnon-parametricに点群に陰関数を当てはめる
というのがこの論文の目的です.
さらに,この手法を使って,2つの陰関数に対して,surface上の点だけでなく周りの点のdeformation fieldを計算しています(要するにvolume間のマッピング).
- Algorithm
まずはsurfaceのモデル化です.kernel法を使うので,陰関数f(x)は3次元から任意のヒルベルト空間Hへの射影Φ(x)とヒルベルト空間のベクトルwとの内積で表すことができます.
曲面上の点はf(x)=0, 曲面内の点はf(x) < 0, 曲面外の点はf(x) > 0を満たすような関数fを求めたいわけです.
fを計算するにはヒルベルト空間での内積を計算する必要があるのですが,このΦと内積計算を組み合わせた関数k(x, y)を定義するこで計算量を抑えることができます.
この論文でもfをカーネル関数k(x, y)を用いて
このように定義しています.
あとは通常のSVMと同じようにwの正則化項とペナルティを最小化する目的関数とし,上の式のαを求めます.
次に3D deformation fieldの計算です.すでに2つの陰関数f1とf2がわかっているとし,この変換をτとおきます.このτもfと同じようにヒルベルト空間のベクトルwdと射影Φとの内積で表されます.
さらに2つの陰関数の特徴的な点(xi, zi)のcorrespondanceもわかっているとします.
すると目的関数はwのノルム最小化とcorrespondenceの誤差の最小化とτで変換後の関数値の誤差の最小化となります.
あとはMultiscale でやってDenoisingやHole fillingができるとか計算速度の話とかいろいろ書いてありました.
これは陰関数のfittingの話だけど,multi materialのsegmentationに使えないか考え中です.