DOI: 10.11817/j.issn.1672-7207.2017.07.016
一种自动3D面部区域分割方法
李建锋1,梅楚璇2,廖胜辉2
(1. 吉首大学 信息科学与工程学院,湖南 吉首,416000;
2. 中南大学 信息科学与工程学院,湖南 长沙,410083)
摘要:提出一种用于美容整形的三维人脸模型自动分区方法。通过不同分辨率模型、主成分分析数据、鼻尖特征和相交曲线形状等进行组合分析,生成标准的正面朝向的三维人脸模型,然后,自动渲染生成二维图像并用可靠的二维人脸特征检测方法生成二维标志点,逆向生成三维人脸标志点。最后,基于对应的三维标志点,将标准制作的解剖学分区模板与输入模型进行自动拟合,自动生成17个区域,用于不同类型的美容整形手术。在实际三维人脸模型分割实验中拟合基元的分层聚类算法、基于“形状直径函数”(SDF)的算法以及SNAKE方法等对比方法。研究结果表明:本文方法所得实际分割效果比对比算法好,在相同实验环境下,本文方法比这3种对比方法分别快10,70和50 s。
关键词:3D网格分割;整容手术;人脸分区模板
中图分类号:TP391 文献标志码:A 文章编号:1672-7207(2017)07-1797-06
An automatic 3D face segmentation method
LI Jianfeng1, MEI Chuxuan2, LIAO Shenghui2
(1. School of Information Science and Engineering, Jishou University, Jishou 416000, China;
2. School of Information Science and Engineering, Central South University, Changsha 410083, China)
Abstract: A 3D face model automatic segmentation method for cosmetic surgery was proposed.Combined with multi-resolution models, principal component analysis, nose tip characteristics and intersection curve shapes, a standard frontal and upright position was formed. Then, a group of 3D facial landmarks were detected effectively by use of 2D face alignment technology on 2D image generated by automatical rendering. Finally, a standard anatomical segmentation template designed for different types of cosmetic surgery was automatically fitted on the input model based on corresponding 3D landmarks, and 17 regions were automatically generated. 3D face segmentation method was compared to the common curve-fitting hierarchical clustering algorithm, the shape diameter number (SDF) algorithm and SNAKE algorithm. The results show that 3D face model segmentation has better performance than the contrasted algorithms, and under the same experimental conditions, 3D face model segmentation is 10, 70 and 50 s faster respectively than the three contrasted kinds of algorithms.
Key words: 3D mesh segmentation; cosmetic surgery; facial segmentation template
三维网格分割是将三维网格划分为多个分区域网格的分割方法[1],目前在基于成分的形状合成[2]、样式转换[3]、实例建模[4]、互换部分建模[5]、三维场景分析[6]、基于区域的识别[7]、视频压缩[8]、三维目标识别[9-10]等方面应用广泛。三维网格分割与三维面部识别也密切相关,相关的研究大致分为空间匹配方法和特征匹配方法[11] 2类。空间匹配方法通过比较三维表面相似性包括Hausdorff距离[12]、迭代最近点(ICP)及其扩展[13]等进行直接匹配,其主要问题是计算成本高,并且初始特征点和标记初始配准的选取对分割效果影响较大。基于特征的匹配方法通常用多个二维特征表示三维模型[14],常见的二维特征包括原始深度图像和图像表面属性(如梯度和曲率)[11, 15],然而,离散表面特性值需要从三维模型中得到,并且这行特征值在采集过程中容易受噪声影响,使得表面特性难以利用。为此,本文作者提出一种特殊的三维面部网格分割方法,用于医学领域整容手术模拟,以帮助医生进行术前规划,提升他们在操作过程中的决策力和熟练程度。
1 方法设计
传统人脸面部分割仅包含眼睛区域、鼻子区域和嘴区域。本文探讨一种将三维面部网格划分为17个区域的特殊分割方法,其基本思想是基于一系列智能检测技术依次固定三维人脸模型的空间方向,然后根据受控二维检测技术反向修正三维人脸模型上的指标点的位置。同时,制作1个整形手术定向二次曲线分割掩模,并且基于三维索引点自动将掩模与个性化面部模型匹配,最后根据掩模的边线自动分割面部区域。使用的模型包括各种彩色激光扫描仪采集的带纹理3D表面网格模型,如图1所示。
图1 典型具有纹理的三维表面网格模型
Fig. 1 3D surface mesh models with textures
1.1 三维面部姿势校正
在三维面部姿势校正中,为了避免输入的三维面部模型初始方向不定,必须固定模型的正面。对于该问题,目前一般使用姿态不变表面特征来检测眼角和鼻尖的关键点,但计算量较大。三维模型背面缺失数据,正面和侧面形成半个椭圆体,正面向侧面突出,这些特征可以用于计算三维模型正面的基本方向。其步骤和方法如下。
1) 计算人脸网格模型的平均中心点m:
(1)
式中:vk表示人脸网格模型的1个顶点;k为顶点序号;N为顶点总个数。
2) 将平均中心点与网格化人脸正面中心点的矢量作为人脸正面的基本方向。在具体实践中,若按照原始的三维面部模型进行计算,则可能会因模型边界及正面中心点情况复杂导致计算结果不稳定。针对该问题,通过设置粗分辨率级别予以解决。用特定的三角边长对人脸表面进行再次网格化处理,去除尖锐边缘等几何特征。根据人脸尺寸和实验,最终确定三角形边长为90 mm,如图2(c)所示。同时,为了获得稳定的再网格化结果,先用45 mm边长进行中等粗糙的再网格化,具体如图2(b)所示。通过上述处理可以有效地计算模型边界的几何中心,也很容易找到鼻和嘴等网格化区域的中心点,计算头部的内侧和脸部正面的方向矢量,给出“前”轴的第1估值。
图2 三维面部表面的Remesh模型
Fig. 2 Remesh models of 3D facial surface
3) 采用主成分分析法(principal component analysis,PCA)确定三维面部模型的“垂直”轴和“水平”轴。通过对三维面部模型表面顶点坐标进行分析,提取顶点分布3个最大范围的主要方向[16]。考虑到PCA方法对原始面部模型的异常值十分敏感,使用中度粗糙人脸模型进行计算。在已经确定“正面”轴的情况下,中度粗糙三维人脸模型中的所有顶点被变换,使得“正面”方向成为Z轴。从平均中心位置减去所有的二维顶点(仅X和Y成分)生成协方差矩阵:
(2)
式中:C为协方差矩阵;m为人脸网格模型的平均中心点;vk为人脸网格模型的1个顶点;k为顶点序号;N为顶点的总个数。提取较长的主轴为“垂直”轴,较短的主轴为“水平”轴。
4) 通过鼻子区域的鼻尖确定“上”轴。鼻尖是面部上的突出部分,若人脸呈正面、近垂直状,则鼻尖就可假定为距观看者最近的人脸表面上的那个点,或者是深度扫描的脸部像素最高的那个点[17]。多数现有方法的三维面部鼻尖检测主要通过前额姿态或者接近正面姿态,并嵌入在2.5D范围扫描中的三维形状信息获取[18],对于面部非正面姿态,文献[16, 19]采用姿态不变差分表面特征的方法来解决该问题。本文中,原始三维脸部表面被转换到新的以“正面”轴为Z轴、“横”轴为X轴、“纵”轴为Y轴的坐标系上,则从观察者角度看到的最小ΔZ坐标分量的顶点被视为鼻尖。垂直穿越脸部中心区域的交叉点构成的曲线,包含鼻和嘴的特性,具有明显的区别度,可以帮助确定三维面部模型的“上”轴。图3中箭头显示已检测到的鼻尖局部水平面用于切分人脸曲面生成1个截面等高线,然后,将该局部横平面上移4次,每次移动5 mm,得到一组4条等高线。同理,将该水平面下移4次,得到另一组4条等高线。将2组等高线与鼻尖中间点的等高线通过下式计算差异度并进行比较:
(3)
图3 鼻尖周围的水平剖面轮廓线
Fig. 3 Horizontal section contour lines around the nose tip
式中:N为每组等高线的数量;pi为该组每条等高线峰值;p为界面等高线峰值。根据脸型分布的生理学知识可知,与界面等高线差异度大的那一组等高线靠近嘴部区域,而与其差异度小的那组则位于鼻腔区域,至此完成“上”轴的确定。
1.2 三维面部标志性检测
二维面部图像对齐,或口、鼻、眼、眉、下巴等语义上的面部标记定位,是计算机视觉和计算机图形学中的难题,目前基于级联回归的方法[20-21]性能优异。给定人脸二维图像I和初始人脸形状S0,则迭代第t次后的人脸形状St为
(4)
式中:阶段回归函数Rt在t阶段根据当前形状St-1和人脸特征得到新的形状St。选择特征点构建初始人脸形状后计算形状增量,不断迭代更新人脸形状,最终在三维面部模型自动生成的二维面部图像定位出1组(68个)面部标识点,输入的三维面部模型被转成受控设置的视窗,视窗中生成的二维图像连同窗口尺寸、相机位置及方向等渲染参数一起保存。1张三维面部模型的标准正面垂直位置侦测68个标识点的二维面部图像见图4(a)。人脸图像中心区域的二维标识点可以通过受控视窗保存的渲染参数,通过影射反向计算获得可靠的三维面部几何点坐标。然而,基于图像边界的二维标识点反向计算三维面部模型的几何点坐标可能并不准确,为解决这一问题,以正面二维图像为基础向左和向右旋转30°进行渲染,生成2张侧面的二维图像,如图4(b)和图4(c)所示。结合旋转矩阵使用最小二乘法计算三维面部模型的几何点坐标。
需要说明的是:在计算三维标识点时不必计算所有对应的二维标识点,仅需选择一些关键解剖学标识点。3D人脸正面和侧面的27个三维标识点分别如图5(a)和图5(b)所示。
1.3 三维面部分割
本文根据各种美容手术的解剖区域构建标准解剖分割模板。将三维面部网格划分为17个区域,包括前额、左右眉毛、左右眼镜腿、左眼和右眼、鼻子、左右脸颊、左右眼图案(鼻唇沟)、上唇、下唇、颚的左右角和下颚,解剖模板由一组关键点和曲线定义(如图6中的曲线所示)。在具体分割任务中,解剖学模板对每个输入的面部模型进行自动拟合,用检测到的三维面部标识点来引导配准,其中一些标识点连接到模板中的关键点,一些标识点连接模板的子区域。同时,为了获得更好的拟合结果,采用下式进行局部适应性调整:
(5)
式中:Rk和Tk分别为第k次的旋转矩阵和平移矢量;为基准模型特征量; 为待配准模型特征量。将解剖学分区模板拟合到1个输入人脸模型,见图6。
图4 检测从三维面部模型生成的二维图像上的面部标记
Fig. 4 Detecting facial landmarks on 2D image generated from 3D facial model
图5 三维面部标记生成点
Fig. 5 3D facial landmarks generation
对输入的三维正面和侧面的面部模型进行17个区域的解剖学分区,见图7,每个区域对应一种整容整形手术类型。
图6 掩盖在面部模型上的解剖分割模板
Fig. 6 Anatomical segmentation templates fitted on facial model
图7 三维面部模型17个解剖学子区域分割示意图
Fig. 7 3D facial model anatomical segmentation into 17 anatomical subregions
2 实验结果与分析
实验包括40个人的面部数据库,对比算法为:拟合基元的分层聚类算法(EfPiSoft)[22]、基于“形状直径函数”(SDF)的算法[23]、SNAKE方法[24]。实验在PC计算机(Intel core 2 Duo 2.30 GHz CPU,4 GB RAM,Windows 7操作系统)上进行。
2.1 算法分割效果
图8所示为本文算法对其他面部模型的三维分割实验结果。从图8可以看出:算法将三维正面和侧面模型准确分割成如图6所示的17个解剖学分区,对样例一和二的分区结果稳定,且边界清晰。
图8 本文方法对其他面部模型的三维分割效果
Fig. 8 3D anatomical segmentation of other facial models by method in the paper
图9所示为该算法的分割效果[22],可以看出该方法不太适合人脸分割,边界锯齿较多,对照图6所示的解剖学模板,有错分割和过分割的情况。
采用SDF算法进行脸部图像分割时,首先测量物体表面某一点附近体积的直径,计算每个面的形心,然后分2步进行分区:首先,用高斯混合模型将k高斯拟合到含所有直径形状函数值的直方图,得出每个面的长度k矢量,确定其被分配到每个SDF群的概率;其次,用α扩展图分割算法精细化分区,对上一步得出的概率矢量进行边界平滑和曲率处理,使其能量函数最小化。图10所示为该算法的分割结果,可以看出同样有错分割和误分割的现象,也不适合人脸分割。
图9 EfPiSoft对多个面部模型的分割效果[22]
Fig.9 Facial models segmentation by EfPiSoft[22]
SNAKE方法在分割任务中,首先,用面部器官分布的生理知识划定初始加工区域;其次,用弯曲能量和拉伸能量组成内部能量,用顶点特征的总能量组成外部能量,并用顶点所包含的面积作为约束,建立能量变化方程式;最后,进行迭代方程的运算,得到方程值最小时的分区结果。图11所示为该方法的人脸模型分割结果[24],结果表明该方法可以生成人脸模型左眼、右眼、鼻子和嘴唇共4个区域。但该方法初始处理时需手动交互,且眼睛区域不能用于整形手术。
2.2 算法效率
表1所示为本文方法和其他3种方法在相同条件下对同一面部模型分割的时间对比。对1个含约150 000个三角形单元格的面部模型进行分割,本文方法以及EfPiSoft,SDF和SNAKE分别耗时10,20,80和60 s。
图10 SDF对多个面部模型的分割效果[23]
Fig. 10 Facial models segmentation by SDF[23]
图11 SNAKE对多个面部模型的分割效果[24]
Fig. 11 Facial models segmentation by SNAKE[24]
2.3 讨论
算法需要设计特别的方法或先验知识来指导分割操作,加大了任务处理的难度,所得结果也很难与实际结果相符。SNAKE方法虽然适用于面部模型分割,但算法提取的区域数量有限,其中一些不能用于整形手术。此外,上述方法都存在计算效率低的问题。而采用本文提出的方法不仅能得到稳定、可靠的分割效果,而且时间复杂度较低,实用价值高。
表1 本文方法与对比方法时间比较
Table 1 Comparison of time obtained by the method in the paper and the contrastive method
3 结论
1) 所提出的三维面部美容整形手术仿真网格分割法解决了以往三维面部网格分割方法需要手工交互、操作难度大、分区方法受域限制明显、提取区域数量有限、不适合面部分区等问题。
2) 本文方法以面部解剖学特征和实际操作需要为基础,具体过程包括:输入模型可以是任意初始姿态、任何类型的三维纹理面部网格;通过对不同分辨率模型、主成分分析数据、鼻尖特征和相交曲线形状等进行简单组合,生成标准的正面垂直人脸模型;利用最先进的二维面部对齐技术渲染生成图像,有效地测出一组三维面部标记;最后,将标准的解剖学分区模板与输入模型进行自动拟合,生成与真实美容手术的解剖区域相对应的17个分割区域。
参考文献:
[1] THEOLOGOU P, PRATIKAKIS I, THEOHARIS T. A comprehensive overview of methodologies and performance evaluation frameworks in 3D mesh segmentation[J]. Computer Vision & Image Understanding, 2015, 135(C): 49-82.
[2] KALOGERAKIS E, CHAUDHURI S, KOLLER D, et al. A probabilistic model for component-based shape synthesis[J]. Acm Transactions on Graphics, 2012, 31(4): 1-5.
[3] XU Kai, LI Honghua, ZHANG Hao, et al. Style-content separation by anisotropic part scale[J]. Acm Transactions on Graphics, 2010, 29(6): 184-194.
[4] FUNKHOUSER T, KAZHDAN M, SHILANE P, et al. Modeling by example[J]. Acm Transactions on Graphics, 2004, 23(3): 652-663.
[5] KREAVOY V, DAN J, SHEFFER A. Model composition from interchangeable components[J]. Proc Pacific Graphics, 2007, 39(10): 129-138.
[6] SILBERMAN N, FERGUS R. Indoor scene segmentation using a structured light sensor[C]// The IEEE International Conference on Computer Vision Workshops (ICCV Workshops). Barcelona, Spain, 2011: 601-608.
[7] HUBER D, KAPURIA A, DONAMUKKALA R, et al. Parts-based 3D object classification[J]. Computer Vision and Pattern Recognition, 2004, 2(2): 82-89.
[8] LENGYEL J E. Compression of time-dependent geometry[C]// Proceedings of the 1999 Symposium on Interactive 3D Graphics, SI3D’99. Atlanta, 1999: 89-95.
[9] THEOLOGOU P, PRATIKAKIS I, THEOHARIS T. A review on 3D object retrieval methodologies using a part-based representation[J]. Computer-Aided Design and Applications, 2014, 11(6): 670-684.
[10] SAVELONAS M A, PRATIKAKIS I, SFIKAS K. An overview of partial 3D object retrieval methodologies[J]. Multimedia Tools and Applications, 2015, 74(24): 11783-11808.
[11] MIAN A, PEARS N. 3D face recognition. in: 3D imaging, analysis and applications[M]. London: Springer, 2012: 311-366.
[12] SANGINETO E. Pose and expression independent facial landmark localization using dense-SURF and the hausdorff distance[J]. IEEE Transactions on Pattern Recognition Machine Intelligence, 2013, 35(3): 624-638.
[13] MOHAMMADZADE H, HATZINAKOS D. Iterative closest normal point for 3D face recognition[J]. IEEE Transactions on Pattern Recognition Machine Intelligence, 2013, 35(2): 381-397.
[14] GUO Y, BENNAMOUN M, SOHEL F, et al. An integrated framework for 3-D modeling,object detection, and pose estimation from point-clouds[J]. IEEE Transactions on Instrumentation & Measurement, 2015, 64(3): 683-693.
[15] COLOMBO A, CUSANO C, SCHETTINI R. 3D face detection using curvature analysis[J]. Pattern Recognition, 2006, 39(3): 444-455.
[16] LI Y, WANG Y H, WANG B B, et al. Nose tip detection on three-dimensional faces using pose-invariant differential surface features[J]. IET Computer Vision, 2014, 9(1): 75-84.
[17] LIU H, YAN J, ZHANG D. What is wrong with mesh PCA in coordinate direction normalization[J]. Pattern Recognition, 2006, 39(11): 2244-2247.
[18] MAJEED R, ZOU B, HATEM H. Nose tip detection in 3D face image based on maximum intensity algorithm[J]. International Journal of Multimedia & Ubiquitous Engineering, 2015, 10(5): 373-382.
[19] MUKHERJEE D, BHATTACHARJEE D, NASIPURI M. Curvature based localization of nose tip point for processing 3D-face from range images[C]// International Conference on Communications & Signal Processing. Nanjing, China, 2014: 46-50.
[20] CAO Xudong, WEI Yichen, WEN Fang, et al. Face alignment by explicit shape regression[J]. International Journal of Computer Vision, 2014, 107(2): 2887-2894.
[21] SHENG Kekai, DONG Weiming, KONG Yan, et al. Evaluating the quality of face alignment without ground truth[J]. Computer Graphics Forum, 2015, 34(7): 213-223.
[22] ATTENE M, FALCIDIENO B, SPAGNUOLO M. Hierarchical mesh segmentation based on fitting primitives[J]. The Visual Computer, 2006, 22(3): 181-193.
[23] SHAPIRA L, SHAMIR A, COHEN-OR D. Consistent mesh partitioning and skeletonisation using the shape diameter function[J]. The Visual Computer, 2008, 24(4): 249-259.
[24] LIN Zenggang, GUO Zhe, LIANG Jun. An effective 3D facial segmentation algorithm based on SNAKE model[C]// Proceedings of the Second Sino-Foreign-Interchange Conference on Intelligent Science and Intelligent Data Engineering. Nanjing, China: IScIDE, 2012: 554-561.
[25] CHEN X, GOLOVINSKIY A, FUNKHOUSER T. A benchmark for 3D mesh segmentation[J]. Acm Transactions on Graphics, 2009, 28(3): 1-12.
(编辑 陈灿华)
收稿日期:2017-01-10;修回日期:2017-03-22
基金项目(Foundation item):国家自然科学基金资助项目(61262032, 61562029, 61363073);湖南省自然科学基金资助项目(2015JJ3100) (Projects(61262032, 61562029, 61363073) supported by the National Natural Science Foundation of China; Project(2015JJ3100) supported by the Natural Science Foundation of Hunan Province)
通信作者:李建锋,博士,副教授,从事医学图像处理研究;E-mail: ljf_zy@163.com