StyleGAN 调整面部表情,让虚拟人脸更生动

简介: 赋予 AI 人脸表情,让其更生动自然

🎈 人脸表情

  • 通过上一篇文章 StyleGAN 生成的人脸:https://developer.aliyun.com/article/1178420
  • 人脸图片都是比较中规中矩的,如果能够给人脸增加一些表情的话,会让人脸显得更加的自然和逼真
  • 那么调整人脸的年龄、颜值、笑容、情绪等细节,就显得非常的重要了

1111.png

🎈 调整步骤

  • 在上一篇文章中,我们知道生成人脸是通过 main.py 这个程序
  • 其实在项目 main.py 同级目录下,还有一个 edit_photo.py 程序
  • 这个程序就是用来调整生成的人脸的表情的
  • 只要稍微这个程序的源码就可以知道,它改变人物的表情主要是通过 main.py 生成图片的同时,也会生成每个人物的潜码,保存在 results\generate_codes 文件夹下面
  • 改变人脸细节主要通过潜码去修改,从源码中知道可以自定义年龄、人脸角度、笑容、人脸宽高、脸型、戴眼镜还有各种情绪都是可以去改变的
  • 源码中默认选择 networks/generator_star-stylegan2-config-f.pkl 明星人脸模型,并且通过第 9 个潜码 0008.txt,去修改第 9 张图片的 age.npy,也就是年龄图
  • 其中 direction_file = 'age.npy' 就是可以自定义改变人脸调整的方向
  • 其中 networks/generator_star-stylegan2-config-f.pkl 要跟第一步生成人脸图片的模型对应上
  • 其中 read_feature('results/generate_codes/0008.txt') 就是你想选择调整的是哪一张图片
  • 其中 coeffs = [-15., -12., -9., -6., -3., 0., 3., 6., 9., 12.] 就是你想调整的程序,一个元素对应一张图片,所以处理结果也会生成对应的 10 张图片
defmain():
# 在这儿选择生成器tflib.init_tf()
withopen('networks/generator_star-stylegan2-config-f.pkl', "rb") asf:
generator_network, discriminator_network, Gs_network=pickle.load(f)
# 这是一些配置参数,不要动它w_avg=Gs_network.get_var('dlatent_avg')
noise_vars= [varforname, varinGs_network.components.synthesis.vars.items() ifname.startswith('noise')]
Gs_syn_kwargs=dnnlib.EasyDict()
Gs_syn_kwargs.output_transform=dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
Gs_syn_kwargs.randomize_noise=FalseGs_syn_kwargs.minibatch_size=1truncation_psi=0.5# 在这儿选择人物的潜码,注意要与生成器相匹配。潜码来自生成目录下有个generate_codes文件夹里的txt文件。face_latent=read_feature('results/generate_codes/0008.txt')
z=np.stack(face_latentfor_inrange(1))
tflib.set_vars({var: np.random.randn(*var.shape.as_list()) forvarinnoise_vars})  # [height, width]w=Gs_network.components.mapping.run(z, None)
w=w_avg+ (w-w_avg) *truncation_psi# 在这儿选择调整的方向,共有21种调整方式,它们的名称与分别对应的功能如下所示。'''        age.npy - 调整年龄        angle_horizontal.npy - 在左右方向上调整人脸角度        angle_vertical.npy - 在上下方向上调整人脸角度        beauty.npy - 调整颜值        emotion_angry.npy - 调整此项可增添/减弱一些生气的情绪(调整步幅建议缩小)        emotion_disgust.npy - 调整此项可增添/减弱一些厌恶的情绪(调整步幅建议缩小)        emotion_easy.npy - 调整此项可增添/减弱一些平静的情绪(调整步幅建议缩小)        emotion_fear.npy - 调整此项可增添/减弱一些害怕的情绪(调整步幅建议缩小)        emotion_happy.npy - 调整此项可增添/减弱一些开心的情绪(调整步幅建议缩小)        emotion_sad.npy - 调整此项可增添/减弱一些伤心的情绪(调整步幅建议缩小)        emotion_surprise.npy - 调整此项可增添/减弱一些惊讶的情绪(调整步幅建议缩小)        eyes_open.npy - 调整眼睛的闭合程度        face_shape.npy - 调整脸型        gender.npy - 调整性别        glasses.npy - 调整是否戴眼镜        height.npy - 调整脸的高度        race_black.npy - 调整此项可接近/远离向黑种人变化        race_white.npy - 调整此项可接近/远离向白种人变化        race_yellow.npy - 调整此项可接近/远离向黄种人变化        smile.npy - 调整笑容        width.npy - 调整脸的宽度    '''direction_file='age.npy'# 从上面的编辑向量中选择一个# 在这儿选择调整的大小,向量里面的值表示调整幅度,可以自行编辑,对于每个值都会生成一张图片并保存。coeffs= [-15., -12., -9., -6., -3., 0., 3., 6., 9., 12.]
# 开始调整并保存图片move_latent_and_save(w, direction_file, coeffs, Gs_network, Gs_syn_kwargs)


🎈 调整结果

  • 运行结果会存放在 results\age 文件夹中
  • 可以根据图片去做一个渐变的视频,比如人物年龄从儿童转变到老龄,视觉效果很不错

22222.png

相关文章
|
2月前
midjourney 角色一致性, 衣服和脸, 我全都要, 也可以只保持脸部, 这通常用于模特换衣服
保持人物一致性的前提下, 可以做到换衣服, 换脸, 换背景, 换姿势, 统统换一遍,蓦然回首, 那人依旧还是那个人
62 0
|
5月前
|
监控
宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解
宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解
207 0
|
7月前
|
Java
【永劫无间的捏脸功能】调整角色的基本面部特征,如眼睛大小、眼角、嘴唇、下巴
【永劫无间的捏脸功能】调整角色的基本面部特征,如眼睛大小、眼角、嘴唇、下巴
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
让梦境绘入现实--AIGC人像绘画
在光怪陆离的梦境中,我们可以摆脱客观事实的约束,对自己的外在形象进行天马行空的畅想,有人化身威风凛凛的将军驰骋疆场,又有人化身亭亭玉立的公主正襟危坐,然而这些翩若惊鸿婉若游龙的美好瞬间却总是会随着一声闹钟的响声化为泡影。难道梦境中的自己总是不能被带回到现实之中吗?AIGC技术的快速发展使得这一点成为可能。
379 1
|
9月前
|
机器学习/深度学习 编解码 算法
【阿里云OpenVI-视觉生产系列之图片上色】照片真实感上色算法DDColor ICCV2023论文深入解读
图像上色是老照片修复的一个关键步骤,本文介绍发表在 ICCV 2023 上的最新上色论文 DDColor
1979 10
【阿里云OpenVI-视觉生产系列之图片上色】照片真实感上色算法DDColor ICCV2023论文深入解读
|
11月前
|
机器学习/深度学习
识别手绘数字图像
识别手绘数字图像
61 0
|
12月前
|
编解码 算法 数据可视化
照片转视频,像航拍一样丝滑,NeRF原班人马打造Zip-NeRF(2)
照片转视频,像航拍一样丝滑,NeRF原班人马打造Zip-NeRF
224 0
|
12月前
|
机器学习/深度学习 机器人 vr&ar
照片转视频,像航拍一样丝滑,NeRF原班人马打造Zip-NeRF(1)
照片转视频,像航拍一样丝滑,NeRF原班人马打造Zip-NeRF
270 0
照片转视频,像航拍一样丝滑,NeRF原班人马打造Zip-NeRF(1)
|
机器学习/深度学习 数据采集 数据可视化
|
人工智能 算法 安全
这个AI给照片穿上“隐身衣”,让面部识别系统认不出你!
这个AI给照片穿上“隐身衣”,让面部识别系统认不出你!
505 0