一种在复杂光照条件下的人脸跟踪算法

齐永锋, 王梦媛, 卢晨鸣

齐永锋, 王梦媛, 卢晨鸣. 一种在复杂光照条件下的人脸跟踪算法[J]. 红外技术, 2018, 40(12): 1188-1192.
引用本文: 齐永锋, 王梦媛, 卢晨鸣. 一种在复杂光照条件下的人脸跟踪算法[J]. 红外技术, 2018, 40(12): 1188-1192.
QI Yongfeng, WANG Mengyuan, LU Chenming. Face Tracking Algorithm under Complicated Illumination Conditions[J]. Infrared Technology , 2018, 40(12): 1188-1192.
Citation: QI Yongfeng, WANG Mengyuan, LU Chenming. Face Tracking Algorithm under Complicated Illumination Conditions[J]. Infrared Technology , 2018, 40(12): 1188-1192.

一种在复杂光照条件下的人脸跟踪算法

基金项目: 甘肃省高等学校科研项目(2016A-004)
详细信息
  • 中图分类号: TP181

Face Tracking Algorithm under Complicated Illumination Conditions

  • 摘要: 针对光照以及人脸的尺度变换、遮挡等问题,提出一种基于多尺度韦伯脸与实时压缩在复杂光照情况下的跟踪算法.对实时压缩跟踪方法的理论模型的认真分析与研究,提出采用光照预处理方法来提高复杂光照情况下跟踪过程中目标信息的采集精准度.在目标检测跟踪过程中,与经典的实时压缩跟踪算法相比,基于多尺度韦伯脸与实时压缩的人脸跟踪算法在复杂光照情况下跟踪性能得到明显提升,能较好应对人脸尺度变换及局部遮挡的情况.
  • 近年来三维人脸技术在计算机视觉中扮演着重要角色,可识别不同性别、年龄的面部细节,因此在生物识别领域也有着广泛的应用[1-2]。目前常见的三维人脸重建方法主要有飞行时间、立体视觉和结构光扫描3种,而结构光具有侵入性与外部刺激性更小、更隐蔽的优点。结构光可将编码的图案投影到被测物体的表面上形成一系列编码的特征点,然后用相机捕获编码图案信息覆盖的表面图像。所述编码图案通过对所述对象的表面形状进行调制而变形。编码图像可根据标定参数解码得到三维物体的表面信息,无需通过几何约束条件就能得到三维点云,从而实现三维重建[3]。立体视觉三维重建方法对于平滑、特别是缺少特征的区域容易产生孔洞,而结构光可重建均匀的点云,因此越来越多研究开始采用结构光进行三维重建[4]。根据结构光重建的原理,惠宏超等人[5]提出一种基于数字光栅的三维测量系统,通过采集不同频率的变形相移条纹图,利用相移法和多频外差法得到绝对相位,结合相位匹配重建出复杂异构铸件的三维模型。

    为研究散斑结构光和条纹结构光对三维人脸模型的完整性和光滑度影响,本文通过使用一种基于结构光和双目相机的三维人脸重建系统,即利用双目相机系统中的投影仪投射出结构光[6-7],并采集每种结构光图像打在人脸的图片。通过计算对双目体系中的左右相位图进行三维重建[8],得到深度图。最后转换为点云数据,生成三维人脸模型。

    本文算法流程如图 1所示。投影机在物体表面投射条纹光栅,左右红外相机同时抓拍储存带有变形光栅的人脸图片。采集到的图片经过计算条纹被物体高度调制以及四步移相法得到该处的包裹相位值。之后使用三频外差法求解出绝对相位。将其输入进立体匹配中计算视差图,求出深度图,最后转为点云图获取平滑的人脸三维数据。

    图  1  建模流程图
    Figure  1.  Reconstruction flow chart

    使用投影仪投射条纹图在物体上时,相机可以采集到物体三维漫反射表面,之后使用正弦最小二乘拟合。在理想状态下,条纹可由下式表示:

    $$ {I_n}\left( {x, y} \right) = A\left( {x, y} \right) + B\left( {x, y} \right)\cos \left[ {\varphi \left( {x, y} \right) + {\rm{ \mathsf{ π} }}N / 2} \right] $$ (1)

    式中:A(x, y)是条纹图像的背景灰度值,取决于物体表面各向异性的折射率。B(x, y)为调制强度,即光强差,取决于投影仪投射的条纹图像亮度差。φ(x, y)是条纹变形的相位函数,包含了物体的表面三维信息。由于以上3个变量都是未知量,虽然当N≥3的时候理论上可解,但为使精度得到保证,一般采取N≥4,将方程组转换为超定方程组。通过三角函数展开,待求方程组可转化为如下的矩阵:

    $$ \left( {\begin{array}{*{20}{c}} 1&{\cos \left[ {0 \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]}&{\sin \left[ {0 \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]} \\ 1&{\cos \left[ {1 \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]}&{\sin \left[ {1 \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]} \\ 1&{\cos \left[ {2 \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]}&{\sin \left[ {2 \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]} \\ \vdots & \vdots & \vdots \\ 1&{\cos \left[ {(N - 2) \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]}&{\sin \left[ {(N - 2) \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]} \\ 1&{\cos \left[ {(N - 1) \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]}&{\sin \left[ {(N - 1) \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right]} \end{array}} \right)\left( {\begin{array}{*{20}{l}} {A(x, y)} \\ {B(x, y) \cdot \cos [\varphi (x, y)]} \\ { - B(x, y) \cdot \sin [\varphi (x, y)]} \end{array}} \right) = \left( {\begin{array}{*{20}{c}} {{I_0}} \\ {{I_1}} \\ {{I_2}} \\ \vdots \\ {{I_{N - 2}}} \\ {{I_{N - 1}}} \end{array}} \right) $$ (2)

    通过最小二次乘法求解超定方程组可得方程最优解可由下式表示:

    $$ A(x, y) = \left[ {\frac{{\mathop \sum \nolimits_{n = 1}^N {I_n}(x, y)}}{N}} \right] $$ (3)
    $$ B(x, y) = \frac{2}{N}\sqrt {{{\left[ {\mathop \sum \limits_{n = 1}^N {I_n}(x, y)\sin \left( {\frac{{2{\rm{ \mathsf{ π} }}n}}{N}} \right)} \right]}^2} + {{\left[ {\mathop \sum \limits_{n = 1}^N {I_n}(x, y)\cos \left( {\frac{{2{\rm{ \mathsf{ π} }}n}}{N}} \right)} \right]}^2}} $$ (4)

    对应的条纹相位值可由下式得到:

    $$ \varphi (x, y) = \arctan \left[ {\frac{{\sum\limits_{i = 0}^N {{I_i}} \cdot \sin \left( {i \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right)}}{{\sum\limits_{i = 0}^N {{I_i}} \cdot \cos \left( {i \cdot \frac{{2{\rm{ \mathsf{ π} }}}}{N}} \right)}}} \right] $$ (5)

    通过公式(3),(4),(5)可以求得各种相移法,根据相应的使用场景选用不同的方法。本文选用的是四步相移法如图 2所示。由于发射的条纹相位不同,会有四幅不同阴影的人脸图像用于计算相位值。在不损失重建速度的情况下依旧能保证良好的精度。

    图  2  四步相移法
    Figure  2.  Four-step phase shifting profilometry

    由于之前根据相移法求出的相位差具有非周期性,所以需要使用解包裹来建立具有周期性、连续性的相位图。一般使用空间相位展开或时间相位展开。空间相位展开即当移动到新的周期时,通过比较像素点的截断相位值,对下一周期的相位进行补偿,使之前跳跃的周期变为连续的周期。但该方法精度不高,容易产生误差。时间相位展开可以通过投射不同的条纹图在辅助定位,从原理上避免了误差传播,其优越的精确性得到了更多人的认可。常用的时间相位展开方法有格雷编码法[9]和多频法[10]。由于格雷编码法在较大场景应用时需增加格雷编码的位数,即增加采集成本。所以本文采用三频法,通过投射3种频率的条纹图,利用之前的相移法求解出相位值,然后计算出绝对相位值。

    三频外差法就是使用两次双频外差法推导出相应的绝对相位。而双频外差法根据外差原理叠加两种不同频率的相位函数,得到一个频率相对更低的相位函数,如图 3所示。根据上文介绍的四步相移法得到的相位值φ1φ2以及对应的波长λ1λ2

    图  3  外差法
    Figure  3.  Heterodyne method

    相位值为:

    $$ {\varphi _{1, 2}} = \left\{ {\begin{array}{*{20}{c}} {{\varphi _1} - {\varphi _2}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\varphi _1} \geqslant {\varphi _2}} \\ {1 + {\varphi _1} - {\varphi _2}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\varphi _1} < {\varphi _2}} \end{array}} \right. $$ (6)

    波长(相位差周期)为:

    $$ {\lambda _{1, 2}} = \frac{{{\lambda _1}{\lambda _2}}}{{{\lambda _2} - {\lambda _1}}} $$ (7)

    绝对相位为:

    $$ {\varPhi _{1, 2}}{\text{ = }}\left\{ \begin{gathered} 2{\rm{ \mathsf{ π} }}\left( {\frac{{{\lambda _2}\left( {{\varphi _1} - {\varphi _2}} \right)}}{{{\lambda _2} - {\lambda _1}}}} \right){\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\varphi _1} \geqslant {\varphi _2} \hfill \\ 2{\rm{ \mathsf{ π} }}\left( {\frac{{{\lambda _2}\left( {1 + {\varphi _1} - {\varphi _2}} \right)}}{{{\lambda _2} - {\lambda _1}}}} \right){\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\varphi _1} < {\varphi _2} \hfill \\ \end{gathered} \right. $$ (8)

    根据公式(3)推出φ1, 2φ2, 3再次利用双频外差法计算出最终的绝对相位值Φ1, 2, 3

    三维重建可以分为两步:第一步找出两幅图像的对应点;第二步根据对应点的绝对相位值和标定参数计算得到该点深度值建立视差图。而双目立体视觉方法通过模拟人眼建立模型,从左右眼球接收空间点上同一位置,在视网膜上成像出不同的位置,再根据人脑对图像进行融合重建得到深度感知。第一步的对应点可以利用左右相机得到的条纹图像生成相位图得到绝对相位,然后使用极线约束原则计算出视差图完成第二步,如图 4所示。

    图  4  三维重建
    Figure  4.  3D reconstruction

    由于相机的外部参数即公式(9),(10)中的相机焦距f,物距z,平移参数t,旋转平移矩阵R已知。可根据标定[11]轻松得到相机的几何关系。

    $$ x = \frac{f}{z}X $$ (9)
    $$ \left[ {\begin{array}{*{20}{c}} X \\ Y \\ Z \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} \boldsymbol{R}&t \\ {{0^{\text{T}}}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{l}} {{X_w}} \\ {{Y_w}} \\ {{Z_w}} \\ 1 \end{array}} \right] $$ (10)

    本文实验算法实现基于C++语言与Visual Studio 2013。硬件使用分辨率为1280×1024(像元4.8 μm);靶面为1/2 in;焦距为f=8 mm;单帧曝光时间为2 ms;频率为60 fps的2个红外相机,照明波长为730 nm;条纹模板切换时间为10 ms的2个彩色光机作为两套系统的双目采集相机。具体系统参数有基线距离100 mm,视场范围384 mm×307 mm,人脸区域像素470×650(约30.5万)。彩色光机作为系统的纹理光机用于投射条纹。捕获结构光条纹帧数为12帧,其中红外系统投射红外条纹,可见光系统投射可见光条纹。在进行实验前通过相机标定法对双目相机进行标定,从而获取图像的校正参数如图 5所示。

    图  5  红外设备系统图
    Figure  5.  Infrared device system diagram

    首先使用哑铃规作为测试标件对其半径及球心距(左右球直径分别为50.783 mm和50.776 mm,球心距为100.005 mm)进行三维测量,通过对哑铃规表面球体的点云数据进行最小二乘球面拟合,得到各个球的半径,之后再利用球心坐标计算得到标准哑铃规的球心距。比较拟合后的双球哑铃规的A球直径、B球直径、A-B球心距与实物的差值,评价测量精度。从表 1中可以看出球心距误差在0.1%以内。

    表  1  条纹测量结果
    Table  1.  Measurement of binocular Infrared fringe
    A diameter/mm B diameter/mm Center distance /mm A diameter error/mm B diameter error/mm Center distance error/mm Center distance error ratio/%
    50.716 50.800 100.045 0.066 0.024 0.040 0.040
    50.836 50.778 100.030 0.054 0.011 0.025 0.025
    50.767 50.767 100.042 0.016 0.009 0.038 0.038
    下载: 导出CSV 
    | 显示表格

    之后进一步地,选择一个人脸模型(精度0.001 mm)作为测量物体进行测量。图 6展示了人脸模型以及使用了Geomagic Studio软件重建得到的三维人脸模型。对人脸模型图像重建模型的点云数据与用groudtrudh(超高精度设备)重建的三维标准数据进行对比分析,利用Geomagic Studio软件求得各点测量值与真实值相减得到的绝对误差值后再求平均值得到平均绝对误差,结果如表 2所示。

    图  6  人脸模型对比
    Figure  6.  Comparison of face models
    表  2  人脸模型测量结果
    Table  2.  Measurement of face modeling
    Measuring distance/mm Mean absolute error of the fringe model /mm
    550 0.097
    下载: 导出CSV 
    | 显示表格

    此外,图 7还展示了分别使用两种方法对真实人脸重建的结果。其中可见光重建人脸的眼睛、鼻翼、眉毛处存在比较严重的空洞,其表面较为粗糙。而条纹重建的人脸模型具有较强真实感,平滑度较高,空洞相对较小。

    图  7  真实人脸重建对比
    Figure  7.  Comparison of real face reconstruction

    本文通过投射红外条纹,利用四步相移法计算出包裹相位,然后使用三频外差法解包裹相位,同时用双目视觉计算视差图,最终得到高精度的三维人脸模型。根据实验结果证明:红外条纹结构光对三维物体的测量误差在0.1%以内,人脸精度在0.1 mm内,在眉毛、眼珠、头发处等弱纹理区数据缺失相比可见结构光较少。可以看出三维人脸模型面部真实感较强,平滑度较高,但在环境光照多变的场合下,容易造成人脸数据的缺失。此外,在采集图像时,人脸一旦出现一些动态变化,也会对三维数据精度产生较大影响。这也是本文之后的研究方向。

  • 期刊类型引用(1)

    1. 夏晨旭,郝群,张一鸣,张韶辉,李凡飞,杨智慧,孙建坤. 基于结构光投影三维重建的人脸特征检测. 激光与光电子学进展. 2023(22): 186-192 . 百度学术

    其他类型引用(2)

计量
  • 文章访问数:  133
  • HTML全文浏览量:  54
  • PDF下载量:  15
  • 被引次数: 3
出版历程

目录

/

返回文章
返回