图像人脸融合

我要开发同款
匿名用户2024年07月31日
42阅读
开发技术GAN、pytorch
所属分类ai、图像编辑、图像生成、人脸融合、换脸、Deepfake、Faceswap、facechain
开源地址https://modelscope.cn/models/iic/cv_unet-image-face-fusion_damo
授权协议Apache License 2.0

作品详情

图像人脸融合

给定一张模板图和一张目标用户图,图像人脸融合模型能够自动地将用户图中的人脸融合到模板人脸图像中,生成一张与目标人脸相似,且具有模版图外貌特征的新图像。

其生成效果如下所示:

生成效果

模型描述

本模型使用多尺度属性编码器提取模板图属性特征,使用预训练人脸识别模型提取用户图的ID特征,再通过引入可行变特征融合结构, 将ID特征嵌入属性特征空间的同时,以光流场的形式实现面部的自适应变化,最终融合结果真实,高保真,且支持一定程度内对目标用户脸型的自适应感知。

模型结构

使用方式和范围

使用方式:

  • 直接推理,在任意真实人物图像对上进行直接推理。

使用范围:

  • 正脸或偏侧一定小范围角度的侧脸图像,人脸五官轮廓清晰无遮挡,图像分辨率大于128x128,小于4000×4000。

目标场景:

  • 互动娱乐,广告宣传,影楼试片等。

如何使用

在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,否则会影响人脸检测的结果导致无法进行融合操作。

  • 如果两张人脸的脸型差别过大,可能影响脸部边缘区域的融合效果。

模型推理流程

预处理

  • 人脸区域提取&对齐,得到256x256大小的图像用于模型推理。
  • 人脸识别模型提取用户人脸的脸部特征。
  • 3d重建网络对模板图重建三维结构信息。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论