问题
判定mesh上各点的“重要程度”,这里的重要程度,基本上是指在不同尺度(分辨率)下,几何特征的重要程度。
基本思想
在求解各点的平均曲率基础上,计算该点平均曲率在邻域内的显著性。类似于二维图像中金字塔的方法,建立三维模型的金字塔。
算法
假设我们已经计算得到了三维模型每个点上的平均曲率 C ( v ) \mathscr{C}(v) C(v),以高斯函数为权重(实际上就是一个带权的邻域,但通过全局计算,避免了对邻域直接求解),取 σ \sigma σ为高斯函数方差(或半径),按照下式计算其高斯滤波后的平均曲率 G ( C ( v ) , σ ) G(\mathscr{C}(v), \sigma) G(C(v),σ):
G ( C ( v ) , σ ) = ∑ x ∈ N ( v , 2 σ ) C ( x ) e − ∥ x − v ∥ 2 / ( 2 σ 2 ) ∑ x ∈ N ( v , 2 σ ) e − ∥ x − v ∥ 2 / ( 2 σ 2 ) G(\mathscr{C}(v), \sigma)=\frac{\sum_{x \in N(v, 2 \sigma)} \mathscr{C}(x) e^{-\|x-v\|^{2} / (2 \sigma^{2})}}{\sum_{x \in N(v, 2 \sigma)} e^{-\|x-v\|^{2} / (2 \sigma^{2})}} G(C(v),σ)=∑x∈N(v,2σ)e−∥x−v∥2/(2σ2)∑x∈N(v,2σ)C(x)e−∥x−v∥2/(2σ2)
通过对不同 σ \sigma σ的选取,事实上我们建立了三维模型的高斯金字塔。对于一个给定的 σ \sigma σ,重要程度 S ( v ) \mathscr{S}(v) S(v)计算方式如下:
S ( v ) = ∣ G ( C ( v ) , σ ) − G ( C ( v ) , 2 σ ) ∣ \mathscr{S}(v)=|G(\mathscr{C}(v), \sigma)-G(\mathscr{C}(v), 2 \sigma)| S(v)=∣G(C(v),σ)−G(C(v),2σ)∣
显然,这和二维图像中计算特征点的方式也非常类似。
如果我们选择了多个不同的 σ i \sigma_i σi,那么我们也可以得到不同的 S i \mathscr{S}_i Si。对于不同分辨率下的Saliency,我们通过加权求和得到最终的Saliency。加权的原则是,如果Saliency方差越大,权重越大,方差越小,权重越小。因此我们首先对 S i \mathscr{S}_i Si