|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果


机器之心报道
编辑:魔王、杜伟、小舟
打光是图像处理过程中的重要步骤 , 打光的好坏可能会影响整体效果的展示 。 打光方法也各有不同 , MIT、谷歌等的一项新研究另辟蹊径 , 通过神经光传输方法进行图像的二次打光和视图合成 , 实现了相当不错的效果 。
图像合成早已不是新鲜话题 , 但是「打光」可是所有照片的难题 。 对于人类摄影师而言 , 打光就是件挺复杂的事 , 那么合成图像中的光线问题又该如何解决呢?
最近 , 来自 MIT、谷歌和加州大学圣地亚哥分校的研究人员进行了一项研究 , 试图通过神经光传输(Neural Light Transport , NLT)对图像进行二次打光(relighting)和视图合成(view synthesis) 。
那么 , 这项研究提出的 NLT 方法效果如何呢?研究者在多个场景下进行了测试 , 包括 Directional Relighting、基于不同图像背景的打光、根据摄像头路径不同进行视图合成后的打光效果等等 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

效果看起来不错 , 就是有点像鬼片……(瑟瑟发抖
具体而言 , 在 Directional Relighting 场景下 , NLT 实现了如下效果:
在基于图像的 Relighting 场景下 , 人物的打光效果随着背景图像的变换而不断调整:
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

那么在涉及视图合成时 , 效果如何呢?
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

同时进行二次打光和视图合成呢?
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

NLT 方法如何实现这样的效果?我们来看论文详情 。
神经光传输(NLT)论文简介
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

论文地址:https://arxiv.org/pdf/2008.03806.pdf
项目页面:http://nlt.csail.mit.edu/
场景的光传输(LT)描述了场景在不同布光和视角方向下的样子 , 对场景 LT 的全面了解有助于在任意布光条件下合成新的视图 。
这篇论文探讨了基于图像的 LT 采集 , 主要用于光照平台设置中的人体 。 研究者提出了一种半参数方法 , 以学习嵌入到已知几何特性的纹理图集空间中的 LT 的神经表示 , 并将所有非漫射和全局 LT 建模为残差 , 并将其添加到物理精确的漫反射基底渲染中 。
具体而言 , 该研究展示了如何融合先前看到的光源和视图观察结果 , 基于选定的视点和期望照明条件合成同一场景的新图像 。
该策略允许网络学习复杂的材料效果(如次表面散射)和全局照明 , 同时保证漫反射 LT 的物理正确性(如硬阴影) 。 借助这一学得的 LT , 我们可以使用平行光或 HDRI 贴图以逼真的方式对场景进行二次打光 , 合成具有视图依赖效果的新视图 , 或者使用一组先前观察到的稀疏结果在一个统一框架中同时执行二次打光和视图合成这两种操作 。
该研究通过定性和定量实验表明 , NLT 方法优于当前最优的二次打光和视图合成解决方案 , 并且不需要像先前工作那样 , 对这两个问题进行单独处理 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

NLT 方法的大致流程 。
该研究的主要贡献有:
提出一种端到端的半参数方法 , 使用卷积神经网络从实际数据中学习对每个对象的 6D 光传输函数进行插值 。
通过将网络嵌入参数化纹理图集 , 并利用一组 One-Light-at-A-Time(OLAT)图像作为输入 , 实现可同时执行二次打光和视图合成的统一框架 。
提出了一组增强的纹理空间输入和一个基于物理精确漫反射基底的残差学习机制 , 使得网络能够轻松学习非漫射、高阶光传输效应(包括镜面高光)、次表面散射和全局照明 。
NLT 方法
研究者使用的框架是一个具备残差学习机制的半参数模型 , 旨在缩小几何代理(geometry proxy)的漫反射渲染与实际输入图像之间的真实感差距 , 具体如下图 2 所示 。
半参数方法用于融合先前记录的观察结果 , 以在任何预期的光照和视角下生成新的逼真图像 。 该方法得益于近年来计算机视觉领域的进展 , 使研究人员可以对人体对象实现精准的 3D 重建 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

图 2:之前的 Relightables 方法(Guo 等人 , 2019 年)、该研究提出的 NLT 方法和真实图像之间的真实感差距 。
NLT 方法的模型架构如下图 4 所示:
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

模型网络包含两个路径 , 分别是查询路径(Query Path)和观察路径(Observation Path) 。 其中「观察路径」以基于目标光源和视角方向采样的 K 个临近观察结果(作为纹理空间残差图)为输入 , 并将它们编码成多尺度特征 , 最后将这些特征池化以消除对顺序和数量的依赖 。
接着 , 将这些池化特征连接至「查询路径」的特征激活函数 , 「查询路径」以预期光源和视角方向(以余弦图的形式呈现)以及物理精确的漫反射基底(也在纹理空间中)作为输入 。 查询路径预测残差图 , 然后将其添加至漫反射基底 , 以生成纹理渲染结果 。
由于整个网络都嵌入在人体对象的纹理空间中 , 所以我们可以根据输入和监督信号训练同一个模型来分别执行二次打光和视图合成 , 或者同时执行这两个操作 。
实验结果
二次打光
如下表 3 所示 , 研究者对 NLT 方法与 Diffuse Base、Barycentric Blending、Deep Shading 等其他二次打光基线方法进行了定量评估 , 以 PSNR(峰值信噪比)、SSIM(结构相似性)和 LPIPS(学得感知相似性)作为评估指标 。
此外 , 研究者还对 NLT 方法进行了控制变量研究 。
结果表明 , NLT 方法的性能优于所有的基线方法 , 但 Diffuse Rendering 和 Barycentric Blending 等简单的基线方法也取得了较高的分数 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图
【|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果】

表 3:NLT 与其他 SOTA 二次打光方法的指标对比以及 NLT 的控制变量研究结果 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

图 7:在使用平行光的二次打光任务上 , NLT、其他方法与真值图像的效果对比 。
视图合成
如下表 4 所示 , 研究者对 NLT 和其他基线二次打光方法的视图合成效果进行了定量分析 , 结果表明 NLT 优于所有的基线方法 , 并且效果可以与 Thies 等人(2019 年)提出的仅执行视图合成但不进行二次打光的方法相当 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

表 4:NLT 与其他基线二次打光方法的视图合成指标对比 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

图 9:NLT、其他基线方法与真值图像之间的视图合成效果对比 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

图 10:同时执行二次打光和视图合成的效果展示 。
性能分析
最后 , 研究者分析了 NLT 方法在不同因素下的性能表现 。 结果表明 , 随着几何结构的退化 , 该研究使用的神经渲染方法始终优于严重依赖几何图形质量的传统重投影(reprojection)方法 。 在执行二次打光时 , 研究者还证实 NLT 方法在光源数量减少时也能合理地运行 , 表明 NLT 方法也有可能适用于更小的光照平台 。
控制变量研究
如下图 13 所示 , 研究者在二次打光任务上进行了 NLT 方法的控制变量研究 。 结果显示 , 去除模型的不同组件会不同程度地降低渲染质量 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图

失败案例
当然 , NLT 方法在视图合成时也出现了失败的案例 。 如下图 14 所示 , NLT 方法可能无法生成复杂光传输效果的真实视图 , 如脖子上所戴项链的视图 。
|用神经网络给照片补光,谷歌这项研究却实现了「鬼片」效果
本文插图


    推荐阅读