使用混合边缘/云推理连同机器学习系统的视频会议的制作方法

文档序号:29080143发布日期:2022-03-01 23:50阅读:77来源:国知局
使用混合边缘/云推理连同机器学习系统的视频会议的制作方法

1.本公开总体上涉及机器学习应用。更具体而言,本公开涉及一种混合推理系统,该系统采用分散在两个系统上的机器学习模型。


背景技术:

2.随着机器学习和人工智能技术已经得到了改进,它们在很多技术领域内的使用已经取得了很大成功。机器学习和人工智能技术的一些应用包括包含多个要完成的步骤的过程。多个步骤可以对应于不同机器学习模型的使用或者对应于对输入至机器学习模型或者从机器学习模型输出的数据执行不同操作。此外,机器学习和人工智能技术的一些应用出现在既包括多个本地计算设备(例如,边缘设备)又包括收集信息并且向一个或多个本地计算设备分配信息的中央远程服务器的系统。因此,任何机器学习技术、应用程序、过程或算法通常都完全要么在本地计算设备上执行,要么在远程服务器上执行。
3.在本地计算设备上执行处理步骤具有以下优点:可以访问更高质量的数据,具有较低延迟并且易于进行多模态相关。通过在本地设备上执行多步骤过程(例如,使用推理引擎),系统可以避免可能引入延迟并且可能导致至少一些细节的丢失的数据压缩和网络传输。此外,本地计算设备可以能够通过更容易并且准确地同步来自该本地计算设备处的多个传感器的数据而执行额外的高级推理技术。
4.在本地计算设备处执行基于机器学习的过程的步骤(例如,经由使用推理引擎)还具有某些不利方面。例如,系统中的每一本地计算设备可能需要足够的计算能力(例如,处理器能力和存储器空间)来支持密集的计算。为本地计算设备配备这一计算能力提高每一本地计算设备的成本。
5.反之,在中央服务器系统处执行基于机器学习的过程的步骤可能存在不利方面。例如,由于带宽和延迟问题,不可能始终向远程服务器发送高质量的原始多模态数据。照此,发送高质量的原始多模态数据所增加的成本可能令人望而却步。然而,如果对数据进行压缩,从而允许更低成本并且不太耗时的传输,则可能丢失某些细节。
6.可以得益于机器学习技术的一种示例应用是视频会议应用。视频会议原本已经是带宽密集型应用,该应用向远程服务器和多个客户端发送高清晰度音频和视频。因而,伴随高质量原始多模态数据的传输产生的潜在问题对该过程甚至更可能产生破坏性。
7.此外,在很多现有的视频会议系统中使用可变比特率有损压缩对高清晰度原始数据进行压缩,而后再将其传输给视频会议中的远程参与者,或者传输给专用远程服务器,以供进一步处理。因此,由远程服务器接收的传感器数据的质量是客户端网络条件的函数,并且因而难以建模和预测。可变网络条件将在传输请求时进一步引入可变的延迟量,并且可能极大地影响所产生的推断的质量。


技术实现要素:

8.本公开的实施例的各个方面和优点将部分地在下文的描述当中得到阐述,或者可
以从所述描述中得知,或者可以通过实践这些实施例而得知。
9.本公开的一个示例方面涉及一种用于提供混合推理系统的计算机实施方法,混合推理系统用于包括智能视频会议在内的各种用途。该方法包括由一个或多个计算设备经由一个或多个传感器获得包括一个或多个用户的环境的传感器数据。该方法包括由一个或多个计算设备使用包括一个或多个机器学习模型的机器学习系统选择与一个或多个用户相关联的传感器数据的至少一部分。该方法包括由一个或多个计算设备使用机器学习系统生成传感器数据的选定部分的中间表示,该中间表示代表一个或多个用户的面部,其中,生成传感器数据的选定部分的中间表示是一个多步骤识别过程中的至少一个步骤。该方法包括由一个或多个计算设备将中间表示和对基于中间表示的用户识别的请求传输至远程计算系统,远程计算系统被配置为使用中间表示和机器学习系统执行该多步骤识别过程的额外步骤。该方法包括从远程计算系统接收一个或多个用户的用户标识符。
10.本公开的其他方面涉及各种系统、装置、非暂态计算机可读介质、用户接口和电子设备。
11.参考下文的描述和所附权利要求,本公开的各种实施例的这些和其他特征、方面和优点将得到更好的理解。包含到本说明书中并且构成了其部分的附图对本公开的示例实施例进行举例说明,所述附图与文字描述一起起着解释相关原理的作用。
附图说明
12.将在说明书中阐述面向本领域技术人员的对实施例的详细讨论,所述讨论将参考附图,其中:
13.图1a示出了根据本公开的示例实施例的示例客户端-服务器系统。
14.图1b示出了根据本公开的示例实施例的示例客户端-服务器系统。
15.图2示出了根据本公开的示例实施例的示例本地计算设备。
16.图3示出了根据本公开的示例实施例的示例多步骤过程模型。
17.图4a和图4b示出了根据本公开的示例实施例的示例分叉型多步骤处理系统。
18.图5示出了根据本公开的示例实施例的用于执行混合本地设备和远程服务器推理系统的示例方法的流程图。
具体实施方式
19.现在将详细参考本公开的实施例,在附图中示出了它们的一个或多个示例。提供每一示例是为了解释本公开,而非对本公开构成限制。实际上,对本领域技术人员而言将显而易见的是,可以对本公开做出各种修改和变化而不脱离本公开的范围或实质。例如,可以将作为一个实施例的部分例示或描述的特征与另一实施例结合使用,从而得到又一实施例。因此,意在使本公开涵盖此类落在所附权利要求及其等价方案的范围内的修改和变化。
20.本公开总体涉及用于执行机器学习推理,诸如执行多步骤识别过程的混合本地/云基础设施,其中,一些步骤在本地计算设备上完成,其他步骤在远程服务器上完成。在一个示例中,云计算设备可以使一个或多个用户能够访问视频会议服务。本地计算设备(或相关联的外围设备)可以包括一个或多个传感器,传感器包括但不限于用于捕获高质量图像数据的相机、用于捕获音频数据的一个或多个麦克风和/或其他被配置为生成传感器数据
的传感器,传感器数据被传输至远程服务器并且与视频会议中的其他远程参与者共享。可以使用一种或多种识别技术,诸如,通过使用语音识别、面部识别和/或其他过程来识别视频会议中的一个或多个参与者。识别过程可以是一个多步骤过程,其包括多个步骤,以生成一个或多个用户标识符,诸如,面部识别或其他用户标识符。在一些示例中,一个或多个面部识别标识符可以包括一个或多个面部识别推断。
21.根据本公开的一个方面,可以按照混合方式执行多步骤面部识别或者其他用户识别过程,在这种方式中,一些步骤是在本地计算设备上完成的,并且其他步骤是在远程服务器上完成的。在一个具体示例中,本地计算设备使用其相机能够捕获一个或多个用户的高质量原始图像数据。之后,本地计算设备可以执行多步骤面部识别过程的一个或多个步骤并且产生原始图像的中间数据表示。在一些情况下,中间数据表示可以被称为“嵌入”。
22.这一中间数据表示可以被传输至服务器系统,在该处完成该多步骤面部识别过程的其他步骤(例如,可以将从本地计算设备获得的嵌入与由嵌入的图库进行比较,以识别出视频会议参与者)。在完成了该多步骤面部识别步骤时,可以将远程服务器系统生成的一个或多个推断实时地(例如,在视频会议仍在进行当中时)传输回一个或多个本地计算设备。在推断识别出超过某一置信度阈值的特定面部时,可以将该识别显示到与该视频会议相关联的界面内,和/或可以采取其他动作(例如,基于参与者身份的设置的个性化)。通过这种方式,能够在无需高成本的本地计算设备的情况下快速、可靠地识别出视频会议的参与者。
23.更具体而言,使用传感器数据识别一个或多个用户的过程可以是一个多步骤过程。为了充分处理传感器数据并且识别出特定用户,可能需要相当多的计算资源。然而,鉴于隐私保护或者其他考虑事项,可能不希望该识别过程的所有步骤都在捕获传感器数据的本地计算设备上执行。为了有效地执行该多步骤识别过程,该多步骤过程中的每一步骤可以是相对于彼此单独执行的。步骤中的一些可以是由捕获传感器数据的本地计算设备(例如,边缘设备)执行的,以生成中间数据表示。之后,这一中间数据表示可以被传输至远程服务器系统,在该系统中,执行所述多步骤识别过程中的其余步骤。一旦该多步骤识别过程结束(例如,该过程创建了将特定用户身份与特定图像或其他传感器数据中的用户相关联的推断),那么远程服务器系统就可以将识别信息发送回本地计算设备。
24.具体而言,本公开涉及使具有与中央远程服务器系统连接的本地计算设备(例如,边缘设备)的系统能够有效率地快速提供处理服务。在这一示例中,数据处理服务是需要多个步骤从而由所捕获的传感器数据识别出一个或多个用户的识别过程。在一些示例中,该识别过程可以是面部识别过程。在其他示例中,该识别可以依赖于音频数据以及将音频数据与一个或多个用户匹配的语音签名。
25.在一些示例中,该系统能够实现视频会议系统,其中,用户(又称为参与者)从多个本地计算设备访问该系统。本地计算设备可以被配置为捕获视频会议中的参与者的高质量图像,并且在至少一些情况下将视频和音频数据传输至远程服务器系统,以与作为视频会议的部分与其他本地计算设备共享。如上文所指出的,用作视频会议的部分的视频本身(或者其他的所捕获可视数据)可能在传输之前受到了压缩,因此对于执行面部识别过程或者其他识别过程可能不如本地捕获数据有用。
26.一种选择是在本地计算设备(例如,边缘设备)处执行整个识别过程。然而,这样做可能需要很多处理资源、很大的功率以及足够的存储容量来保存用于所有可能匹配的识别
数据。由于很多种原因,这种做法是不合乎预期的。例如,为每一个本地计算设备提供执行整个面部识别过程所需的处理资源的成本可能是难以承受的。此外,本地计算设备可能没有足够的电池电力或者处理能力在给定时间范围内(例如,在视频会议结束之前)执行多步骤面部识别过程。存储器限制和策略考量也可能妨碍在每一本地计算设备处存储多个用户的面部识别数据。
27.在另一个示例实施例中,在边缘设备处捕获的图像数据可以被传输至远程服务器系统,以供处理。然而,并不是总是有可能向远程服务器系统发送高质量原始图像数据。例如,视频会议是带宽密集型应用,并且在不压缩的情况下传输所捕获的可视数据可能导致数据发送和/或接收的延迟(例如,高时延)。此外,如果数据受到压缩,那么可能丢失至少一些细节,并且所产生的推断可能遭受因此产生的质量劣化。
28.因此,本公开包括用于混合识别过程的系统和方法,在该过程中,执行多步骤识别过程的推理引擎在本地计算设备和中央远程服务器系统之间分叉。例如,本地计算设备可以捕获高清晰度图像和/或视频数据,并且执行该多步骤面部识别过程的至少一些步骤。本地计算设备可以捕获包括一个或多个正在参与视频会议的用户的环境的图像。之后,本地计算设备可以使用机器学习模型识别出这一更大图像的包括一个或多个用户的面部的区段。一旦已经从这一更大图像提取了所识别区段,本地计算设备就可以执行额外步骤来准备该用户面部的不变的中间表示。
29.在另一个示例中,该识别过程可以使用lidar传感器检测环境内的用户。可以使用机器学习训练模型从一般lidar数据中提取出lidar数据的与用户相关联的特定区段。所提取出的区段可以受到处理,以生成数据的中间表示。可以使用类似的过程提取出音频数据的相关部分。
30.回到面部识别过程示例,面部的不变表示可以被设计成是一致的,而不管图像的角度或者场景的光照如何。在一些示例实施例中,这一操作是采用机器学习模型完成的,其以图像数据作为输入并且输出该图像的更低维的表示(例如,数字的序列)。例如,这样的表示可以采取面部的图像作为输入并且使用通过机器学习训练的模型来生成128个数字的列表。上文提到的128个数字的列表是可以被称为嵌入的中间数据表示。这一128个数字的列表可以被生成以使其大体上是基于原始图像的条件和角度不变的。因而,不管给定用户的图像的环境如何(例如,照明、角度、分辨率、旋转等),该图像都可以产生相同的128个数字的列表或者至少非常相似的128个数字的列表。因而,当通过模型处理用户面部的图像时可以基于一致地产生的特定的128个数字的列表来识别用户。
31.在一些示例实施例中,该中间数据表示可以被传输至远程服务器系统。在一些示例中,在多步骤过程中的各个步骤当中可能有各种各样的潜在中间数据表示。存储中间数据表示所用的存储器可以比存储来自本地计算设备的原始捕获图像数据的存储器小得多。因而,传输和存储中间数据表示的成本可以显著低于存储和传输原始的所捕获高质量数据的成本。
32.远程服务器系统可以接收该中间数据表示,并且继续执行该多步骤识别过程(例如,面部识别过程)中的步骤。之后,远程服务器系统可以将所接收到的中间数据表示与参考中间数据表示(其与特定用户相关联)的数据库进行比较。在一些示例实施例中,所接收到的中间数据表示与中间数据表示的数据库中的每一相应参考中间数据表示之间的比较
可以产生一个匹配评分,该评分表示所接收到的中间数据表示与相应的参考中间数据表示的匹配程度。
33.参考中间数据表示可以被存储成键值数据库(例如,其中数据被存储成[用户id,中间数据表示]对)。这一数据库通常可以被称为图库,并且在图库中生成新数据对或者扩充现有数据对的过程可以被称为注册。
[0034]
在一些示例实施例中,服务器系统基于具有最高匹配评分的参考中间数据表示生成将相应中间数据表示与特定用户身份联系起来的推断。例如,每一参考中间数据表示可以与特定用户相关联。之后,在特定参考中间数据表示被选定为给定中间数据表示的最佳匹配时,服务器系统已经生成了给定中间数据表示与特定用户相关联的推断。
[0035]
在一些示例实施例中,服务器系统具有预定的阈值匹配评分。如果没有参考中间数据表示具有超过该预定的阈值匹配评分的匹配评分,那么该服务器系统可以确定所接收到的中间数据表示不与任何参考中间数据表示匹配。在这种情况下,服务器系统可以返回指示未发现匹配的信息。
[0036]
在一些示例实施例中,服务器系统可以选择所有参考中间数据表示的子集,以将其与所接收到的(多个)中间数据表示进行比较。在一些示例实施例中,服务器系统可以确定与本地计算设备中的一者或多者相关联的位置。使用这一位置信息,服务器系统可以基于已知用户的位置信息选择参考中间数据表示的子集。在其他示例实施例中,这些本地计算设备可以与特定的组织、行业、机构或者其他群体相关联。在这种情况下,服务器系统可以选择参考中间数据表示的与特定组织、行业、机构或者其他群体相关联的子集。通过这种方式,服务器系统可以限制与所接收到的中间数据表示进行比较的所参考中间数据表示的数量。在一些示例实施例中,服务器系统通过将所接收到的中间数据表示与参考中间数据表示的子集进行比较而非与所有可能的参考中间数据表示进行比较而节省了时间和功率。
[0037]
在一些示例实施例中,服务器系统最初将所接收到的中间数据表示与参考中间数据表示的选定子集进行比较。如果没有参考中间数据表示具有超过阈值评分的匹配评分,那么服务器系统可以将所接收到的中间数据表示与额外的参考中间数据表示进行比较。
[0038]
在一些示例实施例中,当本地计算设备从服务器系统接收到将视频会议中的特定用户与用户身份匹配到一起的用户标识符时,该本地计算设备可以将该用户的身份显示给:视频会议的所有用户、用户的子集、视频会议的一个或多个管理员或者这些群体的某种组合。
[0039]
尽管上文的讨论在描述各种方法和系统时主要采用了面部识别作为示例,但是上述混合机器学习过程可以有各种各样的用途。例如,麦克风可以捕获来自多个用户的音频数据。之后,该系统可以将音频数据转换为中间表示。一旦音频数据被转换为中间表示,就可以被传输至远程服务器系统。远程服务器系统可以使用该数据生成用户身份推断或标识符(例如,通过使音频的中间表示与现有的参考中间表示进行匹配)。
[0040]
在另一个示例中,中间表示可以用于在不将那些讲话者与特定身份相关联的情况下在不同的讲话之间进行区分。例如,推理引擎可以确定音频数据的给定部分当中的不同讲话者的总数,并且将具体的词或短语与每一讲话者相关联,从而能够将该音频格式化以将特定音频数据与特定讲话者相关联。
[0041]
在又一示例中,推理引擎可以对与特定讲话者相关联的角色进行分类(例如,确定
讲话者是演讲者,正在参与友好对话还是正在参加辩论)。一旦使角色与每一讲话者相关联,推理引擎就可以生成整个音频数据部分的会议类型。例如,会议类型包括但不限于演讲、友好聊天、辩论、头脑风暴会议、讨论等。
[0042]
在其他示例中,该混合推理引擎可以用于不涉及识别特定用户的实施方式。例如,该混合推理系统可以用于生成一个或多个对象的准确的三维(3d)模型。例如,本地计算设备可以采用相机和/或lidar设备生成表示特定对象的数据。所生成的数据可以被处理以生成该对象的中间表示。该中间表示可以被传送至远程服务器系统,并且可以执行其他步骤,以生成改进的对象模型。例如,推理引擎可以使用可视的和lidar数据生成用户面部的改进模型,其之后可以被传输给其他用户,并且提高所显示模型的质量。
[0043]
除了上文的描述之外,可以为用户提供控制,该控制允许用户针对下述两方面做出选择:本文描述的系统、程序或特征是否以及何时可以使能对用户信息(例如,允许进行面部识别过程以基于所捕获的用户的图像数据或者用户的当前位置识别用户的身份的信息)的收集;以及是否向该用户发送来自服务器的内容或通信。此外,某些数据可以在被存储或使用前以一种或多种方式进行处理,以使得在其中获得位置信息(诸如,对于城市、邮政编码或者国家层次)的用户地理位置可以被一般化,从而不能确定用户的具体位置。因而,用户可以具有对收集关于该用户的什么信息,该信息如何被使用以及向该用户提供什么信息的控制。
[0044]
本文描述的系统和方法提供了很多技术效果和益处。具体而言,本公开允许面部识别系统从原始高质量图像数据开始生成推断,与此同时减少提供本地计算设备所需的成本以及向远程服务器系统传输和存储数据所需的成本。通过在本地计算设备处执行该过程的一些步骤,之后将中间数据表示传输至在其中执行该过程的其他步骤的服务器系统,该系统能够降低本地计算设备的成本,降低数据存储和传输的成本,并且在不向系统内引入显著延迟的情况下降低处理器使用率。
[0045]
将参考附图更详细地讨论本公开的示例实施例。
[0046]
示例设备和系统
[0047]
图1示出了根据本公开的示例实施例的示例客户端-服务器环境100。客户端-服务器环境100包括由网络180连接并且通过网络180通信的本地计算设备102和服务器计算系统130。尽管示出了单个本地计算设备102,但是任何数量的本地计算设备102可以被包括到客户端-服务器环境100中,并且通过网络180连接至服务器计算系统130。
[0048]
在一些示例实施例中,本地计算设备102可以是任何适当设备,包括但不限于智能电话、平板、膝上型计算机、桌上型计算机或者任何其他被配置以使得可以允许用户参与视频会议的计算机设备。本地计算设备102可以包括一个或多个处理器112、存储器114、多步骤过程模型120-1、混合化引擎122、视频会议应用程序124和相机126。
[0049]
一个或多个处理器112可以是任何适当的处理设备,诸如微处理器、微控制器、集成电路或者其他适当处理设备。存储器114可以包括任何适当计算系统或介质,包括但不限于非暂态计算机可读介质、ram、rom、硬盘驱动器、闪存驱动器或者其他存储器设备。存储器114可以存储可被一个或多个处理器112访问的信息,包括可以由一个或多个处理器112执行的指令。指令可以是任何指令集,其在被一个或多个处理器112执行时使一个或多个处理器112提供预期功能。
[0050]
具体而言,在一些设备中,存储器114可以存储用于实施一个或多个多步骤过程模型120-1、混合化引擎122和视频会议应用程序124的指令。本地计算设备102可以实施一个或多个多步骤过程模型120-1、混合化引擎122和视频会议应用程序124,以执行本公开的各个方面,包括指引与服务器计算设备130的通信,为用户提供视频会议应用,以及执行多步骤面部识别过程从而以非常小的延迟接收面部推理或其他标识符。
[0051]
应当认识到,词语“系统”或“引擎”可以指专门硬件、在更一般的处理器上运行的计算机逻辑或其某种组合。因而,系统或引擎可以是通过硬件、专用电路、固件和/或控制通用处理器的软件实施的。在一个实施例中,这些系统可以被实施成存储到存储设备上的程序代码文件,可以被加载到存储器内并且由处理器执行,或者可以是由计算机程序产品(例如,存储在诸如ram、硬盘或者光学或磁介质的有形计算机可读存储介质内的计算机可执行指令)提供的。
[0052]
存储器114还可以包括能够被一个或多个处理器112检索、操纵、创建或存储的数据116,诸如,视频会议数据(例如,在本地计算设备102处捕获的或者从服务器计算系统130接收的)。在一些示例实施例中,此类数据可以在视频会议期间被访问并且被显示给本地计算设备102的一个或多个用户或者可以被传输给服务器计算系统130。
[0053]
在一些示例实施例中,本地计算设备102包括一个或多个多步骤过程模型120-1。多步骤过程模型120-1可以利用一个或多个机器学习模型执行多步骤过程。例如,多步骤过程模型120-1可以生成在多步骤识别过程(诸如,面部识别过程)中使用的嵌入。更具体而言,一个或多个机器学习模型可以通过处理传感器数据的低级特征(例如,对于图像数据而言的像素数据)而生成嵌入,嵌入用于生成与参考嵌入的匹配(例如,以实施面部识别或者其他识别方法)。一个或多个机器学习模型可以包括神经网络、非线性模型和/或线性模型中的一者或多者。在一种示例实施方式中,一个或多个机器学习模型可以包括神经网络模型,该模型包括输出层以及一个或多个隐藏层,隐藏层每者对所接收到的输入施加非线性变换以生成输出。可以使用已知的用于在反向传播技术的基础上训练神经网络模型以生成嵌入或者另一中间表示的方法对神经网络模型进行训练以生成在识别过程中使用的嵌入。多步骤过程模型120可以与服务器计算系统130处的多步骤过程模型120-2配合工作,以至少部分地基于本地计算设备102收集的数据生成推断。例如,在视频会议期间,本地计算设备102可以捕获房间内的一个或多个参与者的视频数据。收集这一数据可以是该多步骤过程中的第一步骤。在一些示例实施例中,该多步骤过程是面部识别过程。
[0054]
在一些示例实施例中,多步骤过程模型使用在本地计算设备102处收集的高质量传感器数据,并且执行该多步骤过程的至少一个步骤。例如,相机126捕获包括一个用户或一群用户的图像的原始图像数据。在另一个示例中,传感器可以包括捕获音频数据的麦克风和/或生成lidar数据的lidar系统。
[0055]
在一个示例中,该识别过程是多步骤面部识别过程。多步骤面部识别过程中的第一步骤可以包括分析原始捕获图像,以识别并且提取该图像的包含至少一个用户(或参与者)的面部的图像的一个或多个部分。在一些示例实施例中,一个模型已经受到过特殊训练以执行这一步骤。因而,在给定图像作为输入的情况下,该模型返回该图像的一个或多个部分,每一部分还具有相关联的置信度评分,置信度评分表示该区段包含面部的可能性。此外,该模型还可以生成关于该图像的一个或多个部分的元数据,元数据包括但不限于所识
别出的面部的总数或者生成的图像部分的数量。
[0056]
在一些示例实施例中,由(多个)多步骤过程模型120-1执行的多步骤面部识别过程包括作为该过程的部分的下述操作:访问混合化引擎122以确定在该本地计算设备102处应当执行哪些进一步的步骤(如果有的话)。混合化引擎122可以基于一个或多个标准确定在将结果数据传输给服务器计算系统130之前要在本地计算设备102处完成该多步骤过程中的哪些步骤。
[0057]
一个或多个标准可以包括但不限于下述选项中的一者或多者:本地计算设备102处的预期电池寿命、可用于向服务器计算系统130发送数据以及由其接收数据的带宽、本地计算设备102处可用的计算能力(例如,其可以包括利用(多个)处理器112完成每一步骤的估计时间)以及与本地计算设备102的用户或者参与视频会议会话的其他用户相关联的任何偏好。
[0058]
根据混合化引擎122做出的要在本地计算设备102处执行多步骤面部识别过程中的其他步骤的确定,(多个)多步骤过程模型120-1可以访问模型(例如,与第一步骤相同的模型或者第二模型),以执行该多步骤面部识别过程中的第二步骤。在一些示例实施例中,该第二步骤包括使用模型从一个或多个图像部分(例如,在该过程的第一步骤中通过模型确定的原始图像的包括用户面部的部分)提取特征信息。
[0059]
应当指出,尽管第二步骤被描述为利用单个模型从图像(例如,原始图像的包括用户的面部的部分)提取特征的单个过程,但是这一提取过程可以被实施为一系列步骤,这些步骤的每者包括使用来自先前模型的输入并且产生中间数据表示。
[0060]
就该多步骤过程中的每一步骤而言,混合化引擎122都判断是否继续进行其他步骤或者是否将中间数据表示传输给服务器计算系统130。根据混合化引擎122做出的要在本地计算设备102处执行至少一个额外步骤的判断,(多个)多步骤过程模型执行额外步骤。在这种情况下,第三步骤包括使用所提取的特征生成不变的中间数据表示。不变数据表示可以是图像中的面部的数据表示,即使图像中的其他变量发生了变化,该数据表示也还是非常一致的。例如,即使照片的角度或照明发生了变化,用户面部的不变表示仍然可以保持非常相似。
[0061]
在一些示例实施例中,用户面部的不变数据表示可以被称为嵌入,并且包括表示特定用户的面部的128个数字的列表。在一些示例实施例中,针对特定用户的面部生成的128个数字的列表将是非常相似的,而无需考虑面部在源图像中的角度或者源图像的照明。
[0062]
在一些示例实施例中,一旦生成了不变的中间数据表示,本地计算设备102就可以将该中间数据表示(例如,二维嵌入)传输至服务器计算系统130。尽管在该多步骤过程中还有其他步骤,但是使用不变的中间数据表示发生的匹配步骤是在服务器计算系统130处执行的,而不管任何其他标准如何。这样做的原因在于匹配步骤涉及将所生成的不变数据表示与多个参考不变数据表示进行比较。存在不存储参考不变中间数据表示的实践和策略原因。
[0063]
例如,出于隐私考虑,参考不变数据表示可以被存储到服务器计算系统130处,并且不被传输至本地计算系统102。通过这种方式,服务器计算系统130可以对参考中间数据表示施加更为严格的隐私和安全控制。例如,参考不变数据表示可以包括允许第三方对已经被注册到图库中的用户进行面部识别的数据。如果该数据被发送给本地计算设备,那么
其被非预期的一方访问的机会将增大。因而,为了尽可能地确保该数据保持私密并且安全,参考不变数据表示总是被存储到服务器计算系统130处。因而,该多步骤过程中的最终步骤(例如,将当前不变数据表示与一个或多个参考不变数据表示进行比较,以发现匹配)可以在服务器计算系统130处执行。
[0064]
如上文所指出的,混合化引擎122基于一个或多个标准确定该多步骤过程中的哪些步骤在本地计算系统102处执行。一般而言,在条件指示低电池电力、低计算资源和高带宽中的一者或多者时,混合化引擎122可以确定更多的步骤将在服务器计算系统130处执行。相反,在条件指示存在低可用带宽和/或高预期延迟时,混合化引擎122可以确定更多的步骤将在本地计算设备102处执行。
[0065]
在一些示例实施例中,混合化引擎122将该多步骤过程中的特定步骤(例如,该多步骤过程中的步骤3),该步骤可以被本地计算系统102使用作为将在整个视频会议期间执行的最后步骤。在其他示例实施例中,混合化引擎122能够在每一步骤结束时或者按照预定的时间表重新评估一个或多个标准,并且有可能基于变化的条件更改选定步骤。
[0066]
本地计算设备102可以执行视频会议应用程序124。该视频会议应用程序可以捕获来自相机126的图像数据,并将该数据传输至服务器计算系统。该本地计算设备102可以从服务器计算系统130接收来自视频会议的一个或多个其他参与者(例如,其他本地计算设备102)的图像数据。之后,该本地计算设备102可以将所接收到的图像数据显示给该本地计算设备102的用户。在一些示例实施例中,相机126收集来自一个或多个用户的图像数据。相机可以是任何能够捕获可视数据的设备。
[0067]
根据一些示例实施例,服务器计算系统130可以包括一个或多个处理器132、存储器134、一个或多个多步骤过程模型120-2以及视频会议系统140。存储器134可以存储可被一个或多个处理器132访问的信息,包括可以由(多个)处理器执行的指令138和数据136。
[0068]
服务器计算系统130使用图中未示出的网络通信设备与一个或多个本地计算设备102通信。一个或多个多步骤过程模型120-2是经过机器学习训练的模型。这些模型与本地计算设备102处的一个或多个多步骤过程模型120-1保持一致。因此,在给定相同的输入的情况下,由本地计算设备102或服务器计算系统130处的一个或多个多步骤过程模型(120-1或120-2)中的任何一个生成的输出将是一致的。
[0069]
在一些示例实施例中,一个或多个多步骤过程模型120-2接收来自本地计算设备102的数据,该数据可以是用户面部的中间表示。此外,一个或多个多步骤过程模型120-2还可以接收步骤指示,该步骤指示指出要对中间数据表示执行的下一步骤。如上文所指出的,所接收到的中间表示可以处于该多步骤过程中的任何步骤当中,并且该步骤指示允许一个或多个多步骤过程模型120-2继续进行处于任何阶段的该多步骤过程。
[0070]
在一些实施例中,所接收到的中间数据表示是包括128个数字的不变的中间数据表示(例如,又称为嵌入)。如果该中间数据表示尚未抵达这一阶段,那么一个或多个多步骤过程模型120-2可以继续执行上文描述的步骤,直到不变的中间数据表示已经被达到。
[0071]
一旦已经生成了不变数据表示,一个或多个多步骤过程模型120-2中的一个模型就可以将不变的中间数据表示与多个参考不变数据表示进行比较,参考不变数据表示中的每者与视频会议系统140的特定预先注册用户相关联。通过这种方式,一个或多个多步骤过程模型120-2能够生成将当前不变数据表示与特定用户的身份关联起来的推断。之后,这一
推断可以被传输至本地计算系统102(或者其他本地计算系统),以供显示。
[0072]
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,internet)或其某种组合。一般而言,本地计算设备102与服务器计算系统130之间的通信可以经由网络接口执行,该网络接口使用任何类型的有线和/或无线连接、使用各种通信协议(例如,tcp/ip、http)、编码或格式(例如,html、xml)和/或保护方案(例如,vpn、安全http、ssl)。
[0073]
图1b示出了根据本公开的示例实施例的示例客户端-服务器环境190。客户端-服务器环境190包括通过网络180连接并且经由网络180通信的本地计算设备102和服务器计算系统130。尽管示出了单个本地计算设备102,但是任何数量的本地计算设备102可以被包含到客户端-服务器环境190中,并且通过网络180连接至服务器计算系统130。
[0074]
在一些示例实施例中,本地计算设备102可以是任何适当设备,包括但不限于智能电话、平板、膝上型计算机、桌上型计算机或者任何其他被配置为能够执行视频会议应用程序的设备。本地计算设备102可以包括显示控制器141、一个或多个传感器142、面部识别系统144、图像数据库154以及中间表示数据库156。
[0075]
显示控制器141能够接收来自本地计算设备102的数据并且引起与该本地计算设备102相关联的显示,以显示预期图像或者图像集合(例如,视频)。在一些示例中,本地计算设备102可以执行视频会议应用程序。因而,本地计算设备102接收来自服务器计算系统130的视频内容,并且显示控制器141引起显示,以显示所接收到的视频内容,并且允许本地计算设备102的用户查看视频会议的远离本地计算设备102的其他参与者的所捕获的视频或原始图像。
[0076]
本地计算设备102包括能够捕获音频数据和/或可视数据的一个或多个传感器142,其包括但不限于相机和麦克风。在这一示例中,相机能够捕获原始高质量图像数据并且将其存储到图像数据库154中。
[0077]
面部识别系统144可以包括面部定位器146、中间表示生成器148、数据发送器150和推断接收器152。在一些实施例中,面部定位器146可以访问存储在图像数据库154中的原始图像数据。在一些示例实施例中,面部定位器146包括或者访问经过机器学习训练的模型,并且执行上文讨论的多步骤面部识别过程中的步骤。在一些实施例中,面部定位器146访问作为输入的一幅或多幅图像并且输出图像的包括用户面部的部分。
[0078]
在一些示例实施例中,中间表示生成器148接收由面部定位器146输出的包含用户面部的图像部分作为输入。如上文联系图1a讨论的一个或多个经过机器学习训练的模型可以被采用作中间表示生成器148的部分,以作为用于执行面部识别的多步骤过程的部分。使用一个或多个模型,中间表示生成器148可以执行多步骤过程中的一个或多个步骤,并且最终输出中间数据表示。所输出的中间数据表示可以包括作为一系列数字的用户面部的二维表示,该一系列数字表示包括在输入的原始图像的部分当中的面部的特征。例如,输出可以是包括128个数字的嵌入。
[0079]
在一些示例实施例中,所生成的中间数据表示被存储到中间表示数据库156中。数据发送器150可以访问存储在中间表示数据库156中的中间数据表示,并且将特定用户的面部的中间数据表示发送至服务器计算系统130。
[0080]
在一些示例实施例中,服务器计算系统130包括面部识别系统160,其与本地计算
设备102处的面部识别系统144配合工作,以生成将身份与接收自本地计算设备102的中间数据表示相关联的推断。面部识别系统160可以包括子集选择系统162、表示匹配系统164、推断生成器166和推断发送器168。
[0081]
子集选择系统162可以与视频会议系统(例如,图1a中的视频会议系统140)结合工作,以针对给定视频会议选择参考中间数据表示的子集。例如,子集选择系统162可以基于用户注册信息、视频会议位置信息、过去视频会议信息等确定与当前视频会议相关联的一个或多个组织。一旦一个或多个组织与该视频会议相关联,那么子集选择系统162就可以选择与一个或多个组织相关联的参考中间数据表示的子集。这样的组织可以包括公司、教育组织、非盈利组织、政府组织等。
[0082]
类似地,可以基于包括视频会议的参与者的位置、视频会议的时间、所陈述的主题或者与会议相关联的议题等在内的很多因素选择该子集。一旦已经针对给定视频会议识别出了该子集,就可以将相关联的参考中间数据表示从总图库170移到图库子集172。应当指出将一个或多个参考中间数据表示指定为给定图库子集172的部分可以引起数据从存储器内的一个位置向另一个位置的实际移动。反之,子集选择系统160可以将选定的参考中间数据表示指定为该子集的部分,而不使数据条目从图库数据库170的一个区域移动到另一个区域。
[0083]
表示匹配系统164可以接收来自本地计算设备102的中间数据表示。所接收到的中间数据表示还可以包括对识别用户的请求。所接收到的中间数据表示可以是用作用户面部的不变表示的一系列数字。如上文所指出的,如果中间表示是在不考虑源图像的角度或者源图像的照明的情况下针对给定用户准确地生成的,则表示是不变的。
[0084]
一旦接收到中间数据表示,表示匹配系统164就可以将其与图库数据库170(或者可能情况下的图库子集172)中存储的多个参考中间数据表示进行匹配。表示匹配系统164可以使用机器学习模型或其他算法针对每一参考中间数据表示生成相似性评分。
[0085]
在一些示例实施例中,由表示匹配系统164生成的相似性评分之后将被推断生成器166用作输入。推断生成器判断任何参考中间数据表示是否具有超过预定阈值评分的相似性评分。之后将超过预定阈值评分的最高相似性评分确定为与匹配身份相关联。
[0086]
在一些示例实施例中,推断发送器168将所确定的身份作为身份推断发送给本地计算系统。本地计算设备102处的推断接收器152可以接收该身份推断以在视频会议仍在进行当中时将其显示给用户。如上文所指出的,网络180可以是任何类型的通信网络。
[0087]
图2示出了根据本公开的示例实施例工作的示例计算设备200的框图。计算设备200可以是用户计算设备或服务器计算设备。
[0088]
计算设备200包括对多步骤过程的若干步骤(例如,步骤1到步骤n)的描绘。每一步骤利用多步骤过程层中的模型(例如,模型1到模型n)来执行多个步骤中的每一步骤。在一些示例实施例中,每一步骤可以包括与中央设备层的通信。
[0089]
该多步骤过程层包括若干机器学习模型。例如,如图2中所示,相应的机器学习模型(例如,模型)可以是针对每一步骤提供的并且由多步骤过程层管理。在其他示例实施例中,两个或更多个步骤可以共享单个机器学习模型。例如,在一些示例实施例中,该多步骤过程可以提供针对所有步骤的单个模型(例如,单模型)。在一些示例实施例中,多步骤过程层被包括到计算设备200的操作系统内或者由该操作系统实施。此外,在这一示例中被展示
为截然不同的一个或多个模型实际上可以是单个模型的不同层,其每者进行操作以执行一个或多个步骤。
[0090]
多步骤过程层可以与中央设备数据层进行通信。中央设备数据层可以是用于计算设备200的数据的集中式储存库。如图2中所示,中央设备数据层可以与该计算设备的若干其他部件通信,诸如一个或多个传感器、上下文管理器、设备状态部件和/或额外部件。在一些示例实施例中,中央设备数据层可以使用api(例如,私有api)与每一设备部件通信。在一些示例实施例中,多步骤过程层连接至通信接口,以用于与其他计算设备发送和接收数据。
[0091]
图3示出了根据本公开的示例实施例的用于多步骤过程的示例总模型300的框图。从这一示例可以看出,总模型300接收输入数据310。在一些示例中,总模型300的输入数据310是一幅或多幅原始图像和相关联的数据。
[0092]
在这一示例中,用于该多步骤过程的总模型300包括两个分立模型,即用于步骤1的第一分立模型308的和用于步骤2的第二分立模型302。在一些示例中,步骤1模型308将其输出306作为输入传递给步骤2模型302。最终,这一多步骤过程的输出数据是一个或多个用户身份推断。
[0093]
图4a示出了根据本公开的示例实施例的存在于两个不同系统上的多步骤过程系统的框图。如这一示例中所示,本地计算系统414和远程计算系统416两者均包括互为镜像的多步骤过程。因而,本地计算系统414处的第一步骤402与远程计算系统416处的第一步骤422匹配。这种模式对于步骤2(404和424)、步骤3(406和426)、步骤4(408和428)、步骤5(410和430)和步骤6(412和432)均成立。
[0094]
在这一示例中,本地计算系统414接收来自本地计算系统414处的一个或多个传感器的输入。例如,本地计算系统414包括相机,其捕获原始高质量可视数据以作为对该多步骤过程的输入。
[0095]
一旦已经接收到了输入,本地计算系统414就确定要在本地计算系统414处执行的步骤的数量。这一确定可以是基于若干标准做出的。在这一示例中,本地计算系统414确定直至步骤4 408的所有步骤都将在本地计算系统414处执行。
[0096]
因而,步骤1到步骤4(402-408)在本地计算系统414处执行。一旦已执行了步骤4 408并且生成了中间数据表示,那么本地计算系统414就将中间数据表示经由网络180传输至远程计算系统416。
[0097]
在一些示例实施例中,远程计算系统416之后可以完成步骤5 430和步骤5 432。在一些示例中,远程计算系统416经由网络180接收中间数据表示。远程计算系统416基于在本地计算系统414处执行的最近步骤继续执行该多步骤过程中的步骤。在这一示例中,步骤1-4是在本地计算系统414处执行的。因此,步骤5和步骤6是在远程计算系统416处执行的。
[0098]
图4b示出了根据本公开的示例实施例的存在于两个不同系统上的多步骤过程系统的框图。图4b示出了与图4a中所示的相同的多步骤过程系统。然而,在这一示例中,本地计算系统414确定步骤2将是在本地计算系统102处执行的最后一个步骤。
[0099]
因此,在这一示例中,本地计算系统102完成步骤1 402和步骤2 404,之后将中间数据表示从本地计算系统414经由网络180传输至远程计算系统416。之后,远程计算系统415继续执行步骤3 426、步骤4 428、步骤5 430和步骤6 432。因而,整个多步骤过程可以被执行而不管哪一步骤是在本地计算系统414处执行的最后步骤。
[0100]
示例方法
[0101]
图5示出了根据本公开的示例实施例的针对使用用于执行机器学习推断的混合本地/服务器基础设施执行多步骤识别过程的示例方法(500)的流程图。尽管将参考图1的本地计算设备102讨论方法(500),但是可以由任何适当计算系统执行方法(500)。
[0102]
此外,图5还出于例示和讨论目的示出了按照特定顺序执行的步骤。本领域的普通技术人员利用本文提供的公开内容将理解,可以省略、适配和/或按照各种方式重新安排方法(500)的各种步骤,而不脱离本公开的范围。
[0103]
在一些示例实施例中,计算设备(例如,图1中的本地计算设备102)在(502)中获得包括一个或多个用户的场景的传感器数据。在一些示例中,传感器数据可以是来自相机的图像数据、来自麦克风的音频数据、来自雷达设备的雷达数据或者来自lidar设备的lidar数据。图像数据可以是压缩图像数据。在一些示例中,图像数据是在视频会议期间捕获的。
[0104]
在一些示例实施例中,该计算设备在(504)中选择传感器数据的与一个或多个用户相关联的至少一部分。例如,所选择的部分是图像的包括一个或多个用户的面部的区段。在另一个示例中,所选择的部分可以是音轨的区段。在另一个示例中,所选择的部分可以是lidar或雷达数据的包括一个或多个用户的部分。
[0105]
该计算设备在(506)中生成传感器数据的选定部分的中间表示,其中,生成传感器数据的选定部分是多步骤识别过程中的至少一个步骤。
[0106]
在一些示例实施例中,该计算设备通过基于一个或多个标准选择该多步骤识别过程中的一个步骤而生成中间表示。该计算设备可以执行该多步骤识别过程中的步骤直到该多步骤识别过程达到该选定步骤的结束并生成传感器数据的选定部分的中间表示,该中间表示与选定步骤相关联,其中,该多步骤识别过程中的多个步骤每者产生传感器数据的选定部分的截然不同的中间表示。
[0107]
在一些示例实施例中,一个或多个标准包括当前可用于将数据从一个或多个计算设备传输至该远程计算系统的带宽。在其他示例实施例中,一个或多个标准包括在该远程计算系统处可用的计算资源。中间表示可以包括与该多步骤识别过程相关联的一个或多个机器学习基元。
[0108]
在一个示例中,一个或多个机器学习基元可以包括一项或多项对象定位计算。在一些示例实施例中,对象定位计算可以包括确定特定对象在图像内的位置。例如,计算可以包括识别一个或多个用户(或者用户的面部)在图像内的位置。一个或多个机器学习基元可以包括用于该多步骤面部识别过程的一项或多项部分计算。
[0109]
在一些示例实施例中,该计算设备在向远程计算系统传输任何数据之前验证一个或多个安全和隐私标准。在一些示例实施例中,隐私标准包括基于用户选择的隐私偏好的标准,并且满足该标准包括:传输用户面部的中间表示将不违反他们的隐私偏好。
[0110]
一旦已经满足了该标准,该计算设备就可以在(508)中传输中间表示和对用户识别(诸如,基于该中间表示的面部识别推断)的请求,远程计算系统被配置为使用中间表示和机器学习系统执行多步骤识别过程的额外步骤。
[0111]
该计算设备还可以将识别多步骤面部识别过程中的下一步骤的过程数据与中间表示一起传输,以使远程计算系统能够在所识别的下一步骤处继续进行该多步骤面部识别过程。这一过程数据允许远程计算系统继续进行该多步骤过程并且得到推断,该推断与如
果步骤在计算系统处执行而将会生成的推断相同。在一些示例中,识别下一步骤的过程数据被作为元数据包括到与数据相关联的报头当中。此外,元数据还包括标识在本地计算系统处所用的推理引擎的特定版本的版本数据。通过这种方式,能够对模型进行改进和进一步训练,并且因此在本地计算设备处使用的特定版本必须与在远程计算系统处使用的版本相匹配。
[0112]
多步骤面部识别过程中的至少一个步骤可以使用该机器学习系统的第一机器学习模型来执行,并且多步骤面部识别过程中的额外步骤可以由该机器学习系统的第二机器学习模型执行。如上文所指出的,第一和第二机器学习模型可以是单个多层模型的不同层,每一层执行多步骤过程的一个或多个步骤。在一些示例实施例中,对用户识别的请求包括将与图像数据相关联的本地元数据传输给远程计算系统。
[0113]
该计算设备在(510)中接收一个或多个用户的面部识别标识符。面部识别标识符可以基于由服务器系统生成的推断来选择。面部识别标识符可以包括用户的姓名。面部识别标识符可以在视频会议正处于进行当中时被接收。之后,该计算系统在与一个或多个计算设备相关联的显示器中显示一个或多个用户中的用户的姓名。
[0114]
额外公开
[0115]
本文讨论的技术参考了服务器、数据库、软件应用程序和其他基于计算机的系统以及所采取的行动和向此类系统发送和从此类系统发送的信息。基于计算机的系统的固有灵活性允许实现各种各样的可能配置、组合以及任务和功能在组件之间的划分。例如,可以使用单个设备或组件或者以组合方式工作的多个设备或组件来实施本文讨论的过程。数据库和应用程序可以被实施到单个系统上或者可以跨越多个系统分布。分布的部件可以顺次操作或者并行操作。
[0116]
尽管已经联系本主题的各种具体示例实施例详细描述了本主题,但是每一示例是为了解释本公开提供的,而非为了限制本公开。本领域技术人员在获得了对前文的理解之后能够容易地做出此类实施例的改变、变化和等价方案。相应地,本公开不排除包含针对本主题的此类修改、变化和/或添加,这对于本领域技术人员而言是显而易见的。例如,可以将作为一个实施例的部分例示或描述的特征与另一实施例结合使用,以得到又一实施例。因而,意在使本公开涵盖此类更改、变化和等价方案。
[0117]
具体而言,尽管图5出于例示和讨论的目的分别示出了按照特定顺序执行的步骤,但是本公开的方法不限于该特定例示顺序或布置。可以按照各种方式省略、重新安排、合并和/或调适方法5的各种步骤,而不脱离本公开的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1