图像成像基础:从光子到数字图像
做暗光增强,你得先搞懂图像是怎么来的。说白了,相机就是个「光子计数器」。我刚开始接触图像处理时,总觉得算法万能,后来被一张全黑照片教做人——没有信号,什么算法都白搭。
这一章,我们聊聊数码相机成像的核心原理。重点放在拜耳阵列、ISP管线,以及暗光下那些烦人的噪声。
数码相机成像原理
相机成像,本质上是一个「光电转换」过程。光线进入镜头,经过传感器,最终变成数字信号。这个链条上,有两个关键角色:拜耳阵列和ISP管线。
拜耳阵列:为什么传感器是彩色的?
传感器本身是「色盲」的。它只能感知光的强度,分不清颜色。那彩色照片怎么来的?
答案就是拜耳阵列。它在每个像素上覆盖一层滤色片,只允许特定波长的光通过。最常见的模式是RGGB——一个红色、两个绿色、一个蓝色。
为什么绿色有两个?
人眼对绿色最敏感。多一个绿色像素,能更好地模拟人眼的亮度感知。这也是为什么拜耳阵列看起来「偏绿」。
我做过一个实验:把一张RAW图直接显示,不经过任何插值。结果就是一张马赛克图,每个像素只有一种颜色。嗯,这就是拜耳阵列的原始面貌。
从拜耳阵列到完整彩色图像,需要经过去马赛克(Demosaicing)算法。它会根据相邻像素的颜色值,插值出每个像素缺失的两种颜色。常见的算法有双线性插值、边缘导向插值,以及基于深度学习的插值。
避坑指南
我曾经在暗光场景下用简单的双线性插值,结果出现了大量伪彩色和锯齿。后来换成边缘导向插值,效果好了很多。暗光下,插值算法对噪声的放大效应特别明显,选对算法很重要。
ISP管线:从RAW到JPEG的魔法
ISP(Image Signal Processor)是相机内部的图像处理流水线。它把RAW数据变成我们看到的JPEG。我习惯把ISP管线分成几个关键阶段:
- 黑电平校正:减去传感器暗电流带来的固定偏移
- 去马赛克:从拜耳阵列恢复全彩色
- 白平衡:校正不同光源下的色偏
- 色彩校正矩阵:把传感器色彩空间映射到标准色彩空间
- 伽马校正:调整亮度曲线,适配人眼感知
- 降噪与锐化:减少噪声,增强细节
- 压缩编码:输出JPEG
你想想看,手机拍照瞬间完成,背后其实跑了一整套复杂的流水线。每个环节都会影响最终画质,尤其是在暗光下。
注意
ISP管线中的降噪和锐化是「双刃剑」。降噪太强,细节丢失;锐化太强,噪声被放大。暗光下,这个平衡特别难把握。我见过不少手机夜景模式,降噪后照片像油画一样,细节全没了。
RAW与JPEG的区别
这个问题,我几乎每次培训都会被问到。直接上对比表:
| 特性 | RAW | JPEG |
|---|---|---|
| 位深 | 12-14 bit | 8 bit |
| 色彩空间 | 传感器原生 | sRGB/Adobe RGB |
| 压缩 | 无损或有损(压缩比小) | 有损(压缩比大) |
| 后期空间 | 极大(可调白平衡、曝光等) | 极小(信息已丢失) |
| 文件大小 | 大(约25-50MB/张) | 小(约5-10MB/张) |
| 适用场景 | 专业后期、暗光增强 | 快速分享、存储 |
说白了,RAW是「数字底片」,JPEG是「冲印好的照片」。做暗光增强,我强烈建议用RAW。为什么?
- 位深优势:12bit RAW有4096级亮度,8bit JPEG只有256级。暗光下,JPEG的暗部可能只有几个灰度级,一拉就断层。
- 白平衡可调:RAW的白平衡是「元数据」,可以后期无损调整。JPEG的白平衡是「烧死」在像素里的。
- 噪声更原始:RAW的噪声没有被ISP降噪抹平,保留了更多真实信息。这对暗光增强算法来说,是好事。
我的经验
有一次做夜景增强项目,甲方只给了JPEG。我花了大量时间做去压缩伪影和修复色阶断层。如果当时有RAW,至少能省一半时间。所以,能拿RAW就拿RAW,别给自己找麻烦。
暗光下噪声的主要来源
暗光增强,本质上是「信号放大」和「噪声抑制」的博弈。噪声从哪来?主要有两个源头。
光子噪声(散粒噪声)
光子的到达是随机的,服从泊松分布。暗光下,光子数量少,这种随机性就特别明显。你想想看,同一个场景拍两张照片,暗部像素的亮度值可能差很多——这就是光子噪声。
光子噪声的特点是:与信号强度相关。信号越强,噪声越大(但信噪比反而提高)。暗光下,信号弱,信噪比低,噪声看起来就特别「脏」。
数学上
光子噪声的标准差 = √(信号强度)。如果信号是100个光子,噪声就是10,信噪比10:1。如果信号是1个光子,噪声就是1,信噪比1:1。暗光下,信噪比接近1,图像几乎被噪声淹没。
读出噪声
读出噪声是传感器在读取电荷时引入的电子噪声。它跟信号强度无关,是一个固定底噪。我习惯把它理解为「传感器的本底噪声」。
读出噪声的来源包括:
- 像素复位噪声:每次复位后,像素电压的随机波动
- 放大器噪声:模拟放大器引入的热噪声
- ADC量化噪声:模数转换时的量化误差
- 暗电流噪声:传感器自身热激发产生的电子
暗光下,读出噪声是主要限制因素。因为信号弱,读出噪声的占比就大。我做过一个测试:盖上镜头盖拍一张全黑照片,看到的「噪点」就是读出噪声。
注意区分
光子噪声和读出噪声的抑制策略完全不同。光子噪声需要增加曝光时间或光圈(增加信号量),读出噪声则需要更好的传感器设计或低温环境。做算法时,要分别建模处理。
知识结构图:成像与噪声
下面这张图,把成像流程和噪声来源串起来了。你可以把它当作本章的「思维导图」。
从这张图可以看得很清楚:光线经过镜头到达传感器,传感器通过拜耳阵列捕获颜色信息,然后经过ISP管线输出JPEG。噪声主要来自传感器环节——光子噪声和读出噪声。暗光下,这两个噪声源会严重干扰信号,导致图像质量下降。
小结
这一章,我们聊了成像的基础。拜耳阵列让传感器「看见」颜色,ISP管线把RAW数据变成JPEG。RAW保留了更多信息,适合后期处理。暗光下的噪声主要来自光子噪声和读出噪声,理解它们的特性,是做好暗光增强的第一步。