技术领域
[0001] 本发明涉及用于视频流操作的方法和系统,特别是但不局限于涉及用于基于感兴趣区域的视频会议视频流操作的方法和系统。
相关背景技术
[0002] 近年来,视频会议和视频通话已经非常流行,允许在不同位置的用户进行面对面的讨论,而无需前往同一位置。商务会议、与学生的远程课程以及朋友和家人之间的非正式视频通话是视频会议技术的常见用途。视频会议可以使用智能手机或平板电脑,通过台式电脑或专用视频会议设备进行。
[0003] 视频会议系统使得视频和音频都能够通过数字网络在位于不同位置的两个或多个参与者之间传输。位于每个不同位置的摄像机或网络摄像机可以提供视频输入,并且位于每个不同位置的麦克风可以提供音频输入。位于每个不同位置的屏幕、显示器、监视器、电视机或投影仪可以提供视频输出,并且位于每个不同位置的扬声器可以提供音频输出。基于硬件或软件的编码器‑解码器技术将模拟视频和音频数据压缩成数字包,以便通过数字网络传输数据,并解压缩数据,以便在不同位置输出。
[0004] 通常,视频会议可以包括在不同位置(例如,每个人在不同位置)的多个用户,例如4、8、15、20个等。其中,在每个位置捕获的视频流和音频流可以被传输到每个不同位置,使得每个用户可以看到和听到每个其他用户。例如,每个用户的屏幕可以显示来自每个位置的视频流,有时包括来自他们自己位置的视频流。
[0005] 有时,每个位置可能只有单个用户,因此每个视频流只包括单个用户。在这些情况下,每个用户可以将摄像机定位在他们的位置,从而使他们位于摄像机视场的中心。
[0006] 或者,在其他情况下,多个人可能位于其中一个位置。例如,在由视频会议举行的商务会议中,3个人可能位于第一位置,1个人可能位于第二位置,1人可能位于第三位置。
[0007] 在有多人的位置处,单个摄像机仅提供该位置的单个视图,并且该视频流视图可以以与其他视频流视图(例如,在其他位置处只有单个人的情况下)类似的大小显示在每个位置处的屏幕上。在这些情况下,在单个位置的多人在视频流中看起来可能比他们所在位置的任何人都小得多。
[0008] 在解决这个问题的尝试中,已知在具有多人的位置提供多个摄像机,以便捕获该位置的多个视频流视图,并且覆盖比单个摄像机可能覆盖的更大的视图。在一些情况下,多个视频流中的每一个可以包括单个人。然而,这是昂贵的,并且导致具有复杂设施的复杂系统。
[0009] 另一种方法使用说话者跟踪(例如,音频跟踪),由此来自说话参与者的声音被用作将说话参与者作为摄像机视野中的感兴趣区域来聚焦的规则。然而,这种解决方案的缺点是,它从整个画面中移除了可能由于声音以外的原因而成为感兴趣区域的区域。
[0010] 鉴于以上考虑,设计了本发明。
具体实施方式
[0145] 现在将参考附图来讨论本发明的各层面和实施例。对于本领域技术人员来说,进一步的层面和实施例将是显而易见的。
[0146] 图1显示了视频会议系统1,包括多个视频会议端点10a‑10d,每个端点可以由各自的用户控制。视频会议端点10a‑10d(以及因此用户)位于不同的位置。它们包括计算设备、移动设备、平板电脑或专用视频会议设备等。视频会议系统1使得视频信号和音频信号都能够经由数字网络50在视频会议端点10a‑10d之间传输。数字网络50优选是无线的,但也可以是有线的。
[0147] 摄像机(例如视频会议端点10a中的摄像机30)和麦克风(未示出)位于视频会议端点10a‑10d中的每一处,以便分别提供视频输入和音频输入。屏幕、显示器、监视器、电视和/或投影仪以及扬声器(未示出)位于视频会议端点10a‑10d中的每一个处,以便分别提供视频输出和音频输出。
[0148] 在图1中,其中一个视频会议端点10a包括数据处理设备20。在一些其他示例视频会议系统中,每个视频会议端点10a‑10d可以包括这样的数据处理设备20。
[0149] 视频会议端点10a处的摄像机30被配置为捕获初始视频流(其中初始视频流包括多个视频帧,每个视频帧包括位于摄像机视野内的一个或多个用户(即人)),并将初始视频流传输到数据处理设备20(例如,通过可以是有线或无线的连接器40)。
[0150] 图2示意性地示出了示例数据处理设备20,该设备可以位于图1所示的视频会议系统1的视频会议端点10a中。
[0151] 数据处理设备20包括接收器21,接收器21被配置为从摄像机30(无线地或通过有线连接地)接收初始视频流。
[0152] 数据处理设备20还包括对象检测单元22、边界框设置单元23和裁剪单元24,它们一起被配置成将由接收器21接收的初始视频流操作成与初始视频流中的感兴趣区域相对应的多个视图(或“裁剪区域”)。感兴趣区域可以对应于例如包括人的初始视频流的部分。
[0153] 数据处理设备20还包括传输器25,传输器25被配置将感兴趣的裁剪区域(无线地或通过有线连接地)传输到视频会议端点10a‑10d,以在其上呈现和显示。
[0154] 图3显示了由图2的数据处理设备20执行的方法100的步骤。
[0155] 首先,在步骤110,数据处理设备20的接收器21接收由视频会议端点10a中的摄像机30捕获的初始视频流。
[0156] 接下来,在步骤120,对象检测单元22在接收器21接收到的初始视频流的第一帧中检测一个或多个预定义类型的对象(例如,其中预定义类型可以是人)。具体地,对象检测单元22预测第一帧中的对象类别,以便将第一帧中的对象识别、辨认和分类为人。对象检测单元22还定位第一帧中的人(例如,找到其位置)。
[0157] 步骤120可以使用机器学习算法来执行,例如使用经过训练的神经网络,诸如基于区域的卷积神经网络(R‑CNN)。可替换地/附加地,可以使用基于Haar特征的级联分类器或方向梯度直方图(HOG)来执行步骤120。
[0158] 在步骤130,边界框设置单元23围绕每个检测到的对象的范围设置矩形边界框,以便每个边界框包含预定义类型的单个对象。例如,预定义的对象类型可以被认为是人、人的面部、人的头部和/或人的头部和肩部。例如,预定义的对象类型可以是从头顶开始的人的上半身的固定部分,作为人的面部尺寸的比例。因此,在步骤130的示例中,在第一帧中,围绕每个人的头部和肩部的范围设置边界框。
[0159] 在第一帧中围绕每个人的头部和肩部的范围设置的(每个)边界框可以包括包含关于分类的信息(例如,边界框包含人的头部和肩部)和关于人的头部和肩部的位置的信息(例如,坐标)的标签。
[0160] 在一些示例中,边界框的标签中的位置信息可以包括矩形边界框的四个角的坐标(例如,水平坐标和垂直坐标)。可替换地,位置信息可以包括矩形边界框上的已知点(例如,中心或左下角)的坐标(例如,水平坐标和垂直坐标),以及矩形边界框的尺寸(例如,宽度和高度)。
[0161] 在步骤140,裁剪单元24从第一帧中选择裁剪区域。每个裁剪区域包括至少一个边界框(因此包括至少一个人,例如一个人的至少一个头部和肩部)。在一些示例中,裁剪区域可以包括多个边界框,例如,其中两个边界框在帧中彼此靠近。
[0162] 在步骤150,传输器25将裁剪区域传输到视频会议端点10a‑d,以在其上进行呈现和显示。传输器25可以仅传输裁剪区域,使得第一帧的不包括一个或多个预定类型的对象的任何部分(例如,不包括人的头部和肩部的部分)不被传输。因此,仅传输第一帧的感兴趣区域。然而,在其他示例中,除了裁剪区域之外,还可以传输初始视频流的第一帧,使得仍然可以在视频会议端点处查看原始第一帧,但是一个或多个预定义类型的对象(例如,人)在裁剪区域中被强调。
[0163] 来自初始视频流的第一帧的裁剪区域可以作为独立最终视频流的相应第一帧来传输。换言之,传输器25可以单独传输裁剪区域。
[0164] 可替换地,可以将来自初始视频流的第一帧的裁剪区域编译成合成视图,并作为最终视频流的单个第一帧来传输。合成视图可以包括每个裁剪区域,使得传输器25在单个最终视频流的单个帧中一起传输裁剪区域。
[0165] 图4显示了从初始视频流的第一帧中选择多个裁剪区域的方法200的步骤(因此,这些步骤是图3中步骤140的子步骤)。方法200的步骤由裁剪单元24执行。
[0166] 在步骤210,从包含边界框的第一帧中确定有限数量的裁剪区域的可能候选集合。这有助于通过从有限数量的裁剪区域的可能候选集合而不是所有可能候选集合中选择优选的(或甚至优化的)裁剪区域,来减少裁剪单元22的计算时间和空间需求。
[0167] 在步骤210中确定裁剪区域的可能候选集合,包括确定(例如,识别)满足每个裁剪区域的预定义优选纵横比的所有可能候选集合,然后限制可能候选集合的数量。每个裁剪区域的预定义优选纵横比可以存储在数据处理设备20中,或者通过接收器21从远程设备(例如,远程服务器)接收。
[0168] 限制裁剪区域的可能候选集合可以包括以下中的一个或多个:
[0169] ·将裁剪区域的可能候选集合限制为其中的每个裁剪区域包括小于或等于预定义数量的边界框的可能候选集合;
[0170] ·将裁剪区域的可能候选集合限制为第一帧中的所有边界框都包括在裁剪区域中的可能候选集合;
[0171] ·限制裁剪区域的可能候选集合,使得每个可能候选集合中的裁剪区域的数量小于第一预定义阈值和/或大于第二预定义阈值;和/或
[0172] ·限制裁剪区域的可能候选集合,使得每个可能候选集合中的裁剪区域包括围绕预定义对象类型的预定义集合中的一个设置的一个或多个边界框(例如,使得每个可能候选集合中的每个裁剪区域包括人的头部或人的头部和肩部,但不包括整个人)。
[0173] 当在步骤150中裁剪区域作为独立最终视频流的独立第一帧传输时(即,使得每个最终视频流的每个第一帧包括单个裁剪区域),限制裁剪区域的可能候选集合可以包括限制裁剪区域的可能候选集合,使得每个可能候选集合中的裁剪区域的数量小于或等于最终视频流的预定义最大数量。最终视频流的预定义最大数量可以存储在数据处理设备20中,或者从远程设备(例如,远程服务器)接收。可以基于网络带宽限制、网络容量或视频会议系统1的限制(例如,一个或多个视频会议端点10a‑10d的限制,或数据处理设备20的限制)来确定最终视频流的预定义最大数量。
[0174] 当在步骤150中裁剪区域被编译成合成视图并在作为最终视频流的单个第一帧传输时(即,使得最终视频流中的第一帧包括所有裁剪区域),限制裁剪区域的可能候选集合可以包括限制裁剪区域的可能候选集合,使得每个可能候选集合中的裁剪区域满足合成视图的一个或多个预定义需求。
[0175] 例如,合成视图的一个或多个预定义需求可以包括预定义总尺寸、预定义形状、预定义纵横比和/或形成合成视图的布局中矩形的预定义最大数量,其中,当裁剪区域被编译成合成视图时,裁剪区域将被提供在布局的每个矩形中。
[0176] 因此,在一个示例中,限制裁剪区域的可能候选集合可以包括限制裁剪区域可能候选集合,使得每个可能候选集合中的裁剪区域的数量小于或等于形成合成视图的布局中矩形的预定义最大数量。在形成合成视图的布局中矩形的预定义最大数量可以存储在数据处理设备20中,或者从远程设备(例如,远程服务器)接收。可以基于网络带宽限制、网络容量或视频会议系统1的限制(例如,一个或多个视频会议端点10a‑10d的限制,或数据处理设备20的限制)来确定形成合成视图的布局中矩形的预定义最大数量。
[0177] 在步骤220,从可能候选集合中确定优选裁剪区域集合的参数。具体地,通过最小化关于所确定的裁剪区域的可能候选集合的成本函数来确定每个裁剪区域的参数。成本函数包括以下各项的加权和:(i)和不与任何边界框重叠的裁剪区域的面积相关的项;以及(ii)与裁剪区域之间的重叠相关的项。
[0178] 每个矩形裁剪区域可以由4个参数来定义。每个裁剪区域的4个参数可以是其四个角的水平坐标和垂直坐标,或者裁剪区域中心的水平坐标和竖直坐标,以及裁剪区域的尺寸(例如宽度和高度)。
[0179] 如图2所示,在步骤230中,基于每个裁剪区域的确定参数,选择第一帧中的裁剪区域,然后在步骤150中传输。
[0180] 在从初始视频流的第一帧中选择多个裁剪区域的另一种方法中(因此,这是图3的步骤140的子步骤),成本函数可以在成本优化过程中相对于一个或多个约束进行优化,并且可以使用约束优化来最小化。然后,可以使用一个或多个数学解算器来最小化该成本函数,例如线性规划、内点法和广义约化梯度。可替换地,可以使用其他数学工具来最小化成本函数,例如遗传算法。
[0181] 约束可以涉及以下一个或多个:
[0182] ·每个裁剪区域中的边界框的数量(例如,每个裁剪区域需要2个或更少的边界框);
[0183] ·每个裁剪区域的预定义优选纵横比;和/或
[0184] ·预定义的对象类型,例如,由从头顶开始的人的上半身的固定部分与人的面部尺寸的最大和/或最小比率来参数化。
[0185] 当在步骤150中将裁剪区域作为独立最终视频流的独立第一帧来传输时(即,使得每个最终视频流中的每个第一帧包括单个裁剪区域),约束也可以与最终视频流的预定义最大数量有关。
[0186] 当在步骤150中裁剪区域被编译成合成视图并作为最终视频流的单个第一帧传输时(即,使得最终视频流中的第一帧包括所有裁剪区域),约束也可以与形成合成视图的布局中矩形的预定义最大数量有关。
[0187] 形成包括每个裁剪区域的合成视图的布局(例如网格)的布置可以通过优化过程来确定。优化过程可以由数据处理设备20执行,或者由远程设备执行。
[0188] 为了减少计算时间和空间需求,可以在从有限数量的布局布置的可能候选中确定布局布置之前,确定(例如,识别)布局布置的可能候选(例如,网格中矩形的布置)。具体地,确定布局中矩形的纵横比的可能候选。
[0189] 确定布局布置的可能候选包括确定(例如,识别)布局布置的所有可能候选,然后限制可能候选的数量。
[0190] 限制布局布置的可能候选可以包括将可能候选限制为具有布局中每个矩形的预定义纵横比集合的可能候选。
[0191] 当该方法包括成本优化过程,使得使用约束优化来最小化成本函数时,约束可以与布局中每个矩形的优化纵横比、预定点(例如布局的左上角)和比例因子中的一个或多个相关,其中比例因子是每个裁剪区域的尺寸被缩放以适应形成合成视图的布局中的相应矩形的量。
[0192] 图5显示了由数据处理设备20执行的方法300的步骤,用于从初始视频流的后续帧(例如,第二、第三、第四…第N帧)中选择裁剪区域。具体地,图5显示了从初始视频流的第二帧中选择裁剪区域的步骤。
[0193] 如在方法100的步骤110中,在步骤310中,接收器21接收由视频会议端点10a中的摄像机30捕获的初始视频流。分别在步骤320和步骤330中,对象检测单元22检测初始视频流的第二帧中的一个或多个预定义类型的对象,边界框设置单元23围绕第二帧中每个检测到的对象的范围设置边界框。因此,第二帧中的每个边界框可以包括预定义类型的单个对象。步骤320和步骤330可以与以上参考图3所述的步骤120和步骤130相对应的方式执行。
[0194] 与步骤140相反,在步骤340中,基于来自第一帧的裁剪区域和跟踪边界框在第一帧和第二帧之间的移动来选择来自初始视频流的第二帧的裁剪区域。因此,与以与第一帧相同的方式选择来自第二帧和每个后续帧的裁剪区域的方法相比,裁剪单元24的计算负载降低,但即使在初始视频流期间移动,也提供一个或多个预定义类型的对象的一致视图。
[0195] 优选地,第一帧和第二帧(以及任何后续帧)中的裁剪区域的数量是一致的,并且来自第二帧(以及任何后续帧)的每个裁剪区域包括与来自第一帧的对应裁剪区域相同的预定义类型的(单数或复数个)对象。这提供了一个或多个预定义类型的对象和裁剪区域的一致视图。
[0196] 在步骤140中,可以使用特征映射算法来跟踪第一帧和第二帧之间的边界框的移动,或者通过采用光流估计算法来跟踪每个边界框中的像素的移动,来跟踪第一帧和第二帧之间的边界框的移动。可替换地/附加地,第二帧中的每个边界框可以基于每个帧中的边界框的位置信息被识别为与第一帧中的边界框相对应,其中在第一帧和第二帧之间的位置已经移动了最小距离的边界框被识别为相应的边界框对。因此,可以基于相应的边界框对来选择来自第二帧的裁剪区域,使得第二帧中的每个裁剪区域包括与第一帧中的对应裁剪区域相同的边界框。
[0197] 类似于步骤150,在步骤350中,来自第二帧的裁剪区域然后由传输器25传输。
[0198] 图6显示了一种方法400,其包括可以在图5的步骤340和步骤350之间执行的附加步骤;方法400可以由数据处理设备20来执行。图6所示的步骤可以按任何顺序执行,也可以同时执行(例如,步骤420可以在步骤410之前、同时或之后执行)。
[0199] 在步骤410中,来自第二帧的任何基本重叠的裁剪区域被合并,以避免第二帧中的一个或多个预定义类型的对象(例如人)的重复。具体地,确定来自第二帧的裁剪区域对之间的重叠量,并且如果重叠量超过预定义的重叠阈值,则合并该裁剪区域对。
[0200] 在步骤420中,来自第二帧的任何太大的裁剪区域(例如,裁剪区域包括两个人,并且这两个人在第一帧和第二帧之间移动得更远)被分割成两个或多个所得的裁剪区域。具体地,确定来自第二帧的每个裁剪区域的尺寸,并且来自第二帧的具有超过预定义尺寸阈值的尺寸的任何裁剪区域被分割成两个或更多个所得的裁剪区域。
[0201] 在步骤430中,确定来自第二帧的裁剪区域是否满足预定义标准。具体地,如果裁剪区域不满足预定义标准,则确定预定义类型的对象在第一帧和第二帧之间已经产生了过多的移动,并且必须使用上述从第一帧中选择裁剪区域的方法之一来从第二帧中重新选择裁剪区域。因此,在步骤440中,如果来自第二帧的裁剪区域不满足预定义标准,则使用在从第一帧选择裁剪区域时使用的上述方法(例如,通过成本函数)来从第二帧中重新选择裁剪区域。
[0202] 可以根据度量来执行确定来自第二帧的裁剪区域是否满足预定义标准的步骤,其中该度量可以是上述成本函数的返回值。具体地,预定义标准可以是度量小于预定义阈值。
[0203] 如图6所示,如果裁剪区域符合预定义标准,则不会重新选择裁剪区域。
[0204] 如以上参考图5和图6所述,来自初始视频流的其他后续帧(例如,第三、第四、第五…第N帧)的裁剪区域可以以与第二帧相应的方式选择。
[0205] 现在描述在给定最终视频流的最大数量NS的情况下,将多个边界框划分并因此将人分配到独立最终视频流中的方法的另一示例。
[0206] 在第一步骤中,最终视频流的最大数量被临时设置为无穷大。然后运行如上所述的方法以在初始帧中获得裁剪区域集合。这通常会产生不重叠的裁剪区域,其中裁剪区域内的人彼此重叠或非常靠近,并且每个裁剪区域都紧紧地包围着他们各自的人。如果该裁剪区域集合具有多于NS个的裁剪区域,则将这些裁剪区域分组为N组,使得每个组内具有相似或相同数量的边界框/人。选择每组中的裁剪区域,使其在空间上接近,并且如果可能的话,这些组保持它们的组中的人的空间顺序。如果人数/边界框为NP,则每组的目标人数为NPG=(NP+NS–1)/NS。在一个示例中,该算法可以包括首先按照裁剪区域的空间顺序(例如从左到右)对其进行排序,然后反复遍历剩余的裁剪区域,并且如果裁剪区域包含恰好或多于NPG个人,或者如果不存在待定组(即具有少于NPG个人),则形成仅包含该裁剪区域中的所有人/边界框的新组。否则,该裁剪区域中的所有人/边界框都将添加到该待定组中,并且该组待定状态被更新。每个最终组包含用于每个流的人/边界框集合。
[0207] 在划分为独立流集合之后,每个流包括边界框集合,以上参考图4所述的算法可以应用于每个流,以获得编译成合成视图的裁剪区域集合。对于每个后续帧,该方法可以跟踪当人们进入或离开摄像机的视野时,或者移动导致裁剪区域中的显著重叠时,独立流是否被创建或破坏。创建的最终视频流的可用性或破坏的最终视频流的不可用性可通过网络用信号通知或通告。通过为新创建的流重新使用现已破坏的流的唯一标识符来避免过度的信令。当同时存在许多创建的流或破坏的流时,该方法可以找到用于重用标识符的最接近的对,以避免具有相同标识符的流的内容的过度改变。用于确定接近度的度量可以是相同的人/边界框的集合的尺寸。
[0208] 当每个最终视频流的裁剪区域的数量发生变化时,可以对每个最终视频流中的过渡进行动画处理,以避免突然改变。在某些示例中,过渡是在一段时间内逐渐消失。
[0209] 如前所述,每个最终视频流可以被公开为摄像机或虚拟摄像机,使得应用程序可以独立地并且使用相同的标准接口对它们进行流式传输。元数据可以与每个最终视频流一起传输,该元数据包含关于空间顺序、活动说话者是否位于相应流内以及给定流内的人数的信息,以便在发送方和接收器都允许更高级的布局。元数据可以与相应的虚拟摄像机和/或从这些虚拟摄像机产生的帧相关联。大多数接收器具有与其订阅的摄像机相关联的一些静态信息和一些动态信息。静态信息不会随生成的帧而改变。虚拟摄像机的静态信息可以包括指示各个虚拟摄像机来自哪个物理摄像机。每帧的动态信息可以指示存在的活动说话者以及帧内的人数。每帧的动态信息还可以包括最终视频流的空间顺序信息,例如从左到右的顺序或关于用于制作相应帧的裁剪坐标的信息。在一个示例中,接收器可以运行安卓(RTM)操作系统,并且静态信息可以被存储在摄像机特性元数据中,而动态信息可以被保存在摄像机捕获结果元数据中。
[0210] 给定裁剪区域或帧中的背景可以被模糊或替换,以避免由于裁剪减少了相邻裁剪区域之间的重叠而导致的杂乱视图。可以从深度传感器或预先训练的机器学习模型中检索每个人的掩模。可以对最终视频流内对活动说话者进行增强,例如通过使它们在合成视图中更加突出。如前所述,可以通过麦克风阵列来检测活动说话者,该麦克风阵列计算声音方向并将该声音方向与所识别的人的存在相匹配。然后可以识别包含该人的独立流,并且可以在该独立流的最终合成视图中为该人布置更大的布局。
[0211] 图7a显示了由摄像机(诸如图1的摄像机30)捕获的初始视频流的第一帧1000。摄像机的视野包括四个人。因此,如果初始视频流的第一帧1000要被传输到多个视频会议端点,例如视频会议端点10a‑10d,那么在视频会议端点处呈现和显示的最终视频流的第一帧将包括四个人中的每一个,但是他们将不会被定位在离摄像机的最佳距离处,使得每个人看起来比每个人都有专用摄像机的情况下更小。具体地,最终视频流的第一帧看起来像第一帧1000。
[0212] 然而,如果根据本文公开的方法将初始视频流的第一帧1000操作成感兴趣的裁剪区域,则当在视频会议端点处呈现和显示时,包括人的任何区域都被强调。具体地,图7c显示了四个裁剪区域1200a‑d,然后可以在视频会议端点处显示这些裁剪区域。四个裁剪区域1200a‑d强调四个人,使得第一帧1000的不包括一个人的任何区域从最终视频流中减少。
[0213] 图7b显示了示例边界框1100a‑d,这些边界框围绕预定义类型的每个对象的范围设置(在这种情况下,是一个人的头部和肩部的固定比例)。这些边界框用于选择裁剪区域。
[0214] 在图7c中,每个裁剪区域都包括单个边界框,因此也包括单个人。
[0215] 如上所述,裁剪区域可以作为独立最终视频流的独立第一帧来传输,或者作为形成单个最终视频流中的单个第一帧的合成视图来传输,其中,合成视图包括每个裁剪区域。
[0216] 裁剪区域可以被编译成合成视图,该合成视图被作为单个最终视频流的单个第一帧来传输。参考图7a‑7c可以看出,初始视频流(如图7a所示)的第一帧1000中的人的相对空间顺序或相对位置可以在形成最终视频流的第一帧的布局(如网格)中保持(如图7c所示)。以这种方式,在形成最终视频流的第一帧的布局中,在初始视频流的第一帧1000中坐在另一个人左手侧的人仍然被视为坐在该另一个人的左手侧。
[0217] 图8a和8b分别与图7a和7c相似,不同之处在于摄像机捕捉的初始视频流的第一帧1300(如图8a所示)被操作成裁剪区域,每个裁剪区域都包含多个(而不是只有一个)边界框,因此包含多个预定义类型的对象。具体地,如图8b所示,从第一帧1300中选择两个裁剪区域1400a、1400b,其中每个裁剪区域1400、1400b包括两个边界框,因此包括两个人。
[0218] 图9a‑9c说明了将视频会议端点中的摄像机捕获的初始视频流操作成与感兴趣区域相对应的多个视图的好处。具体地,在图9a中,视频会议通话中涉及三个视频会议端点,每个端点由各自的初始视频流2100、2110和2120示出。初始视频流2110和2120中的每一个都包括单个人,使得单个人位于在相应视频会议端点处的摄像机的视野中。然而,初始视频流2100包括三个人,因为三个人位于在相应视频会议端点处的摄像机的视野中。如图9a所示,初始视频流中的三个人显示得比初始视频流2110和2120中的人小。
[0219] 根据本文公开的方法,选择初始视频流2100的裁剪区域,以便强调初始视频流2100中的三个人。图9b和9c示出了如何选择初始视频流2100的每帧的裁剪区域来提取感兴趣的裁剪区域2200a‑c(即,提取初始视频流2100a的每帧中包括人的三个区域)。
[0220] 因此,图9c显示了与初始视频流2100、2110、2120相对应的最终视频流的各个帧的示例显示2300。最终视频流2310和2320分别对应于初始视频流2110、2120。然而,初始视频流2100被划分为三个最终视频流2301、2302、2303,每个最终视频流对应于初始视频流2100的裁剪区域2200a‑c。因此,当显示在视频会议端点时,每个人都被视为相似的大小,而与每个视频会议端点处的人数和他们到摄像机的距离无关。
[0221] 图10a和10b分别示出了初始视频流3100的帧和最终视频流3200a‑3200c的帧的另一示例。
[0222] 在初始视频流3100的帧中,有三个人,每个人都位于离单个摄像机不同距离的位置,使得这些人具有不同的尺寸。然而,根据本文公开的方法,从初始视频流3100的帧中选择多个裁剪区域,以强调初始视频流3100的帧中的人,使得当裁剪区域3200a‑3200c显示在视频会议端点时,每个裁剪区域被视为相似的大小(如图10b所示),而与每个视频会议端点处的人数以及他们到摄像机的距离无关。
[0223] 在前述描述中、或在以下权利要求中或在附图中公开的特征,以它们的特定形式或以用于执行所公开的功能的手段或用于获得所公开的结果的方法或过程来表达,视情况而定,可以单独地或以这些特征的任何组合,可用于以各种形式实现本发明。
[0224] 虽然已经结合上述示例性实施例描述了本发明,但是当给出本公开时,许多等同的修改和变化对于本领域技术人员来说将是显而易见的。因此,以上提出的本发明的示例性实施例被认为是说明性的而非限制性的。在不脱离本发明的精神和范围的情况下,可以对所描述的实施例进行各种改变。
[0225] 为了避免任何疑问,本文提供的任何理论解释都是为了提高读者的理解。发明人不希望受到这些理论解释中的任何一种的约束。
[0226] 本文中使用的任何章节标题仅用于组织目的,不得解释为限制所述主题。
[0227] 在整个说明书中,包括以下权利要求,除非上下文另有要求,否则词语“包括”和“包含”,以及诸如“包括”、“包含”以及“含有”的变体,将被理解为暗示包括所陈述的整数、步骤或整数组或步骤组,但不排除任何其他整数、步骤、整数组或步骤组。
[0228] 必须注意的是,在说明书和所附权利要求中使用的单数形式“一个”、“一件”和“所述”包括复数引用,除非上下文另有明确规定。范围在本文中可以表示为从“大约”一个特定值,和/或到“大约”另一特定值。当表达这样的范围时,另一个实施例包括从一个特定值和/或到另一个特定值。类似地,当通过使用先行词“大约”将值表示为近似值时,可以理解特定值形成了另一个实施例。与数值相关的术语“大约”是可选的,其含义例如为+/‑10%。