来源:CVPR 2023 论文题目:Neural Preset for Color Style Transfer 论文链接:https://arxiv.org/pdf/2303.13511 论文作者:Zhanghan Ke, Yuhao Liu, Lei Zhu, Nanxuan Zhao, Rynson W.H. Lau 内容整理:黄海涛 本篇论文提出了一种神经预设技术,以解决现有色彩风格转换方法的限制,包括视觉伪影、巨大的内存需求和缓慢的风格切换速度。本文方法基于两个核心设计。首先,作者提出了确定性神经色彩映射(DNCM),通过图像自适应色彩映射矩阵对每个像素进行一致的操作,避免了伪影问题,并支持具有小内存占用的高分辨率输入。其次,作者通过将任务分为颜色规范化和风格化两个阶段,开发了一个两阶段的流程,允许通过提取颜色风格作为预设,并在归一化的输入图像上重复使用它们来实现高效的风格切换。由于缺乏配对数据集,作者描述了如何通过自监督策略训练神经预设。通过全面评估展示了神经预设相对于现有方法的各种优势。
随着社交媒体(如Instagram和Facebook)的普及,人们越来越愿意在公开场合分享照片。在分享之前,对颜色进行修饰成为了一项必不可少的操作,可以帮助更生动地表达照片中捕捉到的故事,并给人留下良好的第一印象。照片编辑工具通常提供颜色风格预设,如图像滤镜或查找表,以帮助用户高效探索。然而,这些滤镜是通过预定义参数手工制作的,不能为具有不同外观的图像生成一致的颜色风格。因此,用户仍然需要进行仔细的调整。为了解决这个问题,引入了色彩风格转换技术,可以自动将一个经过精细修饰的图像(即风格图像)的色彩风格映射到另一个图像(即输入图像)。
早期的色彩风格转换方法侧重于根据风格图像的低级特征统计对输入图像进行修饰。它们忽略了高级信息,导致图像固有颜色的意外变化。虽然最近基于深度学习的模型取得了良好的结果,但在实践中它们通常存在三个明显的限制(如下图)。首先,它们会在风格化图像中产生不真实的伪影(如扭曲的纹理或不协调的颜色),因为它们基于卷积模型进行颜色映射,这些模型对图像块进行操作,并且可能对具有相同值的像素产生不一致的输出。虽然一些辅助约束或后处理策略已经被提出,但它们仍然无法稳定地防止伪影。其次,由于运行时内存占用过大,它们无法处理高分辨率(如8K)图像。即使使用具有24GB内存的GPU,大多数最新模型在处理4K图像时也会遇到内存不足的问题。第三,它们在切换风格时效率低下,因为它们将颜色风格转换作为一个单阶段过程进行,每次都需要运行整个模型。
在本文中,作者提出了一种具有两个核心设计的神经预设技术,以克服上述限制:(1)神经预设利用确定性神经色彩映射(DNCM)作为基于卷积模型的颜色映射过程的替代方案。通过乘一个图像自适应的颜色映射矩阵,DNCM将相同颜色的像素转换为特定颜色,有效避免了不真实的伪影。此外,DNCM以小内存占用对每个像素进行独立操作,支持非常高分辨率的输入。与需要回归数万参数的自适应3D LUTs或执行特定颜色映射的自动滤镜不同,DNCM只需要几百个可学习参数就可以对任意颜色映射进行建模。(2)神经预设通过两个阶段进行颜色风格转换,以实现快速的风格切换。具体而言,第一阶段将输入图像建立为一个nDNCM进行颜色归一化,将输入图像映射到表示“图像内容”的归一化颜色风格空间;第二阶段将风格图像建立为一个sDNCM进行颜色风格化,将归一化的图像转换为目标颜色风格。这样的设计在效率上具有两个优势:sDNCM的参数可以存储为颜色风格预设,并由不同的输入图像重复使用,而经过nDNCM归一化一次后,可以使用各种颜色风格预设对输入图像进行风格化。
此外,由于没有提供成对数据集,作者提出了一种新的自监督策略来训练神经预设。综合评估表明,神经预设在各个方面显著优于最先进的方法。值得注意的是,神经预设可以为8K图像生成忠实的结果,并且可以在视频帧之间提供一致的颜色风格转换结果,无需后处理。
一种直观的建模确定性颜色映射并适应不同图像的思路是将滤镜/LUTs与CNN预测的图像自适应参数结合起来。然而,每个图像滤镜只能提供单一的颜色映射,整合有限数量的滤镜只能覆盖有限范围的颜色映射。此外,作为常见的32级3D LUT约有1万个参数,回归图像特定的3D LUT是不可行的,基于预测系数来合并模板LUTs的方法仍然需要优化数万个参数来构建模板LUTs。
在这里,本文提出了DNCM方法来使用较少的可学习参数建模任意确定性颜色映射。如下图所示,给定大小为
的输入图像
,将其下采样得到一个缩略图
,为DNCM提供了图像自适应的颜色映射矩阵
。具体而言,将
输入到编码器
中预测大小为
的
,然后将其重塑为
的大小,如下所示:
其中
表示重塑操作,
根据经验设置为一个较小的值(例如16)。通过矩阵
,构造DNCM来改变
的颜色。在DNCM中,首先将
展开为一个大小为
的2D矩阵。然后,使用投影矩阵
将每个像素嵌入到一个
维向量中。之后,将嵌入向量与
相乘。最后,应用另一个投影矩阵
将嵌入向量转换回
颜色空间,并将像素重塑为具有新颜色的输出
。注意,
和
都是可学习的矩阵,为所有图像共享。形式化地,DNCM可以定义为:
将颜色映射实现为上述公式带来了三个主要的好处。首先,它有效地避免了视觉伪影,因为在将
中的像素映射到
之后,相同颜色的像素仍然具有相同的颜色。其次,它只需要很小的内存占用,因为每个像素都是独立处理的,并且使用高效的矩阵相乘。第三,它使得
易于优化,因为只需要回归
个图像自适应参数。
本文设计了一个基于DNCM的显式两阶段流程,流程的关键是如果能够将图像的颜色风格与其“图像内容”分开,就能够有效地将不同的颜色风格转换到“图像内容”上。为了修改图像的颜色风格,但保留“图像内容”,本文提出利用一对nDNCM和sDNCM。nDNCM将输入图像转换为只包含“图像内容”的空间,而sDNCM则利用从风格图像中提取的参数将“图像内容”转换为目标颜色风格。为了表示“图像内容”,本文提出通过反向传播来学习表示“图像内容”的归一化颜色风格空间。在这样的归一化颜色风格空间中,具有相同内容但具有不同颜色风格的图像应该具有一致的外观,即相同的归一化颜色风格。
如下图(a)(b)所示,修改编码器
以输出
和
,它们作为nDNCM和sDNCM的参数。假设想将样式图像
的颜色风格转换到输入图像
上。在第一阶段,通过使用从
预测的
,将
转换为在归一化颜色风格空间中的
,即:
在第二阶段,提取
即包含
颜色风格的参数,通过sDNCM将
转换为风格化图像
,即:
通过将颜色风格参数存储为预设,并重复使用它们来构建sDNCM,可以支持使用颜色风格预设进行快速的风格切换,只需要对输入图像的颜色风格进行一次归一化,然后可以通过使用存储的预设快速地将其调整为不同的颜色风格,通过sDNCM获得调整后的图像,如下图(c)。
本文开发了一种自监督训练策略来训练神经预设,如下图所示。由于没有ground truth的风格化图像可用,作者从输入图像
创建伪风格化图像。具体来说,对
进行扰动,得到两个具有不同颜色风格的增广样本,分别表示为
和
。使用的扰动涉及只改变图像颜色的操作,例如随机图像滤波器或LUTs。
流程的第一阶段旨在规范化输入图像的颜色风格,这意味着具有相同内容但不同颜色风格的输入图像在归一化的颜色风格空间中应该是一致的。因此,本文在该阶段的输出之间应用
一致性损失。具体而言,预测nDNCM的参数
来将
转换为
,并通过以下方式对
进行约束:
流程的第二阶段旨在对归一化的图像进行风格化。为了将输入图像转换为新的风格,交换预测的sDNCM参数
来对两个样本进行风格化处理,即
将由
进行风格化处理,而
将由
进行风格化处理,如下所示:
为了学习颜色风格转移,在I和Y之间应用L1重构损失,如下所示:
最后的损失函数如下:
数据集。本文采用最近的颜色风格转移方法中的图像来训练模型。在训练期间使用约5000个LUT文件和随机图像滤镜调整策略作为输入颜色扰动。同时收集了50个具有多样化颜色风格的图像,并将每两个图像配对构建了一个包含2500个样本的验证集。
实现。本文在神经预设中采用EfficientNet-B0作为编码器E,将E的输入大小固定为256×256。设置DNCM中参数维数
为16,因此E预测的每个图像的参数数量仅为256。使用Adam优化器对神经预设进行32个epoch的训练。使用批量大小为24,初始学习率为
,在24个epoch后乘以0.1。将损失权重
设置为10。
本文将神经预设与基于深度学习的方法(PhotoWCT、WCT2、PhotoNAS、PhotoWCT2和Deep Preset)以及传统方法(CT)进行了比较。
定性结果:下图展示了定性结果的优越性。首先,神经预设生成了更自然的风格化图像(例如下图(a)中汽车和墙壁的颜色)。其次,神经预设能够保留目标颜色风格的细节纹理(例如下图(b)中放大的文字)。第三,神经预设更擅长保持物体固有颜色(例如下图(c)中的人发和衣物区域)。第四,神经预设的输出与风格图像具有更一致的颜色特性(例如下图(d)中的亮度和对比度)。
定量结果:下图显示了本文的神经预设与“理想”风格化质量最接近。尽管PhotoWCT2在下图中具有较高的风格相似性分数,但从上图中可以观察到它倾向于过度拟合参考图像的颜色风格,这导致了较差的视觉结果。Deep Preset在下图中具有较高的内容相似性分数,因为它通常无法改变输入图像的颜色风格。此外,CT的两个分数都较低,因为它有时会产生非常不稳定的结果。
推断效率和模型大小:如下表所示,与最快的最新方法(即PhotoWCT2 )相比,神经预设在2K图像上实现了近28倍的加速。神经预设还能够在4K分辨率下实现实时推断(约为52fps),并且能够以超过16fps的速度处理8K分辨率的图像。下表还显示,现有方法在推断过程中需要大量的内存。即使使用具有24GB内存的GPU,其中许多方法仍无法处理4K分辨率的图像,并且所有方法在8K分辨率下均无法处理。相比之下,神经预设仅需要1.96GB的内存,不论图像分辨率如何。这是因为神经预设中的nDNCM/sDNCM在每个像素上独立操作,通过将高分辨率图像分割成小块进行处理,可以节省内存。此外,神经预设还具有最低的参数数量。
将神经预设与滤镜和LUTs进行比较。在通过照片编辑工具(例如Lightroom)手动修整图像后,将编辑参数以滤镜/LUTs格式导出为预设,以便自动处理一组图像。同时,通过神经预设将重新调整后的图像的颜色风格转移到其他图像上。如下图所示,滤镜/LUTs无法将具有不同颜色风格的图像转换为一致的颜色风格(下图(b))。例如,应用滤镜/LUTs后,亮度高的图像将过曝,而暗的图像仍然保持暗。相比之下,通过从重新调整后的图像中提取的颜色风格参数,神经预设提供了更一致的颜色风格的结果(下图(c))。
DNCM中参数维度k。下表显示,设置k < 16会显著降低风格相似性,但对内容相似性影响较小,而设置k > 16会获得更好的性能,但推理时间也更长。因此,本文使用k = 16,这提供了速度和性能之间的良好平衡。下图显示了不同k值的结果,表明k值对定性结果也具有巨大影响。
的有效性。本文在下图中可视化了流水线的第一阶段输出的“图像内容”。应用
可以提供更一致的
表示“图像内容”。此外,实验证明使用
对神经预设进行学习可以产生更好的结果,即
有助于流水线更好地收敛。
本文提出了一种简单但有效的神经预设技术用于颜色风格转移。通过提出的DNCM和两阶段流水线,神经预设在各个方面相对于现有的最新方法都有显著的改进。然而,神经预设也有局限性。首先,如果输入图像经过高压缩比的JPEG压缩,已有的JPEG伪影可能会在输出中放大(下图(a))。第二,它可能无法在具有非常不同本质颜色的图像之间进行颜色风格转移(下图(b))。第三,它无法执行局部自适应的颜色映射,将图像中的相同颜色转移到不同的颜色上(下图(c))。未来的研究可以解决这些限制,例如,开发辅助规则来减轻JPEG伪影的影响,或者在涉及改变图像本质颜色的复杂情况下引入适当的用户交互。