admin 2026-01-23 00:52:07 赛事专题

AI瘦脸的N种方法

输出:瘦脸参数,按参数给出对应瘦脸效果

优点:不需要模型训练,速度快;

缺点:效果一般,无法真正根据用户特有的脸型,得到最佳的瘦脸效果;

方案二 Image-to-Image Translation条件生成

思路:这种方法主要基于GAN网络,根据输入用户人像照片,直接输出人脸瘦脸之后的效果图。

实现方案推荐:Pix2Pix

输入:原始人脸 + 瘦脸强度 Mask/编码(可选)

输出:瘦脸后人脸

优点:自动学习皮肤纹理补偿,避免拉伸伪影

缺点:需要 paired 数据(原脸→瘦脸 GT),数据制作是个难点,数据的好坏直接影响效果的好坏;

输入:原始人脸 + 瘦脸强度 Mask/编码(可选)

输出:瘦脸后人脸

优点:自动学习皮肤纹理补偿,避免拉伸伪影

缺点:需要 paired 数据(原脸→瘦脸 GT),数据制作是个难点,数据的好坏直接影响效果的好坏;

这类算法,目前用于一般性的手机修图没有问题,但是对于影楼修图行业,人脸图像区域>1000×1000的情况,效果就显得比较模糊,可以看出生成痕迹,分辨率越大,对比越明显;

方案三 关键点回归

思路:我们通过深度学习网络来学习瘦脸关键点,用户输入一张照片,进行人脸关键点检测,网络输入人脸关键点信息,自动输出瘦脸后的关键点,然后根据瘦脸前后关键点做人脸变形,得到瘦脸效果图。

实现方案推荐:

网络结构:MLP 或 轻量 UNet-like Graph 网络

输入:原图关键点(可归一化到 [0,1])

输出:瘦脸关键点,根据关键点得到瘦脸效果图

损失函数:

网络结构:MLP 或 轻量 UNet-like Graph 网络

输入:原图关键点(可归一化到 [0,1])

输出:瘦脸关键点,根据关键点得到瘦脸效果图

损失函数:

优点:实现简单,训练数据量不需要太大,可用于影楼高分辨率大图的处理;

优点:实现简单,训练数据量不需要太大,可用于影楼高分辨率大图的处理;

以68个人脸关键点为例,网络结构举例如下:

方案四 偏移学习

思路:基于方案二,我们不进行关键点的直接回归,而是进行关键点偏移量的学习,将人脸关键点输入网络,输出要达到瘦脸效果所对应的关键点偏移量,然后,根据偏移量对图像进行Warp,得到瘦脸效果;

与直接回归相比,学习形变偏移更稳定,训练模型预测偏移量,再与原点位相加得到瘦脸点位。

偏移量计算:

同时,也可添加强度控制:

本文在这里,将以这种方案为例,进行详细讲解,并用tf.keras来实现整个算法。

模型训练

原理

数据集构建

我们以68人脸关键点为例,假设你有以下 numpy 数据文件:

可以先计算偏移量 ΔK:

模型构建

这里我们使用简单的 MLP 预测关键点偏移量,大家也可以自行使用更为复杂的网络设计,这里仅做举例:

模型训练

推理与瘦脸效果关键点合成

瘦脸变形

有了瘦脸前后的关键点,我们就可以使用 Thin Plate Spline (TPS) 或 Piecewise Affine Warp来进行人脸变形,得到最终的瘦脸效果:

上面就是基于瘦脸关键点偏移学习的AI瘦脸方案的完整介绍。最后,给个效果示例:

本文介绍的几种方案,都是个人在实践经验积累中,感觉相对而言比较可行,可用的方案。其中对于关键点部分,并不局限于2D关键点,也可使用3D关键点,在3D空间进行Warp,效果会更好。

实际上,大家对于人脸美型类的研究一直都未停止,除了本文的几种方法,还有很多其他的方法和论文,比如以下几篇论文:

《Deep Shapely Portraits》

《Face shape transfer via semantic warping》

《Parametric Weight-change Reshaping for Portrait Images》

大家有兴趣可自行研究。返回搜狐,查看更多