2. 基础回顾:传统 ISP 流水线与深度学习 ISP 的对比

聊端侧 AI ISP 之前,咱们得先搞清楚一个事儿——传统 ISP 到底在干什么。我见过不少刚入行的同学,一上来就扎进模型轻量化,结果连去马赛克和降噪的先后顺序都搞反了。嗯,这其实挺要命的。

这一节,我会带你快速过一遍传统 ISP 的核心模块,然后跟深度学习 ISP 做个对比。说白了,就是让你知道「老路怎么走」以及「新路为什么能抄近道」。

2.1 传统 ISP 流水线:一个模块一个坑

传统 ISP 是一个高度工程化的系统。每个模块各司其职,按固定顺序执行。我个人习惯把它拆成四个核心环节:

  1. 去马赛克(Demosaic)——从 RAW 图恢复全彩
  2. 降噪(NR)——干掉传感器噪声
  3. HDR 合成——扩展动态范围
  4. 3A(AE/AWB/AF)——曝光、白平衡、对焦控制

你想想看,这四个环节是串在一起的。前一个模块的输出,就是后一个模块的输入。一旦某个环节出了偏差,后面全得跟着遭殃。

核心认知:传统 ISP 是「模块级独立优化」的典范。每个模块都有独立的算法和参数,但模块之间缺乏全局信息共享。

2.1.1 去马赛克:从拜耳阵列到全彩图

传感器输出的 RAW 图是拜耳阵列——每个像素只记录 R、G、B 中的一个通道。去马赛克的任务,就是通过插值把缺失的两个通道补回来。

常用的方法有:

  • 双线性插值:简单,但边缘容易发虚
  • 方向自适应插值:沿边缘方向插值,效果更好
  • 基于梯度的方法:比如 Hamilton-Adams 算法,至今还在用

我在项目中遇到过一个问题:去马赛克之后的图像如果直接做降噪,边缘的伪彩会被放大。后来我调整了顺序——先做轻量降噪,再去马赛克,伪彩明显减少了。嗯,这就是工程里的「顺序即算法」。

2.1.2 降噪:空间域 vs 变换域

传感器噪声主要分两类:光子散粒噪声(泊松分布)和读出噪声(高斯分布)。传统降噪方法大致分两派:

方法 原理 优缺点
空间域滤波(如双边滤波、NLM) 在像素邻域内加权平均 效果好,但计算量大;边缘保持能力有限
变换域滤波(如小波、BM3D) 在频域或变换域处理 降噪能力强,但实时性差,端侧跑不动

我曾经在某个手机项目里试过 BM3D 做降噪,效果确实惊艳。但一上端侧,帧率直接掉到 15fps。后来我换成了 5x5 双边滤波 + 时域降噪的组合,才勉强稳住 30fps。说白了,端侧就是戴着镣铐跳舞。

2.1.3 HDR 合成:多帧融合的艺术

HDR 的核心思路很简单:拍多张不同曝光的图,然后合成一张高动态范围的图。传统做法包括:

  • 多帧合成:短曝 + 中曝 + 长曝,三帧融合
  • 局部 tone mapping:把高动态范围映射到 8bit 显示空间
  • 鬼影消除:运动物体在多帧间不一致,需要检测并去除

这里有个坑——多帧合成对运动场景非常敏感。我记得有一次在夜景模式下拍行人,三帧之间人走了两步,合成结果直接出现了半透明鬼影。后来我们加了运动检测 mask,才把这个问题压下去。

2.1.4 3A:自动曝光、自动白平衡、自动对焦

3A 是 ISP 的「大脑」。它不直接处理图像,而是控制整个流水线的参数:

  • AE(自动曝光):根据场景亮度调整曝光时间和增益
  • AWB(自动白平衡):消除色温偏差,让白色看起来是白的
  • AF(自动对焦):通过对比度检测或相位检测找到最清晰的对焦位置

3A 的难点在于「实时性」和「稳定性」的平衡。我见过一些方案,AE 收敛速度很快,但画面会来回闪烁——这就是稳定性没做好。端侧尤其要注意,3A 的反馈周期不能太长,否则用户会感觉到明显的「呼吸效应」。

2.2 深度学习 ISP:端到端的革命

传统 ISP 的问题在于:每个模块都是独立设计的,参数靠人工调优。深度学习 ISP 的思路完全不同——用一个神经网络直接完成从 RAW 到 RGB 的映射。

说白了,就是把整个流水线压缩成一个模型。

我的建议:不要一上来就想着用深度学习替代所有模块。先找到传统 ISP 中最薄弱的环节(比如低光照下的降噪),用深度学习做局部替换,效果往往更可控。

2.2.1 端到端 vs 模块化

两种架构的对比,我整理了一张表:

维度 传统 ISP 深度学习 ISP
架构 模块化串行 端到端神经网络
参数调优 人工调参,依赖经验 数据驱动,自动学习
计算开销 各模块独立,总开销可控 单模型,但计算量大
泛化能力 对特定场景调优后效果好 数据覆盖广则泛化强
端侧部署 成熟,硬件加速友好 需要模型轻量化

你可能会问:既然深度学习这么好,为什么还要学传统 ISP?原因很简单——数据。深度学习 ISP 需要大量配对数据(RAW + 理想 RGB),而这类数据的采集成本极高。我在项目中就吃过这个亏,花了三个月采集数据,结果模型在真实场景下还是崩了。

2.2.2 深度学习 ISP 的典型架构

目前主流的深度学习 ISP 架构大致分三类:

  • U-Net 变体:编码器-解码器结构,适合像素级预测
  • GAN 架构:生成器 + 判别器,适合风格迁移和细节增强
  • Transformer 架构:自注意力机制,适合全局依赖建模

但注意,这些架构在端侧都跑不动。我们后面会花大量篇幅讲怎么把它们「瘦身」到能在手机芯片上实时运行。

2.3 传统 vs 深度学习:一张图看懂

下面这张 SVG 图,是我自己画的。它把两种 ISP 的核心流程放在一起对比,你看完应该能有个全局印象。

传统 ISP vs 深度学习 ISP 流程对比 传统 ISP vs 深度学习 ISP 流程对比 传统 ISP(模块化串行) RAW 输入 去马赛克 降噪 HDR 合成 RGB 输出 3A 控制 深度学习 ISP(端到端) RAW 输入 端到端神经网络 (去马赛克+降噪+HDR+3A) RGB 输出 关键差异: • 传统 ISP:模块独立优化,参数人工调优,3A 全局控制 • 深度学习 ISP:端到端学习,数据驱动,所有任务在一个模型中完成 • 端侧挑战:深度学习 ISP 需要模型轻量化才能实时运行

2.4 端侧部署的挑战:为什么传统 ISP 还没被淘汰

看到这里,你可能会觉得深度学习 ISP 是万能的。但现实是,目前绝大多数手机 ISP 仍然是传统方案。原因有三:

  • 功耗:深度学习模型跑在 NPU 上,功耗比硬件 ISP 高一个数量级
  • 延迟:端到端模型动辄几十毫秒,而传统 ISP 可以做到 5ms 以内
  • 稳定性:深度学习模型在 corner case 下可能崩,传统 ISP 则非常稳定

注意:不要盲目追求「全端到端」。我在一个项目中尝试用单个模型替代整个 ISP,结果在暗光场景下出现了严重的色彩偏移。后来我们改成了「传统 ISP + 深度学习降噪增强」的混合方案,效果和稳定性都达标了。

2.5 小结:两条路,各有千秋

传统 ISP 像是一个经验丰富的老工程师——稳定、可靠、可预测。深度学习 ISP 则像一个天才少年——潜力巨大,但需要调教。

在端侧 AI ISP 的实践中,我的建议是:先理解传统 ISP 的每个模块在干什么,然后用深度学习去解决传统方案解决不好的问题。比如低光照降噪、超分辨率、HDR 合成中的鬼影消除——这些是深度学习真正能发挥优势的地方。