AI+AR如何提升花椒直播的体验?

640?wx_fmt=jpeg


随着全民直播时代的到来,用户对视频质量和创意需求增多,由此产生了视频增强等技术的巨大需求。360资深技术专家刘洛麒根据360在视频领域的开发经验与技术积累,详细介绍了人工智能在视频直播中的技术与相关应用。本文来自其在LiveVideoStackCon 2018大会中的演讲,并由LiveVideoStack整理而成。


文 / 刘洛麒

整理 / LiveVideoStack


大家好,我叫刘洛麒,在360人工智能研究院负责计算机视觉算法方面的工作。本次的分享主要介绍AI与AR在花椒直播中的应用。内容可以分为三个部分,第一部分是花椒直播的行业地位和产品优势;第二部分是花椒直播的AI算法的技术储备和技术壁垒,这里主要介绍我们到底做了哪些技术,达到了一个什么样的效果,最后是介绍花椒直播中基于AI的AR特效平台。


640?wx_fmt=png


首先来看一下花椒直播的行业地位和产品优势。

 

640?wx_fmt=png


在去年的第四季度,花椒直播大概在直播平台上有2.13%的活跃用户占比,这个占比在所有的直播平台里算是最高的。

 

640?wx_fmt=png


另外,花椒直播在去年第四季度有17%的增长率。由于花椒直播有各种不同的运营手段,包括在花椒直播中使用技术手段在平台上获得更多的新的应用,使得增长率保持在一个非常高的水平。

 

640?wx_fmt=png


接下来主要介绍一下360AI研究院在人工智能技术上所做的一些核心工作。360AI研究院联合新加坡国立大学历史上共获得过10余项Pascal和Imagenet比赛的奖项,并在2012年PASCAL收官之战上曾获得两项冠军,然后在17年的IMAGENET收官之战上再获得了两项单项冠军。当然刷比赛的分数不是我们的核心点,我们同时还有一些原创性的想法,比如我们早期的一个卷积的想法就获得了Google最杰出科学家的邮件感谢和赞许。

 

640?wx_fmt=png


下面主要介绍我们在核心技术上的一些思考。我们在核心算法方面有三个网络模型的贡献,比较早期的是Network in Network网络,然后是现在比较强的Dual-path Network,即双通道网络,以及推荐用在花椒直播的模型设计上的一个轻量级的多纤维网络,Multi-fiber Network。对于网络结构设计,主要有两点需要注意,首先是它性能要非常好,另外就是速度和性能的一个权衡。

 

640?wx_fmt=png


NIN网络是我们比较早期的工作,相比Alexnent我们主要想到两点需要改进的地方,第一点是卷积层需要改进,卷积是一个局部线性的结构,所以我们就设置了一个非常复杂的局部网络结构,比如左边红色的一个框图,我们把卷积层扩展成多层感知机的一个局部结构,扩展了之后使它的表达能力会变得非常强;第二点是连接层的一个改进,我们把全连接层改成Global Average Pooling。


后来出现了残差网络Resnet,它可以优化非常深的网络。残差网络有很强的递归特性,与RNN网络有一定的参照性。

 

640?wx_fmt=png


将残差网络叠起来,当参数共享时其实就是RNN。

 

640?wx_fmt=png


另外一点就是RNN有三阶、四阶或者更高阶的,高阶的RNN展开之后其实就是一个DenseNet网络。这启发我们思考残差网络和DenseNet网络之间的关系。

 

640?wx_fmt=png


其实我们研究了相邻的两层,比如上图中右边的绿色小圆球和小箭头的两层,我们发现如果把这相邻的两层做参数共享,它可以直接串起来。

 

640?wx_fmt=png


如果输入输出相同时我们可以再加一个新的通路。

 

640?wx_fmt=png


当新的通路添加之后需要将结构重新调整一下。

 

640?wx_fmt=png


调整完之后,中间可以形成一个残差网络结构。也就是说中间网络结构和左边网络结构相当于是等价的。我们得出的结论就是,当相邻两层参数共享时,残差网络就等同于DenseNet网络。于是我们设计了DPN来结合这两个网络的优点。

 

640?wx_fmt=png


DPN其实相当于有两个通道,一部分是DenseNet网络结构,另一部分是残差网络结构。这样就可以同时保留两个网络的优势。

 

640?wx_fmt=png


我们再简化一下,大概是上图这样的一个形式。

 

640?wx_fmt=png


我们大概设定了不同深度的网络,在同样的精度下,我们的模型与当时最好的ResNeXt-101模型做比较,结果如上图所示。我们的模型比它小26%,计算量小25%,Memory小8%。

 

640?wx_fmt=png


然后是单个模型,单个 center-crop 大概达到4.16%,这是当时最好的一个结果。

 

640?wx_fmt=png


上图是结果的展示,可以看到图中桌子,花,小朋友等都能非常准确的检测到。


640?wx_fmt=png


刚才设计的是比较大型的高性能网络,我们的第三个设计是一个非常有效的,非常快速的网络结构。最近大家用的比较多的网络结构中间都采用了分组卷积,比如ResNeXt,它的特点是组与组之间没有连接,计算量也因此小了很多。但是ResNeXt的问题就是它的输入输出层中的卷积并没有使用分组卷积,所以我们将输入输出层的组与组之间的连接去掉。

 

640?wx_fmt=png


但是去掉连接后其实也会出现问题,于是我们在每个层之间增加了一个Transistor,相当于路由的东西。当跑一个比较简单的残差结构时可以把组与组之间的信息进行信息交换。

 

640?wx_fmt=png


我们最终也做了一个视频分类的问题。

 

640?wx_fmt=png


上图显示的是在Kinetics视频数据集上的一个结果,可以看到网络还是非常有效的。


640?wx_fmt=png


前面介绍的是我们核心网络结构设计,但我们还需要研究一些可以应用在具体问题上的算法,于是我们开发了基于AI的AR特效平台,这个平台也应用到了花椒直播上。


640?wx_fmt=png


花椒的特效平台主要包含四个方面的技术,第一个是人脸分析技术,主要是人脸检测,身份识别等,然后就是背景替换、手势识别以及美颜系统。

 

640?wx_fmt=png


这些算法准确率非常高,我们在FDD 300_W这些库上都做过验证,同时其还有非常高的稳定性。底层算法也做了很多优化,比如在iphone 6s上,CPU占用只有20%,内存占用50M,这是在两年前的数据,现在的性能应该更高,并且人脸检测定位模型也非常小。

 

640?wx_fmt=png


上图是我们人脸分析的SDK的一个效果展示。

 

640?wx_fmt=png


我们还做了一个3D的表情驱动,主播和用户连麦的时候,很多用户不想露自己的脸,于是我们通过添加卡通人物,用户只把声音传给主播,表情和卡通人物是联动的。

 

640?wx_fmt=png


手势识别的算法可以快速准确的跟踪和识别多种手势,并满足各种高低端终端的使用需求。

 

640?wx_fmt=png


抠图算法采用两种模式以满足不同用户的需求,一种模式是主播在直播的时候可以通过绿幕来替换背景,其特点是稳定,资源占用较低;另外一种模式是前后景分割,通过使用FCN模型,将主播人脸、头发等抠出来。

 

640?wx_fmt=png


风格化滤镜,主播在直播时候可以随意切换不同的滤镜。

 

640?wx_fmt=png


当然最核心的还是美颜算法。我们的美颜叫做“可控美颜”,它只对人前景做美颜效果,在尽量维持整体背景的前提下对面部区域进行微调整。


640?wx_fmt=jpeg


点击【阅读原文】或扫描图中二维码了解更多LiveVideoStackCon 2019 上海 音视频技术大会 讲师信息。

猜你喜欢

转载自blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/88047758