CN117242502A - 使用面部特征点估计面部表情 - Google Patents
使用面部特征点估计面部表情 Download PDFInfo
- Publication number
- CN117242502A CN117242502A CN202280028207.2A CN202280028207A CN117242502A CN 117242502 A CN117242502 A CN 117242502A CN 202280028207 A CN202280028207 A CN 202280028207A CN 117242502 A CN117242502 A CN 117242502A
- Authority
- CN
- China
- Prior art keywords
- locations
- data
- facial
- profiles
- feature points
- 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
- 230000008921 facial expression Effects 0.000 title claims abstract description 95
- 230000001815 facial effect Effects 0.000 title claims abstract description 69
- 238000010801 machine learning Methods 0.000 claims abstract description 45
- 230000033001 locomotion Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 98
- 238000013528 artificial neural network Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 20
- 238000013135 deep learning Methods 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000003190 augmentative effect Effects 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 claims description 3
- 230000008447 perception Effects 0.000 claims description 3
- 230000014509 gene expression Effects 0.000 abstract description 24
- 230000008569 process Effects 0.000 description 33
- 238000012549 training Methods 0.000 description 23
- 230000015654 memory Effects 0.000 description 19
- 238000003860 storage Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 210000000887 face Anatomy 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 6
- 210000004709 eyebrow Anatomy 0.000 description 6
- 230000007935 neutral effect Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000011176 pooling Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 210000003128 head Anatomy 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 210000003205 muscle Anatomy 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 206010063659 Aversion Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000011551 log transformation method Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 210000004373 mandible Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/174—Facial expression recognition
-
- 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/168—Feature extraction; Face representation
- G06V40/171—Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/165—Detection; Localisation; Normalisation using facial parts and geometric relationships
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
Abstract
在示例中,面部特征点的位置可以应用于一个或更多个机器学习模型(MLM),以生成指示对应于面部表情的简档的输出数据,诸如面部动作编码***(FACS)值。输出数据可用于确定模型的几何形状。例如,可以分析描绘一个或更多个面部的视频帧以确定位置。面部特征点可以被归一化,然后应用于MLM以推理简档,然后简档可用于动画化用于从视频进行表情重定向的模式。MLM可以包括子网络,每个子网络分析对应于面部的一个区域的一组输入数据,以确定对应于该区域的简档。后续网络可以使用来自子网络的简档以及面部特征点的全局位置来推理整个面部的简档。
Description
背景技术
表情重定向可包括将面部表情从驾驶视频中的面部转移到动画角色。从面部的2D视频中准确确定面部表情使得可以转移面部表情来驱动三维(3D)计算机图形角色的动画是一个具有挑战性的过程。例如,将2D内容转换为更高维度可能具有挑战性。
传统上,基于优化的方法已用于表情重定向,其中优化了3D面部可变形模型的身份(identity)系数和表情系数,以在视频的每个传入2D图像中获得与观察到的3D面部的最佳拟合。身份系数定义中性面部表情,而表情系数定义相对于中性面部表情的非神经面部表情。然而,基于优化的方法难以分离身份和表情信息,使得大部分表情信息嵌入在身份系数中—导致表情估计和重定向性能不佳。此外,基于优化的方法计算量大,需要对每个视频帧应用迭代优化过程,这可能会禁止在嵌入设备上进行实时操作。此外,基于优化的方法对RGB图像中头部姿势和噪声的变化缺乏鲁棒性—通常会导致不正确和嘈杂的估计。
还开发了使用深度学习的面部表情估计方法。与基于优化的方法相比,这些方法通常执行得更可靠。然而,传统的深度学习解决方案需要来自深度相机的输入。深度相机在商业用途中远不如普通的RGB网络摄像头常见。因此,使用深度学习的面部表情估计方法尚未得到广泛使用。
发明内容
本公开的实施例涉及使用面部特征点(landmarks)估计面部表情。特别是,本公开涉及使用面部特征点的位置从图像数据中确定面部表情的方法。本公开进一步涉及用于估计面部表情的机器学习架构。
与传统方法相比,诸如上面所描述的,公开的方法可以使用面部特征点的位置从图像数据中确定面部表情。例如,面部特征点的位置可以应用于一个或更多个机器学习模型(MLM),诸如神经网络,该模型可以使用这些位置来生成输出数据,该输出数据指示对应于一个或更多个面部表情的一个或更多个简档(profile),诸如面部动作编码***(FACS)值。输出数据可用于生成、确定、选择、变形、变换(morph)和/或动画化一个或更多个模型和/或其属性。在至少一个实施例中,可以分析描绘一个或更多个面部的视频帧以确定面部特征点的位置。面部特征点可以归一化,其可包括旋转、裁剪和/或缩放位置。归一化的面部特征点可以应用于MLM以推理简档,然后可将其用于动画化计算机图形(CG)模型以从视频进行表情重定向。
与传统方法相比,本公开的各个方面进一步提供了用于估计面部表情的机器学习架构,其中分析不同组的输入数据集以确定面部的相应面部表情数据,并且聚合面部表情数据以确定面部的聚合面部表情数据。例如,子网络可以分析对应于面部特定区域的一组输入数据,以确定对应于面部区域的一个或更多个简档。后续网络可以使用来自子网络的简档以及其他数据(诸如面部特征点的全局位置)来推理整个面部的简档。
附图说明
下面参照附图详细描述使用面部特征点估计面部表情的本***和方法,其中:
图1是根据本公开的至少一个实施例的示出使用面部特征点估计面部表情的示例过程的数据流图;
图2示出了根据本公开的一些实施例的与关于图像的面部表情简档对应的位置的示例,以及可以使用简档生成的3D模型的图像;
图3示出了根据本公开的一些实施例的用于估计面部表情的机器学习架构的示例;
图4是示出根据本公开的至少一个实施例的用于训练一个或更多个机器学习模型使用面部特征点估计面部表情的示例过程的数据流图;
图5是示出根据本公开的一些实施例的用于使用面部特征点估计面部表情以确定一个或更多个模型的方法的流程图;
图6是示出根据本公开的一些实施例的用于使用面部特征点从视频数据估计面部表情以动画化一个或更多个模型的方法的流程图;
图7是适用于实现本公开的一些实施例的示例计算设备的框图;以及
图8是适用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
本公开涉及使用面部特征点估计面部表情。特别是,本公开涉及用于使用面部特征点的位置从图像数据确定面部表情的方法。本公开进一步涉及用于估计面部表情的机器学习架构。
所公开的方法可以使用面部特征点的位置从图像数据中确定面部表情。例如,面部特征点的位置可以应用于一个或更多个机器学习模型(MLM),诸如神经网络,该模型可以使用这些位置生成输出数据,该输出数指示对应于一个或更多个面部表情的一个或更多个简档,诸如面部动作编码***(FACS)值。输出数据可用于生成、确定、选择、变形、变换和/或动画化一个或更多个模型和/或其属性。在至少一个实施例中,可以分析描绘一个或更多个面部的视频帧以确定面部特征点的位置。面部特征点可以归一化,其中可包括旋转、裁剪和/或缩放位置。归一化的面部特征点可以应用于MLM以推理简档,然后将其可用于动画化计算机图形(CG)模型,例如使用从视频进行的表情重定向。
本公开进一步提供了用于估计面部表情的机器学习架构,其中分析不同组的输入数据集以确定面部的相应面部表情数据,并聚合面部表情数据以确定面部的聚合面部表情数据。例如,子网络可以分析对应于面部特定区域的一组输入数据,以确定对应于面部区域的一个或更多个简档。后续网络可以使用来自子网络的简档以及其他数据(诸如面部特征点的全局位置)来推理整个面部的简档。
本公开提供了可用于极快地估计面部表情的方法,并且能够在市售GPU上以~1ms的速度执行整个端到端流水线,从而在嵌入式设备上实现实时和准确的面部表情跟踪。所公开的方法可以使用深度学习对大量FACS值(诸如53个FACS值)进行详细估计,从而能够将逼真的面部表情重定向到动画CG角色,从而提供对最广泛面部表情(包括非常极端的面部表情)的估计。此外,所公开的方法可用于有效地分离身份和表情面部形状信息,对输入视频中的诸如头部姿势和噪声等变化具有很高的鲁棒性。此外,本公开提供了不需要深度相机并且可能只需要RGB输入的估计面部表情的方法。虽然本公开主要以包括面部的对象来描述,但所公开的方法可以用于面部以外的对象(例如,可变形对象)。此外,虽然本公开主要在面部表情重定向方面来描述,但所公开的方法可用于形状重定向(例如,将图像中描绘的可变形对象的结构映射到模型)。此外,所公开的方法可用于面部以外的对象的3D重建(例如,使用身份系数),诸如可变形对象。
本文描述的***和方法可用于各种目的,例如但不限于,用于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人、安全和监控、模拟和数字孪生、自动或半自动机器应用、深度学习、环境模拟、对象或参与者模拟和/或数字孪生、数据中心处理、对话式AI、光传输模拟(例如光线跟踪、路径跟踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用程序。
所公开的实施例可以被包括在各种不同的***中,诸如汽车***(例如,用于自动或半自动机器的控制***、用于自动或半自动机器的感知***)、使用机器人实现的***、航空***、医疗***、划船***、智能区域监控***、用于执行深度学习操作的***、用于执行模拟操作的***、用于执行数字孪生操作的***、使用边缘设备实现的***、包含一个或更多个虚拟机(VM)的***、用于执行合成数据生成操作的***、至少部分在数据中心实现的***、用于执行对话式AI操作的***、用于执行光传输模拟的***、用于执行3D资产的协作内容创建的***、至少部分使用云计算资源实现的***,和/或其他类型的***。
图1是示出根据本公开的至少一个实施例的使用面部特征点估计面部表情的示例过程100的数据流图。应当理解,这里描述的这种布置和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、命令、功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,它们可以实现为分立或分布式组件或与其他组件结合,并以任何合适的组合和位置实现。本文描述为由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。在至少一个实施例中,本文描述的***、方法和过程可以使用与图7的示例计算设备700和/或图8的示例数据中心800的那些组件、特征和/或功能类似的组件、特征和/或功能来执行。
过程100可以使用一个或更多个特征点检测器102、一个或更多个归一化器104、一个或更多个机器学习模型(MLM)106和一个或更多个模型管理器108以及附加或替代组件来实现。
在高层次上,过程100可以包括特征点检测器102接收一个或更多个输入(诸如包括表示一个或更多个图像122的图像数据的输入数据120),以及从一个或更多个输入生成一个或更多个输出(诸如位置数据124(例如,表示图像122的一个或更多个面部特征点的一个或更多个位置))。过程100还可以包括归一化器104接收一个或更多个输入(诸如位置数据124),以及从一个或更多个输入生成一个或更多个输出,诸如归一化位置数据126(例如,表示一个或更多个面部特征点的一个或更多个位置的归一化版本)。MLM 106可以接收一个或更多个输入,诸如归一化位置数据126,并从一个或更多个输入生成一个或更多个输出,诸如输出数据114(例如,表示对应于一个或更多个面部表情的一个或更多个简档)。模型管理器108可以接收一个或更多个输入,诸如输出数据114,并且使用一个或更多个输入(例如,一个或更多个简档)生成、确定、选择、变形、变换和/或动画化一个或更多个模型130和/或其属性。在至少一个实施例中,一个或更多个模型130被渲染在图像136中。
在至少一个实施例中,输入数据120可以包括图像数据、视频数据和/或传感器数据。例如,当输入数据120包括图像数据时,图像数据可以表示一个或更多个图像,诸如图1中所示的图像122。在至少一个实施例中,图像122可以描绘一个或更多个对象的一个或更多个部分,诸如一个或更多个面部。例如,图像122描绘面部132。图像数据可以包括对应于图像122的像素的颜色信息。作为示例而非限制,可以使用一个或更多个RGB相机捕获颜色信息。在一个或更多个实施例中,图像数据可以不包括深度信息,或者深度信息可以不用于过程100。在一个或更多个实施例中,图像数据可以包括深度信息和/或深度信息可用于过程100。
在至少一个实施例中,图像122(例如,彩色图像)可由使用一个或更多个相机生成的图像数据表示,诸如个人计算机(PC)、平板电脑、智能手机、笔记本电脑、移动设备和/或网络摄像头的一个或更多个相机。图像数据可以包括表示一个或更多个相机的视野图像的数据,诸如针孔相机、立体相机、广视角相机(例如鱼眼相机)、红外相机、环绕相机(例如360度相机)、远程和/或中程相机和/或其他相机类型。
在一些实施例中,输入数据120可以附加地或替代地包括其他类型的传感器数据,诸如来自一个或更多个LIDAR传感器的LIDAR数据、来自一个或更多个RADAR传感器的RADAR数据、来自一个或更多个麦克风的音频数据等。
在一些示例中,图像数据可以以一种格式(例如,RCCB、RCCC、RBGC等)捕获,然后转换为另一种格式(例如,由图像处理器)。在示例中,图像数据可以作为输入提供给图像数据预处理器以生成预处理的图像数据。可以使用许多类型的图像或格式;例如压缩图像,诸如联合图像专家组(JPEG)、红绿蓝(RGB)或亮度/色度(YUV)格式,压缩图像作为源自压缩视频格式(例如,H.264/高级视频编码(AVC)、H.265/高效视频编码(HEVC)、VP8、VP9、开放媒体视频联盟1(AV1)、通用视频编码(VVC)或任何其他视频压缩标准)的帧、例如源自红清蓝(RCCB)、红清(RCCC)或其他类型的成像传感器的原始图像。在一些示例中,不同的格式和/或分辨率可用于训练一个或更多个机器学习模型,而不是用于推理(例如,在部署机器学习模型期间)。
在一些实施例中,图像数据预处理器可以采用预处理图像流水线来处理由传感器(例如相机)获取并包括在图像数据中的原始图像,以产生预处理的图像数据,这些数据可以表示到机器学***面图像。预处理图像流水线可以包括解压缩、降噪、去马赛克、白平衡、直方图计算和/或自适应全局色调映射(例如,按该顺序或以替代顺序)。
在图像数据预处理器采用降噪的情况下,它可能包括拜耳域中的双边去噪。在图像数据预处理器采用去马赛克的情况下,它可以包括双线性插值。在图像数据预处理器采用直方图计算的情况下,它可以涉及计算C通道的直方图,并且可以在一些示例中与解压缩或降噪合并。在图像数据预处理器采用自适应全局色调映射的情况下,它可以包括执行自适应伽马对数变换。这可包括计算直方图、获取中间色调水平和/或估计具有中间色调水平的最大亮度。
特征点检测器102可以被配置成分析图像122以确定一个或更多个特征点的一个或更多个位置(例如,X、Y位置),这些位置可由位置数据124表示和/或指示。作为示例而非限制,特征点检测器102可以使用一个或更多个MLM来实现。例如但不限于,本文描述的各种MLM中的任何一种可以包括一种或更多种任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯,k-最近邻(Knn)、K表示聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,一个或更多个自动编码器、卷积、循环、感知器、长期/短期记忆(LSTM)、霍普菲尔德、玻尔兹曼、深度信念、反卷积、生成对抗、液态机等神经网络)的机器学习模型和/或其他类型的机器学习模型。
例如,诸如在(一个或更多个)机器学习模型包括至少一个卷积神经网络(CNN)的情况下,(一个或更多个)机器学习模型可以包括任意数量的层。一个或更多个层可以包括输入层。输入层可以保存与输入数据集关联的值(例如,在后处理之前或之后)。例如,当输入数据集中的样本表示图像时,输入层可以将代表图像的原始像素值的值保存为体积(例如,宽度、高度和颜色通道(例如,RGB),诸如32x 32x 3)。
一个或更多个层可以包括卷积层。卷积层可以计算连接到输入层中局部区域的神经元的输出,每个神经元计算其权重和它们在输入体积中连接到的小区域之间的点积。卷积层的结果可以是另一个体积,其中一个维度基于应用的滤波器数量(例如,宽度、高度和滤波器的数量,诸如32x 32x 12,如果12是滤波器的数量)。
一个或更多个层可以包括整流线性单元(ReLU)层。ReLU层可以应用元素激活函数,诸如max(0,x),阈值为零。ReLU层的结果体积可与ReLU层的输入的体积相同。
一个或更多个层可以包括池化层。池化层可以沿空间维度(例如,高度和宽度)执行向下采样操作,这可能导致比池化层的输入更小的体积(例如,来自32x 32x 12输入体积的16x 16x 12)。
一个或更多个层可以包括一个或更多个全连接层。全连接层中的每个神经元可以连接到前一体积中的每个神经元。全连接层可以计算类别分数,并且结果体积可以是1x 1x类别数。在一些示例中,CNN可以包括全连接层,使得CNN的一个或更多个层的输出可以作为输入提供给CNN的全连接层。在一些示例中,一个或更多个卷积流可以由(一个或更多个)机器学习模型实现,并且部分或全部卷积流可以包括相应的全连接层。
在一些非限制性实施例中,(一个或更多个)机器学习模型可包括一系列卷积层和最大池化层以促进图像特征提取,随后是多尺度扩张卷积层和上采样层以促进全局上下文特征提取。
尽管本文针对机器学习模型讨论了输入层、卷积层、池化层、ReLU层和全连接层,但这并不打算限制。例如,可以在机器学习模型中使用额外的或替代的层,诸如归一化层、SoftMax层、梯度反转层和/或其他层类型。
在(一个或更多个)机器学习模型包括神经网络的实施例中,可以根据实施例使用不同顺序和/或数量的神经网络层。换句话说,机器学习模型的层的顺序和数量不限于任何一个架构。
此外,一些层可包括参数(例如,权重和/或偏差),诸如卷积层和全连接层,而其他层可没有参数,诸如ReLU层和池化层。在一些示例中,这些参数可以在训练期间由(一个或更多个)机器学习模型学习,诸如关于图4所描述的。此外,一些层可以包括额外的超参数(例如,学习速率、步幅、回合(epochs)等),例如卷积层、全连接层和池化层,而其他层可不包括额外的超参数,诸如ReLU层。参数和超参数不受限制,并且可以根据实施例而有所不同。
在一个或更多个实施例中,一个或更多个特征点包括与每个检测到的面部的眼睛、嘴巴、鼻子、面部边界和/或其它面部特征有关的基准面部特征点。在一个或更多个实施例中,基准面部特征点的数量可以包括126个基准面部特征点,尽管面部特征点的确切数量可以根据各种实施例而变化。
在至少一个实施例中,特征点检测器102可以包括被配置成检测一个或更多个对象(诸如面部132)的至少一个对象检测器。例如,对象检测器可以接收一个或更多个输入,诸如图像122,并且从一个或更多个输入生成一个或更多个输出,诸如对象位置(例如,一个或更多个包围框坐标和大小)。图1示出了其中对象位置为对象定义包围形状140(例如,包围框)的示例。在输入数据120包括视频数据的情况下,可以对每个传入的视频帧执行对象检测。
在一个或更多个实施例中,可以使用一个或更多个MLM进行对象检测,其可以与用于检测一个或更多个特征点的一个或更多个位置的一个或更多个MLM分开或集成。例如,在第一步期间,可以检测面部132。接下来,可以使用对象位置为检测到的面部检测基准面部特征点。在一个或更多个实施例中,检测到的对象位置可用于裁剪图像122,并且可以分析裁剪的图像122以确定特征点的位置。在一个或更多个实施例中,可以使用检测到的对象位置分析图像122以确定特征点的位置,而无需首先裁剪图像122。在一个或更多个实施例中,对象检测和特征点检测可以使用一个或更多个MLM联合执行。
接下来,可以为每个检测到的面部检测基准面部特征点。在一个或更多个实施例中,基准面部特征点的数量可以包括126个基准面部特征点,尽管面部特征点的确切数量可以根据各种实施例而变化。
除了分析输入数据120的一个或更多个部分以进行对象特征点检测之外或替代地,可以分析输入数据120(例如,使用一个或更多个MLM)以确定在输入数据120中描绘的对象的一个或更多个其它属性,诸如对象的一个或更多个朝向和/或对象的凝视方向。朝向和/或凝视检测可以或可以不在特征点检测器102中实现和/或可以或可以不用于确定特征点的位置。例如,可以分析对应于图像122的图像数据以确定面部132的凝视方向,诸如表示上/下倾斜度的一个或更多个值和表示相对于坐标系的左/右倾斜度的一个或更多个值。作为进一步的示例,可以分析对应于图像122的图像数据以确定面部132的朝向,诸如表示相对于坐标系的偏航、俯仰和翻滚的一个或更多个值。在一个或更多个实施例中,透视端点算法可用于估计头部的旋转和平移。但是,可以使用其他基于算法和/或机器学习的方法。
归一化器104可以被配置成分析一个或更多个特征点的一个或更多个位置以确定一个或更多个特征点的一个或更多个位置的归一化版本,其可由归一化位置数据126表示和/或指示。在至少一个实施例中,所有(例如,126个)特征点的位置被归一化。根据一个或更多个实施例,归一化可以包括一个或更多个特征点的一个或更多个位置的旋转、平移或缩放中的一个或更多个,使得特征点的值全部位于预定范围内(例如,-1至1)。
在至少一个实施例中,旋转可包括在平面内旋转一个或更多个特征点的位置中的一个或更多个。归一化器104可以被配置成执行旋转以归一化位置相对于坐标系的朝向。例如,旋转可以矫正面部132,使得其在输入上是直的或者以其它方式面向一致的方向。这可以例如通过执行旋转使得连接两只眼睛的线沿水平线来实现。在一个或更多个实施例中,可以使用从输入数据120确定的朝向和/或凝视方向来执行旋转。
在至少一个实施例中,居中可以包括将一个或更多个特征点的位置中的一个或更多个围绕坐标系居中。例如,在旋转之后,归一化器104可以被配置成确定所有位置(例如,2D位置)的质心并从每个特征点中减去质心。此过程可以有效地将坐标系的中心更改为位于所有给定位置的质心处。例如,面部132可以通过使位置围绕其平均位置居中来居中。在一个或更多个实施例中,居中可以包括减去所有位置的平均值。在至少一个实施例中,坐标系可以定义相对于面部132的包围形状140的左上角的位置。例如,左上角可以指定为(0,0),所有位置都相对于该位置,其中X正向为右方向,而Y正向为向下方向。
归一化器104可以被配置成执行旋转以相对于坐标系来归一化位置的朝向。例如,旋转可以矫正面部132,使得其在输入端是直的或者以其它方式面向一致的方向。这可以例如通过执行旋转使得连接两只眼睛的线沿着水平线来实现。
在一个或更多个实施例中,至少一些归一化可以基于一个或更多个启发式方法。在至少一个实施例中,一个或更多个位置在一条线上相对于与检测到的面部的鼻子相对应的位置(例如,鼻尖)以预定量(例如,在上方中间的点)为中心,该条线连接该位置与检测到的面部的眼睛中心之间的预定量的点(例如,中间)。在至少一个实施例中,一个或更多个位置可以被旋转,使得将相对于检测到的面部的鼻子的预定位置(例如,鼻尖)与一点连接的线是检测到的面部的眼睛中心(例如,中间)之间的预定距离水平延伸。在至少一个实施例中,一个或更多个位置可以被缩放,使得检测到的面部的第一只眼的第一预定位置(例如,第一只眼的第一眼中心)和检测到的面部的第二只眼的第二预定位置(例如,第二只眼的第二眼中心)之间的距离基本上是均匀的。
在至少一个实施例中,一个或更多个位置以相对于预先指定的特征点的一个点为中心。进一步此示例,一个或更多个位置以鼻尖上方的中间为中心,在将鼻尖与两只眼睛的两个中心之间的中间点连接的线上。接下来,一个或更多个位置被旋转,使得连接两只眼睛的中点的线位于水平方向,并且缩放这些点使得两个眼睛中心之间的距离均匀。
虽然归一化器104被示为与MLM 106和特征点检测器102分开,但在一个或更多个实施例中,至少一些归一化可以使用MLM 106和/或特征点检测器102执行。此外或者替代地,可能不需要至少一些归一化。例如,一个或更多个位置可以使用特征点检测器102来确定,使得它们已经以其平均值为中心或以其他方式相对于坐标系一致地定位。
MLM 106可以被配置成分析一个或更多个特征点的一个或更多个位置以确定对应于一个或更多个面部表情的一个或更多个简档。例如,MLM 106可以接收归一化的位置数据126作为输入以生成指示(例如,表示)对应于一个或更多个面部表情的一个或更多个简档的输出数据114。在至少一个实施例中,所有(例如,126个)位置(例如,X,Y位置)可以被输入到MLM 106中以估计一个或更多个对应的简档。在至少一个实施例中,输出数据114指示(例如,表示)一个或更多个FACS输出值,和/或对应于情绪(例如,中性、厌恶、快乐、悲伤、恐惧、惊讶、愤怒等)、身份、面部反照率、环境照明和/或材料属性信息的系数。在至少一个实施例中,至少一些对象信息144可以被输入到MLM 106中以促进预测面部反照率、环境照明和/或材料属性信息中的一个或更多个。
虽然MLM 106被描述为分析一个或更多个特征点的一个或更多个位置以确定一个或更多个简档,但可以使用附加的或替代的对象信息144。对象信息144的示例包括表示从图像122确定的对象的朝向或对象的凝视方向的数据、对应于图像122的图像数据的一个或更多个部分(例如,RGB图像数据),和/或对应于图像122的时间信息。作为示例但非限制,MLM 106可以使用来自视频的一个或更多个先前帧的一个或更多个预测来确定对视频的一个或更多个后续帧的一个或更多个预测。在至少一个实施例中,MLM 106可以相对于来自视频的一个或更多个先前帧的一个或更多个预测来确定一个或更多个视频帧的一个或更多个预测(例如,作为增量值)。
在一个或更多个实施例中,一个简档可以对应于3D模型136的一个或更多个部分的一个或更多个面部表情。3D模型136的部分的示例包括3D模型136的一个或更多个位置和/或区域。这种位置和/或区域的示例如图2所示。
现在参考图2,图2示出了根据本公开的一些实施例的与关于图像122的面部表情的简档相对应的位置的示例,以及可以使用简档生成的模型130的图像136。
在图2中,使用点相对于图像122指示与面部表情的简档相对应的位置和/或区域,其中每个点可以对应于相应的简档。例如,图2中指示了53个简档。在至少一个实施例中,MLM 106可以推理这些简档的一个或更多个值。
在一个或更多个实施例中,简档的一个或更多个值可以指定和/或指示对应于该简档的位置的至少一个面部表情的存在。在一个或更多个实施例中,简档的一个或更多个值可以指定和/或指示对应于该简档的位置的至少一个面部表情的强度(例如,存在量)。
在至少一个实施例中,简档可以对应于3D模型136的一个或更多个部分的一个或更多个面部运动。例如,简档的一个或更多个值可以指定和/或指示针对与该简档对应的位置的至少一个面部运动的存在和/或强度(例如,存在量)。图2示出了图表202,其中每列对应于53个简档中的相应一个,并且该图表的高度对应于和该简档相对应的至少一个面部运动的强度(例如,存在量)。
作为示例而非限制,一个简档可以对应于一个或更多个面部动作编码***(FACS)值,诸如3D模型136的一个或更多个身份系数和/或表情系数。在至少一个实施例中,一个简档可以对应于一个或更多个动作项,例如动作单元(AU)和/或动作描述符(AD)。例如,图表202中的数字可以指动作项目编号或标识符,诸如AU编号或标识符。图表的高度可对应于AU的存在量。AU可对应于一块或更多块肌肉的一次或更多次收缩或放松。AD可与AU不同,因为它的定义独立于动作的肌肉基础。
在至少一个实施例中,模型管理器108可以被配置成使用由输出数据114指示和/或表示的信息,诸如对应于一个或更多个面部表情的一个或更多个简档中的至少一个,以使用一个或更多个输入(例如,一个或更多个简档)生成、确定、选择、变形、变换和/或动画化一个或更多个模型130和/或其属性。
在至少一个实施例中,模型管理器108可以确定模型130的几何形状。模型130可以包括与对应于一个或更多个面部表情的一个或更多个简档中的至少一个相对应的几何形状。例如,当简档对应于左眉上扬的面部表情时,用于模型130的一个或更多个相应部分的几何形状可以描绘上扬的左眉。在至少一个实施例中,模型130可以包括对应于由对应于一个或更多个面部表情的一个或更多个简档中的至少一个所指示的强度的几何形状。例如,如果简档的强度值对应于最低强度,则几何形状可以描绘左眉在最低位置,而如果简档的强度值对应于最高强度,则几何形状可以描绘左眉在其最高位置。在至少一个实施例中,由几何形状指示的强度可以与强度值成比例。
存在模型管理器108可以使用输出数据114来确定具有对应于一个或更多个简档的几何形状的模型130的多种方式。在至少一个实施例中,可以使用一组权重来混合(例如,线性地)一个或更多个3D形状以创建几何形状。在至少一个实施例中,除了使用隐式3D图形模型之外或替代使用隐式3D图形模型,可以更抽象地定义3D图形模型,诸如由CNN。在至少一个实施例中,简档可以对应于至少一个或更多个深度值。例如,MLM106可以推理出模型管理器108可用来确定几何形状的至少一个或更多个深度值或深度值增量。在至少一个实施例中,模型管理器108可以使用由MLM 106推理出的向量(例如,潜在空间向量)来确定模型130的几何形状,该向量具有比模型130的实际几何形状更低的维数并且可用于通过使用诸如简单的线性混合和/或使用另一个MLM(例如,神经网络)和/或算法处理的几何推理的技术来再现更复杂的几何形状。
在至少一个实施例中,每个简档,诸如每个AU,可以对应于形状变形定义或变换定义(例如,针对模型130的一个或更多个特定区域和/或部分)。模型管理器108可以使用该定义来确定模型130的几何形状的要变形的一个或更多个部分和/或模型130的变形量。在至少一个实施例中,变形量可以对应于简档的强度。在至少一个实施例中,变形量可对应于模型130的当前和/或身份或中性形状的增量。作为示例而不是限制,强度可以指示或表示混合系数值(例如,身份系数或表情系数),其定义模型管理器108将如何混合一个形状以产生另一个形状。在至少一个实施例中,模型管理器108组合(例如,使用线性组合)从图像122推理的每个动作单元的权重(例如,强度值),并且混合(例如,线性地)每个相应形状增量(表情混合形状)的权重以针对对应于面部132的部分确定聚合变形以在X,Y和Z维度应用于模型130的每个顶点。模型管理器108可以将聚合变形应用于模型130以确定模型130的几何形状。作为进一步的示例,模型管理器108可以使用一个或更多个简档来选择具有对应几何形状的一个或更多个对应预定的和/或预变形的模型130。
在至少一个实施例中,模型管理器108可以使用从图像122确定的对象的朝向和/或对象的凝视方向来定向或以其他方式配置模型130。例如,模型管理器108可以使用朝向和凝视方向来相对于虚拟相机定向模型130。从输入数据120确定的面部反照率、环境照明和/或材料属性信息可应用于模型130。
在至少一个实施例中,模型管理器108使用一个或更多个简档进行表情重定向。例如,模型管理器108可以使用一个或更多个简档来将图像122中描绘的面部132的面部表情转移到模型130。对于表情重定向,模型管理器108可以使用也可以不使用身份系数(例如,为面部132定义基本形状)。
在至少一个实施例中,模型管理器108使用一个或更多个简档用于创建面部132的3D重建。例如,模型管理器108可以使用一个或更多个简档来确定图像122中描绘的面部132的基本或中性形状(例如,用于中性面部表情)。为了确定基本形状,模型管理器108可以使用身份系数(例如,定义面部132的基本形状)。然后可以修改基本形状(例如,使用表情系数)。
使用模型管理器108配置的模型130可用于各种目的。在至少一个实施例中,模型管理器108可以渲染描绘模型130的视频的一帧或多帧。例如,模型130可以被渲染以针对对应于图像122的视频中描绘的面部132显示在模型130上的实时表情重定向的视频。例如,模型管理器108可以使用输出数据114来执行计算机图形角色的表情重定向以驱动面部动画和面部重演或用于3D角色(例如,化身)创建或照片动画。在一个或更多个实施例中,模型130可用于涉及3D模型的任何合适的应用,诸如在视频游戏、电影、实时流视频、计算机模拟、电视、用于训练机器学习模型的合成数据生成等。
公开的其他方面涉及用于估计面部表情的机器学习架构。机器学习架构可用于实现用于估计面部表情的MLM 106或一个或更多个其它MLM。虽然适用于MLM 106,但在至少一个实施例中,机器学习架构可用于实现不使用特征点的位置估计面部表情的MLM。例如,MLM可以使用各种类型的数据,诸如对象的朝向、对象的凝视方向、对应于图像122的图像数据的一个或更多个部分(例如,RGB图像数据)、对象的深度信息、LIDAR(激光雷达)数据、RADAR(雷达)数据、传感器数据等。
现在参考图3,图3示出了根据本公开的一些实施例的用于估计面部表情的机器学习架构300的示例。机器学习架构300包括表情估计器306,其可以分析输入数据集320以生成输出数据314。在至少一个实施例中,输出数据314对应于图1的输出数据114的至少一部分。在至少一个实施例中,输出数据314指示(例如,表示)一个或更多个FACS输出值,和/或对应于身份、面部反照率、环境照明和/或材料属性信息的系数。
在至少一个实施例中,输入数据集320对应于一个或更多个特征点的一个或更多个位置,如本文所述。例如,输入数据集320可以包括对应于特征点的位置集的归一化位置数据集126。然而,输入数据集320可以附加地或替代地包括其它类型的信息集,诸如对象的朝向集、对象的凝视方向集、对应于图像122的图像数据(例如,RGB图像数据)集、对象的深度信息集、激光雷达数据集、雷达数据集、传感器数据集等。
在至少一个实施例中,每组输入数据集320对应于输入数据的相应子集。一组输入数据集320可以基于要被包括在集合中的输入数据的各部分的各种潜在属性来确定。在至少一个实施例中,一组输入数据集320可以对应于面部132、图像122和/或相应坐标系的一个或更多个相应区域和/或位置。因此,该组可以包括对应于区域或位置的图像数据的一部分。作为示例而非限制,在输入数据表示或指示面部132的特征点的位置的情况下,一个数据集可以包括与面部132左上半部分的一个或更多个位置相对应的位置数据(例如,包括左眼和眉毛以及鼻子的中心),另一个数据集可以包括与面部132右上半部分的一个或更多个位置相对应的位置数据(例如,包括右眼和眉毛以及鼻子的中心),并且另一数据集可以包括与面部132下半部分的一个或更多个位置相对应的位置数据(例如,包括鼻梁下方的鼻子、嘴巴和下颌线)。
另外或替代地,在输入数据集320对应于图像数据的情况下,一个数据集可以包括捕获对应于面部132左上半部分的图像区域的图像数据,另一个数据集可以包括对应于包括面部132的右上半部分的图像区域的图像数据,并且另一个数据集可以包括捕获对应于面部132下半部分的图像区域的图像数据。
其他类型的输入数据可以类似地分组到集合中。此外,用于定义集合的其他潜在属性包括一个或更多个先前帧中的一个或更多个相应特征点、位置和/或区域发生了多少变形。例如,可以至少基于相应特征点、位置和/或区域的变形量的范围对输入数据进行分组。
表情估计器306包括一个或更多个子集分析器,其中子集分析器304A、304B和304C(也称为“子集分析器304”)作为示例示出。然而,表情估计器306可以包括更多或更少的子集分析器。表情估计器306还包括一个或更多个子集聚合器,其中示出子集聚合器308。
子集分析器304被配置成分析输入数据集320以从一组或更多组输入数据集320推理面部表情数据,诸如对应于一个或更多个面部表情的一个或更多个简档。例如,每个子集分析器304A可以分析一组或更多组相应的输入数据集320以确定相应的面部表情数据。在至少一个实施例中,每个子集分析器304包括被训练以推理面部表情数据的相应的MLM和/或神经网络层。在至少一个实施例中,子集分析器304和子集聚合器308形成表情估计器306的子神经网络的多个级联层。
子集聚合器308被配置成聚合使用子集分析器304确定的面部表情数据以确定聚合的面部表情数据,诸如对应于一个或更多个面部表情的一个或更多个聚合简档。在至少一个实施例中,子集聚合器包括相应的MLM和/或神经网络层,其被训练以从子集分析器304的输出推理聚合的面部表情数据。子集聚合器308还可以分析对象信息344以确定聚合的面部表情数据。对象信息344可以对应于包含在输入数据集320中的多个集合,诸如由子集分析器304分析的每个集合。例如,当子集分析器304分析面部132的相应区域的输入数据集时,对象信息344可以包括对应于整个面部132的信息。
在至少一个实施例中,对象信息344可以包括关于对象信息144所描述的信息的任意组合。另外或者替代地,对象信息344可以包括一个或更多个特征点的一个或更多个位置中的至少一个。
在至少一个实施例中,表情估计器306对应于图1的MLM 106的至少一部分。在至少一个实施例中,表情估计器306是神经网络(NN)架构,包括子神经网络的多个级联层。在一个或更多个实施例中,第一层网络包含多个神经网络,每个神经网络对应于相应的子集分析器304,其单独处理面部132的子部分。在一个或更多个实施例中,第一层中的每个子神经网络将来自特定面部子区域的一个或更多个特征点的一个或更多个位置作为输入。例如,子集分析器304A可以将表示仅与面部132左半部分相关的特征点的位置的一组输入数据集320作为输入,并预测仅与面部132的左半部分有关的FACS子集的一个或更多个对应的FACS值。
这一非限制性示例进一步地,子集分析器304B可以将表示仅与面部132右半部分相关的特征点的位置的一组输入数据集320作为输入,并预测仅与面部132的左半部分相关的FACS子集的一个或更多个对应的FACS值。此外,子集分析器304C可以将表示仅与面部132底部相关的特征点的位置的一组输入数据集320作为输入,并预测仅与面部132底部相关的FACS子集的一个或更多个对应的FACS值。
在一个或更多个实施例中,在第一层子神经网络之后是对应于子集聚合器308的单个最终NN层,其将原始(例如,126个)面部基准点的(X,Y)位置以及由第一层子神经网络估计的所有FACS值作为输入,并且它产生最终(例如,53个)FACS输出值。
在至少一个实施例中,由子集分析器304分析的区域和/或位置至少部分重叠。例如,在子集分析器304分析特征点的位置时,各个区域可以共享特征点的位置的边界或以其他方式分析至少一个公共位置和/或特征点。作为进一步的示例,在子集分析器304分析表示图像区域的图像数据,各个图像区域可以共享一个或更多个像素的边界或者以其它方式分析对应于至少一个公共像素的图像数据。作为示例但非限制,在子集分析器304A分析一组表示与面部132左半部分相关的特征点的位置的输入数据集320并且子集分析器304B分析一组表示与面部132右半部分相关的特征点的位置的输入数据集320的情况下,这些组可至少共享一些沿着鼻梁(例如,沿着区域的边界)延伸的特征点。在输入数据集320中提供重叠可以通过使由特定子集分析器304分析的数据较少局部化来帮助规范数据。
现在参考图4,图4是示出根据本公开的至少一个实施例的用于训练MLM 106以使用面部特征点来估计面部表情的示例过程400的数据流图。
过程400可以使用一个或更多个机器学习模型(MLM)106和训练引擎404以及其它组件来实现。训练引擎404可以包括参数调整器406和输出分析器408。过程400(及其组件和/或特征)可以使用一个或更多个计算设备来实现,例如图7的计算设备700和/或一个或更多个数据中心(例如图8的数据中心800),下面将更详细地描述。
在高层次上,过程400可以包括MLM 106接收一个或更多个输入,诸如数据集410的一个或更多个样本(例如,训练数据集),以及从一个或更多个输入生成一个或更多个输出,诸如输出数据412(例如,张量数据)。如图4所示,数据集410可以由训练引擎404应用于MLM106。过程400还可以包括训练引擎404的输出分析器408,其接收一个或更多个输入(诸如输出数据412),以及从一个或更多个输入生成一个或更多个输出,诸如损失函数数据414(例如,表示一个或更多个MLM 106关于一个或更多个成本函数的一个或更多个损失)。参数调整器406可以接收一个或更多个输入,诸如损失函数数据414,并从一个或更多个输入生成一个或更多个输出,诸如更新数据416(例如,表示对一个或更多个MLM 106的一个或更多个参数的一个或更多个值的更新)。参数调整器406可以将更新数据416应用于MLM 106,以根据更新数据416更新一个或更多个MLM 106的一个或更多个参数的一个或更多个值。过程400可以重复任意次数的迭代,例如,直到MLM 106被完全训练。例如,训练引擎404可以使用任何合适的方法来确定结束训练,诸如确定MLM 106已经收敛(例如,使用损失函数数据414)、确定已经发生训练迭代的阈值次数等。MLM 106可以至少基于该确定被部署和/或经受额外的验证、测试和/或适配。
数据集410可以包括训练、验证或测试数据。例如,数据集410可由训练引擎404用于训练MLM 106、用于验证MLM 106和/或用于测试MLM 106。在一个或更多个实施例中,数据集410可以在过程400的多次迭代中应用于MLM 106。在一个或更多个实施例中,数据集410可以表示在过程400中由训练引擎404应用于MLM 106的一个或更多个样本。
训练引擎404的输出分析器408可以被配置成从输出数据412生成损失函数数据414。输出数据412可以表示来自一个或更多个MLM 106的一个或更多个输出。在至少一个实施例中,输出数据412可以包括来自一个或更多个MLM 106的张量数据(和/或向量数据,和/或标量数据)的至少一部分。输出分析器408可以至少基于对输出数据412的分析来生成损失函数数据414。输出数据412的分析可以使用各种方法进行。在至少一个实施例中,输出分析器408可以后处理至少一些输出数据412,例如以确定一个或更多个MLM 106的一个或更多个推理或预测输出(例如,MLM 106被训练或正在被训练推理的一个或更多个输出)。输出分析器408可以分析经后处理的数据以确定损失函数数据414。例如,输出分析器408可以包括一个或更多个优化器或求解器,训练引擎404可以使用优化器或求解器来定义如何改变一个或更多个MLM 106的参数-诸如权重和学习率-以便根据损失或成本函数减少损失。
参数调整器406可以被配置成生成一个或更多个输出,诸如来自损失函数数据414的更新数据416。例如,参数调整器406可以使用使用输出分析器408计算的梯度来确定一个或更多个MLM 106的一个或更多个参数的更新值。
在一个或更多个实施例中,参数调整器406可以被配置成在MLM 106的多个级别上实施损失。在图3的示例中,由单独子集分析器304预测的一个或更多个值可以被实施与输出数据314的最终真值相匹配。在一个或更多个实施例或进一步实施例中,由最终层NN产生的最终值被约束为尽可能接近真值。在一个或更多个实施例中,由输出分析器408计算的L1或MSE损失可以应用于约束每个估计值,使其接近其真值。
本文公开的技术可以结合到可用于处理神经网络的任何处理器中,诸如,例如中央处理器(CPU)、GPU、智能处理单元(IPU)、神经处理单元(NPU)、张量处理单元(TPU)、神经网络处理器(NNP)、数据处理单元(DPU)、视觉处理单元(VPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。这种处理器可以结合到个人计算机(例如,膝上型电脑)、数据中心、物联网(IoT)设备、手持设备(例如,智能手机)、车辆、机器人、语音控制设备或任何其他执行推理、训练或神经网络的任何其他处理的设备中。这样的处理器可以用在虚拟化***中,使得在***上的虚拟机中执行的操作***可以利用该处理器。
例如,结合本文公开的技术的处理器可用于在机器中处理一个或更多个神经网络,以识别、分类、操纵、处理、操作、修改或导航现实世界中的物理对象。例如,这样的处理器可以用于自主车辆(例如,汽车、摩托车、直升机、无人机、飞机、船只、潜艇、送货机器人等)中以在现实世界中移动车辆。此外,这种处理器可以用于工厂的机器人中,以选择部件并将部件组装成组件。在至少一个实施例中,处理器可以用于实现自动代理(例如,机器人),其与人类一起工作并且能够至少基于输出数据114理解与其一起工作的人类的面部表情和情绪并基于该理解执行一个或更多个操作。
作为示例,结合本文所公开技术的处理器可用于处理一个或更多个神经网络以识别图像中的一个或更多个特征或改变、生成或压缩图像。例如,这种处理器可用于增强使用光栅、光线追踪(例如,使用NVIDIA RTX)和/或其他渲染技术渲染的图像。在另一示例中,这样的处理器可以用于减少通过网络(例如,因特网、移动电信网络、WIFI网络以及任何其它有线或无线网络***)从渲染设备传输到显示设备的图像数据量。这种传输可用于将图像数据从云中的服务器或数据中心流式传输到用户设备(例如,个人计算机、视频游戏控制台、智能手机、其他移动设备等),以增强流式传输图像的服务,诸如NVIDIA GeForce Now(GFN)等。
作为示例,结合本文公开技术的处理器可用于处理一个或更多个神经网络,以用于可以利用神经网络的任何其他类型的应用。例如,此类应用可能涉及翻译语言、识别和否定音频中的声音、检测商品和服务生产过程中的异常或缺陷、监视生物和非生物、医疗诊断、进行决策等。
现在参考图5-6,方法500和600以及本文描述的其它方法的每个框,包括可以使用硬件、固件和/或软件的任意组合来执行的计算过程。例如,各种功能可以通过处理器执行存储在存储器中的指令来执行。这些方法也可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用程序、服务或托管服务(独立或与其他托管服务组合)或另一个产品的插件提供,仅举几例。此外,通过示例的方式,针对特定图来描述方法。然而,这些方法可以附加地或替代地由任何一个***执行,或者由***的任何组合执行,包括但不限于本文中描述的那些。
图5是示出根据本公开的一些实施例的用于使用面部特征点来估计面部表情以确定一个或更多个模型的方法500的流程图。在框B502处,方法500包括确定指示一个或更多个位置的位置数据。例如,特征点检测器102可以使用表示描绘面部132的图像122的图像数据来确定指示对应于面部132的一个或更多个面部特征点的一个或更多个位置的位置数据124。
在框B504处,方法500包括将一个或更多个位置应用于一个或更多个MLM以生成指示一个或更多个简档的输出数据。例如,位置数据124可用于将一个或更多个面部特征点的一个或更多个位置应用于MLM 106以生成指示对应于一个或更多个面部表情的一个或更多个简档的输出数据114。
在框B506处,方法500包括使用输出数据确定具有对应于一个或更多个简档的几何形状的一个或更多个模型。例如,模型管理器108可以使用输出数据114确定具有对应于一个或更多个简档的几何形状的模型130。
现在参考图6,图6是示出根据本公开的一些实施例的用于使用面部特征点从视频数据估计面部表情以动画化一个或更多个模型的方法600的流程图。在框B602处,方法600包括分析视频数据以确定一个或更多个位置。例如,特征点检测器102可以分析表示一个或更多个图像序列的视频数据,包括描绘面部的图像122,以确定对应于面部132的一个或更多个面部特征点的一个或更多个位置。
在框B604处,方法600包括使用一个或更多个机器学习模型(MLM)来确定一个或更多个简档,这些模型被训练以从至少一个或更多个位置推理一个或更多个简档。例如,至少基于分析,对应于一个或更多个面部表情的一个或更多个简档可以使用被训练以从至少一个或更多个位置推理一个或更多个简档的MLM 106来确定。
在框B606处,方法600包括至少基于对应于一个或更多个面部表情的一个或更多个简档来生成动画。例如,模型管理器108可以至少基于对应于一个或更多个面部表情的一个或更多个简档来生成模型130的动画。
示例计算设备
图7为适合用于实现本公开一些实施例的示例计算设备700的框图。计算设备700可以包括直接或间接耦合下列设备的互连***702:存储器704,一个或更多个中央处理单元(CPU)706,一个或更多个图形处理单元(GPU)708,通信接口710,输入/输出(I/O)端口712,输入/输出组件714,电源716,一个或更多个呈现组件718(例如显示器)和一个或更多个逻辑单元720。在至少一个实施例中,计算设备700可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,一个或更多个GPU 708可以包括一个或更多个vGPU,一个或更多个CPU 706可以包括一个或更多个vCPU,和/或一个或更多个逻辑单元720可以包括一个或更多个虚拟逻辑单元。因此,计算设备700可以包括分立组件(例如,专用于计算设备700的完整GPU)、虚拟组件(例如,专用于计算设备700的GPU的一部分),或其组合。
尽管图7的各个框被示为经由具有线路的互连***702连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件718可以被认为是I/O组件714(例如如果显示器为触摸屏)。作为另一个示例,CPU 706和/或GPU708可以包括存储器(例如,存储器704可以表示除了GPU 708、CPU 706和/或其他组件的存储器以外的存储设备)。换言之,图7的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型之类的类别之间不进行区分,因为所有这些都被考虑在图7的计算设备的范围内。
互连***702可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连***702可以包括一种或更多种链路或总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、***组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 706可以直接连接到存储器704。此外,CPU 706可以直接连接到GPU 708。在组件之间存在直接或点对点连接的情况下,互连***702可以包括PCIe链路来执行该连接。在这些示例中,计算设备700中不需要包括PCI总线。
存储器704可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备700访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器704可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备700访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 706可以被配置为执行计算机可读指令中的至少一些,以便控制计算设备700的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 706中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 706可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备700的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机制(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备700还可以包括一个或更多个CPU 706。
除了或替代CPU 706,GPU 708还可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件执行一个或更多个本文所述的方法和/或过程。一个或更多个GPU 708可以是集成GPU(例如,具有一个或更多个CPU 706)和/或一个或更多个GPU 708可以是离散GPU。在实施例中,一个或更多个GPU 708可以是一个或更多个CPU 706的协处理器。计算设备700可以使用GPU 708来渲染图形(例如,3D图形)或执行通用计算。例如,GPU 708可用于GPU上的通用计算(GPGPU)。GPU 708可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 708可以响应于渲染命令(例如经由主机接口接收的来自CPU 706的渲染命令)而生成用于输出图像的像素数据。GPU 708可以包括诸如显示存储器之类的用于存储像素数据或任何其他合适的数据(例如GPGPU数据)的图形存储器。显示存储器可以作为存储器704的部分而被包括。GPU708可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 708可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的存储器,或者可以与其他GPU共享存储器。
除了或替代CPU 706和/或GPU 708,逻辑单元720可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。在实施例中,CPU 706、GPU 708和/或逻辑单元720可以离散地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元720可以是一个或更多个CPU706和/或一个或更多个GPU 708的一部分和/或集成在其中和/或一个或更多个逻辑单元720可以是CPU 706和/或GPU 708的离散组件或以其他方式在其外部。在实施例中,一个或更多个逻辑单元720可以是一个或更多个CPU 706和/或一个或更多个GPU 708的处理器。
逻辑单元720的示例包括一个或更多个处理核心和/或其组件,例如数据处理单元(DPU)、张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU))、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、***组件互连(PCI)或***组件互连快速(PCIe)元件等。
通信接口710可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口710可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或InfiniBand通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。在一个或更多个实施例中,逻辑单元720和/或通信接口710可以包括一个或更多个数据处理单元(DPU)以将通过网络和/或通过互连***702接收的数据直接传输到一个或更多个GPU 708(例如,一个或更多个GPU 708的存储器)。
I/O端口712可以使得计算设备700能够逻辑地耦合到包括I/O组件714、呈现组件718和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备700中。说明性I/O组件714包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。I/O组件714可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备700的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备700可以包括诸如立体相机***之类的深度相机、红外相机***、RGB相机***、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备700可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备700用来渲染沉浸式增强现实或者虚拟现实。
电源716可以包括硬接线电源、电池电源或者其组合。电源716可以向计算设备700供电以使得计算设备700的组件能够操作。
呈现组件718可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件718可以接收来自其他组件(例如GPU 708、CPU 706、DPU等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
示例数据中心
图8示出了示例数据中心800,其可用于本公开的至少一个实施例中。数据中心800可以包括数据中心基础设施层810、框架层820、软件层830和应用层840。
如图8所示,数据中心基础设施层810可以包括资源协调器812、分组计算资源814和节点计算资源(“节点C.R.”)816(1)-816(N),其中“N”代表任何完整的正整数。在至少一个实施例中,节点C.R.816(1)-816(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如动态只读存储器),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NW I/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在一些实施例中,节点C.R.816(1)-816(N)中的一个或更多个节点C.R.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点C.R.816(1)-816(N)可以包括一个或更多个虚拟组件,例如vGPU、vCPU等,和/或节点C.R.816(1)-816(N)中的一个或更多个可以对应于虚拟机(VM)。
在至少一个实施例中,分组计算资源814可以包括容纳在一个或更多个机架内的节点C.R.816的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组计算资源814内的节点C.R.816的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU、GPU、DPU和/或其他处理器的几个节点C.R.816分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括以任意组合的任何数量的电源模块、冷却模块和/或网络交换机。
资源协调器812可以配置或以其他方式控制一个或更多个节点C.R.816(1)-816(N)和/或分组计算资源814。在至少一个实施例中,资源协调器812可以包括用于数据中心800的软件设计基础结构(“SDI”)管理实体。资源协调器812可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图8所示,框架层820可以包括作业调度器828、配置管理器834、资源管理器836和分布式文件***838。框架层820可以包括支持软件层830的软件832和/或应用层840的一个或更多个应用程序842的框架。软件832或应用程序842可以分别包括基于Web的服务软件或应用程序,例如由Amazon Web Services,Google Cloud和Microsoft Azure提供的服务软件或应用程序。框架层820可以是但不限于一种免费且开源的软件网络应用框架,例如可以利用分布式文件***838来进行大规模数据处理(例如“大数据”)的Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器828可以包括Spark驱动器,用于促进对数据中心800的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器834可以能够配置不同的层,例如软件层830和包括Spark和用于支持大规模数据处理的分布式文件***738的框架层820。资源管理器836能够管理映射到或分配用于支持分布式文件***838和作业调度器828的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层810处的分组计算资源814。资源管理器836可以与资源协调器812协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层830中的软件832可以包括由节点C.R.816(1)-816(N)的至少部分,分组计算资源814和/或框架层820的分布式文件***838使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒浏览软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层840中包括的一个或更多个应用程序842可以包括由节点C.R.816(1)-816(N)的至少部分、分组的计算资源814和/或框架层820的分布式文件***838使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)和/或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器834、资源管理器836和资源协调器812中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心800的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或行差的部分。
数据中心800可以包括工具、服务、软件或其他资源,用于根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心800描述的软件和计算资源,根据神经网络架构计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心800所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息,例如但不限于本文所述的那些。
在至少一个实施例中,数据中心800可以使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与之对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图7的计算设备700的一个或更多个实例上实现—例如,每个设备可以包括计算设备700的类似组件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可以是作为数据中心800的一部分而被包括的,其示例在此关于图8更详细地描述。
网络环境的组件可以通过网络彼此通信,网络可以是有线、无线或两者。网络可以包括多个网络,或者多个网络中的网络。举例来说,网络可以包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(例如因特网和/或公共交换电话网(PSTN))、和/或一个或更多个专用网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)之类的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下服务器可能不包括在网络环境中),以及一个或更多个客户端-服务器网络环境(在这种情况下一个或更多个服务器可以包含在网络环境中)。在对等网络环境中,本文描述的关于服务器的功能可以在任意数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、它们的组合等。基于云的网络环境可以包括框架层、作业调度器、资源管理器,以及在一个或更多个服务器上实现的分布式文件***,这些服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可以包括用于支持软件层的软件和/或应用层的一个或更多个应用程序的框架。软件或应用程序可分别包括基于网络的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用程序(例如,通过经由一个或更多个应用程序编程接口(API)访问服务软件和/或应用程序)。框架层可以是但不限于一种类型的免费且开源软件网络应用程序框架,例如可以使用分布式文件***进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可以提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些各种功能中的任何一个都可以分布在来自(例如,可以分布在州、地区、国家、全球等地的一个或更多个数据中心的)中央或核心服务器的多个位置。如果到用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,仅限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
客户端设备可以包括本文关于图7描述的示例计算设备700的至少一些组件、特征和功能。作为示例而非限制,客户端设备可以体现为个人计算机(PC)、膝上型计算机、移动设备、智能手机、平板计算机、智能手表、可穿戴计算机、个人数码助理(PDA)、MP3播放器、虚拟现实头戴式显示器、全球定位***(GPS)或设备、视频播放器、摄像机、监视设备或***、车辆、船只、飞行器、虚拟机器、无人机、机器人、手持通信设备、医院设备、游戏设备或***、娱乐***、车载计算机***、嵌入式***控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描述设备的任意组合或任何其他合适的设备。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
Claims (20)
1.一种方法,包括:使用表示描绘一个或更多个面部的一个或更多个图像的图像数据,确定指示对应于所述一个或更多个面部的一个或更多个面部特征点的一个或更多个位置的位置数据;使用所述位置数据,将所述一个或更多个面部特征点的所述一个或更多个位置应用于一个或更多个机器学习模型(MLM)以生成输出数据,所述输出数据指示对应于一个或更多个面部表情的一个或更多个简档;以及使用所述输出数据,确定具有对应于所述一个或更多个简档的几何形状的一个或更多个模型。
2.根据权利要求1所述的方法,还包括:使用具有对应于所述一个或更多个简档的所述几何形状的所述一个或更多个模型生成动画。
3.根据权利要求1所述的方法,还包括:在将所述一个或更多个位置应用于所述一个或更多个MLM之前对所述一个或更多个位置进行归一化,其中所述归一化包括以下中的至少一个:使所述一个或更多个位置相对于坐标系居中;相对于所述坐标系旋转所述一个或更多个位置;或相对于所述坐标系缩放所述一个或更多个位置。
4.根据权利要求1所述的方法,其中所述一个或更多个简档和所述一个或更多个面部表情对应于面部动作编码***(FACS)。
5.根据权利要求1所述的方法,其中所述一个或更多个简档包括针对所述一个或更多个面部表情中的至少一个面部表情的与关于所述至少一个面部表情的强度相对应的表示,并且所述几何形状是至少基于关于所述至少一个面部表情的所述强度。
6.根据权利要求1所述的方法,其中所述一个或更多个MLM包括:一个或更多个第一神经网络层,用于与所述一个或更多个MLM的一个或更多个第二神经网络层处理所述一个或更多个位置的第二子集并行处理所述一个或更多个位置的第一子集;以及一个或更多个第三神经网络层,用于处理所述一个或更多个第一神经网络层的第一输出、所述一个或更多个第二神经网络层的第二输出、所述一个或更多个位置的所述第一子集以及所述一个或更多个位置的所述第二子集。
7.根据权利要求6所述的方法,其中所述第一输出指示与所述一个或更多个面部中的一个面部的第一区域的至少一个面部表情相对应的至少一个简档,并且所述第二输出指示与所述一个面部的第二区域的至少一个面部表情相对应的至少一个简档。
8.根据权利要求7所述的方法,其中所述第一区域与所述第二区域部分重叠。
9.根据权利要求6所述的方法,其中所述一个或更多个MLM使用与所述第一输出和所述第二输出相对应的第一损失函数以及与所述一个或更多个第三神经网络层的第三输出相对应的第二损失函数进行训练。
10.根据权利要求1所述的方法,其中对应于所述一个或更多个面部表情的所述一个或更多个简档包括以下中的一个或更多个:所述一个或更多个面部中的至少一个面部的一个或更多个身份系数;或所述至少一个面部的一个或更多个表情系数。
11.一种***,包括:用于执行操作的一个或更多个处理单元,所述操作包括:分析表示描绘一个或更多个面部的一个或更多个图像序列的视频数据,以确定对应于所述一个或更多个面部的一个或更多个面部特征点的一个或更多个位置;至少基于所述分析,使用一个或更多个机器学习模型(MLM)确定对应于一个或更多个面部表情的一个或更多个简档,所述一个或更多个机器学习模型被训练为从至少所述一个或更多个位置推理所述一个或更多个简档;以及至少基于对应于所述一个或更多个面部表情的所述一个或更多个简档来生成一个或更多个模型的动画。
12.根据权利要求11所述的***,其中所述一个或更多个简档指示针对所述图像中的至少一个第一图像的所述一个或更多个面部表情中的至少一个面部表情的一个或更多个第一强度值以及所述至少一个面部表情的一个或更多个第二强度值,并且其中动画化所述一个或更多个模型是至少基于所述一个或更多个第一强度值以及所述一个或更多个第二强度值。
13.根据权利要求11所述的***,其中所述选项还包括:在使用所述一个或更多个MLM之前对所述一个或更多个位置进行归一化,其中所述归一化包括以下中的至少一个:使所述一个或更多个位置相对于坐标系居中;相对于所述坐标系旋转所述一个或更多个位置;或相对于所述坐标系缩放所述一个或更多个位置。
14.根据权利要求11所述的***,其中所述一个或更多个MLM包括:一个或更多个第一神经网络层,用于与所述一个或更多个MLM的一个或更多个第二神经网络层处理所述一个或更多个位置的第二子集并行处理所述一个或更多个位置的第一子集;以及一个或更多个第三神经网络层,用于处理所述一个或更多个第一神经网络层的第一输出、所述一个或更多个第二神经网络层的第二输出、所述一个或更多个位置的所述第一子集、以及所述一个或更多个位置的所述第二子集。
15.根据权利要求14所述的***,其中所述第一输出指示与所述一个或更多个面部中的一个面部的第一区域的至少一个面部表情相对应的至少一个简档,并且所述第二输出指示与所述一个面部的第二区域的至少一个面部表情相对应的至少一个简档。
16.根据权利要求11所述的***,其中所述***被包括在以下中的至少一个中:用于自主或半自主机器的控制***;用于自主或半自主机器的感知***;用于执行模拟操作的***;用于执行数字孪生操作的***;用于执行光传输模拟的***;用于执行3D资产的协作内容创建的***;用于执行深度学习操作的***;使用边缘设备实现的***;使用机器人实现的***;用于执行对话式AI操作的***;用于生成合成数据的***;用于呈现虚拟现实内容、增强现实内容或混合现实内容中的至少一种的***;包含一个或更多个虚拟机(VM)的***;至少部分在数据中心中实现的***;或至少部分地使用云计算资源实现的***。
17.一种处理器,包括:一个或更多个电路,用于至少基于确定与一个或更多个图像中描绘的一个或更多个面部相对应的一个或更多个面部特征点的一个或更多个位置以及将所述一个或更多个位置应用于一个或更多个机器学习模型(MLM)以生成指示对应于一个或更多个面部表情的一个或更多个简档的输出数据,确定与所述一个或更多个简档相对应的一个或更多个模型。
18.根据权利要求17所述的处理器,其中所述一个或更多个电路进一步用于使用对应于所述一个或更多个简档的所述一个或更多个模型来生成动画。
19.根据权利要求17所述的处理器,其中所述一个或更多个电路进一步用于在将所述一个或更多个位置应用于所述一个或更多个MLM之前对所述一个或更多个位置进行归一化,其中所述归一化包括以下中的至少一个:使所述一个或更多个位置相对于坐标系居中;相对于所述坐标系旋转所述一个或更多个位置;或相对于所述坐标系缩放所述一个或更多个位置。
20.根据权利要求17所述的处理器,其中所述处理器被包括在以下中的至少一个中:用于自主或半自主机器的控制***;用于自主或半自主机器的感知***;用于执行模拟操作的***;用于执行数字孪生操作的***;用于执行光传输模拟的***;用于执行3D资产的协作内容创建的***;用于执行深度学习操作的***;使用边缘设备实现的***;使用机器人实现的***;用于执行对话式AI操作的***;用于生成合成数据的***;用于呈现虚拟现实内容、增强现实内容或混合现实内容中的至少一种的***;包含一个或更多个虚拟机(VM)的***;至少部分在数据中心中实现的***;或至少部分地使用云计算资源实现的***。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163276907P | 2021-11-08 | 2021-11-08 | |
US63/276,907 | 2021-11-08 | ||
US18/051,209 | 2022-10-31 | ||
US18/051,209 US20230144458A1 (en) | 2021-11-08 | 2022-10-31 | Estimating facial expressions using facial landmarks |
PCT/US2022/048552 WO2023081138A1 (en) | 2021-11-08 | 2022-11-01 | Estimating facial expressions using facial landmarks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117242502A true CN117242502A (zh) | 2023-12-15 |
Family
ID=86229025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280028207.2A Pending CN117242502A (zh) | 2021-11-08 | 2022-11-01 | 使用面部特征点估计面部表情 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230144458A1 (zh) |
CN (1) | CN117242502A (zh) |
-
2022
- 2022-10-31 US US18/051,209 patent/US20230144458A1/en active Pending
- 2022-11-01 CN CN202280028207.2A patent/CN117242502A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230144458A1 (en) | 2023-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11557085B2 (en) | Neural network processing for multi-object 3D modeling | |
US11468636B2 (en) | 3D hand shape and pose estimation | |
US11024041B2 (en) | Depth and motion estimations in machine learning environments | |
US11373332B2 (en) | Point-based object localization from images | |
US11232286B2 (en) | Method and apparatus for generating face rotation image | |
CN115699114B (zh) | 用于分析的图像增广的方法和装置 | |
CN108701355B (zh) | Gpu优化和在线基于单高斯的皮肤似然估计 | |
US11748913B2 (en) | Modeling objects from monocular camera outputs | |
US11138812B1 (en) | Image processing for updating a model of an environment | |
CN114424239A (zh) | 用于光线追踪应用中的循环模糊的去噪技术 | |
US20240185506A1 (en) | Hybrid differentiable rendering for light transport simulation systems and applications | |
US20240037788A1 (en) | 3d pose estimation in robotics | |
US11922558B2 (en) | Hybrid differentiable rendering for light transport simulation systems and applications | |
US20240111894A1 (en) | Generative machine learning models for privacy preserving synthetic data generation using diffusion | |
CN116710974A (zh) | 在合成数据***和应用程序中使用域对抗学习的域适应 | |
US20230144458A1 (en) | Estimating facial expressions using facial landmarks | |
WO2023081138A1 (en) | Estimating facial expressions using facial landmarks | |
US20230290057A1 (en) | Action-conditional implicit dynamics of deformable objects | |
US20230085156A1 (en) | Entropy-based pre-filtering using neural networks for streaming applications | |
US20240054657A1 (en) | Frame rate up-conversion using optical flow | |
US20230377324A1 (en) | Multi-domain generative adversarial networks for synthetic data generation | |
CN116246026B (zh) | 三维重建模型的训练方法、三维场景渲染方法及装置 | |
US20240160888A1 (en) | Realistic, controllable agent simulation using guided trajectories and diffusion models | |
CN116824284A (zh) | 一种图像处理方法以及相关设备 |
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 |