计算FLAME纹理空间

所谓“纹理空间计算”,指的是通过大量图像训练得到用于渲染人脸模型的纹理基。

0.为了获得初始纹理空间,我们将 FLAME 拟合到 Basel Face Model (BFM) 模板,并将 BFM 顶点颜色投影到 FLAME 网格上,以获得初始纹理基础。

1.模型匹配:然后将FLAME模型匹配到FFHQ图像,优化FLAME的形状、姿态和表情参数,初始纹理空间的参数,球谐光照(SH)参数(仅优化9个SH系数,跨三个颜色通道共享),和纹理偏移以捕获偏离初始纹理空间的纹理细节。匹配最小化标志点损失、光度损失以及形状、姿态、表情、外观和纹理偏移的各种正则化项。标志点损失将从面部模型表面投影的标志点与预测的2D标志点(使用FAN标志点检测器预测)之间的差异最小化。光度损失仅针对皮肤区域优化(由面部分割网络提供),以增强部分遮挡的鲁棒性。


2. 纹理填充:匹配后,计算的纹理偏移量为每个图像捕获非遮挡皮肤区域的面部外观。要完成纹理贴图,我们训练一个填充网络,该网络改编自GMCNN(跨所有纹理贴图),通过在可见面部区域(从匹配重建获得的可视性)中添加随机笔触(即随机大小和位置的笔触)以监督方式学习填充这些笔触。训练完成后,我们使用得到的填充网络填充所有遗漏区域。

3. 纹理空间计算:填充这1500个纹理贴图后,我们使用主成分分析(PCA)计算纹理空间。

所以总之,这个流程首先从BFM模型和FLAME的匹配得到初始纹理空间,然后使用FLAME模型匹配大量FFHQ图像,得到不完整的纹理图,使用填充方法补全纹理图,最后通过PCA从这些纹理图中学习FLAME的纹理空间。这是一个典型的数据驱动的学习模型空间的范例。

------------------------------------------------------------------------------------------------------------------------

所谓“纹理空间计算”,指的是通过大量图像训练得到用于渲染人脸模型的纹理基。之前我提到使用1500张人脸图像进行计算。过程如下:1. 收集大量真实人脸图像,如FLAME数据集中的1500张图像。2. 将所有图像对齐到常规人脸网格上,得到1500个UV贴图。3. 对1500个UV贴图进行主成分分析(PCA),得到描述图像集变化的主成分基。这些主成分基在原数据集的变化范围内,可以用来合成新的人脸纹理。4. 保留主成分基中解释大部分(95%以上)图像变化的基,作为人脸纹理空间。这通常在10-20个主成分左右。5. 任意的一组主成分权重都可以合成一张人脸纹理。通过随机采样不同权重,可以得到不同的人脸纹理。所以,“纹理空间计算”就是通过PCA分析大量真实人脸图像,得到一组主成分基,这组基可以用于合成各种自然的人脸纹理。这些纹理可以应用于3D人脸模型,产生逼真的渲染效果。 

猜你喜欢

转载自blog.csdn.net/u010087338/article/details/130779163