论文地址:Implementation of https://arxiv.org/abs/1912.13457
参考大佬复现代码:

  1. https://github.com/taotaonice/FaceShifter
  2. https://github.com/Heonozis/FaceShifter-pytorch

由于论文原文没有给出代码,代码1应该算是原创。我在上面的基础上将原来模型处理256x256像素的图像改为128x128。

amp混合精度训练

暂且不说NVIDIA官方出这个包安装的坑,混合精度训练确实不是我等小白能够轻易驾驭的,模型训练的时候由于loss下溢,加上GAN本来就不好训练,后面loss就nan了。最后还是改成原生的训练了,个人感觉训练速度并没有太大变化,可能因为我没有装CPP扩展的原因。

复现效果仍然不佳

训练过程中发现换脸生成的图像分辨率始终不如原图像好,这只是小事。论文中使用的loss函数需要手动确定比例这是最坑的,按照原文的比例训练出来的换脸几乎没有效果。提高L_id后要么可能产生各种鬼脸,要么生成图形存在噪声,要么不真实。
我没有在数据集上下太大功夫,只用了celeba。这可能是导致我训练结果不理想的一大原因。

训练过程图像(用第一排的人脸,第二排的属性,生成第三排的图像):

上面的训练出来的模型实际泛化效果:

这个效果和opencv官方出的传统换脸方案可差远了。

一点建议

不要对模型泛化效果有什么期待,最好还是拿应用的目标人脸相似的数据集来实际操作吧。

补充下我的训练代码 2022.11

不过代码是两三年前的了,很多细节记不清了,有需要的小伙伴可以用这个代码试试能不能复现。
https://gitee.com/geekhch/Faceshifter-pytorch/tree/larger/

AI换脸踩坑记录:Faceshifter相关推荐

  1. AirSim学习和踩坑记录(不定时更新)

    版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...

  2. YOLOv5在无人机/遥感场景下做旋转目标检测时进行的适应性改建详解(踩坑记录)...

    作者丨略略略@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/358441134 编辑丨极市平台 文章开头直接放上我自己的项目代码: https://github.co ...

  3. GTX1660Ti 本地部署 Stable Diffusion踩坑记录

    踩坑记录 通过GitHub以及csdn开始安装 安装Anaconda,编译器以及CUDA.Cudnn 编译器 CUDA与Cudnn安装,**涉及电脑显卡的版本配置问题** 本地部署 踩坑实录 常见问题 ...

  4. 为Jupyter notebook配置R kernel过程及踩坑记录

    为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...

  5. Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子

    Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子 目录 Python打包工具Pyintealler打包py文件为windows exe文件过程 ...

  6. TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)

    本文作者是阿莱克西斯,原载于知乎,雷锋网(公众号:雷锋网)获得授权转载. (前排提醒,本文的人文内容部分稍稍带有艺术加工,请保持一定的幽默感进行阅读) 关注我最近想法的同学应该知道我最近都在把玩 TV ...

  7. 使用Java读取 “Python写入redis” 的数据踩坑记录

    https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...

  8. osx php7 imagick,[PHP] MacOS 自带php环境安装imagick扩展踩坑记录 | 码农部落

    前言 最近学习yii2,在搭建环境后,发现在访问contact页面时报错,如下: "Either GD PHP extension with FreeType support or Imag ...

  9. vue-i18n使用及踩坑记录

    使用步骤 1. 安装 npm i vue-i18n 2. vue-cli下使用 //1. 引入 vue-i18n import Vue from 'vue' import VueI18n from ' ...

最新文章

  1. Tomcat服务器的常用配置
  2. MATLAB中floor、round、ceil、fix区别
  3. opencv学习笔记11:图像滤波(均值,方框,高斯,中值)
  4. 海上瓶子下有东西吗_洗衣液瓶子我从来不扔,瓶身这样剪几刀,解决了很多家庭的大烦恼...
  5. 简历javaweb项目描述怎么写_硬件工程师简历-项目经验怎么写【范文】
  6. JAVA锁之可重入锁和递归锁及示例代码
  7. python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱
  8. [北航软工]技术规格说明书
  9. 数据采集和数据预处理
  10. linux 下安装openoffice服务 百度文库在线预览 doc转pdf、pdf转swf格式
  11. 2019年全球PC浏览器排行榜!
  12. 如何在CSDN上删除博客、删除自己上传的资源
  13. OpenCV显示MNIST中的手写图片
  14. 成功的路上会布满荆棘
  15. Basic4IOS (B4I) New Version Crack
  16. 2022 第十四届蓝桥杯模拟赛第一期(题解与标程)
  17. hdu 2084 数塔(DP)
  18. 游戏编程之十一 图像页CPICPAGE介绍
  19. linux下dynamips 与vpcs通信的实现
  20. 服务器Raid级别调整

热门文章

  1. 基于Android的相关毕业设计和论文
  2. 百分点认知智能实验室:基于NL2SQL的问答技术和实践
  3. 初识西门子Wincc OA——超大型/分布式SCADA
  4. JS获取A元素动态ID值
  5. 随便写写,都是我从网上收集的东西!
  6. 计算机应用基础文件管理教案,计算机应用基础第五讲:文件管理(教案).doc
  7. CCF官网刷题过程之中避免时间久了,网站登录失效 CCF提交代码编译出错
  8. igxe本地机器人怎么用_三分钟快速了解如何使用机器人系统
  9. 1041: 助推-滑翔弹道(钱学森弹道)(1级)输入一个正整数,表示滑翔总距离L。输出中程导弹的升阻比,结果保留0位小数。提示:可以用“%.0f”输出结果。
  10. 撤回的消息服务器上查的出来吗,想查看对方已撤回的微信消息?就用这一招!...