网格去噪

什么是网格光顺

今天开始一个很重要的话题叫网格去噪。在实际的应用中,我们的数据往往是通过扫描仪或者重建算法得到的,由于设备的误差或者算法的计算误差,往往数据上会带有一些小细节,这些细节往往不是顶点的实际位置,而是经过了一些扰动,这些扰动我们称为噪声,如图1所示。

图1. 含噪声的网格

那么给定图2中左边的含噪声的网格,我们可以通过Denoising把噪声去掉得到右边的网格。Denoising的叫法很多,例如smoothing、filtering、improvement、fairing等。

图2. 噪声网格Smoothing

去噪并不陌生,在图像处理中很常用,图像上的去噪是针对二维图像,而此时我们需要的去噪是针对二维流形,道理都是一样的,本质都是对数据进行操作,只不过数据是二维像素还是流形上的顶点坐标,只不过信号的表现形式复杂一点,编程的数据结构复杂一点。相关的方法其实都是一样的,图像领域有大量的去噪方法,其实都可以迁移到网格曲面的去噪上来。

图3. 图像处理中的去噪

什么是噪声

那么什么是噪声呢?实际上没有一个非常严格的定义,我们无法确定一个量来准确的描述什么是噪声,只能通过一些经验性的描述,例如高频区域,小的凸起,高曲率部分等,这些方法都不严格,因为我们无法具体量化所谓的“高”。例如噪声的曲率会很高,但是例如方形的顶点处曲率也很高,而这里的顶点我们是想保留的,所以噪声和特征我们往往难以区分。这就有一个问题,即过度去噪往往会把模型的特征抹平了,这样的结果就不是我们想要的,因为它破坏了模型的特征,因此如何在保持特征的前提下去噪是比较难的问题,可以说noise和feature是鸡生蛋、蛋生鸡的问题,对于一些CAD机械零件模型,在去噪的时候难以避免地就会把边角特征给抹平。

图4. 什么是噪声

图5是wiki上对去噪问题的描述,它的意思是说,给定一个含噪声的数据集,去找一个逼近函数,在保持重要特征的前提下去除噪声。然而这里的“important patterns”也是个很含糊的描述,这也是机器学习领域很头疼的问题。

图5. 去噪的描述

噪声的数学模型

如果我们把这个问题变成数学模型,我们的输入是含噪声的网格曲面M,输出是无噪声的网格曲面M^0,去噪模型即为
M = M^0 + \epsilon
这样的问题叫“ill-posed”问题,因为我们不知道M^0\epsilon

图6. 去噪问题的数学模型

在业界有一些方法来解,我们先假定网格顶点的数据及连接关系不变,那么问题简化为求得顶点的新位置,使得噪声减少,这是因为噪声是由顶点扰动造成的,因此我们可以通过扰动或偏移、求得新的位置来实现去噪。那么问题在于,我们的顶点应该沿着哪个方向偏移?这样问题简化后,我们得到了如图7所示的简化模型。

图7. 去噪问题的简化模型

这时候很多人就想到,如果噪声扰动的方向是法向就好了,即沿着曲面的法向去扰动能让问题变得相对简单一些。但是光滑曲面网格的v^0不知道,因此我们仍然不知道法向,我们只能从原网格顶点v的法向来做,这至少让问题变得可解,在原定点不断地迭代优化,它的法向会越来越逼近光滑曲面网格的法向,这就是我们前面说的迭代法生成极小曲面的思路。这样我们的新模型就变成了

v^0 = v-\epsilon n

图8. 去噪问题的进一步推导

那么\epsilon取多少呢?这个就只能依靠经验了。现在的新模型就是让顶点去沿着拉普拉斯算子的向量去移动。

滤波

关于光顺,我们还提到了一种方法叫滤波(filtering),这是在数学分析和微积分中的概念,里面有不少理论的东西可以讲,即两个函数x(t)h(t),它们两个的卷积变成一个新的函数g(t),它等于

g(t) = \int ^{\inf} _{-\inf} x(\tau)h(t-\tau)d\tau

图9上的图解释了它的几何意义,例如h(t)是一个高斯函数(一个权函数),要对x(t)上某一点x(i)作卷积,只需要把高斯函数h(t)对齐到x(i)上,然后将h(t)两侧的值与x(i)周围两侧的值对应相乘,高斯函数的权重是离顶点越远值就越小,这其实就是把x(i)周围的值进行加权,离x(i)越近的点权重越大,权由h(t)所提供,因此高斯函数就是一种滤波器。准确地说就是:利用一个函数作为权函数对另一个函数周围的点进行加权。卷积的意义就是把周边的值作平均处理,所以滤波的本质上就是在做光滑,不过它也会使特征损失,那么如何设计一个保持特征的滤波是关键。

图9. 滤波

一个滤波的例子:图10中间的图,点p的信号很高,通过加权后使周围的信号过渡光滑。

图10. 图像处理上的滤波

人们往往喜欢用高斯函数来作为权函数,因为高斯函数有很好的性质,首先它是概率密度函数,积分为1,另外这个函数具有对称性,且跟距离相关,距离越远,权重越小,距离越近,权重越大。

图11. 高斯滤波

我们刚才讲可以让顶点沿着法向去偏移,拉普拉斯向量是法向的一个很好的近似。在三维中,除了顶点可以滤波,法向也可以滤波,甚至包括曲率、颜色都可以作为滤波对象。值得注意的是,迭代步长的选取非常关键,有可能会造成过度光顺。

顶点滤波

拉普拉斯光滑

对于顶点去噪,我们最熟悉的就是拉普拉斯算子,我们在做极小曲面迭代法的每一步其实都是在做去噪,当噪声全部去掉,就是极小曲面了。

图12. 拉普拉斯光滑

拉普拉斯光滑的方法如图12、13所示,它其实等价于极小化某一点与它的1-邻域上各点的边长的平方和,这在数学上是有证明的。

图13. 拉普拉斯光滑

前面我们说拉普拉斯的关键是要找到一个\lambda,这样的问题叫做shrinkage problem,当网格的疏密程度不均时,在同一\lambda下,网格较疏的点收缩得很快,网格较密的点收缩得慢一些,这样的结果不是我们所希望的。

图14. Shrinkage problem

因此拉普拉斯光滑有了一些改进,例如Taubin'95提出的方法,在拉普拉斯收缩以后再扩张回去,扩张回去的时候用一个二阶拉普拉斯补回去一些。或者用双拉普拉斯,即一个四阶的拉普拉斯,即\Delta (\Delta f) = \Delta ^ 2 f

图15. 改进拉普拉斯

图16展示了三种拉普拉斯光滑的效果,中间的是一般的拉普拉斯算子,右图是Taubin的方法。

图16. 三种拉普拉斯光滑的效果

平均曲率滤波

第二个光滑的方法就是在公式中加一个平均曲率,这样使顶点沿着平均曲率流的方向收缩,即使用Cotangent权重。

图17. 平均曲率流

由于Cotangent权重跟几何相关,因此此时对不均匀网格做光顺时能够产生较好的效果。图19是几种光滑算法效果的比较。

图18. 平均曲率滤波
图19. 几种光滑算法的比较

双边滤波

下面介绍一种图像处理中能够保特征的方法,叫双边滤波(Bilateral filtering)。双边滤波是在对顶点周围的点进行卷积做加权平均后再做一个加权,即比较两个相邻值的差异,这个值越大则权重越小,即一个点周围的值如果与该点的值相差很大,则说明这个点可能是特征,例如图20中的蓝色和红色的两张面,对于蓝色面上一点,红色的点与它的值相差特别大,因此就不应该对该点造成很大的影响。这样就有了两次核函数加权,不仅距离有影响,而且值也有影响,值相差越大影响越小,这样就起到了保特征的作用。等式下面的除数只是为了归一化处理。可以看到经过这样的处理后(图21),能够很有效地保持特征去除噪声。当然我们也可以加入更多的考量,比如法向,再做一次滤波就变成了三边滤波(Trilateral filtering)

图20. 双边滤波方法
图21. 双边滤波方法

该方法同样也可以用于网格处理。我们用二维来演示,如图22,我们有一些点分布在曲线周围(含噪声),我们先关注图中的蓝色点的去噪,我们不知道理想的曲面在哪里,但是我们可以估计出蓝色点的信息。

图22. 网格中的双边滤波

我们一般会先算出这个点的法向的近似,这个法向估计通常是取这个点周围的数据,然后做一个最佳线性逼近,找出一个平面,这个平面的法向就作为这个点的法向近似,将其他所有点作到这个平面的投影,这个距离度量了切平面的远近,值越大的点对它的影响越小,具体做法还请参见文献。

图23. 网格中的双边滤波

这一方法会有两个参宿和,通过调参可以得到一个不错的效果,结果如图24,25。

图24. 双边滤波的参数与结果

图25. 双边滤波的结果

隐式网格滤波

这里介绍另外一种滤波方法,刚才是通过顶点找法向的方法,用周围的点做滤波,就可以得到新的偏移方向。我们也可以使用新的曲面的法向来作估计,我们可以得到图26中最下面的公式,依此来做迭代计算,这样的方法是隐式方法,通过求解稀疏线性方程组来得到结果,这就是我们上节课说的全局极小曲面的求解方法。


图26. 隐式网格滤波

法向滤波

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容