具体实施方式
在本文的附图和附图的描述中,某些术语仅出于方便而使用,而不应被视为限制本公开的示例。在附图和以下描述中,相同的标号始终指示相同的元素。
简介
本公开中使用的术语以与本公开所属领域的技术人员使用的相同含义来使用。
多边形是由连接以形成闭合多边形链或多边形回路的有限数量的直线段描述的平面图形。实心平面区域、边界回路或两者一起可以称为多边形。多边形回路的线段称为其边或侧边,并且两个边相交的点是多边形的顶点(单数:顶点)或角点(corner)。
平面是无限远地延伸的平坦的二维表面。平面是点(零维)、线(一维)和三维空间的二维模拟。
平行线是平面中的不相交的线;也就是说,平面中的在任何点处彼此不相交或接触的两条线被称为是平行的。在不共享点的三维欧几里得空间中的线和平面或两个平面是平行的。不相交的三维空间中的两条线必须在共同的平面中被认为是平行的。平行平面是相同三维空间中的永远不相交的平面。
有效说话者是参加视频会议并且正在说话或最近在说话的人。
立体视觉(也称为立体感觉或立体成像)是一种用于通过双目视觉的立体视来创建或增强图像中的深度错觉的技术。立体图像可以称为立体图。
讨论
在本公开的至少一个示例中,视频会议设备可以检测并聚焦于有效说话者。可以使用一个或多个麦克风阵列来确定从视频会议设备到有效说话者的方向。在本公开的一个或多个示例中,使用一个或多个相机来定位有效说话者的脸。基于方向和位置,可以捕获有效说话者的视角以便传输到另一端点,并且可以在视频会议期间追踪有效说话者。
如果在电话会议期间,存在显示具有在其中讲话的人的视频的电视或监视器,则可能检测到语音和脸两者。在本公开的至少一个示例中,视频会议单元被配置成在视频会议单元附近存在的真正有效说话者的脸和监视器上的脸之间进行区分。为了便于讨论和理解,将不合期望地将所显示的图像视为其是真人的现象称为“欺骗”。本公开的示例是用于检测欺骗的方法。欺骗说话者也可以被称为欺骗脸/说话者、虚假脸/说话者、或非真实脸/说话者。本公开的至少一个示例是在真正说话者和虚假说话者之间进行区分的方法。在本公开中,虚假说话者、脸或人是指在电子显示器上渲染的说话者、脸或人的图像,并且其在这样的电子显示器上的渲染被一个或多个光学捕获设备(诸如一个或多个相机)捕获。
在本公开的至少一个示例中,执行检查以确定由一个或多个相机捕获的在视频会议端点处的一个或多个监视器的存在。监视器可以对应于多边形。在视频会议期间将不时执行检查相机视角中的电子显示器的存在。在至少一个示例中,具有全景视角的相机可以用于确定电子监视器的位置。在本公开的至少一个示例中,针对可能的欺骗仅分析被确定为对应于多边形区域使得那些脸实际上可能仅仅是所显示图像的那些脸。如果脸部区域不与多边形内的区域重叠,则对应于该脸部区域的脸不被显示在电子显示器上(出于完整性,注意,诸如将对应于照片或其他静止图像的非移动的脸部数据也将被取消选择。)。
在本申请的至少一个示例中,对至少部分地以诸如由电子显示器的框架形成的多边形为边界的(移动)脸进行打分。该分数与相机捕获对应于真人的脸部数据的可能性成比例。如果分数超过预定阈值,则捕获的脸将被视为人们期望的。如果分数不满足预定阈值,则将忽略捕获的脸并将其视为任何其他无生命物体。
在本公开的至少一种方法中,流中的多个帧被单独打分。可以使用标准统计方法对帧的单独分数进行规范化。可以拒绝单独帧的异常分数。对单独帧的分数进行平均以获取用于视频流的综合分数。基于综合分数,确定视频流是否包含与渲染说话者或真实说话者对应的数据。
较大的电子显示器(例如,电视监视器)在视频会议期间很少移动,而人们频繁地移动(例如,说话、转向等)。因此,以比检查脸低的频率检查监视器是可接受的。无论所使用的装备的质量如何,总是存在可能将真正的脸误认为渲染的脸的可能性。同样,无论所使用的装备的质量如何,总是存在可能将渲染的脸误认为真正的脸的可能性。在本公开的至少一个示例中,认为在流中包括渲染脸以传输到远端比不包括正在说话的真正人的变焦视角更可接受。在本公开的至少一个示例中,可以有意地停用一种或多种反欺骗技术以覆盖(虽然不太常见)其中视频会议参加者期望显示器的输出被相机捕获的情况(可能,作为权宜之计)。
在本公开的至少一个示例中,脸部检测分析比多边形分析更频繁地执行。在本公开的至少一个示例中,针对给定流的每个帧执行脸部检测分析。在一些示例中,执行由非全景相机捕获的数据的坐标变换,并且确定所检测的脸是否与由全景相机捕获的监视器重叠。在本公开的至少一个示例中,仅在脸和监视器重叠的情况下才将执行欺骗分析。
图1A中的视频会议装置或端点10通过网络12与一个或多个远程端点14通信。在一些共同组件中,端点10具有带有音频编解码器22的音频模块20并且具有带有视频编解码器32的视频模块30。这些模块20/30可操作地耦合到控制模块40和网络模块70。
在视频会议期间,两个或更多个相机50A-B捕获视频并将捕获的视频提供给视频模块30和编解码器32以进行处理。另外,一个或多个麦克风28捕获音频并将音频提供给音频模块20和编解码器22以进行处理。这些麦克风28可以是台式或悬挂式麦克风,或者它们可以是麦克风架等的部分。端点10将利用这些麦克风28捕获的音频主要用于会议音频。
单独地,具有正交布置的麦克风62的麦克风阵列60A-B还捕获音频并将音频提供给音频模块22以进行处理。优选地,麦克风阵列60A-B包括垂直和水平布置的麦克风62,以用于在视频会议期间确定音频源的位置。因此,端点10将来自这些阵列60A-B的音频主要用于相机追踪目的而不用于会议音频,虽然它们的音频可以用于会议。
在捕获音频和视频之后,端点10使用常见编码标准中的任何一种(诸如MPEG-1、MPEG-2、MPEG-4、H.261、H.263和H.264)对其进行编码。然后,网络模块70使用任何适当的协议经由网络12将经编码的音频和视频输出到远程端点14。类似地,网络模块70经由网络12从远程端点14接收会议音频和视频,并将这些发送到它们各自的编解码器22/32以进行处理。最终,扬声器26输出会议音频,并且显示器34输出会议视频。
在本公开的至少一个示例中,端点10以自动和协调的方式使用两个或更多个相机50A-B来动态地处理视频会议环境的视角和视频。第一相机50A可以是固定或房间视角相机,并且第二相机50B可以是受控或人视角相机。例如,使用房间视角相机50A,端点10捕获房间的视频或房间的至少宽视角或缩小视角,其通常将包括所有视频会议参加者以及一些周围环境。虽然被描述为固定的,但是可以通过平移、倾斜和变焦来调整房间视角相机50A以控制其视角并构建环境。
相比之下,端点10使用人视角相机50B来以紧密(tight)或放大视角捕获一个或多个参加者(并且优选地为一个或多个当前的说话者)的视频。因此,人视角相机50B特别能够进行平移、倾斜和变焦。
在一种布置中,人视角相机50B是可引导平移-倾斜-变焦(PTZ)相机,而房间视角相机50A是电子平移-倾斜-变焦(EPTZ)相机。这样,人视角相机50B可以被引导,而房间视角相机50A可以被电子操作以改变其查看定向而不是可引导的。然而,端点10可以使用其他布置和类型的相机。实际上,两个相机50A-B都可以是可引导PTZ相机。此外,可以在两个可引导相机50A-B之间共享和交替在宽视角和变焦视角之间的切换,使得一个在适当时捕获宽视角而另一个捕获放大视角,反之亦然。
出于本公开的目的,一个相机50A被称为房间视角相机,而另一相机50B被称为人视角相机。虽然可能期望在讲话者的紧密视角和房间的宽视角之间交替,但是可能存在其中端点10可以在相同或不同讲话者的两个不同紧密视角之间交替的情况。为此,可能期望使两个相机50A-B都是如前所述的可引导PTZ相机。因此,在另一种布置中,第一和第二相机50A-B两者都可以是受控或人视角相机,诸如可引导PTZ相机。端点10可以使用这些相机50A-B中的每个来在紧密或放大视角中捕获包括一个或多个当前说话者的一个或多个参加者的视频,以及在需要时提供房间的宽视角或缩小视角。
在本公开的至少一个示例中,端点10在任何特定时间仅从两个相机50A-B之一输出视频。随着视频会议的进行,来自端点10的输出视频然后可以不时地在房间视角和人视角相机50A-B之间切换。通常,当没有参加者讲话(或操作降级)时,系统10从房间视角相机50A输出视频,并且当一个或多个参加者正在讲话时,端点10从人视角相机50B输出视频。在一个好处中,在这些相机视角之间的切换允许视频会议的远端欣赏有效参加者的放大视角,同时仍然不时地获得会议室的宽视角。
作为替代,端点10可以同时从两个相机发送视频,并且端点10可以让远程端点14决定示出哪个视角,尤其是如果端点10发送用于选择一个或另一相机视角的一些指令的话。在又一替代方案中,端点10可以同时从两个相机发送视频,因此可以将视频图像之一合成为另一视频图像的画中画。例如,来自相机50B的人视角视频可以与来自相机50A的房间视角合成而以画中画(PIP)格式发送到远端。
为了控制由两个相机50A-B捕获的视角,端点10使用基于音频的定位器42和基于视频的定位器44来确定参加者的位置以及环境和参加者的帧视角。然后,可操作地耦合到音频和视频模块20/30的控制模块40使用来自这些定位器42/44的音频和/或视频信息将相机命令发送到一个或两个相机50A-B以改变它们的定向和它们捕获的视角。对于人视角相机50B,这些相机命令可以由具有机械地引导相机50B的马达、伺服机构等的致动器或本地控制单元52实现。对于房间视角相机50A,这些相机命令可以实现为由相机50B处理的电子信号。
为了确定使用哪个相机50A-B以及如何配置其视角,控制模块40使用从基于音频的定位器42获得的音频信息和/或从基于视频的定位器44获得的视频信息。例如,控制模块40使用来自水平和垂直布置的麦克风阵列60A-60B的基于音频的定位器42所处理的音频信息。基于音频的定位器42使用话音检测器43来检测来自阵列60A-60B的捕获音频中的话音,然后确定当前参加者的位置。控制模块40使用所确定的位置以然后引导人视角相机50B朝向该位置。如下面还更详细描述的,控制模块40使用来自相机50A-B的基于视频的位置44所处理的视频信息来确定参加者的位置,确定用于视角的构建,并朝参加者引导人视角相机50B。
来自房间视角相机50A的宽视角可以向人视角相机50B给出上下文并且可以被使用以使得远端处的参加者在人视角相机50B朝向参加者移动时不会看到来自人视角相机50B的视频。另外,当近端处的多个参加者正在讲话时或者当人视角相机50B正在移动以指向多个参加者时,可以在远端处显示宽视角。来自相机50A-B的两个视角之间的过渡可以根据需要消退和混合,以避免在相机视角之间切换时的骤然的切换镜头。
例如,当人视角相机50B朝向参加者移动时,来自该相机50B的移动视频优选地不被发送到视频会议的远端。作为代替,发送来自房间视角相机50A的视频。然而,一旦人视角相机50B正确地构建当前的说话者,则端点10在来自相机50A-B的视频之间切换。
尽管如此,端点10优选地不是简单地自动切换以捕获讲话者的视角。作为代替,相机改变优选地被定时。一段时间内太多的相机切换可能会分散会议参加者的注意力。因此,端点10优选地使用其位置、其语音特性、其讲话频率等来追踪那些讲话者。然后,当一个讲话者开始讲话时,端点10可以快速地使人视角相机50B指向该频繁讲话者,但是端点10可以避免或者延迟跳转到可能仅用简短的回答或评论作出响应的另一讲话者。
虽然端点10优选地在没有用户干预的情况下操作,但是端点10可以允许用户干预和控制。因此,来自远端和近端中的一个或两个的相机命令可以用于控制相机50A-B。例如,参加者可以确定在没有人讲话时要显示的最佳宽视角。同时,随着视频会议的进行,动态相机命令可以控制人视角相机50B。以此方式,人视角相机50B所提供的视角可以由端点10自动控制。
图1B图示了图1A的视频会议端点10的各方面。如上所示和所述,端点10具有两个或更多个相机50A-B和若干个麦克风28、60A-B、62。除此之外,端点10还具有处理单元100、网络接口102、存储器104、以及通用输入/输出(I/O)接口108,所有都经由总线101耦合。
存储器104可以是任何常规存储器(诸如SDRAM),并且可以存储以软件和固件的形式的用于控制端点10的模块106。除了先前所述的视频和音频编解码器和其他模块之外,模块106可以包括操作系统、使得用户能够控制端点10的图形用户接口(GUI)、以及用于处理音频/视频信号和控制相机50A-B的算法。在本公开的至少一个示例中,一个或多个相机(例如,50A-B)可以是全景相机。
网络接口102提供端点10和远程端点(14)之间的通信。通用I/O接口108提供与诸如键盘、鼠标、打印机、高射投影仪、显示器、外部扬声器、附加相机、麦克风架等之类的本地设备的数据传输。端点10还可以包含内部扬声器26。
相机50A-B和麦克风阵列60A-B分别在视频会议环境中捕获视频和音频,并产生经由总线101发送到处理单元100的视频和音频信号。在本公开的至少一个示例中,处理单元100使用模块106中的算法来处理视频和音频。例如,端点10处理由麦克风28、62捕获的音频以及由相机50A-B捕获的视频以确定参加者的位置并指导相机50A-B的视角。最终,经处理的音频和视频可以被发送到耦合到接口102/108的本地和远程设备。
在图1C的平面图中,端点10的一种布置使用具有麦克风阵列60A-B和与其集成的两个相机50A-B的视频会议设备80。麦克风架28可以放置在桌台上,虽然可以使用其他类型的麦克风,诸如悬挂式麦克风、单独的台式麦克风等。麦克风架28可通信地连接到视频会议设备80并捕获用于视频会议的音频。就其本身而言,设备80可以并入或安装在显示器和/或视频会议单元(未示出)上。
图1D示出了端点10的另一布置的平面图。此处,端点10具有安装在房间周围的若干个设备80/81,并且在桌台上具有麦克风架28。一个主设备80具有如前所述的麦克风阵列60A-B和两个相机50A-B,并且可以并入或安装在显示器和/或视频会议单元(未示出)上。其他设备81耦合到主设备80并且可以定位在视频会议环境的侧边上。
辅助设备81至少具有人视角相机50B,虽然它们可以具有房间视角相机50A、麦克风阵列60A-B或两者,并且可以与主设备80相同。无论哪种方式,本文描述的音频和视频处理可以标识哪个人视角相机50B具有环境中的参加者的最佳视角。然后,可以从房间周围的那些中选择用于参加者的最佳人视角相机50B,使得正面视角(或最接近该视角的那个)可以用于会议视频。
在图1E中,端点10的另一种布置包括视频会议设备80和远程发射器64。这种布置对于追踪在演示期间移动的参加者可能是有用的。再次,设备80具有相机50A-B和麦克风阵列60A-B。然而,在这种布置中,麦克风阵列60A-B响应于从发射器64发射的超声波以追踪演示者。以此方式,设备80可以在他/她移动时并且随着发射器64持续发射超声波而追踪演示者。除了超声波之外,麦克风阵列60A-B也可以响应于语音音频,使得除了超声波追踪之外,设备80还可以使用语音追踪。当设备80自动检测超声波时或者当设备80被手动配置用于超声波追踪时,设备80可以在超声波追踪模式下操作。在图1E中,会议参加者65面向相机50A和相机50B。因此,相机50A是左向相机,并且相机50B是右向相机。
如图1E所示,发射器64可以是参加者65所穿戴的包。发射器64可以具有一个或多个超声换能器66,其产生超声波音调并且可以具有集成麦克风68和射频(RF)发射器67。当使用时,当集成麦克风68拾取到讲话的参加者65时,可以激活发射器单元64。替代地,参加者可以手动致动发射器单元64,使得RF信号被发送到RF单元97以指示该特定参加者65。
图2A图示了根据本公开的示例的视频会议设备80。视频会议设备80具有外壳,其上设置有麦克风62A的水平阵列60A。从该外壳延伸,垂直阵列60B也具有多个麦克风62B。如所示,这些阵列60A-B每个都可以具有三个麦克风62A-B,虽然任一阵列60A-B可以具有与所描绘的不同数量的麦克风。
左向相机50A可以是旨在获得视频会议环境的宽视角或缩小视角的房间视角相机。右向相机50B可以是旨在获得视频会议参加者的紧密或放大视角的人视角相机。这两个相机50A-B安装在设备80的外壳上并且可以与其集成。房间视角相机50A具有图像处理组件52A,其如果不是EPTZ相机则可以包括致动器。人视角相机50B也具有图像处理组件52B,其包括用于控制相机的操作的平移-倾斜-变焦的致动器。这些组件52A-B可以可操作地耦合到容纳在设备80中的本地控制单元90。
在本公开的至少一个示例中,控制单元90包括用于进行视频会议的一些或所有必要组件,包括音频和视频模块、网络模块、相机控制模块等。替代地,所有或一些必要视频会议组件可以容纳在耦合到设备80的单独的视频会议单元95中。这样,设备80可以是具有相机50A-B、麦克风阵列60A-B和其他相关组件的独立单元,而视频会议单元95处理所有视频会议功能。在本公开的至少一个示例中,将设备80和单元95组合。
所公开的设备80可以如图2B中那样具有一个集成相机53,而不是如图2A中那样具有两个或更多个集成相机50A-B。替代地,如图2C-2D所示,设备80可以包括具有麦克风阵列60A-B、通信端口(未示出)和其他处理组件(未示出)的基本单元85。两个或更多个单独的相机单元55A-B可以连接到基本单元85上以做成设备80(图2C),或者可以在其上连接一个单独的相机单元55(图2D)。因此,基本单元85可以保持麦克风阵列60A-B和所有其他所需的电子和信号处理组件,并且可以使用适当的附接形式支承一个或多个相机单元55。
虽然已经示出设备80具有彼此邻近定位的两个相机50A-B,但是相机50A-B中的任一个或两个可以完全与设备80分离并且连接到外壳的输入。另外,设备80可以被配置成支承另外的相机而不仅仅是两个。以此方式,用户可以安装其他相机,其可以无线连接到设备80并且定位在房间周围,使得设备80可以始终选择用于说话者的最佳视角。
图3图示了可以是图2A-2D的设备80的部分的组件。如所示,设备80包括麦克风阵列60A-B、控制处理器110、现场可编程门阵列(FPGA)120、音频处理器130和视频处理器140。如前所述,设备80可以是具有与其集成的两个或更多个相机50A-B的集成单元(参见图2A),或者这些相机50A-B可以是具有其自己的组件并连接到设备的基本单元的单独的单元(参见图2C)。另外,设备80可以具有一个集成相机(53,图2B)或一个单独的相机(55,图2D)。
在本公开的至少一个示例中,FPGA 120捕获来自相机50A-B的视频输入,生成用于视频会议单元95的输出视频,并将输入视频发送到视频处理器140。FPGA 120还可以缩放和合成视频和图形叠加。音频处理器130可以是数字信号处理器,捕获来自麦克风阵列60A-B的音频并执行音频处理,包括回声消除、音频滤波和源追踪。音频处理器130还处理用于在相机视角之间切换、用于检测会话模式、以及本文公开的其他目的的规则。
根据本公开的示例,视频处理器140(其可以包括数字信号处理器(DSP))从FPGA120捕获视频并处理运动检测、脸检测和其他视频处理以帮助追踪参加者。视频处理器140可以对从人视角相机50B捕获的视频执行运动检测算法,以检查由讲话者追踪算法找到的候选讲话者位置的当前视角中的运动。这可以避免使相机50B指向来自墙壁、桌台等的反射。另外,视频处理器140可以使用脸寻找算法以通过确认候选讲话者位置确实构建具有人脸的视角来进一步提高追踪准确度。在本公开的至少一个示例中,可以确定人脸是否对应于端点(10)处的参加者65或者人脸是否在显示设备(34)上渲染。
控制处理器110处理与视频会议单元95的通信并处理设备80的相机控制和整体系统控制。例如,控制处理器110控制用于相机的组件的平移-倾斜-变焦通信,并且控制由FPGA 120的相机切换。在本公开的至少一个示例中,在真实脸和渲染脸之间进行区分在于,真实脸是立体的,而在显示器表面上呈现的脸是平坦的。因此,渲染脸上的点位于同一平面上,而真实脸上的点位于不同的平面上。
图4A图示了由左向相机(50A,506)捕获的电子显示器34上渲染的渲染参加者35。电子显示器34正在显示参加者35。在大多数情况下,不期望将与图4A的图像407对应的数据包括在用于传输到远程端点(14)的馈送中。
图4B图示了由左向相机(50B,502)捕获的电子显示器34上渲染的渲染参加者35。电子显示器34正在显示参加者35。在大多数情况下,不期望将与图4B的图像408对应的数据包括在用于传输到远程端点(14)的馈送中。
图4C图示了由左向相机(50A,506)捕获的真实参加者65。图像411的对象409站在电子显示器34的前方。在大多数情况下,将期望在用于传输到远程端点(14)的馈送中包括与图像411对应的数据,尤其是如果参加者65正在说话的话。
图4D图示了由右向相机(50B,502)捕获的真实参加者65。图像412的对象409(65)站在电子显示器34的前方。在视频会议期间,通常将期望在用于传输到远程端点(14)的馈送中包括与图像412对应的数据,尤其是如果参加者65正在说话的话。
图5图示了捕获图4A-D的渲染参加者35和真实参加者(65)的图像数据的分析。图5示出了捕获图4C的真实参加者(65)的数据503的左向相机506。对于图4C的真实参加者65,左向相机506捕获在其他捕获点510左侧的鼻点504。右向相机502也捕获鼻点504,但是鼻点504被来自真实脸66(对应于由相机506、502捕获的真实参加者65)上的其他位置的点511包围。由左向相机506捕获的脸部特征点510所形成的图案513与由右向相机502捕获的脸部特征点511所形成的图案515不同。相反,由左向相机(506)捕获的渲染(电子显示)脸部特征点517的图案516类似于由右向相机502捕获的渲染脸部特征点519的图案518。是真正的并且在三维中存在的,真实(65)的脸部特征520在不同的平面中。在电子显示器34上渲染的脸部特征520存在于电子显示器的显示表面的单个平面中。在本公开的一个或多个示例中,确定两个点集群(例如,510、511)是对应于真实脸520(65)还是两个点集群(例如,516、518)对应于显示脸(35)可以基于集群之间的相似程度。
在本公开的至少一个示例中,人脸(600)上存在六十八个标志。检测到的标志(601)的数量可以取决于各种因素而变化,诸如由相机(506、502)捕获的脸部数据的质量、脸相对于每个相机(506、502)的角度、以及照明状况。本公开的至少一个示例包括对两个脸图片(例如,411、412)进行打分的方法。不驻留在同一条线上的三个点限定平面。显示脸(35)上的点位于通过其渲染它们的显示器34的平面中。真实脸(65)上的点位于三维空间中,并且因此形成与电子显示器(34)的平面不平行的不同平面。在可用于分析的六十八个脸部标志中,在本公开的至少一个示例中,使用五个脸部标志(603、605、504、607、609)。使用五个脸部标志(603、605、504、607、609)可以在技术上优于使用六十八个脸部标志的组内的其他脸部标志。
图6图示了根据本公开的示例的脸部标志601。脸600的脸部标志601包括右眼点603(面对相机50A-B、502、506的对象的右眼)、左眼点605、鼻点504、右嘴角点607和左嘴角点609。左眼点605、右眼点603和鼻点504限定顶平面611。鼻点504、左嘴角点609和右嘴角点607限定底平面613。顶平面611相对于底平面613是立体的。顶平面611与底平面613相交。顶平面611和底平面613彼此不同。在本公开的至少一个示例中,关键点601集群(例如,510)的对(520、522)是从左向相机506和右向相机502得到的。对(520、522)包括来自左向相机506的左眼点605和来自右向相机502的左眼点605、来自左向相机506的右眼点603和来自右向相机502的右眼点603、来自左向相机506的鼻点504和来自右向相机502的鼻点504、来自左向相机506的左嘴角点609和来自右向相机502的左嘴角点609、以及来自左向相机506的右嘴角点607和来自右向相机502的右嘴角点607。在本公开的至少一个示例中,与由左向相机捕获的顶平面和由右向相机捕获的顶平面对应的五个关键点对的映射矩阵被计算。基于映射矩阵,可以映射底平面,从而构成“映射”底平面。可以确定基于鼻点对、左嘴角对和右嘴角对的“原始”底平面。然后可以比较“原始”底平面和“映射”底平面的三个点。在本公开的至少一个示例中,可以确定“映射”底平面和“原始”底平面的交叉。“映射”底平面和“原始”底平面相交的程度可以用于确定“交叉”分数。“交叉”分数越高,由左向相机和右向相机捕获的脸是在平坦表面上显示的脸的可能性越大。“交叉”分数越大,脸越可能是“显示”脸而不是在视频会议端点处存在的人的脸。
分数计算
在本公开的至少一个示例中,考虑的关键点的数量减少到上述的五个。将脸部关键点的数量减少到五个可以提高在真正脸和显示脸之间区分的准确度。可以通过平均由左向相机和右向相机捕获的多个帧中的数据来进一步提高分析的准确度。因此,创建用于来自左向相机和右向相机所捕获的流的成对帧的比较的“分数队列”或分数阵列可以产生更可靠的结果。在本公开的至少一个示例中,可以类似地使用和/或互相参照来自一个或多个附加相机所捕获的附加流的帧。例如,三个相机可以用于生成三个顶平面(如上所述,第一相机和第二相机产生第一顶平面,第一相机和第三相机产生第二顶平面,并且第二相机和第三相机生成第三顶层平面等等)。三个平面的值可以平均以产生“第四”顶平面。我们提倡“分数队列”以利用视频流来得到更可靠的结果。
图7A图示了由左向相机捕获的显示脸。图7B图示了由右向相机捕获的来自图7A的显示脸。图7C图示了由左向相机捕获的真实脸。图7D图示了由右向相机捕获的来自图7C的真实脸。如上所述,针对图7A-D中所示的每个图像,检测脸部标志。
图7A图示了由左向相机(50A,506)捕获的电子显示器34上渲染的渲染参加者35。电子显示器34正在显示参加者35。在大多数情况下,将不期望将与图7A的图像707对应的数据包括在用于传输到远程端点(14)的馈送中。
图7B图示了由左向相机(50B,502)捕获的电子显示器34上渲染的渲染参加者35。电子显示器34正在显示参加者35。在大多数情况下,将不期望将与图4B的图像708对应的数据包括在用于传输到远程端点(14)的馈送中。
图7C图示了由左向相机(50A,506)捕获的真实参加者65。图像711的对象409站在电子显示器34的前方。在大多数情况下,将期望在用于传输到远程端点(14)的馈送中包括与图像711对应的数据,尤其是如果参加者65正在说话的话。
图7D图示了由右向相机(50B,502)捕获的真实参加者65。图像412的对象409(65)站在电子显示器34的前方。在视频会议期间,通常将期望在用于传输到远程端点(14)的馈送中包括与图像712对应的数据,尤其是如果参加者65正在说话的话。
图8A图示了与图7A的显示脸相关联的检测到的脸部标志519。在本公开的至少一个示例中,基于脸部标志519的矩阵801被计算803以用于旋转和缩放。在本公开的至少一个示例中,矩阵801可以用于标准化脸部标志点511,使得可以以有意义的方式比较其图像由不同相机捕获的那些人的脸部标志519,如下面图9A和图9B所示。标准化标志519使得能够缩放标志519,使得被比较的脸具有相同的尺度。标准化还使得能够重新定位标志519,使得每个脸的中心将具有相同的坐标。标准化标志519还使得标志519能够被旋转,使得每个图中的对象的眼睛可以与另一个对准。同样,如图8B所示,基于脸部标志的第二矩阵805被计算807以用于旋转和缩放。第二矩阵805还可以用于将脸部标志点与标准点相关联以用于存储和比较,如点集群中所示。然后比较与两个(矩阵)点集群相关联的数据,并计算点集群的各个关键点之间的距离。在本公开的至少一个示例中,选择标准大小、中心和角度以用于计算点集群的各个点。
在图8A所示的示例中,确定距离向量(760,535)、旋转度(-5.38)和缩放指数(0.55406871),从而产生以下旋转矩阵:
(矩阵1)
可以使用OpenCV SDKTM中的以下函数利用距离向量、旋转度和缩放值来计算矩阵1:
(函数1)
利用旋转矩阵(矩阵1),可以根据以下函数调用使用矩阵乘法从脸部标志生成集群中的点:
(函数2)
可以对来自图7A中的脸部标志执行相同的过程,如图8B所示。图8B图示了针对距离向量(1191,574)、旋转度(-358.73)和缩放系数(0.5645685)的第二旋转矩阵的确定,从而产生以下旋转矩阵:
(矩阵2)
图8C图示了针对脸部标志824的第三旋转矩阵822的确定820。距离向量(732,359)、旋转度(-6.22)和缩放系数(1.38812813)产生具有以下值的矩阵822:
(矩阵3)
图8D图示了针对脸部标志距离向量(604,348)、旋转度(0.0)和缩放系数(1.34736842)的第四旋转矩阵828的确定826,从而产生以下旋转矩阵:
(矩阵4)
此后,如图9A所示,组合900显示脸的左图像脸部数据801和右图像脸部数据805。对于图8A和图8B的图像,NoseTop = 18.20,RightMouthCorner = 29.33,LeftMouthCorner= 47.40,并且AVERAGE = 31.64,([47.40 + 29.33 + 18.20]/3)。
如图9B所示,组合902真实脸的左侧脸部标志数据822和右侧标志数据828。对于图8C和图8D的图像,NoseTop = 52.90,RightMouthCorner = 65.85,LeftMouthCorner:105.45,并且AVERAGE:74.73。
在本公开的至少一个示例中,利用视频中的多个帧,可以获取每个帧的AVERAGE以对(可能的)脸进行打分,使得可以通过值来区分欺骗脸和真实脸。例如,在队列中有10个AVERAGE值的情况下,可以丢弃最大值和最小值,然后平均左8个AVERAGE值以得到分数。
在本公开的至少一个示例中,来自欺骗检测步骤的分数将逐帧地放入队列中。利用分数的队列,可以消除分数的最高和最低部分,以消除异常分数。然后将剩余的分数平均以产生综合分数,其反映它是欺骗讲话者或真实讲话者的最终可能性。在本公开的至少一个示例中,针对存在欺骗的确定的由两个相机捕获的脸部数据之间的阈值百分之八十五相似性是显然的。
图10是根据本公开的示例的建立渲染脸的方法1000的流程图。方法1000包括迭代地确定1003显示监视器是否存在于由全景相机捕获的数据中。方法1000还包括迭代地确定1005由讲话者视角相机捕获的数据是否包含脸。检查1005脸部数据比检查1003显示监视器更经常。当来自全景相机的数据1007指示存在显示监视器并且来自讲话者视角相机的数据1009指示显示监视器的区域中存在脸时,存在1015欺骗状况。如果来自全景相机的数据1007指示不存在显示监视器或来自讲话者视角相机的数据1009指示不存在脸1013,则不存在欺骗1027。如果检测到1015欺骗,则检测数据被存储在欺骗队列1017中,并且在存储与欺骗一致的若干帧之后,对由两个相机捕获的对应帧的(矩阵变换的)脸部数据之间的差异进行打分1019。如果两个脸部数据集群之间的不相似程度超过阈值(例如,类似的脸部标志被不同地分散),则由相机捕获的脸对应于真正的人,并且没有发生欺骗1027。另一方面,如果来自两个相机的脸部数据之间的差异的程度不满足阈值,则发生欺骗1023。
图11是根据本公开的示例的建立真实参加者的方法1100的流程图。方法11包括:使用一个或多个光学设备捕获1102与视角对应的第一图像数据;使用处理器在视角内建立1104脸部区域;使用处理器在视角内建立1106多边形;使用处理器确定1108脸部区域至少部分地以多边形为边界;使用处理器确定1120多边形形成第一平面;使用处理器建立1122脸部区域内的多个脸部元素;使用处理器确定1124多个脸部元素形成第二平面;使用处理器确定1126第二平面与第一平面相交;使用处理器确定1128脸部区域对应于真实参加者,其中,确定脸部区域对应于真实参加者是至少部分地基于第二平面与第一平面相交的确定;使用一个或多个光学设备捕获1130与真实参加者对应的第二图像数据;在视频馈送中包括1132第二图像数据。视频馈送可以被发送到远程端点(14)。
图12图示了可以用于实践上述概念和方法的电子设备1200(诸如端点10)。本文公开的组件可以整体或部分地并入平板计算机、个人计算机、手机和利用一个或多个麦克风的其他设备中。如所示,设备1200可以包括处理单元(CPU或处理器)1220和系统总线1210。系统总线1210将各种系统组件——包括系统存储器1230,诸如只读存储器(ROM)1240和随机存取存储器(RAM)1250——互连到处理器320。处理器可以是DSP(例如,1233、1235,参见图12)。设备1200可以包括高速存储器的高速缓存1222,其直接与处理器1220连接、在处理器1220的附近或集成为处理器1220的部分。设备1200将来自存储器1230和/或存储设备1260的数据复制到高速缓存1222,以便由处理器1220快速访问。以这种方式,高速缓存提供了性能提升,其避免了处理器1220在等待数据时的延迟。这些和其他模块可以控制或被配置成控制处理器1220以执行各种动作。其他系统存储器1230也可以可用于使用。存储器1230可以包括具有不同性能特性的多种不同类型的存储器。处理器1220可以包括任何通用处理器和硬件模块或软件模块,诸如存储在存储设备1260中的模块1(1262)、模块2(1264)和模块3(1266),其被配置成控制处理器1220以及专用处理器,其中软件指令被并入实际处理器设计中。处理器1220可以基本上是完全独立的计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
系统总线1210可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任何一种的本地总线。存储在ROM 1240等中的基本输入/输出系统(BIOS)可以提供有助于诸如在启动期间在设备1200内的元件之间传送信息的基本例程。设备1200还包括存储设备1260,诸如硬盘驱动器、磁盘驱动器、光盘驱动器、磁带驱动器等。存储设备1260可以包括用于控制处理器1220的软件模块1262、1264、1266。考虑其他硬件或软件模块。存储设备1260通过驱动接口连接到系统总线1210。驱动器和相关联的计算机可读存储介质为设备1200提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。在至少一个示例中,执行功能的硬件模块包括存储在非暂时性计算机可读介质中的软件组件,其耦合到执行功能所必需的硬件组件,诸如处理器1220、总线1210、输出设备1270等。
为了解释的清楚性,图12的设备被呈现为包括各个功能块,包括标记为“处理器”或处理器1220的功能块。这些块表示的功能可以使用共享或专用硬件来提供,包括但不限于能够执行软件的硬件和诸如处理器1220的特制成操作为等效于在通用处理器上执行的软件的硬件。例如,图12中呈现的一个或多个处理器的功能可以由单个共享处理器或多个处理器提供。(术语“处理器”的使用不应被解释为专指能够执行软件的硬件。)本公开的一个或多个示例包括微处理器硬件和/或数字信号处理器(DSP)硬件、用于存储执行下面一个或多个示例中讨论的操作的软件的只读存储器(ROM)1240、以及用于存储结果的随机存取存储器(RAM)1250。还可以使用超大规模集成(VLSI)硬件组件,以及结合通用DSP电路(1233、1235)的定制VLSI电路。
本公开的示例还包括:
1. 一种在电话会议中建立真实参加者的方法,包括:使用第一光学设备捕获与第一视角对应的第一图像数据;使用处理器在第一视角内建立第一脸部区域;使用处理器确定与第一脸部区域对应的第一多个脸部元素;使用处理器确定第一多个脸部元素形成第一平面;使用第二光学设备捕获与第二视角对应的第二图像数据;使用处理器在第二视角内建立第二脸部区域;使用处理器确定与第二脸部区域对应的第二多个脸部元素;使用处理器确定第二多个脸部元素形成第二平面;使用处理器确定第一平面与第二平面相交;使用处理器至少部分地基于第一平面与第二平面相交的确定来确定第二脸部区域对应于真实参加者;和使用第二光学设备捕获与真实参加者对应的第三图像数据。
2. 示例1的方法,还包括:使用处理器在第一视角内建立多边形;和使用处理器确定第一脸部区域至少部分地以所述多边形为边界,其中,确定与第一脸部区域对应的第一多个脸部元素是响应于确定第一脸部区域至少部分地以所述多边形为边界。
3. 示例2的方法,还包括:将第三图像数据包括在视频馈送中。
4. 示例1的方法,其中:使用处理器确定第一多个脸部元素形成第一平面包括确定与第一多个脸部元素对应的第一旋转矩阵;使用处理器确定第二多个脸部元素形成第二平面包括确定与第二多个脸部元素对应的第二旋转矩阵;和使用处理器确定第一平面与第二平面相交包括计算第一旋转矩阵与第二旋转矩阵之间的相似度,并确定所述相似度低于预定阈值。
5. 示例1的方法,其中:第一多个脸部元素包括第一左眼点、第一右眼点和第一鼻点;并且第二多个脸部元素包括第二左眼点、第二右眼点和第二鼻点。
6. 示例5的方法,其中:第二多个脸部元素还包括左嘴角点和右嘴角点。
7. 示例1的方法,其中:使用处理器在第一视角内建立第一脸部区域包括确定第一脸部区域是非静态的;并且使用处理器确定与第一脸部区域对应的第一多个脸部元素是至少部分地基于第一脸部区域是非静态的确定。
8. 示例1的方法,其中,所述第一光学设备包括全景或宽视角相机。
9. 一种视频会议端点,包括:通信接口;第一光学设备和第二光学设备;处理器,耦合到通信接口、第一光学设备和第二光学设备;
存储器,存储可由处理器执行的指令,其中所述指令包括用于以下操作的指令:使用通信接口向远程端点发送视频馈送;使用第一光学设备捕获与第一视角对应的第一图像数据;在第一视角内建立第一脸部区域;确定与第一脸部区域对应的第一多个脸部元素;确定第一多个脸部元素形成第一平面;使用第二光学设备捕获与第二视角对应的第二图像数据;在第二视角内建立第二脸部区域;确定与第二脸部区域对应的第二多个脸部元素;确定第二多个脸部元素形成第二平面;确定第一平面与第二平面平行;至少部分地基于第一平面与第二平面平行的确定来确定第二脸部区域对应于渲染参加者;和排除与渲染参加者对应的第三图像数据以免包括在视频馈送中。
10. 示例9的视频会议端点,其中所述指令还包括用于以下操作的指令:在第一视角内建立多边形;和确定第一脸部区域至少部分地以所述多边形为边界,并且其中,确定与第一脸部区域对应的第一多个脸部元素的指令还包括响应于确定第一脸部区域至少部分地以所述多边形为边界的指令。
11. 示例10的视频会议端点,其中所述指令还包括使用所述第一光学设备捕获第三图像数据并检查第三脸部区域的存在的指令。
12. 示例9的视频会议端点,其中:确定第一多个脸部元素形成第一平面的指令包括确定与第一多个脸部元素对应的第一旋转矩阵的指令;确定第二多个脸部元素形成第二平面的指令包括确定与第二多个脸部元素对应的第二旋转矩阵的指令;并且确定第一平面与第二平面相交的指令包括计算第一旋转矩阵和第二旋转矩阵之间的相似度并确定所述相似度低于预定阈值的指令。
13. 示例9的视频会议端点,其中:第一多个脸部元素包括第一左眼点、第一右眼点和第一鼻点;并且第二多个脸部元素包括第二左眼点、第二右眼点和第二鼻点。
14. 示例13的视频会议端点,其中:第二多个脸部元素还包括左嘴角点和右嘴角点。
15. 示例9的视频会议端点,其中:在第一视角内建立第一脸部区域的指令包括确定第一脸部区域是非静态的指令;并且确定第一多个脸部元素对应于第一脸部区域的指令包括至少部分地基于第一脸部区域是非静态的确定来确定第一多个脸部元素对应于第一脸部区域的指令。
16. 示例9的视频会议端点,其中,所述第一光学设备包括全景或三百六十度相机。
17. 一种存储可由处理器执行的指令的非暂时性计算机可读介质,所述指令包括用于以下操作的指令:使用第一光学设备捕获与第一视角对应的第一图像数据;在第一视角内建立第一脸部区域;确定与第一脸部区域对应的第一多个脸部元素;确定第一多个脸部元素形成第一平面;使用第二光学设备捕获与第二视角对应的第二图像数据;在第二视角内建立第二脸部区域;确定与第二脸部区域对应的第二多个脸部元素;确定第二多个脸部元素形成第二平面;确定第一平面与第二平面相交;至少部分地基于第一平面与第二平面相交的确定来确定第二脸部区域对应于真实参加者;和使用第二光学设备捕获与真实参加者对应的第三图像数据。
18. 示例17的非暂时性计算机可读介质,所述指令还包括用于以下操作的指令:在第一视角内建立多边形;和确定第一脸部区域至少部分地以所述多边形为边界,响应于确定第一脸部区域至少部分地以所述多边形为边界而确定与第一脸部区域对应的第一多个脸部元素。
19. 示例18的非暂时性计算机可读介质,所述指令还包括使用通信接口将第三图像数据发送到远程端点的指令。
20. 示例17的非暂时性计算机可读介质,确定第一多个脸部元素形成第一平面的指令包括确定与第一多个脸部元素对应的第一旋转矩阵的指令;确定第二多个脸部元素形成第二平面的指令包括确定与第二多个脸部元素对应的第二旋转矩阵的指令;并且确定第一平面与第二平面相交的指令包括计算第一旋转矩阵和第二旋转矩阵之间的相似度并确定所述相似度低于预定阈值的指令。
21. 示例17的非暂时性计算机可读介质,其中:第一多个脸部元素包括第一左眼点、第一右眼点和第一鼻点;并且第二多个脸部元素包括第二左眼点、第二右眼点和第二鼻点。
以上描述的各种示例仅以说明的方式提供,且不应解释为限制本公开的范围。在不脱离本公开的范围且不脱离以下权利要求的情况下,可以对本文描述的原理和示例进行各种修改和改变。