人脸AI识别实战:用AI生成了这些人一生的样貌变化 | 附源码

news2024/11/17 4:46:21

这是来自斯坦福和华盛顿大学研究员发表的论文,提出了基于GAN的新方法,仅需要一张照片即可生成一个人从小时候到老了的样子。

论文:https://arxiv.org/abs/2003.09764

项目地址:

https://github.com/royorel/Lifespan_Age_Transformation_Synthesis

关于这篇论文的介绍在之前的文章中,有所介绍,这里就不多赘述。文章的重点是如何将这个项目用起来!

这里我已经将坑帮大家填好了,也会附上代码和相关权重的下载链接,由于ti子,所以部分小伙伴在跑的时候可能会比较麻烦(当然我也是其中的一个),所以我现在我已经把文件都打包好了,大家可以放心使用!

demo 代码分享和使用

完整的项目使用(如果从附带的链接下载可以跳过下面的步骤):

# 克隆项目git clone https://github.com/royorel/Lifespan_Age_Transformation_Synthesis.git# 环境配置和预训练模型下载pip install -r requirements.txtpython download_models.py

PS:因为模型很大而且是从谷歌网盘上面下载的导致很可能会失败

因此推荐从这里下载,然后直接运行我写好的demo.py代码即可

链接: https://pan.baidu.com/s/1Jwg-q9nYYAGb5o5fevT9zA  

提取码: aicv

为了便于大家使用自己的照片进行测试,这里说明一些重点​​​​​​​

# demo.py文件import osfrom collections import OrderedDictfrom options.test_options import TestOptionsfrom data.data_loader import CreateDataLoaderfrom models.models import create_modelimport util.util as utilfrom util.visualizer import Visualizer
opt = TestOptions().parse(save=False)opt.display_id = 0 # do not launch visdomopt.nThreads = 1   # test code only supports nThreads = 1opt.batchSize = 1  # test code only supports batchSize = 1opt.serial_batches = True  # no shuffleopt.no_flip = True  # no flipopt.in_the_wild = True # This triggers preprocessing of in the wild images in the dataloaderopt.traverse = True # This tells the model to traverse the latent space between anchor classesopt.interp_step = 0.05 # this controls the number of images to interpolate between anchor classes


data_loader = CreateDataLoader(opt)dataset = data_loader.load_data()visualizer = Visualizer(opt)
opt.name = 'males_model' # change to 'females_model' if you're trying the code on a female imagemodel = create_model(opt)model.eval()
img_path = "t.jpg" # 添加希望生成的图片
data = dataset.dataset.get_item_from_path(img_path)visuals = model.inference(data)
os.makedirs('results', exist_ok=True)out_path = os.path.join('results', os.path.splitext(img_path)[0].replace(' ', '_') + '.mp4')visualizer.make_video(visuals, out_path)


注意:

1、img_path = "t.jpg"

添加自己希望生成的人脸照片,最好是正脸,否则效果会比较差

2、opt.name = 'males_model' 

根据输入图片中人物的性别进行修改,男性:males_model, 女性:females_model

# 即修改成:opt.name = 'females_model'

3、输出的结果为 MP4视频,保存的路径在result文件夹下,并以图片的名字进行命名

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows上安装并使用exiftool修改图像exif信息

使用exiftool可以对图像的exif信息进行读取、修改、写入等操作。在linux系统上可以直接通过命令行安装,非常方便。但是在windows上,一开始我看了这篇博客,感觉里面写的还挺详细的,就跟着做了一下。里面是说要先安装perl&#xff0…

特斯拉突飞猛进背后带给自己的深思

引言 2013年开始接触汽车行业,那时候所做的事情也是跟着导师去解析整车CAN信号(Message),也是从那时才知道车身现场总线——CAN总线。在那时候汽车给自己的感觉还是整车成本所占比重是机械高,软件比重低的可怜&#x…

【目标检测】语义分割之FCN算法学习

目录:FCN一、CNN与FCN的比较二、FCN上采样理论讲解2.1 双线性插值上采样2.2 反卷积上采样2.3 反池化上采样三、FCN的过程四、跳级结构一、CNN与FCN的比较 CNN:在传统的CNN网络中,在最后的卷积层之后会连接上若干个全连接层,将卷积…

字符串去重整理 哈希映射解题

目录 给你一个字符串数组,删除他们之间相同的元素,(保留一个重复值) 【方法一】使用迭代器进行区间删除 【方法二】原地删除 【方法三】使用计数跳过 1002. 查找共用字符 【解法一】我的第一个理解题意出错的解法 【解法二】初…

稀疏矩阵向量乘法的openmp并行优化

稀疏矩阵向量乘法 添加链接描述本人在这篇博客已经介绍过稀疏矩阵向量乘法以及相关的一些存储方式,这里重点开始介绍openmp的并行优化。 下面这个图片就是采用CSR格式读取稀疏矩阵向量乘法的主体架构,全称为Compressed Sparse Row Matrix压缩稀疏矩阵行格式,该格式对矩阵进…

MyBatis【MyBatis的增删改查操作与单元测试】

MyBatis【MyBatis的增删改查操作与单元测试】🍎一.单元测试🍒1.1 什么是单元测试?🍒1.2 单元测试好处🍒1.3 Spring Boot 框架 单元测试使用🍒1.4 单元测试实现🍒1.5 断言🍎二.MyBati…

性能测试-微服务性能压测监控和调优【重点】【杭州多测师_王sir】【杭州多测师】...

本文主要内容一、何为压力测试1.1、 大白话解释性能压测是什么:就是考察当前 软件和硬件环境下,系统所能承受的最大负荷,并帮助找出系统的瓶颈所在。性能压测的目的:为了系统在线上的 处理能力和稳定性维持在一个标准范围内&#…

【MySQL】MySQL存储过程与存储函数实战(MySQL专栏启动)

📫作者简介:小明java问道之路,专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

LeetCode题解 二叉树(九):106 中序和后序遍历序列构造二叉树;105 从前序与中序遍历序列构造二叉树

下面要讲的两道题,从二叉树的角度来讲,是非常重要的,此前一直是遍历二叉树,现在就要根据数组,构造二叉树 106 从中序与后序遍历序列构造二叉树 medium 示例:中序遍历 inorder [9,3,15,20,7] 后序遍历 po…

SpringBoot做个埋点监控

JVM应用度量框架Micrometer实战 前提 spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收集,Grafana(增强ui)进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。…

Three.js一学就会系列:04 炫酷3D文字

系列文章目录 Three.js一学就会系列:01 第一个3D网站 Three.js一学就会系列:02 画线 Three.js一学就会系列:03 炫酷3D划线 文章目录系列文章目录前言一、创建一个vue项目二、安装及使用安装创建一个dom元素三、核心代码讲解场景处理“雾”光…

83.【JQuery.Ajax】

Ajax(一)、Ajax简介1.什么是Ajax2.jQuery.ajax介绍(二)、环境搭建1.创建Model并添加web框架2.配置Artifacts的lib文件3.配置web框架下的web.xml4.配置spring-mvc.xml配置文件5.配置汇总文件applicationContexe.xml6.进行测试(三)、伪造Ajax1.iframe内敛框架伪造Ajax(四)、使用真…

【阶段二】Python数据分析NumPy工具使用01篇:NumPy工具介绍、NumPy工具安装与数组的创建

本篇的思维导图: NumPy工具介绍 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,这个包封装了多个可以用于数组间计算的函数供你直接调用,是一个运行速度非常快的数学库。 NumPy工具安装 代码 结果

从输入URL到渲染的过程中到底发生了什么?

CDN缓存DNSTCP三次握手、四次挥手浏览器渲染过程输入URL到页面渲染过程的一些优化 下面我将“从输入URL到渲染的全过程”大概的描述出来,再对其过程加以解释,了解过程中可以做哪些优化。文章内容有点长,需要有足够的耐心看完哟!&…

MySQL数据库高级面试题(2)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java面试题…

【自学Java】Java if else-if else语句

Java else if Java else if教程 在 Java 语言 中,关键字 if 是用于测试某个条件(布尔型 或逻辑型)的语句是否满足一定的条件,如果满足特定的条件,则会执行 if 后由大括号 {} 括起来的代码块,否则就忽略该…

利用Dlib 实现人脸68个特征点的标定

系列文章目录 文章目录系列文章目录前言1. 开发环境依赖2. 设计流程68个特征点提取:OpenCv 绘图:3. 源码OpenCv 的画图函数1. 画圆2. 写字符3.关于 颜色数组:前言 利用 Dlib 官方训练好的模型 “shape_predictor_68_face_landmarks.dat” 进…

【C语言 数据结构】树

文章目录树一、树的概念二、树的应用1)树可表示具有分枝结构关系的对象2)树是常用的数据组织形式三、树的表示四、树的基本术语五、树的四种表示方法5.1 双亲表示法5.2 孩子表示法5.3 双亲孩子表示法5.4 孩子兄弟表示法树 一、树的概念 树形结构是一种…

Git基础知识学习

1. Git工作机制 Workspace: 工作区,就是你平时存放项目代码的地方Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息Repository: 仓库区&#xff0…

CleanMyMac4.12.3全新版本Mac清理优化工具

CleanMyMac X是一款超好用的Mac清理优化工具,可以帮助用户删除系统垃圾、不需要的应用程序和恶意软件,并调整您的 Mac 以获得最大速度! CleanMyMac X作为一款知名的系统清理软件,深受广大用户们的喜爱。它操作简洁,能够…