软件开发架构师

腾讯云音视频AI技术落地实践全解析-InfoQ

人工智能 32 2019-11-08 11:55

6 月 29 日,音视频及融合通信技术技术沙龙圆满落幕。本期沙龙特邀请腾讯云技术专家分享关于最新的低延迟技术、全新的商业直播方案等话题,针对腾讯云音视频及融合通信产品的技术全面剖析,为大家带来纯干货的技术分享。下面是孙祥学老师关于 AI 技术在视频智能识别和分析中的应用,以及实际落地过程中遇到的挑战以及解决办法的分享。

本次分享的内容主要包含三个部分,第一部分主要是讲视频 +AI 能产生什么,介绍三款视频 +AI 所产生的产品;第二部分重点介绍智眸这款视频 +AI 的产品,详解它的系统框架及优化场景;最后一部分则对智眸这款产品的具体应用场景进行了讲解。

视频 +AI 能产生什么

第一个视频 +AI 的尝试是极速高清,像斗鱼、虎牙、央视等目前已经接入在使用的一款产品。极速高清是在不降低视频质量情况下降低视频码率,也就是降带宽,降成本。它跟 AI 的结合点在哪呢?就是智能场景的识别,传统的视频编码是不区分视频类别的,而极速高清是首先对视频场景进行识别,根据不同场景的视频特点采取不同的编码参数和前置处理,同码率下 VMAF 评分能提高 10 分以上,或者码率下降 30% 情况下评分仍高于 90 分。

腾讯云音视频AI技术落地实践全解析-InfoQ-1

第二个视频 +AI 的尝试是云剪,一款基于网页的在线视频编辑工具,你在这边编辑视频、贴片、做字幕等处理,右边直接可以预览到,处理完之后可以导出到各个平台。

腾讯云音视频AI技术落地实践全解析-InfoQ-2腾讯云音视频AI技术落地实践全解析-InfoQ-3腾讯云音视频AI技术落地实践全解析-InfoQ-4腾讯云音视频AI技术落地实践全解析-InfoQ-5腾讯云音视频AI技术落地实践全解析-InfoQ-6腾讯云音视频AI技术落地实践全解析-InfoQ-7腾讯云音视频AI技术落地实践全解析-InfoQ-8腾讯云音视频AI技术落地实践全解析-InfoQ-9腾讯云音视频AI技术落地实践全解析-InfoQ-10腾讯云音视频AI技术落地实践全解析-InfoQ-11腾讯云音视频AI技术落地实践全解析-InfoQ-12腾讯云音视频AI技术落地实践全解析-InfoQ-13腾讯云音视频AI技术落地实践全解析-InfoQ-14腾讯云音视频AI技术落地实践全解析-InfoQ-15

第三个视频 +AI 的尝试是智眸,视频的智能识别和分析。后面有一个链接是官网的体验页,主要包括像智能识别、智能编辑和智能审核三块。

智能识别是把视频里的目标人物识别出来,视频语音转换成文字,还有文本的识别,即把视频里面所有出现的文字识别出来,还有物体的识别,像 LOGO、台标这些图标。智能编辑主要是为了做视频编目处理,包括视频分类、标签、封面,以及 PPT 右边的标签、拆条,集锦、片头片尾、版权识别、摘要等。

然后还可以进行智能审核,包括涉黄、涉政、涉暴。还有字幕审核,例如字幕里出现一些非法文字比如说 ISIS。还有语音审核,敏感的语音是不允许出现的。

腾讯云音视频AI技术落地实践全解析-InfoQ-3

智眸之视频智能识别和分析

我下面重点讲一下智眸,这块想从以下几方面介绍,第一个是智眸平台和产品矩阵;第二个是识别系统架构和多媒体处理框架;第三个是引擎基础上的场景优化,还有智能编辑简介。

腾讯云音视频AI技术落地实践全解析-InfoQ-4

智能媒体生产平台,包括基础服务层、AI 引擎层、媒体处理层、基础应用层、基础产品层。智眸所衍生出来的三大产品线,包括智能识别、智能编辑、智能审核,我们在官网上有对应 API 接口可以去调用,客户可以根据自身需求组合满足自己的实际应用场景。

腾讯云音视频AI技术落地实践全解析-InfoQ-5
腾讯云音视频AI技术落地实践全解析-InfoQ-6

下面介绍一下识别系统的架构,这个系统分了四层,分别是接入层、逻辑处理、模型识别和数据层。大概的执行流程是,首先有一个用户库管理,包括人脸入库、包括敏感词的管理;接下来要验证你入库的目标人物是否支持检索;然后是发起视频处理任务,分别进行截图处理、音频处理、识别上报,策略是基于配置和上报的数据进行整合过滤,然后返回结果。

腾讯云音视频AI技术落地实践全解析-InfoQ-7

我们现在做了公有云、私有云一体化部署,我们给客户做私有化部署的时候实际上就是把这套部署到用户机房去。现在 AI 处理有很多的客户需求,就是有一些敏感资源不希望放到公有云去,所以它有私有化的需求,另外我们把这一套加上公有云统一鉴权、点播的资源管理、点播计费系统等就构成了公有云的对外服务。

视频处理也是系统的核心,这套多媒体处理框架,从左到右分别是文件输入(包括点播、直播、本地文件)、解封装、读取压缩数据,然后解码分别生成视频截图和音频 PCM 数据。因为对端 ASR 引擎对输入是有要求的,所以要统一做重采样、转码、分片等。完了把所有的截图、音频分片放到各自的线程队列里去,然后每张图要同时进行所有的识别,然后把所有的识别结果进行统一上报。音频是独立的,按固定间隔发送给 ASR 引擎即可。

腾讯云音视频AI技术落地实践全解析-InfoQ-8

我们还做了柔性的考虑,如果后端引擎负载比较高,我们会降低队列的消费速率,如果队列堆积数据多会控制视频下载速率,系统会自动调节处理速度。对于视频处理的速度默认情况下我们可以满足各种配速比,例如体验网页面是 5 到 6 倍速的配置,即一个一小时视频大概处理完需要 10~12 分钟左右,当然如果你说拿 2 分钟的视频一测发现没有这么快,其实有前提条件的,即视频下载速度够快且视频稍长,才能够充分发挥配速比。我们是可以满足各种配速需求,视频比较急我要五倍速、十倍速,都是没问题的。

引擎基础上如何优化呢?其实是结合视频场景我们做了一些应用场景的优化。人脸检索,腾讯优图人脸识别有一个入库的过程,你要把所关注的人脸图片通过特征提取入库,检索的时候实质上是向量的相似度比较。我们对人脸检索处理衍生出来三种场景,第一种是建库检索,即先建库后检索;历史扫描是前面的视频全部处理完了,突然未入库的某个人违反了法律、吸毒了,前期处理的视频我需要把该目标出现的视频过滤出来怎么办?你一个个处理不现实。那么怎么样把视频过滤出来呢?那就是历史扫描,即检索视频过程中把视频里面所有人脸向量保存起来,对于之前没有入库的目标人物我去扫历史库即可把这些视频全部找出来;无库检索,我这里可能不知道这个人是谁,我只想知道这个人什么时候进去什么时候出来,像监控场景,这是无库检索,我要找到他第一次出现到最后一次出现的时间点。

腾讯云音视频AI技术落地实践全解析-InfoQ-9

这里涉及到两种搜索算法,即 TOP-K 查询和区域查询。人脸检索就是向量相似度的比较,我要找出这个库里面跟他相似度最高的向量然后映射到对应的人。还有一种就是无库检索场景用到的,包括历史扫描都会用到一个 Range Query,我要找到库内跟目标向量相似度在一定范围内的所有向量,就是需要做一个区域的查询。

还有几点场景优化,因为视频是连续的,假如说现在某某出席某某会议,我如果知道这个名字在视频语音里面出现,那他在下面视频里出现的概率会比较高,我会进行一个 ASR 参考降低附近人脸相似度过滤阈值。OCR 也是类似的,某个会议上有一个人截图前面有印有该目标人物人名文字的台标,也可以类似处理,视频中只看到侧脸导致相似度分值比较低,我可以根据 OCR 人名把人脸相似度过滤值降低进行召回。再例如,一个人出席某个会议,从进入到结束不是一直看到正脸,可能是侧脸,正脸、侧脸,在库里扫描的相似度分值可能是 67、98、78。如果我连续时间参考序列上出现一个分值比较高,两边比较低的场景,我会把两边分值较低的时间点召回。

还有一点是无缝升级处理,人脸检索引擎也会迭代,之前的库提取出来人脸向量可能就用不上了,因为在新的库里面向量维度都变了无法检索,没有参考意义,怎么样让用户无感知做到无缝升级呢?我们把数据层做了多版本化的处理,我升级的时候用新版本库,把之前旧版本库提交的图片去做一次提取,一旦两个库满足一致性之后,即可支持新版本人脸库的检索。我先做一套类似于伴随系统,两库同时跑,提取完之后做一个策略切换热重启即可完成升级。

语音识别也作了前置处理,比较常见的是全流式,我按全流式不断送语音片,对于点播来说速度很慢的。我按固定间隔进行分割,你会把语境切割掉,准确率会受影响;第三个是对于点播视频我先做一个离线的 VAD 处理。什么叫 VAD 呢?你说话的时候会有波峰,不说话的是静音阶段。我们做一个 VAD 处理是把语音活动部分检测出来,送到引擎端识别我们想把静音包全部丢掉。我只想识别那些有用的语音包,减少网络的负载,也可以多句话同时进行识别。如果我的下载速度比较快的话,我的点播文件才能达到配速比的要求。

腾讯云音视频AI技术落地实践全解析-InfoQ-10

截图预处理。我们按照固定间隔截图,面临的问题是把全部的截图丢给后端引擎去识别,后端引擎的压力会很大的。所以我们做一些过滤,我们对比了很多相似图片过滤算法,包括 PSNR、感知哈希算法、SIFT 特征提取、CNN 特征提取等,最后对比之后发现因为这种场景其实不需要做一个非常复杂的计算,做一个简单地统计直方图就可以达到效果,且速度比其他方法要快。

腾讯云音视频AI技术落地实践全解析-InfoQ-11

指定区域处理,视频截图根据分辨率来的,用 OCR 做处理要进行一个文字区域的检测,即我想知道哪些区域有文字。如果在引擎识别之前,只先检测我关心的那部分,最后 OCR 的处理速度肯定会快很多。

刚才的体验页面有一个视频分类的处理逻辑,主要过程包括采样,然后进行特征提取,最后进行 LSTM 分类,这都有比较成熟的方案。标签过程类似,多了一个语音的提取,我们把语音特征点拿出来结合图片特征做 GRU 处理生成视频标签。

腾讯云音视频AI技术落地实践全解析-InfoQ-12

我们有不一样的地方是有一个集锦的处理,我想做进球的集锦。这里面有很多的片断,我要做一个 VAD 处理,就是让剪出来的片段平滑一些,不能某个人说话被剪断了,保证出来的片段是没有语音切割的,这样相对比较平滑。

腾讯云音视频AI技术落地实践全解析-InfoQ-13

还有一点是新闻拆条,大家看新闻联播 30 分钟,对于移动互联网做分发,你一整个新闻联播视频给用户看很少有人愿意去看,但是你把 30 分钟视频中所有的新闻事件都拆出来做分发,这样用户就愿意去点击了。处理逻辑是把关键帧检测出来,然后二分类检测是否有导播台,然后再做一个类似人脸检测,导播台现在有多少人?如果有 0 个的话我就认为是转场,1 个的话就可能是引入新闻。基于两个模型的综合,最后根据人脸检测得到一个时间序列,这样就自然把片断拆出来,30 分钟的新闻当中每个新闻事件做一个拆条,从而进行短视频的分发。

腾讯云音视频AI技术落地实践全解析-InfoQ-14

人物拆条,某个领导人出席某个会议,我只想把我自己出现的那个片段剪出来。片头片尾拆条,我们在视频软件上可以看到,自动跳过片头片尾,一般是 vip 特权,现在大部分是人工处理的,如果能自动识别片头片尾会降低很多的人工成本的。

应用场景

媒资管理,大量的视频不可能人工去看,所以要做识别之后我知道里面有哪些明星,像综艺电视台,知道迪丽热巴在哪个视频出现了就可以把视频搜索出来。

视频搜索推荐,识别之后我知道这个视频属于哪一类,是娱乐类还是搞笑类,进而进行视频推荐。

直播流监控、广播监控,就是涉黄涉爆涉政的检测,处理直播流的时候如果里面有一些敏感的东西我可以把直播直接给断掉。

视频审核,现在在官网接入的客户每天处理的视频量也是百万级别。

跳过头片尾还有实时字幕,有的客户希望把主播的语音直接识别出来生成字幕加入到直播流中等。

腾讯云音视频AI技术落地实践全解析-InfoQ-15

Q:您好,我想问一下刚才您介绍的 PPT 里提到的特征提取,特征提取里有没有包含被提取物的位置特征和运动特征,比如说速度、加速度?

A:类似于一个行为检测,我们现在还没有具体的产品去满足,这个需求我们可以做但是要具体了解的客户需求。你可能觉得这个动作危险,不能去做,它属于行为检测的范畴,但是不同客户需要哪些行为去定制化开发,我们是可以去做这块的支持接入的。

作者介绍:
孙祥学,腾讯云高级工程师,毕业于华中科技大学。负责腾讯视频云视频分析理解相关项目,先后从事 PSTN 云通讯及呼叫中心相关开发,目前主要负责视频智能识别和分析相关产品的研发,在视频检索、视频审核、视频分析等相关应用场景中有一定的实践经验。

本文转载自公众号云加社区(ID:QcloudCommunity)。

原文链接:

https://mp.weixin.qq.com/s/nRYKqgdIS4E-Aexp6uJyvA

文章评论