图像传感器基础:CMOS传感器工作原理、Bayer阵列与色彩滤波、RAW数据格式解析

各位同学,今天我们来聊聊相机系统的“眼睛”——图像传感器。做AI ISP这些年,我接触过各种各样的传感器,从手机里的小底到工业相机的大靶面。说实话,搞懂传感器的工作原理,是后面所有图像处理算法的基础。你连RAW数据怎么来的都不清楚,谈何去优化它?

CMOS传感器工作原理

CMOS传感器,全称是互补金属氧化物半导体图像传感器。现在市面上99%的相机都在用CMOS,CCD基本退出了消费市场。为什么?因为CMOS功耗低、速度快、集成度高。

它的核心工作原理,我总结为三步:

  1. 光电转换:每个像素点上的光电二极管吸收光子,产生电子。光子越多,电子越多。
  2. 电荷积累:电子在像素内积累,形成电压信号。这个电压大小,就代表了光的强弱。
  3. 读出放大:通过行列寻址,把每个像素的电压信号读出,经过模数转换器(ADC)变成数字值。

嗯,这里要注意一个关键点:CMOS是每个像素自带放大器的。这意味着每个像素的读出可以并行进行,速度非常快。但代价是什么?像素之间的一致性会差一些,也就是所谓的“固定模式噪声”。

个人经验: 我在做一款安防相机时,遇到过CMOS传感器在低光照下出现竖条纹的问题。后来发现是电源纹波干扰了像素放大器。解决办法很简单——在传感器电源引脚上加一颗10μF的钽电容。有时候,硬件上的一个小改动,比算法上折腾半天都管用。

Bayer阵列与色彩滤波

CMOS传感器本身只能感知光的强度,它分不清颜色。那彩色图像是怎么来的?靠的是色彩滤波阵列(CFA)。最经典的,就是Bayer阵列。

Bayer阵列的排布方式是这样的:

R G R G
G B G B
R G R G
G B G B

你看,绿色像素占了总数的一半,红色和蓝色各占四分之一。为什么绿色这么多?因为人眼对绿色最敏感。说白了,这是仿生学的设计。

每个像素只能记录一种颜色。那缺失的另外两种颜色怎么办?靠插值算法去猜。这个猜的过程,就是后面章节要讲的“去马赛克”(Demosaic)。

避坑指南: 我曾经在一个项目中,为了省成本用了低质量的Bayer滤波器。结果在强光下拍出的照片,边缘全是彩色锯齿。后来换了更高精度的滤波器,问题才解决。记住,Bayer阵列的质量直接决定了图像的色彩还原能力,这块不能省。

RAW数据格式解析

传感器直接输出的原始数据,就是RAW格式。它没有经过任何处理——没有白平衡、没有伽马校正、没有去马赛克。说白了,就是最纯粹的“数字底片”。

RAW数据的特点:

  • 位深:常见的有10bit、12bit、14bit。位深越高,动态范围越大。
  • 线性:RAW数据是线性的,像素值和光强成正比。而人眼对光的感知是非线性的。
  • Bayer模式:RAW数据里每个像素只记录一种颜色,排列方式就是Bayer阵列。

举个例子,一个1200万像素的传感器,输出12bit的RAW数据。那么一帧的数据量是多少?

1200万像素 × 12bit = 14400万bit
14400万bit ÷ 8 = 1800万字节 ≈ 17.2MB

嗯,一帧就17MB。如果每秒30帧,那就是510MB/s的数据量。这个带宽要求,对ISP的传输接口是个不小的考验。

核心要点: RAW数据是AI ISP的“原材料”。你后面做的所有处理——降噪、HDR、色彩校正——都是在RAW域进行的。所以,理解RAW数据的格式和特性,是做好AI ISP的第一步。

知识结构图:CMOS传感器到RAW数据

下面这张图,我把从光子打到传感器,到输出RAW数据的整个流程画了出来。你可以对照着看,加深理解。

CMOS传感器到RAW数据流程 光子输入 光电二极管 电荷积累 Bayer滤波 ADC转换 RAW数据输出 关键说明 • 每个像素只记录一种颜色(R/G/B),由Bayer阵列决定 • ADC转换位深决定RAW数据的精度(10bit/12bit/14bit) • RAW数据是线性的,未经任何图像处理 • 后续的AI ISP处理都在RAW域进行

不同RAW格式对比

实际项目中,不同厂商的RAW格式略有差异。我整理了一个表格,方便你对比:

格式 位深 Bayer模式 常见应用
Bayer RAW 10/12/14bit RGGB 手机、相机
Quad Bayer 10/12bit 2x2合并 高像素手机
RGB-IR 10/12bit RGB+红外 安防监控
RCCB 10/12bit 红+青+蓝 低光照场景

你看,不同的应用场景,Bayer阵列的排布方式也不同。比如安防监控需要红外夜视,所以用了RGB-IR。而低光照场景下,RCCB能收集更多光线,但色彩还原难度更大。

个人建议: 如果你刚开始接触RAW数据,建议先用标准Bayer RAW练手。等把去马赛克、白平衡这些基础算法吃透了,再去碰Quad Bayer或者RCCB这些变种。基础不牢,地动山摇。

总结一下

这一章我们讲了三个核心概念:

  • CMOS工作原理:光电转换→电荷积累→读出放大。每个像素自带放大器,速度快但噪声略大。
  • Bayer阵列:绿色占一半,红蓝各四分之一。人眼对绿色最敏感,这是仿生设计。
  • RAW数据:最原始的“数字底片”,线性、未处理。位深越高,动态范围越大。

嗯,这些内容看起来基础,但非常重要。我记得刚入行时,有个老工程师跟我说:“你连RAW数据都读不对,就别谈什么AI ISP了。”这句话我一直记到现在。希望你们也能把基础打牢,后面几章我们会一步步深入,从RAW数据开始,构建完整的AI ISP处理链路。