AI

AI换脸工具:facefusion使用心得(后篇)

常规配置组合


通常【face_swapper+face_enhancer+gfpgan模型】对于原图和目标图像/视频是正脸照替换的场景,替换效果非常好。

FACE_DEBUGGER_ITEMS选项


在开启了FaceFusion的face_debugger模式后,FACE_DEBUGGER_ITEMS中的各个选项可提供如下功能:

  • bounding-box:显示图像中每张面部的边界框,边界框一般用于确定面部位置和大小。
  • score:这一般指的是面部检测的置信分数,衡量检测到的面部图像的质量和可信度。
  • face-mask:显示面部的遮罩图层,用于精确比如做面部替换或者美化。下图绿色框
  • age:预测并显示检测到的面部对象的年龄。
  • gender:预测并显示检测到的面部对象的性别。
  • landmark-5landmark-68:用于面部识别和面部表情跟踪。

在面部识别和换脸技术中,landmark-5landmark-68 代表了面部关键点的两个不同集合。landmark-5通常提供五个的基本关键点,包括眼睛、鼻尖和嘴巴;而landmark-68则提供更多,达到68个关键点,这包括了面部的轮廓、眼睛、眉毛、鼻子、嘴巴等细节部位。以下是它们在换脸精确度上的主要区别:

  • 精准度: landmark-68 由于关键点更多,能够提供更详细的面部结构信息,在换脸时能够实现更为精细和自然的结果。例如,在细节处理如唇形、眉型调整上会更精确。
  • 速度: landmark-5 在实施上比 landmark-68 要快8-10%。这是因为处理的关键点数量减少了,从而简化了计算过程。

如果偏向速度,landmark-5 是一个不错的选择,也是facefusion默认选项。如果需要更高精度和详细表现的换脸效果可以选择landmark-68

FACE MASK TYPES


在face-mask选项打开之后,facefusion有对应的遮罩类型 box、occlusion 和 region可供调试

每种遮罩类型在换脸精度上的区别如下:

  • box :最简单的矩形框遮罩,它围绕检测到的面部创建一个红色框。脸部匹配精度较低。它较少考虑面部五官的具体特定部位,较为粗暴将源图像脸部替换到目标图像/视频,在测量移动时容易出现脸部崩溃的情况
  • occlusion:能够精确锁定面部区域,当面部被其他对象遮挡时(比如眼镜、手指、帽子等)该遮罩类型有助于识别和处理遮挡区域,在换脸过程中提供比box遮罩有更好的精确度。如下图手指遮挡了脸部,occlusion遮罩会忽略手指部分的像素区域。

在换脸过程中使用的“红色圈”通常是为了标示被识别面部的区域。在box 遮罩的基础之上,红色圈围绕检测到的面部创建表示所识别的面部区域的范围。

  • 被替换区域:通常位于红色圈内的部分是目标面部区域,即将被源图像中对应部位替换的区域。
  • 被遮罩区域:红色框外的区域则不会受到替换操作的影响,保持目标图像原有的内容不变。

具体可以参考下面face_debugger模式下的box遮罩和occlusion遮罩,可以得到印证。

region 遮罩则是最精细的,它可以让使用者自行选择面部特定的区域或特征(如皮肤、左眉毛、右眉毛、左眼、右眼、眼镜、鼻子、嘴巴等)进行遮罩。该遮罩类型允许对面部的某部特殊处理,比如仅替换嘴巴、眼睛部分,而不改变整个面部,使得换脸效果在精度和自然度上更进一步

FACE MASK REGIONS遮罩区域


比如下图的FACE MASK REGIONS遮罩区域,如下选项left-eye、right-eye、skin、mouth、upper-lip和lower-lip被选上的部分是不会被替换的。

那么这些遮罩区域和替换区域如下图分布

根据官方文档,box遮罩适合快速且算力资源有限的场景;occlusion 类型适合需要处理复杂场景中的面部合成;region 类型则适合对面部细节有高精度要求的场合。使用者可以根据实际应用场景的需要,选择最适合的遮罩类型以达到最好的换脸效果。

细心留意第4秒开始,人物脸部从正面转向侧面在不同遮罩模式下的表现,region的表现形式是最自然的。