美颜空间不扭曲 | 人像美化技术揭秘之「背景扭曲矫正」
点击下方“AI算法与图像处理”,一起进步!
重磅干货,第一时间送达
最新技术干货分享
01背景
“瘦脸”、“小头”、“长腿”等美型美体功能已经成为各美颜App的标配,是人像美化技术的重要组成部分,在短视频、人像照片美化等领域都有着广阔的应用前景,深受广大创作者喜爱。但是对人脸、人体在做形变的时候,背景区域也会跟着扭曲变形,比如用户吐槽的 “墙都P歪了”,“门都不是直的”,也成为用户吐槽美颜显“假”的主要原因之一。因此在对人像照片进行美型、美体编辑时,加入对人像背景的扭曲矫正处理,非常有助于提升用户体验和视觉观感。
得益于快手Y-tech 美颜算法组在人像美化和图像修复领域的深度耕耘与积累,基于迭代最优化算法,利用图像中的直线等语义信息,解决了以上挑战,美化后的人像图片更加真实、自然。如下图1所示,左图为原始图像,中间为 “小头”效果,背景扭曲现象特别明显,右图为经过快手自研矫正算法处理后的图像,已经完全看不到扭曲现象了。该功能已随一甜相机、原片等App的最新版本发布。
图1. 原图 (左) 、 "小头"(中)、背景矫正(右)
02算法框架概述
正如前文所述,在对人像进行美型美体等编辑处理的时候,想要保证背景不受影响,是非常困难的,如果需要在手机端进行实时处理难度更大。上述问题主要有以下难点:
(1)用户拍摄背景多变,背景图像内容复杂,矫正算法要适用各种场景,这给算法的适用性带来极大的挑战。
(2)用户在做美型时,可能会多项美型效果叠加。例如用户在做脸部美型的时候可能叠加了“小头”、“瘦脸”、“调整太阳穴”、“调整下巴”等多项美型操作。很难用统一的规则来矫正多项美型功能叠加后导致的背景扭曲。
(3)当用户在手机上调整美型程度大小的时候,用户需要实时预览美型以及矫正后的效果,所以矫正算法需要实时处理,这对算法的性能要求非常高。
针对如上几个挑战,快手Y-tech美颜算法团队进行了多项算法和工程上的攻坚,主要算法框架如图2所示。该算法支持对快手上所有美型、美体操作后的背景扭曲现象进行矫正,为方便描述算法,下文均以矫正 “小头” 效果后的背景扭曲现象为例。
图2. 快手自研图像背景扭曲矫正算法框架
03算法关键细节
算法基于如下观察:如果美型前后背景中的直线斜率保持不变,那么用户将不再会明显地感知到背景扭曲。为此,我们根据预设规则在原图背景中选择一些特征点,并利用这些特征点对背景区域进行三角网格划分。“小头” 操作后,这些特征点的位置会发生改变,通过检测原图背景中的直线,并以变化前后的直线斜率保持不变以及三角形形状保持不变两个约束建立优化目标函数,最终求得矫正后特征点的位置。以下将对算法中的关键细节进行介绍。
3.1 线段检测及其在三角网格中的分布
为了矫正背景区域,我们首先在背景中预设一组特征点。如图3(左)所示,对原始图像,从边缘选择与人脸轮廓关键点对应数目的点,将这些点与对应轮廓关键点连接成线段,然后把线段进行“4等分”,构建出更多的背景特征点,利用这些特征点将人脸以外的背景区域划分成不同的三角形。比如本任务中,人脸轮廓点以及全部的背景特征点,共150个特征点,分别记为:
图3. 原图(左)和 “小头” 后(右)背景图像三角网格划分
图4. 直线检测(左)和直线在三角网格的分布(右)
3.2 建立优化目标函数
原图中的背景特征点
3.2.1 斜率保持约束
图5. 三角形和直线示例
如图5所示,我们以原图中的三角形
其中m表示线段的个数。
由于有的三角形内可能没有直线,所以对公式(1)直接求解时可能会碰到解不稳定的现象。为了保持解的稳定,需要加上一个形状保持的约束。
如图(6)所示,假设变换前后三角形的三个顶点分别是
其中n表示三角形的个数。
结合公式(1)和(2),得到最终的优化目标函数如下:
最终的优化目标是求解一个非线性优化问题,该问题可采用高斯-牛顿迭代法、Levenberg-Marquardt算法等方法求解。下图的蓝色网格展示了图3中的网格经过优化后的结果 :
图7. 红色网格为优化前,蓝色网格为优化后
根据变换前后三角网格之间的映射关系对原图进行变换,得到矫正后的图像如图8(c)所示:
图8 a.原图
b.未加矫正的“小头”效果
c.矫正后的“小头”效果
04更多效果展示
以下在展示更多图例的同时,也和竞品进行了直接对比。目前市面上只有1家竞品厂商有此功能,相比竞品只有 “小头”功能支持背景矫正,快手自研矫正算法支持所有美型、美体操作。下面的动图左侧为快手自研效果 ,右侧为竞品效果,可以比较直观的看出快手自研算法的优势。
05总结与展望
快手自研背景扭曲矫正算法,主要从保持背景图像直线斜率不变这个核心思想入手,在保证较好的美颜美型效果下,做到背景图像不变形。不仅效果上在业界也达到了最优,而且算法性能出众,可以覆盖所有手机机型。该效果已在快手的一甜相机、原片等APP的新版本中上线,欢迎大家下载体验。后续除了人脸美型之外,我们的算法也将落地到美体瘦身等其他应用场景中。对于未来,我们会继续打磨人像美化算法的效果和性能,为广大用户带来更加真实、自然的人像美化体验。
[1] Line Segment Detection Papers. https://github.com/lh9171338/Line-Segment-Detection-Papers
[2] IGARASHI, T., MOSCOVICH, T., AND HUGHES, J. F. 2005. As-rigid-as-possible shape manipulation. ACM Transactions on Graphics 24, 3 (Aug.), 1134–114.
[3] Rafael Gioi, Jeremie Jakubowicz, Jean-Michel Morel, and Gregory Randall. Lsd: A fast line segment detector with a false detection control. IEEE transactions on pattern analysis and machine intelligence, 32:722–32, 04 2010.
[4] A. Vakhitov and V. Lempitsky. Learnable line segment descriptor for visual slam. IEEE Access, 7:39923–39934, 2019.
[5] Lilian Zhang and Reinhard Koch. An efficient and robust line segment matching approach based on lbd descriptor and pairwise geometric consistency. Journal of Visual Communication and Image Representation, 24(7):794–805, 2013.
[6] L. Nie, C. Lin, K. Liao, and Y. Zhao, “Learning edge-preserved image stitching from large-baseline deep homography,” arXiv preprint arXiv:2012.06194, 2020.
[7] D. P. Kingma and J. Ba, “Adam: A method for stochastic optimization,” arXiv preprint arXiv:1412.6980, 2014.
[8] C.-H. Chang, Y. Sato, and Y.-Y. Chuang, “Shape-preserving halfprojective warps for image stitching,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 3254– 3261, 2014.
交流群
欢迎加入公众号读者群一起和同行交流,目前有美颜、三维视觉、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群
个人微信(如果没有备注不拉群!) 请注明:地区+学校/企业+研究方向+昵称
下载1:何恺明顶会分享
在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析
下载2:终身受益的编程指南:Google编程风格指南
在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!
下载3 CVPR2021 在「AI算法与图像处理」公众号后台回复:CVPR,即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文