本文主要是介绍三维网格去噪算法(L0范数最小化,包含二维图像去噪),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考文章(技术来源):Mesh denoising via L0 minimization
上面参考文章提出了一种基于L0范数最小化的三角网格去噪算法。该思想由二维图像平滑引申而来,所以先从基于L0范数最小化的二维图像平滑的原理入手,来一步步讲解。
一. 基于L0范数最小化的二维图像平滑
1. 目的
(1) 去噪后得到的输出(out)图像尽可能接近原图(不要损失边缘,纹理等细节信息);
(2) 图像平滑(去噪)。
2. 针对1的分析
(1) 衡量out图与原图的误差函数:
目标:最小化误差函数 —— minc|c−c∗|2 m i n c | c − c ∗ | 2
(2) 图像平滑
引入L0范数 —— 可理解为“集合的非零个数”
|▽c|0 | ▽ c | 0 :越大,图像细节纹理越清晰;越小,细节纹理越模糊。
目标: minc|▽c|0 m i n c | ▽ c | 0 —— 使 |▽c|0 | ▽ c | 0 尽量小,可实现图像平滑
注意:(1)与(2)是对立关系。
3. 本问题的目标函数
结合2中的(1)和(2),形成了本问题的目标函数:
minc|c−c∗|2+|▽c|0 m i n c | c − c ∗ | 2 + | ▽ c | 0
即最小化 |c−c∗|2+|▽c|0 | c − c ∗ | 2 + | ▽ c | 0
4. 引入正则化参数 λ λ
目标函数中,(1)(2)两部分是对立的, |c−c∗|2 | c − c ∗ | 2 小(out图接近原图),则 |▽c|0 | ▽ c | 0 大。那么,如何找到最优解实现 minc|c−c∗|2+|▽c|0 m i n c | c − c ∗ | 2 + | ▽ c | 0 ?
我们来引入正则化参数(常量) λ λ 来平衡(1)(2)两部分的比重,目标函数:
minc|c−c∗|2+λ|▽c|0 m i n c | c − c ∗ | 2 + λ | ▽ c | 0
- λ λ 大,则(2)最小化比重大,应尽量使 |▽c|0 | ▽ c | 0 最小化;
- λ λ 小,则(1)最小化比重大,应尽量使 |c−c∗|2 | c − c ∗ | 2 最小化;
- 所以 λ λ 能控制out图像的平滑程度。
5. 引入辅助变量 δ δ
4中的目标函数存在无法凸优化问题,引入辅助变量 δ δ ,目标函数:
minc,δ|c−c∗|2+β|▽c−δ|2+λ|δ|0 m i n c , δ | c − c ∗ | 2 + β | ▽ c − δ | 2 + λ | δ | 0
我想,引入(2)的目的是因为:我们要找目标函数的最优解,而L0范数( λ|▽c|0 λ | ▽ c | 0 )不可导,使得全局最优问题成为一个NP(非确定性,数学难题)难问题。所以这里使用变量分裂法,分裂出(2)这个二次函数(因为二次函数都可以求导,得到其最小值)。
6. 开始优化
- 第1步:固定c优化 δ δ ,即: minδβ|▽c−δ|2+λ|δ|0 m i n δ β | ▽ c − δ | 2 + λ | δ | 0
第2步:固定 δ δ 优化c,即: minc|c−c∗|2+β|▽c−δ|2 m i n c | c − c ∗ | 2 + β | ▽ c − δ | 2
循环迭代以上两步,每次迭代中 β β 乘以2(使(2)占得比重大,使得最终 ▽c≈δ ▽ c ≈ δ )。
二. 将以上思想应用于三角网格去噪
1. 目标函数
minp,δ|p−p∗|2+β| D(p)−δ|2+λ|δ|0 m i n p , δ | p − p ∗ | 2 + β | D ( p ) − δ | 2 + λ | δ | 0
分析:
关于D(e):
但是当有角度接近0时,微分算子的权重会变成inf,因此文章又提出了一种优化后的微分算子表达式:
微分算子D(e)中的符号说明:
2. 引入正则化项R(p)
对于非均匀噪声网络,应用1中的目标函数模型得到结果:
所以在优化过程又加入了一个正则化项: R(p)=(p1−p2+p3−p4)2 R ( p ) = ( p 1 − p 2 + p 3 − p 4 ) 2
于是目标函数变为: minp,δ|p−p∗|2+α|R(p)|2+β| D(p)−δ|2+λ|δ|0 m i n p , δ | p − p ∗ | 2 + α | R ( p ) | 2 + β | D ( p ) − δ | 2 + λ | δ | 0
3. 优化过程仍分为两步
第1步:固定p优化 δ δ ,即: minδβ|D(p)−δ|2+λ|δ|0 m i n δ β | D ( p ) − δ | 2 + λ | δ | 0
有一个限定条件:$\sqrt{\frac{\lambda }{\beta }}>D_{i},\delta
- 第2步:固定 δ δ 优化p,即: minp|p−p∗|2+α|R(p)|2+β|D(p)−δ|2 m i n p | p − p ∗ | 2 + α | R ( p ) | 2 + β | D ( p ) − δ | 2
相当于求解稀疏矩阵方程组 然后循环迭代上述2个步骤直到达到预定条件。
开始 β=10−3 β = 10 − 3 ,每次 β→μβ β → μ β , μ μ 越大棱角越分明,直到 β≥103 β ≥ 10 3
α→12α α → 1 2 α
这篇关于三维网格去噪算法(L0范数最小化,包含二维图像去噪)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!