Seeing Photons in Color
University of Wisconsin-Madison; EPFL
一句话总结
本文提出首个面向彩色单光子相机(SPAD 阵列)的突发摄影算法,配合专门设计的伪随机 RGBW 蓝噪声滤色阵列,把大量高噪声、马赛克化的二值光子帧重建成清晰、无运动模糊的高质量彩色图像,尤其适用于低光、高动态范围与快速运动场景。
研究背景
- 领域现状:单光子雪崩二极管(SPAD)阵列近年从单像素/低分辨率发展到百万像素级,能以接近 10 万帧/秒的速度记录单个光子且几乎没有读出噪声,被视为在 HDR、快速运动等极端场景下替代传统 CMOS 传感器的候选。但已有工作几乎都停留在单色成像,很少涉及彩色。
- 核心痛点:在 SPAD 上做彩色成像有两难。其一,单张二值(1 比特)马赛克帧信息量极低,无法直接用传统去马赛克算法恢复颜色;简单地把长序列相加再去马赛克,又会在有运动时产生模糊,低光下更严重。其二,马赛克帧上”亮度恒定”假设不成立——同一场景点在运动中会从绿滤镜”移动”到红滤镜,导致帧间无法直接对齐做运动估计。
- 本文 idea:把突发摄影思想引入彩色 SPAD,在单光子(逐光子)粒度上联合去噪与去马赛克;并利用一个关键观察——运动实际上提高了颜色的有效采样率,从而可以大胆采用白像素占比很高(利于低光 SNR)的 RGBW 阵列,并用蓝噪声伪随机排布抑制彩色伪影。
方法
整体框架分两大块:先在极端量化、低信噪、且被滤色阵列带通的马赛克二值序列上估计帧间运动;再基于运动把逐帧的 1 比特彩色样本联合去马赛克并融合成一张高信噪、低模糊的彩色图像;最后做色度聚焦去噪。硬件侧则专门设计并光刻制造了一块 75% 白像素的伪随机 RGBW 滤色阵列。
flowchart LR
A["马赛克二值序列"] --> B["分块求和 → 块和图"]
B --> C["插值 W 通道 → 灰度块和图"]
C --> D["分层块匹配估计运动 → 插值到帧级"]
A --> E["联合去马赛克与融合<br/>各向异性高斯核"]
D --> E
E --> F["RGBW 四通道"]
F --> G["用 W 线性约束缩放 RGB"]
G --> H["色度聚焦 BM3D 去噪 → 彩色图"]
关键设计:
-
先转灰度再对齐运动:直接对齐马赛克块和图不可行(亮度恒定被破坏)。由于所设计阵列中白(W)像素占 75%、采样密集,作者直接对 W 像素做插值得到全分辨率灰度图,再用分层块匹配估计块级运动,并线性插值到每一帧得到细粒度帧级运动。块的大小取 100~1000 帧,视帧率、光照和运动速度而定。
-
联合去马赛克与融合:”先去马赛克再融合”因单帧缺乏可靠颜色信息而失败,”先融合再去马赛克”又会在块内残留模糊。作者把马赛克二值帧里的像素当作 1 比特彩色样本,按亚像素运动 warp 到参考帧,用各向异性高斯核在空间邻域内重建每个像素(选更高分辨率网格即可实现超分)。融合的权重函数基于二项分布统计设计,参考图则由灰度块和图经维纳滤波融合得到。
-
用 W 通道提纯亮度:算法对 R、G、B、W 各通道分别产出全分辨率图。W 像素进光多、SNR 高,提供一条逐像素线性约束 \(w_R R + w_G G + w_B B = W\)。作者不做全图非线性优化(数千帧下不可行),而是用该约束在每像素上求一个缩放因子 \(k(x,y) = \dfrac{W(x,y)}{w_R R(x,y) + w_G G(x,y) + w_B B(x,y)}\) 来缩放 RGB,使最终图的亮度来自高质量 W、色度来自 RGB,兼得锐利与低噪。
-
蓝噪声 RGBW 阵列 + 两项实用处理:在频域分析下,Bayer 把亮度能量集中于原点、色度集中于高频而易分离;完全随机排布会把色度能量摊平到全频段难以分离。作者在 RGB 蓝噪声(同色像素不相邻)基础上,规则地填充 W 像素得到 75% W 的蓝噪声 RGBW 阵列,使亮度/色度频谱可分且避免相干摩尔纹。此外还有热像素校正(约 3% 高暗计数率像素会把运动估计拉向零并拖出彩色条纹)与色度聚焦 BM3D(在 YCbCr 空间对亮度用小 \(\sigma\)、对 Cb/Cr 更激进去噪)。
实验结果
在把 1000FPS 视频用 RIFE 插帧 16 倍、再按 SPAD 模型采样得到的合成二值序列(平均 0.1 光子/像素/帧,极具挑战)上,与朴素平均及多种突发去噪基线比较:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ |
|---|---|---|---|
| 朴素平均(长序列) | 23.87 | 0.5934 | 0.5173 |
| 朴素平均(短序列) | 20.62 | 0.4361 | 0.6153 |
| VBM4D | 21.20 | 0.5342 | 0.4382 |
| MFIR | 23.63 | 0.6163 | 0.4230 |
| BIPNet | 25.25 | 0.6481 | 0.3357 |
| 本文 | 26.06 | 0.7879 | 0.2665 |
本文方法在三项指标上均最优,SSIM 与 LPIPS 领先尤为明显。其余结论用文字补充:仿真中,夜景 HDR 下传统突发摄影无法同时恢复暗区与亮区(暗处有噪声模糊、亮处饱和),本文方法能同时重建;且运动分析显示,运动从 0 增至 1 像素时 PSNR 提升最大,说明去伪影所需运动量极小。硬件方面,作者在 SwissSPAD2 上光刻制造了 75% W 的蓝噪声 RGBW 阵列(R/G/B 各占 8.33%),可在 496×254 分辨率下以最高 96.8kfps 采集,对高频栅栏、复杂遮挡、镜面反射、旋转色轮等实拍难例均给出优于基线的清晰重建。SPAD 与 jots 的对比表明二者互补:快速复杂运动下 SPAD 更优,慢速需高频空间细节时 jots 更优。
亮点与局限
- 亮点:
- 提出首个彩色 SPAD 的突发摄影/去马赛克算法,在逐光子粒度处理原始数据,适用于任意由 R/G/B/W 像素构成、规则或伪随机排布的滤色阵列。
- 洞察到”运动提高有效颜色采样率”,据此设计并真实光刻出首个非常规 RGBW(75% W)蓝噪声阵列,兼顾低光 SNR 与彩色采样,且规则的 W 排布还便于 W 通道插值与对齐。
- 用 W 通道的线性约束以两步缩放替代高维非线性优化,在数千帧规模下把复杂度显著降下来。
- 局限:
- 现有原型的滤色片色选择性不理想(蓝滤镜在 >650nm 有杂散响应),导致图像饱和度偏低、色彩还原欠佳,需靠仿射色彩校正补救。
- 原型需连接两台台式电源,便携性差;整套系统在像素间距、功耗、处理效率上仍无法与手机等移动端 CMOS 竞争,尚不能直接替代现有传感器。
- 方法沿用经典两步(对齐+融合)范式,尚未利用端到端神经网络的潜力。
延伸思考
作者明确把基于神经网络、直接在所提 CFA 的原始二项图像上训练的重建作为下一步方向——这与近年突发去噪、乃至用神经辐射场处理大运动高噪突发的思路一致,值得探索能否让学习方法充分吃到高帧率单光子数据的红利。另一个耐人寻味的点是 SPAD 与 jots 的互补性:把二者在时间/空间分辨率上的取舍显式建模,或许能催生自适应选择传感模式的成像系统。对做计算摄影或低光/HDR 成像的研究者,本文关于”用运动换采样率”“用 W 通道提纯亮度”“伪随机蓝噪声抑制相干伪影”的三条思路都具有较强的迁移价值。