首页 / 专利库 / 人工智能 / 三维人脸重建 / 一种基于立体视觉的三维人脸重建方法

一种基于立体视觉三维人脸重建方法

阅读:690发布:2020-09-26

专利汇可以提供一种基于立体视觉三维人脸重建方法专利检索,专利查询,专利分析的服务。并且一种基于双目 立体视觉 的 三维人脸重建 方法,其实现步骤为:(1)使用两台摄像机从两个不同 角 度同时各拍摄人脸的一幅图像;(2)分别对两台摄像机的内,外参数矩阵进行标定;(3)根据标定数据进行对极线校正和图像变换;(4)利用Harris角点检测算子提取人脸特征点,并利用局部模板窗口方法以及极线约束进行初始匹配;(5)从初始匹配集合出发,利用 种子 点增长 算法 得到稀疏匹配集合;(6)利用稀疏匹配集合作为引导点,执行动态规划算法完成稠密匹配;(7)根据标定数据和匹配关系计算人脸上实际物点的三维坐标,从而重建出人脸的三维点 云 。,下面是一种基于立体视觉三维人脸重建方法专利的具体信息内容。

1.一种基于立体视觉三维人脸重建方法,其特征在于,该重建方法依次含有下列步骤:
步骤1:图像获取
使用两台摄像机从两个不同度同时各拍摄一幅人脸图像,其中左镜头拍摄的为左图像,右镜头拍摄的为右图像;
步骤2:摄像机标定
分别对两台摄像机进行标定,获得各自的内参数矩阵AL、AR和外参数矩阵[RL tL]、[RR tR];
步骤3:对极几何校正及图像变换,包括下面四个子步骤:
步骤3.1:计算左右摄像机的光心坐标
根据步骤2得到的左右摄像机的内外参数矩阵,构造左右摄像机的原始投影矩阵:PoL=AL[RL tL],PoR=AR[RR tR],则左右摄像机的光心坐标计算为:
其中P(i:j,m:n)表示取出矩阵P的第i行至第j行,第m列至第
n列之间的元素所构造的新的矩阵,冒号:表示取出所有的行或者列;
步骤3.2:构造新的旋转矩阵R′和内参矩阵A′
令v1=cL-cR, 构造新的旋转矩阵和内参矩阵分别为:
A′=(AL+AR)/2,令A′(1,2)=0,
-1
其中 表示向量叉积,norm(v)表示求向量范数,上标T表示矩阵转置,P 表示对矩阵P求逆矩阵;
步骤3.3:计算新的投影矩阵及与原始投影矩阵之间的变换矩阵
构造左右摄像机的新的投影矩阵PnL=A′[R′-R′cL],PnR=A′[R′-R′cR],计算与原始投影矩阵之间的变换关系:
步骤3.4:图像变换
根据步骤3.3得到的新的投影矩阵与原始投影矩阵之间的变换矩阵对原始拍摄的左右图像分别逐个像素点进行转换: 其中pL,pR 分别是左右图像中变
换前像素点的齐次坐标, 分别是变换后左右图像中像素点的齐次坐标;
步骤4:稀疏匹配,包括下面三个子步骤:
步骤4.1:特征点检测及初始匹配
对于步骤3经过对极线校正变换后得到的图像运用经典的Harris角点检测算子分别提取左右人脸图像中的特征点,并利用局部模板窗口算法以及平极线约束对提取得到的左右特征点集合进行初始匹配,将得到的匹配点对集合记为S;
步骤4.2:种子点增长,包括下面三个子步骤:
步骤4.2.1
将步骤4.1得到的初始匹配对集合S看作一个种子点集合,其中的匹配点对具有形式(xl,xr,y),xl,xr分别代表匹配像素点对在左右图像中的横坐标,y是两像素点共同的纵坐标,将S中的匹配对按照相似测度降序排列,初始化匹配集合M为空集,即M=φ,设置相似测度阈值μ为一个常数;
步骤4.2.2
从S中取出最大相似测度种子点s=(xl,xr,y),在其如下形式的四邻域Ai中:
A1={(xl,sr,y+1),(xl±1,xr,y+1),(xl,xr±1,y+1)}
A2={(xl,xr,y-1),(xl±1,xr,y-1),(xl,xr±1,y-1)}
A3={(xl-1,xr+1,y),(xl-2,xr+1,y),(xl-1,xr+2,y),(xl-2,xr+2,y)}A4={(xl+1,xr-1,y),(xl+2,xr-1,y),(xl+1,xr-2,y),(xl+2,xr-2,y)}分别选出具有最大相似测度的匹配对: i=1,2,3,
4,令c=simi(qi),simi()表示相似测度函数,如果满足条件:c≥μ,并且集合M中不存在匹配对 使得 或者 那么将qi添加到集合M中,再将qi按相似
测度升序顺序插入到集合S,处理完s的四邻域后将s从集合S中去掉;
步骤4.2.3
重复步骤4.2.2直到集合S变为空,最终得到种子点增长匹配集合M;
步骤4.3:优化匹配集合M
利用双向一致性约束准则,根据步骤4.2再以右图像为基准图像,左图像为配准图像进行一次种子点增长匹配,得到另一个匹配对集合M′,对于任意的(xl,xr,y)∈M,如果在M′中存在元素 满足条件 并且y=y′,那么判断 设定一个小的
阈值dist,如果 则认为匹配对(xl,xr,y)是可信的,保留在集合M中,否则,
认为是不可信的,将它从集合M去掉,最终保留下来的元素组成优化后的稀疏匹配集合M;
步骤5:稠密匹配,包括下面五个子步骤:
步骤5.1:构造引导点序列
从左下角到右上角逐行扫描左图像,对于图像中的每条扫描线li(i=1…n),n代表图像的行数,定义一个集合K,首先判断li上的每个像素点p,其像素坐标为(xl,yi),检索集合M,如果(xl,yi)已经匹配过,则将坐标(xl,yi)对应的集合M中的元素(xl,xr,yi)添加到集合K中,这样一直扫描到当前行的末端,得到一个匹配点对的序列K={k1,k2,…,km};
步骤5.2:扫描线分段
对于步骤5.1得到的序列K,如果m≥2,每次顺序取出其中相邻的两个元素kj,kj+1(j=1,…,m-1),记为 定义序列Lij,将当前扫描行中所有
像素点(xl,yi)的横坐标满足 的像素点添加到序列Lij中,重复这个过程直到
顺序处理完K中所有具有相邻关系的元素,最后还需要构造分别以当前行最左端像素点和 为端点和以当前行最右端像素点和 为端点的两段序列Li0和Lim;如果m<2,
则整条扫描线作为一个序列Li0;
步骤5.3:确定动态规划候选搜索路径
对步骤5.2得到的每个像素点序列Lij(j=0,…,m),对于序列中的每个像素点p=(xl,yi),按照如下三个子步骤确定其在动态规划过程中的候选搜索路径:
步骤5.3.1
以当前像素点p为中心,检查其周围8邻域方向的像素点,如果某个像素点的坐标 对应于集合M中的已匹配对 则计算其视差 并令dmin=
dmax=dq;如果没有找到,则沿着八邻域的方向各自向外侧延伸一个像素点,继续前面同样的检查执行过程,如果向外延伸的次数超过给定的阈值N却仍没有在M中检查到有对应的匹配对,则终止向外延伸的过程,转到步骤5.3.2;
步骤5.3.2
取出p所在的序列Lij的左右两个端点q1=(xl1,yi),q2=(xl2,yi),如果它们在集合M中有对应的匹配对,分别为(xl1,xr1,yi),(xl2,xr2,yi),记d1=xl1-xr1,d2=xl2-xr2,令dmin=min(d1,d2),dmax=max(d1,d2);
步骤5.3.3
当前像素点p=(xl,yi)在动态规划过程中的候选匹配搜索路径确定为:P={(xl,xr,yi)|xl-(dmin-Δ)≤xr≤xl-(dmax+Δ)},其中Δ是一个小的常数;
步骤5.4
按照步骤5.3得到的像素点的动态规划候选路径对步骤5.2中得到的所有像素点序列Lij(j=0,…,m)分别运用动态规划算法寻找每个像素点的最优匹配;
步骤5.5
重复步骤5.1到步骤5.4直到处理完整幅图像的所有扫描线,得到整幅图像所有像素点在右图中的匹配点;
步骤6:三维信息还原
根据步骤2得到的摄像机内参数矩阵AL、AR和外参数矩阵[RL tL]、[RR tR],以及步骤4和步骤5得到的匹配点对关系,计算得到整个人脸的三维点坐标。

说明书全文

一种基于立体视觉三维人脸重建方法

技术领域:

[0001] 本发明属于双目立体视觉技术领域,涉及到基于立体视觉的三维人脸重建问题,尤其涉及到一种使用种子点增长算法和基于引导点约束的动态规划算法来获得人脸三维点的方法。背景技术:
[0002] 双目立体视觉技术是一种被动式的三维测量技术,它包括摄像机标定,图像对匹配,三维信息还原等主要过程。基于双目立体视觉的三维人脸重建技术通过两个已标定的摆放在不同度的CCD拍摄两幅人脸图像,然后建立两幅图像的像素点之间的对应关系来恢复人脸的三维坐标信息。立体视觉技术可以获得稠密的人脸三维点云坐标,无需向被测物体投影光栅等辅助信息,人机交互友好,硬件配置要求低,成本便宜,自动化程度较高,并且可以实现实时采集,是三维人脸重建领域中比较流行的一种技术。
[0003] 立体匹配算法是双目立体视觉技术的核心问题。现有的匹配算法分为局部最优算法和全局最优算法,常用的约束条件有极线约束,唯一性约束,顺序一致约束,视差连续性约束等。局部最优算法利用局部最优判断条件为每个像素点选取对应的匹配点,算法简单,计算速度快,但各种约束条件仅在局部范围内有效,结果往往容易陷入局部最优,错误匹配概率比较高,不适宜进行三维人脸重建。全局最优算法首先将匹配问题抽象化为一个全局能量函数,然后求全局能量函数在各种约束条件下的最优解,即得到匹配问题的最优解。全局最优算法匹配的准确率高,但算法复杂,运算量大,不利于实现实时采集运算。
[0004] 现有的基于双目立体视觉的三维人脸重建算法存在明显的缺点:它们或者采用单纯的局部最优算法,或者采用单纯的全局最优算法,因此算法不能同时保证重建的准确度和重建的速度;再就是人脸的先验模型知识比较丰富,脸部主要由眼睛,鼻子,嘴等主要器官构成,它们共有的特征是轮廓线比较明显。但现有的算法没有充分利用这些丰富的已有先验知识,或者即使用到,但算法中加入了过多的人工干预因素,需要人的辅助操作来提取一些特征点或者特征线,降低了重建算法的自动化程度,不利于搭建完善的重建系统。
[0005] 由于存在以上缺点,现有的三维人脸重建算法在实际应用中并不能得到令人满意的重建效果。

发明内容

[0006] 本发明提供一种能够准确快速自动重建人脸三维点云的方法。
[0007] 本发明采用的技术方案是:首先进行摄像机标定,然后采集两幅人脸图像,根据标定数据进行对极线校正和图像变换,然后进行特征点检测及初匹配,再以检测到的特征点为初始集合进行种子点增长,对增长得到的集合进行优化得到稀疏匹配集合,再以稀疏匹配集合作为引导点,利用基于引导点约束的动态规划方法完成稠密匹配,最后利用标定数据和匹配结果重建出人脸三维点云坐标并显示。
[0008] 本发明的方法具体包括以下几个步骤:
[0009] 步骤1:图像获取
[0010] 使用两台摄像机从两个不同角度同时各拍摄一幅人脸图像,其中左镜头拍摄的为左图像,右镜头拍摄的为右图像;
[0011] 步骤2:摄像机标定
[0012] 分别对两台摄像机进行标定,获得各自的内参数矩阵AL、AR和外参数矩阵[RL tL]、[RR tR];
[0013] 步骤3:对极几何校正及图像变换,包括下面四个子步骤:
[0014] 步骤3.1:计算左右摄像机的光心坐标
[0015] 根据步骤2得到的左右摄像机的内外参数矩阵,构造左右摄像机的原始投影矩阵:PoL=AL[RL tL],PoR=AR[RR TR],则左右摄像机的光心坐标可以计算为:
[0016] 步骤3.2:构造新的旋转矩阵R′和内参矩阵A′
[0017] 令v1=cL-cR, 则构造新的旋转矩阵和内参矩阵分别为:
[0018] A′=(AL+AR)/2,令A′(1,2)=0;
[0019] 其中 表示向量叉积,norm(v)表示求向量范数,上标T表示矩阵转置,P-1表示对矩阵P求逆矩阵;
[0020] 步骤3.3:计算新的投影矩阵及与原始投影矩阵之间的变换矩阵
[0021] 构造左右摄像机的新的投影矩阵PnL=A′[R′-R′cL],PnR=A′[R′-R′cR],计算与原始投影矩阵之间的变换关系:
[0022]
[0023] 步骤3.4:图像变换
[0024] 根据步骤3.3得到的新的投影矩阵与原始投影矩阵之间的变换矩阵对原始拍摄的左右图像分别逐个像素点进行转换:p′L=TLpL,p′R=TRpR,其中pL,pR分别是左右图像中变换前像素点的齐次坐标,p′L,p′R分别是变换后左右图像中像素点的齐次坐标;
[0025] 步骤4:稀疏匹配,包括下面三个子步骤:
[0026] 步骤4.1:特征点检测及初始匹配
[0027] 对于步骤3经过对极线校正变换后得到的图像运用经典的Harris角点检测算子分别提取左右人脸图像中的特征点,并利用局部模板窗口算法以及平极线约束对提取得到的左右特征点集合进行初始匹配,将得到的匹配点对集合记为S;
[0028] 步骤4.2:种子点增长,包括下面三个子步骤:
[0029] 步骤4.2.1
[0030] 将步骤4.1得到的初始匹配对集合S看作一个种子点集合,其中的匹配点对具有形式(x1,xr,y),xl,xr分别代表匹配像素点对在左右图像中的横坐标,y是两像素点共同的纵坐标,将S中的匹配对按照相似测度降序排列,初始化匹配集合M为空集,即M=φ,设置相似测度阈值μ为一个常数;
[0031] 步骤4.2.2
[0032] 从S中取出最大相似测度种子点s=(xl,xr,y),在其如下形式的四邻域Ai中:
[0033] A1={(xl,xr,y+1),(xl±1,xr,y+1),(xl,xr±1,y+1)}
[0034] A2={(x1,xr,y-1),(xl±1,xr,y-1),(xl,xr±1,y-1)}
[0035] A3={(xl-1,xr+1,y),(xl-2,xr+1,y),(xl-1,xr+2,y),(xl-2,xr+2,y)}[0036] A4={(xl+1,xr-1,y),(xl+2,xr-1,y),(xl+1,xr-2,y),(xl+2,xr-2,y)}[0037] 分别选出具有最大相似测度的匹配对: i=1,2,3,4,令c=simi(qi),simi()表示相似测度函数,如果满足条件:c≥μ,并且集合M中不存在匹配对s=(x′1,x′r,y),使得xl=x′i或者xr=x′r,那么将qi添加到集合M中,再将qi按相似测度升序顺序插入到集合S,处理完s的四邻域后将s从集合S中去掉;
[0038] 步骤4.2.3
[0039] 重复步骤4.2.2直到集合S变为空,最终得到种子点增长匹配集合M;
[0040] 步骤4.3:优化匹配集合M
[0041] 利用双向一致性约束准则,根据步骤4.2再以右图像为基准图像,左图像为配准图像进行一次种子点增长匹配,可以得到另一个匹配对集合M′,对于任意的(xl,xr,y)∈M,如果在M′中存在元素(x′l,x′r,y′),满足条件xr=x′l并且y=y′,那么判断|xl-x′r|,设定一个小的阈值dist,如果|xl-x′r|≤dist,则认为匹配对(xl,xr,y)是可信的,保留在集合M中,否则,认为是不可信的,将它从集合M去掉,最终保留下来的元素组成优化后的稀疏匹配集合M;
[0042] 步骤5:稠密匹配,包括下面五个子步骤:
[0043] 步骤5.1:构造引导点序列
[0044] 从左下角到右上角逐行扫描左图像,对于图像中的每条扫描线li(i=1…n),n代表图像的行数,定义一个集合K,首先判断li上的每个像素点p,其像素坐标为(xl,yi),检索集合M,如果(xl,yi)已经匹配过,则将坐标(xl,yi)对应的集合M中的元素(xl,xr,yi)添加到集合K中,这样一直扫描到当前行的末端,得到一个匹配点对的序列K={k1,k2,…,km};
[0045] 步骤5.2:扫描线分段
[0046] 对于步骤5.1得到的序列K,如果m≥2,每次顺序取出其中相邻的两个元素kj,kj+1(j=1,…,m-1),记为 定义序列Lij,将当前扫描行中所有像素点(xl,yi)的横坐标满足 的像素点添加到序列Lij中,重复这个过程直
到顺序处理完K中所有具有相邻关系的元素,最后还需要构造分别以当前行最左端像素点
1 m
和(xl,yi)为端点和以当前行最右端像素点和(xl,yi)为端点的两段序列Li0和Lim;如果m<2,则整条扫描线作为一个序列Li0;
[0047] 步骤5.3:确定动态规划候选搜索路径
[0048] 对步骤5.2得到的每个像素点序列Lij(j=0,…,m),对于序列中的每个像素点p=(xl,yi),按照如下三个子步骤确定其在动态规划过程中的候选搜索路径:
[0049] 步骤5.3.1
[0050] 以当前像素点p为中心,检查其周围8邻域方向的像素点,如果某个像素点的坐标q q对应于集合M中的已匹配对(xl,xr,yi),则计算其视差 并令dmin=
dmax=dq;如果没有找到,则沿着八邻域的方向各自向外侧延伸一个像素点,继续前面同样的检查执行过程,如果向外延伸的次数超过给定的阈值N却仍没有在M中检查到有对应的匹配对,则终止向外延伸的过程,转到步骤5.3.2;
[0051] 步骤5.3.2
[0052] 取出p所在的序列Lij的左右两个端点q1=(xl1,yi),q2=(xl2,yi),如果它们在集合M中有对应的匹配对,分别为(xl1,xr1,yi),(xl2,xr2,yi),记d1=xl1-xr1,d2=xl2-xr2,令dmin=min(d1,d2),dmax=max(d1,d2);
[0053] 步骤5.3.3
[0054] 当前像素点p=(xl,yi)在动态规划过程中的候选匹配搜索路径可以确定为:P={(xl,xr,yi)|xl-(dmin-Δ)≤xr≤xl-(dmax+Δ)},其中Δ是一个小的常数;
[0055] 步骤5.4
[0056] 按照步骤5.3得到的像素点的动态规划候选路径对步骤5.2中得到的所有像素点序列Lij(j=0,…,m)分别运用动态规划算法寻找每个像素点的最优匹配;
[0057] 步骤5.5
[0058] 重复步骤5.1到步骤5.4直到处理完整幅图像的所有扫描线,得到整幅图像所有像素点在右图中的匹配点;
[0059] 步骤6:三维信息还原
[0060] 根据步骤2得到的摄像机内参数矩阵AL、AR和外参数矩阵[RL tL]、[RR tR],以及步骤4和步骤5得到的匹配对关系,计算得到整个人脸的三维点云坐标。
[0061] 有益效果:与现有技术相比,本发明具有下面的优点:充分利用了人脸的先验模型知识,利用Harris角点检测算子和种子点增长算法实现了人脸特征区域像素点的自动提取;然后将这些特征像素点用作全局动态规划算法的约束条件,用来指导动态规划最优路径的搜索,实现了人脸图像的整体最优匹配。本发明充分结合了局部最优算法和全局最优算法的优点,将二者结合到一起,克服了现有三维人脸重建技术在重建准确度和重建速度之间的矛盾,并且提高了重建过程的自动化程度。附图说明
[0062] 图1本发明完整流程图
[0063] 图2系统模型及原理示意图。
[0064] 图3计算像素点的相似测度示意图。
[0065] 图4对极线校正示意图。
[0066] 图5种子点增长示意图。
[0067] 图6确定动态规划候选路径示意图。
[0068] 图7水平扫描线上基于动态规划的立体匹配示意图。
[0069] 图8由匹配关系和标定数据计算人脸上物点的空间三维坐标示意图。

具体实施方式

[0070] 下面参照附图,对本发明具体实施方案做更为详细的描述。编程实现工具选用VC++6.0,室内环境中拍摄的两幅人脸图像作为待重构的图像。
[0071] 图1为本发明的完整流程图。
[0072] 图2为本发明的系统模型及原理示意图。使用两个CCD分别从两个不同角度同时各拍摄一幅人脸图像,OL、OR分别为两台摄像机的光心,IL、IR分别为两台摄像机的成像平面,P为待重构的人脸上的一个空间物点,PL,PR为物点P分别在两台摄像机成像平面上所成的像点。这种由同一空间物点在不同摄像机成像平面上所成的像点为一对匹配点。任取其中一幅为基准图像,另一幅为配准图像,为基准图像中的每个像素点在对准图像中搜索对应的匹配点的过程称为立体匹配。得到像素点的匹配关系后,根据系统模型,结合标定得到的摄像机内外参数,进行逆向运算,就可得到对应物点的空间三维坐标,从而实现人脸图像的三维重构。
[0073] 图3是计算两个像素点的相似测度示意图。它通过比较两幅图像中像素点的周围邻域范围内灰度分布的相似程度,来确定两幅图像中像素点的相似程度,这种方法称作局部模板窗口方法。如图3所示,p为基准图像中一个像素点,Wl为以p为中心像素点的一个窗口区域;配准图像中,虚线框内区域为p对应的匹配点的搜索范围,p的匹配点落在这个范围内,q为搜索范围中的一个像素点,Wr为以q为中心点的一个与Wl同样大小的区域。基准图像中像素点p和配准图像中像素点q的相似测度定义为下面式子(1):
[0074]
[0075] 图7是在一条水平扫描线上基于动态规划的立体匹配过程示意图。黑色圆圈点表示基准图像中一条水平扫描线上的待匹配的像素点序列S={p1,p2,p3,……,pn-2,pn-1,pn},其中n是序列的数目。下面的矩形代表每个像素点所对应的可能的视差搜索路径,上标m表示视差的最大值。动态规划算法将匹配过程看成是在图像中寻找一条能量函数E(d)达到最小化的路径的过程。下面的方程(2)是一个典型的全局能量函数E(d):
[0076] E(d)=Edata(d)+λEsmooth(d)
[0077]
[0078]
[0079] 式中:
[0080] d为视差;
[0081] S为上面提到的像素点序列集合,N为所有相邻像素点对的集合,即图7中相互之间有箭头关系的像素点对;
[0082] m(dp)为像素点p在视差为d时的匹配代价,代表该点的匹配程度,首先根据视差d通过将p的水平坐标减去d,竖直坐标保持不变,即可计算出p在配准图像中的候选匹配点q,然后根据式(1)计算得到m(dp)=C(p,q);
[0083] s代表相邻像素点之间的平滑代价,取为相邻像素点p和q的视差dp和dq之差的绝对值,即s(dp,dq)=|dp-dq|;
[0084] Edata(d)为全局匹配代价,是所有像素点的匹配代价之和;
[0085] Esmooth(d)为全局平滑代价,是所有相邻像素点之间平滑代价之和;
[0086] λ为权重系数。
[0087] 本发明的方法具体包括以下几个步骤:
[0088] 步骤1:图像获取
[0089] 在室内环境中使用两台摄像机从两个不同角度同时各拍摄的一幅人脸图像,其中左镜头拍摄的为左图像,右镜头拍摄的为右图像。
[0090] 步骤2:摄像机标定
[0091] 摄像机标定技术现在已经比较成熟,例如参考文献“A Flexible NewTechnique for Camera Calibration”(Zhang Z Y,IEEE Transactions on Pattern Analysisand Machine Intelligence,2000,20(11):1330-1334)提出一种称为平面模板法的标定算法。本发明中采用这种方法分别对两台摄像机进行标定,获得各自的内参数矩阵AL、AR和外参数矩阵[RL tL]、[RR tR]。
[0092] 步骤3:对极几何校正及图像变换
[0093] 如图4所示是对极线校正示意图。对极线校正是根据步骤2中标定过程得到的矩阵来构造新的摄像机内外矩阵参数,使得新构造的两台摄像机的内参数矩阵相同,外参数矩阵中的旋转矩阵也相同,只有平移向量不同,这样的左右摄像机配置就构成一个平行双目视觉系统。摄像机新的内外参数矩阵可以构造两个新的左右摄像机投影矩阵,它们分别将人脸映射到两个新的成像平面上,新的成像平面的显著特点是:一个匹配点对在左右图像中竖直方向的坐标相同,只有水平方向的坐标不同,这个特点可以简化很多后续的算法设计和运算量。具体分为下面几个步骤:
[0094] 步骤3.1:计算左右摄像机的光心坐标cL,cR
[0095] 根据步骤2得到的左右摄像机的内外参数矩阵,构造左右摄像机的原始投影矩阵:PoL=AL[RL tL],PoR=AR[RR tR],则左右摄像机的光心坐标可以计算为:
其中P(i:j,m:n)表示取出矩阵P的第
i行至第j行,第m列至第n列之间的元素所构造的新的矩阵,冒号:表示取出所有的行或者列。
[0096] 步骤3.2:构造新的旋转矩阵R′和内参矩阵A′
[0097] 令v1=cL-cR, 则构造新的旋转矩阵和内参矩阵分别为:
[0098] A′=(AL+AR)/2,令A′(1,2)=0,-1
[0099] 其中 表示向量叉积,norm(v)表示求向量范数,上标T表示矩阵转置,P 表示对矩阵P求逆矩阵。
[0100] 步骤3.3:计算新的投影矩阵及与原始投影矩阵之间的变换矩阵
[0101] 构造左右摄像机的新的投影矩阵PnL=A′[R′-R′cL],PnR=A′[R′-R′cR],计算与原始投影矩阵之间的变换关系:
[0102]
[0103] 步骤3.4:图像变换
[0104] 根据步骤3.3得到的新的投影矩阵与原始投影矩阵之间的变换矩阵对原始拍摄的左右图像分别逐个像素点进行转换:p′L=TLpL,p′R=TRpR,其中pL,pR分别是左右图像中变换前像素点的齐次坐标,p′L,p′R分别是变换后左右图像中像素点的齐次坐标。这样就可以得到经过对极线校正后新的投影矩阵将人脸图像映射到虚拟成像平面上所形成的两幅新的图像。在运用上述变换关系时,发现如果变换后图像中的像素点坐标对应到原始图像中的非整数坐标上时,则变换后图像像素点的灰度值通过灰度双线性插值方法得到。
[0105] 步骤4:稀疏匹配
[0106] 步骤4.1:特征点检测及初始匹配
[0107] 对于步骤3经过对极线校正变换后得到的图像运用经典的Harris角点检测算子分别提取左右人脸图像中的特征点,并利用局部模板窗口算法计算相似测度以及水平极线约束对提取得到的左右特征点集合进行初始匹配,将得到的匹配点对集合记为S。
[0108] 步骤4.2:种子点增长
[0109] 步骤4.2.1
[0110] 将步骤4.1得到的初始匹配对集合S看作一个种子点集合,其中的匹配点对具有形式(xl,xr,y)。其中xl,xr分别代表匹配像素点对在左右图像中的横坐标,y是两像素点共同的纵坐标。将S中的匹配对按照相似测度降序排列,初始化匹配集合M为空集,即M=φ,设置相似测度阈值μ为一个常数。
[0111] 步骤4.2.2
[0112] 从S中取出最大相似测度种子点s=(xl,xr,y),在如图5所示的四邻域Ai中:
[0113] A1={(xl,xr,y+1),(xl±1,xr,y+1),(xl,xr±1,y+1)}
[0114] A2={(xl,xr,y-1),(xl±1,xr,y-1),(xl,xr±1,y-1)}
[0115] A3={(xl-1,xr+1,y),(xl-2,xr+1,y),(xl-1,xr+2,y),(xl-2,xr+2,y)}[0116] A4={(xl+1,xr-1,y),(xl+2,xr-1,y),(xl+1,xr-2,y),(xl+2,xr-2,y)}分别选出具有最大相似测度的匹配对: i=1,2,3,4。令c=simi(qi),simi()表示相似测度函数。如果满足条件:c≥μ,并且集合M中不存在匹配对s=(x′i,x′r,y),使得xl=x′i或者xr=x′r,即不违反立体视觉中的唯一性约束条件,那么将qi添加到集合M中,再将qi按相似测度顺序升序插入到集合S,处理完s的四邻域后将s从集合S中去掉。
[0117] 步骤4.2.3
[0118] 重复步骤4.2.2直到集合S变为空,最终得到种子点增长匹配集合M。
[0119] 步骤4.3:优化匹配集合M
[0120] 利用双向一致性约束准则,按照步骤4.2再以右图像为基准图像,左图像为配准图像进行一次种子点增长匹配,可以得到另一个匹配对集合M′。对于任意的(xl,xr,y)∈M,如果在M′中存在元素(x′l,x′r,y′),满足条件xr=x′l并且y=y′,那么判断|xl-x′r|,设定一个小的阈值dist,如果|xl-x′r|≤dist,则认为匹配对(xl,xr,y)是可信的,保留在集合M中,否则,认为是不可信的,将它从集合M去掉,最终保留下来的元素组成优化后的稀疏匹配集合M。
[0121] 步骤5:稠密匹配
[0122] 步骤5.1:构造引导点序列
[0123] 从左下角到右上角逐行扫描左图像,对于图像中的每条扫描线li(i=1…n),n代表图像的行数,定义一个集合K,首先判断li上的每个像素点p,其像素坐标为(xl,yi),检索步骤4得到的稀疏匹配集合M,如果(xl,yi)已经匹配过,则将坐标(xl,yi)对应的集合M中的元素(xl,xr,yi)添加到集合K中,这样一直扫描到当前行的末端,得到一个匹配点对的序列K={k1,k2,…,km}。
[0124] 步骤5.2:扫描线分段
[0125] 对于步骤5.1得到的序列K,如果m≥2,每次顺序取出其中相邻的两个元素kj,kj+1(j=1,…,m-1),记为 定义序列Lij,将当前扫描行中所有像素点(xl,yi)的横坐标满足 的像素点添加到序列Lij中,重复这个过程直
到顺序处理完K中所有具有相邻关系的元素,最后还需要构造分别以当前行最左端像素点和(xl1,yi)为端点和以当前行最右端像素点和(xlm,yi)为端点的两段序列Li0和Lim;如果m<2,则整条扫描线作为一个序列Li0。
[0126] 步骤5.3:确定动态规划候选搜索路径
[0127] 对步骤5.2得到的每个像素点序列Lij(j=0,…,m),对于序列中的每个像素点p=(xl,yi),按照如下三个子步骤确定其在动态规划过程中的候选搜索路径:
[0128] 步骤5.3.1
[0129] 以当前像素点p为中心,检查其周围8邻域方向的像素点,如图6所示,如果q q某个像素点的坐标 对应于集合M中的已匹配对(xl,xr,yi),则计算其视差
并令dmin=dmax=dq;如果没有找到,则沿着八邻域的方向各自向外侧延伸一个
像素点,继续前面同样的检查执行过程,如果向外延伸的次数超过给定的阈值N却仍没有在M中检查到有对应的匹配对,则终止向外延伸的过程。因为此时视差连续性约束往往失效,不能以此作为约束来限制搜索路径,需要另做处理,转到步骤5.3.2。
[0130] 步骤5.3.2
[0131] 取出p所在的序列Lij的左右两个端点q1=(xl1,yi),q2=(xl2,yi),如果它们在集合M中有对应的匹配对,分别为(xl1,xr1,yi),(xl2,xr2,yi),记d1=xl1-xr1,d2=xl2-xr2,令dmin=min(d1,d2),dmax=max(d1,d2)。
[0132] 步骤5.3.3
[0133] 当前像素点p=(xl,yi)在动态规划过程中的候选匹配搜索路径可以确定为:P={(xl,xr,yi)|xl-(dmin-Δ)≤xr≤xl-(dmax+Δ)},其中Δ是一个小的常数。
[0134] 步骤5.4:执行动态规划算法
[0135] 按照步骤5.3得到的像素点的动态规划候选路径对步骤5.2中得到的所有像素点序列Lij(j=0,…,m)分别运用动态规划算法寻找每个像素点的最优匹配,水平扫描线上动态规划如图7所示。
[0136] 步骤5.5
[0137] 重复步骤5.1到步骤5.4直到处理完整幅图像的所有扫描线,得到整幅图像所有像素点在右图中的匹配点。
[0138] 步骤6:三维信息还原
[0139] 根据步骤2得到的摄像机内参数矩阵AL、AR和外参数矩阵[RL tR]、[RR tR],以及步骤4和步骤5得到的匹配点对应关系,通过空间交汇法就可以计算出人脸上物点的三维坐标。图8是空间交汇法的示意图,OL、OR分别为两台摄像机的光心,SL、SR分别为两台摄像机的成像平面,PL、PR为两台摄像机所拍摄图像中的一对匹配点。空间中物点三维坐标和成像平面上像素点坐标之间有下面的关系:
[0140]
[0141] 其中(u,v)表示空间物点在成像平面上所成的像素点的像素坐标,(Xw,Yw,Zw)表示人脸上物点的空间坐标。它代表了一条经过摄像机光心、成像点、空间物点的直线方程。因此只要根据一对匹配点对就可以计算出经同一物点投射到两个成像平面上一对匹配像素点的两条直线方程,计算两条直线的交点,就可以得到人脸上物点的空间三维坐标,两条直线如果异面不相交,则取其公垂线的中点。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈