跳转至

Integral Fast Fourier Color Constancy

会议: CVPR 2025
arXiv: 2502.03494
代码: 无
领域: 计算摄影 / 颜色恒常性
关键词: 自动白平衡, 多光源场景, 积分直方图, 快速傅里叶变换, 实时处理

一句话总结

本文提出 IFFCC,将 FFCC 算法扩展到多光源场景,通过积分 UV 直方图加速区域直方图计算并行化傅里叶卷积操作,实现了与像素级神经网络相当的精度,同时参数量减少 400 倍、速度提升 20-100 倍的实时多光源自动白平衡。

研究背景与动机

  1. 领域现状:自动白平衡(AWB)是 ISP 的核心组件。传统方法(灰度世界、白色补丁等)假设单一全局光源,效果有限;深度网络方法(如 U-Net 架构)在多光源场景精度高,但参数量大、计算开销高。
  2. 现有痛点:FFCC 算法在单光源场景下高效准确,但无法直接应用于多光源场景——对每个目标区域需重复提取直方图,计算量急剧增大;且缺乏空间平滑机制,导致白平衡结果出现突变。深度网络方法参数量百万级、推理时间远超 10ms,无法满足手机等资源受限设备的实时要求。
  3. 核心矛盾:多光源 AWB 需要对图像的不同区域分别估计光照,但逐区域计算直方图的开销与区域数量成正比,形成精度与速度的矛盾。
  4. 本文目标 (a) 如何高效计算任意子区域的色度直方图?(b) 如何在保持边缘清晰的同时实现空间光照平滑?(c) 如何在 CPU 上实现多光源 AWB 实时运行?
  5. 切入角度:借鉴积分图像(Integral Image)的思想,将积分直方图应用于 UV 色度空间,实现 O(1) 的任意区域直方图查询。
  6. 核心 idea:用积分 UV 直方图一次性预计算,使任意区域的色度直方图仅需几次加减运算即可获得,再通过并行 FFT 卷积和空间平滑实现实时多光源白平衡。

方法详解

整体框架

输入缩略图图像(如 64×48),首先转换到 log-chroma 空间计算积分 UV 直方图;然后用重叠滑窗在积分直方图上高效提取各区域的局部直方图;对每个区域并行执行 FFT 卷积预测光照色度;最后通过线性插值和引导滤波生成平滑的像素级光照图,与原图结合输出白平衡图像。

关键设计

  1. 积分 UV 直方图 (Integral UV Histogram):

    • 功能:高效计算图像任意矩形区域的 log-chroma 直方图
    • 核心思路:将 RGB 图像转换为 log-chroma 空间 \(u^{(i)} = \log(I_g/I_r)\), \(v^{(i)} = \log(I_g/I_b)\),然后从左上角开始按波前扫描顺序传播积分直方图:\(H_{\text{Integral}}(u,v,b) = H(u-1,v,b) + H(u,v-1,b) - H(u-1,v-1,b) + B(u,v)\)。预计算完成后,任意矩形区域的直方图仅需 3 次加减运算。在 128×128 窗口、64 bins 的配置下,相比传统方法的计算量比为 19.71 倍
    • 设计动机:FFCC 处理多光源时需对每个区域重新提取直方图,这里通过一次性预计算避免了重复计算,将复杂度从 O(N·M) 降为 O(N+M)
  2. 重叠网格并行预测 (Overlapping Grid + Parallel Prediction):

    • 功能:高效获取多个局部区域的光照估计
    • 核心思路:用带重叠的滑窗在积分直方图上提取 k 个子区域的直方图集合 \(X(k,B,B,N)\),然后在频域并行执行卷积 \(H = \text{IFFT}(\sum_k \text{FFT}(X) \cdot \text{FFT}(F)) + B\),并通过并行化的 Bivariate Von Mises 分布均值估计,一次推理同时预测所有区域的光照。重叠区域保持了相邻窗口间的连续性
    • 设计动机:FFCC 原本只预测一个全局光照值,这里通过并行化将批量区域预测的时间压缩到接近单次预测
  3. 空间平滑 (Spatial Smoothing):

    • 功能:将离散的 patch 级光照估计重构为像素级平滑光照图
    • 核心思路:首先用线性插值在 k 个区域估计值之间生成平滑过渡;然后用引导滤波(以原图为引导图像)保留光照边缘处的结构特征:\(O_i = a_k G_i + b_k\),其中系数 \(a_k, b_k\) 由局部统计量和正则化参数 \(\epsilon\) 决定。最终输出为窗口内加权平均
    • 设计动机:纯插值会模糊光照边界(如不同色温灯光交界处),引导滤波利用原图的边缘信息保持这些重要的光照边界

损失函数 / 训练策略

使用 FFCC 的频域优化方法训练,64 次迭代,直方图大小 64×64。训练图像随机裁剪到 128×128,测试在 256×256 图像上进行。两种训练策略:B(混合光照 GT)和 M(主光源 GT),其中 B 策略效果更好。全程仅需 CPU,无需 GPU。

实验关键数据

主实验

Shadow 数据集(按相机分):

方法 类型 Canon 5d mean Canon 5d median 全部 mean 全部 median
CRF(White-Patch) 传统 7.66 5.96 7.19 5.44
Patch-based 传统 4.85 3.11 4.30 2.89
Domislovic et al. 网络 2.63 2.18 2.28 1.60
IFFCC 传统 2.06 1.54 2.19 1.56

LSMI 数据集(多光源):

方法 类型 Galaxy mean Nikon mean Sony mean 参数量(M) CPU时间(s)
Bianoco Patch 5.56 4.65 4.38 0.16 -
AID Pixel 2.03 2.26 2.16 6.4 >>1
IFFCC Patch 2.48 2.30 2.48 0.012 0.03

消融实验

训练策略 窗口/重叠 Mean ↓ Median ↓ 说明
B [32, 16] 2.65 2.17 小窗口信息不足
M [128, 64] 2.42 1.95 主光源GT
B [128, 64] 2.06 1.54 混合GT,默认配置
B [192, 128] 1.98 1.34 大窗口精度最高但模糊边界

FFCC vs IFFCC 速度对比(Shadow 数据集):

窗口/重叠 FFCC IFFCC 加速比
[128, 64] 88ms 27ms 3.3×
[128, 96] 234ms 33ms 7.1×
[64, 48] 689ms 40ms 17.2×

关键发现

  • IFFCC 以 0.012M 参数量(仅为 AID 的 1/533)实现了与 AID 等像素级网络方法相当的精度
  • 256×256 图像在 CPU 上推理仅需 5.8ms(64×48 缩略图),远满足实时 AWB 的 10ms 要求
  • 窗口大小是关键超参:小窗口(32×32)纹理细节好但精度低,大窗口(192×128)精度高但模糊光照边界
  • 混合光照 GT(B策略)始终优于单一主光源 GT(M策略),因为更好地反映了区域内的实际光照分布
  • 在多相机数据集上表现特别强,因为 log-chroma 直方图方法不依赖特定相机的光谱敏感度

亮点与洞察

  • 积分直方图 + 色度空间的结合非常优雅:将计算机视觉中经典的积分图像技巧应用于色度直方图,实现 O(1) 区域查询,解决了 FFCC 在多光源场景的效率瓶颈
  • 极致的工程实用性:0.012M 参数、CPU-only、< 10ms 推理时间,这是少见的能直接部署在手机 ISP 上的学术工作
  • 从全局到局部的扩展思路具有通用性:将任何全局估计方法通过积分直方图扩展为局部自适应方法的策略可以迁移到其他需要区域级统计的任务

局限与展望

  • 窗口大小需手动选择,不同场景可能需要不同的窗口配置
  • 引导滤波的局部平滑可能在极端光照变化区域仍然不够精确
  • 仅在 256×256 分辨率上测试,更高分辨率下的性能有待验证
  • 可探索自适应窗口大小策略,根据局部色度分布复杂度动态调整窗口

相关工作与启发

  • vs FFCC: FFCC 是单光源全局方法,IFFCC 通过积分直方图+并行预测+空间平滑将其扩展为多光源方法,速度仅略有增加
  • vs AID (pixel-level): AID 用 slot attention 实现像素级预测,精度略高但参数量 533 倍大、速度慢 33 倍以上,不适合实时部署
  • vs Domislovic et al.: 同为非深度学习方法中的SOTA,IFFCC 在 Shadow 数据集上全面超越

评分

  • 新颖性: ⭐⭐⭐⭐ 积分直方图在色度空间的应用有巧思,但整体是对 FFCC 的增量式扩展
  • 实验充分度: ⭐⭐⭐⭐⭐ 在两个标准数据集上与多种方法全面对比,消融充分,包含速度对比
  • 写作质量: ⭐⭐⭐⭐ 公式推导清晰,但部分符号定义较密集
  • 价值: ⭐⭐⭐⭐ 工业落地价值很高,是少数能直接用于手机 ISP 的 AWB 算法

相关论文