Python+AI智能编辑人脸

今天分享这个项目使用StyleGAN算法对人脸进行编辑。

在该项目中,可以改变图片中人物的发型、给人物加胡须、让人物微笑等等。

大致思路是,先用StyleGAN算法提取人脸特征,再利用人脸属性分类器(如:Nvidia的40个人脸属性分类器),找到可进行人脸编辑的属性,执行编辑后即可将原图变成想要的效果。

项目已在 GitHub 上开源,可直接运行。

下面我介绍下项目核心流程。

1. 提取人脸特征

下载StypeGAN预训练模型,放在指定目录下。

运行wy_gan_inversion.py获取人脸w并保存。

这里解释下w的概念,StypeGAN模型从训练图像数据中提取特征(如:头发、皱纹、眉毛),这些特征存储在每一张图片的latent code中,一张图片有许多latent code,一定数量的latent code组成latent(一个512维的向量),这个latent又被称为潜码

w是将潜码解耦后得到的。由于潜码的特征之间的耦合性比较大。例如:头发长度和男子气概,按照潜码的特征分布,这两个特征之间有紧密的联系。实际上,短发男子、长发男子都可以有很强的男子气概,因此需要将特征解耦。

项目中./checkpoint/wy_faces路径下有两个目录,分别为musktaylor,里面存放了已提取出来的w,对应文章开头的那个图,可供大家直接使用。

2. 得到标签属性

运行wd_direction_nv.py,对标签集分类,在w中找到可用的编辑方向。

标签集./checkpoint/label_dict/目录中,格式如下:

默认的标签集是存放在./checkpoint/label_dict/stylegan1/目录的stylegan1_attributes_seed0_30000.pt文件中。

如果想自己标记标签集,可以参考并运行./label_set_unit/generation_seed_zw.py文件。

3. 编辑人脸

最后,用前两步生成的结果对人脸进行编辑输出最终结果。

加载第一步产出的人脸w

wy_path = './checkpoint/wy_faces/taylor/ty-norm1024.pt'
w_y = torch.load(wy_path, map_location=device).clone().squeeze(0) # face

对应的图片如下:

加载第二步可用的编辑方向——微笑

wd_path = './checkpoint/wd_directions/ms-cases/00_smile/id0_dict1_l1_12k_acc0.89698_saga_iter2000.npy'
w_d = torch.tensor(np.load(wd_path))

对原图编辑

w_d = w_d.view(layere-layers,512)
clip1 = 0.0 # 0.01-0.03
w_d[torch.abs(w_d)<=clip1] = 0.0

w_y[start_layer:end_layer] = (w_y+a*w_d)[start_layer:end_layer]

经过编辑后,便会产出一张让原图微笑的图片

两张图放一起,对比会更明显一些。

好了, 这个就是我今天要分享的项目。大家可以下载运行,看看效果。

项目地址:https://github.com/disanda/RFM

StyleGAN是非常好的算法,目前有stylegan1stylegan2stylegan3三个版本,感兴趣的朋友可以学习下原理。

以上就是本次分享的所有内容,如果你觉得文章还不错,欢迎关注公众号:Python编程学习圈每日干货分享,发送“J”还可领取大量学习资料。或是前往编程学习网,了解更多编程技术知识。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工智能(Artificial Intelligence,简称AI)是一门新的技术科学,致力于研究、开发能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统。其目标是让计算机具备类人智能的能力,包括感知、理解、判断、推理、学习、识别、生成、交互等,从而能够执行各种任务,甚至在某些方面超越人类的智能表现。 人工智能的应用范围极为广泛,涵盖了计算机科学、金融贸易、医药、诊断、重工业、运输、远程通讯、在线和电话服务、法律、科学发现、玩具和游戏、音乐等诸多领域。具体的应用实例包括语音识别、图像识别、自然语言处理、智能交互、自动驾驶、医疗健康等。例如,在冬奥会上,人工智能技术被用于场馆的智能化建设,提供定位精准、随叫随到的引导服务;在证件照检测方面,人工智能可以高准确度地进行人脸识别;在企业管理中,人工智能平台可以实现对各类云资源的统一管理。 人工智能的优点主要有以下几点: 高效性:人工智能可以在短时间内处理大量的数据和任务,显著提高效率和生产力。 可靠性:相较于人类,人工智能可以更快速、更准确地执行任务,并且不会受到疲劳、情绪等因素的影响,提高了任务执行的可靠性。 个性化服务:通过分析大量的用户数据,人工智能可以为用户提供个性化的服务和推荐,提高用户体验和满意度。 自主学习:借助机器学习和深度学习等技术,人工智能可以自主地学习和优化模型,不断提升其性能。 然而,人工智能也存在一些缺点: 数据偏差:如果用于训练的数据集存在偏差,那么训练出来的模型可能会存在误差,影响其性能。 隐私问题:人工智能在处理和分析大量数据时,可能会涉及到用户隐私的问题,如个人信息泄露等。 总的来说,人工智能是一个不断发展和进步的领域,随着技术的不断改进,其应用范围和优势也在不断扩大。但同时,也需要关注并解决其存在的挑战和问题,以确保其健康、可持续的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值