几年前图片美颜教育了市场,到了直播时代,美颜同样成为直播平台的标配。女主播要是在直播中不能自动美颜,那只能靠更精致的妆容来补,而实时直播美颜技术恰好解决了这个问题。
目前最新的美颜技术已经发展到了2.0阶段,打个比方,如果美颜1.0只是化妆(磨皮、祛痘、肤色调整)的话,美颜2.0基本就能达到整容的效果——把眼睛变大,把圆脸变成瓜子脸。而实现这一效果的基础就是人脸识别。
硬创公开课特邀专攻直播美颜的涂图CTO邱彦林为大家讲述《解密AI在直播美颜中起到哪些你看不到的作用》。
美颜中最常见的祛痘、磨皮技术原?是什么样的?
从图像处理的角度看,什么是“痘”和“斑”?
一张图像可以看作是一个二维的数据集合,其中每个元素都是一个像素点。如果将这些数据用几何的方式来呈现出来,“痘”就是和周围点差异较大的点。在图像处理领域,这个差异是通过灰度值来衡量的灰度,也叫“亮度”。灰度图,也就是黑白图。将彩色图转换为灰度图,图像的关键特征不会丢失。
事实上,人的眼睛在观察物体时,首先注意的是物体的边缘。而在一张图像里面,边缘,即与周边灰度差异较大的点。类似的,“痘”也是与周边点的灰度差异较大的点。相比色彩,人的眼睛对灰度更敏感。这也是为什么对视频进行压缩的时候,会偏向于丢弃色彩部分的数据,而尽量保留亮度数据。
磨皮祛痘,就是要平滑点与点之间的灰度差异,同时还要保持皮肤原有的一些细节。所以,美颜一般选择边界保持类平滑滤波算法。
直播美颜(动态)和图片美颜(静态)的区别在哪??动态美颜要解决哪些技术难题?
最重要的区别在于:直播美颜要求实时处理,而静态的图像处理对实时性没有要求,比如最近比较火的Prisma,大家会发现处理一张图像的速度可能需要1~2分钟,甚至更长。
直播的实时性,最直接的体现就是在很短的时间内,完成一系列任务。所以直播中的美颜,对性能有很高的要求,无法使用特别复杂的算法。我们只能在算法和美颜效果之间找个平衡点。
在图片处理应用中,没有实时性的要求,所以对算法没有什么限制。只要能实现好的效果,再复杂的算法也可以用。
在第一个问题中,我提到了边界保持类平滑滤波算法。这类算法有很多种,但在直播中一般均选择双边滤波算法。这个算法性能高,效果也比较好,非常适合直播场景。除了磨皮算法外,调整皮肤肤色也是美颜的一个关键环节。关于调整肤色:一方面实现美白、红润的效果;另一方面则通过控制肤色,可以弱化“痘”和“斑”等,因为磨皮算法只能在一定程度上消除噪点。调整肤色个环节,还能够让设计人员参与进来,来设计出更符合我们审美观的效果来。
如何解决美颜后画面像素变差的问题,可通过什?么办法在保证美颜效果和画质之间的平衡?
从技术上讲,美颜和画质没有关系。直播的画质由主播端的输出码率决定,码率越高,画质越好,反之越差。 一般来说,在直播应用中,主播端输出的码率是固定的,或者说限制在一定范围内。如果网络情况好,输出的码率高,反之则低。目前主流的直播平台都采用RTMP协议,采用其它技术比如webRTC。此外直播画质和直播平台的稳定性也有一定关系。
如何实现直播时添加脸部贴图,甚至实时整容:如把眼睛变大,把圆脸变成瓜子脸?
这类效果的核心是人脸识别技术。在直播时,从相机采集到每一帧的画面,然后进行人脸识别,再标示出关键点的位置,结合图像技术得到最终的效果。
我先深入讲下人脸识别,目前在人脸识别领域可分为机器学习与深度学习两类方案。
机器学习方案:
机器学习识别物体是基于像素特征的我们会搜集大量的图像素材,再选择一个算法,使用这个算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。
深度学习方案:
深度学习与机器学习不同的是,它模拟我们人类自己去识别人脸的思路。比如,神经学家发现了我们人类在认识一个东西、观察一个东西的时候,边缘检测类的神经元先反应比较大,也就是说我们看物体的时候永远都是先观察到边缘。就这样,经过科学家大量的观察与实验,总结出人眼识别的核心模式是基于特殊层级的抓取,从一个简单的层级到一个复杂的层级,这个层级的转变是有一个抽象迭代的过程的。
深度学习就模拟了我们人类去观测物体这样一种方式,首先拿到海量数据,拿到以后才有海量样本做训练,抓取到核心的特征建立一个网络。因为深度学习就是建立一个多层的神经网络。有些简单的算法可能只有四五层,但是有些复杂的,谷歌里面有一百多层,不同的层负责不同的处理方式,如磁化层等等。
当然这其中每一层有时候会去做一些数学计算,有的层会做图象预算,一般随着层级往下,特征会越来越抽象。比如我们人认识一个东西,我们可能先把桌子的几个边缘抓过来,结果每个边缘和轮廓组成的可能性都很多。基于轮廓的组成,我们可把这个桌子抽象成几层,可能第一层是这里有个什么线,然后逐渐往下抽象程度会由点到线到面,或者到更多的面等等这样的过程。这是一个抽象的过程。
机器学习方案和深度学习方案的区别:
而这两种“学习”的区别,举个例子来说:比如要识别具体环境中的人脸,如果遇到云雾,或者被树遮挡一部分,人脸就变得残缺与模糊,那基于像素的像素特征的机器学习就无法辨认了。它太僵化,太容易受环境条件的干扰。
而深度学习则将所有元素都打碎,然后用神经元进行“检查”:人脸的五官特征、人脸的典型尺寸等等。最后,神经网络会根据各种因素以及各种元素的权重,给出一个经过深思熟虑的猜测,即这个图像有多大可能是张人脸。
移动平台上用深度学习替换机器学习算法:
具体到应用层面,在移动设备上,采用机器学习进行人脸识别,是目前的主流做法。将深度学习迁移到移动设备上,这算是时下的研究热点。深度学习的效果很好,但是前提是建立在大量的计算基础上。虽然现在的手机硬件性能已经很好,但如果要运行深度学习的模型,手机的电量会是个问题。
据我了解,目前已经有一些公司已经成功在手机上实现了低能耗的深度学习算法。目前我们也在做相关研究,在移动平台上用深度学习替换机器学习算法。
再回到直播中的给人脸实时贴图或者“整容”,实现这一效果主要应用我上面提到的人脸识别技术,检测并识别出人脸的关键点再进行图像处理即可。
本文来源:不详 作者:佚名