具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的核心构思之一在于:通过识别视频图像中的人脸信息,并根据人脸信息与三维动画模型的参数之间的映射关系,或者由人脸信息确定三维动画模型的参数,以驱动三维动画模型实现三维视频特效。本发明通过人脸信息驱动三维动画模型,实现了用户与三维视频特效的实时交互,以及丰富的三维视频特效。
参照图1,示出了本发明一种实现三维视频特效的方法实施例一的步骤流程图,具体可以包括以下步骤:
步骤101:获取视频图像;
视频图像可以通过多种方法获得,较为通用的是使用摄像头采集视频图像,从摄像头接口获取USB视频数据,由视频处理软件对视频数据进行处理。本实施例中,使用DirectShow从摄像头接口中获得视频数据。DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,运用DirectShow,可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行后期数据处理。当然,本领域技术人员也可采用任一熟知的形式获取视频图像数据,本发明无须对此作出限制。
步骤102:识别所述视频图像中的人脸信息;
所述人脸信息可以包括:人脸定位信息、人脸器官定位信息、人脸姿态信息和人脸表情信息。本实施例采用智能识别技术来识别所述视频图像中的人脸信息,具体方法如下:
子步骤A1:识别所述视频图像中的人脸定位信息;
人脸定位的目的是从视频中定位出人脸所在的位置,并对连续视频中的人脸进行跟踪。目前,由智能识别技术对人脸进行定位,已经可以达到实时检测的水平,并可移植到硬件平台。例如一篇来源于“IEEE(美国电气及电子工程师学会,Institute of Electrical and Electronics Engineers)计算机视觉与模式识别汇刊”2001年第511-518页的名为“基于简单特征自举层次算法和快速目标检测”(Rapid object detection using a Boosted cascade of simple features,Proc IEEEConference on Computer Vision and Pattern Recognition,PP:511~518,2001)的文献中提出了基于快速Harr特征计算和分层Adaboot训练思想的人脸检测方法,该方法可以快速准确的从视频图像中定位出各种人脸的位置。在定位的基础上,对连续视频图像中的人脸进行跟踪,也就是利用相邻图像帧中人脸颜色信息的相似性来连续找到同一个人脸在相邻图像中的位置。由此通过智能识别技术可以识别出以下几种人脸定位信息:人脸的位置信息,人脸的大小变化信息和人脸的运动信息等。
子步骤A2:识别所述视频图像中的人脸器官定位信息;
人脸器官定位的目的是定位出人脸上的主要器官的位置和外形信息,即眼睛,眉毛和嘴巴的位置,嘴巴的轮廓和人脸的外围轮廓信息。目前常用的人脸器官定位的方法是基于动态形状模型(ASM,Active Shape Model)和动态表观模型(AAM,Active Appearance Model)的方法。
例如,用ASM方法识别人脸的外围轮廓信息时,是把已有的人脸轮廓的统计信息作为约束条件,用其在轮廓搜索中控制轮廓形状的变化。其具体算法包括:手工从训练图片集中提取出人脸的轮廓信息,并将从每张图片中提取出的轮廓信息组织为一个样本;对所述样本进行归一化和对齐处理,然后进行主分量分析(PCA,Principal components analysis)变换;采集轮廓信息中每个控制点的灰度信息,用来作为点搜索的依据;将PCA计算得到的平均轮廓作为轮廓搜索的初始值,进行迭代搜索,得到最终的结果。
基于AAM的器官定位方法和ASM方法类似,区别在于训练的样本不是手工标定的人脸轮廓点信息,而是人脸的灰度信息。
识别出的人脸器官定位信息包括:人脸上的主要器官的位置和外形信息,即眼睛,眉毛和嘴巴的位置,嘴巴的轮廓和人脸的外围轮廓信息等。
子步骤A3:识别所述视频图像中的人脸姿态信息;
所述识别人脸姿态信息就是识别出视频图像中人脸的朝向。目前,常用的人脸姿态识别的方法可以分为两类:一类基于统计理论,另外一类则基于人脸特征点的几何信息或者结合三维模型。基于统计的方法采集不同方向的人脸样本,然后训练出一个分类器,根据分类的结果来确定一个人脸的头部姿态信息;基于人脸特征点几何信息的方法一般是首先检测出人脸的特征信息,然后利用不同角度几何信息的变化来确定姿态,比如基于仿射关系的姿态计算方法以及融合了三维信息的姿态确定方法。
另外,中国专利公开号为CN1866271A,公开日为2006年11月22日的专利公开了一种基于AAM的头部姿态实时估算方法及系统,所述方法包括:(1)根据采集的不同头部姿态的人脸图像样本,训练获得ASM模型和AAM灰度模型,其中,根据ASM模型或获得一个ASM平均轮廓脸;(2)根据所述ASM模型与AAM灰度模型,计算出人脸轮廓定位时需要的梯度矩阵和Hessain矩阵,并根据所述ASM模型、AAM灰度模型、梯度矩阵和Hessain矩阵,获得预处理模型;(3)获得输入的人脸图像序列,并进行人脸检测与追踪,根据检测和跟踪得到人脸轮廓的粗略位置,并将ASM平均轮廓脸对应到人脸轮廓的粗略位置,获得人脸初始轮廓的位置,根据初始轮廓的位置,通过对图像序列重采样,获得一个与ASM平均轮廓脸大小相符的图像区域;(4)在该图像区域内,根据所述预处理模型包括的梯度矩阵和Hessain矩阵,首先基于整体相似变换对人脸轮廓进行定位,然后基于ASM模型对数对轮廓进行精确定位,并计算对应的ASM参数;(5)根据所述ASM参数与样本训练时确定的人脸角度的关系,估算出头部的姿态。通过本方案所述的方法,可以实时识别视频图像中的人脸姿态信息。
子步骤A4:识别所述视频图像中的人脸表情信息;
人脸表情信息识别的目的是识别出视频中人脸的表情变化。人脸的表情变化非常丰富,为了便于进行识别,一般将人脸表情分为以下几类:中性表情,笑,悲伤,愤怒,惊讶。表情识别常用基于统计的方法,主要分为训练和识别两个步骤。训练时首先采集大量的不同表情的人脸样本,从人脸样本中提取出识别的特征数据,然后选择不同的训练方法来得到分类器。识别就是根据训练得到的分类器来对图像中的人脸表情进行识别。在训练和识别时,都需要用到人脸定位和人脸器官定位技术,根据定位的结果来限定人脸区域和器官的位置,然后从人脸区域上的特定位置提取特征。训练的方法有很多,常用的方法包括:支持向量机(SVM,Support Vector Machine)、Fisher线性分类器、Adaboot等。中国专利公开号为CN1794265A,公开日为2006年6月28日的专利公开了一种基于视频的面部表情识别方法及装置,所述方法包括:从USB摄像头输入的视频数据中采集人脸的面部表情图像数据,对该图像数据做预处理;实时提取人脸在预处理后图像中的位置;依据人眼分类器对确定出的图像中的人脸中的人眼做出定位;根据确定的人眼的位置和人脸分类器的信息提取包含人脸的图像区域,进行归一化处理;对人脸器官定位;根据对人脸器官的定位确定人脸下巴的位置,确定图像中的人脸区域,生成特征脸,并作为分类样本;基于所述的分类样本计算所述的特征脸图像的Gabor特征;对计算出的Gabor特征进行选择;由挑选的特征构造支持向量机分类器;根据构造的分类器得出人脸表情识别结果。通过本方案所述的方法,可以较好地识别人脸表情信息。
总之,在实际应用中,本领域技术人员可以采用任意熟知的方法识别人脸信息,本发明无须对此作出限制。
步骤103:根据预置规则,由人脸信息驱动预先设定的三维动画模型。
所述三维动画模型包括:三维目标模型、粒子动画模型和光照模型。首先确定三维目标模型,然后可以根据智能识别的人脸信息来驱动三维目标模型变换、光照模型和粒子动画模型。其中,智能识别得到的人脸器官定位信息如人脸器官位置可以用来定制粒子动画的起始点,人脸轮廓可以控制粒子的生命周期;人脸定位信息中的运动信息如跟踪的人脸可以用来驱动三维目标模型的平移;人脸定位信息中的人脸大小信息可以用来驱动三维目标模型的缩放;人脸姿态信息可以用来驱动三维目标模型进行旋转变换;而人脸表情信息则可以用来驱动光照模型进行光照变化。
具体地,由人脸信息驱动三维动画模型可以包括以下步骤:
子步骤B1:由视频图像确定三维目标模型;
三维目标模型可以为三维人脸模型,也可以为其它三维模型如三维卡通模型等。由视频图像确定三维目标模型可以有多种方法,如基于立体视图的重构方法、基于结构光三角测量的重构方法、基于正交图像的模型变形方法,以及基于正交图像的模型变形方法等。其中,基于正交图像的模型变形方法主要用在真实人脸三维模型重建中,该方法首先从正面和侧面(两个面互相垂直)对人脸进行拍摄,然后从拍摄的人脸图片上提取出人脸的轮廓信息,最后根据互相正交的两个方法上的轮廓信息来对通用的三维人脸模型进行变形处理,就可以得到和真实人脸外形相似的人脸模型。
在实际应用中,本领域技术人员可根据情况选用任意合适的方法确定三维目标模型,本发明无须对此作出限制。
子步骤B2:由人脸表情信息驱动光照模型;
在三维动画中,光照模型是一个非常关键的部分,不同特点的光照效果可以渲染出不同的动画氛围。在三维动画技术中,一个物体的表面颜色是放射E(Emmisive)、环境反射A(Ambient)、漫反射D(Diffuse)和镜面反射S(Specular)等光照作用的综合。每种光照作用取决于表面材质的性质(如亮度和材质颜色)和光源的性质(如光的颜色和位置)的共同作用。从数学上描述基本光照模型的公式如下:
C=E+A+D+S
公式中C代表了物体表面的颜色。
其中,环境反射项A代表了光在一个场景里经过多次折射后看起来就像来自四面八方。因为这个原因,环境反射项A并不依赖于光源的位置。其数学公式为:
A=Ka×globalAmbient
式中,Ka是材质的环境反射系数;globalAmbient是入射环境光的颜色。
漫反射D代表了一个表面相等地向所有方向反射出去的方向光。其数学公式为:
D=Kd+lightColor+max(N.L,0)
式中:Kd是材质的漫发射颜色;lightColor是入射漫反射光的颜色;N是规范化的表面法向量,L是规范化的指向光源的向量。
放射项E表示由物体表面所发出的光;镜面反射项S代表了一个表面主要的反射方向附近被反射的光。
本实施例中,可以识别出的人脸表情包括:笑、悲伤、惊讶、愤怒。每种表情的又有不同的程度,比如笑可以有微笑,大笑等。将识别得到的表情的类别来直接对环境反射光A进行控制,即不同的表情对应不同的环境反射光globalAmbient。比如笑对应的globalAmbient为绿色,悲伤对应的为蓝色,惊讶对应的是黄色,愤怒对应的是红色。一旦识别完成,就可以根据识别的结果来直接对globalAmbient进行赋值,从而得到不同的环境光线效果。没有识别出表情时认为人脸是中性,此时的环境光设置为白色。
在不同的表情以及中性人脸之间进行切换时,本实施例采用渐进切换的方法,即缓慢的进行环境光线的切换。设Sa,Sb代表前后两个个识别的表情对应的颜色,那么当表情从Sa变化到Sb时,其变化过程可以描述为方程:
M表示渐变的时间长度,m=0,1,...M代表不同的时间长度。
表情识别的程度则用来控制漫反射D中的规范化的表面法向量N,当N不同时,漫反射的强度就会发生不同的变化。本实施例中将表情识别的程度用一个浮点数F来表示,该浮点数是识别使用的分类器得到的结果,为了方便使用,对不同分类器计算的结果进行归一化,即最终得到的表情识别程度可以用一个[0,1]之间的一个数来表示。那么漫反射公式中的N的计算公式为:
公式的含义是:当表情程度越夸张时,N值越接近L,N.L的值就越大,漫反射光线就越强,反之就越弱。这样本实施例就可以根据识别表情的夸张程度来改变漫反射光线的强弱,达到很好的交互效果。
子步骤B3:由人脸位置和人脸器官位置信息驱动粒子动画模型;
粒子动画模型是三维计算机图形学中模拟一些特定模糊现象的模型技术,经常使用粒子动画模型模拟的现象有火、爆炸、烟、水流、火花、云、雾或者发光轨迹这样的抽象视觉效果。
通常,粒子动画模型在三维空间中的位置与运动是由发射器控制的,所述发射器主要由一组粒子行为参数以及在三维空间中的位置所表示。粒子行为参数可以包括粒子生成速度(即单位时间粒子生成的数目)、粒子初始速度向量和加速度(例如什么时候向什么方向运动,以及速度的变化)、粒子寿命(经过多长时间粒子湮灭)、粒子颜色、在粒子生命周期中的变化以及其它参数等等。
在粒子动画模型模拟抽象视觉效果阶段,根据粒子生成速度以及更新间隔计算新粒子的数目,每个粒子根据发射器的位置及给定的生成区域在特定的三维空间位置生成,并且根据发射器的参数初始化每个粒子的速度、颜色、生命周期等参数。然后检查每个粒子是否已经超出了生命周期,一旦超出就将这些粒子剔出模拟过程,否则就根据物理模拟更改粒子的位置与特性,这些物理模拟可能像将速度加到当前位置或者调整速度抵消摩擦这样简单,也可能像将外力考虑进取计算正确的物理抛射轨迹那样复杂。
设粒子的起始位置为 粒子的速度矢量为 加速度矢量为 那么时间为t时,粒子在空间中位置
从公式可以看出,通过设置不同的Ps,V和a就可以得到不同运动状态和轨迹的粒子。
本实施例步骤102中通过对人脸器官的定位,识别出眼睛、嘴巴等的位置信息及人脸轮廓信息后,可以将眼睛、嘴巴等的位置信息代入所述粒子的起始位置公式中作为Ps的值(其中,ZS可以为给定的初始值),用来控制粒子的起始位置。这样可以使粒子从人脸区域的特定位置发射出来,并随着人脸位置的变化而发生变化,达到较好的交互效果。
也可以用识别出的人脸轮廓信息控制粒子的生命周期,具体地,可以用一个视频中人脸覆盖区域的多边形来描述人脸轮廓,根据轮廓信息,我们可以大致确定一个人脸区域的范围。粒子系统中的粒子从起始位置(如人脸区域内任意位置)开始运动后,可以实时控制其速度和方向,即可以实时计算出一个粒子在空间中的位置。将某个时刻的粒子位置投影到人脸所在的平面区域,并判断其与人脸区域的位置关系,如果仍然在人脸区域内,那么就让粒子继续运行,否则,粒子运行并超出这个多边形区域时,就可以认为其生命结束,即终止其运行。这样,粒子系统的特效效果就只出现在人脸区域内。
还可以在用人脸器官位置信息控制粒子起始位置的同时,使用人脸轮廓信息控制粒子的生命周期,以达到丰富的三维效果。
子步骤B4:由人脸定位信息驱动三维目标模型进行平移变换;
对三维目标模型的平移是通过对视频中的人脸进行定位和跟踪来实现的,本步骤将步骤102识别的人脸定位信息作为三维目标模型的平移参数,根据人脸在视频图像中的位置变化对三维目标模型进行平移变换。
三维目标平移变换的公式可以为:
X=X0+Ts,
其中,X0为预先设定的三维模型所在空间坐标系中的原点,设人脸定位后的人脸区域的中心在视频图像中的坐标为(u,v),设图像宽为w,高为h,那么有 由此得到三维目标模型的平移参数X,根据此参数对三维目标模型进行平移变换。
子步骤B5:由人脸定位信息驱动三维目标模型进行缩放变换;
对三维目标模型进行缩放是根据视频中人脸大小变化来实现的。当视频中的人脸与摄像头的距离发生变化时,人脸的大小就会发生相应的变化。根据视频图像的大小,可以设定一个人脸大小的标准值。根据步骤102识别人脸定位信息的人脸定位和跟踪算法可以确定出视频中的人脸大小,用实际大小除以标准大小就可以得到人脸缩放的比例值,用这个比例值作为三维目标模型的缩放参数实现三维目标模型的缩放变换。
三维目标模型的缩放公式为X=X′s,其中,X′为三维目标模型缩放前的坐标,s为根据人脸定位信息获得的人脸缩放的比例值。
子步骤B6:由人脸姿态信息驱动三维目标模型进行旋转变换。
对三维目标模型的旋转是根据视频中人脸姿态信息实现的,根据步骤102中识别的人脸姿态信息作为三维目标模型的旋转参数,对三维目标模型进行旋转变换。
三维目标模型的旋转公式为X=X′Rx(θ)Ry(ω),其中,Rx表示绕x轴旋转的角度,θ表示绕x轴旋转的角度,Ry表示绕y轴旋转,ω表示绕y轴旋转角度,本步骤将人脸姿态信息分解为绕x轴和绕y轴的角度,之后代入公式对三维目标模型进行旋转变换。
经由以上处理,可生成丰富的三维视频特效。
需要说明的是,本方法实施例为了简单描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参照图2,示出了本发明一种实现三维视频特效的方法实施例二的步骤流程图,可以包括以下步骤:
步骤201:获取视频图像;
利用DirectShow从摄像头USB接口获取视频图像;
步骤202:识别所述视频图像中的人脸信息;所述人脸信息包括:人脸定位信息、人脸器官定位信息、人脸姿态信息和人脸表情信息;
本步骤使用智能识别技术识别所述视频图像中的人脸信息。
步骤203:根据预置规则,由人脸信息驱动预先设定的三维动画模型;
所述三维动画模型包括:三维目标模型、粒子动画模型和光照模型。智能识别得到的人脸器官定位信息如人脸器官位置可以用来定制粒子动画的起始点,人脸轮廓可以控制粒子的生命周期;人脸定位信息中的运动信息如跟踪的人脸可以用来驱动三维目标模型的平移;人脸定位信息中的人脸大小信息可以用来驱动三维目标模型的缩放;人脸姿态信息可以用来驱动三维目标模型进行旋转变换;而人脸表情信息则可以用来驱动光照模型进行光照变化。
步骤204:将所述视频图像转换成纹理;
将视频图像转换为纹理,可以充分利用三维图像系统提供的纹理处理函数,快速地对纹理进行一些预处理。
本实施例使用OpenGL三维绘制平台的纹理映射功能实现将视频图像转换成纹理。OpenGL是以GL三维图形库为基础制定的一个通用共享的开放式三维图形标准,在图形处理领域有着广泛的应用,以OpenGL为基础的产品包括动画制作软件Soft Image和3D Studio MAX、仿真软件Open Invertor、VR软件World Tool Kit、CAM软件ProEngineer、GIS以及ARC/INFO等等。OpenGL提供了丰富的纹理处理函数,可以快速地对视频图像和纹理进行处理。
在处理纹理图像时,大小为2的幂次的图像的操作最方便,可以将图像大小转换为2的幂次。因此,本实施例将每一帧视频图像大小转换为2的幂次大小,在保持原始图像长宽比例不变的情况下,最直接的方法是根据实际图像的大小生成一幅最小的但能包含原始图像的图像,同时长和宽为2的幂次。比如,当输入的视频图像中每帧图像的大小为320*240时,可以生成一幅大小为512*512(512=29)的图像,然后将320*240的图像填入512*512图像的中央。
步骤205:建立所述纹理的每个点坐标和预先设定的三维图形的每个点坐标的映射关系,根据所述映射关系,将所述纹理的每个像素点的颜色映射到三维图形上;
所述三维图形可以为矩形,也可以为其它形状图形如圆形等。
纹理实际上就是图像,纹理映射是图形学中的一个基本技术,其目的是将图像贴到物体表面。纹理映射的实质是建立空间三维点和图像平面像素点之间的映射关系,然后将图像中像素点的颜色赋给空间点,因此纹理映射的关键是建立映射关系。本实施例使用OpenGL提供的纹理映射函数,为空间点设置对应的纹理坐标,实现纹理映射,将所述纹理的每个像素点的颜色映射到三维图形上。
步骤206:将由人脸信息驱动的三维动画模型与步骤205所述的三维图形结合,生成三维视频特效。
所述三维图形可以根据需要放置,如可以作为背景放置在三维空间的正后方,也可以缩小后嵌入到三维物体中。同时,与三维动画模型驱动参数驱动的三维目标模型、光照模型和三维粒子动画模型相结合,共同生成丰富的三维视频特效。
参照图3,示出了本发明一种实现三维视频特效的方法实施例三的步骤流程图,该实施例将本发明的方法具体应用到三维人脸模型,由视频图像中识别出的人脸表情信息驱动三维人脸模型实现三维视频特效。本实施例可以包括以下步骤:
步骤301:输入通用三维人脸模型;
通用三维人脸模型一般可以采用三维造型软件(比如3DMax、Maya等)来制作。
步骤302:获取视频人脸图像;
步骤303:识别视频图像中的人脸表情信息;
人脸表情识别具体的实现方法有很多,例如,中国专利公开号为CN101034433A,公开日为2007年9月12日的名称为“人脸表情图像的分类及语义评判量化方法”的专利申请中公开了一种人脸表情识别方法。再例如,中国专利公开号为CN101187990A,公开日为2008年5月28日的名称为“一种会话机器人系统”的专利申请中也公开了一种基于人脸检测(定位)和人脸表情的特征提取进行人脸表情识别(分类)的方法,在此不再赘述。总之,本领域技术人员可选择任意合适的方法识别视频图像中的人脸表情信息,本发明无须对此作出限制。
步骤304:使用预置驱动规则驱动三维人脸模型上器官的运动,得到三维人脸动画。
预置驱动规则可以通过规定如何驱动三维人脸模型上的点来实现,因为,通用三维人脸模型是由点构成,驱动这些点运动就可以改变三维人脸模型器官的变形。
人脸可以有各种各样的表情,但典型的表情有以下几类:中性,笑,愤怒,惊讶,我们以上述几种表情为基础来研究人脸器官的变形方式,我们认为中性表情时人脸器官没有任何运动,参考图4,为中性表情的人脸示意图。
下面仔细描述当表情为“笑”、“惊讶”和“愤怒”时,预置驱动规则的具体实施方式。
参考图4-1,给出了当人脸表情是“笑”的时候,相对于中性表情人脸的变化情况。
当人脸表情是“笑”的时候,一种优选的预置驱动规则为:下眼睑上的控制点整体向上运动;上嘴唇上的控制点平行上升,并向两边拉升;下嘴唇上的控制点依序连接形成抛物线的形状。
当人脸表情是“笑”的时候,下眼睑会向上微微的运动,所以可以简单的抽象为整体向上运动,而眉毛可以认为没有运动;最明显的变化是上、下嘴唇,所以可以设置上嘴唇上的控制点在y方向是平行上升的,在x方向上则向两边拉升;下嘴唇上的控制点则可以认为从直线变形到一个抛物线的形状。
下嘴唇的变形可以用抛物线来表达:y=ax2-a,该抛物线具体示图见图4-2,图中包含了两根线条,上面的直线代表了中性表情时下嘴唇的位置,下面的曲线是利用公式y=ax2-a来生成,圆圈点代表了嘴唇上的控制点。嘴唇的中心点的x坐标为0,左右的控制点对称分布(例如,间隔为0.25mm),将控制点的x坐标代入抛物线公式可以计算出y值,根据y值就可以驱动嘴唇点的变形来产生笑的表情。调整y=ax2-a中的a值可以产生不同弯曲程度的抛物线,用来模拟不同程度的笑对应的下嘴唇变形。
参考图5-1,给出了当人脸表情是“惊讶”时,相对于中性表情人脸的变化情况。
当人脸表情是“惊讶”的时候,一种优选的预置驱动规则为:上、下嘴唇的控制点相对于嘴巴中心点分别向上、下运动;嘴角的控制点向嘴巴中心点运动;上、下嘴唇上的控制点同嘴角控制点依序连接形成两个抛物线形状;眉毛控制点向上运动。
当人脸表情是“惊讶”的时候,嘴巴的变化可以认为是上下嘴唇都变化为抛物线,同时嘴角往嘴巴的中间收缩;所以在设置上下嘴唇的变形时可以用抛物线函数:y=ax2+b表示,我们可以假设不同程度的"惊讶"时,代表嘴唇的抛物线都和x轴交于相同的位置。那么抛物线的函数可以简化为:y=ax2-a或者y=-ax2+a;抛物线的极值点为x=0时的点,那么该点的变形幅度就为a,x=0.5对应的点的变形幅度就为0.75a;我们可以取不同的x值来计算出变形的幅度,从而得到不同点的运动幅度值。参考图5-2,当为“惊讶”表情时,图中圆圈点代表了嘴唇上的控制点,上面的线条代表了上嘴唇变形,利用公式y=-ax2+a来生成,下面的线条代表了下嘴唇变形,利用公式y=ax2-a来生成,不同的a可以生成不同变形程度的抛物线。
参考图5-1,当为“惊讶”表情时,眉毛的变化是明显的上扬,我们可以用一个简单的变形算法来描述眉毛的上扬,该算法首先在眉毛的中心位置选择一个控制点,并在控制点的附近确定一个邻域。根据控制点和邻域点的位置来计算控制点到所有邻域点的最大距离max L,那么当控制点运动时,邻域点的运动可以用公式:
来计算,公式中V代表了控制点的运动矢量,L表示控制点到邻域点的距离,这个公式可以保证离控制点越近的点的运动距离越大,最远的点保持不变;参考图5-3,最中间的点是控制点,它的移动最大,左右点是邻域点,其变形程度跟该点到控制点的距离成反比,两端的两个点没有移动。
参考图6-1,给出了当人脸表情是“愤怒”时候,相对于中性表情人脸的变化情况。
当人脸表情是“愤怒”的时候,一种优选的预置驱动规则为:上嘴唇的控制点整体向上平移;下嘴唇的控制点向下运动;下嘴唇的控制点同嘴角控制点依序连接形成抛物线形状;眉毛控制点向上运动。
当人脸表情是“愤怒”的时候,眉毛的变化可以采用上述惊讶时的驱动方式,只是眉毛的眉角上的控制点在方向上整体向上运动;嘴巴变化和“惊讶”表情时比较类似,只是上嘴唇的变形不再使用标准的抛物线,而是让上嘴唇中间的几个点向上整体平移;参考图6-2,圆圈点是嘴唇上的控制点,上面的线条代表了上嘴唇的变形,圆圈控制点整体上移,下面的曲线代表了下嘴唇的变形,类似“笑”的下嘴唇变形,可以利用公式y=ax2来生成。
参照图7,示出了本发明一种实现三维视频特效的装置实施例的结构框图,可以包括:
信息识别单元701,用于识别视频图像中的人脸信息;
优选的,所述信息识别单元为智能识别单元。
优选的,所述人脸信息包括:人脸定位信息、人脸器官定位信息、人脸姿态信息和人脸表情信息。
驱动单元702,用于根据预置规则,由所述人脸信息驱动预先设定的三维动画模型。
优选的,所述预置规则为:所述人脸信息与所述三维动画模型的参数之间的映射关系;或者,所述预置规则为:由所述人脸信息确定所述三维动画模型的参数。
优选的,所述三维动画模型包括:三维目标模型、粒子动画模型和光照模型;所述驱动单元驱动预先设定的三维动画模型为通过设置所述三维粒子动画模型的动画起始点,驱动三维目标模型的平移、旋转变换或缩放,驱动光照模型进行变化来进行驱动。
优选的,所述驱动单元驱动预先设定的三维动画模型还包括:驱动单元设置所述三维粒子动画模型的粒子生命周期的结束条件为超出人脸轮廓范围。
优选的,本实施例的实现三维视频特效的装置还可以包括:
纹理生成单元703,用于将所述视频图像转换为纹理;
纹理映射单元704,用于将所述纹理映射到预先设定的三维图形上。
优选的,所述所述纹理映射单元704还可以进一步包括:
建立映射关系子单元7041,用于建立所述纹理的每个点坐标和预先设定的三维图形的每个点坐标的映射关系;
执行子单元7042,用于根据所述映射关系,将所述纹理的每个像素点的颜色映射到所述三维图形上。
参照图8,示出了本发明应用图7所示装置实现三维视频特效实施例的步骤流程图,可以包括以下步骤:
步骤801:获取视频图像;
步骤802:信息识别单元通过智能识别技术识别视频图像中的人脸信息;所述人脸信息包括:人脸定位信息、人脸器官定位信息、人脸姿态信息和人脸表情信息。
步骤803:根据人脸表情信息,驱动单元驱动光照模型进行光照变化;
驱动单元根据识别的人脸表情种类,如笑、悲伤、惊讶、愤怒、中性脸设置光照模型的不同环境反射光参数,进行光照模型的环境光线变换;根据人脸表情的程度调整光照模型的漫反射参数,进行光线强弱的变换。
步骤804:根据人脸器官定位信息,驱动单元驱动粒子动画模型生成粒子特效;
驱动单元根据人脸器官定位信息中五官的位置设置粒子起始位置中的X方向和Y方向的参数,根据人脸器官定位信息的人脸轮廓信息控制粒子的生命周期,驱动粒子模型生成粒子特效。
步骤805:驱动单元根据人脸定位信息,驱动三维目标模型进行平移和缩放变换;
人脸定位信息包括人脸位置信息和人脸跟踪信息,通过对视频图像中对人脸的定位和跟踪,确定三维目标模型的平移和缩放参数,并由驱动单元根据这些参数对三维目标模型进行平移和缩放。
步骤806:驱动单元根据人脸姿态信息,驱动三维目标模型进行旋转变换;
驱动单元根据识别的人脸姿态姿态信息确定三维目标模型的旋转参数,进行旋转变换。
步骤807:纹理生成单元将所述视频图像转换为纹理;
步骤808:纹理映射单元的建立映射关系子单元建立所述纹理的每个点坐标和预先设定的三维图形的每个点坐标的映射关系;
三维图形可以为矩形、圆形、三角形等任意三维图形。
步骤809:纹理映射单元的执行子单元根据所述映射关系,将所述纹理的每个像素点的颜色映射到所述三维图形上。
由于将视频图像映射到三维图形上,这样,就可以在三维图形上显示视频内容,更加丰富了三维视频特效内容。
步骤810:将所述三维动画模型和三维图形合成三维视频特效。
将由人脸信息驱动的三维目标模型、粒子动画模型、光照模型和所述三维图形结合起来,生成三维视频特效。
通过上述对视频图像的识别和处理,一个包括三维目标模型平移、缩放、旋转、背景光照变化、粒子特效及三维图形视频显示的三维视频特效就展现在用户的面前,用户只需要通过视频图像采集设备如视频头就可以与三维视频特效进行实时交互,并获得丰富的三维视频特效效果。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种实现三维视频特效的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。