3. AI ISP基础组件
各位同学,欢迎来到第三章。这一章我们不讲复杂的数学推导,而是聊聊AI ISP里最核心的几个“积木块”。说白了,就是那些你以后做项目天天要打交道的网络结构。
我个人习惯把AI ISP比作一个修图工坊。CNN是那个最勤快的学徒,负责干粗活;ResNet是老师傅,教你怎么把活干得更深;注意力机制是质检员,专门盯着关键细节;而GAN嘛,是个挑剔的甲方,总想让你生成以假乱真的照片。
好,我们一个一个来看。
3.1 卷积神经网络(CNN)基础
CNN在ISP里干的事,说白了就是“特征提取”。一张RAW图进来,它通过卷积核去抓边缘、纹理、颜色分布这些低级特征,再层层抽象,最后输出你想要的去噪图或增强图。
核心操作就三步:
- 卷积: 用一个滑动窗口(比如3x3)去点乘图像局部区域。每个窗口算一个值,相当于给图像做了一次滤波。
- 激活: 通常用ReLU,把负值砍掉,引入非线性。没有这一步,堆再多层也只是线性变换,白搭。
- 池化(可选): 下采样,缩小特征图尺寸。但在ISP里,我建议慎用,因为会丢失细节。很多去噪网络干脆不用池化。
关键参数速查表:
| 参数 | 含义 | ISP中的典型值 |
|---|---|---|
| Kernel Size | 卷积核大小 | 3x3(主流)、5x5(大感受野) |
| Stride | 滑动步长 | 1(保持分辨率)、2(下采样) |
| Padding | 边缘填充 | Same(保持尺寸)、Valid(不填充) |
| Channels | 输入/输出通道数 | 3→64(浅层)、64→128(深层) |
我的经验: 在ISP里,3x3卷积是黄金尺寸。它计算量小,但通过堆叠多层,感受野也能覆盖足够大的区域。我曾经试过用5x5做去噪,效果没提升多少,速度却慢了一倍。得不偿失。
3.2 残差网络(ResNet)
CNN堆深了会怎样?梯度消失,网络退化——层数越多,效果反而变差。ResNet的解决方案很简单:让网络学习“残差”,而不是直接学习原始映射。
公式就一句话:输出 = F(x) + x。其中F(x)是卷积层要学习的残差,x是输入。这个“跳跃连接”(Skip Connection)让梯度可以直接回传到浅层,解决了深层网络的训练难题。
在ISP里,ResNet有两大经典用法:
- 去噪残差学习: 网络学习的是“噪声图”,而不是“干净图”。输入是带噪图,输出是噪声,最后用输入减去噪声得到干净图。这样网络只需要拟合一个稀疏的噪声分布,简单多了。
- 超分残差学习: 网络学习的是“高频细节残差”,而不是整张高分辨率图。输入是低分辨率图,输出是缺失的高频信息,两者相加得到最终结果。
避坑指南: 我曾经在做一个夜景去噪项目时,直接把ResNet的跳跃连接从输入连到输出,结果发现暗部出现了严重的颜色偏差。后来排查发现,是因为输入图像本身就有偏色,残差学习把偏色也“保留”下来了。解决办法是在跳跃连接前加一个1x1卷积做通道对齐,或者对输入做一次简单的白平衡预处理。
3.3 注意力机制(Attention)
注意力机制,说白了就是让网络学会“看哪里”。在ISP里,不是所有像素都同等重要——边缘比平坦区域重要,人脸比背景重要。注意力机制就是给这些重要区域分配更高的权重。
ISP里最常用的三种注意力:
| 类型 | 原理 | ISP应用场景 |
|---|---|---|
| 通道注意力(SE-Net) | 对每个通道做全局平均池化,学习通道间的依赖关系 | 去噪时,让网络更关注噪声集中的通道 |
| 空间注意力 | 对每个空间位置学习权重,关注“哪里”重要 | HDR合成时,让网络更关注过曝/欠曝区域 |
| 自注意力(Transformer) | 计算像素间的全局依赖关系 | 去马赛克(Demosaic)时,利用全局纹理信息恢复细节 |
一个实用的组合: CBAM(Convolutional Block Attention Module)把通道注意力和空间注意力串起来。先做通道注意力,再做空间注意力。我在一个去雾项目里试过,PSNR提升了0.3dB,计算量只增加了不到5%。性价比很高。
3.4 生成对抗网络(GAN)
GAN在ISP里的角色,就是那个“吹毛求疵”的裁判。生成器负责生成图像,判别器负责判断图像是真是假。两者对抗训练,最终生成器能产生以假乱真的结果。
ISP里GAN的典型应用:
- RAW域去噪: 生成器把带噪RAW图转成干净RAW图,判别器判断是否像真实传感器输出。我做过一个项目,GAN去噪后的图像在纹理保留上明显优于传统方法。
- 夜景增强: 生成器把暗光图提亮,判别器判断是否像正常光照下的照片。这里要注意,GAN容易产生伪影,需要配合感知损失(Perceptual Loss)一起用。
- 超分辨率: SRGAN是经典案例,生成器放大图像,判别器判断是否像真实高分辨率图。在手机ISP里,这个技术已经量产了。
我的教训: GAN训练非常不稳定。我曾经在训练一个去噪GAN时,判别器太强,生成器直接“摆烂”——输出全黑图,因为这样判别器也分不清真假。后来我用了WGAN-GP的梯度惩罚,才稳定下来。另外,GAN生成的结果有时会“过度锐化”,看起来假假的。我建议在损失函数里加入一个TV Loss(总变分正则化)来抑制伪影。
3.5 知识图谱:AI ISP基础组件关系
下面这张图展示了这四个组件在ISP pipeline中的协作关系。你可以看到,CNN是基础,ResNet解决深度问题,注意力机制做特征筛选,GAN做最终的质量把关。
我的建议: 初学者不要一上来就搞GAN。先把CNN和ResNet玩熟,能调通一个去噪网络。然后加上注意力机制,看看效果能提升多少。最后再考虑GAN——它是一把双刃剑,用好了效果惊艳,用不好就是灾难。
3.6 本章小结
这一章我们拆解了AI ISP的四个基础组件。CNN是地基,ResNet是框架,注意力机制是精装修,GAN是最后的质检。记住,在实际项目中,很少只用单一组件——都是组合使用。比如一个典型的ISP去噪网络,可能是“CNN + ResBlock + CBAM + GAN Loss”这样的混合架构。