Spring Cloud分布式微服务实战养成应对复杂业务的综合技术能力春风不度玉门关

#1

download:Spring Cloud分布式微服务实战养成应对复杂业务的综合技术能力春风不度玉门关

声音网络首席科学家贝尔:实时互联网的感知
大家好,很高兴在RTE2022和很多新老朋友分享一些实时交互技术。今天,我将围绕计算、通信和智能的融合,谈谈今年业界更多的新研究进展。
去年我们分享了一个案例:美国电话电报公司把核心网、网络云和云技术团队卖给了微软,同时专注于接入网和用户运营。这背后的主要原因是传统架构已经无法支撑当前的网络运维以及业务支撑系统提出的计算、智能和存储需求。于是他们转而寻求与微软的合作,以满足计算、智能和存储的需求。
简单来说,仅仅作为信息传递的管道,也就是哑管道,是无法承载当前沟通的需求的,因为仅仅传递信息是不够的,整个链路要有提取知识、识别情绪、做出决策的能力,这些也是支撑实时交互不可或缺的要素。体验好的实时交互,其实离不开实时感知和实时理解的能力。今天我们就从实时交互的全链路角度来展开这个分享。

实时环节是:信号从发送方采集,经过预处理后编码,然后数据会传输到互联网。基于智能调度,网络将找到合适的方式来成功地将数据传输到接收器。中间可能还会有一些计算需求,比如内容的转录和识别。在接收端,数据将被解码,然后进行后处理,最后进行渲染和显示。
下面从这三个层面给大家分享一些实时感知计算案例。
在接收端,我们会对体验进行预估,对传输网络的问题进行识别并对链路上的丢包进行预估,在锚端,我们会从表情捕捉方面进行分享。
01体验观众的感知
根据近期客户数据,在目前音网实时交互质量水平下,卡顿率每下降0.1%,用户停留在频道的平均观看时间就会增加0.56%,也就是说体验提升,用户的停留时间就会增加,这对于很多业务来说是非常重要的。
还有一组数据。当我们逐渐将视频从“高速率、低清晰度”升级到“低速率、流畅、高清晰度”时,观众的总观看时间翻了一番。

从以上两组数据可以看出,提升用户体验是实时交互最根本的追求。
但是,感性体验有很多问题需要解决。首先是如何衡量/估计用户体验。从技术角度来说,我们总是希望通过一些新的工具和算法来改善用户体验,但是如何衡量这些新的算法和工具的有效性呢?
其实这是一件很难的事情。往往to C的公司会通过线上的A/B测试来判断新工具和算法的有效性,或者通过线下大量用户的参与来做主观评价。这其实是一个费时费力的方法,线下评分也无法兑现用户线上100%的实时优质体验。因此,没有在线实时质量调查,任何团队都很难从运维的角度描述全网实时通信服务的质量。实时质量洞察其实是一个很重要的能力。
因为网络状况随时变化,当网络拥塞或丢失时,质量通常会下降。如果能及时洞察,就可以通过一系列的策略调整来弥补网络状况恶化带来的质量影响。比如我们可以调整传输线路,也可以调整传输视频的分辨率和帧率,避免堵塞。所以,具备感知用户体验的能力非常重要。
用户体验是一种主观感知,如何估计主观性需要进一步研究。首先,用户的评分是“不确定”的。如果你找一群用户对一些视频进行评分,评分往往分布在一个范围内,我们从中取平均值得到MoS评分,也就是主观评分。不同的用户会有不同的评分,在不同的场景下可能会有不同的体验分。在某些场景下,用户看重的是音视频的流畅性,而在另一些场景下,用户看重的是是否足够清晰。评分不仅和用户、场景有关,还和很多因素有关,包括时空、时域、设备、显示大小等。

如何理解时空相关性?我们举个例子。我们提供完整的视频。在请人给它主观评分后,如果我们在空间截取一段视频,只有一部分视频参与评价,那么它与整个视频的MoS评分的相关度是69%。另一方面,如果保留空间内容,只拍摄一段时间的完整画面的视频,其与原始视频的MoS得分的相关性为77%。如果在空间和时间上做一些截取,重新打分,其与整个视频的MoS得分的相关度为67%。这个实验表明,体验随着视频数据的时空变化而变化。
另一个特点是体验具有滞后效应,质量差带来的体验具有连续性。即使在用户发现体验变差后质量有所提升,这种糟糕的体验还是会在一段时间内影响用户。如果有的话,这个特性用一个公式来表征,如下图所示。

比如用户在这一刻的主观评分,其实是对这一刻体验的评价。瞬间之前发生的最差体验可以用一个公式来表示,这个公式表示的是之前视频质量的最小值。在瞬间的质量之后,我们从高到低排序,并赋予相应的权重,通常赋予质量最差的瞬间最大的权重。我们通过这样一系列的计算来描述经验及其滞后。最后两个部分被再次加权并在时间上被平滑以代表真实的体验。

另外,如上图所示,也和设备有关。同一个人在不同设备上观看同一个视频,主观体验得分是不一样的。当你在小尺寸的设备上获得完美体验的视频,在更大的设备上显示,你获得的体验实际上会降低。只有当分辨率足够大的时候,比如4K和8K视频,这种问题才不容易出现。
基于以上的观察和研究,我们试图通过算法来表现这些性质和特征。例如,我们尝试使用深度神经网络来估计主观得分。这里通常有两种方法。一个是下图左上角描绘的路径。制作端到端神经网络模型,将预先标记的视频和带有MoS分数的标签作为训练数据注入端到端模型进行训练。最后将训练好的模型用于推理,并进行主观评分。
另一个是阶段性的。你可以在下图的左下方看到两个阶段。首先有一个特征提取器,提取一些与体验相关的特征,然后送入一个回归网络,最后得到MoS得分。

我们声学网在这方面做了很多研究,包括数据收集和标注,场景的多样性。最后,神经网络极小,其参数和计算量都很小,因此可以应用于移动终端的运行环境。
如上图右侧所示,与业界另一款名为MobileNet version 2的基准测试相比,声学网络模型的参数数量和计算量明显较低。这保证了模型可以在低功耗的移动终端上流畅运行。那么实际操作的效果和准确度如何呢?经过我们的迭代,如下图所示,声网VQA模型的主观分评明显优于业内部分模型。

链路感知:网络问题识别和丢包率估计
接下来我们来看传播链路上的感知能力。
当数据在链路上传输时,由于网络条件的变化、网络拥塞或信号干扰,会出现丢包现象。如果网络底层出现问题,我们可以识别并计算出丢包率,然后就可以调整策略,寻找更好的传输路径,或者调整视频的分辨率、帧率、比特率。那么如何才能做到呢?
丢包有多种原因,例如:

如果无线信号受到干扰,无论是WIFI还是4G/5G都会受到干扰,尤其是在机场、地铁、火车站这些人多信号复杂的地方。
传输链路上存在拥塞(接入、SFU……)
运营商在不同的时间段采用策略限流,例如监管或流量整形。

这些问题是不可观测的,因此很难实时识别丢包的原因。此外,大多数分组丢失是在突发的情况下,这使得更难以成组地识别和估计分组丢失。
所以,为了解决这个问题,我们做了一些分析和建模。

如上图所示,假设我们有k个网络条件,任何一个网络条件都有一定的发生概率。当进入一个网络状态时,其造成的丢包概率为,丢包率为。实际操作中,我们一般都是丢包重传,数据可能在第二次或者第三次重传的时候收到。当然,重传它也带来了一些副作用,比如更高的延迟等等。所以上图是用来表示当一个包要传输时,有可能进入其中一种网络状态。现在真正能观察到的是接收方是否收到了这个包。Y=1接收,Y=0丢失。当它等于0时,我们必须重新传输它。当它等于1时,数据包的观察结束。

此外,我们可以观察它的一些性质。假设现在是时间T,也就是说这个包能不能收到,只取决于它进入了哪种网络状态或者它的根源。此外,该分组在下一时刻将进入什么状态仅取决于它在最后时刻处于什么状态以及它处于什么网络条件。这是一个典型的隐马尔可夫模型。于是我们设置了一个基于隐马尔可夫模型的估计方法,如下图所示。

首先,第一组参数是状态转移矩阵,即某个网络状态在下一时刻转移到另一个网络状态的概率。这个概率用表示。
另外,一旦进入某个网络状态,我们就开始在接收端进行观察,这个矩阵叫做发射矩阵。它还需要一组参数来估计,包括它的丢包率。实际上,这些参数不是那么容易估计的,它们依赖于大量的数据。实际的原则是使用最自然的估计。另一种实用的方法是Baum-Welch算法。它是期望最大化算法的一种特殊算法。在计算量上相对可控。

有了参数估计,我们就可以开始计算分组丢失率,或接收率。如上式所示,假设传输一个视频帧,包括N个包,允许T次重传。在第一次重传之后,允许T次重传。如果没有接收到,就可以计算出整个视频帧被完全接收到的概率,也就是最后。用上图右边的公式表示。
收到一个包的概率等于第一次收到的概率,加上第一次没收到的概率,然后重传后收到,加上T-1重传没收到的概率,最后T重传收到。我们可以发现,利用隐马尔可夫和贝叶斯估计的性质,可以迭代计算,从概率到计算出的概率。我们可以通过动态规划迭代计算。中间利用了隐马尔可夫模型的一些性质。

关于根本原因推断,我们希望在观察这个序列的时候,能够计算出我们在某个时刻进入了哪个网络状态或者根本原因。公式其实就是计算最大后验概率,也可以迭代计算。
03发送者:对人脸和人体的感知
在传输的视频信号被采集后,我们可以做一系列的预处理。现在,有一个方向吸引了很多人的研究兴趣,那就是表情捕捉和动作捕捉。人脸捕捉和动作捕捉带来的数据可以用于人脸和身体的3D重建,可以帮助人机交互。同时,在很多场景中,如果能清晰地看到表情、动作等细微的东湖,可以增强交互体验的沉浸感。现在流行的元宇宙、数字孪生等场景,都离不开对人脸和身体的感知。

面部运动和表情感知中比较有效的研究方向之一是使用三维可变形人脸模型进行建模。这个思路大致就是把人脸分解成很多和人脸属性相关的正交基,然后线性组合,再加权。通常是从一个标准的人脸模型出发,然后将个性化人脸提取的一些特定的形状或纹理参数与相应的正交基相结合,达到个性化的效果。
通常这些形状和表情的正交基实际上是用语义解释来表示的,比如性别是男是女,是胖是瘦,是什么表情。每个正交基可以具有某些语义特征。质地上也是如此。脸部的这个细节的一些部分,包括他的肤色和五官的一些变化,也是用这些正交基来表征的。因此,如果部分捕获实现极高的精度、准确度和个性化,通常需要大量的正交基,这也意味着大量的计算。
沿着这个思路,当一张个性化的人脸进来后,我们要做的就是通过人脸分析找到与人脸最接近的正交基相关的系数,然后将这些系数与正交基线结合,在标准人脸上做相应的变形,最后得到一个三维重建。

基于此,我们做了一个可以在移动终端上运行的人脸模型。它拥有1220个顶点和52个基本矢量的表达式,并兼容苹果的AR套件。通过这个模型,我们可以在移动端识别和重建个性化的人脸。

我们使用神经网络来提取这些表情参数和形状参数。因为要在移动端实现,所以要追求最小化的神经网络模型。这个网络模型有一个主干,即两个分支的主干网和回归网。这两个分支网络,一个是三维表情和形状参数的直接回归,一个是二维关键点的回归,帮助提高三维参数提取的精度和效果。经过训练,实际上二维关键点的网络不需要参与实时推理,只需要计算三维参数,减少了计算量。
其实人体模型和我们的人脸模型差不多,还是要找一些基本的模板。然后根据形状找到个性化参数,再与基础模板线性结合,对标准人体模型进行修改。最后通过皮肤,添加一些细节,还原出最终的立体形状和动作。

如上图所示的第二个人体模型对其形状进行了一些修改。基本上,需要提取形状参数和形状的那些基,这些也是通过PC主成分分析获得的。另外,还有一些人体姿态的基本模板,也可以通过主成分分析(PCA) PC得到,然后加权作为动作前形态的修正。最后可以添加一些关于节点和骨骼的东西,最后形成一个有动作的模型,就是下图右图所示的人体模型。

业内有一个经典的人体表象模型,叫做SMPL。这个模型生成了一个大约6000个顶点、23个骨骼点和一个基准点的网格。它的人体总参数是72。然后再加上人体形状的10个参数。因为它仍然缺乏一些细节,业界已经开发了一个基于SMPL的扩展模型,称为SMPL扩展,它有超过10,000个网格顶点。此外,在原有的23个骨穴的基础上,SMPL拓大致增加了30个与手有关的关键穴。并且增加了一些可以表示表达式的基。所以可以看出,它可以表现手指的屈伸,也可以还原丰富的表情和质感。
由此可以得出一个结论:模型的基数越多,效果就越逼真,可以表现的动作和表情也越细致,但也会带来大量的计算。

这些方法往往存在一些问题,比如一些动作不符合物理学原理,不能有效处理遮挡,以及由于保真度低可能导致的“恐怖谷效应”。
我们举两个例子。第一个是我刚才提到的物理学原理。有些研究真的把物理学的一些约束引入了建模和优化的全过程。物理约束,除了最小化三维数据与真实数据之间的误差,还会引入速度平滑、加速度平滑,以及对接触点的一些约束。

第一个公式,就像我刚才说的,最小化恢复的3D数据的误差,包括速度和加速度的一些误差。

在高保真方向,业界也有一些有趣的研究。例如,使用神经网络,辐射场的神经渲染,然后使用生成对抗网络,也做一些辐射场的神经渲染,最近使用吸收体速度进行渲染。以上是3D感知的一些方法。
04摘要
实时感知和理解能力在实时交互的许多方面都起着重要作用,包括体验质量、传输质量、三维重建、人机交互等。
事实上,实时感知和交互的能力在很多业务场景中都有很大的需求,比如实时监控和质量检查,比如我们金融银行系统中的金融双录,甚至银行柜台服务人员和远程用户的实时辨别,以及是否存在一些非法操作,还有实时检测色情和暴力,实时转录和翻译,等等。可以看出,实时感知和理解的能力在未来的实时交互场景中会有越来越多的需求,并且随着技术的进步,在这方面带给用户的体验和价值也会越来越高。