1. 课程导论:RAW域与YUV域降噪概述

各位同学好,欢迎来到《RAW域与YUV域降噪算法实战指南》。我是你们这门课的主讲,一个在图像处理领域摸爬滚打了十几年的老兵。说实话,降噪这个话题,看起来简单,做起来坑特别多。我见过太多人拿着开源代码跑一跑,觉得效果不错,一上硬件平台就崩了。

这门课,我想带大家从底层原理走到工程落地。我们不只讲理论,更讲实战中那些书本上不会写的细节。嗯,先来看看第一章我们要聊什么。

1.1 为什么降噪要分RAW域和YUV域?

你可能会问:降噪不就是把噪声去掉吗?为什么还要分两个域?

我刚开始做ISP的时候也有这个疑问。后来在调试一个手机摄像头模组时,发现同样的降噪算法,放在RAW域和YUV域效果天差地别。说白了,这两个域的噪声特性完全不同。

  • RAW域:传感器直接输出的原始数据,线性响应,噪声与信号强度相关。这里做降噪,能保留更多细节,但计算量大。
  • YUV域:经过白平衡、去马赛克、Gamma校正等处理后的数据。噪声已经被非线性变换扭曲了,降噪难度更大,但更接近人眼感知。

我个人习惯把RAW域降噪叫做“源头治理”,YUV域降噪叫做“末端清理”。两者配合好了,才能出好效果。

核心观点:RAW域降噪保细节,YUV域降噪保观感。两者不是替代关系,是互补关系。

1.2 课程目标与学习路径

这门课的目标很明确:让你能独立设计并实现一套可落地的降噪方案。不是纸上谈兵,是真正能跑在嵌入式平台上的那种。

我把它拆成三个层次:

层次 目标 对应章节
基础层 理解噪声模型、降噪原理、ISP pipeline 第1-5章
算法层 掌握BM3D、NLM、小波降噪等经典算法 第6-15章
工程层 优化速度、内存、功耗,适配硬件平台 第16-30章

学习路径我建议这样走:先通读一遍基础层,理解噪声从哪来到哪去。然后算法层要动手跑代码,别只看。工程层是重头戏,我会分享很多踩坑经验。

我的建议:每章后面的练习题一定要做。代码不跑一遍,你永远不知道哪里会崩。我曾经带过一个实习生,理论说得头头是道,一跑代码就报段错误,就是因为没动手。

1.3 图像噪声模型与分类

降噪的第一步,是搞清楚你要降的是什么噪声。不是所有噪声都长一个样。

1.3.1 噪声从哪来?

图像传感器是个物理器件,有光就有电,有电就有热,有热就有噪声。主要来源有三个:

  • 光子散粒噪声:光子到达的随机性,服从泊松分布。信号越强,噪声越大。
  • 读出噪声:传感器读出电路引入的噪声,与信号无关,近似高斯分布。
  • 暗电流噪声:热激发产生的电子,温度越高越严重。

在RAW域,这些噪声是叠加在一起的。我习惯用一个简化模型来描述:

I_observed = I_true + sqrt(I_true) * N_shot + N_read + N_dark

其中N_shot是散粒噪声,N_read是读出噪声,N_dark是暗电流噪声。这个模型虽然简单,但足够指导大部分工程实践。

1.3.2 噪声分类

从信号处理的角度,噪声可以分为两类:

类型 特点 常见场景
高斯噪声 幅度服从正态分布,功率谱平坦 传感器读出噪声、热噪声
泊松噪声 与信号强度相关,低光下更明显 光子散粒噪声
椒盐噪声 随机出现黑白像素点 坏像素、传输错误
条纹噪声 行或列方向上的固定模式 CMOS传感器列噪声

实际图像中,往往是多种噪声混合在一起。比如夜景照片,既有散粒噪声又有读出噪声,还可能夹杂坏点。这时候单一算法就不够用了。

避坑指南:我曾经在项目中直接用高斯降噪算法处理RAW图,结果低光区域一片模糊。后来才发现,低光下散粒噪声占主导,高斯模型根本不适用。所以,先分析噪声类型,再选算法,这个顺序不能乱。

1.4 本章知识体系

下面这张图,是我自己梳理的本章知识结构。它把噪声来源、分类、降噪域的关系串在了一起。你保存下来,后面学算法时经常回来看看,能帮你理清思路。

第一章 知识体系:RAW域与YUV域降噪概述 噪声来源 光子散粒噪声 读出噪声 暗电流噪声 噪声分类 高斯噪声 泊松噪声 椒盐噪声 条纹噪声 降噪域选择 RAW域降噪 YUV域降噪 说明:噪声来源决定噪声类型,噪声类型决定降噪域选择。理解这个链条,是学好降噪的基础。

这张图把本章的核心逻辑串起来了。你仔细看:噪声来源决定了噪声类型,噪声类型又决定了你应该在哪个域做降噪。这个链条,是后面所有算法的基础。

1.5 本章小结

第一章我们聊了三个核心问题:

  1. 为什么降噪要分RAW域和YUV域?因为噪声特性不同,处理策略也不同。
  2. 课程目标是什么?让你能独立设计并落地一套降噪方案。
  3. 噪声模型怎么建?从物理来源出发,理解高斯、泊松、椒盐、条纹噪声的区别。

嗯,内容不多,但都是基础。后面每一章都会用到这些概念。你先把噪声模型吃透,后面学算法时就不会晕。

一个小练习:找一张夜景RAW图,用Python读出来,分别统计亮区和暗区的像素值分布。你会发现亮区近似高斯,暗区近似泊松。这就是理论照进现实的感觉。