多民族人脸表情变换
2016-05-16刘瑾煜魏巍李振元
刘瑾煜+魏巍+李振元
摘要:我国是一个多民族国家。不同民族在表达相同表情时,会因文化,地域和习惯的不同,产生一定的区别。为了表达多民族人脸表情变换的特点,实现了一种以民族人脸中性表情为输入,依据各民族人脸表情特点,自动生成的民族人脸表情变换方法。首先利用构建的多民族人脸表情数据库标准人脸库,多民族人脸表情库,以及多民族人脸表情AU部件库,统计多民族人脸表情变化时的规律,利用主动形状模型ASM对民族人脸进行特征点定位。其次,根据统计不同民族人脸的表情,获得民族表情变换参数,结合一般人脸表情变换参数计算民族人脸表情变换特征点的形变位置。最后,使用纹理映射和仿射变换生成变换表情后的人脸图像。实验结果显示,所提方法能够仿真出不同民族人脸表情变换的基本表情。
关键词:计算机图形;民族;人脸表情;仿射变换
中图分类号:TP391.41 文献标识码:A DOI:10.3969/j.issn.1003-6970.2016.03.015
0引言
随着计算机图像技术的快速发展,人脸图像处理越来越引人瞩目,虽然人脸照片可以应用修图软件进行调光,美白,遮瑕等处理,但少有或没有软件可以直接对人脸表情进行变换。
基于我国是一个多民族国家,每个民族由于地域,习俗,饮食,文化等差异,可能会造成不同民族再变换同一表情时可能有一些区别,为了验证这种想法是否正确,并探索其变化规律,本文将提出一种方法,基于人脸活动单元AU编码等技术,利用多民族人脸表情数据,来探寻民族差异对人脸表情变化的影响并生成各个民族的多种表情。
1多民族表情变换系统架构
本文提出的多民族人脸表情变换,主要分为两大模块,第一个模块是利用多民族人脸表情库的中性表情与非中性表情计算出平均变化值C,第二个模块是利用变化量C通过三角仿射变换来生成表情变换图像。
第一模块步骤如图1,首先用某一民族的中性表情提取特征点,便可以得到中性表情各特征点的数据,在用相同的方法得到变化表情(如微笑)的特征点数据,通过对两个数据的对比,可以得到表情的变化量C。再将同一民族多个人得到的同一表情变化量求平均值,最后可得到此民族多人平均的变化量C。以此方法,可求的不同民族多种表情的平均变化量。
第二模块的步骤为图2,首先求得任意中性表情的特征点参数,其次求出中性人脸网格,然后利用第一模块求得的平均变化量C与中性表情特征点的参数进行运算,再略加调整,得到表情变换后的人脸网格,最后利用三角仿射变换,生成表情变换后的人脸图像,得到最终的效果。
1.1统计各民族不同表情的变化规律
1.1.1建立多民族人脸表情数据库
本文在争得志愿者同意的前提下,采集了多民族的各种表情,完成了蒙古族,藏族,维吾尔族等20个民族的标准人脸库MSFD(Multiethnic Standard Face Database),多民族人脸表情库MFED(MultiethnicFacialmotion Database),以及多民族人脸表情AU部件库MFAU(Multiethnic FacialAction UnitDatabase)的构建。如图3。
1.1.2特征点定位
本文基于主动形状模型(ASM)标定人脸特征点。
具体的方法是首先选取一张标准模型,对其重要的105个特征点进行规范标点,如图4,并把标号的形状作为标准形状保存起来。然后选取未标定的图像,并依次对其手动标定三个点:左眼,右眼,嘴中心,如图5所示。根据这三个点和标准图对应的三个点,计算仿射变换,并把所有的特征点都投射到该图像上,如图6。
1.13变化量C的计算
根据《人体测量方法》和大量的数据分析,人脸标定的105个特征点在变换表情时只有嘴部,眼部和眉的相对位置会发生较大的改变,而人脸的相对宽度(以下记作FW,即89号点与79号点横坐标的差值)与鼻尖(即标定的46号点,以下记作NT)的相对位置不会发生改变。因此,为了使程序运行的更快,效果更加逼真良好,我们只对嘴部(49~68号点90-97号点)、左右眼部(28~39、98~105号点)、眉(18~27、69~73号点)的特征点求变化量。
由此得出一个公式来计算n组变化量的平均值:
即使是同一个人的两张照片也会因一些不可避免的因素,也会使一些与研究无关的条件发生改变,从而造成计算差值的误差太大。为了避免这种情况,我们需要选取一个参照物,即脸宽(FW)作为每一幅图像变化的基本单位。
下图7是通过五位少数民族同学的中性表情和微笑表情计算出来的部分特征点的变化参数C。
1.1.3计算表情变化后的坐标
同理,如果要求若变换某种表情时,任意中性图片各个特征点的数据,只需要用原始坐标减去本图像的单位参数即可得到变化后的坐标,得出以下公式:
只要将所得的坐标带人图像,就可以得到变换后特征点的坐标。
1.2人脸表情变换
得到变换后的特征点坐标后,还需要利用三角剖分原理来划分人脸网格,然后再进行仿射变换,才能最终生成变换表情后的图像。
因提取特征点的方式方法与第一模块一样,故此处不在赘述。
1.2.1人脸网格生成
本文采用Delaunay三角剖分算法生成人脸表情的三角网格,如下图8。
1.2.2纹理填充与仿射变换
再得到中性表情网格和微笑表情网格的前提下,三角内部的像素值也要相对应的发生变换。本文采用仿射变换的方式,将中性表情自然的转换为某种表情。利用生成的表情变化网格,对其进行纹理填充,可以得到如图9的效果图:
1.2.3添加经验值进行优化
从图9中看,利用求出的参数直接进行变换,效果不为明显,主要是由于测试数量较少,和每个人的表情变化程度不同造成的,基于这两个原因,可以对公式2添加一个经验值参数N,从而放大表情变化的幅度。下图10,为N=1.5时,生成的变化表情:
2实验结果
本文在建立了较为完善的少数民族人脸表情数据库,并利用主动形状模型(ASM)标定人脸特征点,探寻了多个民族(如蒙古族,朝鲜组,维吾尔族,乌孜别克族)在变化多种表情(如喜怒哀乐等)时的规律,并找到了相对应的表情变化参数。
基于已知的表情变化参数,可以得到人脸在表情变换后的特征点位置,采用Delaunay三角剖分算法生成人脸中性即表情变换的三角网格,再利用纹理填充和仿射变换的方法对人脸三角网格进行像素填充,生成变换表情后的人脸图像。
本文下图11是乌孜别克族的表情变换。
3总结
本文在OpenCV和Matlab的环境下进行实验,得出了多民族再变换不同表情时变化的参数,发现每个民族在变化同一表情时都有一些的差别,并且利用参数生成了人脸表情图像。发现在完全运用已知参数来生成人脸图像时,表情变换都较为浅显,因此将已知参数放大0.1-1倍就会得到明显的效果,又显得较为自然。