本發(fā)明屬于計算機視覺與計算機圖形學(xué)鄰域,具體地,涉及一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法。
背景技術(shù):
大規(guī)模場景的實時魯棒的三維重建在城市規(guī)劃、游戲和軍事仿真中具有重要的作用。由于場景中存在的光照變化、目標之間的遮擋、采集數(shù)據(jù)存在噪聲等因素的影響,在多視圖三維重建過程中,導(dǎo)致難以獲取場景的精確模型?,F(xiàn)有的一些三維重建系統(tǒng)采用人工方式對場景模型進行修復(fù),操作如此之耗時。人們迫切希望尋找一種魯棒的集束調(diào)整方法對系統(tǒng)生成的三維點云模型進行優(yōu)化,以便簡化人工修復(fù)過程,同時獲得精確的三維場景模型。
相關(guān)的研究論文有:
《一種準線性集束調(diào)整方法》
《Multicore Bundle Adjustment》
《Bundle Adjustment in the Large》
《Bundle adjustment—a modern synthesis》
《sba-A Software Package for Generic Sparse Bundle Adjustment》
《A Consensus-Based Framework for Distributed Bundle Adjustment》
相關(guān)的專利有:
《復(fù)雜場景的二維視頻轉(zhuǎn)換為三維視頻的方法與系統(tǒng)》
《一種基于光場數(shù)字重聚焦的快速三維重建方法與系統(tǒng)》
《一種圖像三維重建方法及系統(tǒng)》
雖然現(xiàn)有集束調(diào)整方法在大規(guī)模場景的三維重建中距離實際應(yīng)用還有很大距離,但是一些理論思想為我們設(shè)計出適用于大規(guī)模場景下的實時魯棒的集束調(diào)整方法提供了技術(shù)支持。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:如何在有限的內(nèi)存空間下實時魯棒的求解大規(guī) 模三維重建的集束調(diào)整問題,使得一系列的大規(guī)模三維重建變成可能。
為了解決上述技術(shù)問題,本發(fā)明提出了一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法,采用魯棒的損失函數(shù)度量計算值與目標值之間的誤差,并根據(jù)攝像機與三維點之間的稀疏性對大規(guī)模集束調(diào)整問題進行稀疏分解;首先計算攝像機參數(shù)信息,然后求解三維點云信息,從而用于一系列大規(guī)模場景的精確三維重建。
本發(fā)明采用的技術(shù)方案是:
一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法,包括以下步驟:
S1:對于給定的攝像機姿態(tài)和場景的三維點云信息,給出魯棒的集束調(diào)整方程;
S2:對于大規(guī)模三維重建的集束調(diào)整問題,根據(jù)攝像機與場景中三維點之間的稀疏關(guān)系,對大規(guī)模集束調(diào)整問題進行分解;
S3:根據(jù)稀疏分解后的攝像機正態(tài)方程,求解攝像機的旋轉(zhuǎn)矩陣和平移向量;
S4:將S3中求解出的攝像機信息帶入稀疏分解后所對應(yīng)的三維點的正態(tài)方程,求解出世界坐標系下的三維點坐標;
S5:將S3和S4求解出的攝像機參數(shù)和三維點坐標信息代入對應(yīng)的正態(tài)方程,反復(fù)迭代,即可獲得精確的攝像機姿態(tài)和三維點信息。
其中,所述步驟S1中魯棒的集束調(diào)整方程:采用Huber損失函數(shù)度量所求值與目標值之間的誤差,避免噪聲數(shù)據(jù)的影響。
其中,所述步驟S2中場景分解的依據(jù)為:攝像機與三維點之間存在稀疏性。
其中,所述步驟S3中求解攝像的正態(tài)方程(U-WV-1WT)Δci=rci-WV-1rmi所用方法為:LM算法和LDL矩陣分解算法。LM算法采用文獻《Levenberg–Marquardt methods with strong local convergence properties for solving nonlinear equations with convex constraints》,LDL算法采用《A fast randomized eigensolver with structured LDL factorization update》。
其中,所述步驟S4中三維點云信息的求解方法為:將攝像機參數(shù)帶入場景分解后的三維點的正態(tài)方程,即可獲得三維點云模型。
其中,所述步驟S5中獲得精確的攝像機參數(shù)和三維點云模型的方法為:迭代優(yōu)化算法,計算方法為(U-WV-1WT)Δci=rci-WV-1rmi和 Δmi=V-1(rmi-WTΔci)。
其中,1)采用Huber損失函數(shù)度量計算值與目標值之間的誤差避免噪聲數(shù)據(jù)的影響;2)將大規(guī)模集束調(diào)整問題分解為在有限內(nèi)存空間內(nèi)可解的問題;3)將1)和2)同時使用,既能提高時間效率又能增強算法的魯棒性。
所述的一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法,其特征在于,所述步驟S3中采用LM和LDL算法對攝像機參數(shù)的正態(tài)方程(U-WV-1WT)Δci=rci-WV-1rmi進行求解。其中,U、V和W為分塊對角矩陣;Δci為攝像機參數(shù)對應(yīng)的增量;rci為攝像機參數(shù)的估計值與精確之間的誤差;rmi為三維點參數(shù)的估計值與精確值之間的誤差。
所述的一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法,其特征在于,所述步驟S4中將攝像機信息帶入三維點的正態(tài)方程,采用反代法計算三維點云信息,計算方法為:Δmi=V-1(rmi-WTΔci)。其中,V和W為分塊對角矩陣;Δmi為三維點參數(shù)對應(yīng)的增量;Δci為攝像機參數(shù)對應(yīng)的增量;rmi為三維點參數(shù)的估計值與精確值之間的誤差。
本發(fā)明的有益效果是:
本發(fā)明所提出的用于大規(guī)模三維重建的實時魯棒的集束調(diào)整方法利用魯棒的Huber損失函數(shù)精確度量誤差,避免噪聲數(shù)據(jù)的影響;其次,根據(jù)攝像機與三維點之間的稀疏性,對大規(guī)模集束調(diào)整問題進行分解,使得在有限的內(nèi)存空間內(nèi)能夠求解大規(guī)模三維重建的集束調(diào)整問題。
附圖說明
圖1為本發(fā)明一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法的處理流程圖;
具體實施方式
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例僅用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
本發(fā)明公開了一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法,通過該方法可以對場景的三維點云模型進行優(yōu)化,從而獲得大規(guī)模場景的精確的三維點云模型,應(yīng)用場景包括:城市規(guī)劃、三維打印、建筑工程、游戲與軍事仿真等。
如圖1所示,為本發(fā)明一種面向大規(guī)模三維重建的實時魯棒的集束調(diào)整方法的處理流程圖,圖中表示的步驟包括:
a:對于給定的攝像機參數(shù)和三維點,魯棒的集束調(diào)整方程如下:
其中,Xi,j表示第i個攝像機下可見的第j個三維點,xi,j表示Xi,j在圖像上的投影點,H(·)表示Huber損失函數(shù)。
集束調(diào)整的目的是使得E最小,最小化表達形式為:
其中,r(P)=F(P)-x,F(x)=Ki[Ri|ti]Xi,j表示P的投影函數(shù),P為參數(shù)向量。
首先計算函數(shù)F(P)在點P處的一階泰勒展開式,如式(3)所示.
F(P+Δ)=F(P)+JΔ (3)
其中,Δ表示參數(shù)P的增量。
令Pi+1=Pi+Δi,由式(3)可知:
F(Pi+1)-x=F(Pi)+JΔi-x (4)
由于F(Pi)-x=ri,因此可以得出式(5)。
ri+1=F(Pi+1)-x=ri+JΔi (5)
由式(5)可知要使得最小,等同于最小化目標函數(shù)ri+JΔi,如式(6)所示。
令ri+JΔi=0,可以獲得式(7)。
JΔi=-ri (7)
根據(jù)LM算法,對式(7)進行變換,獲得式(8)所示的正態(tài)方程(normal equation)。
(JTJ+λdiag(JTJ))Δi=-JTri (8)
至此,可知求解參數(shù)向量P的前提是獲得每次的迭代增量Δi。因此,由以上分析可知,集束調(diào)整的目標是求解如式(8)所示的正態(tài)方程的解。
b:根據(jù)攝像機與三維點之間的稀疏性對打過集束調(diào)整問題進行分解,其稀疏性如圖1所示。
在集束調(diào)整中,參數(shù)向量P=[cTmT]由相機參數(shù)和三維點 組成。為了便于描述問題,將參數(shù)向量P進行分解,如式(9)所示。
P=(P1,P2,…,Pm+n) (9)
其中,pij表示第j幅圖像對應(yīng)的攝像機參數(shù)和三維點參數(shù)。
根據(jù)可知,當i≠k時,因此,獲得一個稀疏的雅克比矩陣J。
J=[JcJm] (10)
當i=k時,矩陣元素為非零,其他元素為零。
同理,存在如式(11)所示的增量Δ。
Δ=[ΔcΔm]T (11)
因此,(JTJ+λdiag(JTJ))可改寫為式(12)。
其中,U和V為分塊對角矩陣。
至此,式(8)可以改寫為式(13)所示的正態(tài)方程。
在式(13)兩邊同時乘以矩陣A,結(jié)果如式(15)所示。
展開式(15)可以獲得式(16)和(17)。
(U-WV-1WT)Δci=rci-WV-1rmi (16)
Δmi=V-1(rmi-WTΔci) (17)
在三維重建中,根據(jù)攝像機與三維點之間的稀疏性對集束調(diào)整問題進行稀疏分解,可以將式(8)轉(zhuǎn)化為求解式(16)所表示的小規(guī)模的正態(tài)方程的解。當求解出攝像機的增量參數(shù)Δci,采用反代法(back substituting)將Δci代入式(17)即可求解出三維點的參數(shù)增量Δmi。至此,將集束調(diào)整的求解轉(zhuǎn)換為求解式(16)所示的攝像機增量參數(shù)所對應(yīng)的正態(tài)方程的解。
c攝像機參數(shù)的正態(tài)方程求解。
由于矩陣(U-WV-1WT)是對稱正定矩陣,采用LDL矩陣分解算法求解正態(tài)方程(16)的解。
令A(yù)=(U-WV-1WT),A可分解為:
A=LDLT (18)
計算式(16)中的Δci需要以下步驟:
Step1:計算方程LΔc′=rc-WV-1rm的解。
由于L是下三角矩陣,因此,采用前向替代法求解Δc′,計算方法如式(19)所示。
Step2:計算Δc″,方法如式(20)所示。
Δc″=D-1Δc′ (20)
Step3:計算方程LTΔc=Δc″的解。由于LT是上三角矩陣,因此采用反代法求解Δc,計算方法如式(21)所示。
通過以上步驟,即可求得正態(tài)方程(16)的解,通過反代法,將Δci代入式(17)即可求解出Δmi。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和替換,這些改進和替換也應(yīng)視為本發(fā)明的保護范圍。