AI换脸踩坑记录:Faceshifter
论文地址:Implementation of https://arxiv.org/abs/1912.13457
参考大佬复现代码:
- https://github.com/taotaonice/FaceShifter
- 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相关推荐
- AirSim学习和踩坑记录(不定时更新)
版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...
- YOLOv5在无人机/遥感场景下做旋转目标检测时进行的适应性改建详解(踩坑记录)...
作者丨略略略@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/358441134 编辑丨极市平台 文章开头直接放上我自己的项目代码: https://github.co ...
- GTX1660Ti 本地部署 Stable Diffusion踩坑记录
踩坑记录 通过GitHub以及csdn开始安装 安装Anaconda,编译器以及CUDA.Cudnn 编译器 CUDA与Cudnn安装,**涉及电脑显卡的版本配置问题** 本地部署 踩坑实录 常见问题 ...
- 为Jupyter notebook配置R kernel过程及踩坑记录
为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...
- Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子
Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子 目录 Python打包工具Pyintealler打包py文件为windows exe文件过程 ...
- TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)
本文作者是阿莱克西斯,原载于知乎,雷锋网(公众号:雷锋网)获得授权转载. (前排提醒,本文的人文内容部分稍稍带有艺术加工,请保持一定的幽默感进行阅读) 关注我最近想法的同学应该知道我最近都在把玩 TV ...
- 使用Java读取 “Python写入redis” 的数据踩坑记录
https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...
- osx php7 imagick,[PHP] MacOS 自带php环境安装imagick扩展踩坑记录 | 码农部落
前言 最近学习yii2,在搭建环境后,发现在访问contact页面时报错,如下: "Either GD PHP extension with FreeType support or Imag ...
- vue-i18n使用及踩坑记录
使用步骤 1. 安装 npm i vue-i18n 2. vue-cli下使用 //1. 引入 vue-i18n import Vue from 'vue' import VueI18n from ' ...
最新文章
- Tomcat服务器的常用配置
- MATLAB中floor、round、ceil、fix区别
- opencv学习笔记11:图像滤波(均值,方框,高斯,中值)
- 海上瓶子下有东西吗_洗衣液瓶子我从来不扔,瓶身这样剪几刀,解决了很多家庭的大烦恼...
- 简历javaweb项目描述怎么写_硬件工程师简历-项目经验怎么写【范文】
- JAVA锁之可重入锁和递归锁及示例代码
- python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱
- [北航软工]技术规格说明书
- 数据采集和数据预处理
- linux 下安装openoffice服务 百度文库在线预览 doc转pdf、pdf转swf格式
- 2019年全球PC浏览器排行榜!
- 如何在CSDN上删除博客、删除自己上传的资源
- OpenCV显示MNIST中的手写图片
- 成功的路上会布满荆棘
- Basic4IOS (B4I) New Version Crack
- 2022 第十四届蓝桥杯模拟赛第一期(题解与标程)
- hdu 2084 数塔(DP)
- 游戏编程之十一 图像页CPICPAGE介绍
- linux下dynamips 与vpcs通信的实现
- 服务器Raid级别调整
热门文章
- 基于Android的相关毕业设计和论文
- 百分点认知智能实验室:基于NL2SQL的问答技术和实践
- 初识西门子Wincc OA——超大型/分布式SCADA
- JS获取A元素动态ID值
- 随便写写,都是我从网上收集的东西!
- 计算机应用基础文件管理教案,计算机应用基础第五讲:文件管理(教案).doc
- CCF官网刷题过程之中避免时间久了,网站登录失效 CCF提交代码编译出错
- igxe本地机器人怎么用_三分钟快速了解如何使用机器人系统
- 1041: 助推-滑翔弹道(钱学森弹道)(1级)输入一个正整数,表示滑翔总距离L。输出中程导弹的升阻比,结果保留0位小数。提示:可以用“%.0f”输出结果。
- 撤回的消息服务器上查的出来吗,想查看对方已撤回的微信消息?就用这一招!...