【深度算法】APP直播想实现“逆天”美颜,你只需要一个人脸识别API

几年前图片美颜教育了市场,到了直播时代,美颜同样成为直播平台的标配。女主播要是在直播中不能自动美颜,那只能靠更精致的妆容来补,而实时直播美颜技术恰好解决了这个问题。

目前最新的美颜技术已经发展到了2.0阶段,打个比方,如果美颜1.0只是化妆(磨皮、祛痘、肤色调整)的话,美颜2.0基本就能达到整容的效果——把眼睛变大,把圆脸变成瓜子脸。而实现这一效果的基础就是人脸识别。

美颜中最常见的祛痘、磨皮技术原?是什么样的?

从图像处理的角度看,什么是“痘”和“斑”?

一张图像可以看作是一个二维的数据集合,其中每个元素都是一个像素点。如果将这些数据用几何的方式来呈现出来,“痘”就是和周围点差异较大的点。在图像处理领域,这个差异是通过灰度值来衡量的灰度,也叫“亮度”。灰度图,也就是黑白图。将彩色图转换为灰度图,图像的关键特征不会丢失。

事实上,人的眼睛在观察物体时,首先注意的是物体的边缘。而在一张图像里面,边缘,即与周边灰度差异较大的点。类似的,“痘”也是与周边点的灰度差异较大的点。相比色彩,人的眼睛对灰度更敏感。

磨皮祛痘,就是要平滑点与点之间的灰度差异,同时还要保持皮肤原有的一些细节。所以,美颜一般选择边界保持类平滑滤波算法。

直播的实时性,最直接的体现就是在很短的时间内,完成一系列任务。所以直播中的美颜,对性能有很高的要求,无法使用特别复杂的算法。我们只能在算法和美颜效果之间找个平衡点。

在图片处理应用中,没有实时性的要求,所以对算法没有什么限制。只要能实现好的效果,再复杂的算法也可以用。

在第一个问题中,我提到了边界保持类平滑滤波算法。这类算法有很多种,但在直播中一般均选择双边滤波算法。这个算法性能高,效果也比较好,非常适合直播场景。除了磨皮算法外,调整皮肤肤色也是美颜的一个关键环节。关于调整肤色:一方面实现美白、红润的效果;另一方面则通过控制肤色,可以弱化“痘”和“斑”等,因为磨皮算法只能在一定程度上消除噪点。调整肤色个环节,还能够让设计人员参与进来,来设计出更符合我们审美观的效果来。

如何解决美颜后画面像素变差的问题,可通过什?么办法在保证美颜效果和画质之间的平衡?

从技术上讲,美颜和画质没有关系。直播的画质由主播端的输出码率决定,码率越高,画质越好,反之越差。 一般来说,在直播应用中,主播端输出的码率是固定的,或者说限制在一定范围内。如果网络情况好,输出的码率高,反之则低。目前主流的直播平台都采用RTMP协议,采用其它技术比如webRTC。此外直播画质和直播平台的稳定性也有一定关系。

如何实现直播时添加脸部贴图,甚至实时整容:如把眼睛变大,把圆脸变成瓜子脸?

这类效果的核心是人脸识别技术。在直播时,从相机采集到每一帧的画面,然后进行人脸识别,再标示出关键点的位置,结合图像技术得到最终的效果。

机器学习方案:

机器学习识别物体是基于像素特征的我们会搜集大量的图像素材,再选择一个算法,使用这个算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。

深度学习方案:

深度学习与机器学习不同的是,它模拟我们人类自己去识别人脸的思路。比如,神经学家发现了我们人类在认识一个东西、观察一个东西的时候,边缘检测类的神经元先反应比较大,也就是说我们看物体的时候永远都是先观察到边缘。

深度学习就模拟了我们人类去观测物体这样一种方式,首先拿到海量数据,拿到以后才有海量样本做训练,抓取到核心的特征建立一个网络。因为深度学习就是建立一个多层的神经网络。

当然这其中每一层有时候会去做一些数学计算,有的层会做图象预算,一般随着层级往下,特征会越来越抽象。比如我们人认识一个东西,我们可能先把桌子的几个边缘抓过来,结果每个边缘和轮廓组成的可能性都很多。基于轮廓的组成,我们可把这个桌子抽象成几层,可能第一层是这里有个什么线,然后逐渐往下抽象程度会由点到线到面,或者到更多的面等等这样的过程。这是一个抽象的过程。

机器学习方案和深度学习方案的区别:

而这两种“学习”的区别,举个例子来说:比如要识别具体环境中的人脸,如果遇到云雾,或者被树遮挡一部分,人脸就变得残缺与模糊,那基于像素的像素特征的机器学习就无法辨认了。它太僵化,太容易受环境条件的干扰。

而深度学习则将所有元素都打碎,然后用神经元进行“检查”:人脸的五官特征、人脸的典型尺寸等等。最后,神经网络会根据各种因素以及各种元素的权重,给出一个经过深思熟虑的猜测,即这个图像有多大可能是张人脸。

移动平台上用深度学习替换机器学习算法:

具体到应用层面,在移动设备上,采用机器学习进行人脸识别,是目前的主流做法。将深度学习迁移到移动设备上,这算是时下的研究热点。深度学习的效果很好,但是前提是建立在大量的计算基础上。虽然现在的手机硬件性能已经很好,但如果要运行深度学习的模型,手机的电量会是个问题。

据我了解,目前已经有一些公司已经成功在手机上实现了低能耗的深度学习算法。目前我们也在做相关研究,在移动平台上用深度学习替换机器学习算法。

再回到直播中的给人脸实时贴图或者“整容”,实现这一效果主要应用我上面提到的人脸识别技术,检测并识别出人脸的关键点再进行图像处理即可。

邱彦林:涂图CTO,专注于图像技术,以及机器学习在图像处理中的实际应用。国内最早一批Flash开发人员,曾出版2本Flash中文技术书籍,擅长程序架构设计。

改变眼睛和脸型涉及到美丑的问题,如何让计算机懂得“审美”?

改变眼睛与脸型这类美颜,因为要涉及到人脸识别的问题,就像我刚才说的原理,非常复杂,对计算量的要求也非常大。

目前这类美颜一般都是基于机器学习的,参数在编写程序时已经确定好,并没有计算机“自己”调整的过程。

举例来说:在一些比较专业的图象处理论坛里面,有设计师会发一些经过处理的美女图片来。一般是发张原图,发张经过处理之后出来一个效果图,原图跟效果图之间有个差异,我们可以通过技术手段得到这个差异。

图片跟图片之间可以通过一些手法去模拟到这个效果,这中间的过程都是可以计算出来的。然后在滤镜、PS,或者是图象处理里的一项技术,去控制一张图片的颜色表现。通过把技术人员跟美工人员结合起来,技术只管技术,美工只管美工,这样就能够开发与设计结合起来,实现所谓的“美”。

所以你看很多平台算法都大同小异,但是为什么最终出来的美颜效果让人感觉还是有差异,其实就是说里面有很多细节在,需要花时间优化,特别是用户的需求是什么,怎样更漂亮。

未来深度学习的技术更为成熟时,电脑也许就可以凭借海量的数据来总结出美来,进而按这种总结出的“审美”来处理图像。

直播美颜目前面临最大的技术难题是?么?

暂时没有很大的技术难题,Android设备适配可以算一个。由于Android设备和系统类型较多,导致在Android平台上,直播美颜很难做到兼容所有设备。Android直播,从技术上分为硬编和软编两种方案。

硬编:即采用硬件加速,通过GPU进行视频编码。特性是省电、性能好,是目前最佳的方案。但无法支持个别机型。Android 4.3 以上的系统才支持这个方案。(这其实不是问题了,现在主流的设备都是Android 5.0以上);另一方面,一些厂商在硬件层和软件层做适配时,缺乏相关支持。

软编:通过CPU进行视频编码,比较耗电、性能差,但能兼容绝大部分设备。主流的直播平台一般是根据进行来自动适配,保证最佳效果。

美图手机使用的是Android系统,在软件层面,和一般的应用开发应该是相似的:也就是开发一款拍照应用,通过调用系统API访问相机,采集到画面,然后通过美颜处理。

在Android平台一般使用OpenGL ES进行图像处理。在OpenGL ES中编写算法,实现效果,最后将处理的结果传输给CPU,然后生成最终的照片。

至于卡西欧自拍神器,据我所知这个应该使用的是厂商自己的系统。我分析整个运行流程和Android系统相似。它的效果比较好,除了算法之外,在硬件上应该也有自己独特的处理元件。

一般都没有把人脸单独提取出来做美化,美化是通过肤色检测来确定美颜范围的。运动物体检测跟踪,指的是人脸检测吗?如果是,对性能的要求肯定是提高了。如果要追踪的比较紧,需要每帧都做检测,性能要求肯定是非常高,以毫秒计。

双边滤波的多数实现似乎也无法达到实时性的需求,请问这里有什么trick吗?

主要是性能优化吧,比如一般图像卷积处理,是选周围8个点,可以减少为4个。OpenGL ES脚本按顺序执行,我们需要逐点处理,减少处理的点,这样速度会提上去。GPUImage开源库里有可参考的代码。

深度学习类算法应用于哪些方面呢?相比传统的基于特征的算法,性能差距至少是两个数量级吧?

深度学习采用的多层神经网络,运算量大,相比传统的机器学习算法,一般来说,差距至少是好几个数量级,这个和网络结构、层级等有直接关系。应用的范围很广,包括图像识别、语音识别、翻译、数据挖掘等。

在移动设备上,使用深度学习来实现一些图像识别的功能,这是时下的一个研究热点。前段时间Caffe的作者在手机上实现了实时处理视频添加类似Prisma的网络结构,使用的是经过优化的Caffe2版本。

iOS 9开始,苹果就提供了深度学习API,在iOS10,相关API得到更新。可以理解为,iPhone7以后,进行深度学习的开发,已经逐渐成熟了。

原文发布于微信公众号 - BestSDK(bestsdk)

原文发表时间:2016-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

周末漫谈 | 都说想转型机器学习,到你真的有机会吗?机器学习下一个创新点到底在哪里?

本期话题 这个周六,让我们来聊聊当前火热的机器学习,它未来的机会在哪里呢? 机器学习、计算机视觉下一步的创新点在哪里? 随着硬件的迭代,神经网络的隐藏层可以...

37290
来自专栏新智元

Facebook宣布机器翻译全面采用神经网络,现每日处理45亿次翻译

【新智元导读】Facebook 今天宣布,从使用基于短语的机器翻译模型改为使用神经网络系统来处理其社交网络后端每天的翻译请求,每天翻译超过 45 亿次。与基于短...

36480
来自专栏AI科技评论

谷歌大脑撰文解析 AutoML:神经网络如何自行设计神经架构? | Google I/O 2017

在 Google I/O 大会上,谷歌公布了最新的机器学习算法——AutoML,随即,Quoc Le 与 Barret Aoph 大神在 Google Rese...

364100
来自专栏ATYUN订阅号

谷歌在Kaggle上发起包容性图像挑战赛

发布大型公开图像数据集,如ImageNet,Open Images和Conceptual Captions,是推动计算机视觉领域巨大进步的因素之一。虽然这些数据...

15040
来自专栏AI研习社

CVPR 2018摘要:第二部分

今天,我们继续推出最近的CVPR(计算机视觉和模式识别)会议系列,这是世界上计算机视觉的顶级会议。 Neuromation成功参加了DeepGlobe研讨会,现...

9820
来自专栏AI科技评论

深度丨女主播的“逆天”美颜原来是靠这些 AI 技术实现的

雷锋网按:本文内容来自涂图 CTO 邱彦林在硬创公开课的分享,在未改变原意的基础上进行了编辑整理。 几年前图片美颜教育了市场,到了直播时代,美颜同样成为直播平台...

1.4K60
来自专栏新智元

逆天!MIT新“像素发声”系统,完美分离声与画(附视频)

?---- 【新智元导读】麻省理工学院(MIT)的计算机科学与人工智能实验室(CSAIL)最近研发出一种名为Pixel Player系统,能够通过大量无标签的视...

322100
来自专栏企鹅号快讯

深度学习的核心工作流程之一:如何训练数据!

-免费加入AI技术专家社群>> 今天我们将讨论深度学习中最核心的问题之一:训练数据。深度学习已经在现实世界得到了广泛运用,例如:无人驾驶汽车,收据识别,道路缺陷...

28450
来自专栏人工智能头条

需要密切关注的六大人工智能/机器学习领域

21430
来自专栏计算机视觉战队

人脸检测与识别技术(怎么去创新?)

首先给大家展示下简单的人脸检测与识别!(生活场景剧——生活大爆炸!) ? ---- 自从“阿法狗”再次击败人类,再一次掀起了深度学习(人工智能)的热潮。而且在该...

47660

扫码关注云+社区

领取腾讯云代金券