图像去噪.docx
- 文档编号:30751473
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:9
- 大小:1.54MB
图像去噪.docx
《图像去噪.docx》由会员分享,可在线阅读,更多相关《图像去噪.docx(9页珍藏版)》请在冰豆网上搜索。
图像去噪
图像去噪
AlexanderKharlamov
akharlamov@
VictorPodlozhnyuk
vpodlozhnyuk@
版本
日期
负责人
更新原因
0.9
2007/4/16
akharlamov
初始版
1.0
2007/5/16
vpodlozhnyuk
剪辑模块
摘要
图像处理算法应该是图像处理的老问题。
许多处理方式,不管成果如何,其基本的思想都是——通过图像的模糊化去除噪声。
可以局部地模糊,就像高斯平滑滤波或通过可变的微积分的各向异性过滤、或者在频率域,如韦纳滤波。
但是一个普遍的“最好的”方式还没有发现。
写作缘由
白噪声是图像处理最常见的问题之一。
即使是高分辨率的照片,必然有它的一些噪音。
对于高解析度照片一简单的盒子模糊可能就足够了,因为即使是像睫毛或布纹理的一些微小特征也是由一大批的像素表示的。
不幸的是,这种情况不适合于视频。
视频中的实时降噪仍然是许多研究的主题。
然而,目前的DirectX10级的硬件使我们能够实现高品质的过滤器,以可接受的帧速率运行。
从GeForce8系列显卡开始,我们也可以受益于使用CUDA-一个通用的GPU编程系统。
如共享内存和把线程控制灵活结合在一起同步点等特征使我们能够大大加快算法。
工作方式
任何近邻过滤器的主要思想是根据像素的颜色的相似程度计算像素的权重。
我们描述了两个这样的方法:
K和非局部均值过滤器
K近邻滤波方法
K的最新滤波方法的目的是减少白噪声和设计一个比高斯滤波更复杂的方法。
设u(x)是原噪声图像,KNNh,钌(x)是由K近邻制作滤波器参数h,结果河设Ω(p)是某周围的像素大小的空间邻域页我们会认为这是一个像素大小nxn的,其中N=2米+1块-使P是Ω(P)的中心像素。
然后通过
恢复图像正常系数。
图1原图有噪声的图KNN恢复后
非本地均值滤波器
非本地手段过滤器是一种更为复杂的过滤器的K近邻的变化。
使用相同的符号为K近邻,让
恢复图像,设B(Q)是某周围的邻居问:
像素大小的空间我们会认为这是一个大小为K*K,像素块其中K=2L+1-这样的Q是B(Q)的中心像素。
然后
其中C(x)为系数正常化,并且
其中S(B)是B的面积。
这样,ColorDistance(B(X),B(Y))
显示像素块u(x)和u(y)之间的绝对差的总和。
图2原图噪声图NLM还原的图
注:
NLM也可修复一些原图中的瑕疵(图4)
图3原图NLM修复过的图
加快NLM
然而,KNN算法在实时运行(500〜8800GTX的fps)的NLM是慢得多。
主要原因是大量的纹理获取该:
●对每一个N2区域内的像素的权重都需要这样计算(N=M+1,M=窗口半径)
●为了计算每个额外的K2区域内的像素权重需要计算(K=2L+1,L=区域半径)完成纹理获取计算ColorDistance()函数。
基本上是一个为O(n2*K2的)人数提取等做不仅降低这一数字将提高性能。
建议的解决方案是假设在每块重量并没有改变。
因此,我们中心像素的权重计算只用卷积这些权重系数。
这样提取的纹理数量减少到O(K2的)。
考虑到为N=7的最共同的价值观使我们少49倍纹理提取。
假设在一个块重量均匀是相当正确的。
最顺利的地区得到恢复,没有从原来的NLM的视觉差异。
然而,随着边缘地区可以修复文物。
原始NLM图像快速NLM图像
图5NLM与快速NLM方法之间的不同
快速的NLM可用于与KNN相结合。
其结果将比单独的一种方法更为精确,并且速度仍然高于传统的NLM。
参数选择
总是有选择的KNN和NLM的最佳参数的问题。
显而易见的,以前的方程周围像素的权重依赖于以下参数:
⏹r—可以被认为是传统的高斯模糊系数。
如果当时的KNN转换成高斯模糊。
正如高斯模糊r应等于N。
⏹h—是更棘手的选择。
事实上,最好的办法是选择h,而使其作为图像的质量评价中定义的用户是非常主观。
⏹在Ω的大小取决于图像的大小,但是良好的视觉效果与通常采用5x5或7x7像素块实现。
我们已经选择了我们的CUDA实施7x7。
⏹NLM有一个额外的参数——B的大小,我们选择了我们的CUDA技术实现7x7。
⏹快速NLM有一个额外的参数——共享的像素权重块。
此参数是加快NLM的关键。
我们选择了其中的共享权的8X8像素块。
这种方法增加了将近18倍的性能,但引入了一些小的工件。
实施细则
这两种方法都可以很容易地实现基于CUDA。
噪声图片加载,纹理和过滤器是在一个CUDA内核执行。
修复后的图像渲染成一个PBO。
快速NLM(NLM2)使用共享内存来预先计算像素的权重。
每个线程共享阵列计算成一个单一的重量并保存起来。
毕竟线程同步,它们使用相同的权重,以块内的像素平均。
举例
KNN算法具有以下可以由用户修改参数:
⏹噪声强度相当于方程KNNh,ru(x)和NLMh,r,Bu(x)中的h。
⏹高斯西格玛是一个传统的高斯模糊系数。
它相当于方程KNNh,ru(x)和NLMh,r,Bu(x)中的r。
⏹Lerp系数,重量阈值和计数器阈值被用在简单的修改:
后一个像素重量计算,它可以比较KNN_WEIGHT_THRESHOLD。
对那些比KNN_WEIGHT_THRESHOLD重量的比例是积累到fCount变量。
对于KNN_WEIGHT_THRESHOLD工作范围是(0.66f,0.95f)。
一旦所有的权重被计算,并恢复像素被计算,我们之间的融合和恢复原来的像素。
共混商lerpC,有工作范围[0.00,0.33]。
一个简单的检查确定该块是“顺利”:
如果fCount超过KNN_LERP_THRESHOLD(有66%的典型值),块被认为是不够顺畅,所以过滤像素值应该有比原来的输出(嘈杂更多的重量)输入像素值。
否则,推定为包含块的边缘或小的特点,为了让更多的重量在输出到原来的输入像素值和保留重要的视觉图像属性,lerpC是恢复。
floatlerpQ=(fCount>KNN_LERP_THRESHOLD)?
lerpC:
1.0f-lerpC;
clr.x=lerpf(clr.x,clr00.x,lerpQ);
clr.y=lerpf(clr.y,clr00.y,lerpQ);
clr.z=lerpf(clr.z,clr00.z,lerpQ);
⏹窗口半径的大小决定了Ω。
如果Ω是一个大小为nxn的,其中N=2M+1,则M=窗口半径像素块。
NLM还有额外的参量:
⏹模糊区域半径决定了B的大小。
如果B是大小KxK,其中K+1=2L则L=块半径像素块。
工作状况
一般来说,通过GPU图像滤波远远快于CPU,KNN和NLM都不例外。
以抽样320×408的GeForce所有三个修改实时运行的8800GTX图像:
⏹KNN:
500fps
⏹NLM:
26fps;由于增加纹理拾取压力远低于KNN。
⏹快速NLM(NLM2):
470fps,差不多和KNN一样快。
所有的计算复杂性的增加三个修改图像的大小成正比。
图6图像中的噪声
图7修复图像
参考资料
[1]A.Buades,B.Coll,andJ.Morel.“NeighborhoodFiltersandPDE’s”.TechnicalReport2005-
04,CMLA,2005.
[2]L.Yaroslavsky.“DigitalPictureProcessing-AnIntroduction”.SpringerVerlag,1985.
通告
所有显示芯片生产商设计规范,参考板,文件,图纸,诊断,列表和其他文件(合算与分,“材料”)正在提供“原样。
”NVIDIA公司不做任何担保,明示,暗示,法定或以其他方式对于材料,并明确否认针对特定用途的非侵权,适销性和适用性的暗示保证。
提供的资料被认为是准确和可靠。
不过,NVIDIA公司不承担任何该等信息或任何第三方的专利或可能导致的其他权利的侵害其使用的后果负责。
没有获发牌照以暗示或其他方式对NVIDIA公司的任何专利或专利的权利。
本出版物中提到的规格如有变更,恕不另行通知。
本出版物取代和代替所有信息的
商标
NVIDIA,NVIDIA徽标的GeForce,NVIDIA公司的Quadro和NVIDIACUDA技术是NVIDIA公司的商标或注册商标在美国和其他国家。
其他公司和产品名称可能是与他们各自相关公司的商标。
版权
©2007NVIDIACorporation.Allrightsreserved.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像