构建完模型后就要加上纹理了。纹理是使用纹理映射,纹理映射技术是真实感技术的一个重要方面,人脸表面的纹理具有颜色和几何纹理的双重属性。
在贴纹理前,必须确定纹理与人脸的相对关系,即在场景中生成实体时要同时用到纹理坐标和几何坐标。对于一个二维纹理来说,纹理坐标在两个方向上都是从0.0~1.0。这样在设计纹理时就要小心,要使其左右、上下各边能够很好地拼为一体,即要实现纹理图像的无缝连接。在应用中,首先选择一个图像。由于被用作纹理图像的宽和高必须是2的幂次方,所以在预处理部分,须将其转换为符合要求大小的格式,并将对应的256分量依次读入缓存区。
在初始化时,对纹理映射的各种参数进行设置,要对相对的几何坐标同时给出对应的纹理坐标,本节采用了线积分卷积法来进行纹理的向量场映射方法,设向量场中任一点处的局部特性由一卷积核函数k(w)沿一条从该点开始向前向后跟踪出的一段流线积分的结果来决定,则定点(x,y)的纹理值I(x,y)可由下式得出:
式中,I为从(x,y)出发向前向后跟踪的流线段所经过的像素;f(xi,yi)为像素点(xi,yi)处的输入纹理;hi为流线段穿过像素(xi,yi)时在其内的长度。经这样的处理后,就可以实现具有真实感较强的人脸面部表情。(www.daowen.com)
在系统中,人脸位于一个256像素×256像素的像素纹理贴图的中心。该图可以从通用交换格式(CommonInterchangeFormat,CIF)视频帧中自动获得。考虑到处理的方便,人脸需要尽可能地出现在纹理贴图的中心位置。事实上,在视频帧中,人脸的位置很难真正处于中心,因为讲话者会随机地晃动,所以视频帧中人脸的位置需要被研究。
将水平和垂直轴分为三段。其中,水平方向上为LT/2和(LX-LT/2),垂直方向上为LT/2和(LY-LT/2)。这里LT/2表示纹理贴图的一半宽度(本系统为128),LX和LY分别是CIF视频帧的宽度和高度。这四个标记可以将视频帧分解为九个区域。根据中心人脸(CY,CX)相对于这些区域的位置,可以决定如何进行纹理贴图。例如,如果CX<LT/2并且CY<LT/2,则坐标(LT/2,LT/2)可以认为是纹理贴图的中心;而当LT/2<CX<LX-LT/2,并且LT/2<CY<LY-LT/2时,那么纹理贴图的中心被认为在(CY,CX)。根据自动产生的纹理贴图,3D人脸模型的纹理坐标可以通过将3D坐标系映射进入到纹理空间而得到。根据以上和前面的处于人脸模型转换中的个性化3D节点坐标,最终可以合成一个特定的3D人脸模型。
这里,从视频中截取了一张2D人脸,按照上述纹理贴图的原则和算法,最终合成的结果如图7-26所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。