开发者社区> 技术小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

60年后的你长什么样?人脸老化三大技术探秘

简介: 通过计算机视觉技术模拟出人老了的样子,这样的应用实际上并不新奇。这些年,类似的场景可谓层出不穷,有的App可以通过夫妻的样貌预测出孩子的模样,有的App可以通过用户上传的照片还原你小时候的样子和老了之后的样子,甚至还有一些App可以通过一两张照片生成出一段短视频,展示用户一生的样貌变化,让使用的人颇有沧海桑田之感。
+关注继续查看

通过计算机视觉技术模拟出人老了的样子,这样的应用实际上并不新奇。这些年,类似的场景可谓层出不穷,有的App可以通过夫妻的样貌预测出孩子的模样,有的App可以通过用户上传的照片还原你小时候的样子和老了之后的样子,甚至还有一些App可以通过一两张照片生成出一段短视频,展示用户一生的样貌变化,让使用的人颇有沧海桑田之感。

image

而我们这次的“当你老了”项目的着眼点略有不同,强调的是公益和技术的结合,因此我们需要将用户上传的面部照片变成20年,40年和60年后,让用户看到自己满脸皱纹,白发苍苍的样子,进而产生关爱身边老年人的感慨,人人每年公益3小时,共同为公益做出贡献 。

经过将近4周左右的努力,我们初步完成了人脸老化项目的开发,赶在9月5日央视慈善之夜晚会前及时上线。央视公益晚会期间,用户通过扫描电视屏幕上的二维码,进入我们手淘的互动页面(详见图1),选择自己喜欢的照片进行老化。一场晚会下来,许多的用户体验到了自己脸部变老之后的特效。

image
图1. 手淘“当你老了”项目页面示意图

整个项目中我们遇到了很多的挑战,比如老化模版的选择,脸型的变化趋势问题,肤色的融合问题等等,下面我会把整个人脸老化技术分成几个关键的部分,进行简短的剖析。

1、脸型的老化算法

我们借鉴了一篇2017年最新的利用深度学习进行人脸老化的文章[1],该文章提出了一种叫做conditional adversarial autoencoder (CAAE)的深度网络结构,该结构能够学习出面部的manifold,从而预测出任何一张输入面部图像的全年龄面部图像。该网络的结构示意图如图2所示,该网络学习之后的预测结果示意图如图3所示。


image


图2. Structure of the proposed CAAE network for age progression/regression. The encoder E maps the input face to a vector z (personality). Concatenating the label l (age) to z, the new latent vector [z, l] is fed to the generator G. Both the encoder and the generator are updated based on the L2 loss between the input and output faces. The discriminator Dz imposes the uniform distribution on z, and the discriminator Dimg forces the output face to be photo-realistic and plausible for a given age label.


image


图3. Comparison to prior works of face aging. The first column shows input faces, and second column are the best aged faces cited from prior works. The rest columns are our results from both age progression and regression. The red boxes indicate the comparable results to the prior works.

尽管该深度学习网络能够很好的获得全年龄段的输出,但是它存在两个弊端,其一是它训练预测出来的图片和输入人脸差异比较大,不像原始输入;其二是处理速度上该网络速度比较慢,很难适应项目的要求。针对这两点缺点,我们决定只保留该网络的老化脸型的能力,而脸上的纹理,即皱纹部分我们通过传统方法来贴。图4显示了我们通过该网络获得的脸型变老的能力示意图。


image
图4. 面部脸型变老的示意图,从左到右分别是原图,20年后,40年后,60年后

2、脸部纹理的老化算法

在贴脸部皱纹或者说纹理的过程中,我们采用的是分而治之的办法[2]。即把面部分成许许多多的小三角形,然后将老人模版上对应的三角形贴到相应的输入人脸的三角形上。这样做的好处是每个三角形足够小,利用OpenCV的WarpAffine进行形变贴图时不会出现不自然的现象。当然这样做的前提是,我们已经获得了输入人脸以及模版人脸的所有关键点,同时利用Delaunay Triangulation将所有关键点划分成若干三角形了。关键点和三角形Mesh示意图如图5所示。

image
图5. 面部关键点示意图,面部三角形化示意图

3. 肤色的融合算法

在完成了人脸的老化脸型变化和贴皱纹的步骤后,我们还缺最后一步,即将老化后的脸完美无瑕地贴回到原始输入图像上去,否则会显得老化很不自然。这里我们采用了一个非常经典地融合算法,即Poisson Image Editing[3],它是通过保留剃度的方式使贴过来的图像能够无缝地融入背景图像。这里我们利用了OpenCV3.2里面提供的SeamlessClone这样一个函数,可以比较方便地实现前后景融合。肤色和纹理的融合示意图如图6所示。


image
图6. 从左到右依次为原始图像,老人模版贴入相应三角形,SeamlessClone之后的融合结果

4. 项目小结

在脸型,皱纹,肤色的老化之外,我们还尝试了头发的变白等算法,篇幅有限,就不在此赘述了。最后贴几张我们认为效果还是不错的人脸老化结果作为结尾。


image
image
image
图7. 效果示意图

Reference

[1] Zhifei Zhang, Yang Song, and Hairong Qi. "Age Progression/Regression by Conditional Adversarial Autoencoder." IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.
[2] Face Morph Using OpenCV — C++ / Python, http://www.learnopencv.com/face-morph-using-opencv-cpp-python/
[3] Poisson Image Editing, http://www.ctralie.com/Teaching/PoissonImageEditing/.

来源:阿里技术
原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ECS使用数年后的感受
ECS已经不是第一次使用了,但是从来没有发文分享过连续使用几年后的感觉心得。 我的第一台ECS,早在2014年,为了使用公网ip测试socket开发,自费买了一台最低配,型号是N4。如今作为早期架构产品经常看到n4对于新用户的超低价体验活动
12 0
gcc编译的四个阶段解析
gcc编译的四个阶段解析
44 0
ECS使用数年后的感受
云其实也是虚拟机,但是相比VPS就强大多了,云上虚拟机是基于整个物理机集群的,因此本文主题最大的感受就是“几乎没有遇到物理故障停机”!这在以前是没法想象的,曾经的物理机,连续开机一年,硬盘之类的地方总会有些不稳定甚至损坏,但是到了云虚拟机环境下,这个场景告一段落,硬盘多副本+cpu内存可故障自动迁移其他物理机+软件定义网络等等措施,使得“云主机”做到了“云深不知处”,作为租户只知道云服务器在正常运转,不需要知道在哪台机器上运转!
73 0
ACM MM 2021 | 人脸可胖可瘦,浙大提出稳定连续的视频人脸参数化编辑
来自浙江大学计算机辅助设计与图形学国家重点实验室的研究者,提出了一个鲁棒且易于实现的基于视频序列的人脸胖瘦参数化方法。即使在侧脸、长发、戴眼镜及轻微遮挡等极端情况下,该方法依旧能够取得连续稳定的结果。
82 0
最受欢迎五大技术图谱出炉!看看大佬们都在学什么
阿里云开发者学堂15个技术图谱,哪些最受开发者们喜欢?小助手已经帮你整理出榜单了,快来学习吧!
15068 0
2020阿里云618年中大促活动主会场全攻略
2020阿里云618年中大促活动活动已经于6月1日正式开启,从已开放的活动页面来看,整场大促活动由答题领12000元大礼包、口碑爆款、为你推荐、更多活动四大活动组成。 在618这个年中的最大的优惠活动节日里,阿里云推出了哪些云产品参与今年的618活动?具体有些什么优惠政策,请看下面: 丨活动阵地: 618年中大促活动主会场 丨活动关键词:12000云大礼包、口碑爆款、上云必备 一、答题领12000元大礼包该活动面向阿里云官网已实名认证的注册会员用户。
4198 0
360:且用且珍惜!解决虚拟机linux启动缓慢以及ssh端卡顿的问题!
优化软件以及杀毒软件想必大家都是用过的,小编自用的第一台电脑自带安装的是金山毒霸,随着时间的偏移渐渐用过小红伞,卡巴斯基,优化大师,鲁大师到后来的360优化杀毒套装,优化软件给大家带来了方便,尤其是上上网看看视频玩玩游戏的还好,但是对于开发者我们是不是要好好选择一下呢? 小编我曾经问过很多开发者选择用金山还是360,几乎所有人都说用360,没几个说用金山的,难道金山有那么不堪吗?虽说我用的第一个毒霸就是金山的(当然当年还有瑞星这玩意。
880 0
+关注
技术小能手
云栖运营小编~
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
长安十二时辰背后的技术密集——从智能算法到音视频创新技术
立即下载
连接真实世界-高德地图背后的算法演进与创新
立即下载
《技术的乌托邦还是商业的潘多拉魔盒?》比特币研究报告
立即下载