Makeup-Go: Blind Reversion of Protrait Edit

Makeup-Go: Blind Reversion of Protrait Edit

Ying-Cong Chen, Xiaoyong Shen, Jiaya Jia

Intro

简单地说,就是将美图的操作blindly恢复。

Challenges

找到了这么几个问题:如果使用euclidean loss会因为component dominant effect产生问题。

Improvement Measure: 从principal component的角度来比较ground truth和network output。

分别对于美化过后的图与ground truth的图 和 neural network的输出 相减得到discrepancy maps:收集了$$1o^7$$个patches,并且都向量化;而后通过PCA降维,并根据系数 $$u$$ 递减排序。而后使用$$e{ij} = u_i^T v_j$$和$$\hat e{ij} = u_i^T \hat v_j$$表示第j个discrepancy pathch的第i个component。

对于第i个PCA component,定义了improvement measure

$$dj = \frac{\sum_j (e{ij}^2 - \hat e{ij}^2)}{\sum_j e{ij}^2}$$

然后根据实验发现,采用Euclidean loss会导致对于low ranking的component无法很好的拟合,因为largest component会把结果进行一定的加权;也就是说Euclidean loss从component的角度出发,是一种加权的loss。这种由于dominant component带来的bias问题叫做component dominant effect。

Our Framework

根据discrepancy map $$I_e = I_Y - T_X$$,可以得到$$I_Y = I_e + I_X$$。

Component Decomposition

对于vector space中的第i项可以降解为

$$v_y^{(i)} = u_i u_i^T v_y$$

而且每一个basis向量 $$u_i \in \mathbb{R}^{m^2}$$都可以重新银蛇到$$k_i \in \mathbb{R}^{m^2}$$,使得$$u_i^T v_y = k_i y$$,其中$$$$是一个convolution操作。

从而能够使得decomposition能够作为一部convolution操作

$$I^{(i)} = k'_i k_i I$$

Component-Specific Learning

当我们能够已经能够降解到每一个部分,下面就是如何学习它:用subnetwork来对每一个部分分别进行regression。每一个subnetwork一个特定的loss function,只在特定的component上进行regression。最终的image可以是将subnetwork的输出进行重构。这个框架叫做Component Regression Network (CRN)。

具体的实现细节如下:给定一个input image $$I_X$$,首先用3个convolution layer进行操作(3*3 kernel size和56个channel)。

Shrinking: 使用1convolution layer将feature map将特征维度从56降低到12,从而加速模型的train和test。

Nonlinear mapping: 将三个convolution layer中间通过PReLU进行stack,每一个convolutional layer都包含12个3×3的kernel。

Expending: reconstruction是dimension reduction的反向操作。使用1 convolution layer来讲feature map会64channel来作为最终的输出。

Experimental Setting

使用7个subnetworks来拟合7个top componenet,然后用一个shared subnetwork来拟合剩余的component。

Appendix

results matching ""

    No results matching ""