APP下载

基于散斑结构光编码的三维人脸重建方法研究

2023-10-09黄丰智范智瀚段智涓

计算机应用与软件 2023年9期
关键词:极线散斑视差

黄丰智 范 鹏 范智瀚 段智涓

(四川大学视觉合成图形图像技术国防重点学科实验室 四川 成都 610065)

0 引 言

在过去的数十年里,基于结构光的三维重建技术得到很大的发展[1-3],三维重建技术相对二维重建技术可以保存更多现实目标的信息,在三维人脸识别、3D电影、文物保护、美容整容、移动支付、游戏设计、视觉导航、人工智能、逆向工程等领域都已经引起重大变革[4-5]。在计算机视觉领域研究中,三维重建是一个非常热门的方向,但是直接通过自然纹理的变化完成高精度的三维重建是一项难度非常高的工作,尤其是在某些目标表面纹理信息较少的时候。为了解决这个问题,计算机视觉子领域视觉测量中通过投射携带编码信息的几何图案来增强弱特征目标表面的纹理信息[1-5],从而可以还原目标表面的高精度三维形貌。典型的三维相机由一个光机对纹理信息进行编码并投射在被测物体表面,再通过两个摄像机同时获取被测物理信息。结构光三维重建根据编码信息类型主要分为条纹结构光和散斑结构光,其中条纹结构光三维重建精度高但是需要数据多而且重建速度较慢。散斑结构光三维重建速度快,最低只需一组数据就可进行重建,但是重建的精度相对条纹结构光较低。

在基于散斑的结构光三维重建中,为了提高重建精度,对散斑的编码技术已经发展出RGB彩色散斑编码和空时散斑编码等技术[6-7]。近年来,随着GPU技术的飞速发展,神经网络的研究也重回热门研究领域,尤其是深度学习技术。深度学习跟很多领域结合都取得了巨大进步,自然也有学者提出将深度学习和结构光三维重建领域进行融合,国内外都提出了基于深度学习的结构光三维重建算法,在某些情况下基于深度学习的结构光三维重建实现了比较好的重建效果[8-10]。

本文对散斑的结构光三维重建进行优化,为了提高三维重建精度和光滑度提出一种优化的ZNCC算法,通过本文提出的重建算法可以快速地生成较高精度的光滑三维人脸模型。

1 基于散斑编码生成相关算法

1.1 散斑生成

设计编码光场的图案由灰度为0或者255的点阵组成,如图1所示,采用局域和全局随机相结合的编码方式保证图案的随机性,并结合相机和投影装置像元大小、焦距、工作距离等一系列参数研究编码图案颗粒度大小、黑白点比例与三维测量精度的关系等相关问题,优化图案的设计。

图1 散斑图案

1.2 散斑动态光场投影技术

本文采用散斑结构光场动态投射模型如图2所示。在原理验证阶段将图1的图形刻蚀到玻璃基底上,然后设计一种光学投影组件,将其产生的编码图案经旋转电机驱动的楔形反射镜反射到测量空间,即可产生空时无关的连续变化光场[7]。

图2 散斑结构光场动态投射装置

2 基于散斑结构光三维重建算法

2.1 极线校正

在立体匹配之前先要进行极线校正,它将图像中的所有汇聚模式的极线变换为相互共线且与图像扫描线平行的直线。经过极线校正后,可利用极线约束条件将匹配像素的搜索范围限定在极线上,使得对于像素的匹配搜索由全图扫描转变为在同行上进行扫描,搜索范围大大缩小,快速三维数据恢复成为可能。极线校正首先要对相机进行标定,通过张正友标定法得到左右两台相机的内外参数[11],再对左右相机进行旋转操作,让它们分别绕着各自的主点进行旋转,经过旋转以后让左右相机的焦平面共面,下一步再让左右相机绕各自相机的光心旋转,这样就可以让两幅图像中相对应的点的极线在同一水平直线上。

2.2 空时灰度ZNCC相关(粗视差)

根据双目立体视觉原理和极对角几何原理,左右相机采集到的图像经过极线校正,在极线上的点满足极线约束,左图像极线上的点必定在右图像对应极线上,这就把左图某个点的匹配范围从整幅图像缩小到右图像对应某一行上。在进行散斑图像匹配时,ZNCC零均值归一化互相关函数能够针对散斑图像的散斑特性进行匹配[12-14]。ZNCC算法还可以降低散斑图像的散斑模式和左右图因光照、位置带来图像亮度不同的影响。为了提高匹配速度,本文采用了ZNCC盒滤波器快速算法,减小同名点在对应行上的查找范围,通过基于网格查找的匹配算法计算对应像素的相关性。基于网格的匹配算法是将左图像划分成小的网格块而不再是以单个像素为处理单元,通过匹配在右图得到对应区域。然后计算左图网格对应的右图最大相关的像素点其结果就为最佳视差,如图3所示。

图3 立体匹配搜索框

ZNCC盒滤波器快速算法为:

(1)

其中:

(2)

基于网格搜索的快速匹配:由空时灰度ZNCC相关算法得到的粗视差图并不能满足精度的要求,故需要进行亚像素视差估计进而得到高精度的视差图。Box Filter加速算法无法在多尺度上实现快速运算,故使用基于网格搜索的二级匹配算法。采用提取网格块进行初匹配得到粗视差图,然后再进行精匹配。

该匹配搜索过程经过三步完成:

步骤1极线校正后,在左边图像根据固定步长(而不是以1为步长)对行方向和列方向进行搜索,初步计算网格边缘点在右图中的视差位置,然后计算相似度,并设定相关度阈值,未达到该阈值则认定为未找到同名匹配点,以此确定右视图对应点所在的备选区间,此过程命名为初匹配计算。其计算效果示意图如图4所示。

图4 初匹配搜索示意图

在相关性计算时,开始的时候可以让固定步长较大使得匹配窗口比较大,可以提高匹配准确率,但是由于增大固定步长会增加计算量,所以也不能设置得太大[14]。视差搜索范围由双目三角测量得到的计算值作为初始视差匹配范围。为减小误匹配率,剔除视差异常点和孤立点,使用视差一致性和顺序性约束进行限制。在第一步视差计算阶段,会存在部分点由于遮挡或者物体表面陡峭造成视差值缺失,就会在视差图上产生空洞,因此需要在横竖两个方向上利用插值来填补网格点上的缺失视差。

步骤2网格点邻域内的视差精匹配计算。在步骤2的精视差匹配计算阶段,在左边图像以步长为1对行方向和列方向上像素进行遍历,对于左图像素在右图对应行上,以粗视差值作为参考缩小匹配范围,计算匹配代价和匹配代价协方差。其实现示意图如图5所示。

图5 精匹配搜索示意图

而后对左图像各像素点对应的一组相关值在最大值点附近的二次曲线拟合,拟合得到的极值点即为视差值,即为该点的亚像素视差。

步骤3剔除视差跳跃点和突变点,采用移动最小二乘法对视差平面进行拟合[13-14]。

2.3 亚像素估计(精视差)

亚像素视差的本质是通过曲线插值的方法估计视差值。经过亚像素匹配,可以获得图像的精确视差图,还可以使得进行三维重建的时候物体表面更加平滑。亚像素估计是通过对累积匹配代价的数值进行二阶或者更高阶的拟合求取最大值,通过计算得到精匹配的亚像素视差值[15]。

出于运算效果的考虑,采用二次曲线来拟合像素匹配的分布曲线并取得亚像素视差。在计算对应行的相关系数时,取该行相关系数最大值附近的三个点的相关系数,进行二次曲线拟合,并计算得到极大值点和极大值所对应坐标x。该坐标的亚像素值就是对应右图的坐标值,公式如下:

(3)

(4)

式中:C(d)表示整像素视差匹配极值d处的相关值;x为计算得到的亚像素视差值。给定校正的立体图像对,假设左图像中的像素(x,y)具有视差d,则其对应点可在右图像中的(x-d,y)处找到。相应地,该像素的深度可以通过式(4)获得,其中:f表示焦距;T表示基线。

2.4 散斑三维重建

通过极线校正然后进行立体匹配,再然后得到视差图,再通过视差图和三维测量方法结合系统参数计算物体表面的点的空间三维坐标,最终获得了单视角下的高精度物体三维点云[4-5,16]。三维物体建模流程如图6所示。

图6 散斑三维重建流程

2.5 可视化仿真比对结果

为了更好计算算法执行后生成的三维模型的精确误差,本文设计一套仿真系统,通过仿真系统可以设计模拟相机参数后对导入的三维人脸模型进行模拟真实场景数据采集。用模拟相机采集的图片进行三维重建,之后用原模型同生成的三维人脸进行对比。本文采用基于最小二乘法的最优配准方法来进行模型配准。通过重复选择对应关系点对计算出最优刚体变换,最终找到用户算法模型与真值之间的旋转矩阵和平移矩阵。两个点云配准后进行欧氏距离等误差分析。可视化评估结果如图7所示。通过可视化结果可以看到本文方法可以重建出精度高且光滑的三维人脸模型。

图7 仿真结果误差分析图

3 结 语

本文调研了结构光三维建模研究现状以及三维模型在三维人脸识别中的重要作用,同时设计了基于散斑的高精度三维重建算法,并开发了一套三维重建仿真系统。由仿真结果可以得出结论:本文算法可以实现较高精度的三维人脸重建。

猜你喜欢

极线散斑视差
基于自适应窗的立体相机视差图优化方法研究
破解定值有妙法,极点极线显神威
激光显示中的彩色散斑测量研究
激光投影显示散斑抑制方法研究
一道高考试题的背景简介
基于梯度域引导滤波的视差精炼迭代算法
用于检验散斑协方差矩阵估计性能的白化度评价方法
基于分割树的视差图修复算法研究
立体视差对瞳孔直径影响的研究
电镜成像方式对数字散斑相关方法结果的影响