156、空间降噪技术详解:双边滤波、非局部均值与BM3D在ISP中的落地优化
156、空间降噪技术详解:双边滤波、非局部均值与BM3D在ISP中的落地优化去年在调试某款旗舰手机主摄时,遇到一个让人头疼的问题:夜景模式下,暗部区域出现明显的“油画感”涂抹,而亮部细节却保留得不错。客户反馈说“噪点没了,但皮肤纹理像塑料”。这就是典型的空间降噪参数没调好——降噪强度过大,细节被当成噪声干掉了。今天聊聊ISP pipeline里最常用的三种空间降噪算法:双边滤波、非局部均值(NLM)和BM3D。别被这些名字吓到,它们在硬件里跑起来,各有各的脾气。双边滤波:最朴素的边缘保护者双边滤波的原理很简单:在传统高斯滤波的基础上,加了一个像素值差异的权重。高斯滤波只考虑空间距离,双边滤波还考虑像素值差异——如果两个像素亮度差太大,就算挨着也不参与平均。实际落地时最容易踩的坑:参数σ_s(空间标准差)和σ_r(值域标准差)的配合。很多新手把σ_r设得太大,结果边缘保护失效,跟普通高斯滤波没区别。我习惯的做法是:先固定σ_s为图像尺寸的1/100,然后从0.1开始逐步增大σ_r,观察边缘处的“光晕”现象——出现光晕就说明σ_r过大了。代码里这样写(别直接复制,要根据平台调整):// 双边滤波实现,注意这里用整型运算避免浮点// 踩坑:sigma_r不能直接用像素值,要归一化到[0,1]