妆容迁移
所需条件:化妆前后对比图像(实例), A A A和 A ∗ A^{\ast} A∗;
输入:图像(目标) B B B
输出:妆容迁移图像 B ∗ B^{\ast} B∗
参考文献:Tong, D. , Tang, C. K. , Brown, M. S. , Xu, Y. Q. (2007). Example-Based Cosmetic Transfer. IEEE Computer Society.
妆容迁移(transfer cosmetic style):
(1)实例面部皮肤特征,如雀斑、痣和瑕疵等,不应被迁移;
(2)目标面部固有皮肤特征应保留。
实现方法:
(1)计算化妆前后色彩与光照变化;
(2)对实例与目标面部皮肤纹理和肤色差异进行调整;
(3)将妆容迁移到目标面部。
步骤:
(1)预处理
(2)妆容映射
(3)外观矫正
(4)眼部迁移
所需条件:
实例图像妆前 A A A、妆后 A ∗ 和 A^{\ast}和 A∗和目标图像 B B B,并确保 A A A、 A ∗ A^{\ast} A∗、 B B B的光照条件和姿态相似。
预处理步骤:
(1)去除眉毛和睫毛;
(2)用合成的纹理填充去除眉毛和睫毛产生孔洞;
(3)提取固有皮肤特征;
(4)将面部几何形状变形成标准面部。
在妆容迁移前,首先用贝叶斯扣图(Bayesian matting)将眉毛和睫毛分离:
(1)将背景、前景和不确定区域粗略标记出来,构建三元图(tri-map),不确定区域用贝叶斯扣图;
(2)输出为蒙板 α \alpha α,表示眉毛和睫毛在输入图像 B B B中的选区。
对从原始图像中分离眉毛和睫毛后产生的孔洞进行修补,修补方式包括图像修复(image inpainting)和纹理合成(texture synthesis)。
需要将固有皮肤特征(如雀斑、痣或瑕疵)从实例面部图像 A A A和 A ∗ A^{\ast} A∗中去除。独立成分分析(independent component analysis,ICA)
在图像预处理开始前,将所有图像面部变形为标准面部。
妆容映射(cosmetic map), C = { c p } C = \left\{ c_p \right\} C={cp}
c p = a p ∗ / a p , b p ∗ = c p b p c_p = a^{\ast}_p / a_p, \quad b^{\ast}_p = c_p b_p cp=ap∗/ap,bp∗=cpbp
在各个像素点 p p p上,色彩混合表示式为:
b p ∗ = b p ( γ ( c p − 1 ) + 1 ) b^{\ast}_p = b_p \left( \gamma (c_p - 1) + 1 \right) bp∗=bp(γ(cp−1)+1)
c p ∈ C c_p \in C cp∈C, b p ∈ B b_p \in B bp∈B。
色彩迁移只考虑色彩和反射的变化,并没有获取由化妆引起的细微几何变化(subtle geometry change)而导致的外观差异(difference in appearance)。
对实例妆容图像求拉普拉斯二阶导数,并将二阶信息映射到输出图像上。
假设:由局部几何变化引起的外观变化可通过拉普拉斯算子(Laplacian operator) Δ ( ⋅ ) \Delta (\cdot) Δ(⋅)获取,该算子用于计算某像素与其相邻像素的差异。
在该假设下,由妆容引起的几何外观变化可通过混合各个像素点 p p p的 a p ∗ a^{\ast}_p ap∗和 b p b_p bp近似表示,即局部拉普拉斯二阶导数估计为:
Δ b p ∗ = Δ ( β b p + ( 1 − β ) a p ∗ ) \Delta b^{\ast}_p = \Delta \left( \beta b_p + (1 - \beta) a^{\ast}_p \right) Δbp∗=Δ(βbp+(1−β)ap∗)
在给定 β \beta β后,等式右端为确定值,此时需要修改 b p ∗ b^{\ast}_p bp∗以满足上式对 Δ b p ∗ \Delta b^{\ast}_p Δbp∗的约束。该约束可通过高斯-赛德尔(Gauss-Seidel)迭代求解。
睫毛和眉毛的浓妆效果需要更精细的处理,包括毛发的长度、颜色和密度。
本文利用提取的眉毛和睫毛的蒙板 α \alpha α,将图像 B B B的眉毛和睫毛选区叠加到 B ∗ B^{\ast} B∗上,实现眉毛和睫毛的转移。
b p ∗ = α b p + ( 1 − α ) b p ∗ b^{\ast}_p = \alpha b_p + (1 - \alpha) b^{\ast}_p bp∗=αbp+(1−α)bp∗
本文假设妆容映射是乘性的,即图像 B B B妆前肤色会影响妆后肤色。
在极端浓妆情况下,比如京剧脸谱,妆容迁移表达示修改为:
b p ∗ = ( ( 1 − ζ ) a p ∗ / a p + ζ ) b p b^{\ast}_p = \left( (1 - \zeta) a^{\ast}_p / a_p + \zeta \right) b_p bp∗=((1−ζ)ap∗/ap+ζ)bp
其中 ζ ∈ [ 0 , 1 ] \zeta \in [0, 1] ζ∈[0,1]表示妆容的覆盖强度(covering strength)。对于油彩妆容, ζ = 1 \zeta = 1 ζ=1; ζ < 1 \zeta \lt 1 ζ<1表示妆容变淡。