近日,美图推出了全新的人工智能修图解决方案——美图云修,本文将从技术角度深入解读该方案,目前用户也可通过美图 AI 开放平台进行体验。邢台金老歪
商业摄影的工作流程中非常重要的一项是「后期修图」,它工作量大、周期长,同时,培养一名「下笔如有神」的修图师往往需要付出高昂的人力和物力成本,即便是熟练的修图师也需要 1-3 个月的时间熟悉和适应不同影楼的修图风格和手法。除此之外,修图师的专业水平不同,审美差异、工作状态好坏等因素都会造成修图质量波动。
针对以上痛点,基于美图成立 12 年来在人物影像领域积累的技术优势,美图技术中枢——美图影像实验室(MTlab)推出美图云修人工智能修图解决方案。修图过程中,AI 技术在实现多场景的自适应识别调参,呈现完美光影效果的同时,还能够快速定位人像,修复人像瑕疵,实现人像的个性化修图。
▲美图云修人像精修对比
接下来,本文将重点分析美图云修人工智能修图解决方案的技术细节。
智能中性灰技术
在修图中经常提到中性灰修图,也称 “加深减淡” 操作,通过画笔来改变局部的深浅,在 PS 中需要手动建立一个观察图层,用以凸显脸部瑕疵,如斑点、毛孔、痘印等,然后在观察图层中逐一选取瑕疵区域对原人脸对应瑕疵区域进行祛除,在此之后对肤色不均匀的地方抹匀,最大限度地保留皮肤质感,但不少情况下仍需借助磨皮方法让肤色均匀,但磨皮会丢失皮肤质感。对每张人像图的皮肤区域重复该过程,可谓耗时耗力。传统 PS 中性灰的修图过程如图 2 所示。邢台金老歪
▲PS 中性灰修图图层(左:原图,中:观察组,右:图层)
美图云修的智能中性灰人像精修功能结合了自注意力模块和多尺度特征聚合训练神经网络,进行极致特征细节提取,智能中性灰精修方案使没有专业修图技术的人也可以对人像进行快速精修,在速度方面远超人工修图方式,并且保持了资深人工修图在效果上自然、精细的优点,在各种复杂场景都有较强的鲁棒性,极大地提升了人像后期处理的工作效率。如图 3 所示,为智能中性灰修图效果,无需手动操作,相比于目前各个 app 上的修图效果,如图 4 所示,有着更好的祛除瑕疵效果,并保留皮肤质感,不会有假面磨皮感。
▲美图云修 AI 中性灰精修效果对比
▲友商祛斑祛痘及磨皮效果(左:祛斑祛痘,右:磨皮)
AI 中性灰精修功能采用创新的深度学习结构,如图 5 所示,在网络编码器到解码器的连接部分加入双重自注意力特征筛选模块和多尺度特征聚合模块,让网络可以学习丰富的多尺度上下文特征信息,并对重要信息附加权重,让图像在高分辨率的细节得以保留,同时更好地修复问题肤质。
▲智能中性灰精修网络结构
双重自注意力特征筛选模块
双重自注意力特征筛选模块 [1] 是对特征图的空间映射和通道映射进行学习,分为基于位置的自注意力模块和基于通道的自注意力模块,最后通过整合两个模块的输出来得到更好的特征表达,如图 6 所示。邢台金老歪
▲双重自注意力模块结构
基于位置的自注意力模块用于获悉特征图中的任意两个像素的空间依赖,对于某个特殊的肤质特征,会被所有位置上的特征加权,并随着网络训练而更新权重。任意两个具有相似肤质特征的位置可以相互贡献权重,由此模块通过学习能够筛选出肤质细节变化的位置特征。如图 6 左边蓝色区域所示,输入一个特征图 F∈ R^(H×W×C),首先对该特征图分别沿通道维度进行全局平均池化和全局最大池化,得到两个基于通道的描述并合并得到特征图 F_Channel ∈ R^(H×W×2)。再经过一个 7x7 的卷积层和 Sigmoid 激活函数,得到空间权重系数 M_S ∈ R^(H×W),可以由以下公式表示:
其中 σ 表示 Sigmoid 激活函数, Conv_7x7 表示 7x7 卷积, Cat[]表示通道合并。
最后,将空间权重系数 M_S 对特征图 F 进行重新校准,即两者相乘,就可以得到空间加权后的新肤质特征图。
基于通道的自注意力模块主要关注什么样的通道特征是有意义的,并把那些比较有意义的特征图通道通过加权进行突出体现。高层特征的通道都可以看作是特定于肤质细节信息的响应,通过学习通道之间的相互依赖关系,可以强调相互依赖的特征映射,从而丰富特定语义的特征表示。如图 6 右边红色区域所示,输入与基于位置的肤质细节筛选模块相同的特征图 F∈ R^(H×W×C),对该特征图沿空间维度进行全局平均池化,得到给予空间的描述特征图 F_Spatial ∈ R^(1×1×C),再把 F_Spatial 输入由两个 1x1 卷积层组成表示的多层感知机。为了减少参数开销,感知机隐层激活的尺寸设置为 R^(C/r×1×1),其中 r 是通道降比。这样第一层卷积层输出通道为 C/r,激活函数为 PReLU,第二层卷积层输出通道恢复为 C。
再经过 Sigmoid 激活函数,得到通道权重系数 M_C ∈ R^(C×1×1),由以下公式表示:
其中 σ 表示 Sigmoid 激活函数, Conv_C ∈ R^(C×C/r) 和 Conv_(C/r) ∈ R^(C/r×C) 表示感知机对应的两层, PReLU 表示感知机中间的线性修正单元激活函数。
相同地,将通道权重系数 M_S 和特征图 F 相乘,就可以得到通道加权后的新特征图。将空间加权特征图和通道加权特征图进行通道合并,经过一个 1x1 卷积后与输入自注意力模块前的特征图相加,就可以得到矫正后的最终特征图。
多尺度特征聚合模块
多尺度特征聚合模块 [2] 的作用是对特征感受野进行动态修正,不同尺度的前后层特征图输入模块,通过整合并赋予各自的权重,最终将这些特征进行聚合,输出更为丰富的全局特征,这些特征带有来自多个尺度的上下文信息。邢台金老歪
如图 7 所示,以三个不同尺度输入模块为例,模块先使用 1x1 卷积和 PReLU 将上层 L_1 和下层 L_3 的特征通道变换为和当前层 L_2 ∈ R^(H×W×C) 一致,再通过元素和的方式将特征聚合成 L_C=L_1+ L_2+ L_3,然后经过一个空间维度的全局平均池化得到基于通道的统计 S ∈ R^(1×1×C),之后为了降低计算量经过一个 C/r 的 1x1 卷积和 PReLU 激活函数,生成一个压缩的特征表示 Z∈ R^(1×1×r),r 与自注意力特征筛选模块一致。这里让 Z 经过与尺度数量相同的平行卷积层,得到对应的特征描述向量 v_1、v_2 和 v_3, v_i ∈ R^(1×1×C)。将这些特征描述向量合并,再经过 Softmax 激活函数,得到各个尺度特征通道的校正系数 s_1、s_2 和 s_3, s_i ∈ R^(1×1×C)。将特征通道系数与对应尺度的特征图相乘后再进行聚合相加,得到最终的聚合特征 F_aggregation,表示为:
▲多尺度特征聚合模块结构
MTlab 所提出的 AI 中性灰精修方案通过设计有效的网络结构以及流程,结合特殊的训练方法,能够便捷、精确地进行智能中性灰人像修图。首先,相较于磨皮等传统图像处理方法,本方案输出的智能修图结果精细、自然,能够最大程度地保留人像肤质细节,对于各类复杂场景都具有更好的鲁棒性;其次,相较于人工中性灰修图,本方法能够保证稳定的修图效果,同时极大缩短处理时间,从而提升影楼图像后期处理的效率。
智能调色技术
常见修图所涉及的调色技术主要包括去雾,光照调整和背景增强等,其中光照调整涉及过曝修复和欠曝增强。其中,去雾主要用于保持图像的清晰度和对比度,使图像从视觉感观上不会存在明显雾感;曝光主要用于改善图像的光影效果,保证成像光影质量,使得相片能够呈现完美光影效果;而智能白平衡则是能够还原图像的真实色彩,保证图像最终成像不受复杂光源影响。调色涉及的技术较多,此处以白平衡智能调整技术为例,详细介绍 AI 技术调色流程。
目前常用白平衡算法进行色偏校正,存在以下难点:
传统白平衡算法虽然能够校正色偏,但是鲁棒性不足,无法应对实际需求中的复杂场景,往往需要设置不同的参数进行调整,操作繁琐。
目前主流的色偏校正方案大多数是基于卷积神经网络,而常规的卷积神经网络结构并不能彻底校正色偏,这些方案对于与低色温光源相近的颜色,比如木头的颜色,会存在将其误判为低色温光源的现象。
大多数数码相机提供了在图像菜鸡过程中调整白平衡设置的选项。但是,一旦选择了白平衡设置并且 ISP 将图像完全处理为最终的 sRGB 编码,就很难在不访问 RAW 图像的情况下执行 WB 编辑,如果白平衡设置错误,此问题将变得更加困难,从而导致最终 sRGB 图像中出现强烈的偏色。
美图影像实验室 MTlab 自主研发了一套专门能够适应多场景复杂光源下的智能调色技术。传统白平衡算法的核心是通过实时统计信息,比照传感器的先验信息,计算出当前场景的光源,通过传感器先验信息做白平衡,这种方法仍然有很多局限。MTlab 提出的智能白平衡方案(AWBGAN),依靠海量场景的无色偏真实数据,能够实现自适应的光源估计,完成端到端的一站式调色服务。AWBGAN 满足以下 2 个特点:
全面性:多场景多光源,涵盖常见场景进行多样化处理
鲁棒性:不会存在场景以及光源误判问题,色偏校正后不会造成二次色偏
当前的主流算法主要是集中在 sRGB 颜色域上进行色偏校正,但是这样处理并不合理。因为相机传感器在获取原始的 RAW 图像再到最终输出 sRGB 图像,中间经过一系列的线性以及非线性映射处理,例如曝光校正,白平衡以及去噪等处理流程。ISP 渲染从白平衡过程开始,该过程用于消除场景照明的偏色。然后,ISP 进行了一系列的非线性颜色处理,以增强最终 sRGB 图像的视觉质量。由于 ISP 的非线性渲染,使用不正确的白平衡渲染的 sRGB 图像无法轻松校正。为此 MTlab 设计了 AWBGAN 训练学习网络来完成色偏校正。
针对一张待校正色偏的图像,首先需要使用已经训练好的场景分类模型进行场景判定,获得校正系数,该校正系数将会用于 AWBGAN 的校正结果,能在校正结果的基础上进行动态调整。对于高分辨率图像如果直接进行色偏校正处理,耗时高。为了提高计算效率,MTlab 会将待校正色偏图像采样到一定尺度再进行校正操作,最后再将结果使用金字塔操作逆向回原图尺寸。完整的校正流程如图 8 所示。
▲色偏校正方案整体流程
生成网络的设计
上文中提到在 sRGB 图像上直接进行处理并没有在 Raw 图上处理效果好,因此生成器采用类 U-Net 网络结构模拟 sRGB 到 RAW 再转换回 sRGB 的非线性映射过程,其中编码器将 sRGB 逆向还原回 RAW 图并进行 RAW 图上的色偏校正,在完成正确的白平衡设置后,解码器进行解码,生成使用了正确白平衡设置的 sRGB 图像。整个 G 网络的目的不是将图像重新渲染会原始的 sRGB 图,而是在 RAW 上使用正确的白平衡设置生成无色偏图像。鉴于直接使用原始的 U-Net 网络生成的图像会存在色彩不均匀的问题,G 网络参考 U-Net 以及自主研发的方案做了一些调整:
在编码器与解码器之间加入另外一个分支,使用均值池化代替全连接网络提取图像的全局特征从而解决生成图像存在色块和颜色过度不均匀的问题;
使用 range scaling layer 代替 residuals,也就是逐个元素相乘,而不是相加,学习范围缩放层(而不是残差)对于感知图像增强效果非常好;