有意思的地方在于:这篇没有把「老片子颜色不对」当成一个调色问题,而是当成一个标注问题——边界画对了,颜色自己就对了。于是人的工作从调色挪到了画线。

一个把颜色藏进空间的老办法
1930 年代的 Kodacolor 是这样做彩色的:胶片表面压出一排极细的圆柱形透镜(lenticule),镜头前加一块红绿蓝三段的带状滤光片。光线经过滤光片被分成三份,再由每个透镜聚焦到它背后那一小段黑白乳剂上。也就是说,胶片本身没有任何染料,颜色完全以「条纹位置」的形式存在——底片上第几微米对应的是红、是绿还是蓝,全靠透镜的几何决定。放映时反过来走一遍,颜色就复现了。
这是一种彻底的空间复用彩色采样。今天数码相机的 Bayer CFA、多光谱相机的 SFA,做的是同一件事,只是把光栅换成了镀在像素上的滤光膜。区别在于:CFA 的采样格与像素格是同一套坐标,出厂就对齐了;而 Kodacolor 的光栅周期和扫描仪的像素格是两套彼此无关的坐标,中间还隔着近百年的胶片收缩、卷曲、划伤和不规范的翻拍。
所以还原它的第一步不是色彩变换,是在扫描图上找到每一条透镜的边界。找准了,接下来就是一个再常规不过的去马赛克;差半个周期,整幅画面的红绿就互换。已有的 doLCE(信号处理)和 deep-doLCE(深度学习)就卡在这里:论文说它们在「弯曲的光栅、低对比度区域、物理损伤或糟糕的翻拍条件」下仍会失败。
方法上的转折:把中间表示做成可编辑的
作者的做法是把流程拆成两段:U-Net 先分割出光栅边界,但不直接送去解码,而是先转成一份可编辑的矢量表示,摆到界面上让档案专家看。专家能做三件事——裁掉不可信的区域、整体平移边界(修水平错位)、整体倾斜边界(修角度错位)。改完的标注回灌进模型,用 1e-5 的小学习率微调,再把新模型跑一遍整段序列。
这个环在他们的实验里四轮收敛。第一轮大约 265 帧、占序列 11% 需要人工介入;第二轮专家的动作基本只剩裁切,偶尔有轻微平移;第三轮就只剩边缘裁切了。
还有一步很色彩科学的收尾:重建结果和原始扫描件都转到 CIELAB,只取重建的色度通道,亮度通道用原始银盐乳剂的。理由很实在——颜色是从光栅里推出来的,分辨率天然受限于光栅周期;而颗粒和纹理的细节只存在于原始黑白乳剂里。色度低分辨率、亮度全分辨率,这套一百年前电视制式就定下的分工,在这里仍然是最优解。
能迁到哪儿去
第一条是 SFA。多光谱滤光阵列的去马赛克研究,注意力几乎全在插值算法和网络结构上,默认「采样格已知且精确」。这篇提醒的是:一旦采样格本身有不确定性——阵列制造偏差、装配旋转、镜头引起的横向色差让不同波段的实际采样位置错开——颜色误差的主导项就从算法转到几何。做多光谱模组标定时,值得先测一测这项,而不是先调网络。
第二条是「无真值场景下怎么把专家知识灌进模型」。历史胶片没有 ground truth,指标无从谈起,但专家一眼能看出对错。这套「专家改中间表示 → 小学习率微调 → 全量重跑 → 只看还剩多少要改」的闭环,形状上和 ISP 调参一模一样:画质工程师说不出目标 CCM 是多少,但能判断这张肤色偏了。把可编辑的中间表示(而不是最终图像)作为人机交互的界面,是这篇最值得抄的一点。
局限
评估只在一段序列(1930 年的《Ein Besuch im Lappenlager》)上做,且全部是定性的——因为历史胶片根本没有颜色真值,作者也直说了这一点。所以「四轮收敛」是这一段片子的经验,不是一个可外推的数字;「11%」也只是这一次的介入率。另外,人工介入的三个操作(裁切、平移、倾斜)都是全局的刚性变换,对论文自己点名的「弯曲光栅」能补偿到什么程度,正文没有给出定量说明。
对做数码 ISP 的人来说,这篇的价值不在方法本身,而在它把一件平时被默认掉的事摆到了台面上:彩色,首先是一个采样问题。