给定一张模板图和一张目标用户图,图像人脸融合模型能够自动地将用户图中的人脸融合到模板人脸图像中,生成一张与目标人脸相似,且具有模版图外貌特征的新图像。
其生成效果如下所示:
本模型使用多尺度属性编码器提取模板图属性特征,使用预训练人脸识别模型提取用户图的ID特征,再通过引入可行变特征融合结构,
将ID特征嵌入属性特征空间的同时,以光流场的形式实现面部的自适应变化,最终融合结果真实,高保真,且支持一定程度内对目标用户脸型的自适应感知。
使用方式:
使用范围:
目标场景:
在ModelScope框架上,提供输入的模板图和用户图,即可以通过简单的Pipeline调用来使用。
import cv2
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
image_face_fusion = pipeline(Tasks.image_face_fusion,
model='damo/cv_unet-image-face-fusion_damo')
template_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/facefusion_template.jpg'
user_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/facefusion_user.jpg'
result = image_face_fusion(dict(template=template_path, user=user_path))
cv2.imwrite('result.png', result[OutputKeys.OUTPUT_IMG])
print('finished!')
建议图像中人脸五官区域轮廓完整,无明显遮挡,否则可能影响人脸检测结果导致融合效果不佳。
算法支持人脸偏侧一定角度,在偏侧角度不超过30度的情况下能取得更佳效果。
图像中人脸尺寸建议大于64×64像素,人脸区域建议不大于全图区域的2/3,否则会影响人脸检测的结果导致无法进行融合操作。
如果两张人脸的脸型差别过大,可能影响脸部边缘区域的融合效果。