一、核心前提:CMOS 感光像素只能感知亮度,无法区分色彩

CMOS 感光二极管(光电二极管)只感知光子数量(亮度)天生不能分辨红 / 绿 / 蓝 感光元件输出信号只有:电压值 = 入射光强弱,没有颜色信息。

想要彩色图像,解决方案:在像素前加装彩色滤光片(Color Filter Array,CFA)

行业通用方案:拜耳阵列 Bayer Pattern

二、拜耳阵列排列规则(最主流 RGGB)

标准 RGGB 拜耳单元(2×2 最小重复单元

plaintext

R  G
G  B

放大成片排列:

plaintext

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

比例特点

  1. 绿色 G 像素数量是 R、B 的 2 倍 人眼对绿光亮度最敏感,增加绿色采样,提升亮度信噪比。
  2. 四种常用拜耳排布(硬件必须匹配,错了画面严重偏色
  • RGGB:最通用(OV5647、IMX219、IMX335)
  • BGGR、GRBG、GBRG

⚠️ 如果你在 ISP 配置写错阵列类型,RAW 解码出来图像颜色完全错乱。

三、相机信号完整链路(从光子到 RAW 帧)

  1. 光线 → 镜头 → 彩色滤光片 CMOS 光电二极管
  2. 每个像素只透过一种颜色光:只能采集 R / G / B 其中一个分量
  3. CMOS 电路将光信号转为模拟电压 → ADC 模数转换
  4. 输出数字信号:RAW 拜耳数据(Bayer RAW) ✅ 重点:每个像素仅有单一通道数值,缺少另外两个颜色分量! 例:R 像素只有红色亮度,没有绿色、蓝色数据。

这就是为什么 RAW 文件不是彩色图像不能直接预览,必须插值。

四、Demosaic(去马赛克 / 拜耳插值)原理

单个像素只有一种颜色,要得到完整 RGB 像素,必须利用相邻像素插值估算缺失的另外两个颜色。 举个例子:阵列中某个 R 像素

  • 当前已知:R 值
  • 通过周边相邻 G、B 像素插值,估算出该位置 G、B 数值 最终生成每个像素都具备 R/G/B 三通道的完整图像。

这项运算由ISP 图像信号处理器完成: RAW(Bayer) → Demosaic → RGB临时图像 → 色彩空间转换 → NV12(YUV420) 也就是整条链路里:RAW → NV12 的核心步骤

五、RAW 数据关键特性(结合之前的格式对比)

  1. 无完整彩色像素,只是离散采样点阵,不能直接送入 CNN/BPU
  2. 不存在 “YUV” 概念,YUV 是 ISP 插值、色彩空间转换之后才产生
  3. 位深常见:8bit (RAW8)、10bit (RAW10)、12bit (RAW12)
    • IMX219/OV5647 大多 RAW8/Raw10
    • 高动态工业 Sensor 常用 RAW12
  4. 数据结构是二进制裸流,没有文件头;打开必须指定分辨率 + 拜耳排布

六、容易混淆的关键点澄清

1)拜耳 RAW ≠ NV12

plaintext

光子 → CMOS → Bayer RAW(单通道点阵)
           ↓(ISP Demosaic+3A+色彩转换)
         NV12(YUV420 完整可视图像)

单向流程,NV12 无法还原回拜耳 RAW,ISP 处理丢失了原始采样信息。

2)为什么 AI 推理不用 RAW,必须使用 NV12/RGB?

CNN/FCOS/YOLO 神经网络输入要求:每个像素拥有 R、G、B 三色信息。 RAW 一个像素只有单一颜色,不满足网络输入条件。

3)什么时候需要抓取拜耳 RAW?

  • Sensor 寄存器调试、排查 I2C 通信、曝光异常、噪点问题(当前相机调试阶段)
  • 镜头标定、ISP 参数调优(白平衡、Gamma、降噪) 正常业务运行:不会输出 RAW,直接使用 ISP 输出 NV12

七、结合 RDK X5 硬件链路对应关系

plaintext

MIPI Sensor硬件输出:Bayer RAW(RGGB)
        ↓ 通过MIPI总线传给开发板
地平线VIO接收RAW → 送入内置ISP
        ↓ ISP流水线:
Demosaic去马赛克 → 白平衡 → 降噪 → Gamma校正 → RGB→YUV转换
        ↓
ISP输出 NV12(mipi_cam节点 /image_combine_raw话题)

如果你想抓取 RAW 帧,需要修改 mipi_cam/VIO 配置,让 ISP 旁路、直接输出原始拜耳数据;默认工作模式下,你拿到的只有 NV12。

八、典型故障场景(和你遇到的 I2C 相机问题关联)

  1. I2C 通信异常 → Sensor 配置失效 → RAW 数据乱码、图像花屏
  2. ISP 拜耳排布参数配置错误 → RAW 解码后整体偏绿 / 偏红
  3. 位深配置不匹配(Raw10 当成 Raw8 解析)→ 画面条纹、噪点爆炸
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐