本论文的主线其实很清楚:先造数据,再做模型,最后拿一个更像样的指标去评估。Bricker 是一套合成+真实的多帧包围曝光 RAW 数据集,BRACE 则是专门吃这套数据的恢复模型,核心目标是利用不同曝光下“条纹表现不一样、内容却基本不变”这一点,把条带从真实纹理里分离出来。数据构建这部分很关键。合成部分不是简单贴几条黑白线,而是用光线追踪去模拟屏幕成像,再把滚动快门、显示刷新、噪声、反向 ISP 都串起来,尽量逼近真实拍屏。真实部分则靠自动化多曝光采集工具,解决了多帧 RAW 对齐和采集成本高这两个老大难。模型侧的思路也不绕弯:先从频域里抓条带的主方向和主频率,形成一个频率感知条带先验,再把这个先验喂给多尺度空间交叉注意力调制器 MSCAM。说人话就是,模型先知道“条纹大概朝哪儿、能量有多强”,再决定该从哪一帧借信息、借多少信息。
闪烁带去除的难题与突破:为什么多帧RAW是关键?
手机拍屏幕,最烦的往往不是模糊,而是那种彩色条纹、锯齿边和局部色偏一起上阵的“精神污染”。更麻烦的是,这些条纹还很会伪装:一会儿像真实纹理,一会儿像噪声,单帧修复模型很容易把内容和伪影搅成一锅粥。这篇论文先把问题讲透了:闪烁带(Flicker-Banding,FB)本质上来自相机卷帘快门和屏幕亮度调制之间的时间混叠。卷帘快门是逐行曝光,屏幕却在按自己的节奏闪;两者一撞,时间域里的变化就被投影到空间域里,最后在图像上变成一条条亮暗交替的带状伪影。单帧方法的问题也很直接:当屏幕内容本身就有密集文字、网格、边框时,模型根本不知道哪些是真纹理,哪些是条带。于是论文干脆换思路——不再死磕一张图,而是利用不同曝光下条带形态会变化、内容却基本不变这一事实,改用多帧包围曝光 RAW来给模型提供“对照证据”。简单说,单张图像像做阅读理解,多张不同曝光图像则像开了答案解析。更关键的是,RAW 不是普通的成像结果,而是更接近传感器原始读数的数据形式。它保留了线性响应和高位深信息,少了很多 ISP 处理带来的“二次加工”。对于这种和曝光、亮度调制强相关的退化,RAW 天然比 sRGB 更适合建模。论文的判断很朴素:如果条带是从物理成像链路里长出来的,那修复也最好在物理信息更完整的 RAW 域里完成。
从物理模拟到真实采集:Bricker数据集构建全解析
先看数据集。论文发现,真实拍屏里的条带并不只是简单的平行黑白线,常见形态包括色偏条带、复合周期条带和锯齿/菱形条带。这些形态和显示器亮度调制策略、局部亮度分区、曝光时间都有关,不是随便画几条线就能糊弄过去的。合成部分 Bricker 不是“贴条纹”式的粗糙模拟,而是用光线追踪去还原完整屏幕成像链路。流程里先随机放置虚拟屏幕和相机,加入轻微抖动,再根据滚动快门、屏幕刷新方式和曝光窗口去计算每个像素接收到的亮度积分,之后再走反向 ISP、Bayer 马赛克和传感器噪声,最后得到 RAW 域的退化序列与对应真值。这套模拟的价值在于,它不是只生成“像条带”的图,而是尽量生成“为什么会有这种条带”的图。也正因为如此,论文能观察到条带在不同曝光下的形态、强度、对比度明显变化,这正是后面多帧恢复成立的前提。真实数据这边更像工程活。现有手机拍摄工具大多只能做固定 ISO 的包围曝光,想要同时控制曝光和 ISO、还要输出 RAW 并尽量对齐,麻烦得像在手机里做一台小型摄影棚。论文基于 Android 和 Camera2 接口做了自动化采集工具,把曝光参数控制、RAW 序列采集、对齐流程都串了起来,采集成本明显下降。真实集的一个巧思是:通过保持 ISO×曝光时间近似恒定,用更长曝光逐步逼近近乎无条带的真值帧。这样做的好处是,条带会随着曝光增大而减弱,而画面内容和位置还能尽量保持一致。论文最终构建了 250 个训练场景和 40 个测试场景,覆盖了不同屏幕类型、内容类型和拍摄条件。这一步很重要,因为多帧方法最怕的不是模型不够大,而是数据对不齐、退化不一致、真值不靠谱。Bricker 的意义就在于把这三个坑尽量填平了。
频率先行:揭秘FABP如何精准定位闪烁带
BRACE 的第一层本事,不是直接“擦条纹”,而是先读懂条纹。论文提出了Frequency-Aware Banding Prior,FABP,中文可以理解为“频率感知条带先验”。这里的先验不是玄学,而是先从频域里找条带的主方向、主频率和能量分布,让模型知道条带大概长什么样。具体做法也不复杂。论文先把每帧 Bayer RAW 的四通道平均成灰度图,再减均值、乘 Hann 窗抑制频谱泄漏,然后做二维傅里叶变换,找出有效频带中的最大峰值。这个峰值对应的就是条带的主频率和方向。换句话说,条带如果在空间域里像“看得见的麻烦”,那在频域里就会变成“更容易抓的尖峰”。论文这里还顺手提出了一个评估指标:Stripe Frequency Consistency,SFC,即条带频率一致性。它的英文全称是 Stripe Frequency Consistency,中文就是“条带频率一致性”。这个指标不是看图像是否“看起来顺眼”,而是看预测结果和真值在条带方向上的频谱能量分布是否一致,尤其适合衡量条带有没有被真正压下去,而不是被模型糊掉了。SFC 的设计挺有意思。它不是简单看频谱总能量,而是先用最短曝光帧提取条带主方向,再在该方向附近统计能量比例和径向分布;如果条带本来就很弱,SFC 还会自动降低惩罚,避免把“本来就没条带”的结果误判为坏结果。这个指标的思路很务实:别让评价指标跟着视觉错觉一起跑偏。
交叉融合的艺术:MSCAM如何实现跨曝光空间融合?
有了条带先验,下一步就是把多帧信息用起来。BRACE 的第二个关键模块是Multi-scale Spatial Cross-Attention Modulator,MSCAM,中文可理解为“多尺度空间交叉注意力调制器”。名字很长,作用其实很明确:在不同曝光帧之间,挑出最值得借的信息,再按条带先验去调制特征。它的做法不是直接堆一个大注意力,而是更省算力地走“先对齐,再筛选,再调制”的路线。论文先结合光流和可变形卷积对齐各帧特征,然后在三个尺度上做平均池化,得到粗细不同的 token。接着把这些 token 和全局条带先验融合,再让参考帧作为 query、其他帧作为 key 和 value 做交叉注意力。这样一来,模型就能知道哪一帧在当前区域更可靠,哪一帧更适合补细节。最后,MSCAM 不直接输出一坨新特征,而是生成类似 FiLM 的调制参数,对通道进行缩放和平移。这样做的好处是,模型可以在不引入过重密集注意力的情况下,实现跨曝光的选择性融合。说得更直白一点:不是把五帧全揉成一团,而是让模型学会“谁该多说话,谁该少添乱”。整体模型还保留了多帧恢复里常见的 recurrent 结构,并借鉴了 TRMNet 的时间聚合模块。训练上则分两阶段:先用合成数据预训练,让模型先学会“条带长什么样”;再用真实数据微调,补上真实拍摄里的色偏、反光、镜头畸变和轻微失配。这个路线很像先在模拟器里练车,再上真实道路,稳一点。