视频会议中的背景修改
1.本技术是申请号为201680028853.3的中国专利申请的分案申请,原申请的申请日为2016年03月18日,优先权日为2015年03月18日,进入中国国家阶段的日期为2017年11月17日,发明名称为“视频会议中的背景修改”。
2.优先权要求
3.本技术要求2016年1月4日提交的美国申请第14/987,514号的优先权,美国申请第14/987,514号是2015年3月18日提交的美国申请第14/661,367号的延续,它们中的每一者的全部内容通过引用并入本文。
技术领域
4.本公开一般地涉及视频会议,并且更具体地,涉及用于基于识别和跟踪视频中的参与者来修改视频流中的场景背景的系统和方法。
背景技术:5.如今,视频会议和视频电话呼叫是用于执行长距离双向视频和音频通信的流行工具。由于高速网络解决方案的出现、廉价的硬件组件和蜂窝网络的部署,这项技术已经迅速发展。通常,视频会议允许两个或更多个体使用多种软件应用(诸如,视频聊天应用)彼此进行通信,其中参与者能在交谈的同时看见彼此。视频聊天能够作为可下载软件应用或web服务在通用计算机、移动设备和电视系统上使用。传统视频会议每一方的硬件要求包括:输入音频模块(例如,话筒)、输入视频模块(例如,摄像机)、输出音频模块(例如,扬声器)、输出视频模块(例如,显示器或投影机)、以及计算设备,所述计算设备将输入输出模块绑定在一起、压缩和解压缩音频和视频流、以及经由通信网络发起和保持数据链接。
6.尽管视频会议解决方案已经存在很多年了,但视频流仍会存在问题,特别是在拥塞网络的情况下。当特定网络中的服务质量(qos)显著下降时,视频会议在及时传送视频方面遇到困难,这可能引起不希望的中断或音频和视频质量的显著劣化。因此,在本领域中仍然需要改进视频会议技术。
技术实现要素:7.通常,本公开涉及用于视频会议的技术,所述技术跟踪个体的面部,并且以比剩余视频图像更高的质量来传送具有与面部关联的图像部分的视频流。在各种实施例中,所述技术允许修改场景背景(例如,通过模糊)并且使与面部关联的前景保持初始质量。最终,因为经修改的视频具有更低的数据率,所以这导致视频会议所需的网络要求的降低。根据网络拥塞情况,此技术允许改进视频会议解决方案、降低视频流中的中断次数、并且防止视频流劣化。
8.根据所述技术的一个方面,提供一种用于实时视频处理的计算机实现的方法。所述方法可以包括:接收包含一系列图像的视频;识别一个或多个所述图像中的至少一个感兴趣的对象;检测所述至少一个感兴趣的对象的特征参考点;以及跟踪所述视频中的所述
至少一个感兴趣的对象。所述跟踪可以包括创建虚拟面部网格(本文为了简单,也称为“网格”)和/或基于所述特征参考点将所述网格对准一个或多个所述图像中的所述至少一个感兴趣的对象。此外,所述方法继续以便:通过基于所述网格从每个图像中分离出所述至少一个感兴趣的对象,识别一个或多个所述图像中的背景;修改每个所述图像中的背景以生成经修改的背景;以及生成包括所述至少一个感兴趣的对象和所述经修改的背景的经修改的视频。
9.在一些实施例中,在所述经修改的视频中,所述经修改的背景具有第一图像质量,并且在所述经修改的视频中,所述至少一个感兴趣的对象具有第二图像质量,其中所述第一图像质量低于所述第二图像质量。
10.在某些实施例中,识别所述背景的步骤可以包括选择不包括与所述网格关联的像素的图像部分。修改所述背景可以包括以下一个或多个步骤:模糊化;改变一个或多个背景颜色;改变背景分辨率;改变视频点密度;改变色调分离;以及改变所述背景的像素化。在一些实施例中,所述背景的修改可以包括用预定图像替换所述背景或所述背景的一部分。
11.在一些实施例中,所述至少一个感兴趣的对象包括至少个体的除人脸以外的部位。在其他实施中,所述至少一个感兴趣的对象包括人脸。
12.在某些实施例中,所述特征参考点能包括面部标记。在某些实施例中,所述特征参考点是至少一个指示以下项的点:眉毛竖直位置、眼睛竖直位置、眼睛宽度、眼睛高度、眼睛间距、鼻子竖直位置、鼻子向上、嘴竖直位置、嘴宽度、颏宽度、上唇提起、颌落下、嘴唇延伸、左眉降下、右眉降下、嘴角下撇、以及外侧眉毛提起。
13.根据附加实施例,所述方法可以进一步包括压缩所述背景的步骤。所述方法可以进一步包括通过通信网络传送所述经修改的视频的步骤。在其他实施例中,所述方法可以进一步包括接收用于对所述视频的所述背景进行模糊的请求的步骤。
14.在一些实施例中,所述方法可以进一步包括:监视与通信网络关联的qos;以及基于所述监视,生成用于对所述视频的所述背景进行模糊的请求。在其它实施例中,所述方法可以进一步包括:动态地监视与通过通信网络传输所述视频相关联的网络参数;以及在所述网络参数低于预定阈值的情况下,生成用于对所述视频的所述背景进行模糊的请求,或者在所述网络参数高于所述预定阈值的情况下,生成用于传送未经模糊的所述视频的请求。所述网络参数可以包括比特率或网络带宽。
15.在某些实施例中,修改所述背景包括对所述背景进行渐进模糊,其中所述渐进模糊的程度取决于所述网络参数。在某些实施例中,识别所述至少一个感兴趣的对象的步骤可以包括对所述图像应用维奥拉-琼斯(viola-jones)算法。检测所述特征参考点的步骤可以包括对所述图像的与所述至少一个感兴趣的对象关联的区域应用主动形状模型(asm)算法。
16.在某些实施例中,所述方法可以包括以下步骤:动态地确定与通信网络所关联的qos相关的值;基于所述确定,在与所述服务质量关联的值在第一预定范围内的情况下,生成用于仅对所述视频的所述背景进行模糊的第一请求;在与所述qos关联的值在第二预定范围内的情况下,生成用于对所述视频的所述背景和所述视频的不包括用户面部的其他部分进行模糊的第二请求;以及在与所述qos关联的值在第三预定范围内的情况下,不生成用于对所述背景进行模糊的请求。此处,所述第一范围与所述第二范围和所述第三范围不同,
并且所述第二范围与所述第三范围和所述第一范围不同。
17.在更多的实施例中,识别所述背景的步骤可以包括:形成与所述至少一个感兴趣的对象关联的二元掩模;将所述二元掩模对准到每个图像上的所述网格;以及通过反转所述二元掩模创建经反转的二元掩模。形成所述二元掩模可以包括:确定每个所述图像中的多个图像段的灰度值强度,其中所述多个图像段与所述网格相关联;通过将每个所述图像段的灰度值强度与参考值相比较,确定与所述感兴趣的对象关联的目标像素;对所述目标像素应用二元形态闭合算法(binary morphological closing algorithm);以及从所述网格中移除多余的像素集合体(conglomerate)。将所述二元掩模对准所述网格可以包括:将所述网格投影到参考栅格(reference grid)上,由此将所述网格分成多个参考栅格单元;将与参考栅格单元对应的网格元素相关联;以及确定每个所述图像的与所述虚网格元素对应的像素。
18.在一些实施例中,所述方法可以进一步包括修改一个或多个所述图像中与所述至少一个感兴趣的对象关联的图像部分。修改与所述至少一个感兴趣的对象关联的所述图像部分能够基于所述特征参考点。修改与所述至少一个感兴趣的对象关联的所述图像部分可以包括改变颜色、色调、比例以及分辨率中的至少一者。
19.在一些实施例中,所述方法可以包括以下步骤:基于所述至少一个感兴趣的对象的识别和所述参考特征点,确定头部的位置;基于所述头部的位置确定身体的位置;在所述一系列图像上跟踪所述身体的位置。对所述背景进行模糊或修改能够基于所述身体的位置。例如,如果基于所述图像跟踪身体不可行,但基于所述图像跟踪用户面部可行,则能够基于身体位置的近似对背景进行模糊。
20.根据所述技术的另一方面,提供一种系统。一个示例系统包括包含至少一个处理器和存储处理器可执行代码的存储器的计算设备,当由所述至少一个处理器实施时,所述处理器可执行代码导致执行上述方法步骤。
21.根据所述技术的另一方面,提供其上存储有指令的非暂时性处理器可读介质,当由一个或多个处理器执行时,所述指令导致所述一个或多个处理器执行上述方法步骤。
22.附加的目的、优点和新颖特征将部分地在下面的详细描述中阐述,并且在检查以下详细描述和附图之后将部分地变得对本领域技术人员显而易见,或者可以通过示例实施例的生产或操作来了解。上述概念的目的和优点可以通过所附权利要求中特别指出的方法,手段和组合来实现和获得。
附图说明
23.在附图的各图中通过示例而非限制的方式示出了实施例,其中相同的附图标记表示相似的元件,这些附图是:
24.图1a示出了第一示例系统环境的高级框图;
25.图1b示出了第二示例系统环境的高级框图;
26.图2示出了第三示例系统环境的高级框图;
27.图3示出了第四示例系统环境的高级框图;
28.图4是示出了适用于实现本文描述的用于视频处理的方法的示例系统的高级框图;
29.图5示出了具有多个标记(参考特征点)的面部的示例图像;
30.图6示出了对应于candide-3模型的示例性网格;
31.图7a示出了示例平均面部(mean face);
32.图7b示出了在图8示出的网格的当前状态下的示例观察;
33.图8示出了具有面部和对准面部的网格的示意性图像;
34.图9示出了用于实时视频处理的第一示例性方法的过程流程图;
35.图10示出了用于实时视频处理的第二示例性方法900的过程流程图;
36.图11a示出了根据一个示例实施例的包括视频会议参与者的面部的初始视频图像;
37.图11b示出了根据一个示例实施例的使用如本文所述的用于视频处理的方法修改的视频图像;
具体实施方式
38.以下具体实施方式包括对构成具体实施方式一部分的附图的参考。图示出了根据示例实施例的例示。用足够的细节描述这些示例实施例(本文也称为(“示例”)以便使本领域的技术人员能实践本主题。
39.可以组合实施例,可以使用其他实施例,或者可以在不脱离所要求保护的范围的情况下进行结构,逻辑和操作的改变。因此,以下具体实施方式不应被认为是限制性的,并且范围由所附权利要求及其等同物限定。
40.本教导可以用各种技术实现。例如,本文描述的方法可在计算机系统上执行的软件中或在利用微处理器或其他特别设计的专用集成电路(asic)、可编程逻辑器件的组合或它们的各种组合的硬件中实现。特别是,本文描述的方法可以由驻留在暂时性或非暂时性存储介质(诸如磁盘驱动器或计算机可读介质)上的一系列计算机可执行指令实现。应该注意的是,本文公开的方法能由服务器、网络设备、通用计算机(例如,台式电脑、平板电脑、便携式电脑)、游戏机、手持游戏设备、蜂窝电话、智能电话、电视系统、车载计算机设备等实现。
41.1.引言
42.本技术提供用于视频会议的方法和系统,其允许识别和跟踪在捕获的视频图像中出现的个体的面部,以及修改视频以使得除了面部以外的视频图像部分具有更低的质量。这能通过对场景背景进行模糊来完成,尽管其他过程也能被使用(诸如降低背景分辨率或压缩背景)。
43.本文使用的术语“视频会议”与电信技术相关,视频会议允许两人或更多人通过同时的双向视频和音频传输进行通信。包括传送多个视频图像的视频传输也被称为视频帧。在本公开中,术语“视频会议”涵盖其他类似的术语,包括“视频电话呼叫”、“可视电话”、“视频电话会议”、以及“视频聊天”等。
44.本技术最终对改善在拥塞的网络环境中的视频会议体验有益,尤其是,当网络qos暂时或永久地被降低时。所述技术也允许降低在视频会议中的中断的数量,以及通过对场景背景进行模糊来保护隐私。
45.如以下详细讨论的,本技术的核心要素是在视频图像中定位和跟踪背景,并且进
一步修改背景,方式为:图形化地改变背景(例如,通过模糊)或改变背景的质量(通过降低背景的分辨率、视频点密度、色带),或选择性地压缩、改变色调分离、改变像素化、平滑化等。在一些实施例中,能用预定图像完全替换背景,所述预定图像能被存储在本地存储器中或由视频会议参与者选择。在电话会议期间,由于个体的移动,场景背景通常在视频帧之间改变。因此,准确识别每个视频帧的背景是本技术中的关键要素之一。
46.根据本公开的各种实施例,能针对每个视频帧识别场景背景,方式为:(a)识别视频图像中的个体;以及(b)考虑除了所识别的个体以外的整个图像区域。能够使用各种视频处理算法来识别和跟踪个体。例如,能够使用维奥拉-琼斯算法(目标是在视频图像中定位面部)和asm算法(其旨在检测与面部关联的特征参考点)的组合来识别个体面部。一旦人脸被定位,能创建基于特征参考点的网格并使其对准到视频图像中的个体。此外,选择除了网格之外的整个视频图像区域构成了场景背景。此外,能用任何期望的方式修改背景,诸如通过模糊化、平滑化、改变分辨率以及降低视频点密度(即每英寸点数(dpi)),使得场景背景的图像质量与面部相比被降低,这最终导致数据率下降。也能用预定图像替换背景。在一些实施例中,也能图形化地修改所定位的前景或个体的面部。例如:能平滑化或锐化前景或个体的面部;能改变他(它)们的颜色;或能做出任何其他修改。
47.如本文所述的此视频处理能对实时视频流实现或能被应用于先前所存储的视频文件(包括渐进式下载解决方案)。另外,在一些实施例中,视频处理独立地应用于每个视频图像,而在其他实施例中,视频处理能应用于整体视频。还应注意,视频处理步骤能在客户端侧或服务器侧或两者上实现,具体取决于特定系统架构。
48.根据本公开的各种实施例,能响应于用户请求或响应于检测预定事件而启动背景修改。例如,本技术可以动态地监视一个或多个网络参数,例如qos、比特率或网络带宽。当这些参数中的一个参数下降到预定阈值以下时,能够启动背景修改以降低与视频流关联的数据率。
49.在一些实施例中,背景修改的程度能取决于当前网络参数。例如,网络条件越差,背景的质量越低,反之亦然。换句话说,对背景进行模糊、平滑、解析以及压缩的程度可以取决于当前网络参数。注意,在这种情况下,当网络条件改善时,能降低背景修改的程度或者保持背景完全未被修改。在附加实施例中,前景修改的程度(当需要时)也能取决于当前网络参数。
50.在本公开的更多实施例中,修改背景能包括多个步骤。例如,除了对背景进行模糊之外,还能改变背景分辨率。备选地,背景在被模糊之后也能被压缩。在其他示例中,在进行模糊之后,除其他处理外,背景能被像素化或能被改变颜色。应理解,背景修改程序的任何组合能包括两个、三个或更多独立处理。
51.也应注意,本技术也能修改视频图像的与所识别的个体相关的部分。例如,能用任何期望的方式修改个体面部的颜色参数、形状、或比例。在又一实施例中,能用预定图像或掩模来替换个体面部。在其他示例中,能对视频图像的与个体面部相关的部分进行平滑。
52.2.计算环境
53.通常,能够使用在客户端侧和服务器侧中的一者或两者上运行的一个或多个软件应用来实现视频会议。在一些实施例中,视频会议可以作为web服务或作为“云”解决方案实现,意味着视频会议可以经由网站或web界面对于会议参与者可用。
54.图1a示出了适合实践本技术的第一“点对点”示例系统环境100a的高级框图。如图所示,至少存在两个客户端设备110,每个客户端设备110属于处于不同位置的独立个体。客户端设备110指(但不限于)用户设备、终端、计算设备(例如,便携式电脑、平板电脑、台式电脑)、蜂窝电话、智能电话、个人数字助理(pda)、游戏机、远程控制、多媒体系统、电视系统、机顶盒、信息娱乐系统、车载计算设备、信息服务亭等。
55.每个客户端设备110具有视频聊天应用120。视频聊天应用120通常被配置为使能第一和第二用户之间的视频会议,并且提供如本文所述的视频处理。为此,每个视频聊天应用120包括视频处理模块130,视频处理模块130被配置为在每个视频图像中修改背景场景以降低视频的数据率。所述修改能包括模糊化;压缩;改变分辨率、像素、视频点密度、色带;色调分离;或像素化等。修改程度能可选地取决于当前网络参数。视频聊天应用120能作为软件、中间件或固件实现,能作为独立的应用或能构成更大软件应用的一部分。
56.如图所示,客户端设备110连接成点对点(p2p)网络,从而允许它们彼此直接进行视频电话会议。使用例如tcp/ip(传输控制协议/网际协议)网络通信标准,能够直接交换节点之间的数据。在一些实施例中,p2p网络能包括多于三个客户端设备110。
57.图1b示出了适合实践本技术的第二示例系统环境100b的高级框图。如图所示,经由通信网络140执行客户端设备110间的通信。在各种实施例中,通信网络140可以包括互联网、内联网、蜂窝网、局域网、广域网、基于电气与电子工程师协会(ieee)802.11的网络、蓝牙无线等中的一者或多者。与上述类似,能够使用例如tcp/ip网络通信标准实现客户端设备110间的视频电话会议。
58.图2示出了适合于实践本技术的第三示例系统环境200的高级框图。在此实施例中,提供包括视频处理模块130的服务器210,然而在客户端设备110上的视频聊天应用没有视频处理模块130。因此,本文所述的背景修改和其他视频处理方法在服务器210上实现。在视频聊天应用120与视频处理模块130之间的通信能包括使用应用编程接口(api)代码。
59.在一些实施例中,在客户端设备110之间的视频流能经由服务器210进行,使得客户端设备110负责音频和视频捕获、音频和视频传送以及数据传输。在其它实施例中,服务器210仅提供背景修改,而客户端设备110实现剩余的通信任务。
60.图3示出了适合于实践本技术的第四示例系统环境300的高级框图。在此示例中,客户端设备110仅包括web浏览器,由此允许用户访问由web托管服务器310托管的预定网站。在此实施例中,视频聊天应用120位于服务器210处并作为与web托管服务器310所托管的网站关联的web服务实现。因此,如本文所述的视频处理和背景修改完全在服务器侧执行。
61.3.系统架构和过程概述
62.图4是示出了适合于实现本文描述的用于视频处理的方法的示例系统400的高级框图。具体地,系统400指示例性客户端设备110。注意,系统400的所有组件可以包括:逻辑元件、硬件组件、软件(固件)组件、虚拟组件或它们的组合。系统400可以包括、涉及或构成一个或多个各种类型的设备和系统(诸如,通用计算机、网络设备、服务器、web服务、apache服务器、云计算服务等)的重要部分。此外,所有在图4中示出的模块可以用任何适当的有线、无线、无线电、电气或光学标准可操作地耦合。
63.如图所示,系统400包括以下硬件组件:至少一个处理器402、存储器404、至少一个
存储设备406、至少一个输入模块408、至少一个输出模块410、以及网络接口412。系统400还包括可选操作系统414和视频聊天应用416。
64.在各种实施例中,处理器402被配置为实现功能和/或处理在系统400中执行的指令。例如,处理器402可以处理存储在存储器404中的指令和/或存储在存储设备406上的指令。这些指令可以包括操作系统410和视频聊天应用416的组件。系统400可以包括多个处理器402,诸如中央处理单元(cpu)和图形处理单元(gpu),它们能彼此共享操作任务。
65.存储器404被配置为在操作期间存储系统400中的信息。在一些示例实施例中,存储器404指非暂时性计算机可读存储介质或计算机可读存储设备。在一些示例中,存储器404是暂时存储器,意味着存储器404的首要目的可能不是长期存储。存储器404还可以指易失性存储器,意味着当存储器404不通电时存储器404不保持存储内容。易失性存储器示例包括随机存取存储器(ram),动态随机存取存储器(dram)、静态随机存取存储器(sram)和本领域已知的其他形式的易失性存储器。在一些示例中,存储器404用于存储程序指令以便由处理器402执行。存储器404还可以用于在执行程序期间暂时存储信息。
66.存储设备406能包括一个或多个暂时性或非暂时性计算机可读存储介质和/或计算机可读存储设备。在一些实施例中,存储设备406可以被配置为存储比存储器404更大量的信息。存储设备406可以被进一步配置为长期存储信息。在一些示例中,存储设备406包括非易失性存储元件。这些非易失性存储元件的示例包括磁性硬盘、光盘、固态盘、闪存、电可编程存储器(eprom)或电可擦除可编程存储器(eeprom)以及本领域已知的其他形式的非易失性存储器。
67.仍参照图4,系统400包括一个或多个用于接收用户输入的输入模块408和一个或多个用于向用户传送数据的输出模块410。输入模块408可以包括键盘、轨迹球、触摸屏、话筒、摄像机或web相机等。输出模块410可以包括通过视觉或音频通道传送数据的任何适当的设备(包括显示器、监视器、打印机、触摸屏、扬声器等)。
68.系统400进一步包括网络接口412,网络接口412被配置为经由一个或多个通信网络140与外部设备、服务器以及网络系统进行通信。网络接口412可以是网络接口卡(诸如以太网卡)、光收发机、射频收发机或任何其它能发送和接收信息的设备。这些网络接口的其他示例可以包括他示例可以包括3g(第三代)、4g(第四代)、lte(长期演进)、以及无线电。在一些实施例中,网络接口412也能被配置为测量各种网络参数,诸如qos、比特率、网络带宽等。
69.操作系统414可以控制系统400或系统400的组件的一个或多个功能。例如,操作系统414可以与视频聊天应用416互动并且可以进一步促进视频聊天应用和处理器402、存储器404、储存设备406、输入模块408、输出模块410和/或网络接口412之间的互动。视频聊天应用416被配置为通过实现与另一个客户端设备的双向音频和视频通信来提供视频会议服务。视频聊天应用416也被配置为实现如本文所述的视频处理方法,诸如对背景进行模糊。
70.相应地,图4示出了用于视频会议的典型系统,所述系统可以如下运行。例如,视频图像被从相机(输入模块408)输入视频聊天应用416,并且然后被输入到视频处理模块418以对场景背景进行模糊。此外,具有经模糊的背景的视频图像(即经修改的视频)能由编码器/解码器420编码,并且经由网络接口412传送到其他视频会议参与者。使用相似系统400的进行接收的参与者通过网络接口412接收经修改的视频、用编码器/解码器420解码经修
approach),通过对特征值λi进行排序以及在φ中保持适当数量的对应特征向量,使模型具有如所期望的那样多的变化。在此过程中,单一的形状模型用于整体asm,但单一的形状模型可以针对每个金字塔层进行缩放。
81.此外,方程(2)用于通过改变向量参数b生成各种形状。通过保持b元素在极限(在建立模型期间确定)内,可以确保生成逼真的面部形状。
82.相反地,给定建议的形状x,所述方法能计算允许方程2用模型形状更好地近似x的参数b。所述方法能进一步使用迭代算法使
[0083][0084]
最小化,其中t是将模型空间映射成图像空间的相似变换。
[0085]
在一个或多个实施例中,基于candide-3顶点到由asm定位的参考特征点的加权组合的映射,能够估计candide-3形状和初始状态。candide-3是针对基于模型的人脸编码专门开发的参数化的三维面部网格。candide-3包括少量多边形(约100)并且允许快速重建。candide-3由形状单元(su)、动作单元(au)和位置向量控制。su控制网格形状从而能获得不同的面部形状。au控制面部模拟从而能获得不同的表情。位置向量与绕三个(正交)轴的旋转和沿所述轴的平移对应。
[0086]
假设在图像中观察到的面部是从正面观看的,则在三个旋转参数中仅需要偏转(yaw)评估。能够发现偏转是从x轴的正向到将右眼中心特征点与左眼中心特征点相连的向量的角度。能创建以下方程组,假设观察到的面部是中立的并且在图像中是从正面观看的,并且网格点通过缩放后的正投影
[0087][0088]
被投影在像平面上,其中是旋转矩阵,与发现的偏转θ对应,bj是第j个su强度;x、y、z是网格平移坐标;xi和yi是第i个网格顶点模型坐标;xi和yi是作为参考特征点的加权组合获得的第i个网格顶点图像坐标;并且xij、yij是代表由第j个su如何改变第i个网格顶点模型的系数。基于上文,可以进行以下最小化:
[0089][0090]
此线性方程组的解是
[0091]
b=(x
t
x)-1
x
t
x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0092]
其中,
[0093][0094]
在一些实施例中,维奥拉-琼斯算法和asm算法能用于改进跟踪质量。在某些环境(例如,快速移动和/或光照改变)下,面部跟踪过程会丢失面部位置。在本技术中为了重新初始化跟踪算法,在这些情况下应用asm算法。
[0095]
5.面部跟踪
[0096]
根据本公开的各种实施例,跟踪所识别的面部是在识别视频图像中的面部之后的重要步骤。因为个体能在每个视频图像中移动,所以背景也随着个体的移动而改变。面部跟踪允许跟踪针对每个视频图像(帧)的背景修改以随后使能背景的修改。
[0097]
candide-3模型能够用于面部跟踪。参见ahlberg,candide-3-an updated parameterized face,technical report,university,sweden,2001。图6示出了与根据图5中示出的面部创建的candide-3模型对应的示意性网格。
[0098]
在一个或多个实施例中,candide-3模型的状态能由su的强度向量、au的强度向量和位置向量来描述。su指头部和面部的各种参数。例如能使用以下su:眉毛竖直位置、眼睛竖直位置、眼睛宽度、眼睛高度、眼睛间距、鼻子竖直位置、鼻子向上、嘴竖直位置、嘴宽度、以及颏宽度。au指与各种面部模拟对应的面部参数。例如能使用以下au:上唇提起、颌落下、嘴唇延伸、左眉降下、右眉降下、嘴角下撇、以及外侧眉毛提起。
[0099]
网格状态(例如在图6中示出的一个网格状态)能用六个坐标(偏转、俯仰、滚动、x、y、z(缩放))来描述。遵循dornaika等人的方法,能够通过观察最可能是面部的区域来确定网格状态。参见dornaika f.&davoine f.,on appearance based face and facial action tracking.ieee trans.circuits syst.video technol.16(9):1107-1124(2006))。针对每个网格位置能够计算观察误差。观察误差指表示在当前网格状态下的图像与平均面部之间的差异的值。图7a示出了示例平均面部。图7b示出了在图8中示出的网格的当前状态下朝向标准candide-3状态观察扭曲的示例。更具体地说,图8示出了具有面部和对准面部的网格810的示意性图像800。
[0100]
在一个或多个实施例中,作为具有固定尺寸(例如,宽=40px、高=64px)的图片建模的面部被称为平均面部。在一个或多个实施例中,观察过程能够被实现为从当前candide-3状态朝向其标准状态的扭曲过程,并且被记为
[0101]
x(b)=w(y,b),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0102]
其中x表示具有与平均面部相同的尺寸的观察图像,y表示输入图像,并且b表示candide-3的au强度以及状态参数。在原始算法中提出的高斯分布已经示出了比静态图像
更差的结果。因此,在当前观察与平均面部之间的差异能被计算如下:
[0103]
e(b)=σ(log(1+im)-log(1+ii))2ꢀꢀꢀ
(9)
[0104]
对数函数能使跟踪更稳定和可靠。在一个或多个实施例中,使用taylor级数能使误差最小化。梯度矩阵由下式给出
[0105][0106]
导数能被计算为:
[0107][0108]
其中qj是除了第j个元素等于1以外所有元素为0的向量。
[0109]
在此,g
ij
是矩阵g的元素。此矩阵的大小为m*n,其中m大于n(例如,m大约是1600并且n大约是14)。在直接计算的情况下,必须完成n*m次除法运算。为了减少除法次数,此矩阵能被改写为两个矩阵的乘积:g=a*b。在此,矩阵a与g具有相同大小。矩阵a的每个元素能被表示为:
[0110]aij
=w(y,b+δjqj)
i-w(y,b-δjqj)iꢀꢀꢀ
(12)
[0111]
矩阵b是大小为n*n的对角矩阵,并且它的元素能被表示为如下:
[0112]bii
=(2δi)-1
.
[0113]
矩阵g
+
能被如下计算,这最终减少除法次数:
[0114]g+
=(g
t
g)-1gt
=(b
tat
ab)-1btat
=b-1
(a
t
a)-1
b-tbtat
=b-1
(a
t
a)-1at
ꢀꢀꢀꢀ
(13)
[0115]
此变换允许进行n3次除法而不是m*n+n3次除法。
[0116]
在此方法中能使用再一种优化。如果创建矩阵g
+
并且然后乘以δb,这导致n2m次运算,但是如果第一a
t
乘以δb并且然后乘以b-1
(a
t
a)-1
,则仅有n*m+n3次运算,这要好得多,因为n《《m。
[0117]
因此,视频中的面部跟踪包括:candide-3形状和基于所定位的与特定面部关联的参考特征点的初始状态评估;以及使网格对准每个视频图像中的面部。值得注意的是,此过程不仅能应用于面部,还能应用于其它个人部位。换句话说,此定位和跟踪视频会议参与者的过程可以包括定位和跟踪参与者的面部、身体、肢体和/或其它部位中的一者或多者。在一些实施例中,还能应用手势检测和跟踪过程。在这种情况下,所述方法可以创建虚拟骨架和对准这些身体部位的网格。
[0118]
还应当注意的是,arm高级simd(单指令多数据)扩展(也称为“neon”,其由arm有限公司提供)能够用于矩阵乘法以便提高跟踪性能。此外,只要可能,除了cpu(中央处理单元)之外或代替cpu(中央处理单元),还能够使用gpu(图形处理单元)。能用特定的方式安排运算以便gpu获得更高的性能。
tomasi(klt)算法、camshift算法或其它计算机视觉方法。
[0129]
在一些其他实施例中,在一个或多个图像中识别至少一个感兴趣的对象能够基于用户输入。例如,用户输入能包括与涉及至少一个感兴趣的对象的图像区域相关联的数据。
[0130]
在操作920,计算设备检测至少一个感兴趣的对象(例如面部)的特征参考点。特征参考点能包括多种面部标记,诸如但不限于,鼻翼(ala)、人中、唇红区域、唇红边界、鼻唇沟、唇角、唇珠、鼻根、外眼角、内眼角、耳屏、眉毛竖直位置、眼睛竖直位置、眼睛宽度、眼睛高度、眼睛间距、鼻子竖直位置、鼻子向上、嘴竖直位置、嘴宽度、颏宽度、上唇提起、颌落下、嘴唇延伸、左眉降下、右眉降下、嘴角下撇、以及外侧眉毛提起。如上所述,特征参考点能使用asm或扩展asm算法被确定。然而,也能使用其他面部标记定位程序,包括但不限于基于示例的图形匹配(egm)算法、一致示例算法(consensus-of-exemplars algorithm)等。
[0131]
在操作925,计算设备可选地创建虚拟面部网格(为了简单也称为“网格”)或使用预定网格,并至少部分地基于特征参考点,将网格对准至少一个感兴趣的对象(例如面部)。针对一些图像或每个视频图像单独执行此程序,这最终允许在视频中动态地跟踪面部。如上所述,能应用candide-3模型以创建或对准网格。candide-3是用于基于全局或局部au的计算而生成参数化面部网格(掩模)的程序。
[0132]
在操作930,计算设备识别或检测每个视频图像中的背景。通常,能用各种过程识别背景。在一个示例实施例中,通过基于网格从每个图像中分离出至少一个感兴趣的对象来识别背景。在另一示例实施例中,通过选择视频图像的位于网格以外的部分来识别背景。换句话说,通过选择不包括与网格关联的像素的图像部分(对于每个视频图像)来识别背景。
[0133]
在又一示例实施例中,通过以下过程识别背景,包括:(a)形成与至少一个感兴趣的对象关联的二元掩模;(b)将二元掩模对准每个图像上的网格;以及(c)通过反转二元掩模创建经反转的二元掩模。
[0134]
二元掩模能被如下形成:第一,计算设备确定每个图像中的多个图像段的灰度值强度(或平均灰度值强度),其中多个图像段与网格关联;第二,计算设备通过将每个图像段的灰度值强度与参考值相比较,确定与感兴趣的对象关联的目标像素;第三,计算设备对目标像素应用二元形态闭合算法;第四,计算设备从网格中移除多余的像素集合体。
[0135]
二元掩模能例如按以下方式对准网格:第一,计算设备将网格投影到参考栅格,由此将所述网格分成多个参考栅格单元;第二,计算设备将与参考栅格单元对应的网格元素相关联;第三,计算设备确定与网格元素对应的每个图像的像素。此确定能通过应用广度优先搜索(bfs)算法进行。
[0136]
继续参考图9,在操作935,计算设备修改每个视频图像中的所识别的背景。修改能包括模糊化,例如高斯平滑(gaussian smoothing)或镜头模糊(lens blurring)算法。然而,也能使用其他修改,诸如改变背景分辨率、改变视频点密度、改变颜色、改变色带、压缩、编码、改变色调分离、以及改变像素化。在一些实施例中,能用预定图像替换背景(为了视频会议参与者的隐私)。修改的程度能够取决于当前网络参数。例如,网络比特率越小,模糊化或对所识别的背景应用的其它修改方法的程度越高,并且反之亦然。
[0137]
如上所述,背景修改的目标是在保持参与者的高图像质量的同时,降低与背景关联的图像质量。换句话说,经修改的背景在经修改的视频中具有第一图像质量,且至少一个
感兴趣的对象在经修改的视频中具有第二图像质量,并且第一图像质量低于第二图像质量。第一图像质量与第二图像质量之间的差别可以取决于能由计算设备测量的当前网络条件或网络参数。
[0138]
在可选操作940,计算设备可以压缩或解码背景或经修改的背景。压缩可以包括对背景应用一个或多个编解码器。例如,编解码器h264能用于压缩背景。注意,在一些实施例中,能使用两个编解码器,其中一个编解码器被应用于背景,而另一个编解码器被应用于所识别的感兴趣的对象(例如面部)。
[0139]
在操作945,计算设备通过将经修改的背景与感兴趣的对象的图像相组合来生成经修改的视频。在可选操作950,计算设备可以通过通信网络140传送经修改的视频。
[0140]
在附加实施例中,方法900可以进一步包括修改每个图像中与至少一个感兴趣的对象相关联的那些图像部分的可选操作。与至少一个感兴趣的对象关联的图像部分的修改能基于特征参考点或网格。例如,修改与至少一个感兴趣的对象关联的图像部分包括改变颜色、色调、比例以及分辨率中的至少一者。在一些实施例中,能用预定图像替换至少一个感兴趣的对象。
[0141]
在更多实施例中,方法900可以包括:基于至少一个感兴趣的对象的识别和参考特征点来确定用户头部位置的附加步骤;基于头部的位置确定身体的位置的附加步骤;以及在一系列图像上跟踪身体的位置的附加步骤。在操作935的背景修改能基于身体的位置。例如,如果基于图像跟踪身体不可行,但基于图像跟踪用户面部可行,则背景修改能基于身体位置的近似,使得用户面部和身体保持未被修改,但视频图像的其余部分被修改。
[0142]
图10是示出了用于实时视频处理的第二示例性方法1000的过程流程图。所述方法可以由可包括硬件(例如,决策逻辑、专用逻辑、可编程逻辑、以及微码)、软件(诸如在通用计算机系统或专用机器上运行的软件)或两者的组合的处理逻辑来执行。在一个示例实施例中,处理逻辑指客户端设备110或服务器210的一个或多个组件。注意,以下详述的方法1000的步骤可以用与图10中描述和示出的顺序不同的顺序来实现。另外,方法1000可以具有在此未示出但从本公开将能够对本领域技术人员显而易见的附加步骤。方法1000还可以具有比下面概述和图10中示出的步骤少的步骤。
[0143]
方法1000始于在操作1005处由计算设备(诸如客户端设备110或服务器210)接收视频。所述视频能由在操作上耦接到计算设备的摄像机或web相机捕获。
[0144]
在操作1010,计算设备动态地监视与通过一个或多个通信网络140传送视频相关联的网络参数(例如qos、比特率、带宽)。在块1015,计算设备判定网络参数的当前值是否在预定阈值以下。如果网络参数的当前值在预定阈值以下,则方法1000接着执行操作1020,其中计算设备生成用于修改视频中的背景的请求。然后所述方法接着执行如图10所示的操作1030。
[0145]
另外,如果网络参数的当前值在预定阈值之上,则方法1000继续执行操作1025,其中计算设备生成用于传送未经修改的视频的请求(指令)。在这种情况下,方法继续执行如图10所示的操作1040。
[0146]
在操作1030,计算设备识别至少一个感兴趣的对象,检测至少一个感兴趣的对象的特征参考点,将网格对准到至少一个感兴趣的对象,基于网格识别一个或多个视频图像中的背景,以及修改每个视频图像中的背景。这些程序能够重复以上参考操作915到935描
述的那些程序。
[0147]
更具体地说,感兴趣的对象的识别能基于维奥拉-琼斯算法,尽管也能使用其他算法,诸如klt算法、camshift算法或任何其它计算机视觉方法。在一些其他实施例中,每个图像中的至少一个感兴趣的对象的识别能够基于用户输入。能使用asm或扩展asm算法,以及egm算法、一致示例算法等确定特征参考点。能基于candide-3模型创建网格。能用各种过程识别背景,诸如:基于网格从每个图像中分离出至少一个感兴趣的对象;选择不包括与网格关联的像素的图像部分;或通过以下过程,所述过程包括:(a)形成与至少一个感兴趣的对象关联的二元掩模;(b)在每个图像上将二元掩模对准网格;以及(c)通过反转二元掩模创建经反转的二元掩模。
[0148]
背景修改能包括模糊化、改变背景分辨率、改变视频点密度、改变颜色、改变色带、压缩、编码、改变色调分离以及改变像素化。修改的程度能取决于当前网络参数。在一些实施例中,背景修改能包括用预定图像或视频替换、替代或覆盖背景。预定图像能由用户选择,或能使用存储在计算设备的存储器中的缺省图像。
[0149]
在一些实施例中,除了修改背景,也能修改前景。在一些实施例中,前景能被平滑化、锐化或改变颜色。前景可以包括个体的图像和可能未在背景中出现的其他元素。在更多实施例中,只有所识别的面部(或感兴趣的对象)才能够通过平滑化、锐化、改变颜色等被修改。
[0150]
在操作1035,计算设备通过将经修改的背景与感兴趣的对象的图像相组合来生成经修改的视频。在可选操作1040,计算设备通过通信网络140传送初始或经修改的视频。
[0151]
图11a和11b示出了背景修改的示例结果。更具体地说,图11a示出了包括视频会议参与者的面部的初始视频图像。图11b示出了使用如本文所述的用于视频处理的方法之一修改的视频图像。在图11b示出的示例中,背景被识别和模糊以降低文件大小和数据传输率。
[0152]
实验表明本文所述的用于视频处理的方法允许在对除个体面部以外的所有部分进行模糊的情况下将视频数据率或视频文件大小最多减小53%,并且在对除前景以外的所有部分进行模糊的情况下最多减小21%。
[0153]
在附加实施例中,操作1015-1025能被其他操作替换。更具体地说,本技术能基于网络参数的特定值修改背景。例如,如果在操作1015处确定与qos关联的网络参数在第一预定范围之内,则在操作1020处生成用于仅对视频背景进行模糊(保持面部和身体未被修改)的第一请求。当在操作1015处确定与qos关联的网络参数在第二预定范围之内,则在操作1020处生成用于对视频背景和不包括用户面部的其他视频部分进行模糊的第二请求。此外,当在操作1015处确定与qos关联的网络参数在第三预定范围内,则在操作1025处,或者不生成用于模糊化的请求,或者生成用于传送未修改的视频的第三请求。注意,第一、第二或第三范围彼此不同,尽管它们能够可选地重叠。
[0154]
7.总结
[0155]
因此,已经描述了用于实时视频处理的方法和系统。虽然已经参考具体示例实施例描述了实施例,但是显而易见的是在不脱离本技术的更广泛范围的情况下,可以对这些示例实施例进行各种修改和改变。因此,说明书和附图被认为是示意性的而不是限制性的。