一种面向多视图三维重建的初始视图选取方法与流程

文档序号:20922588 发布日期:2020-05-29 14:21
一种面向多视图三维重建的初始视图选取方法与流程

本发明属于计算机视觉与计算机图形学领域,具体涉及一种面向多视图三维重建的初始视图选取方法。



背景技术:

多视图三维重建是一种从图像序列获取场景的三维模型的一种技术,其技术本身被广泛地应用于虚拟现实、增强现实、城市规划、游戏、军事仿真、场景监控、变化检测、地图导航和无人驾驶等领域。由于多视图三维重建采用的是一种增量重建方法,即其中的两幅视图开始计算初始模型,然后逐渐的添加图像序列,直到输入图像序列处理完毕。由于初始视图的选取对三维模型的之间具有重要影响,对于一些规模较大的场景进行重建时,如果初始视图选取不当,可能会导致无法重建出场景的三维模型。

为了能够有效得进行初始视图选取,以便能够重建出高质量的三维模型,现有技术中,科研人员提出了很多方法。例如论文《nextbestviewplanningforactivemodelimprovement》提出了一种初始视图选取方法,但该方法依赖于三维模型(dunne,frahmjm.nextbestviewplanningforactivemodelimprovement.britishmachinevisionconference,bmvc2009,london,uk,september7-10,2009.proceedings.dblp,2009.)论文《covariancepropagationandnextbestviewplanningfor3dreconstruction》提出的方法依赖于不确定性迭代机制,降低了方法的时间效率,因此效率较低(haners.,heydena.covariancepropagationandnextbestviewplanningfor3dreconstruction.computervision–eccv2012.eccv2012.lecturenotesincomputerscience,vol7573.springer,berlin,heidelberg)。论文《howtoselectgoodneighboringimagesindepth-mapmergingbased3dmodeling》提出的方法依赖于量子启发式搜索算法,导致三维重建过程很耗时,因此效率较低(shens,huz.howtoselectgoodneighboringimagesindepth-mapmergingbased3dmodeling.ieeetransactionsonimageprocessing,2014,23(1):308-318.)。论文《matchselectionandrefinementforhighlyaccuratetwo-viewstructurefrommotion》的方法仅适用于两视图的三维重建场景,因此非常具有局限性,很难是由多视图的三维场景重建(liuz,monassep,marletr.matchselectionandrefinementforhighlyaccuratetwo-viewstructurefrommotion.2015.)。论文《determininganinitialimagepairforfixingthescaleofa3dreconstructionfromanimagesequence》提出的方法仅适用于固定场景范围下的三维重建,因此具有很强的局限性(bederc,steffenr.determininganinitialimagepairforfixingthescaleofa3dreconstructionfromanimagesequence.patternrecognition.springerberlinheidelberg,2006.)。

根据对现有技术的分析,现有技术中的方法,存在着以下缺点:选取初始视图的效率较低,具有较强的局限性,只能适用特定的应用场景,当用于其他场景时,选取效果差,难以适用于任意场景下三维重建的初始视图选取,不具有通用性。



技术实现要素:

技术问题:本发明提供一种面向多视图三维重建的初始视图选取方法,该方法能从大量的输入图像中,快速地为多视图三维重建系统自动的选取有效的两幅初始化视图,并具有较好的选取效果,能够适用任何场景的三维重建的初始视图选取,具备较强的通用性。

技术方案:本发明一种面向多视图三维重建的初始视图选取方法,包括以下步骤:

s1:输入应用场景的图像序列、特征点以及所采用的摄像机的内部参数,所述特征点为二维特征点,所述摄像机的内部参数包括摄像机的焦距、主点和畸变系数;

s2:根据输入的图像序列和特征点,计算任意两幅视图之间的基本矩阵;

s3:结合摄像机的内部参数与通过步骤s2得到的基本矩阵,计算摄像机的投影矩阵;

s4:根据摄像机的投影矩阵,计算三维点在图像上的投影点和反投影误差;

s5:根据输入的图像序列和特征点,计算任意两幅视图之间的单应性矩阵和单应性性误差;

s6:根据步骤s4得到的反投影误差和步骤s5得到的单应性误差,得到任意两幅视图之间的特征点位置误差之和;

s7:根据步骤s6得到特征点位置误差之和,选取输入图像序列中特征点位置误差之和最小的两幅视图作为多视图重建的初始视图。

进一步地,所述步骤s3中,计算所述摄像机的投影矩阵按以下步骤:

s3.1:根据步骤s2得到的基本矩阵,并结合摄像机内部参数,计算出两幅视图之间的本征矩阵;

s3.2:对本征矩阵进行分解,同时结合摄像机的内部参数,计算出摄像机的投影矩阵。

进一步地,所述步骤s4中,三维点在图像上的投影点的计算方法为:x=psx,其中x为二维点,x为三维点,ps表示摄像机的投影矩阵。

进一步地,所述步骤s4中,反投影误差的计算方法为:

e2d(x,xm)=||x-xm||,

e2d(x′,x′m)=||x′-x′m||,

e2d(xm,x′m)=||xm-x′m||,

式中,x为三维点在视图i上的投影点,x'为三维点在视图i′上的投影点,xm为三维点在摄像机c上的投影点,x′m为三维点在摄像机c′上的投影点,e2d(x,xm)表示投影点x与xm之间的反投影误差,e2d(x′,x′m)表示投影点x'与x′m之间的反投影误差,e2d(xm,x′m)表示投影点xm与x′m之间的反投影误差。

进一步地,所述步骤s6中,采用直接变换算法计算任意两幅视图之间的单应性矩阵。

进一步地,所述步骤s6中,所述单应性误差的计算方法为:

e2d(x,x′h)=||x-hx′||,

e2d(x′,xh)=||x′-hx||,

e2d(x′h,xh)=||hx-hx′||,

式中,x′h为点x的单应性点,xh为点x′的单应性点,h为单应性矩阵,e2d(x,x′h)为点x与其单应性点x′h之间的误差,e2d(x′,xh)为点x′与其单应性点xh之间的误差,e2d(x′h,xh)为两个单应性点x′h与xh之间的误差。

进一步地,所述步骤s7中,计算特征点位置误差之和的方法为:

s7.1:计算反投影误差之和,计算公式为:

e2d(m)=e2d(x,xm)+e2d(x′,x′m)+e2d(xm,x′m),

式中,e2d(m)表示反投影误差之和,m表示两幅视图之间的特征点匹配集合,e2d(x,xm)表示三维点在视图i上的反投影误差之和,e2d(x′,x′m)表示三维点在视图i′的反投影误差之和,e2d(xm,x′m)表示两幅视图上的投影点之间的反投影误差之和;

s7.2:计算单应性误差之和,计算公式为:

e2d(h)=e2d(x,x′h)+e2d(x′,xh)+e2d(x′h,xh),

式中,e2d(h)为单应性误差之和,e2d(x,x′h)为视图i上的特征点的单应性误差之和,e2d(x′,xh)为视图i′上的特征点的单应性误差之和,e2d(x′h,xh)表示两幅视图对应的单应性点之间的单应性误差之和。

s7.3:计算两幅视图之间的特征点位置误差之和e2d(i,i′),计算法公式为:e2d(i,i′)=e2d(m)+e2d(h)。

进一步地,所述步骤s2中,采用归一化的八点算法,计算出任意两幅视图之间的基本矩阵。

进一步地,所述步骤s5中,采用直接线性变化算法计算单应性矩阵。

有益效果:本发明与现有技术相比,具有以下优点:

(1)本发明所提出的用于多视图三维重建的初始视图选取方法,采用归一化的八点算法计算任意两幅视图之间的基本矩阵,计算速度快,准确率高,因此有效地提高了初始视图选取的效率和精度,使得本发明的方法适用于大规模的三维重建系统。

(2)本发明结合摄像机的内部参数先计算两幅视图之间的本征矩阵,然后对本征矩阵进行奇异值分解,然后计算摄像机的投影矩阵,运算速度快,有效地提高了整个方法的时间效率,从而能够快速地完成初始视图的选取。

(3)本发明根据投影矩阵计算三维点在两幅视图上的反投影误差,并且根据反投影误差选取初始视图,使得初始视图选取的更加适合准确,保证了三维模型的几何一致性,从而有效地提高三维系统重建的精度。

(4)本发明采用直接线性变化算法计算任意两幅视图之间的单应性矩阵,该算法运算速度快,鲁棒性强,从而有效地提高了算法的时间效率,能够快速地进行初始视图选取。并根据单应性矩阵,计算出单应性误差,根据单应性误差保证了选出的初始视图具有最小的平面运行和最佳的视角范围,从而能够从输入图像序列中自动的为多视图三维重建系统选取最好的初始视图,以便重建出高质量的三维模型。

附图说明

图1为本发明的一种面向多视图三维重加的初始视图选取方法的原理图;

图2为分别采用本发明的方法与传统方法选取初始视图进行三维重建的结果对比图。

具体实施方式

下面结合实施例和说明书附图对本发明作进一步的说明。

本发明提供一种面向多视图三维重建的初始视图选取方法,通过该方法可以对所视图三维重建系统自动的选取最好的初始化视图,确保重建出高质量的三维模型,其应用场景包括:虚拟现实、增强现实、城市规划、游戏、军事仿真、场景监控、变化检测、地图导航和无人驾驶等。

图1为本发明一种面向多视图三维重建的初始视图选取方法的原理图,结合图1对本发明的方法的步骤进行说明。

s1:输入场景的图像序列、特征点以及所采用的摄像机的内部参数。

因为本发明的方法的目的是为三维重建系统选择两幅初始化视图,这两幅视图会从输入的图像序列中选择,因此输入的图像序列包括了若干张待重建场景的视图。因为视图均为二维视图,特征点是视图上的特征对应的点二维点,因此特征点均为二维特征点。对于摄像机的内部参数,包括摄像机的焦距、主点和扭曲系数。

s2:根据输入的图像序列和特征点,计算任意两幅视图之间的基本矩阵。

输入场景的图像序列di={i1,i2,…,ik},其中i1,i2,…,ik代表图像序列中的一个视图,图像序列中共有k个视图。本发明的方法的目的是从di中为三维重建系统选取两幅初始化视图i和i′,i和i′均为i1,i2,…,ik中的一幅。根据对极集合原理,由i和i′之间的特征点匹配集合m,可以计算出i和i′之间的基本矩阵fm,具体的,可以采用七点算法或八点算法。本发明中优选的是归一化的八点算法,该算法的计算步骤,可参考《计算机视觉中的多视图几何》一书(《multipleviewgeometryincomputervision》)。归一化的八点算法,计算速度快,准确率高,因此有效地提高了初始视图选取的效率和精度,使得本发明的方法适用于大规模的三维重建系统。

s3:结合摄像机的内部参数与步骤s2得到的基本矩阵,计算摄像机的投影矩阵。

假设i和i′分别对应于摄像机c和c′,且摄像机c和c′分别带有一个3×4的投影矩阵p和p′以及3×3的内部参数矩阵k和k′。有了基本矩阵fm,结合摄像机的内部参数矩阵k和k′,可以计算出两幅视图对应的投影矩阵pm和p′m。计算方法为:

s3.1:根据步骤s2得到的基本矩阵fm,并结合摄像机内部参数,计算出两幅视图之间的本征矩阵e。摄像机的内部参数均为已知的,因此计算本征矩阵的速度较快,进一步地提高了初始视图选取的效率。

s3.2:对步骤s3.1得到的本征矩阵e进行分解,同时结合摄像机内部参数,计算出摄像机的投影矩阵。即对本征矩阵e进行奇异值分解,计算方法如下:

e=udiag(1,1,0)vt(1)

式中,u和v分别表示由矩阵e的奇异值的左奇异向量和右奇异向量构成的矩阵,因此,摄像机的投影矩阵ps计算方法如下:

ps=[uwvt|±u3]andps=[uwtvt|±u3](2)

其中,w是一个特征的矩阵,u3表示矩阵u的第三列,矩阵w的如下:

同时,二维点、三维点与摄像机投影矩阵之间存在如下关系:

x=psx(3)

x为二维点,x为三维点,ps是摄像机投影矩阵。说明的是,因为式(3)中均为任意性表示,因此并不影响后面行文中使用相同的符号。

对本征矩阵进行奇异值分解,然后结合摄像机内部参数计算摄像机的投影矩阵,不仅具有较高的计算速度,同时保证所求投影矩阵具有较高的精度,从而使得本发明的方法能够快速准确地进行初始视图选取。

s4:根据步骤s2得到的摄像机的投影矩阵,计算三维点在图像上的投影点和反投影误差。

记m=(x,x′)表示两个特征点之间的匹配关系,m表示i和i′之间的特征点匹配集合,其中x表示三维点x在视图i上的投影点,则有x=px,同样的,x′表示三维点x在视图i′上的投影点,则有x′=p′x。

图1展示了x和x′等二维点与三维点x之间的对应关系。因此,根据pm和p′m可以计算出三维点x分别在摄像机c和c′上对应的投影点xm和x′m,计算方法如式(4)和(5)所示。

xm=pmx(4)

x′m=p′mx(5)

一旦获得xm和x′m,我们可以计算出三维点x分别在i和i′上的反投影误差e2d(x,xm)、e2d(x′,x′m)和e2d(xm,x′m),计算方法如式(5)~(7)所示。

e2d(x,xm)=||x-xm||(6)

e2d(x′,x′m)=||x′-x′m||(7)

e2d(xm,x′m)=||xm-x′m||(8)

其中,e2d(x,xm)表示投影点x与xm之间的反投影误差,e2d(x′,x′m)表示投影点x'与x′m之间的反投影误差,e2d(xm,x′m)表示投影点xm与x′m之间的反投影误差。

根据投影矩阵计算三维点在两幅视图上的反投影误差,并且根据反投影误差选取初始视图,使得初始视图选取的更加适合准确,保证了三维模型的几何一致性,从而有效地提高了三维系统重建的精度。

s5:对于给定的图像序列和特征点,计算任意两幅视图之间的单应性矩阵和单应性误差。

在多视图几何领域存在一种单应性约束关系,即存在一个3×3的单应性矩阵h,对与单应性矩阵h的计算可采用直接线性变化方法,详细步骤可以参考《计算机视觉中的多视图几何》一书(《multipleviewgeometryincomputervision》)。采用直接线性变化方法计算单应性矩阵,速度快,鲁棒性强,从而有效地提高了算法的时间效率,能够快速地进行初始视图选取。

当得到单应性矩阵h后,使得视图i上的点x与视图i′上的点x′满足如下关系:

x′=xh=hx(9)

x=x′h=hx′(10)

其中,x′h为点x的单应性点,xh为点x′的单应性点,单应性点是指在单应性矩阵约束下的点,因此,可以计算单应性误差,单应性误差就是值在单应性矩阵约束下的特征点位置误差,具体计算公式为:

e2d(x,x′h)=||x-hx′||(11)

e2d(x′,xh)=||x′-hx||(12)

e2d(x′h,xh)=||hx-hx′||(13)

其中,x′h为点x的单应性点,xh为点x′的单应性点,h为单应性矩阵,e2d(x,x′h)为点x与其单应性点x′h之间的误差,e2d(x′,xh)为点x′与其单应性点xh之间的误差,e2d(x′h,xh)为两个单应性点x′h与xh之间的误差。

根据单应性矩阵,快速地准确地计算出两幅视图上的特征点在单应性矩阵约束下的特征点位置误差,即单应性误差,根据单应性误差选取初始视图,保证了选出的初始视图具有最小的平面运行和最佳的视角范围,从而能够从输入图像序列中自动的为多视图三维重建系统选取最好的初始视图,以便重建出高质量的三维模型。

s6:根据反投影误差和单应性误差,计算任意两幅视图之间的特征点位置误差之和。

由于视图i和i′之间的特征匹配集合m包含多个点对之间的匹配,因此,可以计算出所有三维点对应的投影点之间的反投影误差之和,计算方法如式(14)~(17)所示。

e2d(m)=e2d(x,xm)+e2d(x′,x′m)+e2d(xm,x′m)(17)

式中,e2d(m)表示反投影误差之和,m表示两幅视图之间的特征点匹配集合,e2d(x,xm)表示三维点在视图i上的反投影误差之和,e2d(x′,x′m)表示三维点在视图i′的反投影误差之和,e2d(xm,x′m)表示两幅视图上的投影点之间的反投影误差之和,n表示有n个点对,i为序号。

同理可以获得单应性误差之和,计算方法如式(18)~(21)所示。

e2d(h)=e2d(x,x′h)+e2d(x′,xh)+e2d(x′h,xh)(21)

式中,e2d(h)为单应性误差之和,e2d(x,x′h)为视图i上的特征点的单应性误差之和,e2d(x′,xh)为视图i′上的特征点的单应性误差之和,e2d(x′h,xh)表示两幅视图对应的单应性点之间的单应性误差之和,n表示有n个点对,i为序号。

从而,根据式(17)和式(22),得到特征点位置误差之和e2d(i,i′),即:

e2d(i,i′)=e2d(m)+e2d(h)(22)

s7:根据步骤s6得到的特征点位置误差之和,选取输入图像序列中特征点位置误差之和最小的两幅视图作为多视图重建的初始视图。

由图1表示的物理意义可知,选取的初始视图i和i′,它们之间的e2d(x,xm)和e2d(x′,x′m)越低越好,此外,e2d(xm,x′m)是对两幅视图之间的距离进行约束,保证两幅视图之间的基本矩阵约束关系。同理,对于增量重建过程中新添加的视图it需要满足单应性约束关系,因此e2d(h)的值越低越好。

至此,我们可以从数据库di={i1,i2,…,ik}选取e2d(m)值最小的两幅视图i和i′作为初始化视图,选取e2d(h)值最小的视图it作为增量视图参与多视图三维重建,直到数据库di中的所有视图处理完毕。本发明的方法能够应用于任何场景的三维重建过程中,初始视图的选取,因此具有较强的通用性。

如图2所示,为本发明的采用本发明的初始视图选取方法选取初始视图与采用传统方法选取初始视图在三维重建过程中的计算结果对比。其中第一行是输入的图像序列,第二行的左侧为采用传统方法(即每次选择特征匹配数目最多的两幅视图作为初始化序列对)选取初始视图后生成的点云模型,第二行的右侧是采用本发明的方法选取初始视图后生成的点云模型;可以看出使用本发明的方法,生成的点云模模型更加稠密且几何一致性与真实场景较为接近,因此本发明的方法能够有效地提高三维系统重建的精度。

上述实施例仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和等同替换,这些对本发明权利要求进行改进和等同替换后的技术方案,均落入本发明的保护范围。

再多了解一些
当前第1页 1 2 3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1