使用Python编写的换脸软件

这是一个使用Python编写的换脸软件,所提供的换脸功能包含以下两个场景:

  • 将图像B上的人脸换成图像A上的人脸,生成换脸图片。
  • 将视频B上的人脸换成图像A上的人脸,生成换脸视频。

整体上,程序由两个过程组成:人脸检测和提取、人脸转换,分别实现于文件detect.pyconvert.py,两个阶段分别提供可选选项:包括图像变换的方法(2D变换和3D变换)和是否进行色彩调和。

在图形界面上(实现文件:gui.py),提供生成的图片、视频预览功能,生成的图像视频会自动保存到out文件夹。

使用指南

准备

  1. 安装 Ananconda 或 Pycharm 以编译运行文件。

    推荐 Python版本:3.8.3

  2. 检查是否安装如下库,以及版本是否满足要求:

    推荐版本
    numpy >= 1.20.3
    scipy >= 1.6.2
    opencv-python >= 4.5.1.48
    dlib >= 19.22.0

    你可以通过 pip 或者 conda 进行安装或更新,例如在 Anaconda Prompt 界面下输入:

    pip install numpy==1.20.3
    pip install scipy==1.6.2
    pip install opencv-python==4.5.1.48
    pip install dlib==19.22.0
    

运行

  • 在 Anaconda Prompt 进入对应文件夹后,输入

    python main.py
    

    即可开启界面,也可以直接在 Pycharm 中右键运行,开启后界面如下:

运行效果

相对而言,3D Warp面部变化的效果由于2D Warp, 2D在边缘区域处理得不是很好;使用肤色调和(Color Correction)的效果也往往优于不使用肤色调和。

  1. 不同选项的换脸效果 - I (3D Warp + Color Correction)

    Result Image

|
|

  1. 不同选项的换脸效果 - I (3D Warp + Without Color Correction)

2D Warp + Without Color Correct 2D Warp + Color Correct
3D Warp + Without Color Correct 3D Warp + Color Correct
  1. 不同选项的换脸效果 - II (2D Warp + Color Correction)

下面可以明显看出2D Warp和3D Warp的不同效果:

2D Warp 2D Warp + Color Correction 3D Warp 3D Warp + Color Correction
  1. 视频换脸效果:视频换脸是按帧一一处理的,比较耗时。

关键算法

  • 人脸检测与提取

    • keypoints_detection - 通过人脸五官68个关键点识别人脸集合,基于dlib.shape_predictor函数和数据集shape_predictor_68_face_landmarks.dat
    • face_selection - 选取指定人脸
  • 人脸变换
    • face_swap - 人脸变换核心函数,步骤为:

      • 仿射变换(2D/3D)
      • 生成掩膜
      • 颜色校正(选)
      • 无缝接合
    • image_warping_2d - 2D仿射变换,通过调用cv2的warpAffine函数计算脸部映射后的人脸图像
      • points_transformation - 生成两份人脸关键点集的三角仿射变换矩阵M,作为2D Warping的关键参数。
    • image_warping_3d - 3D仿射变换,通过将图像变换为三角性构成的集合(借助spatial.Delaunay),对每个三角形区域进行运算和插值最后得到脸部映射后的人脸图像
      • grid_coordination - 获取点集对应的背景网格
      • bilinear_interpolation - 对人脸关键点坐标进行双线性插值处理,通过这个函数可以实现在改变图像大小的同时尽可能保证清晰度,用于人脸部分的缩放。
      • triangular_affine_matrices - 生成源点集到目标点集的三角仿射矩阵
    • mask_generation - 生成掩膜:借助cv2.fillConvexPoly填充凸多边形遮挡
    • color_correction - 通过高斯滤波进行人脸肤色调和

基于Python实现的换脸软件相关推荐

  1. 基于Python完成的配音软件之适用于有声主播

    本文介绍一下基于Python完成的配音软件,完全可适用于有声主播,当然为什么这么说,因为该配音软件实现了背景音乐的功能,做过有声主播的人都知道,若一段声音带有背景音乐,会高级,会显得有层次感. 软件界 ...

  2. 基于Python的电子教室软件中远程关机功能的原理与实现

    为更好地保证教学质量和提高学生的学习积极性,我使用Python开发了一套课堂教学管理系统,具有在线点名.在线答疑.随机提问.在线作业管理.在线自测.在线考试.数据汇总.试卷生成.屏幕广播等功能,前几天 ...

  3. python视频换脸下载_Faceswap拍照换脸软件电脑版(faceswap gui视频换脸)1.2官方版

    视频技术发展到现在可以说是非常的先进,而Faceswap就是一款技术型的软件,它是一款基于python进行使用的视频换脸软件,更新很快且效率高,不容易出错,即可出错也很容易进行调试,faceswap ...

  4. python软件管理系统_conda:基于python的软件管理系统

    python语言在发展的过程中,经历了python2到python3的迁移,对应的包也出现了多个版本.如何在一台服务器上同时安装不同版本的python,不同版本的package, 而且不互相干扰,是一 ...

  5. BciPy: 一款基于Python用于BCI研究的开源软件

    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 进行脑机接口(BCI)研究对技术和软件有很高的要求.为了加速BCIs的开发和可访问性,研究人员开发了BciPy,一个基于Python的用于BCI研究的开源软件 ...

  6. 用Python实现一个简单的智能换脸软件

    智能换脸软件 基本信息介绍 软件名称 软件名称是Picture Faceswap,表示图片换脸,是一款图片换脸软件. 软件功能 已知一幅A的人脸图像,新输入一张B的人脸图像,按下换脸键后,将A的图像自 ...

  7. 用python做生物信息数据分析_基于Python的自动获取生物信息数据的软件设计

    基于 Python 的自动获取生物信息数据的软件设计 * 周斯涵,刘月兰 ** [摘 要] [摘 要] 从国际生物信息学数据库中采集数据来进行相关领域的分析, 但随着数据库规模不断扩大 , 数据来源种 ...

  8. python通信自动化测试_基于Python的无线通信设备自动化测试软件的研制

    基于Python的无线通信设备自动化测试软件的研制 中国电子科技集团公司第十研究所 冯启俊 [期刊名称]<电子世界> [年(卷),期]2019(000)015 [总页数]2 无线通信设备的 ...

  9. 手把手教你写一个基于python+pyqt5的股票盯盘软件

    今天教大家基于Python+pyqt5开发一款股票盯盘小软件,里面含有微信推送.策略分析.回测.实时统计持仓盈亏等功能,其实我们也可以把它叫做股票量化小软件.开发这么一款小软件首先得具备Python的 ...

最新文章

  1. git服务器与客户端的安装与使用
  2. [scala-spark]10. RDD转换操作
  3. IDEA overwrite报错、languagelevel设置不生效问题
  4. 15寸计算机显示器,苹果确认15寸RMBP支持全球首款5K显示器
  5. 函数指针的定义和函数指针数组
  6. Hessian——轻量级的二进制协议远程调用实现方案
  7. css实训内容,实训五DivCSS布局基本.doc
  8. 小米浏览器 解析html5,JavaScript - 判断当前用户使用的浏览器
  9. 献礼厦门大学百年校庆!亿联网络「沉浸式交互教室」首次亮相即惊艳
  10. 加减乘除开平方运算java_数值问题(加减乘除、开方、平方)
  11. 软件测试之接口自动化面试题汇总
  12. [基于kk搭建k8s和kubesphere] 6 kk安装和部署
  13. 用计算机求a的平方根的顺序,算术平方根练习题
  14. win10系统oracle删除用户,win10 清除个人数据库
  15. 字符串切割函数strtok、strtok_s、strtok_r的区别
  16. java 异步上传一张图片_java异步上传图片
  17. 我也不晓得为啥要拉这个清单
  18. 下载种子成forum.php,forum.php
  19. CSS基础(样式声明、引用(行内样式、内部样式、外部样式、导入样式)、样式优先级)
  20. layui框架KIT ADMIN后台管理系统模板

热门文章

  1. 拆解AUKEY傲基65W 2C1A超级硅充电器PA-D9WAYON维安WMZ26N65C4
  2. 计算机网络综合布线仿真实训室,网络综合布线实训室简介
  3. 微积分(第三版)经济应用数学基础(一) 赵树嫄 编 中国人民大学出版社
  4. P5736 【深基7.例2】质数筛,10ms, c++最快代码
  5. openfire 开发插件
  6. QSystemTrayIcon——实现系统托盘
  7. GRE核心词汇助记与精练-List7 坐、站、躺
  8. python分数计算器_python算法——方程计算器小工具
  9. 导入3Dmax动画文件步骤
  10. 【讲稿】Impala在网易大数据中使用和优化实践-P2