CN112470164A - 姿态校正 - Google Patents
姿态校正 Download PDFInfo
- Publication number
- CN112470164A CN112470164A CN201980035239.3A CN201980035239A CN112470164A CN 112470164 A CN112470164 A CN 112470164A CN 201980035239 A CN201980035239 A CN 201980035239A CN 112470164 A CN112470164 A CN 112470164A
- Authority
- CN
- China
- Prior art keywords
- face
- video
- viewpoint
- background
- frames
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012937 correction Methods 0.000 title abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 92
- 239000011159 matrix material Substances 0.000 claims description 31
- 230000000694 effects Effects 0.000 claims description 16
- 230000002123 temporal effect Effects 0.000 claims description 14
- 230000000087 stabilizing effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 26
- 230000001815 facial effect Effects 0.000 description 15
- 230000015654 memory Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 12
- 230000033001 locomotion Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 239000011521 glass Substances 0.000 description 5
- 238000009499 grossing Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 210000000887 face Anatomy 0.000 description 3
- 210000001331 nose Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000740 bleeding effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/166—Detection; Localisation; Normalisation using acquisition arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/17—Image acquisition using hand-held instruments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20068—Projection on vertical or horizontal image axis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
- Geometry (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一些实施方式可以包括用于移动设备捕捉的视频的姿态校正的计算机实现的方法、计算机可读介质和/或系统。
Description
背景技术
有时,当用户在视频通话中使用移动设备(例如,移动电话,平板电脑等)时,用户可能相对于用户的面部以一定角度握住或放置移动设备,使得移动设备以不适当的角度——例如,小于最佳的角度以查看用户的表情、产生具有面部畸变的图像的角度等——捕捉用户的图像。例如,用户可能以电话指向朝着用户面部的向上角度的方式握住面向上的移动电话,这可能会以小于最佳的角度捕捉用户(例如,从下巴和鼻子之下向上看),并可能导致用户面部看起来畸变或看起来像是用户没有面向通话中的其他参与者,并且眼神交流似乎消失了。另外,用户的手可能会晃动,并且导致针对视频通话捕捉了图像中的抖动。
本文提供的背景技术说明是为了总体上呈现本公开的背景的目的。在本背景技术部分中所描述的范围内,目前述及的发明人的工作以及在申请时可能没有其他资格作为现有技术的说明的方面,未明确或暗含地被承认作为针对本发明的现有技术。
发明内容
一些实施方式主要涉及移动设备视频通话,特别涉及移动设备所捕捉的视频图像的姿态校正。
一些实施方式包括使用与用户设备相关联的深度相机捕捉用户的面部姿态和眼睛注视,并且执行面部姿态校正和面部姿态的稳定。
一些实施方式可以包括计算机实现的方法。该方法可以包括:接收包括多个帧的视频,该视频被在第一视点处的物理相机捕捉,其中,该视频包括与所述多个帧相对应的深度信息;和检测视频中的面部,其中,该面部在视频的一个或多个帧的前景部分中。
该方法也可以包括:基于与所述多个帧相对应的深度信息的一个或多个深度值来确定所述多个帧的前景部分;和将虚拟相机定位在第二视点,其中,第二视点与第一视点不同。该方法可以进一步包括:基于虚拟相机来获得前景部分的投影矩阵,该投影矩阵与第二视点相对应;和基于投影矩阵来生成包括经修改前景部分的经修改视频。
该方法也可以包括调整前景部分的投影矩阵,以减少用于捕捉视频的物理相机的镜头效应。在一些实施方式中,检测面部可以包括从背景平面中提取出面部,其中,该背景平面是基于深度信息来确定的。该方法还可以包括旋转背景平面以面对在第二视点处的虚拟相机。
在一些实施方式中,确定前景部分可以包括检测面部和背景,并且所述检测可以包括从背景中突出(extrude)面部的前景部分。在一些实施方式中,该突出可以包括:基于深度信息来检测面部深度;确定面部的外边缘的帧内的深度;以及将背景设置为包括在面部的外边缘的深度处以及超出面部的外边缘的深度处的帧的部分。
该方法还可以包括使背景模糊。该方法可以进一步包括确定视频的深度信息的时间历史。该方法还可以包括使用视频的深度信息的时间历史来提供视频重投影的滞后,以便保持重投影的连续性并且不响应于在正被重投影的面部前方移动的临时对象,其中,该临时对象在正被重投影的面部前方少于阈值时间段。
一些实施方式可以包括一种系统,该系统包括耦合至具有存储在其上的软件指令的非易失性计算机可读介质的一个或多个处理器,所述软件指令在被所述一个或多个处理器执行时,使所述一个或多个处理器执行操作。该操作可以包括:接收包括多个帧的视频,该视频被在第一视点处的物理相机捕捉,其中,该视频包括与所述多个帧相对应的深度信息;和检测视频内的面部,其中,该面部在视频的一个或多个帧的前景部分内。
该操作也可以包括:基于与所述多个帧相对应的深度信息的一个或多个深度值来确定所述多个帧的前景部分;和将虚拟相机定位在第二视点,其中,第二视点与第一视点不同。该操作可以进一步包括:基于虚拟相机来获得前景部分的投影矩阵,投影矩阵与第二视点相对应;和基于投影矩阵来生成包括经修改前景部分的经修改视频。该操作还可以包括稳定经修改视频的经修改前景部分。
该操作也可以包括调整前景部分的投影矩阵,以减少用于捕捉视频的物理相机的镜头效应。在一些实施方式中,检测面部包括从背景平面中提取出面部,其中,该背景平面基于深度信息来确定。
该操作还可以包括旋转背景平面面对在第二视点处的虚拟相机。在一些实施方式中,确定前景部分可以包括检测面部和背景,其中,该检测可以包括从背景中突出面部的前景部分。在一些实施方式中,该突出可以包括:基于深度信息来检测面部深度;确定面部的外边缘的帧内的深度;以及将背景设置为包括在面部的外边缘的深度处以及超出面部的外边缘的深度处的帧的部分。
该操作还可以包括使背景模糊。该操作可以进一步包括确定视频的深度信息的时间历史。该操作还可以包括使用视频的深度信息的时间历史来提供视频重投影的滞后,以便保持重投影的连续性并且不响应于在正被重投影的面部前方移动的临时对象,其中,临时对象在正被重投影的面部前方少于阈值时间段。
一些实施方式可以包括一种具有存储在其上的软件指令的非易失性计算机可读介质,所述软件指令在被一个或多个处理器执行时,使所述一个或多个处理器执行操作。该操作可以包括:接收包括多个帧的视频,该视频被在第一视点处的物理相机捕捉,其中,视频包括与所述多个帧相对应的深度信息;和检测视频内的面部,其中,该面部在视频的一个或多个帧的前景部分内。该操作也可以包括:基于与所述多个帧相对应的深度信息的一个或多个深度值来确定所述多个帧的前景部分;和将虚拟相机定位在第二视点,其中,第二视点与第一视点不同。
该操作可以进一步包括:基于虚拟相机来获得前景部分的投影矩阵,投影矩阵与第二视点相对应;和基于投影矩阵来生成包括经修改前景部分的经修改视频。该操作也可以包括稳定经修改视频的经修改前景部分。在一些实施方式中,确定前景部分可以包括检测面部和背景,其中,该检测包括从背景中突出面部的前景部分。
附图说明
图1是示出正被用于进行视频通话的示例用户设备的图,其中用户设备以可能产生较低质量视频的角度捕捉用户;
图2是示出正被用于进行视频通话的示例用户设备的图,其中用户设备以可能产生较低质量视频的角度捕捉用户,并且根据一些实施方式,使用虚拟视角来校正用户的姿态以产生较高质量的视频;
图3是示出视频通话的示例用户设备的视图,其中以可能产生较低质量视频的角度捕捉视频;
图4是示出视频通话的示例用户设备的视图,其中视频被重投影以生成经校正的姿态和较高质量视频;
图5是根据一些实施方式的用于姿态校正的示例方法的流程图;
图6是根据一些实施方式的用于姿态校正的示例方法的流程图;以及
图7是根据一些实施方式的被配置用于姿态校正的示例计算设备的图。
具体实施方式
一些实施方式包括用于修改或校正视频通话或会议中的用户姿态的方法和系统。用户可能会在相机处于可能会产生较低质量视频的角度的情况下参与视频通话,或者在通话期间在一些时间移动至这种角度。例如,基于用户正如何握住他们的电话,用户可能看起来是在视频中向上看。目前,大多数视频通话设备,例如,智能电话、笔记本电脑、平板电脑等,在设备的顶端都包括相机。这样的放置通常会产生对于视频通话而言小于最佳的图像。适合通过实施方式进行姿态校正的图像可以包括单个图像,诸如照片、电影胶片和其他动画图像、视频等。
一些实施方式可以通过使用虚拟视点(或虚拟相机角度)重投影用户的视频图像来创建经调整的视频通话出现,使得用户看起来处于产生经校正姿态的角度(例如,直接面对相机等)。一些实施方式还可以包括针对相机畸变的校正(例如,以消除大鼻子效应),减少(例如,由用户的手部移动引起的)抖动的效应等。
通过从视频帧捕捉颜色和深度信息,一种实施方式可以突出前景的深度。系统可以将虚拟相机放置在与设备的物理相机不同的角度(例如,直到给出其他人正直接看着用户的效应)。
一些实施方式可以包括三个主要操作:1)帧内面部检测;2)姿态校正;3)注视校正。在一些实施方式中,帧内面部检测可以包括使用提供面部姿态角度(例如,3D欧拉角)和面部在帧中的位置的技术(诸如ARKit或ARCore,它们是其相应所有者的商标)。姿态角度可以包括面部相对于相机的角度(例如,向正前看为0,0,0,并且当面部绕轴之一旋转时,那么对应于该轴的角度在3D欧拉角中会变化)。位置是彩色图像内的x,y位置,设备可以从该位置确定相对于设备的位置(例如,x,y,z位置)。可以将额外的填充添加到帧以提供缓冲。每当用户的面部在相对于相机的角度阈值(或安全)范围内(例如,绕x或y轴正负约20度)时,系统都返回高置信度值,该高置信度值指示用户的面部用户位于视频帧内,使得本文所述的姿态校正技术最有可能有效。如果用户面部的图像在填充区域中,则置信度较低(例如,指示本文所述的姿态校正技术可能无法在给定用户面部位置的情况下有效地工作),并且随着面部在填充区域中的部分增大而降低。如果用户在可接受范围(例如,帧和/或填充)之外,则不返回置信度(或零或接近零的置信度值)。
可以基于帧内面部检测来向用户提供置信度、原因或依据和/或指导。如上所述,置信度指示可以将姿态校正技术有效地应用于视频帧或其他图像内的给定面部位置的置信度水平。原因或依据可以包括为何置信度得分可能是低的指示(例如,面部太靠近边界等)。指导可以包括系统提供的指示(例如,经由图形用户界面),以帮助引导用户校正已经引起低置信度得分的问题。例如,如果置信度低,则可以确定原因,并可以将基于该原因的反馈提供给用户(例如,对于较低的置信度的增加透明度的黑色阴影,或者是引导用户在帧内向后移动的小箭头等),以帮助指导用户改变视频捕捉从而提高置信度。
当图像捕捉设备提供深度数据,例如,使用深度传感器或该设备的其他硬件捕捉的实时深度数据时,实施方式可以将此类数据与面部姿态一起考虑在内。相机RGB反馈可以表示为垂直于相机向前(例如,沿朝着相机正捕捉的对象的向前方向指向相机镜头之外的矢量)并拉伸以填充视域(view frustum)的底部的平面。在一些实施方式中,姿态校正可以包括三个操作:背景检测、突出和旋转。
在一些实施方式中,背景检测可以包括使用深度数据来检测或确定背景。使用实况深度帧进行背景检测存在两个主要技术问题:噪声和渗色(bleeding)效应(例如,由于边缘附近数据丢失而造成的类似光晕的伪影)。一些实施方式通过应用索贝尔(Sobel)滤波器检测可能作为背景被处理的区域的边缘,从而为渗色效应问题提供了解决方案。为了解决诸如空间或时间噪声之类的噪声问题,可以使用平滑算法。
可以为上述功能实现着色器,该着色器返回定义给定点是背景还是前景的置信度的范围(例如[0,1])内的值(因而提供可以用于前景部分的边缘周围的淡入淡出效应的信息)。着色器可以包括每像素分类器,每像素分类器在GPU而不是CPU上运行以实现效率。着色器接收彩色图像作为输入,并产生前景/背景掩模作为输出图像(例如,红色=前景,黑色=背景等)。另一个着色器使用彩色图像、深度图像、前景/背景掩模和/或相机内参(例如,相机的焦距以及其他相机参数或设置)作为输入来执行姿态校正。
一些实施方式可以包括一个或多个视频帧(或其他图像)的至少一部分的突出和旋转。突出和旋转可以包括使用平滑视差图数据。视差图数据可以应用于图像的前景部分(在相机平面表示图中),以将前景像素移近相机。视差图是表示深度数据(例如,表示设备相机到点的距离)的另一种方式。
在一些实施方式中,在一个或多个帧中(例如,在第一帧中),虚拟相机位置被更新为垂直于面部平面。更新虚拟相机位置可以包括将相机的前向矢量设置为与面部锚点的前向矢量相反。面部锚点包括在面部检测期间计算出的面部位置和面部旋转角度。在一些实施方式中,可以使用计算来更新相机的投影矩阵以穿过图像平面的四个边缘,该计算在无论何时设备移动时进行,并且考虑到面部姿态和“前姿态”之间的当前增量,以便不消除有意的面部移动。在一些实施方式中,可以为前景像素保持投影矩阵,并且可以跳过针对背景像素的投影以减少计算时间,但要注意的是前景像素是可见的。可以放大前景以隐藏与背景的任何不完美匹配,使得前景遮挡背景,然后放大前景以覆盖由面部旋转创建的任何间隙。
一些实施方式可以包括背景处理。在一些实施方式中,背景处理可以包括调整背景,该背景可能由于旋转而被拉伸。为了使背景不具有干扰性外观,所以可以在背景上使用模糊效应。
本文提供的系统和方法可以克服一些常规视频通话系统和方法的一个或多个缺陷。例如,某些常规视频通话系统可能不提供检测、校正或调整相机角度的能力,该相机角度可能有助于捕捉较低质量的视频,或者可能导致视频帧出现其他问题,诸如夸张的特征和/或移动效应。随着诸如数码相机、带内置相机的电话、带相机的可穿戴设备、头戴式设备、平板电脑、个人计算机等的数字图像捕捉设备的容易获得性,用户可能会频繁捕捉或传输视频。
本文提供的系统和方法可以克服常规视频捕捉系统的一种或多种缺陷,以向用户提供对视频或其他图像的自动姿态校正。一些常规系统的技术问题可能在于这样的系统不基于图像分析和对应的置信度得分来检测和校正姿态。所公开的主题涉及用于校正视频或其他图像的姿态和/或自动校正其他视频或图像问题的特定技术。所公开的主题的一些实施方式提供了对一个或多个上述技术问题的解决方案。例如,通过对视频重投影,一些实施方式可以实现高质量视频而不管相机角度。
视频在本文中用作描述主题的示例。其他类型的图像可以与所公开的主题的实施方式一起使用。图像可以是静态图像(例如,没有运动的单个帧),动画图像,视频(例如,具有多个帧)等。例如,静态图像可以描绘一个或多个对象,而动画图像可以描绘在图像中变化的一个或多个对象(例如,实况照片,其捕捉眼睛在闭合和张开之间转换的面部,嘴部从不微笑移动到微笑位置的面部,等等)。视频可以包括描绘一个或多个人或对象的多个帧。可以为任何类型的图像提供姿态校正,并且可以包括相同和/或不同类型的图像组。
图1是示出使用用户设备104进行视频通话的示例用户102的图。用户设备104处于相对于用户面部的一个角度,所述用户设备104正在以可能产生诸如图3中所示的示例较低质量视频帧的较低质量视频的角度捕捉用户的视频。
由于用户设备104相对于用户102的面部的角度,从相机到用户头部的顶部的第一距离106与从用户设备104的相机到用户102面部的底部的第二距离108不同(例如,更长)。用户设备104的向上角度引起的距离106和108之间的差异的结果创建可能不提供高质量视频(例如,可能引起畸变等)的姿态(例如,如图3中的设备302上所示)。
除了姿态处于可能产生较低质量的视频的角度之外,也可能在视频中引入其他问题,诸如移动效应(例如,由于用户102的手部移动或抖动)以及由于用户设备104的镜头引起的图像效应(例如,大鼻子效应)。这些问题可能由相机在用户设备上(例如,设备的顶部处)的物理放置,以及用于握住诸如移动电话或可穿戴设备——例如智能手表或其他设备——的用户设备的共同姿势引起,其中,握住电话(或其他设备)的手部处于相对于用户面部的向下角度。除了图像的前景部分的畸变(例如,以可能产生较低质量视频304的角度捕捉的姿态)之外,相机角度也可能导致畸变的背景306。
图2是示出示例用户设备104正被用于进行视频通话的视图,其中用户设备104以可能产生较低质量视频的角度(例如,106和108之间的差异)捕捉用户102。图2也示出了用于重投影用户102的图像并校正用户的姿态的虚拟视点202。虚拟视点202大致平行于用户102的面部平面(或者与用户设备104相比,至少更靠近于平行平行于面部平面),并且使得从虚拟视点202到用户102面部的顶部的第一距离204大约与从虚拟视点202到用户102面部的底部的第二距离206相同。虚拟视点可以用于在本文所述的视频中重投影用户的面部,从而产生如图4中所示的经调整的姿态404。在图4中,接收重投影的视频的设备402包括用户的经调整的姿态404,以及与图3中的未旋转背景306相比已经旋转从而降低畸变的背景406。虚拟视点202在面部前方(例如,具有从设备到面部的相同距离,但是旋转到用户面部正前方)。
每个用户设备(或客户端设备)都可以是任何类型的电子设备,例如台式计算机,膝上型计算机,便携式或移动设备,相机,蜂窝式电话,智能电话,平板计算机,电视,电视机顶盒或娱乐设备,可穿戴设备(例如,显示眼镜或护目镜,头戴式显示器(HMD),腕表,耳机,臂章,珠宝等),支持虚拟现实(VR)和/或增强现实(AR)的设备,个人数字助理(PDA),媒体播放器,游戏设备等。一些客户端设备可能还具有类似于数据库106或其他存储的本地数据库。在其他实施方式中,网络环境100可以不具有所示的所有组件和/或可以具有其他元件,包括代替或者除了本文所述的那些元件之外的其他类型的元件。
用户界面可以使得能够在客户端设备上显示图像、图像构图、数据以及其他内容,和通信、隐私设置、通知以及其他数据。可以使用客户端设备上的软件,服务器设备上的软件和/或客户端软件和在服务器设备上执行的服务器软件(例如,与服务器系统通信的应用软件或客户端软件)的组合来显示这样的界面。用户界面可以由客户端设备或服务器设备的显示设备(例如,显示屏,投影仪等)显示。在某些实施方式中,在服务器系统上运行的应用程序可以与客户端设备进行通信,以在客户端设备处接收用户输入,并且在客户端设备处输出数据,诸如视觉数据、音频数据等。
在一些实施方式中,一个或多个客户端设备和/或服务器系统可以提供姿态校正。姿态校正可以允许系统(例如,客户端设备或服务器设备)为具有捕捉问题的视频自动提供姿态校正,在此描述了其一些示例。姿态校正系统和方法可以将经校正的视频提供给一个或多个相关联的用户界面,该用户界面显示在与接收到经校正的视频的客户端设备相关联的显示设备上。其他应用也可以与本文所述的一个或多个特征一起使用,诸如图像管理应用,浏览器,通信应用等。
本文所述的特征的各种实施方式可以使用任何类型的系统和/或服务。例如,社交网络服务,图像收集和共享服务,辅助消息服务或其他联网服务(例如,连接到互联网)可以包括由客户端和服务器设备访问的一个或多个所述的特征。任何类型的电子设备都可以利用本文所述的特征。一些实施方式可以在与计算机网络断开连接或断续地连接的客户端或服务器设备上提供本文所述的一个或多个特征。在一些示例中,包括或连接到显示设备的客户端设备可以检查并显示存储在客户端设备本地(例如,未经由通信网络连接的)的存储设备上的图像,并且可以提供本文所述的用户可见的特征和结果。
图5是根据一些实施方式的用于姿态校正的示例方法500的流程图。在一些实施方式中,方法500可以例如在客户端设备上,一个或多个服务器设备上和/或在一个或多个服务器设备和一个或多个客户端设备两者上实现。在所述示例中,实现系统包括一个或多个数字硬件处理器或处理电路系统(“处理器”),以及一个或多个存储设备。在一些实施方式中,一个或多个客户端设备和/或服务器设备的不同组件可以执行方法500的不同方框或其他部分。
一些实施方式可以基于用户输入发起方法500。例如,用户可能已经从所显示的用户界面选择发起方法500。在一些实施方式中,方法500或其多个部分可以通过指导由用户经由用户输入执行。
在一些实施方式中,方法500或其多个部分可以由设备自动发起。例如,可以基于一个或多个特定事件或条件的发生来执行该方法(或其部分)。例如,这样的事件或条件可以包括用户以可能产生较低质量视频的相机角度参与视频呼叫,和/或可以在实现方法500的设备的设置中指定的一个或多个其他事件或条件发生。
在方框502,在方法500的实施方式中检查是否已经获得使用用户数据的用户同意(例如,用户许可)。例如,用户数据可以包括用户视频或图像。在一些实施方式中(例如,用于面部检测和/或姿态校正),本文所述的方法的一个或多个方框可以使用这样的用户数据。方框502可以作为共享建议框架的一部分执行和/或验证在功能图像归档建议框架级别提供的同意,使得只有在功能图像归档建议框架级别获得用于执行功能图像归档建议的用户同意时才将调用方框504以及之后。如果已经从针对其可以在方法500中使用用户数据的相关用户获得了用户同意,则在方框504中,确定可以利用如针对那些方框所述的用户数据的可能使用来实现本文方法的方框,并且方法继续到方框506。如果未获得用户同意,则在方框506中确定将实现方框而不使用用户数据,并且方法继续到方框506。在一些实施方式中,如果尚未获得用户同意,则不执行方法500的其余部分,和/或不执行需要用户数据的特定方框。
在508,确定视频帧内的面部位置。确定面部位置可以包括接收包括多个帧的视频,视频由在第一视点处的物理相机(例如,设备104中的相机)捕捉。在一些实施方式中,视频可以包括针对多个帧中的一个或多个的深度信息。确定面部位置还可以包括检测视频内的面部,其中,面部在视频的一个或多个帧的前景部分内。在一些实施方式中,可以使用用于检测面部的已知技术来执行面部检测。处理继续到510。
在510,执行姿态校正。姿态校正可以包括在视频内重投影面部和/或背景,以创建经调整的面部姿态和/或降低镜头效应或其他图像畸变。下面结合图6详细地描述姿态校正。处理继续到512。
在512,可选地对经姿态校正的视频执行注视校正。注视校正可以包括改变视频内的面部的眼睛部分,从而对应于在504应用的姿态校正。处理继续到514。
在514,可选地稳定经姿态校正的面部。稳定化可以包括基于用户设备的移动来应用逆变换作为变换来稳定面部姿态。例如,稳定化可以只考虑用户设备移动,而不考虑视频不同帧之间的面部移动。
在一些实施方式中,可以执行方框502-514。在其他实施方式中,可以执行方框502-514的子集。例如,执行方框508和510。在另一实施方式中,执行方框508、510和514。在又另一实施方式中,执行方框508、510和512。在上述实施方式中,可以以不同的顺序执行方框(例如,510和508;514、510和508;或者512、510和508等)。
稳定化还可以包括:确定视频的深度信息的时间历史(例如,在给定时间段内捕捉的不同视频帧中捕捉的深度信息的时间序列)和使用深度信息的时间历史来提供针对视频重投影的滞后(或定义的迟滞)。滞后可以用于保持重投影的连续性,使得姿态校正方法不响应于(例如,包括在重投影中)在正被重投影的面部前方移动的任何临时对象。例如,在面部前方移动的临时对象(例如,用户的手部或其他对象)可以包括在低于阈值时间段内检测到或重投影的对象。视频重投影的滞后所提供的迟滞可能足够(例如,等于或大于阈值时间段),以将临时对象从重投影中排除,以便使重投影的视频不会受到在重投影的面部之前或附近通过的临时对象的干扰。
在图5中,将各种方框(例如,方框502-514)示出为被顺序地执行。然而,应明白,可以方便地将这些方框重布置以适合特定实施例,并且在一些实施例中,可以同时执行这些方框或其部分。还应明白,在一些示例中,可以去除各种方框,将其划分为附加的方框,和/或与其他方框组合。
图6是根据一些实施方式的用于姿态校正的示例方法600的流程图。在一些实施方式中,方法600例如可以在客户端设备、一个或多个服务器设备上,和/或在服务器设备和客户端设备两者上实现。在所述示例中,实现系统包括一个或多个数字硬件处理器或处理电路系统(“处理器”)以及一个或多个存储设备。在一些实施方式中,一个或多个客户端设备和/或服务器设备的不同组件可以执行方法600的不同方框或其他部分。
一些实施方式可以基于用户输入来发起方法600。用户例如可以从所显示的用户界面选择方法600的发起。在一些实施方式中,方法600或其多个部分可以利用指导由用户经由用户输入执行。
在一些实施方式中,方法600或方法的多个部分可以由设备自动发起。例如,可以基于一个或多个特定事件或条件的发生来执行该方法(或其多个部分)。例如,这样的事件或条件可以包括用户以可能产生较低质量视频的相机角度参与视频呼叫,和/或可以在实现方法500的设备的设置中指定的一个或多个其他事件或条件发生。
在方框602,在方法600的实施方式中检查是否已经获得使用用户数据的用户同意(例如,用户许可)。例如,用户数据可以包括用户视频或图像。在一些实施方式中(例如,用于面部检测和/或姿态校正),本文所述的方法的一个或多个方框可以使用这样的用户数据。方框602可以作为共享建议框架的一部分执行和/或验证在功能图像归档建议框架级别提供的同意,使得只有在功能图像归档建议框架级别获得用于执行功能图像归档建议的用户同意时才将调用方框604以及之后。如果已经从针对其可以在方法600中使用用户数据的相关用户获得了用户同意,则在方框604中,确定可以利用如针对那些方框所述的用户数据的可能使用来实现本文方法的方框,并且方法继续到方框606。如果未获得用户同意,则在方框606中确定将实现方框而不使用用户数据,并且方法继续到方框606。在一些实施方式中,如果尚未获得用户同意,则不执行方法600的其余部分,和/或不执行需要用户数据的特定方框。
在608,接收视频或视频的一部分,其中视频包括多个帧。视频被在第一视点处的物理相机(例如,设备104中的相机)捕捉。视频可以包括正被用户设备捕捉以传输到一个或多个其他设备的实况视频。最初可以接收视频的一个或多个帧,然后是一个或多个附加的视频帧。可以在正被捕捉的视频的逐帧基础上执行姿态校正。在一些实施方式中,一个或多个视频帧包括深度信息。深度图和视差图数据可以从深度传感器获得。深度传感器可以是任何合适的深度传感器。可以在视频中检测到面部,并且面部可以包括以可能导致畸变或通常较低质量视频的角度捕捉的姿态。可以通过上文讨论的面部检测中的旋转(例如,面部姿态角度)来确定不讨人喜欢的姿态。在一些实施方式中,系统可以检测到有意的头部旋转(例如,点头等),并且不针对有意的旋转进行校正。面部姿态和深度信息可以被实时或接近实时地捕捉。处理继续到610。
在610,确定视频帧的前景和背景部分。例如,一些实施方式可以包括基于与多个帧相对应的深度信息的一个或多个深度值来确定多个帧的前景部分。确定前景和背景部分还可以包括应用索贝尔滤波器(或其他边缘检测技术)来检测边缘。边缘可能是背景或前景。在一些实施方式中,与非边缘相比,较重的平滑操作可以被应用于可能包括前景和背景的边缘,以解决两个问题:1)深度数据是凹凸不平图,并且需要平滑以帮助使各个深度点之间的连接更平滑;和2)在边缘需要进行较重的平滑,以帮助在边缘周围更好地混合,在所述边缘处深度数据可能不可靠,并且被较重地平滑,以减少边缘处的任何伪影。
在一些实施方式中,检测面部可以包括从背景平面中提取出面部,其中,基于深度信息来确定背景平面。在一些实施方式中,面部可以在视频的一个或多个帧的前景部分内。在一些实施方式中,确定前景部分可以包括检测面部和背景,其中,检测包括从背景中突出面部的前景部分。
在一些实施方式中,检测面部和背景可以包括:检测突出,所述挤压可以包括基于深度信息的面部深度,确定面部的外边缘的帧内的深度,以及将背景设置为包括处于面部的外边缘的深度处以及处于超出面部的外边缘的深度处的帧的部分。处理继续到612。
在612,去除诸如空间或时间噪声之类的噪声。例如,在一些实施方式中,可以应用平滑算法以去除视频帧(或图像)中的一个或多个中的空间和/或时间噪声。处理继续到614。
在614,前景/背景以及背景部分可选地使用着色器被识别和标记。例如,用户设备可以实现着色器技术,该着色器技术返回值(例如,在[0,1]的范围内),以将图像中的点定义为背景部分或前景部分。在一些实施方式中,步骤614可以由着色器(和GPU)实现,并且608可以由CPU实现。处理继续到616。
在616,应用视差图。例如,在一些实施方式中,视差图数据被应用于图像的前景部分,以识别相机平面表示(例如,面部姿态所面向的相机平面)。处理继续到618。
在618,旋转在616确定的相机平面。例如,相机平面可以从第一定向(例如,正被相机捕捉的一个原点)旋转到第二定向(例如,虚拟相机定向,按照该虚拟相机定向相机平面和面部平面大致平行,使得看起来相机就在面部的正前方)。在一些实施方式中,旋转可以包括将相机的前向矢量设置为与面部姿态的前向矢量相反。旋转还可以包括旋转背景平面以面向处于第二视点的虚拟相机。面部跟踪器在可能不同于设备坐标空间或虚拟相机坐标空间的坐标空间中针对视频或图像的给定帧提供变换(例如,位置和面部姿态角度或旋转)。首先,从变换中计算出角度和2-D位置。角度可转移到任何坐标系。将投影矩阵应用于变换以确定面部在2-D图像中的位置。这给出在设备坐标中可用的位置和旋转。将小于实际角度或极限角度(例如,20度)的角度应用于前向矢量的每个轴。接下来,通过将旋转乘以前向(例如,0,0,1)来获得面部前向矢量而确定面部前向矢量,例如,面部正看着的矢量。要计算虚拟相机位置,系统可以计算相机和面部之间的当前距离,并且乘以面部位置,并且加上距离乘以面部前向。了解相机虚拟位置,并且相机应该看着与面部前向相反。可以计算视图变换。可以基于向上方向(例如,基于重力)和前向方向(例如,与面部前向矢量相反的从相机位所朝向面部)来计算视图变换。取向上和前向的叉积产生左向矢量。然后可以基于前向、左向和位置确定视图变换。处理继续到620。
在620,一个或多个视频帧的投影矩阵基于相机平面旋转来更新(或重投影)。例如,可以将视图变换与投影、彩色图像、深度图像、相机内参和前景背景图一起供应给渲染器着色器。对于每个前景像素,都会计算位置并应用投影矩阵以重投影图像的前景像素并校正姿态。将背景像素应用于具有较高Z值的原始图像(或帧)的相同2-D位置,以允许前景遮挡背景。处理继续到622。
在622,可选地调整重投影的图像,并且可选地使背景模糊。例如,可以拉伸图像平面以覆盖面部姿态的整个视图,并且可以使背景模糊(例如,以便减少对背景的强调,因为背景在旋转过程中可能会畸变)。在一些实施方式中,前景可以被放大以覆盖任何间隙(例如,由旋转产生的空白区域)。在一些实施方式中,更新相机的投影矩阵可以包括重投影视频帧以通过图像平面的四个边缘。
在图6中,各种方框(例如,方框602-622)被示为被顺序地执行。然而,应明白,可以方便地将这些方框重布置以适合特定实施例,并且在一些实施例中,可以同时执行这些方框或其部分。还应明白,在一些示例中,可以去除各种方框,将其划分为附加的方框,和/或与其他方框组合。
如上所述,对于方法500和600,可以在方法500或600之一或两者的实施方式中检查是否已经获得使用用户数据(例如,视频)的用户同意(例如,用户许可)。例如,用户数据可以包括用户偏好、用户视频、用户图像等。在一些实施方式中,本文所述的方法的一个或多个方框可以使用这样的用户数据。例如,可以执行一个或多个方框作为姿态校正的一部分,使得将仅在获得了用于执行姿态校正的用户同意的条件下调用那些方框和后续方框。如果已经从在方法中可以使用针对其的用户数据的相关用户获得了用户同意,则确定可能利用如针对那些方框所述的用户数据的可能使用来实现本文方法的方框。如果还未获得用户同意,则可以不执行全部方法,和/或可以不执行需要用户数据的特定方框。
一些实施方式可以在用户设备上逐帧处理视频帧并应用姿态校正,将帧发送到视频通话服务。因而,本文所述的技术提供了可以不受视频通话的错误、中断或干扰影响的姿态校正。在一些实施方式中,可以使用用户的深度图像来帮助执行用户的姿态校正,以填充其中用户设备获取的深度图可能具有隐藏区域或间隙的任何区域。
一些实施方式可以忽略对象短暂地遮挡用户的面部,使用历史数据预测面部将在哪里,基于预测执行姿态校正,然后在对象移动时恢复到正常姿态校正操作功能。在一些实施方式中,当对象在用户面部的前方时,姿态校正可以使校正淡出并且不依赖于历史数据。
在一些实施方式中,深度图像可以包括浮点值的矢量,投影(原始或虚拟相机)可以包括4x4矩阵,该矩阵将相机的锥体映射到包括位置和定向(前向、向上和向后)映射的立方体。
在一些实施方式中,当在视频帧中存在两个或多个面部时,实施方式可以被配置成将两个(或更多个)用户分开,并处理成两个(或更多个)前景。在一些实施方式中,如果检测到两个(或更多个)用户,则可以退出姿态校正。
在一些实施方式中,可以通过本文所述的姿态校正技术来适应面部上的对象。例如,可以处置眼镜和帽子。理论而言,面部或面部前方的任何对象都可能是姿态校正的问题。可以通过深度数据的更大的平滑来处置用户面部上的对象,并且如果检测到孔(例如,被遮挡但在校正后将可见的面部区域),则系统退出姿态校正。退出姿态校正可以包括减少正应用的校正量。例如,最大限制最初可以是20度。为了退出姿态校正,将20度逐渐减小到0度。为了平滑地重新应用效应,可以将0度逐渐增加回20度。
在一些实施方式中,系统可以基于设备的移动来调整校正角度(例如,以补偿视频通话期间设备的移动)。在一些实施方式中,如果检测到孔(例如,被遮挡但是在校正之后将可见的面部区域),则不应用姿态校正。实施方式可以用于校正安全相机或其他相机中的姿态。一些实施方式可以用于基于通话另一侧的用户来创建视差效应。
图7是可用于实现本文所述的一个或多个特征的示例设备700的框图。在一个示例中,设备700可以用于实现用户设备,例如,图1、图3和图4中分别所示的用户设备104、302、402。可替选地,设备700可以实现服务器设备。在一些实施方式中,设备700可以用于实现客户端设备、服务器设备或以上的组合。设备700可以是用于实现上述系统和/或方法中的一个或多个的任何合适的计算机系统、服务器或其他电子或硬件设备。
可以在可在任何类型的计算设备上执行的独立程序、在web浏览器上运行的程序、在移动计算设备(例如,蜂窝式电话、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机等)上运行的移动应用(“app”)中运行本文描述的一种或多种方法(例如,500和/或600)。
在一个示例中,可使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)向服务器设备发送用户输入数据并且从服务器接收最终输出数据以进行输出(例如,以进行显示)。在另一示例中,可在移动计算设备上的移动app(和/或其它apps)内执行所有计算。在另一示例中,可在移动计算设备和一个或多个服务器设备之间拆分计算。
在一些实施方式中,设备700包括处理器702、存储器704和I/O接口706。处理器702可以是用于执行程序代码并且控制设备400的基本操作的一个或多个处理器和/或处理电路。“处理器”包括处理数据、信号或其它信息的任何适合的硬件系统、机制、或组件。处理器可以包括具有带一个或多个核(例如,在单个核、双核、或多核配置中)的通用中央处理单元(CPU)、多个处理单元(例如,在多处理器配置中)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、用于实现功能性的专用电路系统、用于实现基于神经网络模型的处理的专用处理器、神经电路、针对矩阵计算(例如,矩阵乘法)而优化的处理器的系统、或其它系统。
在一些实施方式中,处理器702可以包括实现神经网络处理的一个或多个协处理器。在一些实施方式中,处理器702可以是处理数据以产生概率输出的处理器,例如,由处理器702产生的输出可以是不精确的或者可以在距预期输出的范围内是准确的。处理不必限于特定地理位置或者具有时间限制。例如,处理器可以“实时地”、“离线”、在“批模式”等下执行其功能。可以通过不同的(或相同的)处理系统来在不同的时间并在不同的位置处执行处理的多个部分。计算机可以是与存储器通信的任何处理器。
存储器704通常被设置在设备700中以供由处理器702访问,并且可以是适合于存储由处理器执行的指令并被定位为与处理器702分开和/或与其集成在一起的任何适合的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪速存储器等。存储器704可存储由处理器702在设备700上操作的软件,包括操作系统708、姿态校正应用730、其它应用712、和应用数据714。其它应用712可以包括诸如数据显示引擎、web托管引擎、图像显示引擎、通知引擎、社交联网引擎等这样的应用。在一些实施方式中,姿态校正应用730和其它应用712可各自包括使得处理器702能够执行本文描述的功能(例如,图5和/或图6的方法中的一些或全部)的指令。存储器704中的软件中的任一个可替换地被存储在任何其它适合的存储位置或计算机可读介质上。存储器704和任何其它类型的存储(磁盘、光盘、磁带、或其它有形介质)可被认为是“存储”或“存储设备”。
I/O接口706可提供用于使得能够将设备700与其它系统和设备对接的功能。对接设备可作为设备700的一部分被包括或者可以是分开的并与设备700进行通信。例如,网络通信设备、存储设备、和输入/输出设备可经由I/O接口706通信。在一些实施方式中,I/O接口可连接到接口设备,诸如输入设备(键盘、指点设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
可连接到I/O接口706的对接设备的一些示例可包括一个或多个显示设备720、一个或者多个相机722、以及一个或者多个数据存储738(如在上面所讨论的)。显示设备720可用于显示内容,例如,如本文所描述的输出应用的用户界面。显示设备720可经由本地连接(例如,显示总线)和/或经由联网连接来连接到设备700并且可以是任何适合的显示设备。显示设备720可包括任何适合的显示设备,诸如LCD、LED、或等离子体显示屏幕、CRT、电视、监视器、触摸屏、3-D显示屏幕、或其它视觉显示设备。例如,显示设备720可以是在移动设备上提供的平板显示屏幕、在护目镜或头戴式耳机设备中提供的多个显示屏幕、或用于计算机设备的监视器屏幕。相机设备722可以包括一个或多个相机(或图像捕捉设备)以捕捉图像和/或关于图像中正在捕捉的场景的深度信息(例如,深度信息可以包括每个像素(或像素组)的值,其表示距相机的由像素表示的对象的距离。
I/O接口706可与其它输入和输出设备对接。一些示例包括可捕捉图像的一个或多个相机。一些实施方式可提供用于捕捉声音(例如,作为捕捉的图像、话音命令等的一部分)的麦克风、用于输出声音的音频扬声器设备、或其它输入和输出设备。
为了便于图示,图7示出了用于处理器702、存储器704、I/O接口706、和软件框708、712和730中的每一个的一个框。这些框可以表示一个或多个处理器或处理电路系统、操作系统、存储器、I/O接口、应用、和/或软件模块。在其它实施方式中,设备700可以不具有所示的所有组件并且/或者代替本文所示的那些元件或者除了本文所示的那些元件之外还可以具有包括其它类型的元件的其它元件。虽然一些组件被描述为执行如本文的一些实施方式中所描述的方框和操作,但是设备700、类似的系统的组件中的任何适合的组件或组合、或与这样的系统相关联的任何适合的一个或多个处理器可以执行所描述的方框和操作。
除了以上作为示例提及的手持设备之外,其他实施方式还可以包括会议室相机,其可以安装为更高并从用户上方的角度产生姿态。一些实施方式可以包括针对坐在与相机成横向角度的用户的姿态校正(例如,其中失真是由左/右侧角而不是向上/向下角引起的)。一些实施方式能够包括用于将被握住得距用户的面部太近的相机的姿态校正。
在一些实施方式中,呼叫方或被叫方可以打开或关闭姿态校正,或者请求执行姿态校正。在一些实施方式中,出于其他原因,例如,电池寿命、处理器能力等,手动或自动关闭姿态校正。
本文描述的一个或者多个方法(例如,方法500或者600)可通过可在计算机上执行的计算机程序指令或代码来实现。例如,代码可由一个或多个数字处理器(例如,微处理器或其它处理电路系统)实现并且可被存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,所述非暂时性计算机可读介质例如磁、光学、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、硬磁盘、光盘、固态存储器驱动器等。程序指令还可被包含在电子信号中并作为电子信号被提供,例如以从服务器(例如,分布式系统和/或云计算系统)递送的软件即服务(SaaS)的形式提供。替换地,一种或多种方法可用硬件(逻辑门等)或者用硬件和软件的组合加以实现。示例硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路系统(ASIC)等。可将一种或多种方法作为在系统上运行的应用的一部分或组件、或者作为与其它应用和操作系统相结合地运行的应用或软件来执行。
本文描述的一种或多种方法可以在可以在任何类型的计算设备上运行的独立程序、在web浏览器上运行的程序、在移动计算设备(例如,蜂窝式电话、智能电话、平板电脑、可穿戴设备(手表、臂章、珠宝、头饰、护目镜、眼镜等)、便携式计算机等)上运行的移动应用(“app”)中运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备,并从服务器接收用于输出(例如,用于显示)的最终输出数据。在另一个示例中,所有计算都可以在移动计算设备上的移动app(和/或其他app)内执行。在另一示例中,可以在移动计算设备和一个或多个服务器设备之间分割计算。
尽管已相对于说明书的特定实施方式描述了说明书,但是这些特定实施方式仅仅是说明性的,而不是限制性的。示例中图示的概念可以被应用于其它示例和实施方式。
由于生成校正的姿态的性质,在此讨论的实施方式可能要求访问诸如视频、图像等的用户数据。在其中在此讨论的某些实施方式可以收集或者使用关于用户(例如,用户视频或者图像数据)的个人信息的情况下,向用户提供一个或多个机会来控制是否收集个人信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用与用户有关的信息。即,这里讨论的系统和方法特别是在接收到来自相关用户要这样做的明确授权后收集、存储和/或使用用户个人信息。另外,在存储或使用某些数据之前,可以用一种或多种方式处理某些数据,使得删除个人可识别信息(例如,共享建议系统可以通过诸如姓名或用户名的个人身份信息以外的特征匿名识别重要人物)。作为一个示例,可以处理用户的身份,使得无法确定个人可识别信息。作为另一个示例,可以将用户的地理位所或与用户图像相关联的位所概括到更大的区域,使得无法确定用户的特定位所。
注意的是,如将为本领域的技术人员所知的那样,可以将本公开中描述的功能块、操作、特征、方法、设备和系统集成或者划分到系统、设备和功能块的不同组合中。可以使用任何适合的编程语言和编程技术来实现特定实施方式的例行程序。可以采用不同的编程技术,例如过程的或面向对象的。例行程序可以在单个处理设备或多个处理器上执行。尽管可以以具体次序呈现步骤、操作或计算,但是可以在不同的特定实施方式中改变该次序。在一些实施方式中,可以同时执行在本说明书中示出为有顺序的多个步骤或操作。
Claims (20)
1.一种方法,包括:
接收包括多个帧的视频,所述视频被在第一视点处的物理相机捕捉,其中,所述视频包括与所述多个帧相对应的深度信息;
检测所述视频内的面部,其中,所述面部在所述多个帧的前景部分内;
基于与所述多个帧相对应的所述深度信息的一个或多个深度值来确定所述多个帧的所述前景部分;
将虚拟相机定位在第二视点,其中,所述第二视点与所述第一视点不同;
基于所述虚拟相机来获得所述前景部分的投影矩阵,所述投影矩阵与所述第二视点相对应;以及
基于所述投影矩阵来生成包括经修改前景部分的经修改视频。
2.根据权利要求1所述的方法,进一步包括调整所述前景部分的所述投影矩阵,以减少用于捕捉所述视频的所述物理相机的镜头效应。
3.根据权利要求1所述的方法,其中,检测所述面部包括从背景平面中提取出所述面部,其中,所述背景平面是基于所述深度信息来确定的。
4.根据权利要求3所述的方法,进一步包括旋转所述背景平面以面对在所述第二视点处的所述虚拟相机。
5.根据权利要求1所述的方法,其中,确定所述前景部分包括检测所述面部和背景,并且其中,所述检测包括从所述背景中突出所述面部的所述前景部分。
6.根据权利要求5所述的方法,其中,检测所述面部和所述背景包括:
基于所述深度信息来检测面部深度;
确定所述面部的外边缘的所述帧内的深度;以及
将所述背景设置为包括在所述面部的外边缘的深度处以及在超出所述面部的外边缘的深度处的所述帧的部分。
7.根据权利要求6所述的方法,进一步包括使所述背景模糊。
8.根据权利要求1所述的方法,其中,检测所述视频内的所述面部包括确定所述面部关于一个或多个轴的角度,并且其中,如果所述面部关于一个或多个轴的角度在阈值范围内,则所述确定、定位、获得和生成被执行。
9.根据权利要求8所述的方法,进一步包括:
确定所述视频的深度信息的时间历史;和
使用所述视频的深度信息的所述时间历史来执行视频重投影的滞后,以便保持重投影的连续性并且不响应于在正被重投影的所述面部前方移动的临时对象,其中,所述临时对象在正被重投影的所述面部前方少于阈值时间段。
10.一种系统,包括:
耦合至具有存储在其上的软件指令的非易失性计算机可读介质的一个或多个处理器,所述软件指令在被所述一个或多个处理器执行时,使所述一个或多个处理器执行操作,所述操作包括:
接收包括多个帧的视频,所述视频被在第一视点处的物理相机捕捉,其中,所述视频包括与所述多个帧相对应的深度信息;
检测所述视频内的面部,其中,所述面部在所述视频的所述多个帧的前景部分内;
基于与所述多个帧相对应的所述深度信息的一个或多个深度值来确定所述多个帧的所述前景部分;
将虚拟相机定位在第二视点,其中,所述第二视点与所述第一视点不同;
基于所述虚拟相机来获得所述前景部分的投影矩阵,所述投影矩阵与所述第二视点相对应;
基于所述投影矩阵来生成包括经修改前景部分的经修改视频;以及
稳定所述经修改视频的所述经修改前景部分。
11.根据权利要求10所述的系统,其中,所述操作进一步包括调整所述前景部分的所述投影矩阵,以减少用于捕捉所述视频的所述物理相机的镜头效应。
12.根据权利要求10所述的系统,其中,检测所述面部包括从背景平面中提取出所述面部,其中,所述背景平面是基于所述深度信息来确定的。
13.根据权利要求12所述的系统,其中,所述操作进一步包括旋转所述背景平面以面对在所述第二视点处的所述虚拟相机。
14.根据权利要求10所述的系统,其中,确定所述前景部分包括检测所述面部和背景,并且其中,所述检测包括从所述背景中突出所述面部的所述前景部分。
15.根据权利要求14所述的系统,其中,检测所述面部和所述背景包括:
基于所述深度信息来检测面部深度;
确定所述面部的外边缘的所述帧内的深度;以及
将所述背景设置为包括在所述面部的外边缘的深度处以及超出所述面部的外边缘的深度处的所述帧的部分。
16.根据权利要求15所述的系统,其中,所述操作进一步包括使所述背景模糊。
17.根据权利要求10所述的系统,其中,检测所述视频内的所述面部包括确定所述面部关于一个或多个轴的角度,并且其中,如果所述面部关于一个或多个轴的角度在阈值范围内,则所述确定、定位、获得和生成被执行。
18.根据权利要求17所述的系统,其中,所述操作进一步包括:
确定所述视频的深度信息的时间历史;和
使用所述视频的深度信息的所述时间历史来执行视频重投影的滞后,以便保持重投影的连续性并且不响应于在正被重投影的所述面部前方移动的临时对象,其中,所述临时对象在正被重投影的所述面部前方少于阈值时间段。
19.一种具有存储在其上的软件指令的非易失性计算机可读介质,所述软件指令在被一个或多个处理器执行时,使所述一个或多个处理器执行操作,所述操作包括:
接收包括多个帧的视频,所述视频被在第一视点处的物理相机捕捉,其中,所述视频包括与所述多个帧相对应的深度信息;
检测所述视频内的面部,其中,所述面部在所述视频的所述多个帧的前景部分内;
基于与所述多个帧相对应的所述深度信息的一个或多个深度值来确定所述多个帧的所述前景部分;
将虚拟相机定位在第二视点,其中,所述第二视点与所述第一视点不同;
基于所述虚拟相机来获得所述前景部分的投影矩阵,所述投影矩阵与所述第二视点相对应;
基于所述投影矩阵来生成包括经修改前景部分的经修改视频;以及
稳定所述经修改视频的所述经修改前景部分。
20.根据权利要求19所述的非易失性计算机可读介质,其中,确定所述前景部分包括检测所述面部和背景,并且其中,所述检测包括从所述背景中突出所述面部的所述前景部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/258,348 US10929982B2 (en) | 2019-01-25 | 2019-01-25 | Face pose correction based on depth information |
US16/258,348 | 2019-01-25 | ||
PCT/US2019/053692 WO2020154000A1 (en) | 2019-01-25 | 2019-09-27 | Pose correction |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112470164A true CN112470164A (zh) | 2021-03-09 |
Family
ID=68290038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980035239.3A Pending CN112470164A (zh) | 2019-01-25 | 2019-09-27 | 姿态校正 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10929982B2 (zh) |
EP (1) | EP3710983A1 (zh) |
JP (1) | JP7101269B2 (zh) |
KR (1) | KR20210010517A (zh) |
CN (1) | CN112470164A (zh) |
WO (1) | WO2020154000A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230367511A1 (en) * | 2022-05-11 | 2023-11-16 | Bank Of America Corporation | Smart queue for distributing user requests to automated response generating systems |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11303875B2 (en) * | 2019-12-17 | 2022-04-12 | Valve Corporation | Split rendering between a head-mounted display (HMD) and a host computer |
US20220286641A1 (en) * | 2021-03-02 | 2022-09-08 | Lenovo (Singapore) Pte. Ltd. | Background image adjustment in virtual meeting |
US11228702B1 (en) | 2021-04-23 | 2022-01-18 | Gopro, Inc. | Stabilization of face in video |
US11899204B2 (en) * | 2021-06-09 | 2024-02-13 | Snap Inc. | Soft follow and pitch angle effects for VR/AR interface |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6806898B1 (en) * | 2000-03-20 | 2004-10-19 | Microsoft Corp. | System and method for automatically adjusting gaze and head orientation for video conferencing |
US7515173B2 (en) * | 2002-05-23 | 2009-04-07 | Microsoft Corporation | Head pose tracking system |
US7372977B2 (en) | 2003-05-29 | 2008-05-13 | Honda Motor Co., Ltd. | Visual tracking using depth data |
US7391888B2 (en) * | 2003-05-30 | 2008-06-24 | Microsoft Corporation | Head pose assessment methods and systems |
EP1613082A1 (en) * | 2004-06-30 | 2006-01-04 | Sony Ericsson Mobile Communications AB | Face image correction |
WO2006039486A2 (en) * | 2004-10-01 | 2006-04-13 | The Board Of Trustees Of The Leland Stanford Junior University | Imaging arrangements and methods therefor |
US8174555B2 (en) * | 2007-05-30 | 2012-05-08 | Eastman Kodak Company | Portable video communication system |
KR101460130B1 (ko) * | 2007-12-11 | 2014-11-10 | 삼성전자주식회사 | 휴대 단말기의 화상 통화 방법 및 장치 |
US8805110B2 (en) * | 2008-08-19 | 2014-08-12 | Digimarc Corporation | Methods and systems for content processing |
US8599238B2 (en) * | 2009-10-16 | 2013-12-03 | Apple Inc. | Facial pose improvement with perspective distortion correction |
JP2011090400A (ja) * | 2009-10-20 | 2011-05-06 | Sony Corp | 画像表示装置および方法、並びにプログラム |
US8660355B2 (en) * | 2010-03-19 | 2014-02-25 | Digimarc Corporation | Methods and systems for determining image processing operations relevant to particular imagery |
US9117310B2 (en) * | 2010-04-02 | 2015-08-25 | Imec | Virtual camera system |
US8395655B2 (en) * | 2010-08-15 | 2013-03-12 | Hewlett-Packard Development Company, L.P. | System and method for enabling collaboration in a video conferencing system |
US9041734B2 (en) * | 2011-07-12 | 2015-05-26 | Amazon Technologies, Inc. | Simulating three-dimensional features |
US9065967B2 (en) * | 2011-09-13 | 2015-06-23 | Verizon Patent And Licensing Inc. | Method and apparatus for providing device angle image correction |
TWI469062B (zh) * | 2011-11-11 | 2015-01-11 | Ind Tech Res Inst | 影像穩定方法及影像穩定裝置 |
EP2600316A1 (en) * | 2011-11-29 | 2013-06-05 | Inria Institut National de Recherche en Informatique et en Automatique | Method, system and software program for shooting and editing a film comprising at least one image of a 3D computer-generated animation |
US9858649B2 (en) * | 2015-09-30 | 2018-01-02 | Lytro, Inc. | Depth-based image blurring |
JP6299124B2 (ja) * | 2013-09-13 | 2018-03-28 | 株式会社リコー | 投影システム、画像処理装置、投影方法およびプログラム |
US10055013B2 (en) * | 2013-09-17 | 2018-08-21 | Amazon Technologies, Inc. | Dynamic object tracking for user interfaces |
JP2015106360A (ja) | 2013-12-02 | 2015-06-08 | 三星電子株式会社Samsung Electronics Co.,Ltd. | オブジェクト検出方法及びオブジェクト検出装置 |
WO2016036425A1 (en) * | 2014-09-05 | 2016-03-10 | Ballcraft, Llc | Motion detection for portable devices |
JP2016085579A (ja) * | 2014-10-24 | 2016-05-19 | 大学共同利用機関法人情報・システム研究機構 | 対話装置のための画像処理装置及び方法、並びに対話装置 |
GB2532003A (en) * | 2014-10-31 | 2016-05-11 | Nokia Technologies Oy | Method for alignment of low-quality noisy depth map to the high-resolution colour image |
EP3241151A1 (en) | 2014-12-29 | 2017-11-08 | Keylemon SA | An image face processing method and apparatus |
US9232189B2 (en) * | 2015-03-18 | 2016-01-05 | Avatar Merger Sub Ii, Llc. | Background modification in video conferencing |
WO2016154123A2 (en) * | 2015-03-21 | 2016-09-29 | Mine One Gmbh | Virtual 3d methods, systems and software |
TW201639347A (zh) | 2015-04-28 | 2016-11-01 | 微軟技術授權有限責任公司 | 視線校正(二) |
GB201507210D0 (en) * | 2015-04-28 | 2015-06-10 | Microsoft Technology Licensing Llc | Eye gaze correction |
WO2016191367A1 (en) * | 2015-05-22 | 2016-12-01 | Massachusetts Institute Of Technology | Rapid and precise optically multiplexed imaging |
US9967461B2 (en) * | 2015-10-14 | 2018-05-08 | Google Inc. | Stabilizing video using transformation matrices |
JP2018078404A (ja) * | 2016-11-08 | 2018-05-17 | ソニーセミコンダクタソリューションズ株式会社 | 画像処理装置、画像処理方法、撮像システム、及び、画像処理プログラム |
EP3383035A1 (en) * | 2017-03-29 | 2018-10-03 | Koninklijke Philips N.V. | Image generation from video |
CA3078895A1 (en) * | 2017-10-27 | 2019-05-02 | Magic Leap, Inc. | Virtual reticle for augmented reality systems |
US10171738B1 (en) | 2018-05-04 | 2019-01-01 | Google Llc | Stabilizing video to reduce camera and face movement |
US11366514B2 (en) * | 2018-09-28 | 2022-06-21 | Apple Inc. | Application placement based on head position |
-
2019
- 2019-01-25 US US16/258,348 patent/US10929982B2/en active Active
- 2019-09-27 EP EP19790106.9A patent/EP3710983A1/en active Pending
- 2019-09-27 KR KR1020207035826A patent/KR20210010517A/ko not_active Application Discontinuation
- 2019-09-27 JP JP2020568992A patent/JP7101269B2/ja active Active
- 2019-09-27 WO PCT/US2019/053692 patent/WO2020154000A1/en unknown
- 2019-09-27 CN CN201980035239.3A patent/CN112470164A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230367511A1 (en) * | 2022-05-11 | 2023-11-16 | Bank Of America Corporation | Smart queue for distributing user requests to automated response generating systems |
US11977779B2 (en) * | 2022-05-11 | 2024-05-07 | Bank Of America Corporation | Smart queue for distributing user requests to automated response generating systems |
Also Published As
Publication number | Publication date |
---|---|
EP3710983A1 (en) | 2020-09-23 |
US20200242778A1 (en) | 2020-07-30 |
WO2020154000A1 (en) | 2020-07-30 |
JP2021526693A (ja) | 2021-10-07 |
KR20210010517A (ko) | 2021-01-27 |
US10929982B2 (en) | 2021-02-23 |
JP7101269B2 (ja) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7110502B2 (ja) | 深度を利用した映像背景減算法 | |
US11100664B2 (en) | Depth-aware photo editing | |
US10929982B2 (en) | Face pose correction based on depth information | |
US11308675B2 (en) | 3D facial capture and modification using image and temporal tracking neural networks | |
US9639914B2 (en) | Portrait deformation method and apparatus | |
US11887235B2 (en) | Puppeteering remote avatar by facial expressions | |
US20140176548A1 (en) | Facial image enhancement for video communication | |
US11720996B2 (en) | Camera-based transparent display | |
US11776201B2 (en) | Video lighting using depth and virtual lights | |
US11887267B2 (en) | Generating and modifying representations of hands in an artificial reality environment | |
US11170578B1 (en) | Occlusion detection | |
WO2023097576A1 (en) | Segmentation with monocular depth estimation | |
US20230115371A1 (en) | Efficient vision perception | |
CN118247186A (zh) | 图像畸变矫正方法、电子设备、存储介质及芯片 | |
WO2023059962A1 (en) | Efficient vision perception |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |