CN110807364B - 三维人脸与眼球运动的建模与捕获方法及系统 - Google Patents
三维人脸与眼球运动的建模与捕获方法及系统 Download PDFInfo
- Publication number
- CN110807364B CN110807364B CN201910926781.XA CN201910926781A CN110807364B CN 110807364 B CN110807364 B CN 110807364B CN 201910926781 A CN201910926781 A CN 201910926781A CN 110807364 B CN110807364 B CN 110807364B
- Authority
- CN
- China
- Prior art keywords
- dimensional
- eye
- image
- face
- eyeball
- 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.)
- Active
Links
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/168—Feature extraction; Face representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/251—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
-
- 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
- G06V40/176—Dynamic expression
-
- 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/18—Eye characteristics, e.g. of the iris
- G06V40/19—Sensors therefor
-
- 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/20—Movements or behaviour, e.g. gesture recognition
Abstract
本发明提出一种三维人脸与眼球运动的建模与捕获方法及系统,对于拍摄得到的场景图像,首先需要提取得到图像中人脸的特征点的位置信息,该信息的获取使用卷积神经网络的方法;获取得到稀疏的面部特征点后,利用人脸的多线性模型作为模型的先验条件,将图像上检测到的特征点位置作为观测结果,并设计一个最大后验的框架来优化求解图像中人脸的几何形状和姿态。针对三维眼球的运动,利用稀疏的二维特征点抠取得到眼睛区域图像块,利用特征点的位置信息实现图像块的对齐,进一步标记出虹膜和瞳孔的区域,利用基于合成的分析方法将眼球运动实时重建出来。结合上一步得到的表情参数,将人脸表情运动和眼球运动相结合,得到完整的面部表情动画。
Description
技术领域
本发明涉及人脸识别领域,并特别涉及一种三维人脸与眼球运动的建模与捕获方法及系统。
背景技术
在虚拟动画领域中,人脸动画属于一个重要而又热门的研究问题。人脸动画不单只面部表情的运动,其中还包括眼球的运动。涵盖了表情运动和眼球运动的人脸动画才会给人一种更加真实逼真的动画感觉。忽略眼球运动的人脸动画会给人一种呆板无神的感觉,会让人产生很强的不适感。在当前的科研工作中,生成人脸动画的常用方法即从真人的视频中进行人脸运动的捕获,同时添加眼球运动的捕获。从硬件成本和资源利用率等方面考虑,使用一个单目相机从拍摄视频中获取三维眼球的状态,是当前眼球追踪方法中最为理想的一种实现方式。
基于图像的人脸建模研究,因其拍摄设备的要求较低,极易获取彩色图像和彩色视频等图像信息。智能手机上普遍配置了摄像头,为了得到更好的用户体验,本方法在图像上实现对人脸和人眼的三维建模研究。Wang等人发表的Realtime 3D eye gaze animationusing a single RGB camera方法,设计了要第一个实时的三维人眼追踪系统。在该方法中,作者使用随机森林的方式对图像中的瞳孔和虹膜区域进行提取和识别,并在提取到的数据上添加中心聚类的方法做约束来实现眼球追踪系统。该方法虽然可以得到三维的眼球状态,然而采用基于随机森林的方法依然存在一定的缺陷。使用随机森林的方法主要有以下不足:
一、使用随机森林对像素进行分类,得到的分类结果较为不准确,需要后期使用中心聚类的方法来进行约束;
二、时间消耗加大,内存占用严重,对硬件要求较高,无法将系统迁移至移动端使用。
针对使用随机森林产生的缺陷,本发明使用卷积神经网络的方法来解决该问题,结合Unet和Squeezenet各自的优点,使用神经网络可以快速准确的得到眼球图像分割模型,进一步将分割结果输入至眼球追踪的系统框架中,来得到三维眼球的运动结果。
发明内容
本发明的目的是解决现有技术的不足,提出一种三维人脸与眼球运动建模与捕获技术,在拍摄得到彩色图像/视频的情况下,对图像进行特征点检测,三维人脸表情重建,引入三维眼球追踪技术生成完整的三维人脸动画,增强表情动画的真实感。进一步提出一个端到端的人脸运动捕获系统来同时捕获人脸的头部姿态,眼睛运动和面部表情,并且能够进行自动的眼球参数标定。
针对现有技术的不足,本发明提出一种三维人脸与眼球运动的建模与捕获方法,其中包括:
步骤1、获取待人脸建模的视频序列,对该视频序列进行光流检测得到光流图像,对该视频序列进行面部特征点检测得到面部特征点;
步骤2、根据该面部特征点和该光流图像重建得到三维表情模型;
步骤3、通过该面部特征点获取眼睛区域图像,并在该眼睛区域图像上进行瞳孔虹膜像素检测,得到虹膜像素的掩码,同时对该眼睛区域图像进行边界检测,得到该眼睛区域图像的边界区域;
步骤4、根据该掩码、该边界区域和该三维表情模型,对三维眼球运动进行追踪,重建得到三维眼球运动状态;
步骤5、将该三维眼球运动状态迁移至该三维表情模型,得到包含眼球状态、头部姿态和面部表情的三维模型。
所述的三维人脸与眼球运动的建模与捕获方法,其中该步骤1包括:
步骤11、对于该视频序列的第一帧,使用人脸检测器得到人脸区域的框口,对于后续的视频帧,基于前一帧的二维特征点的包围盒扩大预设比例后作为当前帧的人脸区域的框口;
步骤12、输入当前帧的人脸区域的框口至全卷积网络,得到得到面部特征点的概率图,并利用该概率图来恢复得到各个人脸特征点的位置;
步骤13、根据当前帧的人脸区域的框口内每个像素的光流,为前一帧三维人脸上顶点的投影点在当前帧估计一个对应点,从而得到该光流图像。
所述的三维人脸与眼球运动的建模与捕获方法,其中该步骤2包括:
步骤21、使用多线性人脸模型作为面部形状轮廓的约束,利用二维图像中该面部特征点作为约束来求解人脸的形状,人脸上的三维点在二维图像上的投影坐标可以表示为:
P2d=Π(R(Cr×2wid×3wexp)+T)
上述公式中的R和T表示从物体坐标系到相机坐标系的旋转和平移参数,wid和wexp分别表示身份和表情的权重参数,Π表示相机的投影矩阵,为了求解上述公式,将重建问题建模为优化问题,通过以下方程进行优化求解:
公式中,Efeatures表示面部特征点的似然项,Eid和Eexp分别表示身份和表情的权重正则项,Eopt表示光流约束项,Efeatures的表达式为:
公式中,n表示面部特征点的数量,对于两个权重正则项的表达式为:
光流约束项的表达式使用误差函数来表示,表达式为:
m是使用光流约束的顶点数量。
所述的三维人脸与眼球运动的建模与捕获方法,其中该步骤3包括:
步骤31、利用眼睛区域图像的特征点来求解图像块上的相似变换,并利用相似变换将眼睛区域图像进行对齐操作;
步骤32、对眼睛区域图像施加闭眼检测来判断是否需要进一步进行分割检测,当用户的两只眼睛有发生闭合时,当前帧的眼球状态与前一帧状态保持一致;当用户一只眼睛发生闭合时,闭合眼睛的眼球状态与未闭合眼睛的眼球状态保持一致;
步骤33、对眼睛区域图像中像素进行分组,约束同一个区域内的像素应贴有相同标签,从而得到虹膜像素的掩码。
所述的三维人脸与眼球运动的建模与捕获方法,其中该步骤5包括:
将该三维眼球运动状态整合至步骤2中多线性模型方法得到的三维表情模型,从而得到包含眼球运动和面部表情的该三维模型。
本发明还提供了一种三维人脸与眼球运动的建模与捕获系统,其中包括:
模块1、获取待人脸建模的视频序列,对该视频序列进行光流检测得到光流图像,对该视频序列进行面部特征点检测得到面部特征点;
模块2、根据该面部特征点和该光流图像重建得到三维表情模型;
模块3、通过该面部特征点获取眼睛区域图像,并在该眼睛区域图像上进行瞳孔虹膜像素检测,得到虹膜像素的掩码,同时对该眼睛区域图像进行边界检测,得到该眼睛区域图像的边界区域;
模块4、根据该掩码、该边界区域和该三维表情模型,对三维眼球运动进行追踪,重建得到三维眼球运动状态;
模块5、将该三维眼球运动状态迁移至该三维表情模型,得到包含眼球状态、头部姿态和面部表情的三维模型。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块1包括:
模块11、对于该视频序列的第一帧,使用人脸检测器得到人脸区域的框口,对于后续的视频帧,基于前一帧的二维特征点的包围盒扩大预设比例后作为当前帧的人脸区域的框口;
模块12、输入当前帧的人脸区域的框口至全卷积网络,得到面部特征点的概率图,并利用该概率图来恢复得到各个人脸特征点的位置;
模块13、根据当前帧的人脸区域的框口内每个像素的光流,为前一帧三维人脸上顶点的投影点在当前帧估计一个对应点,从而得到该光流图像。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块2包括:
模块21、使用多线性人脸模型作为面部形状轮廓的约束,利用二维图像中该面部特征点作为约束来求解人脸的形状,人脸上的三维点在二维图像上的投影坐标可以表示为:
P2d=Π(R(Cr×2wid×3wexp)+T)
上述公式中的R和T表示从物体坐标系到相机坐标系的旋转和平移参数,wid和wexp分别表示身份和表情的权重参数,Π表示相机的投影矩阵,为了求解上述公式,将重建问题建模为优化问题,通过以下方程进行优化求解:
公式中,Efeatures表示面部特征点的似然项,Eid和Eexp分别表示身份和表情的权重正则项,Eopt表示光流约束项,Efeatures的表达式为:
公式中,n表示面部特征点的数量,对于两个权重正则项的表达式为:
光流约束项的表达式使用误差函数来表示,表达式为:
m是使用光流约束的顶点数量。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块3包括:
模块31、利用眼睛区域图像的特征点来求解图像块上的相似变换,并利用相似变换将眼睛区域图像进行对齐操作;
模块32、对眼睛区域图像施加闭眼检测来判断是否需要进一步进行分割检测,当用户的两只眼睛有发生闭合时,当前帧的眼球状态与前一帧状态保持一致;当用户一只眼睛发生闭合时,闭合眼睛的眼球状态与未闭合眼睛的眼球状态保持一致;
模块33、对眼睛区域图像中像素进行分组,约束同一个区域内的像素应贴有相同标签,从而得到虹膜像素的掩码。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块5包括:
将该三维眼球运动状态整合至模块2中多线性模型系统得到的三维表情模型,从而得到包含眼球运动和面部表情的该三维模型。
由以上方案可知,本发明的优点在于:
本发明设计的系统能够实现彩色相机做输入,自动实现三维人脸姿态、人脸表情以及眼球运动的捕获操作。系统流程图如图1所示,该系统涉及光流估计,面部特征点检测,三维表情重建,闭眼检测,边缘检测,瞳孔分类和三维眼球运动等多项技术。
如图2所示,表示本发明的瞳孔虹膜分类器的分类效果及闭眼检测效果示意。图中第一列为输入图像的眼睛区域,第二列第一行展示的为瞳孔虹膜分类器对像素进行分类得到的效果展示,第二行为检测到图像中眼睛闭合的情况。
如图3所示,表示本发明的眼部区域图像对齐的效果示意。左侧图像表示眼部区域图像,白色十字点表示检测得到的图像特征点;中间图像上的绿色十字点表示目标对齐的模板位置;右侧图像展示图像对齐后的效果,利用特征点之间的图像位置,计算得到图像上的仿射变换矩阵,从而实现图像上的对齐操作。
如图4所示,表示本发明应用于图像分割问题的网络结构图。从图示结构可以看出,本发明使用类似于Unet的编码器-解码器结构来应用于图像分割问题上。为了得到更好的运算效果,本发明对神经网络中的直接卷积模块进行了改进与替换,鉴于Squeeznet模型中的“fire”结构可以得到更快的相应速度,因此本发明使用“fire”结构替换卷积模块。图中左下角展示了该模块的结构,模块中包括卷积核为1*1的压缩卷积层,卷积运算操作后将结果分别送入1*1和3*3的两种卷积层中,并将卷积后的结果混合后作为该模块的输出。实验证明,带有压缩的网络结构有效地减少网络参数,提高移动端的运算速率。
如图5所示,表示本发明方法与之前方法的对比效果。左侧图像为输入图像,中间图像为本发明方法对瞳孔像素分类的效果,右侧图像为Wang等人的方法像素分类后的结果。从结果中可以看出,本发明方法得到的分类结果更加精准,无冗余数据的产生。
如图6所示,表示本发明在二维图像上的分割效果,以及闭眼状态检测的判别。每组数据中第一行为输入图像,第二行为我们的方法得到的图像分割的结果,第三行为随机森林方法得到的结果。最后两行数字表示同步检测到闭眼状态的概率。在第一组数据第一列中可以看出,当图片中的眼睛近乎闭合的情况下,随机森林方法会检测失效。在第二组数据的第四列中可以看出当眼睛发生闭合的情况时,闭眼检测可以准确的检测到闭眼情况的发生。
如图7所示,表示本发明的三维头部姿态和眼球追踪的结果。在改组例子中,在不同性别、头部姿态和种族的人物图像上均进行了测试。从展示结果上可以看出,本发明方法可以准确的生成三维表情模型,并得到精准确的眼球追踪效果。
如图8所示,表示本发明迁移至手机设备上的示例结果。系统迁移测试在iPhone8上进行测试,追踪速率可以达到14fps。
附图说明
图1为本发明系统流程示意图;
图2为瞳孔和虹膜图像分割效果展示及闭眼检测示意图;
图3为眼睛区域的图像对齐图;
图4为网络结构图;
图5为虹膜瞳孔检测效果对比图;
图6为闭眼检测效果对比图;
图7为不同性别、种族下的头部姿态和眼球追踪效果展示图;
图8为本发明手机端的应用展示图。
具体实施方式
本发明的方法涉及到2D特征点检测技术,三维人脸重建技术,瞳孔虹膜图像分割技术以及三维瞳孔追踪技术。对于拍摄得到的场景图像,首先需要提取得到图像中人脸的特征点的位置信息,该信息的获取使用卷积神经网络的方法;获取得到后稀疏的面部特征点后,需要解决生成稠密的面部三维模型的研究,本发明的方法利用人脸的多线性模型作为模型的显眼条件,将图像上检测到的特征点位置作为观测结果,并设计一个最大后验的框架来优化求解图像中人脸的几何形状和姿态。针对三维眼球的运动,利用稀疏的二维特征点抠取得到眼睛区域图像块,利用特征点的位置信息实现图像块的对齐,进一步标记出虹膜和瞳孔的区域,利用基于合成的分析方法将眼球运动实时重建出来。结合上一步得到的表情参数,将人脸表情运动和眼球运动相结合,得到完整的面部表情动画。
本发明提供一种三维人脸与眼球运动建模与捕获技术,包括:
关键点1,二维人脸特征点提取和三维人脸重建;
首先自动从视频流中检测并追踪人脸特征点。利用光流法快速为前一帧3D人脸上顶点的投影点在当前帧估计一个对应点。随后使用数据驱动的三维人脸重建方法,利用多线性人脸表情模型重建出三维头部姿态和大尺度的表情参数。
关键点2,虹膜与瞳孔图像分割;
通过使用像素分类器来自动在图像上的眼镜区域上自动标注出瞳孔和虹膜的像素。该像素分类器使用卷积神经网络模型,结合Unet和Squeezenet的优点,占用少量内存并实现快速准确的图像分割任务。鉴于对内存等硬件占用率的较少,可将该方法应用至移动端。为了更好的优化系统性能,本发明在网络结构中添加了闭眼检测支路。同时,利用虹膜边缘进一步增强眼球追踪的鲁棒性和准确性。
关键点3,自动眼球参数标定;
鉴于用户的面部差异,即不同用户间的瞳孔虹膜大小不同,本发明预先估计出眼球的位置形状和虹膜半径。将眼球的形状抽象看做一个球体,并设置其半径为成年人眼球半径的均值12.5mm。本发明涉及出一个自动标定的方法,能够自动选出合适的视频帧,利用图像信息来估计出眼球的三维位置和半径。
关键点4,三维眼球追踪;
本发明在二维图像上提取得到虹膜和瞳孔掩码,同时检测虹膜的外轮廓来进行眼球状态的估计,其中三维眼球状态我们采用瞳孔中心在眼球上的球面坐标来进行表示。本发明采用最大后验框架来解决状态估计问题,使用数值导数来对问题进行优化求解。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
如图1所示,本发明提供一种三维人脸与眼球运动建模与捕获技术,包括:
S1:输入拍摄视频序列F;
S2:对视频序列进行光流检测得到光流信息Iflow,同时进行面部特征点检测得到面部特征点P;
S3:利用特征点和光流信息重建得到三维表情模型Mface;
S4:通过面部特征点获取眼睛区域图像Feye,并在眼睛图像上进行瞳孔虹膜像素检测得到虹膜像素的掩码Maskeye,同时对图像进行边界检测,得到眼睛图像的边界区域Leye;
S5:利用检测到的虹膜掩码Maskeye,边界Leye和三维表情模型Mface来对三维眼球运动进行追踪,重建得到三维眼球运动状态Veye;
S6:将检测到的眼球运动状态Veye迁移至三维表情模型Mface上,从而得到完整的,包含眼球状态,头部姿态和面部表情的三维模型M。
其中,S2中所述的方法包括:
S21:本发明方法在获取图像输入后,需要在目标图像中检测得到面部特征点的位置。对于视频的第一帧,人脸区域的框口来自于人脸检测器,而对于后续的视频帧,我们在前一帧的二维特征点的包围盒上沿四个方向扩大20%作为当前帧检测的框口。传统方法中采用级联回归树和回归森林可以取得较好的特征检测结果。然而,这些方法占用内存较多,无法应用于移动端,因此,本发明方法使用基于卷积神经网络的方法来解决该问题。为了得到更加稳定的特征点数据,本发明将问题的定义从常见的分类问题转为回归问题。首先,需要为每一个特征点构造一张与图片同尺寸的概率图像,图像中的概率值是一个已标注点位置为中心,具有特定方差的高斯分布,因此其概率值与位置距离成反比,距离越远,概率值越低。由此,我们便可获取到原图大小,与特征点数量相同的概率图像。对于该问题的建模,采用全卷积网络来实现,训练框架采用caffe,输入为拍摄到的图像的面部区域,输出为每个面部特征点的概率图,通过使用已标注的人脸数据进行训练,可以得到预测每个特征点概率图的网络。拍摄图片经过网络可以直接得到特征点的概率图,并利用概率图来回复得到各个人脸特征点的位置P。
S22:本发明方法利用最新的光流估计方法(Kroeger等人发表的“Fast opticalflow using dense inverse search”)计算了人脸区域内每个像素的光流快速的为前一帧三维人脸上的顶点的投影点在当前帧估计一个对应点,从而得到光流图像Iflow。随后使用数据驱动的三维人脸重建方法,利用多线性人脸表情模型重建三维头部姿态和大尺度的表情变形。
其中,S3中所述的方法包括:
本发明方法使用多线性人脸模型作为面部形状轮廓的约束,利用二维图像中的特征点作为约束来求解人脸的形状Mface。我们使用针孔相机模型来初始化相机参数,人脸上的三维点在二维图像上的投影坐标可以表示为:
P2d=Π(R(Cr×2wid×3wexp)+T)
上述公式中的R和T表示从物体坐标系到相机坐标系的旋转和平移参数,wid和wexp分别表示身份和表情的权重参数。Π表示相机的投影矩阵,可以实现三维特征点到二维图像上的映射关系。求解该问题,本发明将重建问题建模为优化问题,通过以下方程进行优化求解:
公式中,Efeatures表示特征点的似然项,Eid和Eexp分别表示身份和表情的权重正则项。Eopt表示光流约束项。Efeatures的表达式为:
公式中,n表示前一步得到的二维特征点的数量。对于两个权重正则项的表达式为:
光流约束项的表达式使用误差函数来表示,表达式为:
这里的m是使用光流约束的顶点数量。使用光流约束项的目的是约束三维顶点在当前帧的投影点位置尽可能与前一帧相同位置的三维坐标保持一致,其作用是使得重建结果更加稳定,避免抖动情况的发生。
其中,S4中所述的方法包括:
S41:在获取到眼睛图像后,我们首先将图像块对齐到平均形状上。如图3所示,利用眼睛区域的特征点来求解图像块上的相似变换,并利用相似变换来将图像进行对齐操作。鉴于面部区域的对称性,本发明方法将右眼图像进行镜像翻转,在完成S42中的分割检测操作后,利用反变换将图像分割结果变换回原始图像上。
S42:对于虹膜瞳孔图像分割方法,包含图像闭眼检测和基于神经网络的分割算法两个部分:
S421:在真实拍摄的视频流中,难免出现眨眼或闭眼的情况,这种情况下使用图像分割结果不稳定,影响三维眼球追踪的结果。因此,本发明方法在神经网络上增加一个支路,对图像施加闭眼检测来判断是否需要进一步进行分割检测。当用户的两只眼睛有发生闭合时,当前帧的眼球状态与前一帧状态保持一致;当用户一只眼睛发生闭合时,闭合眼睛的眼球状态与未闭合眼睛的眼球状态保持一致。添加此判别的目的是获取稳定的动画效果。
S422:在得到眼睛区域图像后,需对图像像素进行分组,即标签化,约束同一个区域内的像素应贴有相同标签,从而得到虹膜掩码Maskeye。本发明方法设计一神经网络模型,模型的输入为眼睛区域图像,输出为同尺寸概率图,同时,概率图中的每一像素值属于虹膜瞳孔的概率,如图3中所示。对于网络结构,本发明方法使用Unet和Squeezenet结合的方法,从图4中可以看出在网络编码器的顶端引出两条支路同时进行分割和闭眼检测操作。鉴于Squeezenet中的“fire”模块可以较少参数数量和运动时间,本发明方法使用该模块来替换Unet中的卷积层操作。该模型的输入为图像大小为48x96的三通道图片,并使用最大池化层来缩小相邻图像层级之间的特征尺寸。每次编码后,通道数是前一层通道数的两倍。在四次编码后,特征图的尺寸将变为6x12大小32通道。在该层操作后,设计一闭眼检测支路。使用全连接的方式得到闭眼检测概率。
在对网络进行训练的时候,使用检查上损失函数来度量概率图与真实概率之间的误差,损失函数定义如下:
其中,Ω表示图像上的像素集合,θ表示网络模型中的训练参数,wi表示第i个像素的真实标签:设置瞳孔虹膜区域像素wi=1,其余像素wi=0。Pi表示网络模型的输出,即预测当前像素属于虹膜瞳孔区域的概率。闭眼检测的误差函数同样采用交叉熵随时函数。网络模型参数的训练使用Caffe中的随机梯度下降SGD方法进行训练。两部分损失函数权重设置为图像分割权重2,闭眼检测权重为5。并设置初始学习率0.00002,动量参数0.9,批处理数据大小32和权重衰减率1e-7。同时,设置每迭代10,000次后,学习率下降1/3,模型参数训练达100,000次。
S43:在眼睛区域图像中,可以通过检测获取虹膜边缘信息来对三维眼球追踪输入更多信息。使用Canny算子来对眼睛图像进行初步的虹膜边缘获取,鉴于该方法会产生极大的噪声数据,我们采用滤波的形式来获取稳定的结果。滤波时考虑两种条件,1、虹膜中心与边缘点的距离应与眼睛的高度比例在0.1~0.6之间,2、边缘梯度方向与虹膜中心夹角小于90°。使用上述两种条件做滤波,可以得到虹膜边缘图像Leye。
其中,S5中所述的方法包括:
S51:眼球中心和虹膜半径的初始化操作;鉴于用户的个体差异,可能导致眼球中心位置和虹膜半径略有不同,因此设计一眼球参数自动标定方法,对眼球参数进行初始化。首先,需要定义眼球状态V,使用如下方式进行定义:
V={Px,Py,Pz,s,θ,φ)
其中,Px,Py,Pz表示模型空间中的三维眼球中心位置,s是虹膜的半径,θ和φ是当前时刻瞳孔中心在眼球上的球面坐标位置。使用上述六个参数来定义当前时刻的眼球状态。
当用户出现在图像上时,便开始进行头部姿态和三维人脸表情重建。当检测到用户正对相机,视线朝前并且眼睛处于睁开状态时,我们选取当前帧作为标定帧,进行标定操作。其判定标准为:1、头部姿态判定准则:相机方向与人脸朝向的夹角α>0.98;2、视线朝向的判定准则:在眼睛非闭合的情况下,上下眼皮中间点之间的距离deyelid大于眼睛内外眼角点距离dcorner的α倍,即deyelid>α·dcorner,同时图像分割结果的中心点与眼皮二维特征点中心距离dcenter大于内外眼角距离dcorner的β倍,即dcenter>β·dcorner。在选定了标定帧后,可以利用相机的投影参数,将二维虹膜中心和边缘像素投影至三维模型上,从而来获得在三维空间中虹膜中心的位置和虹膜半径。然而,由于眼球仅部分可见,会影响估计结果的准确性。为了系统的稳定性,采用成年人眼球半径的均值r=12.5mm,三维眼球的位置采用在虹膜中心位置的基础上添加(0,0,-r)来进行初始化设置。
S52:三维眼球追踪技术;在S51中介绍的初始化操作完成后,根据虹膜掩模和虹膜边缘信息来对眼睛的状态进行追踪,从而获得每一帧的眼球球面坐标。鉴于眼球运动模型复杂,运动速度极快,普通的时间连续约束项(如二阶约束)会在眼睛发生扫视的时候出现跟踪丢失。同时,从图像中提取到的特征(虹膜掩模和虹膜边缘)极易出现抖动,影响眼球检测的准确性。因此,将问题建模为最大后验问题,并采用基于采样的方法进行问题求解。优化表示为:
其中,xt和xt-1分别表示当前帧和前一帧的眼球状态,Ot表示观察到特征。可以认为在给定xt的情况下,Ot和xt-1的条件相互对立,利用贝叶斯方法可以简化为如下表达式:
P(Ot|xt)表示衡量状态xt和观测特征Ot之间的相似程度,Px来衡量前后两帧状态在时间连续性上的相似程度。
针对虹膜特征的相似性,考虑虹膜和瞳孔的眼膜以及虹膜边缘两个因素,建模如下:
P(Ot|xt)∝exp)(-wmaskEmask-wedgeEedge)
wmask和wedge表示掩模项和边缘项的权重,本发明方法中参数分别设置为3和1.
掩模似然项使用Jaccard误差来度量观察掩模与合成掩模之间的差异。该误差由1-IoU来得到,可以被写成:
A、B分别表示眼睛区域与二维图像分割结果,与合成虹膜区域的交集。当两个区域完全重合时,能量项为0;反之,若尚未完全重合时,能量项为1。
虹膜边缘项是度量观察到的边缘信息与合成的边缘的距离。使用倒三角距离变换来表示该能量项:
其中,为检测到的轮廓的距离变换,Ir为绘制的二值轮廓图。该能量项中对绘制轮廓K个最小距离进行求和,K表示为所有绘制像素的一个特定比例,在本发明方法中取为0.6。同时,当检测到的边缘像素值过少,少于h时,我们认为该边缘项置信度较低,将该项权重置为0,h在本发明方法中设为15。
时间连续先验项来度量追踪眼球结果是否符合时间一致性的约束。该项的衡量采用阶段距离误差来表示:
dsphere表示两个球面坐标之间的大圆距离。阈值τ设置为0.14弧度。在τ小于阈值时,该能量函数的大小与τ成反比,当大于阈值时,该项保持不变。该项的作用使得运动表现的更加平滑,并可以实现扫视动作的追踪。
对于该问题的优化,使用LBRGS方法进行优化求解,采用数值求导方法,导数定义为:
dx取为1e-3来帮助得到数值导数,进而采用基于LBFGS的优化方法求解。求解时采用多核CPU加速求解过程,统计时间结果表明,求导方法优化速度更快,结果准确性更高。求解完成后,即获得当前眼球状态Veye。
其中,S6中所述的方法包括:
将S5中得到的眼球状态整合至S3中多线性模型方法得到的三维面部表情Mface,从而得到包含眼球运动和面部表情的完整三维表情M。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供了一种三维人脸与眼球运动的建模与捕获系统,其中包括:
模块1、获取待人脸建模的视频序列,对该视频序列进行光流检测得到光流图像,对该视频序列进行面部特征点检测得到面部特征点;
模块2、根据该面部特征点和该光流图像重建得到三维表情模型;
模块3、通过该面部特征点获取眼睛区域图像,并在该眼睛区域图像上进行瞳孔虹膜像素检测,得到虹膜像素的掩码,同时对该眼睛区域图像进行边界检测,得到该眼睛区域图像的边界区域;
模块4、根据该掩码、该边界区域和该三维表情模型,对三维眼球运动进行追踪,重建得到三维眼球运动状态;
模块5、将该三维眼球运动状态迁移至该三维表情模型,得到包含眼球状态、头部姿态和面部表情的三维模型。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块1包括:
模块11、对于该视频序列的第一帧,使用人脸检测器得到人脸区域的框口,对于后续的视频帧,基于前一帧的二维特征点的包围盒扩大预设比例后作为当前帧的人脸区域的框口;
模块12、输入当前帧的人脸区域的框口至全卷积网络,得到得到面部特征点的概率图,并利用该概率图来恢复得到各个人脸特征点的位置;
模块13、根据当前帧的人脸区域的框口内每个像素的光流,为前一帧三维人脸上顶点的投影点在当前帧估计一个对应点,从而得到该光流图像。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块2包括:
模块21、使用多线性人脸模型作为面部形状轮廓的约束,利用二维图像中该面部特征点作为约束来求解人脸的形状,人脸上的三维点在二维图像上的投影坐标可以表示为:
P2d=Π(R(Cr×2wid×3wexp)+T)
上述公式中的R和T表示从物体坐标系到相机坐标系的旋转和平移参数,wid和wexp分别表示身份和表情的权重参数,Π表示相机的投影矩阵,为了求解上述公式,将重建问题建模为优化问题,通过以下方程进行优化求解:
公式中,Efeatures表示面部特征点的似然项,Eid和Eexp分别表示身份和表情的权重正则项,Eopt表示光流约束项,Efeatures的表达式为:
公式中,n表示面部特征点的数量,对于两个权重正则项的表达式为:
光流约束项的表达式使用误差函数来表示,表达式为:
m是使用光流约束的顶点数量。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块3包括:
模块31、利用眼睛区域图像的特征点来求解图像块上的相似变换,并利用相似变换将眼睛区域图像进行对齐操作;
模块32、对眼睛区域图像施加闭眼检测来判断是否需要进一步进行分割检测,当用户的两只眼睛有发生闭合时,当前帧的眼球状态与前一帧状态保持一致;当用户一只眼睛发生闭合时,闭合眼睛的眼球状态与未闭合眼睛的眼球状态保持一致;
模块33、对眼睛区域图像中像素进行分组,约束同一个区域内的像素应贴有相同标签,从而得到虹膜像素的掩码。
所述的三维人脸与眼球运动的建模与捕获系统,其中该模块5包括:
将该三维眼球运动状态整合至模块2中多线性模型系统得到的三维表情模型,从而得到包含眼球运动和面部表情的该三维模型。
Claims (6)
1.一种三维人脸与眼球运动的建模与捕获方法,其特征在于,包括:
步骤1、获取待人脸建模的视频序列,对该视频序列进行光流检测得到光流图像,对该视频序列进行面部特征点检测得到面部特征点;
步骤2、根据该面部特征点和该光流图像重建得到三维表情模型;
步骤3、通过该面部特征点获取眼睛区域图像,并在该眼睛区域图像上进行瞳孔虹膜像素检测,得到虹膜像素的掩码,同时对该眼睛区域图像进行边界检测,得到该眼睛区域图像的边界区域;
步骤4、根据该掩码、该边界区域和该三维表情模型,对三维眼球运动进行追踪,重建得到三维眼球运动状态;
步骤5、将该三维眼球运动状态迁移至该三维表情模型,得到包含眼球状态、头部姿态和面部表情的三维模型;
其中该步骤3包括:
步骤31、利用眼睛区域图像的特征点来求解图像块上的相似变换,并利用相似变换将眼睛区域图像进行对齐操作;
步骤32、通过使用像素分类器在眼睛区域图像标注出瞳孔和虹膜的像素,该像素分类器使用卷积神经网络模型,并在网络结构中添加闭眼检测支路,对眼睛区域图像施加闭眼检测来判断是否需要进一步进行分割检测,当用户的两只眼睛有发生闭合时,当前帧的眼球状态与前一帧状态保持一致;当用户一只眼睛发生闭合时,闭合眼睛的眼球状态与未闭合眼睛的眼球状态保持一致;且该像素分类器包括多个卷积模块,卷积模块间通过最大池化层相连,卷积模块中包括卷积核为1*1的压缩卷积层,卷积运算操作后将结果分别送入1*1和3*3的两种卷积层中,并将卷积后的结果混合后作为该卷积模块的输出;
步骤33、根据分割检测结果,对眼睛区域图像中像素进行分组,约束同一个区域内的像素应贴有相同标签,从而得到虹膜像素的掩码。
2.如权利要求1所述的三维人脸与眼球运动的建模与捕获方法,其特征在于,该步骤1包括:
步骤11、对于该视频序列的第一帧,使用人脸检测器得到人脸区域的框口,对于后续的视频帧,基于前一帧的二维特征点的包围盒扩大预设比例后作为当前帧的人脸区域的框口;
步骤12、输入当前帧的人脸区域的框口至全卷积网络,得到面部特征点的概率图,并利用该概率图来恢复得到各个人脸特征点的位置;
步骤13、根据当前帧的人脸区域的框口内每个像素的光流,为前一帧三维人脸上顶点的投影点在当前帧估计一个对应点,从而得到该光流图像。
3.如权利要求1所述的三维人脸与眼球运动的建模与捕获方法,其特征在于,该步骤5包括:
将该三维眼球运动状态整合至步骤2中多线性模型方法得到的三维表情模型,从而得到包含眼球运动和面部表情的该三维模型。
4.一种三维人脸与眼球运动的建模与捕获系统,其特征在于,包括:
模块1、获取待人脸建模的视频序列,对该视频序列进行光流检测得到光流图像,对该视频序列进行面部特征点检测得到面部特征点;
模块2、根据该面部特征点和该光流图像重建得到三维表情模型;
模块3、通过该面部特征点获取眼睛区域图像,并在该眼睛区域图像上进行瞳孔虹膜像素检测,得到虹膜像素的掩码,同时对该眼睛区域图像进行边界检测,得到该眼睛区域图像的边界区域;
模块4、根据该掩码、该边界区域和该三维表情模型,对三维眼球运动进行追踪,重建得到三维眼球运动状态;
模块5、将该三维眼球运动状态迁移至该三维表情模型,得到包含眼球状态、头部姿态和面部表情的三维模型;
其中该模块3用于:
利用眼睛区域图像的特征点来求解图像块上的相似变换,并利用相似变换将眼睛区域图像进行对齐操作;
通过使用像素分类器在眼睛区域图像标注出瞳孔和虹膜的像素,该像素分类器使用卷积神经网络模型,并在网络结构中添加闭眼检测支路,对眼睛区域图像施加闭眼检测来判断是否需要进一步进行分割检测,当用户的两只眼睛有发生闭合时,当前帧的眼球状态与前一帧状态保持一致;当用户一只眼睛发生闭合时,闭合眼睛的眼球状态与未闭合眼睛的眼球状态保持一致;且该像素分类器包括多个卷积模块,卷积模块间通过最大池化层相连,卷积模块中包括卷积核为1*1的压缩卷积层,卷积运算操作后将结果分别送入1*1和3*3的两种卷积层中,并将卷积后的结果混合后作为该卷积模块的输出;
根据分割检测结果,对眼睛区域图像中像素进行分组,约束同一个区域内的像素应贴有相同标签,从而得到虹膜像素的掩码。
5.如权利要求4所述的三维人脸与眼球运动的建模与捕获系统,其特征在于,该模块1包括:
模块11、对于该视频序列的第一帧,使用人脸检测器得到人脸区域的框口,对于后续的视频帧,基于前一帧的二维特征点的包围盒扩大预设比例后作为当前帧的人脸区域的框口;
模块12、输入当前帧的人脸区域的框口至全卷积网络,得到面部特征点的概率图,并利用该概率图来恢复得到各个人脸特征点的位置;
模块13、根据当前帧的人脸区域的框口内每个像素的光流,为前一帧三维人脸上顶点的投影点在当前帧估计一个对应点,从而得到该光流图像。
6.如权利要求4所述的三维人脸与眼球运动的建模与捕获系统,其特征在于,该模块5包括:
将该三维眼球运动状态整合至模块2中多线性模型系统得到的三维表情模型,从而得到包含眼球运动和面部表情的该三维模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926781.XA CN110807364B (zh) | 2019-09-27 | 2019-09-27 | 三维人脸与眼球运动的建模与捕获方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926781.XA CN110807364B (zh) | 2019-09-27 | 2019-09-27 | 三维人脸与眼球运动的建模与捕获方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110807364A CN110807364A (zh) | 2020-02-18 |
CN110807364B true CN110807364B (zh) | 2022-09-30 |
Family
ID=69487866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910926781.XA Active CN110807364B (zh) | 2019-09-27 | 2019-09-27 | 三维人脸与眼球运动的建模与捕获方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110807364B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680577A (zh) * | 2020-05-20 | 2020-09-18 | 北京的卢深视科技有限公司 | 人脸检测方法和装置 |
CN112052721A (zh) * | 2020-07-16 | 2020-12-08 | 北京邮电大学 | 基于深度学习的眨眼波形图生成方法、装置及设备 |
CN112799510B (zh) * | 2021-01-27 | 2022-09-09 | 清华大学 | 多风格自然眼球运动的自动化生成方法和装置 |
CN112767453B (zh) * | 2021-01-29 | 2022-01-21 | 北京达佳互联信息技术有限公司 | 人脸跟踪方法、装置、电子设备及存储介质 |
CN113192132B (zh) * | 2021-03-18 | 2022-07-29 | 魔珐(上海)信息科技有限公司 | 眼神捕捉方法及装置、存储介质、终端 |
CN112907635B (zh) * | 2021-03-22 | 2024-04-09 | 东南大学 | 基于几何分析提取眼部异常运动特征的方法 |
CN116311407A (zh) * | 2021-12-21 | 2023-06-23 | 北京字跳网络技术有限公司 | 表情模型确定方法、装置、设备及计算机可读存储介质 |
CN115953813B (zh) * | 2022-12-19 | 2024-01-30 | 北京字跳网络技术有限公司 | 一种表情驱动方法、装置、设备及存储介质 |
CN116309998A (zh) * | 2023-03-15 | 2023-06-23 | 杭州若夕企业管理有限公司 | 一种图像处理系统、方法及介质 |
CN116246332B (zh) * | 2023-05-11 | 2023-07-28 | 广东工业大学 | 一种基于眼球追踪的数据标注质量检测方法、设备及介质 |
CN116994325B (zh) * | 2023-07-27 | 2024-02-20 | 山东睿芯半导体科技有限公司 | 一种虹膜识别方法、芯片及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920886A (zh) * | 2006-09-14 | 2007-02-28 | 浙江大学 | 基于视频流的三维动态人脸表情建模方法 |
CN101739712A (zh) * | 2010-01-25 | 2010-06-16 | 四川大学 | 基于视频的3d人脸表情动画驱动方法 |
CN108135469A (zh) * | 2015-08-21 | 2018-06-08 | 奇跃公司 | 使用眼睛姿态测量的眼睑形状估计 |
CN108876879A (zh) * | 2017-05-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 人脸动画实现的方法、装置、计算机设备及存储介质 |
CN109584353A (zh) * | 2018-10-22 | 2019-04-05 | 北京航空航天大学 | 一种基于单目视频重建三维人脸表情模型的方法 |
CN109712128A (zh) * | 2018-12-24 | 2019-05-03 | 上海联影医疗科技有限公司 | 特征点检测方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102212209B1 (ko) * | 2014-04-10 | 2021-02-05 | 삼성전자주식회사 | 시선 추적 방법, 장치 및 컴퓨터 판독가능한 기록 매체 |
-
2019
- 2019-09-27 CN CN201910926781.XA patent/CN110807364B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920886A (zh) * | 2006-09-14 | 2007-02-28 | 浙江大学 | 基于视频流的三维动态人脸表情建模方法 |
CN101739712A (zh) * | 2010-01-25 | 2010-06-16 | 四川大学 | 基于视频的3d人脸表情动画驱动方法 |
CN108135469A (zh) * | 2015-08-21 | 2018-06-08 | 奇跃公司 | 使用眼睛姿态测量的眼睑形状估计 |
CN108876879A (zh) * | 2017-05-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 人脸动画实现的方法、装置、计算机设备及存储介质 |
CN109584353A (zh) * | 2018-10-22 | 2019-04-05 | 北京航空航天大学 | 一种基于单目视频重建三维人脸表情模型的方法 |
CN109712128A (zh) * | 2018-12-24 | 2019-05-03 | 上海联影医疗科技有限公司 | 特征点检测方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Face2Face: Real-time Face Capture and Reenactment of RGB Videos;Justus Thies Michael Zollh¨ ofer etc;《IEEE Conference on Computer Vision and Pattern Recognition》;20161212;全文 * |
基于单目视频相机的实时人脸跟踪与动画方法研究;曹晨;《中国优秀硕士学位论文全文数据库(博士)信息科技辑》;20180115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110807364A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110807364B (zh) | 三维人脸与眼球运动的建模与捕获方法及系统 | |
US10679046B1 (en) | Machine learning systems and methods of estimating body shape from images | |
CN111354079B (zh) | 三维人脸重建网络训练及虚拟人脸形象生成方法和装置 | |
CN107852533B (zh) | 三维内容生成装置及其三维内容生成方法 | |
Zhou et al. | Sparseness meets deepness: 3d human pose estimation from monocular video | |
Joo et al. | Panoptic studio: A massively multiview system for social motion capture | |
Ji | 3D face pose estimation and tracking from a monocular camera | |
Elhayek et al. | MARCOnI—ConvNet-based MARker-less motion capture in outdoor and indoor scenes | |
CN109815826B (zh) | 人脸属性模型的生成方法及装置 | |
WO2023050992A1 (zh) | 用于人脸重建的网络训练方法、装置、设备及存储介质 | |
WO2022001236A1 (zh) | 三维模型生成方法、装置、计算机设备及存储介质 | |
CN106796449A (zh) | 视线追踪方法及装置 | |
WO2022095721A1 (zh) | 参数估算模型的训练方法、装置、设备和存储介质 | |
JP6207210B2 (ja) | 情報処理装置およびその方法 | |
CN108182397B (zh) | 一种多姿态多尺度的人脸验证方法 | |
WO2022143645A1 (zh) | 三维人脸重建的方法、装置、设备和存储介质 | |
CN109472198A (zh) | 一种姿态鲁棒的视频笑脸识别方法 | |
CN110660076A (zh) | 一种人脸交换方法 | |
CN111046734A (zh) | 基于膨胀卷积的多模态融合视线估计方法 | |
CN109559332A (zh) | 一种结合双向LSTM和Itracker的视线跟踪方法 | |
Zhao et al. | Mask-off: Synthesizing face images in the presence of head-mounted displays | |
WO2023155533A1 (zh) | 一种图像驱动方法、装置、设备和介质 | |
Wang et al. | Digital twin: Acquiring high-fidelity 3D avatar from a single image | |
Chen et al. | SkeletonPose: Exploiting human skeleton constraint for 3D human pose estimation | |
CN114120068A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |