Gaussian Process Implicit Surface 的原理
Gaussian Process Implicit Surface下文简称(GPIS) 最早是由 Microsoft Research, Cambridge, UK 提出来的, 论文可见GPIS。这篇文章主要是介绍如何使用高斯来拟合surface 或者曲线。 从Implicit Surface 中的 implict 可以看出来,对于要处理的曲线或者曲面,我们不对他们进行参数化, 取而代之的是利用 一些限制条件来定义曲面的集合。 我们可以从数学角度进行描述
S
0
=
{
x
∈
R
d
∣
f
(
x
)
=
0
}
(
1
)
\mathrm{S}_0=\{x\in R^d| f(x)=0\} \, (1)
S0={x∈Rd∣f(x)=0}(1)
我们可以看出,所有满足函数
f
(
x
)
=
0
f(x)=0
f(x)=0 的点都落在我们的曲面或者曲线上。 从这个表达式我们至少有以下几个问题需要回答
- f ( x ) f(x) f(x)这个函数如何表示?
- 我们如何找到 满足方程 (1) 的点的集合
- 我们如何保证找到的点是误差最小
针对以上三个问题,Microsoft Research 提出了用Gaussian Process 来处理。正如刚才提出的 implicit surface 是一个隐式的表达形式,也就说任何满足限制条件的都可以成为 f ( x ) f(x) f(x)的表示形式。GP 被广泛的应用到数据拟合的工作中,因而可以作为 f ( x ) f(x) f(x)的数学表达。高斯拟合有一个非常重要的组成部分就是对于kernel function 的选择。现存有很多不同的kernel function,GPIS 这篇文章提出了一个新的convariance function 就是 thin plate spline covariance。 根据维基百科的解释
Thin plate splines (TPS) are a spline-based technique for data interpolation and smoothing.
TPS has been widely used as the non-rigid transformation model in image alignment and shape matching
TPS 很多的集合特性:
- 它可以用来描述光滑的曲面,并且满足无限可导
- 不需要人工调参
- 它具有用于变形和参数估计的封闭式解决方案
- 它的能量方程是可以得到物理的解释
基于这几个特性,GPIS 文章得出结论 发现 thin plate splineregularizer (TPS 调节器) 可以利用他的能量方程 从而得到一个光滑的 的函数
E
(
f
)
=
∫
Ω
(
▽
T
▽
f
(
x
)
)
2
d
x
E(f)=\int_\Omega(\bigtriangledown^T \bigtriangledown f(x) )^2 dx
E(f)=∫Ω(▽T▽f(x))2dx
其中
Ω
\Omega
Ω 是 感兴趣的区域。 根据文章给出的结论,我们可以得出在3D 情况下 kernel function 可以描述成
k
i
j
=
2
r
i
j
3
−
3
C
r
i
j
2
+
C
3
k_{ij}=2r_{ij}^3-3Cr_{ij}^2+C^3
kij=2rij3−3Crij2+C3
其中
r
r
r 是两点之间的距离,
C
C
C 是这个集合中距离的最大值
C
=
max
r
i
j
C=\max r_{ij}
C=maxrij.
所以我们可以根据高斯算法得出,GPIS 是把问题变成一个经典的高斯回归问题, 我们可以把
f
(
x
)
∼
N
(
0
,
K
(
X
,
X
)
+
σ
T
I
σ
)
f(x) \sim N(0, K(\mathcal{X},\mathcal{X})+\sigma^TI\sigma)
f(x)∼N(0,K(X,X)+σTIσ)
其中
K
(
X
,
X
)
+
σ
T
I
σ
)
K(\mathcal{X},\mathcal{X})+\sigma^TI\sigma)
K(X,X)+σTIσ) 就是协方差矩阵(covariance matrix) 由
k
i
j
k_{ij}
kij 组成。 所以我们对于已知已经落在曲面上的点可以训练出一个高斯模型
α
=
[
K
(
X
,
X
)
+
σ
T
I
σ
)
]
−
1
y
\alpha=[K(\mathcal{X},\mathcal{X})+\sigma^TI\sigma)] ^{-1}y
α=[K(X,X)+σTIσ)]−1y
现在就出现一个问题,根据implicit surface 我们知道y 是所有落在曲面上的点对应的值,并且是0。 可是这样我们就会出现一个问题,因为
α
\alpha
α 就会一直是0 ,为了解决这个问题,GPIS 引入了 Signed distance function(SDF) 的概念, 简而言之就是重新定义两个集合 叫做outlier
X
1
\mathcal{X}_1
X1 和 inliner
X
−
1
\mathcal{X}_{-1}
X−1 的集合. outlier 就是点落在曲面外,inliner 可以简单的认为落在曲面以内(当然这种说法不够准确),更准确的描述是说,现在你有一个传感器, 传感器可以区分检测到点在物体表面还是离物体还有一些距离(outlier),以及点落在传感器检测不到的地方(inliner)。
我们定义
y
=
{
0
,
if
x
∈
X
0
1
,
if
x
∈
X
1
−
1
,
if
x
∈
X
−
1
y=\begin{cases} 0,& \text{if } x \in \mathcal{X}_0 \\ 1,& \text{if } x \in \mathcal{X}_1 \\ -1,& \text{if } x \in \mathcal{X}_{-1} \end{cases}
y=⎩⎪⎨⎪⎧0,1,−1,if x∈X0if x∈X1if x∈X−1
所以用于训练的最终集合就是由三个部分组成
X
=
{
X
0
∪
X
1
∪
X
−
1
}
\mathcal{X}=\{\mathcal{X}_{0} \cup \mathcal{X}_{1} \cup \mathcal{X}_{-1} \}
X={X0∪X1∪X−1}. 现在如果我们需要预测一个新点是否落在曲面上,我们就可以利用高斯的预测方程来解决,方程如下
y
⋆
=
k
X
,
x
⋆
T
α
y_{\star}=k_{\mathcal{X},x_{\star}}^T\alpha
y⋆=kX,x⋆Tα
所以如果
y
⋆
≈
0
y_{\star} \approx 0
y⋆≈0, 我们就可以认为
x
⋆
x_{\star}
x⋆ 也是落在曲面上,如果
y
⋆
≈
1
y_{\star} \approx 1
y⋆≈1,我们就可以认为
x
⋆
x_{\star}
x⋆ 是曲面之外,如果
y
⋆
≈
−
1
y_{\star} \approx -1
y⋆≈−1,我们就可以认为
x
⋆
x_{\star}
x⋆ 是曲面之内。
对于每个预测值,我们也可以获取它的covariance 值 用来检测它的 不确定性
V
=
k
(
x
⋆
,
x
⋆
)
−
k
X
,
x
⋆
T
α
k
X
,
x
⋆
V=k(x_{\star},x_{\star})-k_{\mathcal{X},x_{\star}}^T\alpha k_{\mathcal{X},x_{\star}}
V=k(x⋆,x⋆)−kX,x⋆TαkX,x⋆