首页 / 专利库 / 空中管制 / 许可 / 用于视线校正的设备和方法

用于视线校正的设备和方法

阅读:393发布:2020-05-08

专利汇可以提供用于视线校正的设备和方法专利检索,专利查询,专利分析的服务。并且在用户的脸的视频中校正用户的视线。多个模板中的每个模板包括直接看着相机的用户的眼睛的不同图像。仅当脸部 跟踪 模 块 处于活动模式中并且当前值在所述用户的脸朝向相机的可能值的范围的受限子范围内时, 修改 视频的 帧 以校正所述用户的视线,由此所述用户在经修改的帧中被 感知 为直接看着相机。,下面是用于视线校正的设备和方法专利的具体信息内容。

1.一种用于校正用户的视线的用户设备,包括:
输入端,其被配置为从相机接收所述用户的脸的视频;
脸部跟踪,其被配置为在活动跟踪模式中跟踪所述用户的脸的至少一个坐标,并且输出在可能值的范围内的所述至少一个角坐标的当前值;以及
视线校正模块,其被配置为仅当所述脸部跟踪模块处于所述活动跟踪模式中并且所述当前值在所述用户的脸朝向所述相机的可能值的范围的受限子范围内时,修改所述视频的以校正所述用户的所述视线,由此所述用户在经修改的帧中被感知为直接看着所述相机。
2.根据权利要求1所述的用户设备,其中,所述脸部跟踪模块还被配置为跟踪所述用户的脸的至少一个空间坐标并且输出每个在可能值的相应范围内的所跟踪的坐标的当前值;
并且
其中,仅当所述脸部跟踪模块处于所述活动跟踪模式中并且所述当前值每个在所述用户的脸朝向所述相机并且在受限空间区域内的可能值的相应范围的相应受限子范围内时,修改所述帧。
3.根据权利要求2所述的用户设备,其中,所述至少一个空间坐标包括所述用户的脸的至少两个或至少三个空间坐标。
4.根据权利要求1所述的用户设备,其中,所述脸部跟踪模块被配置为跟踪所述用户的脸的至少两个角坐标并且输出每个在可能值的相应范围内的所跟踪的至少两个角坐标的当前值;并且
其中,仅当所述跟踪模块处于所述活动跟踪模式中并且所述当前值每个在所述用户的脸朝向所述相机的可能值的所述相应范围的相应受限子范围内时,修改所述帧。
5.根据权利要求4所述的用户设备,其中,所述至少两个角坐标包括所述用户的脸的至少三个角坐标。
6.根据权利要求1所述的用户设备,其中,所述脸部跟踪模块被配置为跟踪所述用户的脸的至少一个空间坐标,并且所述用户设备包括限制设置模块,所述限制设置模块被配置为基于对所述至少一个空间坐标的跟踪来改变所述至少一个角坐标的所述受限子范围。
7.根据权利要求1所述的用户设备,其中,所述用户设备包括显示器和限制设置模块,所述限制设置模块被配置为基于指示所述显示器的当前状态的显示数据来改变所述至少一个角坐标的所述受限子范围。
8.根据权利要求7所述的用户设备,包括网络接口,所述网络接口被配置为接收在所述显示器上显示的另一用户的远端视频,并且基于所述远端视频的显示的当前显示参数来改变所述至少一个角坐标的所述受限子范围。
9.根据权利要求8所述的用户设备,其中,所述至少一个角坐标的受限子范围是基于由所述远端视频在所述显示器上占据的当前位置和/或当前区域来改变的。
10.根据权利要求1所述的用户设备,包括保存一个或多个模板的计算机存储,其中每个模板包括直接看着所述相机的所述用户的眼睛的图像,其中,通过用相应的模板替换所述用户的眼睛中的每个眼睛来校正所述视线。
11.根据权利要求10所述的用户设备,其中,所述一个或多个模板中的每个模板包括直接看着所述相机的所述用户的眼睛的图像以及围绕所述眼睛的所述用户的脸的至少部分,其中,所述视线校正模块被配置为将这些部分与所述帧的对应部分混合。
12.根据权利要求10所述的用户设备,包括模板修改模块,所述模板修改模块被配置为修改所述模板以便修改所述眼睛的视觉外观。
13.根据权利要求12所述的用户设备,其中,所述模板修改模块被配置为修改所述模板以:改变虹膜颜色、校正所述眼睛的不对称性、和/或使所述眼睛变白。
14.一种计算机可读存储介质,其存储用于校正用户的视线的代码,所述代码当在计算机上运行时被配置为执行以下操作:
从相机接收所述用户的脸的视频;
当脸部跟踪模块处于活动跟踪模式中时,从所述脸部跟踪模块接收所述脸部跟踪模块正在跟踪的所述用户的脸的至少一个角坐标的当前值;以及
仅当所述脸部跟踪模块处于所述活动跟踪模式中并且所述当前值在所述用户的脸朝向所述相机的可能值的范围的受限子范围内时,修改所述视频的帧以校正所述用户的所述视线,由此所述用户在经修改的帧中被感知为直接看着所述相机。
15.一种校正用户的视线的方法,包括:
从相机接收所述用户的脸的视频;
当脸部跟踪模块处于活动跟踪模式中时,从所述脸部跟踪模块接收所述脸部跟踪模块正在跟踪的所述用户的脸的至少一个角坐标的当前值;以及
仅当所述脸部跟踪模块处于所述活动跟踪模式中并且所述当前值在所述用户的脸朝向所述相机的可能值的范围的受限子范围内时,修改所述视频的帧以校正所述用户的所述视线,由此所述用户在经修改的帧中被感知为直接看着所述相机。

说明书全文

用于视线校正的设备和方法

背景技术

[0001] 常规的通信系统允许诸如个人计算机或移动设备之类的设备的用户通过诸如互联网之类的基于分组的计算机网络来进行语音或视频通话。这样的通信系统包括通过互联网协议的语音(VoIP)系统。这些系统有益于用户,这是因为与常规的固定线路或移动蜂窝网络相比其常常具有显著较低的成本。这对于长距离通信的情况而言尤其如此。为了使用VoIP系统,用户在他们的设备上安装并执行客户端软件。客户端软件建立VoIP连接并且提供诸如注册和用户认证之类的其他功能。除了语音通信之外,客户端还可以建立针对诸如即时消息传送(“IM”)、SMS消息传送、文件传输、屏幕共享、白板会话、和语音邮件之类的其他通信媒体的连接。
[0002] 装备有相机和显示器的用户设备可以用于与另一用户设备的用户(远端用户)进行视频通话。用户设备的用户(近端用户)的视频是经由他们的相机捕获的。可以由他们的客户端来处理所述视频以对其进行压缩并且将其转化成数据流格式,以用于经由网络传输给远端用户。类似地压缩的视频流可以从远端用户(中的每个)处接收、解压缩、并且在近端用户的设备的显示器上输出。例如,视频流可以经由一个或多个视频中继服务器来发送,或其可以例如经由对等连接而“直接地”发送。可以结合这两种方法,以使得通话的一个或多个流是经由服务器发送的,并且通话的一个或多个其他流是直接地发送的。发明内容
[0003] 提供本发明内容用以用简化的形式引入将在下文的具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0004] 用于校正用户的视线的用户设备包括:输入端,其被配置为从相机接收用户的脸的视频;脸部跟踪;以及视线校正模块。所述脸部跟踪模块被配置为在活动跟踪模式中跟踪所述用户的脸的至少一个坐标,并且输出在可能值的范围内的所述至少一个角坐标的当前值。所述视线校正模块被配置为仅当脸部跟踪模块处于活动模式中并且当前值在所述用户的脸朝向相机的可能值的范围的受限子范围内时,修改视频的以校正所述用户的视线,由此用户在经修改的帧中被感知为直接看着相机。附图说明
[0005] 为了帮助理解本主题并且示出本主题如何实施,现在将对以下附图进行参考,其中:
[0006] 图1示出了通信系统的示意性框图
[0007] 图2示出了通信客户端的功能模块;
[0008] 图3A描绘了脸部跟踪器的功能;
[0009] 图3B示出了具有6个自由度坐标系统;
[0010] 图3C示出了用户的脸的角坐标可以如何改变;
[0011] 图4A示出了视线校正模块的细节;
[0012] 图4B示出了视线校正机制;
[0013] 图5示出了在活动跟踪模式中但是接近失败时脸部跟踪器的行为;
[0014] 图6是动态模板选择的方法的流程图

具体实施方式

[0015] 在真实世界中,眼神接触是人与人之间面对面对话的关键方面。各种心理学研究已经证明,在人际沟通期间,当人们能够进行眼神接触时他们更有可能彼此接洽。然而,在视频通话期间,通话参与者通常花费通话的大部分时间看着他们的显示器,这是因为另外的参与者的视频在显示器上可见。这意味着,对该通话的大部分时间而言,他们将不直接看着其相机,并且因此其他参与者将感知到没有与他们进行眼神接触。例如,如果参与者的相机位于其显示器的上方,则他们将被感知为注视着另外的参与者眼睛下方的点。
[0016] 本公开的方面涉及修改用户的脸的视频,以使得在经修改的视频中他们被感知为直接看着相机。这被称为校正用户的视线。修改视频以当用户的眼睛出现在其中时,利用他们眼睛的预先录制的具有期望的视线的图像中的眼睛来替换用户的眼睛。因此,观看经修改的视频的另一个人将感知到用户正在与其进行眼神接触。在视频通话的上下文中,所感知的眼神接触鼓励通话的参与者更好地彼此接洽。
[0017] 视线校正是已知的,但是,现有的视线校正系统倾向于看起来伪造的且没有人情的视觉伪迹。在本文中提供了各种技术,它们提供没有这样的伪迹的看起来自然的视线校正。当在视频通话上下文中实现时,在本文中呈现的技术因此促成了与利用现有的视线校正系统实现的技术相比更加自然的对话体验。
[0018] 图1示出了通信系统100,其包括网络116、用户102(近端用户)能够访问的用户设备104、以及另一用户118(远端用户)能够访问的另一用户设备120。用户设备104和另一用户设备120连接至网络116。网络116是诸如互联网之类的基于分组的网络。
[0019] 用户设备104包括:处理器108,例如由连接至网络接口114的一个或多个CPU(中央处理单元)和/或一个或多个GPU(图形处理单元)组成,(其中,用户设备104经由网络接口114连接至网络116);以存储器110为形式的计算机存储器;以屏幕为形式的显示器106;相机124;以及(在一些实施例中)深度传感器126。用户设备104是采取多种形式的计算机,例如台式计算机或膝上型计算机设备、移动电话(例如,智能电话)、平板计算设备、可穿戴计算机设备、电视机(例如,智能TV)、机顶盒、游戏操作杆等。相机124和深度传感器126可以被集成在用户设备104中,或者它们可以是外部组件。例如,它们可以被集成在诸如设备之类的外部设备中。相机将视频捕获为一系列的帧F,其在该示例中
是未经压缩的RGB(红绿蓝)格式,但其他格式可以被构想并且将是显而易见的。
[0020] 相机具有视场,可以由其图像捕获组件通过该视场接收光。相机124在显示器附近。例如,其可以位于显示器的边缘附近,例如,在顶部或底部或在显示器的一侧。相机124具有面向显示器外的图像捕获组件。即,相机124相对于显示器而定位,以使得当用户102在显示器的前面并看着显示器时,相机126捕获用户的脸的前视图。例如,相机可以在可附接至显示器的网络摄像头中实施,或者其可以是与显示器集成在同一设备(例如,智能通话、平板或外部显示屏幕)中的前置相机。可替代地,相机和显示器可以被集成在分别的设备中。例如,相机可以被集成在膝上型计算机中,而显示器可以被集成在分别的外部显示器(例如,电视机屏幕)中。
[0021] 存储器110保存软件等,特别是通信客户端112。客户端112使得能够经由网络116在用户设备104与具有显示器122的其他用户设备120之间建立实时视频(例如,VoIP)通话,从而使得用户102和其他用户118可以经由网络116彼此通信。例如,客户端112可以是由可执行代码形成的独立通信客户端应用,或者其可以是在处理器108上执行的另一应用的插件,例如作为其他应用的一部分运行的网络浏览器。
[0022] 客户端112提供了用户接口(UI),以用于从用户102处接收信息并且向用户102输出信息,例如经由显示器106显示(例如,作为视频)和/或经由相机124捕获的可视信息。显示器106可以包括触摸屏,以使得其充当输入和输出设备两者,并且其可以集成或不集成在用户设备104中。例如,显示器106可以是外部设备(例如机、智能手表等)的一部分,其可以经由合适的接口连接至用户设备104。
[0023] 用户界面可以包括例如经由显示器106输出信息的图形用户界面(GUI)和/或使得用户能够以自然的方式与设备进行交互的自然用户界面(NUI),其免受由诸如鼠标键盘、远程控制器等之类的某些输入设备所施加的人工约束。NUI方法的示例包括利用以下这些的方法:触摸感应显示器、语音和话音识别、意图和目标理解、使用深度相机(例如,立体或飞行时间相机系统、红外相机系统、RGB相机系统、以及这些的组合)的运动姿势检测、使用加速度计/陀螺仪的运动姿势检测、脸部识别、3D显示、头部、眼睛、和视线跟踪、浸入式增强现实虚拟现实系统等。
[0024] 图2示出了用于在用户112与至少另一用户118之间实现视频通话的视频通话系统200。视频通话系统包括各种功能模块,它们是表示通过在处理器108上运行客户端软件112来实现的功能的软件模块。具体而言,系统200包括以下功能模块:视线校正模块202、模板选择模块204、姿势检查模块206、脸部跟踪器208、限制设置模块210、模板修改器212、以及模板捕获模块214。模块202-214构成了视频视线校正系统201。另外,视频通话系统200包括视频压缩器216和视频解压缩器218。视频视线校正系统201具有输入端,通过该输入端,视频视线校正系统201从相机124接收视频并且从深度传感器126接收传感器数据
[0025] 远端视频220是作为经压缩的视频帧的到来的视频流而经由网络116从另一用户设备120接收的,远端视频220由解压缩器218解压缩并且显示在显示器106上。
[0026] 要向远端设备102发送的视频(近端视频)是由视线校正系统201从相机124(在本地)接收的并且在近端设备处被修改,以在发送之前校正用户的视线。在所接收的视频中用户不大可能直接看着相机124,因为他们更可能看着另一用户118的远端视频220在其上显示的显示器106。视线校正模块202修改(在本地)接收的视频,以用看着相机的眼睛的图像替换用户102的眼睛。替换眼睛图像来自存储在存储器110中的“模板”Ts。脸部跟踪器208跟踪用户的脸,而由眼睛替换模块202对所接收的视频进行的修改是基于由脸部跟踪器208对用户的脸的跟踪。具体而言,由脸部跟踪器208对用户的脸进行的跟踪指示了在要修改的帧中与用户的眼睛相对应的位置,并且替换眼睛图像被插入到匹配的位置处。
[0027] 修改是选择性的,即,当且仅当视线校正被认为是合适的时修改所接收的视频的帧。在下文给出了在其下修改被认为是合适的条件的进一步的细节。
[0028] 选择性修改的视频是作为流出的视频馈送由视线校正系统201输出的。因为修改是选择性的,所以流出的视频馈送可以有时由经修改的帧(被标记为F’)形成(即,替换眼睛图像被插入到其中),而在其他时候,由未经修改的帧(被标记为F)组成,即大体上如从相机124所接收的那样。
[0029] 向压缩器216提供流出的视频馈送,压缩器216例如使用帧间和帧内压缩的组合来对其进行压缩。经压缩的视频作为流出的视频流而经由网络116发送至远端用户设备120。所述视频是选择性地修改并且实时地发送的,即,以使得在由相机126捕获并到达远端设备
120的每一帧之间仅存在较短的区间(例如,大约2秒或更少)。由视线校正系统202对该帧的任何修改在该较短的区间内发生。因此,用户102、118可以实时地进行视频对话。
[0030] 模板捕获
[0031] 所存储的模板Ts中的每个模板包括直接看着相机的用户的眼睛中的一只眼睛的不同图像。所述不同可能是轻微的,但是在视觉上可感知。这些直接的相机视线模板由模板捕获模块214收集并且存储在存储器110中,例如,存储在模板数据库中。所述捕获过程可以是“手动”过程,即,其中请求用户直接看着相机,或者自动地使用视线估计系统。在本文中所描述的实施例中,模板Ts是当用户直接看着相机124时利用相机124捕获的模板视频的单个帧(模板帧)的部分,并且每个模板包括仅单只眼睛(左或右)。即,模板Ts来自模板视频的时间上连续的帧。模板视频是短的,例如,具有大约1至2秒的持续时间。在该时间期间,用户的眼睛可以展现一个或多个扫视。在该上下文中,扫视是非常迅速的固定的两个(时间)阶段之间的同时运动,其中眼睛在相机124上是固定的。即,扫视是非常迅速的离开然后又回到相机124的运动。应当注意的是,用户被认为在这样的固定阶段期间以及在任何介于中间的扫视整个期间都是直接看着相机。
[0032] 在下文中,“拼块(patch)”指的是活动的帧或模板或者活动的帧或模板的一部分。
[0033] 脸部跟踪器
[0034] 图3A示出了脸部跟踪器208的功能。脸部跟踪器作为输入接收利用相机106捕获的未经修改的帧F和(在一些实施例中)利用深度传感器126捕获的相关联的深度数据D。与特定帧F相关联的深度数据D指示在该帧的不同(x,y)位置处可见的元素的深度尺寸,以使得相机124和深度传感器126的输出一起提供关于相机124的视野内的元素的三维信息。
[0035] 脸部跟踪器208是基于3D网格的脸部跟踪器,其在3D空间中给出了6个自由度(DOF)的输出:x、y、z、俯仰(P)、翻滚(R)、和偏转(Y),其是六个独立的变量。这6个自由度构成了在本文中所称的“姿势空间”。如在图3B中所示出的,x、y和z坐标是(笛卡尔)空间坐标,而俯仰、翻滚、和偏转是分别表示关于x、z、和y轴的旋转的角坐标。角坐标指的是定义用户的脸的朝向的坐标。坐标系统具有位于相机124的光学中心的原点。虽然方便,但这不是必需的。
[0036] 当在活动跟踪模式中操作时,跟踪器208使用RGB(即,仅相机输出)或RGB和深度输入(即,相机和深度传感器输出)来生成用户的脸的模型M。模型M指示用户的脸的当前朝向和当前位置、以及用户102的脸部特征。
[0037] 具体而言,用户的脸在该坐标系统中具有角坐标α=(P,R,Y)(粗体表示向量),且模型M包括角坐标α的当前值。角坐标α的当前值表示用户的脸相对于相机124的当前朝向。当用户的脸展现关于可应用的轴的旋转运动时,所述值变化-参见图3C。在该示例中,α=(0,0,0)表示中立的姿势,用户利用其在与z轴平行的方向径直往前看。例如,当用户点头时,俯仰改变,而当用户摇头时,偏转改变,而当用户以古怪的方式倾斜其头时,翻滚改变。
[0038] 用户的脸也具有空间坐标r=(x,y,z),并且在该示例中,模型M还包括空间坐标的当前值。这些表示在用户的脸的三维空间中相对于相机的当前位置。例如,它们可以表示在用户的脸上或接近用户的脸的特定的已知参考点的位置,所述参考点例如他们脸或头的中央点、或者特定的脸部、头盖、或其他头部特征所位于或接近的点。
[0039] 用户的脸的空间和角坐标(r,α)=(x,y,z,P,R,Y)构成了在本文中被称为用户的姿势的内容,用户当前的姿势由(r,α)的当前值来表示。
[0040] 在该示例中,模型M包括6-DOF姿势空间中的用户脸部特征中的一些的3D网格表示。即,模型M还描述了用户的脸部特征,例如,通过定义某些已知的、可识别的参考点在用户的脸上和/或其脸的轮廓上的位置。因此,有可能从模型M不仅确定在用户的脸的三维空间中作为整体的当前朝向和位置,而且还确定诸如其眼睛、或者诸如瞳孔、虹膜、巩膜(眼白)、以及周围的皮肤之类的眼睛的特定部分之类的个体的脸部特征的当前的位置和朝向。具体而言,模型M指示与用户的眼睛相对应的位置或多个位置以用于由视线校正模块202使用。
[0041] 这样的脸部跟踪是已知的并且将不在本文中详细描述。例如,合适的脸部跟踪器可以利用 “脸部跟踪SDK”(http://msdn.microsoft.com/en-us/library/jj130970.aspx)来实现。
[0042] 视线校正模块。
[0043] 视线校正模块202通过混合直接看着相机的用户的眼睛的预先录制的影像(即,来自模板Ts)来生成视线经校正的输出。
[0044] 在图4A中示出了视线校正模块202的进一步的细节,并且在图4B中以图形示出了其功能中的一些功能。如图所示,视线校正模块202包括视线校正器242、混合器244、控制器247、和眼睛跟踪器248。
[0045] 视线校正器202接收由模板选择模块204针对当前帧所选择的一对模板(模板对)T。在所描述的实施例的上下文中的模板对T指的是可以用于分别代替用户的左眼和右眼的一组左模板和右模板{tl,tr},且在该示例中,其包括分别直接看着相机的用户的左眼和右眼的图像。左模板和右模板可以来自模板视频的相同的模板帧或者它们可以来自模板视频的不同的模板帧。转换该对的每个模板tl、tr以便将其匹配至由眼睛跟踪器248指示的用户的当前姿势(参见下文)。
[0046] 经转换的模板对被标记为T’。经转换的左模板和右模板tl、tr也被称为替代拼块。例如,该转换可以包括缩放和/或旋转模板T的至少一部分以匹配用户的眼睛相对于相机
124的当前的朝向和/或深度z,这使得在经转换的模板T’中用户的眼睛的朝向和大小与要被修改的当前的帧F中的用户的眼睛的朝向和大小相匹配。在该示例中,针对模板对的模板tl、tr执行分别的、独立的转换。
[0047] 混合器244通过将混合函数Mx应用至拼块来用当前帧F的对应部分(输入拼块)与每个替代拼块混合。混合函数Mx将用户的眼睛的任何踪迹从当前帧F(其通常将不看着相机124)中移除,并且用来自输入拼块的对应的眼睛图像(其在看着相机124)将其整个替代。
[0048] 在该示例中,模板Ts中的每个模板包括用户的眼睛的图像以及围绕该眼睛的用户的脸的至少一部分。混合函数Mx是混合函数,除了替换在当前帧F中适用的眼睛之外,用在当前帧F中的对应区域与模板F中围绕该眼睛的区域混合,如在图4B中针对经转换的左眼模板t’l所示出的,以供其将输入拼块INl对应至用户的脸的左边。尽管没有明确示出,但是针对经转换的右眼模板t’r执行等价的混合以供其将输入拼块对应至用户的脸的右边。这确保了该修改是视觉上无缝的。以该方式,混合器244混合了输入和替代拼块以便防止在当前帧内的任何视觉的不连续。
[0049] 在视线校正模块202初始化之后,由脸部跟踪器208生成的模型M被使用,并且具体而言,由眼睛跟踪器248确定(至少粗略估计)用户的眼睛的当前位置。此后,模型坐标不用于对眼睛定位直到重新初始化发生为止,这是因为使用模型坐标将单独引起眼睛随着时间明显的抖动。相反,在初始化之后,由眼睛跟踪器248例如基于图像识别在直播视频中针对规模、位置、和旋转分别地跟踪眼睛。模板是由眼睛跟踪器248基于该跟踪转换的以匹配当前跟踪的用户眼睛的朝向和尺度。混合函数也是由眼睛跟踪器248基于该跟踪来计算的,以使得替换帧F的正确部分,即其中存在适用的眼睛。
[0050] 眼睛跟踪器248还被约束为总是在脸部跟踪器眼睛位置的区域内——如果出现不匹配,则假定已经发生了失败并且终止校正。
[0051] 每只眼睛独立地执行眼睛跟踪和混合——这给予眼睛模板更大的一般性。
[0052] 应当注意的是,即使当视线校正模块202是活动的时,视线校正可以暂时地被停止以便不修改某些帧。视线校正模块包括控制器247。在该示例中,控制器247包括眨眼检测器246,其检测用户102何时眨眼。当替换拼块中的至少一个及其对应的输入拼块之间的差异足够大时(即,超过阈值时),这触发眨眼检测。这暂时地停止了对帧F的修改直到该差异再次落到低于阈值为止。以此方式,当在某些帧中检测到用户102眨眼时,保持这些帧不被修改以便在流出的视频馈送中眨眼保持可见。当检测到眨眼结束且用户的眼睛再次睁开时,修改恢复。如果模型M指示的眼睛与眼睛跟踪器248指示的当前被跟踪的眼睛位置差得太大,则位置控制器246也暂时地停止视线校正模块202。所有这样的系统停止触发重新初始化尝试(参见先前的段落),以在此后合适的时间恢复视线校正。
[0053] 视线校正的选择性激活
[0054] 实施例使用脸部特征点跟踪器208的6个自由度的输出来决定是否校正用户的视线。如果且仅如果用户的头部的姿势在特定的3D空间的区域内且朝向相机,则执行视线校正。
[0055] 仅当用户的脸的角坐标在某些操作限制之内时脸部跟踪器208是操作的,即是适当地工作的(即,在活动跟踪模式中)——一旦用户的头部在任何方向上旋转太多,则跟踪器失败,即跟踪器不再能够在活动跟踪模式中操作。即,对用户的脸的角坐标设置操作限制,在该限制之外,跟踪器208失败。当用户在z方向上移动得太远离相机或太靠近其视野的(x,y)限制时,脸部跟踪器也可能失败,即,可以对空间坐标施加类似的运行限制,在该限制之外,跟踪器208也失败。
[0056] 更加具体地,跟踪模块208仅当用户的姿势坐标(r,α)=(x,y,z,P,R,Y)中的一个或多个中的每个具有在可能值的相应范围之内的相应当前值时才能够适当地正常。如果这些坐标中的任何一个坐标移动到其可能值的相应范围之外,则跟踪器失败,并且因此模型M变得对其他功能模块不可用。跟踪器只能重新进入活动跟踪模式,以使得当这些坐标中的每个坐标已经返回到其可能值的相应范围之内时,所述模型再次变得对其他功能模块可用。
[0057] 现有的视线校正系统仅仅在跟踪器失败之后才禁用视线校正。然而,该方法存在问题。首先,在连续运行的系统中,用户可能不想总是看起来直接看着相机。示例将是如果他们利用其头部从身体上将目光移向别处。在该情况下,仍然跟踪脸但是将眼睛校正成看着相机将显得不自然:例如,如果用户适度地将他或她的头转离显示器106以看向窗外,则“校正”他或她的眼睛看着相机将在视觉上不和谐。其次,所有的跟踪器具有在其内它们表现地很好的姿势空间,例如,用户通常面朝相机、或具有3/4的视野。然而,在朝向其操作的限制的情况下,脸跟踪器倾向于表现糟糕。图5示出了由于用户将脸转离相机而导致跟踪器接近失败的情况,但尽管如此其仍在运行。如果在该情况下跟踪器输出将被用作视线校正的基础,则结果将在视觉上令人不悦——例如,用户的右眼(从其角度)没有被正确跟踪,这将导致对应的替换眼睛的不正确的放置。
[0058] 实施例通过在跟踪器仍然起作用时(即,在跟踪器208失败之前)有意地停止视线校正来克服这一点。即,与已知的系统相对比,即使当跟踪器208仍然运行在活动跟踪模式中时,也可以根据环境来停止视线校正。具体而言,仅当头部的姿势在一组有效的、预先定义的范围内时,才启用视线校正。这通过每当脸部跟踪器208操作时使用其报告的6-DOF姿势(r,α)=(x,y,z,P,R,Y)来实现。相对于相机来对这些参数设置限制并且相应地启用或禁用视线校正。
[0059] 主要的目标是使得仅仅在用户实际上想要执行校正的姿势空间内部(即,仅仅当他们看着显示器106并且因此仅仅当他们的脸朝向相机124但他们没有直接看着相机时)才启用眼睛替换。次要的目标是在跟踪器失败之前(即,在到达脸部跟踪器的姿势范围的操作限制之前)禁用眼睛替换的能。这区别于现有系统,现有系统仅仅当其不再知道眼睛的位置时才停止替换。
[0060] 由于用户的当前姿势(r,α)是由跟踪器208相对于相机124计算的,所以可以对这些值设置限制(在本文中和附图中用△来表示),在该限制内可以执行准确的视线校正。只要被跟踪的姿势保持在这些限制△之内,则视线校正模块202保持活动并且将其结果输出为由经修改的帧F’形成的新的RGB视频(受到视线校正模块202中的任何内部激活/去激活,例如当由眨眼检测触发时)。相反地,如果所跟踪的姿势不在所定义的限制△内,则提供原始的视频以用于进行未经修改的压缩和传输。
[0061] 在本文中描述的实施例中,限制△以一组子范围为形式——针对6个坐标中的每个坐标的值的相应子范围。如果且仅如果个体坐标x,y,z,P,R,Y中的每个都在其相应的子范围内,则用户的姿势(r,α)才在△之内。在其他实施例中,可以仅将限制设置在坐标中的一个或一些坐标上——例如在一些场景中,仅在一个角坐标上施加限制就足够了。针对在其上施加了这样的约束的一个或多个坐标中的每个坐标,相应的子范围是在跟踪器208失败之前坐标能够采取的可能值的范围的受约束的子范围,即相应的子范围在坐标能够采取的可能值的范围之内并且比坐标能够采取的可能值的范围更窄。
[0062] 施加在角坐标上的子范围是这样的以便将帧修改限制为当用户的脸朝向相机时,并且当跟踪器208操作达到可接受的精确度等级时,即,使得如由跟踪器208指示的眼睛的位置确实与眼睛的实际位置对应达到可接受的精确度等级时。施加在空间坐标上的子范围是这样的以使得将帧修改限制为当用户的脸在受约束的空间区域内时,以其包含严格小于相机的视野的立体角的意义来约束。
[0063] 跟踪相机和(在适用的情况下)深度传感器的输出以给出6-DOF的姿势。由姿势检查器206将用户的姿势(r,α)与△进行比较,以检查姿势(r,α)当前是否在△内。使用该检查的结论来启用或禁用视线校正模块242并且通知混合器244。即,每当用户的姿势(r,α)移动到△之外时,姿势检查器424就将视线校正模块202去激活,并且每当用户的姿势移动回来时,将实现校正模块重新激活,这使得视线校正模块当且仅当用户的姿势在△之内时才是活动的(受到控制器246的暂时禁用,例如,如所提及的,由眨眼检测所导致的)。如果姿势是有效的,即在△之内,则混合器输出经视线校正的RGB视频帧(受到控制器246的暂时禁用),而如果姿势在△之外,则混合器输出原始的视频。即当活动时,视线校正202模块如在上文中所描述的那样操作以修改实时视频帧F,且(受到例如眨眼检测的)经修改的帧F’作为流出的视频馈送而从视线校正系统201输出。当视线校正模块202不活动时,视线校正系统201的输出是未经修改的视频帧F。
[0064] 对空间坐标设置限制也可以是适当的——例如,如果用户在xy平面上移动得太远至相机视野的边缘,则修改其眼睛可能看上去奇怪,特别是如果替换眼睛图像是在用户接近相机视野的中心即(x,y)≈(0,0)时捕获的时。作为另一示例,当用户在z方向上移动得足够远离相机时,眼睛替换可能是不必要的。
[0065] 应当注意的是,还可能对其他视线校正算法施加这样的限制——例如,对实时视频应用转换以有效地“旋转”用户的整张脸的那些算法。这样的算法是本领域公知的并且将不在本文中详细描述。
[0066] 限制设置。
[0067] 在本文中描述的实施例中,集合△中的范围是由限制设置模块210动态地计算的并且因此所述限制自身受到变化。这也基于脸部跟踪器208的输出。例如,当用户的脸在xy平面移动时,适合针对角坐标中的一个或多个来调整相应的范围,这是因为用户正看着显示器106的角坐标值的范围将随着用户的脸在该方向上移动而改变。
[0068] 在一些实施例中,作为可替代或另外的,限制△是基于本地显示数据来计算的。本地显示数据传达关于远端视频220当前如何在显示器106上呈现的信息,并且例如,可以指示远端视频220当前在其上被显示的显示器106上的位置和/或当前其占据的显示器106的区域。例如,可以基于显示器数据来设置限制,以使得视线校正仅仅当用户正看着显示器106或者正朝显示器106上的远端视频看时才执行视线校正。这指的是仅当近端用户102实际上正看着远端用户118时,才针对远端用户118创建眼神接触的错觉。这可以在近端用户
102的行为与远端用户118的感知之间提供更好的关联,由此向其间的对话增加了甚至更加自然的特征。
[0069] 可替代地或额外地,可以基于相机的当前位置来计算限制。例如,在相机和显示器被集成在同一设备(例如,智能通话或相机)中的情况下,可以从所检测到的设备的朝向来推断相机的位置,即该朝向指示相机是在显示器的上方、下方、左侧、还是右侧。关于相机的当前位置的进一步信息可以例如从显示器的一个或多个物理维度来推断。
[0070] 在其他实施例中,可以替代地使用固定的限制△,例如,基于用户的脸保持接近相机视野的中心的假设设置的限制且这不将如何显示远端视频的任何特征考虑在内。
[0071] 通常而言,可以由在具体相机/显示器设置中的视线校正算法的性能来确定特定的阈值。
[0072] 动画的眼睛——模板选择。
[0073] 先前的视线校正方法仅利用在所检测到的眨眼之间的单个模板来替换用户的眼睛,这可能导致不自然的、盯着看的外观。具体而言,当仅利用单个的静态的直接视线拼块来替换时,用户可能偶尔看起来“奇怪的”,即具有关于其的呆滞无神的外观,具体而言,这是因为这些眼睛缺乏在真实的眼睛中存在的高频扫视。如在上文中所指示的,扫视是两只眼睛来回地迅速、同时的移动。
[0074] 在实施例中,替代地用在训练时间期间收集的时间序列的模板来替换眼睛以使得眼睛展现出动画。即,直接视线拼块的序列暂时地混合以看起来逼真。模板选择模块201针对从相机124接收的视频的至少一个连续区间的不同帧而选择模板Ts中的不同模板,连续区间是由完整的(子)系列的连续的帧形成的。例如,连续区间可以在两个连续的眨眼或其他重新初始化触发事件之间。进而,视线校正模块202修改视频的连续区间的每一帧以用针对该帧所选择的任何一个模板的眼睛来替换用户的眼睛。由于上述选择有意在整个连续区间中不同,用户的眼睛由于在所存储的模板Ts之间展现的视觉上的变化而在整个连续区间中展现出动画。当用户的眼睛是以该方式的动画时,其在经修改的视频中显得更加自然。
[0075] 在通话期间,用户倾向于关注彼此的眼睛,因此该替换不可感知是重要的。在某些实施例中,模板旋转模块204以每帧为基础(或至少非常少的,例如两帧)来选择模板,即可以针对连续区间中的每一帧(或,例如每两帧)来执行新鲜的、个体的模板旋转以使得选择被每帧地更新。在一些这样的实施例中,模板选择可以在整个连续区间中每帧(或,例如,每两帧)地改变,即,针对每一帧(或例如,每两帧),可以选择与针对在紧前面的帧所选择的模板不同的模板,以使得经更新的选择总是相对于上一个选择的模板来改变所选择的帧。换句话说,模板的改变可以以大体上与视频的帧速率匹配的速率进行。即,研究图像可以以所述帧速率改变以避免任何感知迟缓。在其他情况下,较不频繁地(例如,每两帧改变模板)是足够的。可以期望的是,当模板的改变以每秒大约10次改变或更低的速率进行时,一些感知迟缓将是显而易见的,这使得对于要修改的具有每秒大约30帧的帧速率的视频而言,替换图像保持不变以持续大约3帧。一般而言,模板的改变以足够高以使得用户的眼睛展示动画的速率进行,即,以使得不存在由于用户能够个别地感知替换眼睛图像而导致的感知迟缓,即高于人视觉感知的阈值。这将总是模板的改变的速率大体上与帧速率匹配(或超过)的情况,尽管在一些情况下,较低的改变速率根据上下文(例如,根据视频质量)也是可以接受的——例如,在一些环境中,当可以保证每秒10个或更多个模板的改变时,在其他(例如,其中视频质量差得可以在某一程度上使静态的眼睛模糊)情况下,较低的速率是可以接受的,例如,每第三或甚至每第四或第五帧;或者在极端的情况下(例如,在视频质量尤其差的情况下)模板(仅)每秒改变甚至可以是可接受的。在一些实施例中,静态眼睛替换图像可以用于例如大约一秒的持续时间,并且接着,利用替换扫视视频眼睛短暂地进行动画(即,在短暂的连续区间上)。在实施例中,模板的改变可以多至每帧地进行。
[0076] 如所指示的,模板Ts是在所描述的实施例中的直接视线视频的帧,即,它们构成了有序序列的直接视线帧。可以从该序列中选择帧以用于用以下方式进行替换。
[0077] 可能仅有较短的直接视线视频可用——例如大约1至2秒有价值的帧。例如,针对手动捕获,可以仅要求用户在训练期间看着相机大约持续1秒。由于该原因,循环该模板帧。帧的简单循环将再次在视觉上看起来奇怪,这是因为其将引入规则的、周期性的变化。人的视觉系统对于这样的变化是敏感的并且因此它们在流出的视频馈送中是可感知的。
[0078] 因此,替代地通过找到最小化视觉差异的转变来随机地循环这些帧。
[0079] 图6示出了可以用于该目的的合适的方法的流程图。方法在每次发生控制器247重新初始化时重置,例如,由被检测的视频中用户的眨眼所触发。视频修改在重新初始化之后被恢复(S602)。在步骤S604处,如下选择要用于视线校正的初始模板对T={t1,tr},即要用于视频修改的恢复之后的第一个模板对。将多个模板Ts中的数个(一些或全部)模板与如从相机124接收的一个或多个当前的和/或最近的实时帧进行比较以找到与当前帧匹配的模板对,并且由模板选择模块204选择(S606)匹配的模板对以由视线校正模块202用于校正当前帧。最近的帧指的是在来自当前视频的较小数量的帧内——例如顺序1或10。模板对与当前帧匹配指的是展现较高等级的视觉相似度的左模板和右模板,其中它们当前的和/或最近的帧分别的对应部分相对于与当前的和/或最近的帧比较的任何其他的模板帧。这确保了平滑地转换回活动视线校正。
[0080] 在步骤S602处选择的左模板和右模板中的每个模板来自模板视频的相应帧。
[0081] 在步骤S608处,针对左眼和右眼中的每一个,所述方法随机地分支到步骤S610或步骤S612。如果方法针对该眼睛而分支到步骤S610,则针对下一个直播帧来选择模板视频中的下一个模板视频帧的适用的部分(即,如果适用的话,包括右眼或左眼),即,紧跟在上一个选择的模板帧之后的模板帧的适用的部分被选择以用于紧跟在上一个校正的实时帧之后的直播帧。然而,如果该方法针对该眼睛而分支到步骤S612,则针对下一实时帧而选择与模板视频中的下一模板帧不同的模板帧的适用的部分。该不同的模板帧可以比针对该眼睛上一次使用的模板帧更早或更晚,即,这包含在模板视频中向前或向后跳转。该不同的模板帧的部分与上一次选择的模板相匹配(在与上文中所描述的意义相同),并且以该基础选择以使得该跳跃不奇怪。该方法以该方式循环直到发生另一重新初始化为止,例如,如由被检测的用户的另一眨眼所触发的(S614),在该点处,将方法重置到S602。应当注意的是,“随机地”并不排除在进行决定时的一些智能,只要存在随机化的元素。例如,如果没有近得足够匹配上一次选择的模板帧的其他的模板帧,则来自S608至S612的预期的分支可以“被改写”以迫使该方法替代地跳转至S610。
[0082] 通过针对要以该方式校正的不同的实时帧来选择不同的模板帧,流出的视频中的替换眼睛总是展现动画。
[0083] 步骤S608-S612构成随机化的选择过程,并且是在步骤S608处引入的随机元素避免了替换眼睛展现能够由人视觉系统感知为不自然外观的规则的、周期性的动画。可以调节步骤S608的分支以调整跳跃至步骤S614或步骤SS16的可能性,以实现最自然的效果从而作为正常设计过程的一部分。
[0084] 可以从相同的或不同的模板帧来选择构成模板对T的左模板和右模板(tl,tr)。它们以这样的方式链接:即使它们来自不同的视频帧,经修改的视频帧中用户的瞳孔之间的距离也是大体上未改变的。这确保了替换眼睛不会无意地出现否则有可能出现的内斜视(或者如果用户实际上内斜视,则保留其自然的内斜视状态),例如,在扫视运动期间捕获的眼睛的模板,以及在固定阶段所捕获的其他模板中的一个。换句话说,左模板和右模板被链接,即选择它们来彼此匹配,以便大体上保持在经修改的帧F’中用户的自然眼睛对齐。因此,在步骤S606和S612的选择中、以及在步骤S608的分支中,存在一些相互依赖以确保每个模板对中的个体模板总是大体上彼此匹配。
[0085] 模板修改。
[0086] 用于替换用户的眼睛的模板Ts能够由模板修改模块212访问。眼睛替换模板Ts中的像素具有语义含义——皮肤、虹膜、巩膜等——其可以例如由图像识别来确定。这允许在将眼睛外观投入到实时视频之前对眼睛外观进行修改,例如,改变虹膜颜色、使得眼睛对称、执行眼睛变白等。该改变可以基于用户输入的修改数据,例如,由用户经由UI、自动化、或两者的组合来输入一个或多个修改设置。
[0087] 当视线校正系统201运行时,可以在通话期间执行该模板修改。
[0088] 尽管针对每一只眼睛独立地选择了模板对,但这不是必须的。例如,可以针对任何给定的要修改的帧总是选择单个模板(例如,以信号模板视频帧的形式),其中两个替换眼睛图像都来自该单个帧,以使得所述对不是针对每只眼睛独立地选择的。此外,尽管在上文中,在近端设备处执行的近端视频的视线校正可以在已经经由网络和解压缩从近端设备接收了其之后在远端设备处实现。此外,同时使用深度传感器和相机两者来进行脸部跟踪可以提供更准确的脸部跟踪。但是,仍然有可能仅使用相机或仅使用深度传感器来执行可接受地准确的脸部跟踪,并且在实践中,已经发现具有深度和没有深度的结果没有显著不同。还有可能使用不同的相机来跟踪用户的脸以作为替代或补充(例如,两个立体地布置的相机可以提供3D跟踪)。
[0089] 应当注意的是,在本文中记载的存储的多模板每个包括不同的图像,这不排除也存储有一些重复的模板的可能性。即,术语仅意味着存在多个模板,其中的至少一些是不同的以使得可以选择不同的眼睛图像来实现期望的动画。
[0090] 根据第一方面,一种用于校正用户的视线的用户设备包括:输入端,其被配置为从相机接收用户的脸的视频;脸部跟踪模块,其被配置为在活动跟踪模式中跟踪所述用户的脸的至少一个角坐标并且输出在可能值的范围内的所述至少一个角坐标的当前值;以及视线校正模块,其被配置为仅当所述脸部跟踪模块处于所述活动跟踪模式中并且所述当前值在所述用户的脸朝向所述相机的可能值的范围的受限子范围内时,修改所述视频的帧以校正所述用户的视线,由此所述用户在经修改的帧中被感知为直接看着所述相机。
[0091] 在实施例中,所述脸部跟踪模块还被配置为跟踪所述用户的脸的至少一个空间坐标并且输出每个在可能的值的相应范围之内的所跟踪的坐标的当前值;以及,仅当所述脸部跟踪模块处于活动跟踪模式之下并且当前值每个在所述用户的脸朝向相机并且在受限空间区域之内的可能值的相应范围的相应受限子范围内时,才可以修改所述帧。例如,所述至少一个空间坐标可以包括所述用户的脸的至少两个或至少三个空间坐标。
[0092] 所述脸部跟踪模块可以被配置为跟踪所述用户的脸的至少两个角坐标并且输出所跟踪的每个在可能值的相应范围之内的至少两个坐标的当前值;并且仅当跟踪模块处于活动跟踪模式中并且当前值每个在所述用户的脸朝向相机的可能值的相应范围的相应受限子范围内时,才可以修改所述帧。例如,所述至少两个角坐标可以包括所述用户的脸的至少三个角坐标。
[0093] 所述脸部跟踪模块可以被配置为跟踪所述用户的脸的至少一个空间坐标,并且所述用户设备可以包括限制设置模块,所述限制设置模块被配置为基于对所述至少一个空间坐标的跟踪而改变所述至少一个角坐标的受限子范围。
[0094] 所述用户设备可以包括显示器和限制设置模块,所述限制设置模块被配置为基于指示所述显示器的当前状态的显示数据来改变所述至少一个角坐标的受限子范围。例如,所述用户设备可以包括网络接口,所述网络接口被配置为接收在显示器上显示的另一用户的远端视频,并且基于显示所述远端视频的当前显示参数来改变所述至少一个角坐标的受限子范围。例如,可以基于远端视频在显示器上占据的当前位置和/或当前区域来改变所述至少一个角坐标的受限子范围。
[0095] 所述用户设备可以包括保存一个或多个模板的计算机存储,每个模板包括直接看着相机的用户的眼睛的图像,其中通过用相应的模板替换用户的眼睛中的每个眼睛来校正视线。
[0096] 在一些这样的实施例中,所述一个或多个模板中的每个模板可以包括直接看着相机的用户的眼睛的图像以及围绕眼睛的用户的脸的至少部分,其中,所述视线校正模块被配置为将这些部分与帧的对应部分混合。
[0097] 可替代地或另外地,用户设备可以包括模板修改模块,模板修改模块被配置为修改模板,以修改眼睛的视觉外观。例如,模板修改模块可以被配置为修改模板,以:改变虹膜颜色、校正眼睛的不对称性、和/或使眼睛变白。
[0098] 可替代地或另外地,视频的至少一个连续区间的每一帧可以被修改为用针对该帧所选择的相应的模板来替换用户的眼睛中的每个眼睛;所述用户设备可以包括模板选择模块,其被配置为选择针对所述连续区间来选择模板,不同的模板是针对所述连续区间的不同帧来选择的以使得所述用户的眼睛在整个所述连续区间期间展现动画。
[0099] 用户设备可以包括网络接口,所述网络接口被配置为在流出的视频流中将经修改的帧经由网络发送至另一用户设备。
[0100] 根据校正用户的视线的方法的第二方面包括:从相机接收所述用户的脸的视频;当脸部跟踪模块处于活动跟踪模式中时,从脸部跟踪模块接收脸部跟踪模块正在跟踪的用户的脸的至少一个角坐标的当前值;以及仅当脸部跟踪模块处于活动模式中并且当前值在所述用户的脸朝向相机的可能值的范围的受限子范围内时,修改视频的帧以校正所述用户的视线,由此所述用户在经修改的帧中被感知为直接看着相机。
[0101] 所述方法可以包括根据在本文中所公开的用户设备和/或系统功能中的任何一个的步骤。
[0102] 根据第三方面,用于校正用户的视线的用户设备包括:输入端,其被配置为从相机接收用户的脸的视频;保存多个模板的计算机存储,每个模板包括直接看着相机的用户的眼睛的不同图像;视线校正模块,其被配置为修改视频的至少一个连续区间的每一帧,以用针对所述帧所选择的相应模板中的眼睛来替换所述用户的眼睛中的每个眼睛,由此所述用户在经修改的帧中被感知为直接看着所述相机;以及模板选择模块,其被配置为针对所述连续区间来选择模板,其中,针对所述连续区间的不同帧来选择不同的模板以使得所述用户的眼睛在整个所述连续区间期间展现动画。
[0103] 在实施例中,多个模板中的每个模板可以是模板视频的帧的至少一部分。
[0104] 所述模板选择模块可以被配置为使用随机化的选择过程来选择模板。
[0105] 作为特定的示例,所述随机化选择过程可以包括,在已经选择了用于由视线校正模块使用的初始模板之后,随机地选择接下来要由视线校正模块使用的模板,即以下中的一个:模板视频中的下一帧的至少一部分或者模板视频中与初始模板相匹配并且不是模板视频中下一帧的帧的至少一部分。
[0106] 所述用户设备可以包括眨眼检测模块,其被配置为检测所述用户何时眨眼,并且针对其中检测到所述用户在眨眼的所接收的视频的帧而停止由所述视线校正模块进行的修改。
[0107] 在一些情况下,在检测到用户眨眼之后,可以将至少一些模板与所接收的视频的当前帧进行比较以选择与所接收的视频的当前帧匹配的初始模板。在一些这样的情况下,可以根据在上文中所提及的特定示例的随机化选择过程来选择模板,此后直到用户再次眨眼为止。
[0108] 所述模板选择模块可以被配置为针对至少一个连续区间的每一帧或每两帧而执行个体的模板选择。例如,模板选择模块可以被配置为使得模板每一帧或每两帧地改变。
[0109] 所述用户设备可以包括模板捕获模块,其被配置为向用户输出他们应该直接看着相机的通知,并且当他们这么做时捕获所述模板。
[0110] 作为另一示例,所述用户设备包括模板捕获模块,其被配置为自动地检测用户何时直接看着相机,并且作为响应捕获所述模板。
[0111] 所述用户设备可以包括相机或被配置为从所述相机接收视频的外部接口。例如,所述外部接口可以是经由其从网络接收视频的网络接口。
[0112] 所述用户设备可以包括模板修改模块,其被配置为修改所述模板以便修改所述眼睛的视觉外观,例如用于:改变虹膜颜色、校正眼睛的不对称、和/或使眼睛变白。
[0113] 所述用户设备可以包括网络接口,其被配置为在流出视频流中将经修改的帧经由网络发送至另一用户设备。
[0114] 所述模板中的每个模板可以包括直接看着相机的用户的眼睛的图像和围绕所述眼睛的用户的脸的至少一部分,并且所述视线校正模块可以被配置为当针对所述帧来选择所述模板时,将所述部分与所述帧的对应部分混合。
[0115] 所述用户设备可以包括脸部跟踪模块,其被配置为在活动跟踪模式中,跟踪用户的脸的至少一个角坐标并且输出在可能值的范围之内的至少一个角坐标的当前值;仅当脸部跟踪模块处于活动模式下并且当前值在所述用户的脸朝向相机的可能值的范围的受限子范围内时,修改所接收的视频。
[0116] 根据第四方面,校正用户的视线的方法包括:从相机接收用户的脸的视频;访问所存储的多个模板,每个模板包括直接看着相机的用户的眼睛的不同图像;以及修改所述视频的至少一个连续区间的每一帧,以用针对所述帧所选择的相应模板中的眼睛来替换所述用户的眼睛中的每个眼睛,由此所述用户在经修改的帧中被感知为直接看着所述相机,其中,针对所述连续区间的不同帧来选择不同的模板以使得所述用户的眼睛在整个所述连续区间期间展现动画。
[0117] 所述方法可以包括根据在本文中所描述的用户设备和/或系统功能中的任何一个的步骤。
[0118] 根据第五方面,一种用于校正用户的视线的用户设备,包括:输入端,其被配置为从相机接收用户的脸的视频;保存一个或多个模板的计算机存储,每个模板包括直接看着相机的用户的眼睛的不同图像;视线校正模块,其被配置为修改视频的至少一些帧,以用相应模板的眼睛来替换用户的眼睛中的每个眼睛,由此用户在经修改的帧中被感知为直接看着相机;以及模板修改模块,其被配置为修改用于所述替换的一个或多个模板,以便在经修改的帧中修改用户的眼睛的视觉外观。
[0119] 还公开了一种对应的计算机实现的方法。
[0120] 应当注意的是,第一方面和第二方面的实施例的任何特征还可以在第三方面和第四方面的实施例中实现,并且反之亦然。同样内容加上必要的变更等同地适用于于第五方面。
[0121] 根据第六方面,一种用于校正用户的视线的计算机程序产品,包括在计算机可读存储介质上存储并且当在计算机上运行时被配置为实现在本文中所公开的功能中的任何一个功能的代码。
[0122] 通常而言,可以使用软件、固件硬件(例如,固定逻辑电路)、或这些实现的组合来实现在本文中所描述的功能中的任何一个功能。如在本文中所使用的,术语“模块”、“功能”、“组件”和“逻辑”一般表示软件、固件、硬件、或其组合。在软件实现的情况下,模块、功能、或逻辑表示当在处理器(例如,一个CPU或多个CPU)上执行时执行指定任务的程序代码。所述程序代码可以存储在一个或多个计算机可读存储设备中。下文描述的技术的特征是与平台无关的,这意味着这些技术可以在具有多种处理器的多种商业计算平台上实现。
[0123] 例如,诸如用户设备104、120之类的设备还可以包括使得设备的硬件执行操作的实体(例如,软件),例如处理器功能块等。例如,计算设备可以包括可以被配置为保存使得计算设备并且更加特别地使得操作系统和计算设备的相关联的硬件执行操作的计算机可读介质。因此,所述指令用于配置操作系统和相关联的硬件执行操作,并且以该方式引起操作系统和相关联的硬件转换以执行功能。所述指令可以是由计算机可读介质通过多种不同的配置而向计算设备提供的。
[0124] 计算机可读介质的一个这样的配置是信号承载介质,并且因此被配置为例如经由网络向计算设备发送指令(例如,作为载波)。计算机可读介质还可以被配置为计算机可读存储介质并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪速存储器、硬盘存储器、以及可以使用磁的、光学的、以及其他技术来存储指令和其他数据的其他存储器设备。
[0125] 尽管已经用特定于结构特征和/或方法动作的语言描述了实施例,但应当理解的是,在所附权利要求中所定义的实施例不一定限于所描述的具体的特征或动作。相反,具体的特征和动作是作为实现所要求保护的实施例的示例形式而公开的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈