论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》

(SCI二区)2019

Abstract

三维(3D)人脸重建可以采用基于测量的方法或基于模型的方法。前者需要特殊的硬件或设备,如结构化光设置。本文提出了一种基于测量的三维人脸重建方法,即一种特殊的结构光时空散斑投影方法。在此基础上,提出了一种新颖、高效的时空立体重建方法,实现了快速、准确的三维人脸重建。为了提高整体的匹配效率,我们的方案由一系列优化策略组成,包括基于人脸裁剪的立体匹配策略、应用于人脸区域的粗到精立体匹配策略以及用于加速匹配成本计算的时空灰度图像(STII)。在此基础上,本文提出的方法可以在普通PC上以数百毫秒的时间重建三维人脸,并对其性能进行了定性和定量的验证。

1. Introduction

三维形状测量与重建一直是计算机视觉领域的一个长期问题。具体来说,由于三维人脸在医学整形外科、娱乐游戏、三维人脸识别、艺术渲染等方面有着广泛的应用,因此三维人脸重建得到了广泛的关注。3d人脸应用的最新进展是人脸识别和验证,由face id首创。Face ID是苹果公司为其产品iphone X设计和开发的人脸识别系统。

基于图像的三维人脸重建一般有两个方向。一个是从测量的角度,这需要特殊的硬件或设备。从一般的三维重建出发,适用的技术包括结构化光[1,2]、飞行时间(TOF)[3]和双目立体视觉[4-6]。结构光技术通过使用投影光模式和摄像机系统来执行侦察结构。TOF基于特殊的传感器,计算发射到接收之间的时间。根据时间,可以计算出物体的深度,双目立体利用两个或多个摄像机,从三角测量中重新构造形状7]。因为至少使用了两个已知的场景视点,所以确定视点之间的正确对应关系是基本的挑战,即立体匹配[4,5,8–13]。

三维人脸重建的另一个方向是从基于模型的角度来解决这一问题,它对一个物体或场景施加一定的假设,使一些模型可以被构造。运动形状[14],阴影[15],消失点16,离焦17,18]和纹理19被广泛研究。例如,在[19]中,shape from texture假定场景被均匀的纹理覆盖,而shape from shading通常假定lambert surface[15]用于灯光反射。沿着这个方向的另一个分支是从单视图2D图像或多视图2D图像(例如mugshot[20])推断出3D人脸。大多数这些方法借助于复杂的3d面部模型(例如3d变形模型,3dmm[21,22]),并生成、合成或回归[23]接近给定2d面部图像的新3d面部形状。综上所述,假设需要用属于这个方向的方法来进行,而这些假设往往在实际场景中并不总是成立。因此,对于鲁棒稳定的人脸重建,从上述测量角度对三维人脸侦察结构进行处理,如AppleFace iddo可能是一款足以满足实际应用需要的软件。

本文解决的问题属于第一类,即从测量角度重建三维人脸。具体来说,我们的工作涉及到结构光和双目立体视觉。由于人脸的大部分区域都具有平滑的纹理,因此我们投射出结构化的光来增强人脸表面的纹理信息,以方便后续的立体匹配。我们要解决的另一个问题是效率问题,因为在实际应用中,快速算法总是被期望的,并且将极大地改善用户体验。本文提出了一种三维面元结构的快速立体匹配方案,硬件平台如图1所示。我们在本文中使用的结构光模式是散斑模式[24-27]。如图1所示,相机1和相机2构成了一个双目相机系统。散斑通过散斑投射器投射到脸上。该方案利用时空投影技术,将不同斑纹图案等高线投影,并在两帧图像同步的时刻,严格地同时从两个不同的角度捕捉两幅散斑图像。采集到的散斑图像被反馈给处理系统,用于进一步的立体匹配和三维形状恢复。针对空时散斑投影下三维人脸的快速重建问题,采用了一系列优化策略,提高了整个系统的计算效率,包括 i)基于人脸裁剪的立体匹配,ii)应用于人脸区域的粗到精立体匹配策略,以及 iii)用于加速成本计算的时空积分图像(STII)。本文介绍了一种新颖、高效、实用的融合上述人脸重建技术的三维人脸重建方案。最好的是,这样的方案从来没有在文献中报道过。
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》
论文的组织如下。第二节介绍了相关工作。第3节详细介绍了建议的方案。第四部分包括实验结果、性能评价和比较。最后,得出结论第五节。

2. Related work

如前所述,本文从测量角度研究了三维人脸重建问题。因此,对这些基于模型的方法的文献综述超出了本文的研究范围。下面,我们从时空立体和立体匹配两个方面来回顾与我们工作非常相关的相关工作。

2.1 Space-time stereo

时空立体是空间立体(如传统被动立体)和时间立体(如编码结构光)的结合技术。它的关键是在空间和时间域中找到相应的特征。空时立体[7]有一个通用的框架,读者可以参考更多的细节。空时立体的优点是它能比传统的空间立体恢复深度图具有更高的精度和鲁棒性。为了创建时间特征,不同的结构光被照亮到一个物体上,在不同的时间产生不同的模式。长期以来,空时散斑投影在这一领域得到了广泛的研究。在这个主题下,Wiegmann等人[28]提出了一种快速、准确的人脸测量方法。在他们的方法中,几个随机模式被投影来编码一个目标点。相关技术考虑到只有一个像素的面积用于通信。Schaffer等人开发了一种高速投影系统,该系统能以很高的速率投射出组织散斑图案,重建精度优于以前的条纹投影方法。为了提高三维重建的投影速度,采用了时域立体相对关系进行三维重建。实际上,他们的工作主要集中在系统设计上,而不是立体算法。刘等人。
[29]描述了一个三维扫描设置,其中两个摄像机同时捕获投射到目标物体上的带通二进制随机模式。他们的重点是利用时间相关技术来确定两个相机的像素点之间的立体对应关系。上述文献均基于散斑投影的时间立体。

最近,Harendt等人提出了动态场景的时空相关性,使其时空支持局部地适应被测对象的运动。运动是通过对相关的图像区域进行时间上的扭曲来补偿的。与我们类似的工作是Fan等人的[31],它也处理通过时空散斑投影的三维人脸重建。他们提出了一种利用带限二值模式(BBLP)获得三维彩色人脸的主动双目设置。采用时空相关算法计算立体对应。而[31]更侧重于描述整个系统的设置,我们的工作集中在算法管道及其效率。事实上,正如[31]报道的,重建一张脸需要数百秒。相比之下,我们的方案只需要几百毫秒在一个正常的PC上重建一个面孔,这是三个数量级的速度[31]。

2.2. Stereo matching

立体匹配通常是在给定左图像中的一个点时,在右图像中找到一个对应点。对于校正后的图像对,可以沿水平图像轴进行立体匹配。将给定的左侧点的x坐标表示为xlx_lxl​,将右侧找到的匹配点(同源点)的x坐标表示为xrx_rxr​, d=xlxrd = x_l - x_rd=xl​−xr​称为视差。立体匹配可以在被动和主动三维重建的情况下进行[7]。值得注意的是,它长期以来被广泛地研究在被动三维重建的情况下,试图找到匹配的图像特征之间的一对一般的图像,没有任何已知的先验知识。立体匹配包括四个典型步骤:匹配代价计算、代价聚集、视差计算和视差细化。在[32]中可以找到匹配成本的全面调查。优化成本聚集和视差计算一直是研究的热点。例如,[5]提出了一种采用广告普查成本和基于交叉的成本聚合的立体方法。[4]提出了半全局匹配(SGM),将成本聚合和视差计算集成到一个统一的基于优化的框架中。该框架通过相互信息进行性能匹配,并通过近似全局平滑约束实现优化。在[8]中采用了一种快速的立体匹配方案,首先找到一组稀疏的、能够可靠匹配的支持点。然后使用这些支持点来探索视差搜索空间。[9]提出了一个通用的跨尺度成本聚合框架,以实现成本聚合中的多尺度交互。在[11]中描述了一种保证非局部和多尺度属性的分段树结构,用于非局部匹配成本聚合。[12]作为一种边缘保持的滤波方法,实现了多代价的聚集,并通过引导滤波实现。[13]引入了一种新的倾斜平面模型,在一定程度上缓解了基于局部窗口匹配重构倾斜曲面的局限性。本文提出的人脸重建方法主要针对主动场景中的立体匹配,与上述工作密切相关。

3. The proposed scheme

3.1 System overview

图2示出了所提出方案的框图。用同步双目摄像机(分别为左摄像机和右摄像机)拍摄斑点投影下的多对人脸图像。由于使用zhang方法133预先校准了双目摄像机,因此基于摄像机参数相应地校正图像对,以确保点的外极线仅仅是与点34、35具有相同行坐标的线。接下来,我们对与左右摄像头相关联的摄像头进行人脸检测,以选择感兴趣的区域(ROI)进行立体匹配。这两个ROI随后被用于从原始图像对中裁剪子图像以形成新的图像对,这些图像对随后被所提出的立体匹配算法处理。该算法利用了从粗到细的策略(图2中的红色虚线矩形)以及用于快速匹配成本计算的积分图像,从而生成用于3d重建的视差图。最后,根据得到的视差图和预先确定的摄像机参数计算出人脸的三维形状。
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》

3.2. Face-cropping -based stereo matching

由于我们只对构建面部的三维形状感兴趣,而不是在摄像机前做其他事情,因此对整个图像执行立体算法是不必要的。在这项工作中,我们使用从人脸检测衍生的边界框来选择子区域以进行后续的立体匹配。这一步,作为基于面部裁剪的立体匹配的开始,过滤掉无关的背景,大大降低了计算成本和所需的内存,因为在我们当前的设置中,面部区域通常是整个场景的一个相对较小的部分(大约400×400)(摄像机分辨为2688×1520)。由于立体匹配的目标是在人脸上找到同源点,所以首先可以在裁剪后的图像对中找到同源点。然后,通过添加人脸矩形之间的位移,将结果的差异反向投影到原始图像空间的差异上。如图3所示,其中d表示原始图像空间中的视差,d’表示裁剪后的子图像空间中的视差。在人脸检测方面,我们采用了基于深度学习的人脸检测工具MTCNN[36],在精度和速度上都有一定的优势。在投射多个斑纹图案和捕捉纹理图像时,要求人脸是静止的。因此,我们只对纹理图像对(左右纹理图像)进行人脸检测,并使用检测框在相应的散斑模式图像中裁剪子区域。值得注意的是:1)当多个人脸出现在摄像机面前时,我们只在假设离摄像机最近的人脸是目标的情况下裁剪最大的人脸框;2)我们对检测到的脸书进行了扩展,并确认在重建过程中可以覆盖整个人脸区域,包括前额和下巴。3)图像校正后,对应搜索可简化为沿图像行进行搜索。因此,我们保持裁剪区域的上下边界在水平方向上对齐,如图3中的绿色虚线所示。
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》

3.3 Coarse matching stage

在立体匹配过程中,以右图像空间为基准,计算左图像空间的视差图。这意味着我们需要搜索左图像空间中的每个像素在右图像空间中的对应点(图3)。首先在左相机的图像空间(校正和未失真)中定义垂直和水平距离为ScS_cSc​(实际上ScS_cSc​=17)的点网格。这一阶段只计算这些网格点的视差,得到的视差图较小,其比例尺约为原始图像比例尺的1/Sc1 / S_c1/Sc​。我们的粗匹配是基于在patch匹配中广泛使用的“相干假设”[37-40],即物体表面平滑变化,视差值也应平滑变化。因此我们认为:1)网格点的视差可以用来估计像素之间的视差。2)通过相邻网格点的视差可以有效地推断网格点的视差。

在此基础上,我们的粗匹配阶段按照算法1进行:对于每个要匹配的网格点p,假设视差范围为[dcmin,dcmax][d_c^{min}, d_c^{max}][dcmin​,dcmax​],水平坐标ppp为xpx_pxp​,通过在右图像空间的间隔[xpdcmax,xpdcmin][x_p-d_c^{max}, x_p-d_c^{min}][xp​−dcmax​,xp​−dcmin​]中搜索来进行匹配。同时,采用左-右一致性(lrc)检查[12,13,41],这意味着从右到左进行匹配,以识别不匹配或被遮挡的点。我们将这些点与匹配代价高于预先确定的匹配阈值τ\tauτ的点一起作为视差图中的洞(视差值为零),而成功通过LRC检查的点被标记为“可靠”,并保留它们的差异。

另一方面,在确定了一个可靠的网格点p后,根据上述假设,利用p的视差可以初始化它的下一个相邻点的不奇偶性。然后搜索范围缩小到缩小后的半径dscd_s^cdsc​。这一思想是受PatchMatch方法[37]中传播算法的启发而产生的。设置dcsdcmaxdcmin2d^s_c{\ll}\frac{d_c^{max}-d_c^{min}}{2}dcs​≪2dcmax​−dcmin​​,进一步提高效率。

最后,采用双线性插值的方法对视差异常点进行了去除,并对视差孔进行了插值等一系列后处理。然后,将小粗视差图上采样到与左图像空间分辨率相同的位置,使原始左图像中的每个像素位置对应一个粗差值。请注意,这种采样-上采样策略背后的基本原理仍然是这样一个事实:人脸表面是一致的,网格点的差异可以很好地猜测它们之间的像素差异。有关粗匹配阶段的详细信息,请参阅算法1。图4进一步示出了粗匹配的过程和示例结果。
算法1. 使用LRC进行粗匹配
**Input:**左图像L和参考图像R,网格点用步长ScS_cSc​,视差范围[dcmin,dcmax][d_c^{min}, d_c^{max}][dcmin​,dcmax​],缩小视差半径dcsd_c^sdcs​,匹配成本阈值τ\tauτ。
Output: 粗视差图C

  1. while 对于左边图像空间中的每个网格点p do
  2. if 匹配相邻网格点p^\hat{p}p^​在同一行是可靠的 then
  3. 搜索范围设置为[xp^disp(p^)dcs,xp^disp(p^)+dcs][x_{\hat{p}}-disp(\hat{p})-d_c^s, x_{\hat{p}}-disp(\hat{p})+d_c^s][xp^​​−disp(p^​)−dcs​,xp^​​−disp(p^​)+dcs​];
  4. else
  5. 将搜索范围设置为[xpdcmax,xpdcmin][x_p-d_c^{max}, x_p-d_c^{min}][xp​−dcmax​,xp​−dcmin​]
  6. end if
  7. 搜索ppp的对应点p\overrightarrow{p}p​在图像空间中匹配代价最小;
  8. if 匹配代价小于τ\tauτ then
  9. 在左图像空间中搜索匹配代价最低的p\overrightarrow{p}p​对应p˙\dot{p}p˙​;
  10. if 匹配代价小于τ\tauτ并且xpxp&lt;4x_p-x_{\overrightarrow{p}}&lt;4xp​−xp​​<4 then
  11. 将p标记为可靠,他的视差为 disp(p)=xpxpdisp(p)=x_p-x_{\overrightarrow{p}}disp(p)=xp​−xp​​
  12. else
  13. 将p标记为一个孔;
  14. end if
  15. else
  16. 将p标记为一个孔;
  17. end if
  18. end while
  19. 形成一个C↓小视差图,比例尺为L的1 / ScS_cSc​。
  20. 删除C↓中的孤立视差值,并设置相关像素为孔。
  21. 在C↓内插所有孔。
  22. 上采样C↓,取因子ScS_cSc​,得到C
    论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》

3.4. Fine matching stage

在这个阶段,粗视差被进一步细化,以呈现更多的面部表面细节。给定左侧图像空间中的像素位置q,其粗视差记为disp(q)disp(q)disp(q),我们在右图的空间中执行一个半径为dfsd^s_fdfs​的窄搜索。搜索范围限制在[xqdisp(q)dfs,xqdisp(q)+dfs][x_q-disp(q)-d^s_f, x_q-disp(q)+d^s_f][xq​−disp(q)−dfs​,xq​−disp(q)+dfs​]。与前一阶段相似,匹配代价大于预定义匹配阈值τ\tauτ的像素在细化的视差图中作为孔处理,并采用双线性插值进行填充。为了提高精度,获得亚像素的差异,亚像素插值是通过拟合抛物线到获胜成本值及其邻域来实现的。利用抛物线极小值对应的子像素坐标计算子像素差异。最后,我们使用倾斜平面模型[10,13],该模型假设一个倾斜平面用于局部视差,平滑视差图,其中每个局部倾斜平面通过最小二乘法拟合得到。注意,由于局部区域独立处理,用最小二乘拟合求解倾斜平面可以并行进行。图5为精细匹配阶段与部分中间结果的关系图。

3.5. Spatial-temporal matching cost computation

我们考虑时空立体中一个非常流行的相似性度量[26,27,29 - 31,42],即ZNCC(零均值归一化互相关)来计算我们的匹配成本(通过恢复相关系数)。ZNCC能够补偿增益和偏移[32]的差异,定义为:
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》
其中x、y为像素坐标,d为视差,CZNCCC_{ZNCC}CZNCC​为对应的相关系数。特别地,Lx,yn(k,p)L^n_{x,y}(k,p)Lx,yn​(k,p)表示第n个左散斑图像在坐标(x+k,y+p)处的像素强度。m是散斑图像对的总数。通过在区间[-l,l]上测量k,p,在[1,m]上测量n,在以(x,y)为中心的时空体积中,Lx,yn(k,p)L^n_{x,y}(k,p)Lx,yn​(k,p)的范围超过强度。同时,Lx,y\overline{L_{x,y}}Lx,y​​表示体积的平均强度。同样,右散斑图像的Rxd,yn(k,p)R^n_{x-d,y}(k,p)Rx−d,yn​(k,p)和Rxd,y\overline{R_{x-d,y}}Rx−d,y​​被类似地定义。通过一些数学等价,公式(1)可以进一步简化为:
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》
其中符号列示如下:
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》

3.5.1. Fast computing

我们注意到,像SLLS_{LL}SLL​和SLS_LSL​这样的符号只涉及到体积两边的求和或者平方求和。因此,利用积分图像[43]的思想可以有效地计算它们。在本文中,我们提出使用时空积分图像(STII)来实现上述项的快速计算。这是传统的二维图像[43]的扩展。给定m个图像序列并以上述符号l为例,STII是一个二维图像,其值在(x,y)处定义为:
论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》
因此,可以根据STII[43]中一个时空体的四个角来计算时空体内的总和(图6)。为了计算STII,可以先沿着时间域进行累加,将一组时间图像合并到一个图像中。在此基础上,对传统的积分图像进行计算,得到STII。计算stii的图示如图6所示。通过使用stii,在一个类似于eqs的体积内计算求和的时间复杂度。(4)和(5)从O(ml2)O(ml^2)O(ml2)减为O(1)O(1)O(1),并且等式(2)中除SLRS_{LR}SLR​外的所有项都可以有效地从STII中导出。值得注意的是,在实际应用中,我们只对左右散斑图像分别计算两个STII。它们适用于不同局部窗口大小的粗匹配级和细匹配级。

上一篇:(5.3.8)sql server如何查看数据库版本信息?


下一篇:windows xp 系统,让远程桌面支持多用户