版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82392646

本文来自花椒直播海外技术负责人唐赓在LiveVideoStackCon 2017上的分享,并由LiveVideoStack整理而成,在分享中唐赓详细介绍了直播的基本组成部分以及ARKit、3D引擎、深度学习等技术在直播场景下的应用。

文 / 唐赓

整理 / LiveVideoStack

大家好,我是唐赓,现就职于花椒直播。主要负责iOS和一些新技术的应用。本次的分享内容主要是介绍一下我们包括个人对直播这项新技术应用的一些看法。

1. 直播的基本组成部分

直播行业大约是在2015开始火起来,由于是刚起步,所以整个直播行业不是特别成熟。在早期时甚至会出现音画不同步等一些基础的问题。之后也做了很多的工作,比如直播视频秒开的优化,包括网络自适应、码率自适应、分辨率以及帧率的自适应。对于码率自适应,在点播的场景下,服务器会事先准备几段不同码率的视频,观众根据不同的需要、网络状况从服务器上拉取不同的码流。但是在直播的场景下,网络自适应更多的是发生在主播端,比如当主播的网络不太好时,我们就会根据上行的码流情况来实时的进行调整,包括调整视频的分辨率、码率、帧率。然后对于超大型的聊天室或者一些直播网站,就要求每个直播间能够承受百万量级并发的在线用户,包括私信、群组,这都是我们过去已经做过的一些优化工作。

随着直播行业的发展,单向的直播已经没有什么新意了,现在大家开始关注连麦、一对一的单聊、群聊等。这些功能在我们的APP中都已经实现了,包括上层的展现,比如美颜、滤镜、瘦脸、大眼、人脸识别贴纸、3D头盔等等。我们在2015年5月份左右起步做直播,这些都是我们在这两年里做过的一些事情,目前这些功能已经逐渐成为直播APP的标配,那么下一步该如何去做?在我个人认为至少可以关注以下方面,如Augment Reality,Computer Graphics、Computer Vision以及Machine Learning.,接下来将分别给大家介绍一下这四个方面。

2. Augment Reality

首先是人脸识别技术,从2016年开始已经初步实现,而我们可以说是第一个把这项技术应用到直播场景中的。2016年初,我们发现手机上实时的人脸识别非常消耗CPU内存,因此就可能导致直播卡顿,无法播放。为了解决这个问题,我们当时进行了非常多的优化,比如,最先在有限的手机资源之上实现了实时的人脸贴纸功能。但当时人脸识别的SDK普遍的CPU消耗都在50%以上,甚至苹果自己提供的人脸识别的消耗都在80%以上,而且抖动非常厉害。到了2017年,在不断的优化之后,人脸识别在手机上的应用就非常成熟了。

现在基于ARKit、ARCore、SenseAR或者是基于IMU都可以实现很多玩法,比如利用AI/AR可以实现手势识别与真实场景的结合。那么AR可以怎么利用呢?从一些小视频可以看到,拍摄者与表演者以及一些动画效果要配合的很好才能实现AR特效,但是这些都是假的AR,而我们用AR技术就完全可以把这些做成真的。另外,基于AR在直播间里的视频上面展现一些广告或者好玩的东西,这实际也是比较经典的AR应用。

3. Computer Fraphics

AR可以反馈一些基本场景的认知信息,包括平面在哪里,墙在哪里等。那么如何在上面叠加这些场景,这就需要基于图形学的一些技术。最常见的就是基于OpenGL/Metal提供的一些API去实现,当然也有利用像Unity、Unreal之类相对成熟的引擎,包括苹果提供的SceneKit 3D引擎。另外就是利用一些开源的引擎,比如Cocos2d-x、Crystal Space、Blender Game Engine,它们的功能也都比较强。像Cocos2DX目前已经发展出比较强的3D能力,它能够展现骨骼动画以及一些比较复杂的光影效果。如果能力足够也可以开发自制引擎,据我所知,国内的很多游戏厂商比如腾讯、畅游、搜狐,他们用的都是自己研发的强大引擎。

4. Computer Vision

直播行业目前对计算机视觉的依赖也变得非常的强烈。计算机视觉的开源实现主要体现在两个开源库,分别是OpenCV和Dlib。OpenCV是由Intel发布的一个非常强大的视觉库。包括实时计算机视觉、机器学习,包括一些图像处理、分析等基本都离不开它,而且它的代码实现非常的简单快速。Dlib的使用非常方便,而且它自带了它所依赖的一些东西,包括网络、线程、GUI、各种各样的线性代数、机器学习、图像处理等各种模块。它最大的一个优势是自带强大的人脸识别引擎。接下来可以看一下基于OpenCV和Dlib实现的一些功能。

A. 人脸朝向识别

从上面这幅图可以看到,根据Dlib给出的人脸关键点坐标信息,计算出了人脸的朝向,人脸前面的这根红线就是显示出了人脸的朝向。基于人脸关键点坐标、朝向信息,就可以实现比较炫酷的3D头盔功能,此处例子的实现目前在网上有开源的代码可以进行参考。

B. 精确估算手势位置和姿势

从上图可以看到,在直播中可以精确的估算主播的手指头的位置以及姿势,主播可以利用这种技术完成很多有趣的交互。

目前,在PC上已经可以实现对于一个场景中多个人的复杂的肢体运动的实时识别。但是面临的一个非常大的挑战是如何将这个能力内嵌到手机APP中,如果能够做到这一点,那么就可以把主播跳舞之类的身体动作实时截取出来并与动画人偶相结合,会使得整个直播间显得非常生动。

5. Machine Learning

接下来简单介绍一下机器学习。机器学习在直播中已经有了很多的运用,比如人脸识别、物体识别、手势识别、背景分割抠像等,再进一步的运用就是实时翻译、跨语种连麦、画质改进以及自动生成主播漫画人偶。

机器学习的运用除了此前介绍到的一些前台功能,还具有后台功能,包括实时判断主播的性别年龄、颜值才艺类型、识别场景、口才打分、人气等。

下面几页PPT简单介绍一下深度学习的一些入门知识。上面展现的是Google的一个Neural Network Playground ,在playground.tensorflow.org上可以看到,可以尝试设计自己的神经网络,了解深度学习的过程。(DEMO)。实际上深度学习就是在不断地调整它的超参数,增加深度学习的深度以及细胞的数量。现在所谓的深度学习的研究实际上就是用各种各样的排列组合来找出一种网络结构能够更适合的解决某一类问题。

上面列出了各种开源的网络结构,它们都是由各种学术机构花了很多的时间精力找出的比较适合解决某些问题的网络结构。当网络结构越复杂时,训练模型的时间就越久。

这是一个简单的深度学习的例子,其中高亮的几行是对网络结构的描述。它使用Keras/TensorFlow训练模型,在进行了一千次迭代之后,误差就降到了千分之四,我们就可以认为训练出来的模型已经学会了异或运算法则。

前面例子中训练出来的模型可以直接放在CoreML中使用,运行出来的结果可以在上图中的输出看到,所以说CoreML开发过程是非常简单快速的。

上面这个例子也是实现判断异或功能,但是它没有依赖任何框架,只是利用了一个最基本的数学运算库,这个例子可以看到深度学习核心算法的工作原理,右边是训练跑出来的结果,可以看到最终得到的结果跟前面的一样。所以深度学习就是这么简单暴力。

综上所述,有这么多的技术等着我们去把它放到直播中使用,我觉得后面的前景还是非常广阔的,我们还有很多事情要去做。

从CV到ML 直播场景下新技术的应用相关推荐

  1. 优酷智能档在大型直播场景下的技术实践

    作者 | 阿里文娱高级技术专家 肖文良 本文为阿里文娱高级技术专家肖文良在[阿里文娱2019双11猫晚技术沙龙]中的演讲,主要内容为如何通过优酷智能档,降低用户卡顿尤其是双11直播场景下,提升用户观看 ...

  2. 微博直播场景下,如何实现百万并发的答题互动系统

    内容来源:2018 年 09 月 07 日,新浪微博系统开发工程师陈浩在"RTC2018 实时互联网大会"进行<微博直播场景下百万并发的消息互动系统>演讲分享.IT 大 ...

  3. 【视频直播场景下P2P对等网技术②】任意两节点的联通性能评估

    [视频直播场景下P2P对等网技术②]任意两节点的联通性能评估 如上文([视频直播场景下P2P对等网技术①])所述,当一个新的节点 F F F加入现有的网络 G G G的时候,若 m = ∣ V G ∣ ...

  4. 【视频直播场景下P2P对等网技术①】挑战与形式化分析

    [视频直播场景下P2P对等网技术①]挑战与形式化分析 我在熊猫直播亲自主持的最后一个项目,就是要试图通过P2P对等网技术来切实降低互联网视频直播的流量成本,对此有一些数据上&经验的积累和检验. ...

  5. RTC在大规模直播场景下的技术分析

    RTC是延时非常低的CDN服务,RTC在一对一或者一对几的通话已经是非常成熟的服务了,现在很多应用都已经这么做了.大家如果有这种场景的可以直接往上走,已经没有什么技术障碍了. 我们今天聊的场景是一个对 ...

  6. 阿里技术分享:电商IM消息平台,在群聊、直播场景下的技术实践

    本文由淘宝消息业务团队李历岷(花名骨来)原创分享,首次发表于公众号"淘系技术",有修订和改动. 1.引言 本文来自淘宝消息业务团队的技术实践分享,分析了电商IM消息平台在非传统IM ...

  7. 阿里视频云黄海宇:解析世界杯超大规模直播场景下的码率控制

    在本月的重庆云栖大会飞天技术汇专场中,阿里云高级算法专家黄海宇分享了题为<超大规模直播码率控制>的议题,从生产的链路角度来说世界杯怎么让观众看到更加清晰的视频. 这一次的世界杯,与以往世界 ...

  8. 解析世界杯超大规模直播场景下的码率控制

    摘要: 这一次的世界杯,与以往世界杯最大的区别在于,有很多互联网用户观看直播,而不是在电视上.在互联网观看直播,互联网的网络条件不一样,观众会看不同码率的视频.所以主要分享下阿里云在直播中怎么做码率控 ...

  9. 解析世界杯超大规模直播场景下的码率控制 1

    摘要: 这一次的世界杯,与以往世界杯最大的区别在于,有很多互联网用户观看直播,而不是在电视上.在互联网观看直播,互联网的网络条件不一样,观众会看不同码率的视频.所以主要分享下阿里云在直播中怎么做码率控 ...

最新文章

  1. 关于jetbrains系列产品2018.1.5以后的使用(crack)方法
  2. oracle 11g安装桌面,Lubuntu 12.10 桌面版安装Oracle 11g
  3. Laravel自定义分页样式
  4. composer Failed to decode zlib stream
  5. Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)
  6. 悟空学Linux专栏----第3篇
  7. 复制移动VMware Workstation虚拟机文件产生的问题【转】
  8. 园林景观cad_1000个CAD平面设计素材模板图,绘图任意用,全部打包带走
  9. SSD网络及代码理解
  10. 微软必应词典案例分析
  11. 基于开源飞控系统和安卓系统的4g5g物联网无人机实现
  12. 邢质斌退休意味着一个时代的结束
  13. 泰拉瑞亚服务器config修改,泰拉瑞亚配置修改方法详解 泰拉瑞亚怎么修改游戏配置 Config文件-游侠网...
  14. Gstore官网学习六:安装和部署workbench(自带填坑)
  15. 万字用户画像标签体系建设分析指南!
  16. maya! board_3D角色模型很难做?Maya、Zbrush人头建模终极秘笈
  17. STM32F0 USB VCP数据发送丢包错位问题
  18. springSecurity小试牛刀
  19. 软件测试方法的分类及工具推荐
  20. sqlserver如何删库跑路

热门文章

  1. eclipse链接mysql数据池配置_Tomcat+mysql+eclipse数据库连接池配置
  2. SAP RETAIL 分配表功能的使用
  3. 说说“偏差处理”那点事
  4. SAP PP COR3不能看工单后续的备料TO单号?
  5. 美媒人工智能(AI)代表了计算的优点,没有人类推理的缺点
  6. 「GAN优化」如何学会以正确的姿势定量评价你的GAN
  7. AI 渗透应用程序开发的七种趋势及方法
  8. Facebook 开源标准卷积替代方案 OctConv
  9. 2019年上半年收集到的人工智能LSTM干货文章
  10. Python广度优先查找和深度优先查找(内附python教程分享)