首页>数据频道 > 技术 > 正文

瘦脸、瘦腿太初级,揭秘“亚洲秘术”美颜美体特效

演讲:黄慧娟、临丰、唐堂

编辑:王强

揭秘快手、淘宝、火山引擎的美颜美体特效技技术。

在这波AI浪潮中,深度学习技术对计算机视觉带来了巨大的变革,同时在图像、视频领域有着非常成熟的应用。

如在手机的各类拍摄App中,瘦脸、瘦腿等美颜特效已经非常普遍。同时,国内各大厂商也针对不同应用、场景,设计了不同的技术解决方案。

在机器之心最新一期技术分享中,机器之心机动组以「揭秘人体美化技术」为主题,邀请到了快手、淘宝、火山引擎的技术专家,为大家解密这些特效背后的相关技术。

以下为此次活动的演讲内容,机器之心进行了不改变原意的编辑、整理:

AI技术在快手人像美化中的应用

我是来自快手的黄慧娟,目前是快手Y-tech算法专家,从事计算机视觉、视频及图像处理、人像美化等方向的研发工作。今天跟大家分享的主题是「AI技术在快手人像美化中的应用」。

什么是人像美化

我们来看一下什么是人像美化。大家都有拍视频的经历,当在视频中使用美颜、妆容等特效,就会让视频中的人物呈现出整体好的状态。爱美之心人皆有之,变好看之后也能充分激发用户的拍摄欲望。这些能让视频中人物外貌、外形得到美化的技术就是人像美化技术。

我们快手人像美化技术团队沉淀了一套完善的人像美化解决方案,而且落地到了快手的各个产品中,比如快手APP、快手极速版、一甜相机、快影等等,而覆盖的应用场景包括拍摄、直播、修图、电商导购等。

人像美化主要包含哪些功能?我们可以将其划分为美颜、美型、美体、美妆、滤镜5个方面。比如美颜,包括我们耳熟能详的磨皮、美白等等,而美型包括瘦脸、捏鼻等。要实现这些效果所依赖的底层基础技术有图像处理、AI检测定位、3D重建、跨平台渲染、手机端推理引擎,还有数据分析等等一系列基础技术。

人像美化技术现状

我们看一下人像美化技术的现状。对于一张用户图像,首先可以经过各种滤波器和LUT的组合来实现磨皮、美白等美颜效果(LUT是指颜色映射的查找表)。然后我们可以基于人脸关键点检测等算法来实现瘦脸、小头等美型效果。接下来叠加设计师设计好的一些LUT来实现各种风格的滤镜,最后我们利用设计师提供的素材实现美妆的效果。现有的这套人像美化技术已经发展了很多年,趋于成熟,在用户审美不断提高,用户开始追求更真实、更自然、更高级的美化效果情况下我们的人像美化技术该如何发展呢?

结合现在AI技术的蓬勃发展,我们有两条技术路线可以走:

1.优化现有的技术

优势:迭代快,性能可控。

劣势:效果上限不高,自适应能力比较差。

2.引入AI能力。这里的AI能力不是指人脸检测和人脸关键点等这些提供基础信息的AI,而是指直接面向人像美化效果层面的AI能力。

优势:可以实现复杂高级的效果,自适应能力比较强。

劣势:研发周期比较长,在手机端上相比于传统方法来说,更耗性能。

现有的传统美化技术我们已经非常成熟,我今天主要介绍一些美化的新技术,我先用实际项目来介绍一下,我们是如何结合AI技术来提升人像美化效果天花板的。那么将AI技术引入现有美化pipeline的难点是什么?我们以快手APP美化功能为例,在拍摄过程中人像美化功能是一直开启的,而且会叠加其他的效果,比如魔表和贴纸。另外用户的手机也非常多样,不同机型之间计算能力差异较大,而AI模型相比传统滤波器更耗性能,所以总结起来难点就是AI人像美化需要在保证有显著效果的情况下,还能符合手机端性能的要求。

AI+人像美化:AI原肤

我介绍的第一个AI人像美化技术是AI原肤。用户吐槽人像美化不真实的一个重要的点是美化后的皮肤比较假。让我们看下图的对比,左边是原始图像,中间是传统方法磨皮的效果,在额头和下巴的地方瑕疵没有祛除干净,而且脸颊处的皮肤失去了纹理细节,皮肤质感比较差,而右边AI原肤的效果很好的祛除了面部的瑕疵,并且皮肤质感和清晰度也没有损失,皮肤整体呈现出了干净通透的感觉。

那么如何实现AI原肤效果?

我们首先看看专业的修图人员会如何来修复瑕疵:

分频:专业的设计师会根据皮肤本身的特点来把皮肤进行分频,得到对应的低频和高频图像。

低频颜色:低频是皮肤颜色,低频中那些大大小小的色块就是我们需要祛除的瑕疵。设计师修图时会根据经验使用中性灰或者仿制图章工具,来不断的涂抹低频区域,来祛除低频区域中的色块,从而达到磨皮的目的。

高频纹理:高频是皮肤纹理,体现为皮肤的细节,需要进行保留。设计师一般只对其进行简单修补。

通过这种手动的方式是可以将效果调得很好,但耗时耗力。通过借鉴设计师这种手动修图的思路,我们自研的网络架构如下图所示,核心思想是对图像进行分频处理,不同的网络负责不同的频段,祛除对应的瑕疵,将不同频段的结果再次进行组合,来得到我们最终想要的全频结果。

在训练过程中,我们采用了多尺度监督,重参数化、生成对抗训练,学习残差、频率约束等方式,用来保证最终的效果和性能。

下面展示一下行业对比的结果,左边是原始图像,中间是我们AI原肤的效果,右边是最佳的友商效果。通过对比可以明显看到我们AI原肤在额头和下巴处,瑕疵处理的更干净。经过内部评测,我们AI原肤效果目前是行业最佳。

AI+人像美化:AI祛皱纹

下面介绍一下AI祛皱纹,皱纹是非常影响面部美观的,皱纹较深或者较多时都会让人很显老。而传统的祛皱方法大多是基于patch match的方法,容易出现比较多的伪纹理,而且祛除皱纹之后,皮肤纹理会比较糊,与旁边皮肤融合也不够自然。为了解决这个问题,我们团队自研了一套祛皱纹的算法框架,可以实现高清高真实感的智能祛皱效果。

算法的主要过程是对高清的人像数据首先做皱纹分割,来得到皱纹区域的mask,然后在非皱纹区域做随机涂抹以模拟实际皱纹,随机涂抹之后的图像被作为网络的输入图。

在网络处理模块,我们结合了图像修复技术和基于语义的图像编辑技术,对网络的输出进行一定的后处理,就可以得到我们最终的高清祛皱纹的结果。在网络训练的时候,我们采用了UNet-GAN、color校正和频域拟合等方法,来保证祛除皱纹之后生成皮肤的真实性。

我们以祛颈纹为例来看一下效果,左边这一列是用户的原始图像,右边这一列是我们算法的结果,右边这一列图中已经看不到颈纹的痕迹,这说明我们的算法可以很好的祛除颈纹,而且祛除后生成的皮肤非常真实,与旁边区域的皮肤融合过渡也是非常自然的。

AI+人像美化:AI美白

下面介绍的第三个AI人像美化的技术是我们行业首发的AI美白技术。俗话说一白遮百丑,美白的意义就是要让皮肤变白。传统美白方法是通过将设计师手动设计的一个LUT应用到全图来实现的(LUT是指颜色映射的查找表)。这样的话全图都会有颜色的变化。比如我们看第一行图像,第一张是正常原始拍摄图像,而第二张是用了传统美白方法的结果,虽然皮肤变白了,但是背景中向日葵的颜色会变得非常失真。我们将AI能力引入到了美白中,实现了AI美白,结果如第三张图,只有皮肤区域会变白,背景区域中的向日葵颜色恢复了正常。

我们实现的AI美白技术还具备强度自适应能力,就是说对于不同的场景美白程度是不同的。比如上图中第二行的暗光图像,如果应用传统美白,那么脸部皮肤的颜色会变得非常的奇怪,而用AI美白技术之后,脸部皮肤颜色恢复正常。再看上图第三行,这张接近过曝的图像,运用传统美白之后,整幅图像呈现死白的状态,而用AI美白技术之后,则很好地避免了这种问题。

更多人像美化黑科技

1.美型/美体-背景扭曲矫正:大家吐槽照片p的痕迹太明显的原因,除了前面所说的磨皮会导致皮肤没有质感之外,还有个重要原因是人像美化后背景被扭曲了,比如下图左边这张图的背景。造成这种现象的原因是美型/美体类的算法原理是对像素做拉伸,在对人脸做拉伸的同时,背景就不可避免地也会产生扭曲现象。

经过实验和观察发现,人眼之所以能够一眼看出背景扭曲,是因为背景中本该是直线的地方弯曲了,如果能够保证美型后图片中的直线仍然是直线,那么即使背景内容发生轻微的位移,也看不出背景扭曲的问题,因此就可以将此背景扭曲问题建模为数学优化问题,优化的目标就是保持背景中直线的斜率不变。

我们来看一下快手现在的美型效果,图中上半部分左边是原始图像,中间是矫正之前用小头的效果,红色箭头所指的区域有明显的扭曲现象,而右图是矫正之后的效果,可以看到整图没有背景扭曲的问题,图像整体的真实感被大大提升。

我们的算法对美体也有很好的效果。上图左边这张图用户是使用了瘦腿功能,做了腿部的拉伸,可以看到地面上的水泥路已经变弯曲了,而右边图像矫正之后已经不存在弯曲现象,整个美体的效果也非常真实。

2.美型-面部轮廓调整。面部轮廓调整一直是人像美化的刚需,但是现有的人像美化类APP没有能一键调节人脸整个面部轮廓的产品,只有调节面部某一位置的局部调整,比如说调整颧骨、调整太阳穴等,这种调节轮廓的小项主要有两大问题:

用户需要调节多个小项,操作复杂,不够友好。

局部调整基本都是依赖于离散的脸部关键点,而由于点不够稠密或者定位的误差,有时候并不能得到比较好的调整效果。

我们团队将传统图像方法和AI能力相结合解决了这个问题,行业首发实现了一键调整面部轮廓的方法。

3.美妆-PBR渲染。我们在美妆中采用了PBR技术,PBR就是基于物理的渲染,通俗来说就是往一个材质上打灯光,此时材质上就会呈现真实的光照效果。

展望

人像美化未来发展主要是三个方向:千人千面,可以为用户提供更适合自己的美化效果;审美优化,旨在为用户提供超预期的美化效果;全球化,满足全球所有用户对美的追求。

手淘场景下的人脸AR美颜技术

我是来自阿里巴巴淘宝技术部的多媒体算法团队的临丰,这里跟大家分享手淘场景下的人脸AR美颜技术。

背景

淘宝直播:美化主播,同时还原商品本身颜色、细节等信息。

手淘是一个电商场景,主要是以购物为主,所以第一个大的应用点的是淘宝直播,淘宝直播需要对主播进行美颜,这是一个刚需,希望让主播做直播的时候,能随时随地进行个性化的美颜。

传统的美颜方案主要是针对全图的操作,比如美白,如果主播在介绍商品的时候,比如说卖翡翠,突然开了全局美白,把翡翠变成淡白的颜色,那样跟它的真实感就会有偏差,就相当商品的材质改变了,这是我们不希望看到的。

所以淘宝直播的一个刚需,就是要基于人脸区域的美颜,同时还原商品的颜色细节等信息,为什么是还原?因为淘宝直播直播开播的时候,主播可能会处在各种各样的环境中,如室内、室外等等,会有不同光照强度的变化造成过暗和过曝的情况,同时摄像头的运动也会导致一些物品出现模糊等等。因此我们希望通过对清晰度增强等算法进行商品细节、材质的还原,达到让用户拥有较好的观看体验。

人脸AR试状高精度真实的人脸上妆,满足用户“先试后买”的需求,提高商品购买转化率。

人脸的AR试妆在手淘另一个比较大的应用。化妆品行业是手淘里面的比较大的品类,以前用户在手淘上购买化妆品时,最大的痛点是没办法去试,比如像口红,用户不知道它在我的嘴唇上的颜色是否合适,由于不能亲自去体验,就需要先买回来,或者是去线下店去体验一下,才能知道是什么样的效果。

针对上面的问题驱使我们去做一个高精度的人脸的AR虚拟试妆。我们主要跟一些大的化妆品行业的品牌合作。我们把他们的化妆品的材质信息进行量化,让商家可以自由搭配各种型号的颜色信息等进行素材生产,然后又通过AI上妆的算法,这样用户打开摄像头就可以直接虚拟的体验如这款型号的口红涂在嘴唇上是什么样的,那款型号的美瞳戴在眼睛上是什么样子的。这就方便用户体验,不用非要跑到线下店,这样提高用户的购买体验,同时也对手淘整体的购买转化率也有较好的辅助。

互动娱乐满足用户个性化美颜和玩法的需求。

互动娱乐也是很大的一个应用场景。这方面主要是满足手淘短视频场景用户的个性化美颜的需求,另外就是淘宝直播跟粉丝互动的时候,我们会提供主播和粉丝一些互动玩法,比如像人脸的各种特效,所以我们在互动娱乐方面也进行了研发投入。

除了上面三点,还有一个比较大的背景,手淘集成了大量的功能,如内容理解相关的算法、推荐算法等等。所以手淘的计算量是非常大的,因此留给人脸美颜等底层应用的资源是相对比较少,所以我们要去探索一套高性能,同时效果相对比较优的人脸AI美颜算法。

美颜技术体系

下面介绍手淘美颜算法体系架构:

基础底层最核心的是目标检测和3D重建算法,如人脸关键点的检测、人脸的3D重建等。因为速度要快,我们内部设计了较多高性能的移动端小模型网络结构,同时研发了MNN推理引擎,目前在业界有比较大的影响力。

算法在底层算法基础上,我们做了很多基础图像处理算法:

图像质量提升:图像质量增强、图像去噪去模糊等。

图像形变:三角剖分网格、3D Mesh计算等等。

图像/图形渲染:3D渲染引擎、图像融合渲染等算法。

功能最上层是基于我们的算法做美肤、美形、美妆等具体效果功能的输出。

底层相关算法

基础算法-人脸关键点

无论是人脸美型还是美妆,最核心依赖的就是人脸关键点检测。传统的一些关键算法,可能计算量比较大、精度低,比如像手淘,手机机型覆盖比较广,如果用户手机是中低端机型的话,并且模型比较大,基本上是无法去做美妆等功能。

针对上面的问题,我们底层算法做了探索。这里对我们的研究成果做简单介绍,我们做了两阶段的人脸关键点的定位算法:

第一阶段消除人脸姿态的影响,降低任务的复杂度。

第二阶段对人脸的关键点的局部区域进行高精度的回归。

该算法网络结构采样了我们自主设计的高性能小网络模型,在低端机上面推理时间在2到4秒之间,高端机的能达到毫秒级。关键点算法回归主要基于由粗到细的思想,就是先通过局部的106点再回归高精度240点。我们算法输出的眼睛、嘴巴等局部核心位置的关键点的精度是比较高的,所以后面对于做AR试妆的贴合度是比较好的,同时也较稳定。

基础算法-3D人脸重建

业界包括目前相关论文的3D重建都是正交投影或弱透视投影,我们是业界首个提出基于透视投影的3D重建算法。这里简要补充一下透视投影跟正交投影的差别。正交投影是一个平行的成像,它没有近大远小的概念,就是说镜头拉近跟拉远,成像是一样的没有差别;而透视投影(目前相机成像模式)则存在进度远小的感知,比如说打开前置摄像头,镜头拉近的时候,只看到我的脸,然后手机拿远的时候,就能慢慢看我的耳朵。

所以如果拿正交投影的算法应用到针对相机透视投影这种场景来,会存在一定的问题。比如AI面具,正交投影会导致AI面具与脸部区域尤其靠耳朵区域贴合的不是很紧致。还有比如像道具的试戴,如眼镜,镜腿会往外掰,这样会很影响用户的体验。

目前业界主要是用2D的关键点通过3DMM算法去做3D姿态估计(S、R、T)和比较粗糙的3D Mesh回归,这种方法对不同姿态、不同远近等情况的人脸来说鲁棒性比较差的。

基于此我们提出基于深度学习的视觉透视投影的3D人脸重建算法(输出人脸6DoF和3D Mesh信息),可以保持我们3D Mesh在拉近拉远的时候,它的一致性也是保持的非常好,并且贴合度也比较高。这个算法主要的应用场景,是针对比如人脸的AR彩绘,基于人脸的AR眼镜试戴等等一些互动玩法和商品AR试戴方面。算法的速度也较快,在iPhone7等中端机上能达到100fps。

美颜相关算法介绍

下面简单的介绍一下,基于上面两个底层算法做的人脸美肤、美型、美妆这三个场景的应用。

美肤直接通过深度学习的方式去做人脸的美肤,虽然效果较好,但计算量比较大。所以我们采用了传统的美肤流程,但我们对每个模块进行了针对性的优化,通过对人脸进行人脸区域的观察,对人脸区域进行拓扑结构的构造,然后对人脸五官进行分区域的不同程度的磨皮、锐化等,因为我们把锐化、五官磨皮算法等优化的到了极致,所以计算资源占用比较小的情况下,达到了跟竞品或深度学习相似的效果。

美型传统美型,主要针对如脸型、眼睛、鼻子等各种模块简单的调整和组合。我们提出了个性化人脸美型的方案,其主要思想是对人脸脸型进行简单的脸型分类比如我们定义了6种脸型,然后对用户输入的人脸图像借助3D人脸重建算法的结果计算6种脸型的加权系数。比如用户自拍的时候,脸型分类算法对他的脸型进行分类,然后计算出它占6种脸型的占比的系数,通过这组系数对这6种脸型加权,最终得到了用户的个性化美型的参数,达到不同用户千人千面的美型的效果。

美妆美妆其实主要是一个拓扑结构的定义。试妆主要是眼妆、唇妆、美瞳和整妆这4种类型。主要的思想是UV贴图,根据人脸2D关键点或3D Mesh信息进行三角剖分去做纹理的映射。最核心是用户对妆容的各种体验,比如各种姿态下妆容具有较强的鲁棒性。用户会期望各种姿态下,去看口红在我嘴唇上的贴合度等效果,同时看会不会有闪烁,自然度如何等,美瞳在眨眼的时候会不会会不会贴到眼睛上等,这是我们需要去解决的问题,对提升用户体验具有重要的意义。

图像清晰度增强

最后补充的技术点是图像的清晰度增强。手淘包括各种短视频场景,用户可能会上传各种质量的视频,如用户所处的场景可能会导致直播质量或者图片质量比较差。

针对这个问题,我们研发了一款基于移动端的hdr-net的图像清晰度增强算法。该算法是基于深度学习的方案,通过CNN去输出一个颜色查找表,同时我们通过CNN网络预测出梯度图,然后通过在查找表跟梯度图的联合提升视频画质质量。这个方法在中低端机手机上也能达到实时。

未来展望

最后跟大家分享一些未来工作的展望:

妆容迁移:在AR场景,最难的是把妆容定义解析出来。我们希望通过比如说GAN等相关的技术,通过照片把用户妆容解析出来,然后可以应用到其他用户身上,达到妆容复用的效果,这样会降低妆容制作成本。

光场重建:因为AR会有各种各样的场景,有可能在暗光有可能在亮光,会导致口红的材质会发生偏差,跟实际的材质会有不一致的地方,所以我们希望把用户拍摄的光场信息进行重建,提高用户的体验。

火山引擎AI人体人像美化技术的最佳实践

我是来自火山引擎的资深视觉技术专家唐堂。很荣幸受机器之心邀请来做这次的技术分享。

关于火山引擎

首先介绍一下火山引擎,火山引擎大家可能也都有所了解,它是字节旗下的ToB的技术品牌。火山引擎有项擅长的技术是围绕视频内容打造智能创作类的产品,我们的愿景是希望用AI能够帮助到更多的企业,通过激发用户的无限创意来实现业务增长。

下面这张图全景展示了火山引擎的技术产品和应用场景,火山引擎希望通过提供技术底座,帮助用户能够改善他们场景应用中用户体验,从而赋能广大的企业。人体人脸美化技术也是其中重要的一类的产品能力。

总体介绍

对于人体人像美化技术上大家都不陌生,如今不论是我们的拍摄,还有短视频应用还是直播社交应用,只要是打开APP启动相机,能够看到各式各样的这种人体影像的美化功能。

人体人像美化的流行,主要有两方面的原因:

提升改善个人形象的愿望:这是广泛存在的,尤其对于女性用户,特别是国内的女性用户应该说属于刚需了,爱美之心人皆有之。实际上我们看到人体美化功能在真实世界中其实都早已有一些其他技术所对应,说明这个需求是长期而且强烈的;

智能手机和移动互联网的渗透、AI技术的发展:这使得人们可以在这个数字影像上能在较短的时间内以较低的成本设计美化个人形象,同时也便捷地分享出去。得益于此人体人像的美化技术,近年来得到快速的发展以及应用上的普及。

下面这张图展示了火山引擎的人像AI美化技术的比较完整,但是比较概括的一个技术栈。

从产品能力上来讲,火山引擎提供各式各样的人体美化能力,基本上涵盖了美颜美妆、美体塑形、美发、美甲等这些主要的美体功能范畴。为这些美体效果提供直接支持的就是我们的特效引擎,这其中包含多种的CG算法以及图像处理算法。

再下面一层就是基础算法套件、AI算法套件,包括大家比较熟悉的人脸基础算法、人体分割算法、也包括我们的图像生成类算法。每个算法其实都提供了很多的子功能,然后为我们特效引擎提供足够的而人体相关的信息,最终生成美化的效果。

上面所有这些基础算法又是以我们的底层AI技术为依托,这其中有很强的共用性,包括通用的目标检测、关键点检测、通用分割,以及GAN类这种图像生成算法。3D姿态估计、3Dmesh估计、AutoML类算法以及我们算法平台的支持。

美颜美妆

人脸2D的美颜美妆,是我们日常生活中最常见到的一类人像美化的功能,整体流程是比较简单的,首先算法会输出2D的关键点,基于2D的关键点,我们可以作为参考点,然后对目标区域进行形变拉伸,以这种方式我们可以实现一些比较简单的大眼瘦脸效果。

我们要实现更复杂更精细的美妆效果,就需要依赖于mesh信息,也就是基于我们的 2D关键点的去计算UV图,然后根据素材 UV图去做映射,然后对素材进行形变,最终和原图进行混合。比如我们想要画眼妆或者做睫毛,其实依赖的就是类似于这样的一种方案。

接下来介绍一下3D的美妆方案,3D的美颜美妆实际上是2D美颜美妆方案的升级,大体流程是类似的,只不过算法输出的不再是2D信息,而是揭示3D姿态参数主要是人脸的参数以及mesh信息。

根据3D mesh信息,我们就可以直接对3D素材做形变,可以对素材进行进一步的驱动,最终渲染混合,得到我们所需要的美体美妆效果。为了提升妆容真实感,我们也会在隐形侧采用实时光照计算的算法,使得美妆的观感更为自然。既然有2D的美颜美妆,也有3D美颜美妆,它们的使用场景实际上是会有不同的区分。

2D美颜美妆的优缺点:

优点:性能是消耗比较低;素材易于生产的。

缺点:从效果上来讲,大角度姿态下的效果差。

3D美颜美妆的优缺点:

优点:整体的真实感立体感好。

缺点:性能消耗也是相对高;素材生产相比于2D本高。

所有的这些不管2D也好、3D也好,人脸美化能力依托的,其实都是我们的底层的人脸sdk和基础的人脸算法。

这里简单展示整体的流程图,大致分为人脸检测、人脸跟踪分割、关键点检测、3D估计这些基础模块。人脸检测是通过人脸检测和人脸跟踪,去对人脸去做大致定位,然后从中去做局部裁剪。

在裁剪的基础上,我们利用分割算法、关键点模型以及参数估计模型,得到所需要的分割关键点以及3D姿态和mesh参数。对于3D的参数,为了提升它的精度,我们会用到2D的关键点信息,对它去做进一步的在线的Refine。作为最为基础使用最为广泛的人脸CV算法,其实是需要满足很高的要求的,包括对它的实时性、高精度、稳定性的要求。

尽管人脸算法已经发展很多年,已经有比较成熟的效果,但它依然面临很多挑战,比如遮挡、大角度姿态、远距离情况,都会产会产生一些bad case。为了解决这些问题,最核心的是需要训练足够精确并且足够稳定的基础网络。

在基础网络训练上,我们从数据生成、训练算法的优化,从网络结构上做了长时间的打磨。这里以3D人脸算法,人脸网络训练为例,对于3D网络的训练非常重要的一环.其实一个重要前提就是高精度的3D人脸数据的生成,为此我们搭建了一整套离线数据生成的完整的pipeline。这里用到了我们自研的一些3DMM的人脸模型,它会根据我们的人脸分割结果、人脸关键点结果等,然后我们去做3D参数或者3DMM的拟合。为了更好的表达人脸的细节,我们在上面做一些局部的形变,最终得到贴合性比较好的高精度的的人脸mesh。有了这样一个mesh,就可有效地训练我们高精度3D人脸的网络。

下面简要展示一些我们已经落地的美颜美妆效果,包括技术美颜,也包括2D3D美妆效果。总体效果上说,现有的这些美颜美妆效果其实已经做的是比较完善,不论是从真实感还是自然度上,都会给用户带来比较好的体验。

形体编辑

形体编辑流程形体编辑要实现对人的身体去做形变美化,近年来的应用也十分的广泛,跟美颜美妆相比,当前形体编辑还是处于一个技术在不断发展迭代更新的阶段。现在比较成熟的方案,还是基于2D点来做,基于3D人体建模的方法,我们也正在研发当中,也有一些比较不错的结果出来,但从通用性来上来讲,还是基于2D点这样的人体美化技术为主。

下面以长腿为例,简要的介绍整体算法流程,跟2D的美颜美妆也是类似的。首先我们得到人体上的一些关键点,既包括我们的人体关节点,有的时候也会包括我们的人体轮廓点。

基于这些点,对于长腿这样算法来讲,我们会去对他的腿部的长腿中心点去做一个定位,然后确定它的整个长腿所要改变产生形变的一个区域。

我们根据预先设定好的形变函数,确定它所要这做拉伸形变之后所对应的区域,那么从原区域和到目标区域之间,就是一一映射的这样的一个关系。有了这个映射,我们就能快速的高效的去实现图像的变换。

人体关键点算法的挑战要把人体形变效果做好,依赖的依然是基础的人体关键点。相比于人脸来说,人体应该说相关的问题是更具有挑战性,这个挑战性来自于多方面,包括人体姿态的多变性、服饰多样性、复杂背景干扰、光照拍摄角度等等。总体上来说,人体的挑战要比人脸还是要大很多。

人体关键点检测的方法框架一般分为以下两类:

Bottom-up的检测方案,先检测出关键点,同时也有一些人体聚合的信息,基于关键点和这样的人体聚合信息,我们把这些关键点组合成这样独立的人体关键点,有人体关键点所构成的这样的独立的目标,就是一个Bottom-up方案;

Top-down方案,首先要检测出人体的位置,然后再局部去做单个人的关键点检测。

两种方法也会有优劣,Bottom-up方案效率比较高的,对于多人的场景来说,因为它是整体是一个FCN(全卷积)网络,处理的是全图,不论人是多少,只要跑一次就好,只有在后处理步骤上,才跟人是相关的。

Top-down的方案的优势在于它的精度是比较高,因为会把人抠出来,所以信息是更加集中,它的技术挑战也是比较小,效果上是比较好,但是有多个人的时候它的性能消耗是比较高。

为了同时兼顾性能和效果,我们其实在端上的人体关键点上,两种方案都有实现,同时这两组网络两个方案之间会进行一个动态的切换,这样就做到了效果精度与Top-Down方案保持一致,多人性能基本上是接近于单人的情况。

人体局部美化

美甲局部美化首先像美甲是我们经常在业务场景当中会遇到需求。其实要想实现美甲,我们既要有关键点的结果,也需要分割结果。首先对关键点我们会进行素材的挂载,然后为了让它的贴合性更好,我们会进一步的根据分割区域对素材进行一定的裁剪,来提升整体效果的真实感。

美甲是有一些非常独特的难点,比如手部露出有可能不完整、在快速运动的时候,指甲很容易看不清等等。同时仅仅去对指甲进行分类也是非常困难的,为此我们研发了一套专用的美甲算法pipeline。

算法整体流程跟人脸的检测定位、关键点分割的算法类似,但细节上做了针对性改进,比如针对手部露出不完整的问题,我们是基于分割结果去实现初定位;针对运动模糊问题,我们使用光流做估计,这样我们充分利用前驱帧的结果在网络失效的情况下做新的一帧的结果的预测。

对于指甲分类困难问题,我们主要利用全局信息做分类,在检测定位的同时我们是直接输出一个分类的结果。下面展示我们线上的一些美甲效果。

美发美肤美发美肤也是大家比较普遍的需求,这类功能一般是需要依赖于我们的分割以及图像生成/inpainting等多种算法相结合去实现。

如果我们只是换色或匀肤,那么只要基于分割就可以得到一个基础版本。它主要是把头发和皮肤区域去分割出来,再做图像处理,就可以得到想要的结果。

对于更复杂的效果,比如我们想要做祛痘祛斑,这时除了分割之外,还要用图像生成/inpainting的方式把扣掉的部分做补全。

另外如果我们想做像右图所展示的这种长发变短发的效果,那么它的整体的pipeline会更复杂一些,需要借助分割、图像生成、inpainting三个算法的结合。主要是因为图像区域比较大的时候,它生成结果是比较模糊的,我们需要借助于inpainting检测算法做结果的精修,才能得到比较理想的长发变短发的效果。

下图展示的是部分美肤的效果:肤色变换、匀肤。

通用技术建设

前面从几个方面介绍了我们现有的一些人体人像美化技术,从前面描述也可以看出,这些技术它的底层技术的复用性通用性是很强的。

为了更好的提升各类特定应用场景下的技术效果,同时也为了降低相关技术落地的成本。我们一直在推动通用技术方案的建设。比如图像生成技术的应用是非常广泛的。这里给出一些例子,比如左边的淡妆效果,实际上是基于图像生成实现的风格变换迁移;中间的去胡子是图像内容擦除补全也就是inpainting;右边的祛斑祛痘前面也提到会遇到局部图像的生成的算法问题。

移动端图像生成技术框架

所有上面列举的图像生成算法能力,我们可以用一套比较通用的算法框架来生产出来。这里简要介绍框架的一个pipeline。总体上框架的训练分为三部分:

非配对数据的训练。

配对数据的训练。

移动端模型的蒸馏训练。

通过非配对数据训练,我们可以获得大量的候选的数据。这个步骤我们采用像CycleGAN、StyleGAN或者一些比较新GAN的生成训练框架来实现。但是非配对数据训练方式所生产出来的图像,它的质量往往是没有保证的。

所以在接下来的配对数据的训练过程当中,我们会人工去进行筛选。结合业务需求,针对图像的质量,我们会去做图像数据的清理,由此我们可以得到一些高质量的配对数据,然后我们继续以配对数据,对模型有监督训练方式去做模型训练迭代。

通过反复的多次迭代,最终得到效果令人满意的模型,然后我们会用它做蒸馏训练,得到最终移动端模型。我们在数据生产、模型训练、移动端优化这些环节当中,都做了长期的迭代,尤其是像真实感数据生成、模型效果评估,都是我们非常关注的问题,它们对最终生成效果起非常关键性的作用。

除了GAN训练、图像生成技术之外,像模型的压缩、AutoML也是我们比较关注的一类通用技术。相关领域我们也做了一些技术探索,下图展示的是我们在ICCV2021年的一篇工作:在线多粒度蒸馏(OMGD)。

实际上它是针对GAN类型的轻量级网络的训练框架,总体而言,它把刚才所介绍的框架当中的teacher的GAN训练网络以及蒸馏训练合二为一。我们想要训练轻量级的网络,并不直接对它进行GAN形式的训练,而是让它以一组teacher网络的输出作为监督信号,做有监督的训练。

同时监督信号来自于不同的特征层级,这一系列的teacher网络,它们是有区别的,有的是深一些的网络,有的则是宽一些的网络,这些网络的训练是参照标准的GAN的训练方法去进行迭代训练。在整体的训练过程当中,我们把teacher网络GAN训练和 student网络、蒸馏训练合并到一起,最终这样的框架也得到非常不错的效果。

从下面展示的结果能看出来,在计算量大幅度减少的情况之下,依然得到了很好的效果。

除了通用技术的实现之外,我们也做了很多通用技术平台搭建的任务.我们现有的这些算法,从pipeline上来讲,有些地方的重合度是比较高的,比如前面的检测、跟踪以及大量的分类任务。这些通用的算法模块,我们希望能够在统一的算法平台上,能够进行针对特定场景的定制化。然后对于不同的场景,我们只需要做数据的变更,只需要做参数的简单的调整,我们就能得到一套完整的基础的pipeline。

为此我们搭建了相应的模型训练平台,这个工作其实也为我们整体技术栈的丰富完善起到了非常重要的作用。

人体美化技术展望

人体美化技术在近十几年得到比较长足的进步,从最早一键修图到后来的十级美颜再到现在超清原生感、自然感的追求。那么未来大家对它期待是什么样的?

可能大家会把现有的美化技术和整容对标起来。在之前可能我们把美颜看作是一种化妆的替代,那么以后的美颜是否能够变为整容的替代,我觉得这个其实是大家所期待的。整容替代从整个图片的观感上来讲,它不光光是做简单的肤质纹理的变换,它更多的是想体现出一种人的形体变化,对于整个人的气质的提升,那么这样的要求其实就对算法提出了更高的要求。

从应用业务需求上来讲,我们希望做到更个性化、精细化、智能化和专业化。技术需求上来讲,这些效果的实现有赖于高精人体建模,技术完善。同时也需要具有更强复用性的CV算法框架,同时也需要寻找实现更高品质渲染效果的方法。此外支撑这一切的基础,还是需要靠新一代硬件平台。

硬件迭代更新对于软件算法的效果提升,是比较决定性的作用。现在移动端设备不论从计算性能还是它的传感器的丰富程度,它的不断升级必然对人体美化技术带来极大的帮助。以上就是我分享的全部内容。

标签: 美化技术 透视投影 正交投影

推荐DIY文章
PEL春季赛3月10日开赛,赛事指定用机一加 10 Pro精彩亮相
倪光南:元心智能移动操作系统在自主可控方面具备竞争优势
新声不凡 森海塞尔全新高保真耳机IE 600正式发布
中关村智能终端操作系统产业联盟举行会员代表大会完成换届选举
中药对于新冠具有预防、治疗、减少转重症的三大作用
一加官宣首批搭载天玑8100 5G移动平台
精彩新闻

超前放送