栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于仿射变换的换脸程序 Python实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于仿射变换的换脸程序 Python实现

三角面片/仿射变换/图片换脸

目录
  • 三角面片/仿射变换/图片换脸
    • 1. 人脸特征点识别(dlib)
    • 2. 仿射变换(affine transformation)
    • 3. 泊松融合让脸部融合更加自然
    • 4. 代码地址

1. 人脸特征点识别(dlib)

dlib是一个python的库,可以识别出人脸的68个特征点,识别出特征点后生成脸部三角面片,同时得到脸部掩膜FaceMask。
特征点生成三角面片使用scipy.spatial的Delaunay,tsearch方法。

soar和tony的脸部特征点以及三角面片
2. 仿射变换(affine transformation)

一个三角形中的每一个点都可以通过重心坐标来表示,那么一个三角形变成另一个三角形,每一个点都会被拉伸移动,这种变换也称之为仿射变换。

三角面片存在一一对应关系,对每个三角面片计算仿射变换后的结果,得到变换后的成像。

通过计算图片中每一个点的变换形状,可以得到换脸后的结果

tony的脸变换到soar脸上
3. 泊松融合让脸部融合更加自然

可以直接把变换后tony的脸覆盖到soar的图片上吗?也许可以,但是最好不要。因为两张图片的亮度等等可能不同,直接嵌入会显得十分突兀。

直接脸部和身体合在一起会让图片显得很不自然,泊松融合是一种基于梯度的融合方法,可以让边缘过渡更加自然。在opencv里有响应的函数实现cv2.seamlessClone

最终结果
4. 代码地址

github地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011891.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号