优化的BP网络在面部特征点的深度估计
宋乐1, 谷林1, 东虎2, 杜俏俏1     
1. 西安工程大学 计算机学院, 陕西 西安 710048;
2. 西安工程大学 电子信息学院, 陕西 西安 710048
摘要: 针对在单张面部照片的三维人脸建模过程中因平面照片上各特征点的第三维度数据缺失导致的三维人脸失真的现象,利用BP神经网络预测人脸部各特征点的深度信息.将神经网络用作函数映射,网络的输入为人脸的平面特征点坐标,网络的输出则是特征点对应的深度信息.并采取5种不同优化函数辅助训练BP神经网络的各层权值,同时根据实验结果调整隐含层节点数和网络中各项参数,最终构建一个较为优化的BP神经网络用于特征点深度值的估计.结果表明,经Levenberg-Marquardt(L-M)算法优化后的神经网络估计结果精确度较高,同时网络的稳定性较好.利用优化后的BP神经网络得到的特征点的深度信息可用于在三维人脸建模过程中特征点位置的确定上.
关键词: 深度估计     BP神经网络     L-M算法     三维人脸建模     面部特征点    
Depth estimation of facial feature points based on optimized BP neural network
SONG Le1, GU Lin1, DONG Hu2, DU Qiaoqiao1     
1. School of Computer Science, Xi'an Polytechnic University, Xi'an 710048, China;
2. School of Electronics and Information, Xi'an Polytechnic University, Xi'an 710048, China
Abstract: In order to solve the problem that the three-dimensional face distortion is caused by the missing of the third dimension data of the feature points on the single photo, the BP neural network is used to predict the depth information of each feature point of the human face.The neural network is used as the function mapping, the input of the network is the plane coordinate point of the face, and the output is the depth information of the feature point.The weights of each layer of BP neural network are trained by five different optimization functions.The number of hidden layer nodes and the network parameters are adjusted according to experimental results.Finally, a more optimized BP neural network is used to estimate the depth of the feature points.The experimental results show that the neural network estimation result with L-M algorithm is more accurate and the stability of the network is better. Therefore, the depth information of the feature points obtained by the optimized BP neural network can be used to determine the position of the feature points in 3D face modeling.
Key words: BP neural network    L-M algorithm    3D face modeling    facial feature points    
0 引言

随着电子商务的高速发展, 越来越多的学者致力于研究虚拟试衣系统的相关技术, 而真实感三维人脸建模技术[1-3]是其中的重要组成部分.基于特征点的特征建模[4]是目前较为成熟的真实感人脸建模方式之一, 而对于特征点三维坐标的提取则是其前提和关键[5].在人脸的正面照片上, 面部各特征点的平面信息(x, y方向坐标)是比较明确的, 但是深度值(z方向的坐标)却是缺失的, 因此, 获得脸部特征点深度信息(z方向)是特征点提取的难点和关键.

近几年来, 众多学者以单张人脸面部照片为依据, 对面部特征点深度信息的确定进行了广泛的研究.涂意等[6]通过稀疏形变模型与面部特征点匹配的方法, 利用先验三维人脸统计知识, 将三维特征点样本集通过平面投影和线性组合来最优逼近照片的二维特征点, 从而获得面部特征点对应的三维坐标.何理想等[7]利用SFS方法, 根据给定的单张人脸正面照片上各像素点的灰度值及其梯度的相应变化从而获得面部特征点的深度信息, 然而该方法通常是基于理想的成像条件以及假设物体表面是朗伯体反射模型的基础上, 但是在真实成像过程中, 人脸表面的反射特性要更为复杂.基于神经网络的估计方法[8-10]以其高效性和大规模的处理能力, 以及超强的健壮性逐渐被学者认可和采用, 尤其在一些背景知识不清楚、推理规则不明确和输入模式部分损失等问题上的处理具有比较好的性能.郭洋等[11]利用已知的三维人脸数据库, 通过构建神经网络来训练样本, 从而拟合人脸深度信息, 但是神经网络对于各层上初定的权值和阈值的设定非常敏感, 若是所设置的参数不合理, 不仅会导致整个网络的收敛速度变慢而且会使网络陷入局部最优解的情况, 其结果稳定性较差, 从而使得估计值与真实值有较大误差.

因此, 本文在利用神经网络的方法从单张人脸正面照片中估计人脸部特征点深度值时, 针对传统BP神经网络的缺陷, 分别采用梯度下降法、动量梯度下降法等5种不同的优化函数, 用以优化神经网络中的权值和阈值, 然后通过对神经网络的训练结果进行分析比较, 选取较优的一种优化算法用于神经网络中以估计人脸特征点的深度值.

1 实验 1.1 BP神经网络

BP神经网络的拓扑结构包含输入层、隐含层、输出层.该网络的主要特点是信号向前传递, 误差反向传播, 在向前传递中, 输入信号从输入层经隐含层逐层处理, 直至输出层.每一层的神经元状态只影响下一层神经元状态.如果输出层得不到期望输出, 则转入反向传播, 根据预测误差调整网络的权值和阈值, 从而使BP神经网络预测输出不断逼近期望输出.BP神经网络可以看成一个非线性函数, 输入值和预测值可以看成函数的自变量和因变量, 当输入节点数为n, 输出节点数为m时, 该网络表达了从n个自变量到m个因变量的函数映射.BP神经网络采用全局逼近的方法实现网络的预测输出, 实现原理较为简单.

1.2 建立网络结构

实验数据是在CASIA三维人脸数据库中分别挑选出120个人脸样本中鼻尖处特征点的三维坐标(x, y, z), 120组特征点样本中训练BP神经网络的样本数是100组, 其余20组用来测试网络的预测能力.

首先, 为了避免不同数量级之间数据的相互影响, 对所采集到的样本数据进行归一化处理.在此采用Matlab中自带的数据归一化函数mapminmax(A), 其公式为

y=(ymax-ymin)×(x-xmin)/(xmax-xmin)+ymin.

其中:x, y分别为样本中数据归一化前后的值;xmin, xmax分别为归一化前样本数据中最小值和最大值;ymin, ymax分别为归一化后样本中的最小值和最大值.数据归一化后范围为[0, 1], 故ymin=0, ymax=1.

其次, 建立BP神经网络.本文采用的BP神经网络结构为:输入层对应样本中单个特征点的二维坐标数据, 故有2个神经单元, 可表示为(x, y); 通过试凑及实验效果确定隐含层为8个神经单元, 根据网络中数据的收敛情况可适当地增加或者减少隐含层神经元个数; 输出层为神经网络训练出的该特征点的深度数据, 所以包含1个神经单元, 可以用z表示.在网络训练过程中, 通过对不同的学习率η和动量因子α的取值进行考察, 确定神经网络模型的参数η=0.7, α=0.9.设置网络的最大失败次数max_fail=5, 即在迭代运算中允许网络的最大出错次数为5次,5次则认为网络学习失败,停止计算.规定网络训练中的目标误差为G=0.000 1, 即在迭代计算时误差值G<0.000 1时, 认为学习完成, 停止计算.

然后, 确定训练函数.网络的拓扑结构搭好后就需要考虑网络中各层权值和阈值的确定, 在BP神经网络中分别采用5种不同训练函数对网络中的权值和阈值进行优化, 其训练结果如表 1所示.从表 1可以看出,在训练过程中批梯度下降算法和动量批梯度下降法虽然没有受到网络中参数影响而提前结束训练, 但是其误差和训练精度上与其他算法相比都不是最佳的; 有弹回的BP算法迭代的次数较少, 但是网络的训练速度非常慢, 通过增加隐含层个数训练后, 时间上有所加快, 但是迭代次数均达到1 200次以上, 精度和误差尚未降低; 贝叶斯正则化算法虽然实现了误差最小情况, 但是从其迭代次数和精度上看都没有优于L-M算法, 而且次数多于预设值,max_fail达到饱和意味着网络在学习过程中出现次数多于预设值,网络学习失败,从而提前结束训练.达到饱和意味着随着迭代次数的增加网络中的误差处于增加的状态, 从而网络提前结束训练.综合各项考虑, 最后采用L-M训练函数进行神经网络的训练, 该算法是梯度下降法与高斯-牛顿法的结合算法, 既具有高斯-牛顿法的局部收敛性, 又具有梯度下降法的全局特性, 其基本思想是迭代过程中允许误差沿着恶化方向进行搜索, 同时通过在梯度下降法与高斯-牛顿法之间的自适应调整, 以达到优化网络权值和阈值的目的.

表 1 不同训练函数结果对比 Table 1 Comparison of different training function results
训练函数精度误差迭代次数时间/s终止条件
批梯度下降算法0.000 5650.010 910 0008达到误差
动量批梯度下降法0.000 4210.012 810 0007达到误差
有弹回的BP算法0.000 2990.004 732516梯度饱和
L-M0.000 2010.004 611827达到误差
贝叶斯正则化算法0.000 2700.004 31 1656max_fail饱和
2 结果与讨论

网络初始化后, 得到网络训练过程及其结果.图 1(a)所示为BP神经网络训练过程的收敛情况, 实线表示误差的收敛过程, 水平方向的虚线表示目标误差的位置, 垂直方向的虚线表示训练误差达到目标误差时神经网络的代数,可以看出网络训练到大约800代时其误差开始接近于预设误差, 在网络训练到1 182代时误差到达9.986 6×10-5, 小于预设误差0.000 1, 训练结束; 图 1(b)所示为测试样本中特征点的真实深度值与经过BP神经网络训练后的特征点的估计值之间的对比;图 1(c)为神经网络预测误差率, A点处约为-0.17,误差最大, 其余误差范围在[-0.15, 0.1]之间, 实际输出的平均误差为0.004 6, 误差趋势变化不平稳, 网络的训练过程不稳定; 图 1(d)所示为BP神经网络训练参数, 该网络的训练采用梯度下降法Levenberg-Marquardt(L-M)算法优化BP神经网络求解其权值和阈值, 训练代数为1 182, 训练时间为7 s, 由于网络的误差达到预设值, 从而使得网络的训练终止, 并且L-M算法梯度未达到预定值.

图 1 BP神经网络训练结果 Figure 1 Training results of BP neural network

调试L-M算法优化后的BP神经网络的隐含层节点数.将隐含层节点数由原来的8调至10, 其训练结果与8个节点时的网络相比, 实际输出的平均误差为0.004 2.从图 2(a)误差率曲线可以看出最大误差率为-0.111, 与图 1(c)的误差率曲线相比, 网络在训练过程中不稳定, 曲线的变化幅度较大.图 2(b)中所示为调整隐含层节点后网络训练的结果, 训练代数由1 182降至902, 并且在误差达到预设误差时所用时间缩短到5 s, 由此, 训练速度有所提高.从图 1(c)看出, 预测误差率的曲线出现了较为明显的极值, 说明网络的训练过程不是很稳定, 其原因可能为网络规模不够大, 导致训练网络中对信息的自学习能力不够强, 从而会使得网络出现不稳定性.因此, 为了提高网络的稳定性, 将训练样本数扩大到原来的3倍, 经神经网络训练后其预测误差率如图 3(a)所示, 可见其误差范围为[-0.1, 0.1], 与图 1(c)中相比, 明显的极值开始趋于平缓, 由此网络的稳定性有所提高.图 3(b)为增加训练样本后的网络在训练结束时的参数变化, 其迭代次数为807, 训练时间为5 s, 因此修改后的神经网络在性能上要优于图 1中所示结果的神经网络.

图 2 增加网络节点的训练结果 Figure 2 Training results after the network nodes increase
图 3 增大网络规模训练结果 Figure 3 Training results after network scale increase

通过分析实验结果, 优化的BP神经网络最终决定采用综合性能较好的L-M优化算法优化BP神经网络的权值和阈值, 网络的隐含层神经单元个数设置为10个, 训练样本数为300组, 测试样本为20组, 预设误差为0.000 1, 网络中的学习率和动量因子保持不变.从而以设置好的神经网络来预测面部各个特征点的深度信息, 为三维人脸建模在特征点的确定上做了定量保证.

3 结论

(1) 在MATLAB仿真条件下, 对5种优化算法从网络训练精度、实际输出与期望输出的误差、训练过程所用时间等方面进行分析对比, 选择综合性能较优的L-M算法用于神经网络中优化权值和阈值.

(2) 根据L-M算法优化后的神经网络的训练结果,适宜调整隐含层节点数和网络中的配置参数, 可有效提高网络的性能, 同时一定范围内扩大网络的训练规模,增强了网络的稳定性.

(3) 利用优化后的BP神经网络所得到的特征点的深度信息可用于在三维人脸建模过程中特征点位置的确定上.

参考文献
[1] 邓秋平, 赵宇明. 基于单幅正面照片的三维人脸重建方法[J]. 计算机工程, 2010, 36(20): 176-178.
DENG Qiuping, ZHAO Yuming. 3D face reconstruction method based on single frontal photo[J]. Computer Engineering, 2010, 36(20): 176-178. DOI:10.3778/j.issn.1002-8331.2010.20.049
[2] KEMELMACHER S I, RONEN B. 3D face reconstruction from a single image using a single reference face shape[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(2): 394-405. DOI:10.1109/TPAMI.2010.63
[3] 熊平, 卢烨. 基于单张照片的三维人脸重建优化算法[J]. 计算机应用, 2013, 33(8): 2359-2361.
XIONG Ping, LU Ye. Modified 3D facial reconstruction algorithm based on a single photo[J]. Journal of Computer Applications, 2013, 33(8): 2359-2361.
[4] 杨颖. 三维人脸建模及特征提取技术研究[D]. 西安: 西北大学, 2008: 1-67.
YANG Ying.Research on 3D face modeling and feature extraction[D].Xi'an:Northwest University, 2008:1-67. http://cdmd.cnki.com.cn/Article/CDMD-10697-2008077403.htm
[5] 李月龙, 靳彦, 汪剑鸣, 等. 人脸特征点提取方法综述[J]. 计算机学报, 2016, 39(7): 1356-1374.
LI Yuelong, JIN Yan, WANG Jianming, et al. Face feature points extraction:A review[J]. Chinese Journal of Computers, 2016, 39(7): 1356-1374. DOI:10.11897/SP.J.1016.2016.01356
[6] 涂意, 赵群飞, 卢芳芳. 基于单张人脸图片和一般模型的三维重建方法[J]. 计算机应用研究, 2009, 26(10): 3998-4000.
TU Yi, ZHAO Qunfei, LU Fangfang. 3D face reconstruction based on generic model and single image[J]. Application Research of Computers, 2009, 26(10): 3998-4000. DOI:10.3969/j.issn.1001-3695.2009.10.116
[7] 何理想. 基于SFS方法的单幅图像的三维原型重建的研究[D]. 沈阳: 沈阳工业大学, 2009: 67-87.
HE Lixiang.Research on 3D reconstruction of a single image based on SFS methods[D].Shengyang:Shenyang University of Technology, 2009:67-87. http://cdmd.cnki.com.cn/Article/CDMD-10142-2009098810.htm
[8] 张旭兰. 基于BP人工神经网络的车牌字符识别优化算法[J]. 计算机工程与应用, 2012, 48(35): 182-185.
ZHANG Xulan. Optimized character recognition algorithm based on BP artificial neural network[J]. Computer Engineering and Applications, 2012, 48(35): 182-185. DOI:10.3778/j.issn.1002-8331.1108-0061
[9] YANG Xiaoling, ZHOU Jianzhong, DING Jiehua, et al. Flood disaster evaluation based on improved BP neural network model[J]. Applied Mechanics and Materials, 2012, 2025(220): 2462-2465.
[10] ZHAO Hong. Character image recognition based on the improved BP neural network[J]. Applied Mechanics and Materials, 2011, 1287(58): 2655-2658.
[11] 郭洋. 基于神经网络的单张照片三维人脸建模[D]. 北京: 北京邮电大学, 2011: 1-74.
GUO Yang.3D face modeling from a single photo based on neural network[D].Beijing:Beijing University of Posts and Telecommunications, 2011:1-74. http://cdmd.cnki.com.cn/Article/CDMD-10013-1011121537.htm
西安工程大学主办。
0

文章信息

宋乐, 谷林, 东虎, 杜俏俏
SONG Le, GU Lin, DONG Hu, DU Qiaoqiao
优化的BP网络在面部特征点的深度估计
Depth estimation of facial feature points based on optimized BP neural network
西安工程大学学报, 2017, 31(4): 551-555
Journal of Xi′an Polytechnic University, 2017, 31(4): 551-555

文章历史

收稿日期: 2017-03-22

相关文章

工作空间