图像传感器与色彩滤波阵列(CFA):CMOS vs CCD传感器、CFA模式详解

做AI去马赛克,你首先得搞清楚一个问题:马赛克是怎么来的?

说白了,我们手里的数码照片,在传感器那一层其实是一张“黑白灰”的亮度图。想得到彩色?就得靠一层微小的滤色片——也就是色彩滤波阵列(CFA)。

这一章,我们就从传感器讲起。我个人习惯把传感器比作相机的“视网膜”,而CFA就是视网膜上的“视锥细胞”。理解了这个底层逻辑,后面再讲去马赛克算法,你才能知道它在“补”什么。

2.1 CMOS vs CCD:两种主流传感器

先聊传感器本身。目前市面上99%的消费级相机和手机,用的都是CMOS。CCD基本只存在于老款相机或某些工业、科研设备里。

我刚开始做图像处理时,用的还是CCD相机。那时候CMOS的噪声大得离谱,没人敢用。现在反过来了,CMOS把CCD打得几乎绝迹。

对比维度 CCD(电荷耦合器件) CMOS(互补金属氧化物半导体)
读出方式 逐行转移,统一输出 每个像素独立寻址读出
功耗 高(需要多组电压驱动) 低(单电压,集成度高)
噪声 低(读出电路统一) 相对高(像素级放大器差异)
速度 慢(串行读出) 快(并行读出,支持高帧率)
成本 高(工艺特殊) 低(标准半导体工艺)
动态范围 通常更宽 通过技术追赶,已接近

我的经验:做AI去马赛克时,CMOS传感器的行噪声和固定模式噪声(FPN)是最大的坑。CCD的噪声虽然低,但一旦出现坏点,就是永久性的。CMOS的坏点可以通过算法校正,CCD的坏点……嗯,只能换传感器。

2.2 为什么需要CFA?

传感器本身只能感知光的强度,分不清颜色。那怎么办?

一个朴素的想法:给每个像素前面贴一张滤色片,只让特定颜色的光通过。这就是CFA的由来。

你想想看,如果每个像素只记录一种颜色,那最终图像就是一张“马赛克”。我们需要通过插值算法,把缺失的另外两种颜色猜出来——这就是去马赛克(Demosaicing)。

2.3 Bayer模式:最经典的CFA

Bayer模式是1976年由柯达的Bryce Bayer发明的。直到今天,它依然是使用最广泛的CFA模式。

它的核心规律:绿色像素占一半,红蓝各占四分之一。

为什么绿色多?因为人眼对绿色最敏感。说白了,就是模仿人眼的视锥细胞分布。

典型的2x2 Bayer单元:
R  G
G  B

或者另一种排列:
G  R
B  G

这两种排列在业界都有使用。我个人习惯把第一种叫“RGGB”,第二种叫“GRBG”。实际处理时,你只需要知道左上角是什么颜色,就能推算出整个模式。

关键指标:Bayer模式的奈奎斯特频率限制了去马赛克的分辨率。绿色通道的采样率是红色/蓝色的两倍,所以绿色细节保留最好,红蓝容易出现伪彩色。这也是AI去马赛克要重点解决的问题。

2.4 X-Trans模式:富士的“反摩尔纹”方案

Bayer模式有个老毛病:摩尔纹。尤其是在拍摄西装、百叶窗这类高频纹理时,会出现彩色的干涉条纹。

富士的X-Trans方案,说白了就是打乱了CFA的周期性排列。它用6x6的大单元,让红色和蓝色像素的分布不再那么规则。

X-Trans 6x6单元(简化示意):
G  R  G  G  B  G
B  G  R  G  G  G
G  G  B  G  R  G
G  B  G  R  G  G
R  G  G  G  B  G
G  G  R  G  G  B

这种排列让摩尔纹的强度大幅降低。但代价是什么?去马赛克算法更复杂了。传统的线性插值在X-Trans上效果很差,必须用更高级的算法,甚至AI。

避坑指南:我曾经在项目中直接拿Bayer的去马赛克模型去处理X-Trans数据,结果出来的图像全是伪彩色。后来才发现,X-Trans的CFA模式需要重新训练模型,不能直接迁移。切记,CFA模式变了,你的网络输入通道的“空间分布”就变了。

2.5 Quad Bayer模式:手机传感器的“四合一”

手机传感器这两年流行起了Quad Bayer。说白了,就是把4个同色像素拼成一个2x2的块。

比如一个2x2的红色块,4个像素都滤红色光。这样做的目的:提高弱光灵敏度。

Quad Bayer 4x4单元:
R R  G G
R R  G G
G G  B B
G G  B B

在暗光下,把4个同色像素合并成1个,等效像素面积变大,信噪比提升。在亮光下,再拆分成全分辨率输出。

但这里有个坑:Quad Bayer的“原生分辨率”其实是标称的1/4。很多手机标榜1亿像素,实际上在暗光下只能输出2500万像素。如果你做AI去马赛克,必须知道当前是“合并模式”还是“全分辨率模式”,否则算法会乱套。

CFA模式 单元大小 绿色占比 主要优势 主要劣势
Bayer 2x2 50% 简单、成熟、兼容性好 摩尔纹、伪彩色
X-Trans 6x6 约50% 抗摩尔纹强 算法复杂、计算量大
Quad Bayer 4x4 50% 弱光性能好、支持HDR 分辨率折损、模式切换复杂

2.6 传感器噪声模型

做AI去马赛克,你躲不开噪声。因为噪声会直接影响插值的准确性。

我总结一下传感器的主要噪声源:

  • 光子散粒噪声(Shot Noise):光的量子特性决定的,服从泊松分布。暗光下尤其明显。
  • 读出噪声(Read Noise):电路在读出电荷时引入的噪声。CMOS的读出噪声通常比CCD高。
  • 固定模式噪声(FPN):每个像素的放大器和暗电流不一致导致的。表现为固定的竖条纹或网格。
  • 暗电流噪声(Dark Current):即使没有光,传感器也会产生热电子。温度越高越严重。

我的建议:训练AI去马赛克模型时,一定要在训练数据中加入噪声增强。我习惯用高斯噪声模拟读出噪声,用泊松噪声模拟散粒噪声。这样模型在实际拍摄场景中才不会崩。

2.7 本章知识结构图

下面这张图,帮你把本章的核心逻辑串起来:

图像传感器与CFA知识结构图 图像传感器与CFA知识结构 图像传感器 CCD传感器 CMOS传感器 色彩滤波阵列(CFA) Bayer X-Trans Quad Bayer 传感器噪声模型 光子散粒噪声 读出噪声 固定模式噪声(FPN) 暗电流噪声 核心逻辑:传感器类型决定噪声特性 → CFA模式决定色彩采样方式 → 两者共同影响去马赛克算法设计

2.8 小结

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

  • 传感器:CMOS和CCD的差异,以及它们对噪声的影响。
  • CFA模式:Bayer、X-Trans、Quad Bayer的排列规律和适用场景。
  • 噪声模型:四种主要噪声源,以及它们如何干扰去马赛克。