网站首页  词典首页

请输入您要查询的论文:

 

标题 双目下点云的三维人脸重建
范文 隋巧燕+董洪伟+刘蕾



摘 要: 提出一种在双目视觉系统下进行人脸重建的方法。首先,通过双目系统拍摄人脸的左右图像;其次,用GrabCut的方法的把人脸图像分割出来从而降低立体匹配的搜索范围;然后,用区域匹配算法得到人脸的视差图,从而得到人脸的三维点云;最后对不同角度的人脸图像进行SIFT 特征提取和匹配。将提取的SIFT 特征点和匹配关系反射到三维点云数据,获取不同角度人脸的三维点云数据的特征点和匹配关系,完成对不同角度的人脸进行粗配准。
关键词: 双目视觉; 图像分割; 人脸视差图; 三维点云; SIFT算法
中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2015)04?0102?04
0 概 述
三维重建是指通过单幅图像或者多幅图像重建三维信息的过程。由于单幅图像的所包含信息不完全,因此重建过程中需要利用经验知识。而多幅图像的三维重建(如人的双目定位)相比比较容易,其方法是先对摄像机进行标定,即计算出摄像机的内部参数和外部参数。然后利用多个二维图象中的信息重建出三维信息。双目立体视觉系统[1]中立体匹配的准确性是获取视差图的一个重要环节,它的本质是给定一幅图像中的一点,在另一幅图像中寻找其对应点,这两点是空间中物体同一点的投影,进而求出两者的视差,以得到物体的深度信息,并进一步求得该点的空间坐标。目前研究的立体匹配算法大部分都是针对复杂的空间场景获取大致的视差图。本文针对人脸这一特殊场景,通过先用GrabCut算法将人脸分割出来,降低了立体匹配的搜索的范围,然后用区域匹配算法NCC得到人脸的视差图,从而得到三维点云。最后通过SIFT的特征提出和匹配反射到三维数据上进行人脸重建。
1 运用双目视觉系统获取人脸图像信息
利用相机组成双目系统,希望他们的光轴距离越短越好,因为这样可以将近似的将左右采集图中对应点为中心的小区域视为相互的一个平移。对左右摄像机通过标定板进行立体标定[2],标定误差是0.377 542。然后通过极线约束的方法进行校正,这样在另一幅图像上搜索匹配点的时候,把原来二维的搜索变成了一维的搜索,降低了匹配点搜索的范围,从而降低了搜索时间以及匹配的准确率。
2 人脸分割
2.1 图割算法
图割算法[3]是将分割问题转化为将图像分为前景、背景的二元标号问题,把图像转化为一个无向图[G=(V,E)]其中,V 为顶点,它是有图像中的像素和代表前景的源点[(S)]和代表背景汇点[(T)]构成, [E] 是4 邻接或者8 邻接定点对构成。二元标号就是要为图中的每个顶点分配前景/背景标号[fi],[i∈V],[fi∈{0,1}]图像分割结果即可表示为[f={f1,f2,…,fi,…}],为了求解[f],需最小化能量函数E(f) :[E(f)=R(f)+λB(F)=i∈VRi(fi)+λ(i,j)∈NBi,j(fi,fj)] (1)
式中,N是相邻像素对(可取4 邻域或8 邻域);区域项[R(f)]用来约束[f] 和指定的前景/背景标记的相似程度;边界项[B(f)]用来约束相邻顶点,它们应该具有相同的标号值,体现出区域内部的连续性和边界的不连续性。能量函数的最小化最终通过网络流理论来解决,使网络流图的最小割对应能量函数的最小值,并利用最大流与最小割的等价性,转化为求取网络的最大流。
2.2 GrabCut算法
GrabCut算法是采用高斯混合模型代替直方图从而能更加准确的估计出颜色概率分布从而简化了用户的交互方式[4],只需要在目标区域上画一个矩形框。通过交互,对图进行初始化,将矩形框外的区域设为图像的背景[TB],像素标号值为0,矩形框内区域设为未知区域[TU](mask即掩码图像),像素标号值为1,前景[TF]设为空,然后根据标号值为1 和0 的像素初始化前景/背景GrabCut 通过对[TU]用图割算法进行多次迭代分割来提高前景GMM 参数估计的准确性.在处理结束之后,mask中会保存结果,mask中值为0为背景,值为1为前景。
3 三维点云
3.1 人脸区域匹配算法
双目视觉和普通的图像配准是有区别的,它不是由于如场景本身的变化或者运动引起,而是由于观察点不同引起的像对之间的差异。本文采用相似度NCC[5]算子作为相似性度量算子,它的公式如下:
[NCC=i(w1(xi,yi)-u1)(w2(xi,yi)-u2)i(w1(xi,yi)-u1)2i(w2(xi,yi)-u2)2] (2)
[w1]和[w2]是大小相同的窗口,他们是以左图像中的角点[p1]和右图像中的角点[p2]为中心的两个窗口,[u1]和[u2]为窗口内所有像素灰度的平均值,[(xi,yi)]的是在窗口中取值。NCC的3个约束条件:
(1) 平滑约束。p的视差值和它周围邻居的视差值是连续的。应用中是确保在5[×]5的窗口中大于一半的邻居和P的差值不大于1个像素。
(2) 惟一性。首先对左图像中的角点,在右图像中寻找和它相关性最大的角点;然后在对右图像中的角点,在左图像中寻找和它相关性最大的角点,当通过双向搜索到的最大相关性的角点彼此对应,就把他们作为一对候选匹配角点。
(3) 有序性。P的视差和它右邻居的视差不大于1。[d(p)≤d(q)+1]。
3.2 金字塔模型
为了提高匹配的速度,本文采用金字塔模型[6],先将图像分为几层。在进行立体匹配时,先在分辨率低图像上进行匹配,得到匹配结果,并将匹配结果作为下一层图像匹配的视差预测初值,通过它来指导该层的匹配,从而降低搜索的范围,以此类推,直到得到最底层的视差图。利用金字塔匹配模型降低了直接在高分辨率图像匹配时的视差搜索范围,同时有前一层视差作为指导也降低了误匹配发生的概率.
步骤如下:
(1) 通过金字塔模型将图像分为N层。本文取N=3。依次为第2层[(160×120)]、第1层[(320×240)]、第0层[(640×480)](原始图像大小)。
(2) 利用GrabCut中的mask中的信息,左视图mask中为0,则不需要在右视图中寻找匹配点,只有遇到1的时候才在右视图需找匹配点,从而用求得视差图。这样大大缩短了搜索范围,降低了运行时间。依此类推,直至生成第M层视差图。
(3) 对于第M层视差图(非顶层),其视差计算由它上层第M-1层指导。具体操作如下:假设第[M-1]层某一位置[(x,y)],视差为[d],它在第[M]层映射[2×2]的区域,这个区域中每一位置的初始视差均为[2×d],其在右图的视差搜索范围为[(2×d-t,2×d+t)],[t]为某个预设值。
(4) 对于[M=0]层视差图,即为最终的视差图。该视差图具有最高分辨率。
3.3 三维点云
深度与视差的关系:
[d=bfIL-IR] (3)
式中:距离d即物体的深度,与基线长度b、焦距f和[IL-IR]有关,[IL-IR]是左右图像的视差,通过立体匹配可以得到人脸的视差,然后通过式(3)可以得到人脸的深度值。从而知道不同人脸角度的三维人脸三维点云的三维坐标。
4 点云对齐
对得到的人脸不同角度三维点云,本文通过在他们的二维图像上用sift算法提取特征点和匹配,从而知道它们三维点云的对应情况,然后通过四元数的方法得到配准后的点云。
4.1 SIFT特征点的提取和匹配
SIFT 算法是由David提出的一种局部特征的提取算法[7]。通过在尺度空间寻找极值点,提取平移,尺度和旋转不变量。
本文采用SIFT 算法在需要进行配准的的前后两组数据(都是左视图或者都是右视图)提取2D 特征点和欧式里德距离进行特征点匹配。为了避免产生误匹配点对配准结果的影响,在这里用Ransac算法消除误匹配。
[QΣTRtrΣTRΔTΔΣT,R+ΣTT,R-trΣT,RI3]
将匹配点的坐标与它们的深度信息相结合,从而可以知道对应点云的三维坐标。
4.2 三维点云的配准算法(粗配准)
对SIFT算法得到的三维点云、坐标变换矩阵,这里选择用四元数法[8]来获得。
设旋转变换向量为[qR=q0q1q2q3T],平移变换向量为[qT=q3q4q5T],则完全坐标变换向量为[q=qR|qTT],因此变成求q似的函数:
[f(q)=1Npi=1Npxi-R(qR)pi-qr2] (4)
最小化的问题,式中[R(qR)]是点云的旋转矩阵,步骤如下:
(1) 计算两个点云的重心(这两个点云分别是[A]和[B]):
[cA=1Nai=1Naai] (5)
[cB=1Nbi=1Nbbi] (6)
(2) 有点云的R和T求协方差矩阵:
[ΣTR=1Npi=1Np(bi-cB)(ai-cA)T] (7)
(3) 有协方差矩阵构造对称矩阵:
[Q(ΣTR)=(ΣTR)ΔTΔΣTR+ΣTTR-trΣTRI3] (8)
式中:[tr(ΣTR)]是矩阵[ΣT,R]的迹,设[Ai,j=(ΣTR-ΣTR,T)i,j],[Δ=[A23A31A12]T],[I3]为[3×3]的单位矩阵.
(4) 计算[Q(ΣT,R)]的特征值和特征向量,其最大特征值对应的特征向量是最佳旋转向量[qR]。
最佳平移向量[qT=cA-R(qR)cB],其中:
[R(qr)=q20+q22-q23-q242(q1q2-q0q3)2(q1q3+q0q2)2(q1q2+q0q3)q20-q22+q23-q242(q2q3-q0q1)2(q1q3-q0q2)2(q2q3+q0q1)q20-q22-q23+q24]
通过四元数的方法得到旋转矩阵R和平移矩阵T,可以将目标人脸点云向参考点云移动得到粗配准的点云,为精细点云配准做好准备。
5 实验结果和分析
本文的研究是以双目立体视觉理论为基础, 以人脸为研究对象, 构建一个三维人脸重建系统. 该系统的实验平台主要是由2台罗技pro9000摄像头黑白棋盘格标定板和星宇晨计算机组成。仿真平台为OpenCV 2.1,结果如图7所示。
通过双目测量系统得到三维人脸,降低了实验设备的成本。在计算人脸视差前用极线校正和GrabCut的方法降低了视差的搜索范围,降低了匹配的时间。其次用金字塔模型提高了视差的精确度和降低是时间的复杂度。同时在本文中通过用SIFT算法在不同角度的人脸是提取匹配点,对匹配点的三维坐标通过四元数的方法得到旋转矩阵和平移矩阵,可以对点云进行粗配准。用这个方法进行粗配准大大提高了运行的速度。在实验过程中发现用sift算法得到的匹配点存在误匹配,即使用Ransac算法去除还是会存在误匹配的现象。在以后的工作中以匹配点间的欧式里德距离(中值的一定范围或者是高斯分布)作为依据取得需要的几个参考点。同时得到的粗配准对以后用ICP算法对三维人脸进行精细配准奠定基础。
参考文献
[1] 党乐.基于双目立体视觉的三维重建方法研究[D].西安:长安大学,2009.
[2] 于仕琪,刘睿祯.学习OpenCV[M].北京:清华大学出版社,2010.
[3] 徐秋平,郭敏,王亚荣.基于多尺度分析与图割的快速图像分割算法[J].计算机应用研究,2009,26(10):3889?3991.
[4] ROTHER Carsten, KOLMOGOROV Vladimir, BLAKE Andrew. GrabCut: interactive foreground extraction using iterated graph cuts [J]. ACM Transactions on Graphics, 2004, 37 (3): 111?116.
[5] BEELER Thabo, BICKEL Bernd. High?quality single?shot capture of facial geometry [J]. ACM Transactions on Graphics, 2011, 30(3): 22?25.
[6] 谢耀华,汤晓安,孙茂印.不产生精度截断及数据膨胀的图像金字塔[J].中国图象图形学报,2009,14(6):1070?1074.
[7] DAVID G. Distinctive image features from scaleinvariant [J]. International Journal of Computer Vision, 2004, 60(2): 1573? 1405.
[8] HORN B. Closed?form solution of absolute orientation using unit quaternions [J]. Journal of the Optical Society of America, 1987, 4(4): 629?642.
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 6:41:37