2、摄像头成像原理:CMOS与CCD传感器、Bayer阵列与去马赛克、曝光与白平衡基础

做异构摄像头融合,第一关就是搞懂摄像头到底怎么「看」世界的。说白了,摄像头就是个光电转换器——把光信号变成电信号,再变成数字信号。我这些年调试过的摄像头少说也有几十款,从工业级的CCD到手机里常见的CMOS,踩过的坑真不少。今天咱们就把成像原理这层窗户纸捅破。

2.1 CMOS与CCD传感器:两种主流方案

传感器是摄像头的「视网膜」。目前市面上就两大阵营:CCD和CMOS。我刚开始做嵌入式视觉那会儿,CCD还是高端货,现在嘛,除了特殊工业场景,基本被CMOS取代了。

对比项 CCD(电荷耦合器件) CMOS(互补金属氧化物半导体)
读出方式 逐行转移,统一输出 每个像素独立寻址读出
功耗 较高(需要多组电压) 低(单电压供电)
噪声 低(读出噪声小) 较高(像素级放大器差异)
速度 较慢(串行读出) 快(并行读出,支持高帧率)
成本 高(工艺复杂) 低(标准半导体工艺)
典型应用 天文、医疗、高端工业 手机、安防、车载、消费电子

核心差异一句话:CCD像传送带,整批货物一起运;CMOS像每个工位独立发货,谁先准备好谁先走。CMOS的灵活性让它成了异构融合的首选。

我个人习惯在异构项目里混用两种传感器——比如用CCD做高精度静态测量,用CMOS做高速动态捕捉。但要注意,它们的时序、触发方式、数据格式完全不同,融合时得做对齐。

避坑:我曾经在一个项目里把CCD和CMOS的帧同步信号直接连在一起,结果画面一直闪烁。后来才发现,CCD的曝光结束信号是电平触发,CMOS是边沿触发——根本对不上。老老实实加了个FPGA做硬件同步才解决。

2.2 Bayer阵列与去马赛克

传感器本身是「色盲」的——它只能感知光的强度,分不清颜色。那彩色照片怎么来的?答案是Bayer阵列。

Bayer阵列是在每个像素上覆盖一个滤光片,只让红、绿、蓝其中一种光通过。最常见的排列是RGGB——一个红色、两个绿色、一个蓝色。为什么绿色占两个?因为人眼对绿色最敏感,这么做能模拟人眼的亮度感知。

// 典型的Bayer RGGB排列(4x4块)
R  G  R  G
G  B  G  B
R  G  R  G
G  B  G  B

每个像素只记录一种颜色,那其他两种颜色怎么办?靠插值——这就是去马赛克(Demosaicing)。

常用去马赛克算法

  • 最近邻插值:最简单,但锯齿严重。我从来不用。
  • 双线性插值:取周围像素平均,速度快,但边缘模糊。
  • 边缘导向插值:先检测边缘方向,再沿边缘插值。效果不错,我很多项目用这个。
  • 自适应插值:结合色差和梯度信息,质量高但计算量大。

我的经验:在嵌入式平台上,如果算力有限,优先用双线性插值配合后处理锐化。别一上来就上复杂算法——帧率掉到10fps以下,再好的画质也没用。

去马赛克有个常见问题:伪彩色(False Color)。尤其在黑白交界的边缘,会出现红绿蓝的杂色条纹。嗯,这里要注意——如果你做的是多摄像头融合,不同摄像头的去马赛克算法不同,融合后边缘伪彩会被放大。我建议所有摄像头统一用同一套算法库。

2.3 曝光与白平衡基础

曝光和白平衡,说白了就是让画面「亮得合适、颜色正」。但异构摄像头融合里,这两个参数经常打架。

曝光三要素

参数 作用 常见问题
曝光时间(快门) 控制进光时长 太长会拖影,太短会欠曝
增益(ISO) 放大信号强度 增益越高,噪声越大
光圈 控制进光量 异构摄像头光圈通常固定

你想想看,两个摄像头对着同一个场景,一个曝光时间5ms,一个20ms——融合出来的画面亮度能一致吗?所以异构融合的第一步,就是做曝光同步。

曝光同步的两种思路:

  1. 硬件同步:用同一个触发信号控制所有摄像头的曝光起始和结束。精度高,适合高速场景。
  2. 软件同步:通过算法调整每帧的曝光参数,使输出亮度接近。灵活,但有延迟。

白平衡呢?它是为了消除不同光源下的色偏。比如白炽灯下画面偏黄,日光灯下偏蓝。白平衡算法会调整R、G、B三个通道的增益,让白色物体看起来是白的。

常见的白平衡方法:

  • 手动白平衡:对着白纸设置。准,但麻烦。
  • 自动白平衡(AWB):算法自动估计色温。方便,但不同摄像头的AWB策略不同,融合后颜色会跳变。
  • 固定色温:锁定色温值。我建议异构融合项目用这个——至少保证所有摄像头颜色基准一致。

我曾经踩过的坑:一个双目融合项目,左右摄像头用了不同品牌的模组。左边AWB偏暖,右边偏冷,融合后的画面一半黄一半蓝。后来我把两个摄像头的白平衡都锁在D65(6500K),再微调增益矩阵,才搞定。

2.4 本章知识体系

下面这张图把传感器、Bayer、曝光、白平衡的关系串起来了。你一看就明白。

摄像头成像原理知识体系 传感器类型 色彩获取 CCD CMOS Bayer阵列 去马赛克 图像质量控制 曝光控制 白平衡 增益控制 降噪 异构摄像头融合输出

从传感器选型到色彩重建,再到曝光和白平衡控制,每一步都影响最终融合质量。我个人习惯在项目启动前先画一张类似的图——把每个摄像头的传感器型号、Bayer排列、曝光策略、白平衡模式列清楚。这样后面做融合时,心里有底。