一种大场景对象的三维重建方法

文档序号:10726522阅读:439来源:国知局
一种大场景对象的三维重建方法
【专利摘要】一种大场景对象的三维重建方法,其特征在于:包括以下步骤:1)用相机从不同视角、位置对场景对象采集若干张序列照片;2)、将序列照片划分为若干单元Ni,3)、采用SIFT算法对每个单元的三张序列张片进行特征检测、匹配;4)将单元N1,(i=1)的第一张序列照片初始化,计算另外两张序列照片的基础矩阵F、本质矩阵E;5)、求解其他单元中每张序列照片的相机参数Ri、Ti和三维点云坐标Mj);7)、种子面片的扩展;8)、种子面片的过滤;本发明采用三视图约束有效的去除误匹配点得出准确的基础矩阵,重建的精度高,并且单元之间不需要坐标转换,降低了计算复杂度,通过在运动恢复结构的基础上进行稠密重建使得到三维模型的点云更加稠密。
【专利说明】
一种大场景对象的三维重建方法
技术领域
[0001] 本发明涉及一种计算机视觉和计算机图形学领域,尤其是一种大场景对象的三维 重建方法。
【背景技术】
[0002] 三维重建的最终目的是恢复目标场景的三维结构,基于图像序列的三维重建是获 取三维结构的主要手段之一。该方法可以看作是照相的逆过程,其成本相对较低,只需要普 通的摄像机即可,操作简单、携带方便,基于图像序列的特征点匹配与多视图立体重建是计 算机视觉技术中的研究基础和重点。
[0003] 针对大场景对象的三维重建方法现在用的比较多的方法是SFM(Structure From Motion),其缺点是特征检测与匹配时采用的是对极几何约束,只能确定匹配点在对应极线 上,而不能确定匹配点准确位置,这种约束比较弱。一旦误匹配点删除不掉,求解基础矩阵 就是错误的,得到的三维点云坐标也是错误的,以此求得的其他图像匹配点对应的点云坐 标也是错误的,就会出现误差累积问题。还有一种是基于独立三视图的三维重建,把每三幅 图作为一个独立单元进行三维重建,重建之后各单元之间进行坐标变换、比例变换把所有 的三维点云转化到同一个坐标下,该方法计算复杂度比较大。另外这两种方法有一个共同 的问题是重建的点云都比较稀疏,不能满足可视化的效果。一般稀疏重建之后还需要进行 稠密重建,稠密重建方法用的最多的是基于面片的三维重建(Patched-based Multi-View Stereo,PMVShPMVS方法的输入是一组图像序列集合以及稀疏重建求得的相机参数R、T,然 后输出三维模型的密集点云。

【发明内容】

[0004] 针对现有技术的不足,本发明提供一种大场景对象的三维重建方法。
[0005] 本发明的技术方案为:一种大场景对象的三维重建方法,其特征在于:包括以下步 骤:
[0006] 1)用相机从不同视角、位置对场景对象采集若干张序列照片,并按照采集的先后 顺序将若干张序列照片编号为Ii,(i = l,2,3···!!);
[0007] 2)将序列照片按照编号的先后顺序划分为若干单元&,(1 = 1,2,3-_1〇,每个单元 包括依次采集的三张序列照片,并将单元&,(丨=1,2,3···!!)的第三张序列照片作为相邻下 一单元Ν 1+1,(? = 1,2,3···η)的第一张序列照片,并将该序列照片作为该两相邻单元的公共 序列照片;
[0008] 3)通过采用SIFT算法对每个单元Ni,(i = l,2,3…η)包含的三张序列照片进行特 征检测、匹配,并利用三视图约束去除误匹配点;
[0009] 4)将单元Ni,(i = 1)的第一张序列照片的相机参数初始化,并采用RANSANC算法求 出单元心,(1 = 1)中另外两张序列照片的基础矩阵F、本质矩阵E,得到该两张序列照片中每 张序列照片的相机参数心、!\和三维点云坐标Mj;
[0010] 5)相邻两单元中将单元化,(1 = 1,2,3-_11)中公共序列照片的相机参数1^、1\作为 其相邻下一单元化+1,(1 = 1,2,3 - 1〇的公共序列照片的相机参数的初始值,并求解其相邻 下一单元Ni+1,(i = 1,2,3…η)中其他两张序列照片的相机参数Ri、Ti和三维点云坐标Mj,以 此计算出单元11,(1 = 1,2,3-1〇其他两张序列照片中每张序列照片的相机参数1?1、1'1和三 维点云坐标Mj;
[0011] 6)利用步骤4、5得到其他单元中每张序列照片的相机参数RhTdP三维点云坐标 Mj,并将所有的序列照片的相机参数RnTjP三维点云坐标W作为PMVS算法的输入,从而得 到场景对象的种子面片;
[0012] 7)种子面片的扩展:将序列照片IJ分为若干个图像块QUj),利用相邻种子面 片具有位置和法向相似的特性对种子面片进行扩展,从而使扩展后的种子面片逐步覆盖目 标物体的表面;
[0013] 8)种子面片过滤:采用局部灰度一致性约束和全局可见一致性约束来剔除扩展错 误的种子面片。
[0014] 上述技术方案中,步骤1)中相机围绕场景目标采集序列照片时,相邻两张序列照 片之间的角度为5°~15°,采集的所述序列照片数量为奇数,采集的序列照片至少为3张。
[0015] 上述技术方案中,步骤1)中采集的序列照片为45张。
[0016] 上述技术方案中,步骤3)中采用SIFT算法对序列照片进行特征检测、匹配,从而计 算出每个单元中三张序列照片的同名像点my,其中任意两张序列照片的同名像点在另一张 序列照片上的匹配点在该任意两张序列张片同名像点对应极线的交点上,若匹配点与交点 的距离超过两个像素则作为误匹配点删除。
[0017] 上述技术方案中,步骤4)中初始化后的单元化,(1 = 1)的第一张序列照片的相机 参数Ri为3 X 3的单位矩阵,1\为3 X 1的零矩阵;
[0018] 采用RANSANC算法求解基础矩阵F,结合相机内参K求解本质矩阵E,然后对本质矩 阵E进行奇异值分解得到相机参数!^、!^,并得到三维点云坐标…,然后采用集束调整 (Bundle Adjustment)算法局部优化序列照片的相机参数Ri、Ti、三维点云坐标Mj,通过集束 调整(bundle adjustment)算法使三维点云坐标Mj的重投影点与在第i张序列照片的同名 像点差值的平方和最小,其计算式为:
[0019] ~ KiRilTtlMj)2,
[0020] 其中D是欧氏距离,N为序列照片数,Μ为三维点云坐标数。
[0021] 上述技术方案中,步骤7)中通过种子面片的扩展使得至少在每个图像块中重建出 一个种子面片。
[0022] 上述技术方案中,步骤8)中扩展错误的种子面片包括外部种子面片和内部种子面 片,将种子面片扩展、过滤循环迭代3次使目标物体表面被稠密的种子面片完全覆盖。
[0023] 本发明的有益效果为:采用三视图约束可以有效的去除误匹配点得出准确的基础 矩阵,重建的精度高,并且单元之间不需要坐标转换,从而大大降低了计算复杂度,通过在 运动恢复结构的基础上进行稠密重建使得到三维模型的点云更加稠密。
【附图说明】
[0024]图1为本发明的三视图约束示意图;
【具体实施方式】
[0025]下面结合附图对本发明的【具体实施方式】作进一步说明:
[0026]如图1所示,一种大场景对象的三维重建方法,其特征在于:包括以下步骤:
[0027] 1)用相机从不同视角、位置对场景对象采集若干张序列照片,并按照采集的先后 顺序将若干张序列照片编号为Ii,(i = l,2,3···!!);
[0028] 2)将序列照片按照编号的先后顺序划分为若干单元牝(1 = 1,2,3-_1〇,每个单元 包括依次采集的三张序列照片,并将单元化,(丨=1,2,3···!!)的第三张序列照片作为相邻下 一单元Ν 1+1,(? = 1,2,3···η)的第一张序列照片,并将该序列照片作为该两相邻单元的公共 序列照片;
[0029] 3)通过采用SIFT算法对每个单元Ni,(i = l,2,3…η)包含的三张序列张片进行特 征检测、匹配,并利用三视图约束去除误匹配点;
[0030] 4)将单元Ni,(i = 1)的第一张序列照片的相机参数初始化,并采用RANSANC算法求 出单元化,(1 = 1)中另外两张序列照片的基础矩阵F、本质矩阵E,得到该两张序列照片中每 张序列照片的相机参数R:、!\和三维点云坐标Mj;
[0031] 5)上一单元Ni,(i = l,2,3…η)中公共序列照片的相机参数Ri、Ti作为下一单元 化+1,(1 = 1,2,3~1〇第一张序列照片的相机参数的初始值,并求解下一单元化+1,(1 = 1,2, 3…η)中其他两张序列照片的相机参数Ri、Ti和三维点云坐标Mj,以此计算出单元Ni+1,(i = 1,2,3…η)其他两张序列照片中每张序列照片的相机参数RnTjP三维点云坐标MJ;
[0032] 6)利用步骤4、5得到其他单元中每张序列照片的相机参数RnTjP三维点云坐标 Mj,并将所有的序列照片的相机参数RnTjP三维点云坐标W作为PMVS算法的输入,从而得 到场景对象的种子面片;
[0033] 7)种子面片的扩展:将序列照片划分为若干个图像块QUj),利用相邻种子面 片具有位置和法向相似的特性对种子面片进行扩展,从而使扩展后的种子面片逐步覆盖目 标物体的表面;
[0034] 8)种子面片过滤:采用局部灰度一致性约束和全局可见一致性约束来剔除扩展错 误的种子面片。
[0035] 上述技术方案中,步骤1)中相机围绕场景目标采集序列照片时,相邻两张序列照 片之间的角度为5°~15°,采集的所述序列照片数量为奇数,采集的序列照片至少为3张。 [0036]上述技术方案中,步骤1)中采集的序列照片为45张。
[0037] 上述技术方案中,步骤3)中采用SIFT算法对序列照片进行特征检测、匹配,从而计 算出每个单元中三张序列照片的同名像点my,其中任意两张序列照片的同名像点在另一张 序列照片上的匹配点在该任意两张序列张片同名像点对应极线的交点上,若匹配点与交点 的距离超过两个像素则作为误匹配点删除,图1中χ、,、^为任意单元三张序列照片的同名 像点,其中两张序列照片的同名像点x'、x〃的匹配点在点该两张序列照片同名像点x'、x〃对 应的极线1 12、113的交点上,如果匹配点与这个交点的距离超过2个像素则作为误匹配点删 除。
[0038] 上述技术方案中,步骤4)中初始化后的单元化,(1 = 1)的第一张序列照片的相机 参数Ri为3 X 3的单位矩阵,1\为3 X 1的零矩阵;
[0039] 采用RANSANC算法求解基础矩阵F,结合相机内参K求解本质矩阵E,然后对本质矩 阵E进行奇异值分解得到相机参数!^、!^,并得到三维点云坐标…,然后采用集束调整 (Bundle Adjustment)算法局部优化序列照片的相机参数Ri、Ti、三维点云坐标Mj,通过集束 调整(bundle adjustment)算法使三维点云坐标Mj的重投影点与在第i张序列照片的同名 像点差值的平方和最小,其计算式为:
[0040] η?ηΚι;ι·.Μ] Ef=J. 〇 (m,;y· - ΚγΚ-,χΓ^Μρ2,
[0041] 其中D是欧氏距离,N为序列照片数,M为三维点云坐标数。
[0042]上述技术方案中,步骤6)中采用Harris和D0G算子检测序列照片的特征点,找到满 足对极几何约束的潜在匹配点对,对潜在匹配点对采用三角原理方法求得三维点云坐标 Mj,种子面片中心C(p)为三维点云坐标Μρ序列照片集合为ImzihlizldJ,...,!!},空间 面片P的单位法向量n(p)为由空间面片中心c(p)指向参考图像R(p)的相机光心,即:
[0043] c(p)^{Triangulation from f and f/ }
[0044] n(p) ·<- c(p)(){/,) / ?<;·(p) 0(/,} |
[0045] R(p)-Ii
[0046] 同时初始化¥(?),,(?),¥(?)为准可见图像集,¥(?)序列照片的空间面片?的单位 法向量n(p)和空间面片中心c(p)所在光线之间的夹角小于60°,即:
[0048]其中0(li)为序列照片Ii对应相机的光心,
[0049] V$(p)为可见图像集,V$(p)中的序列照片的空间面片中心c(p)投影到参考图像R (P)与该序列照片之间的灰度一致性函数的值大于阈值α = 0.4,即:
[0050] V*(p) = {l|leV(p),h(p,I,R(p))>a},
[0051] 其中h(p,I,R(p))是指序列照片I和参考图像R(p)之间的灰度一致度量,取为1减 去其NCC(归一化相交相关值)值,然后用空间面片p在集合V$(p)上的灰度一致性函数
来进一步优化空间面片中心c(p)和 空间面片的单位法向量n(p),用优化后种子面片中心c(p)和种子面片的单位法向量n(p)来 更新面片的V(p)、V$ (p),如果|V$ (p) | > γ,则生成种子面片成功,然后将每张序列照片Ijij 分为大小为β X β(β = 32)的图像块Ci (X,y),任意图像块Ci (X,y)有两个对应的集合Qi (X,y)、 Q^(x,y)用来存储该图像块对应的可见空间面片,其中,x,y为序列照片1:的索引;然后把生 成的种子面片投影到划分的序列照片上,记录种子面片所在的图像块(^(^ 7),
[0053]上述技术方案中,步骤7)中通过种子面片p的扩展使得至少在每个图像块中重建 出一个种子面片,
[0054]上述技术方案中,步骤8)中扩展错误的种子面片p包括外部种子面片和内部种子 面片,将种子面片扩展、过滤循环迭代3次使目标物体表面被稠密的种子面片完全覆盖。 [0055]上述实施例和说明书中描述的只是说明本发明的原理和最佳实施例,在不脱离本 发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保 护的本发明范围内。
【主权项】
1. 一种大场景对象的Ξ维重建方法,其特征在于:包括W下步骤: 1) 通过相机从不同视角、位置对场景对象采集若干张序列照片,并按照采集的先后顺 序将若干张序列照片编号为Ii,(i = l,2,3…n); 2) 将序列照片按照编号的先后顺序划分为若干单元扣,。=1,2,3-'11),每个所述单元 包括依次采集的Ξ张序列照片,并将单元Νι,α = 1,2,3···η)的第Ξ张序列照片作为相邻下 一单元Νι+ι,α = 1,2,3···η)的第一张序列照片,并将该序列照片作为该两相邻单元的公共 序列照片; 3) 通过采用SIFT算法对每个单元Νι,α = 1,2,3…η)包含的Ξ张序列张片进行特征检 巧。、匹配,并利用Ξ视图约束去除误匹配点; 4) 将单元Ni,(i = l)的第一张序列照片的相机参数初始化,并采用RANSANC算法求出单 元Νι,α = 1)中另外两张序列照片的基础矩阵F、本质矩阵E,得到该两张序列照片中每张序 列照片的相机参数Ri、Ti和Ξ维点云坐标Mj; 5) 相邻两单元中将单元Ni,a = l,2,3…η)中公共序列照片的相机参数Ri、Ti作为其相 邻下一单元Νι+ι,α = 1,2,3…η)的公共序列照片的相机参数的初始值,并求解其相邻下一 单元Ni+i,α = 1,2,3···η)中其他两张序列照片的相机参数Ri、Ti和Ξ维点云坐标Mj,W此计 算出单元扣+1,。= 1,2,3-,11)其他两张序列照片中每张序列照片的相机参数私、1'1和;维点 云坐标Mj; 6) 利用步骤4、5得到其他单元中每张序列照片的相机参数Ri、Ti和Ξ维点云坐标Mj,并 将所有的序列照片的相机参数Ri、Ti和Ξ维点云坐标心作为PMVS算法的输入,从而得到场景 对象的种子面片; 7) 种子面片的扩展:将序列照片Ii划分为若干个图像块Ci(x,y),利用相邻种子面片具 有位置和法向相似的特性对种子面片进行扩展,从而使扩展后的种子面片逐步覆盖目标物 体的表面; 8) 种子面片过滤:采用局部灰度一致性约束和全局可见一致性约束来剔除扩展错误的 种子面片。2. 根据权利要求1所述的一种大场景对象的Ξ维重建方法,其特征在于:步骤1)中相机 围绕场景目标采集序列照片时,相邻两张序列照片之间的角度为5°~15°,采集的所述序列 照片数量为奇数,采集的序列照片至少为3张。3. 根据权利要求1所述的一种大场景对象的Ξ维重建方法,其特征在于:步骤3)中采用 SIFT算法对序列照片进行特征检测、匹配,从而计算出每个单元中Ξ张序列照片的同名像 点mu,其中任意两张序列照片的同名像点在另一张序列照片上的匹配点在该任意两张序列 张片同名像点对应极线的交点上,若匹配点与交点的距离超过两个像素则作为误匹配点删 除。4. 根据权利要求1所述的一种大场景对象的Ξ维重建方法,其特征在于:步骤4)中采用 RANSANC算法求解基础矩阵F,结合相机内参K求解本质矩阵E,然后对本质矩阵E进行奇异值 分解得到相机参数Ri、Ti,并得到Ξ维点云坐标Mj,然后采用集束调整算法局部优化序列照 片的相机参数Ri、Ti、Ξ维点云坐标Mj,通过集束调整算法使Ξ维点云坐标Mj的重投影点与 在第i张序列照片的同名像点mu差值的平方和最小,其计算式为:其中D是欧氏距离,N为序列照片数,Μ为Ξ维点云坐标数。5. 根据权利要求1所述的一种大场景对象的Ξ维重建方法,其特征在于:步骤7)中通过 种子面片的扩展使得至少在每个图像块中重建出一个种子面片。6. 根据权利要求1所述的一种大场景对象的Ξ维重建方法,其特征在于:步骤8)中扩展 错误的种子面片包括外部种子面片和内部种子面片,将种子面片扩展、过滤依次循环迭代3 次使目标物体表面被稠密的种子面片完全覆盖。7. 根据权利要求2所述的一种大场景对象的Ξ维重建方法,其特征在于:采集的序列照 片为45张。
【文档编号】G06T17/00GK106097436SQ201610406617
【公开日】2016年11月9日
【申请日】2016年6月12日
【发明人】林靖宇, 郑恩
【申请人】广西大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1