本發(fā)明涉及一種基于整體最小二乘的附加幾何約束的點(diǎn)云建模方法,屬于三維激光掃描技術(shù)領(lǐng)域。
背景技術(shù):
針對三維激光掃描點(diǎn)云數(shù)據(jù)處理的后期三維建模階段,國內(nèi)外學(xué)者進(jìn)行了大量的研究,并取得相應(yīng)成果。但是,這些方法往往集中于單張曲面擬合研究,自動或者手工分塊擬合,而忽略了模型的整體性。這導(dǎo)致拼接之后的模型存在嚴(yán)重問題,即單獨(dú)擬合后的面與面之間往往不滿足已知的幾何約束關(guān)系,如平行、垂直、固定角度、固定距離等。該問題在一定程度上限制了重建模型精度的提高。而目前涉及尺寸約束、位置約束等特殊建模理論的研究并不廣泛。
依據(jù)求解方法不同的操作方式,目前存在的幾何約束求解方法可以分為基于代數(shù)的求解方法、基于幾何約束圖的方法和基于人工智能的規(guī)則推理?;诖鷶?shù)的求解方法,是將幾何約束問題直接轉(zhuǎn)化為非線性方程組,然后采用非線性方程組求解領(lǐng)域的方法進(jìn)行求解。它最主要的優(yōu)點(diǎn)是具有很強(qiáng)的通用性和直觀性。目前,可行的添加幾何約束的建模方法之一是應(yīng)用懲罰函數(shù)法將帶約束的優(yōu)化問題轉(zhuǎn)化為無約束優(yōu)化問題,再使用Levenberg-Marquardt算法求解。該方法存在有效、穩(wěn)定性好、計(jì)算相對簡單的特點(diǎn)。但在研究過程中發(fā)現(xiàn),該方法也存在局限性,即最終解算結(jié)果受模型初值影響較大。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種基于整體最小二乘的附加幾何約束的點(diǎn)云建模方法,解決目前添加幾何約束的建模方法并利用Levenberg-Marquardt算法求解的方法中存在的最終解算結(jié)果受模型初值影響較大的局限性。
為了實(shí)現(xiàn)上述目標(biāo),本發(fā)明采用如下的技術(shù)方案:
一種基于整體最小二乘的附加幾何約束的點(diǎn)云建模方法,其特征是,包括以下步驟:
1)將點(diǎn)云模型轉(zhuǎn)換成線性方程組AX=L,其中A、X、L分別為系數(shù)矩陣、模型參數(shù)解、常數(shù)項(xiàng),其中,A為s×n矩陣、X為n×1矩陣、L為s×1矩陣;采用整體最小二乘法擬合得到模型參數(shù)初值X0,其中[v1,n+1,...,vn+1,n+1]T為增廣矩陣[A L]右奇異向量的最后一列;s為觀測值個數(shù)即點(diǎn)云數(shù),n為待估模型參數(shù)個數(shù);
2)確定初始懲罰因子λ0,懲罰因子變化速度v1;
3)確定初始LM算法調(diào)節(jié)因子w0,調(diào)節(jié)因子變化速度v2,變量參數(shù)k=1;
4)根據(jù)當(dāng)前變量參數(shù)k的取值,確定模型參數(shù)Xk-1,懲罰因子λk-1,LM算法調(diào)節(jié)因子wk-1;
5)計(jì)算目標(biāo)函數(shù)G(Xk-1,λk-1),梯度▽G(Xk-1,λk-1),海賽矩陣H(Xk-1,λk-1);
6)計(jì)算目標(biāo)函數(shù)可能的下降方向dk-1:
dk-1=-{H(Xk-1,λk-1)+wk-1diag[H(Xk-1,λk-1)]}-1▽G(Xk-1,λk-1);
7)判斷G(Xk-1+dk-1,λk-1)>G(Xk-1,λk-1)是否成立:若成立,則令wk-1=v2wk-1跳轉(zhuǎn)至步驟6),直至得到更小值的目標(biāo)函數(shù),若不成立,則跳轉(zhuǎn)至步驟8);
8)更換模型參數(shù)值和LM算法調(diào)節(jié)因子:令Xk=Xk-1+dk-1,wk=wk-1/v2;
9)檢查是否滿足迭代終止條件||Xk-Xk-1||<ε1,ε1為閾值,依據(jù)經(jīng)驗(yàn)值選取;若滿足,輸出Xk作為極小值點(diǎn),跳轉(zhuǎn)至步驟10),否則令k=k+1,懲罰因子不變λk=λk-1,跳轉(zhuǎn)至步驟5);
10)判斷P(Xk)<ε2是否成立,ε2為閾值,依據(jù)經(jīng)驗(yàn)值選取;若成立,停止運(yùn)算,Xk作為原問題的解輸出,否則,令k=k+1,增大懲罰因子,令λk=v1λk-1,返回步驟4)。
進(jìn)一步地,所述步驟2)中初始懲罰因子λ0取1,懲罰因子變化速度v1取10。
進(jìn)一步地,所述步驟3)中初始LM算法調(diào)節(jié)因子w0取0.01,調(diào)節(jié)因子變化速度v2取10。
進(jìn)一步地,所述步驟5)中:
目標(biāo)函數(shù)G(Xk-1,λk-1)的計(jì)算公式為:式中,X為模型參數(shù)解,m為面的總個數(shù),wi為第i個擬合面的權(quán)值,fi(X)為第i個擬合面的誤差函數(shù);Ni表示第i個擬合面數(shù)據(jù)點(diǎn)的總個數(shù),pj表示第i個擬合面的第j個點(diǎn),di(X,pj)表示第i個擬合面第j個點(diǎn)到該擬合面的距離;t表示約束條件的個數(shù),hp(x)表示第p個約束條件,且hp(x)=0為多張擬合面之間的所有等式約束條件。
梯度▽G(Xk-1,λk-1)的計(jì)算公式為:
海賽矩陣H(Xk-1,λk-1)的計(jì)算公式為:
式中,
本發(fā)明所達(dá)到的有益效果:本方法融入整體最小二乘算法,提高點(diǎn)云建模過程中初始模型參數(shù)的精度;融入附加幾何約束的點(diǎn)云建模方法,結(jié)合懲罰函數(shù)法與LM算法,應(yīng)用懲罰函數(shù)法將帶約束的優(yōu)化問題轉(zhuǎn)化為無約束優(yōu)化問題,再使用LM算法求解;經(jīng)過上述兩步處理,最終模型參數(shù)精度大大提高,相較傳統(tǒng)點(diǎn)云建模方法,本方案具有精度高、計(jì)算相對簡單、適用范圍廣、運(yùn)算效率高等特點(diǎn)。
附圖說明
圖1是本方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。以下實(shí)施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護(hù)范圍。
本方法的具體步驟如下:
1)確定初始模型參數(shù)X0。
采用整體最小二乘法擬合得到較高精度的模型參數(shù)初值X0過程如下:任意點(diǎn)云模型,可寫為形為AX=L的線性方程,其中,A為s×n矩陣、X為n×1矩陣、L為s×1矩陣,s為觀測值個數(shù)即點(diǎn)云數(shù),n為待估模型參數(shù)個數(shù),非線性方程可通過線性化得到。整體最小二乘的求解是通過奇異值分解來實(shí)現(xiàn)的。線性方程AX=L可改寫成[A L][XT-1]T=0,記增廣矩陣C=[A L],對C進(jìn)行奇異值分解C=U∑VT,其中,∑=diag(σ1,σ2,...,σn,σn+1),σ1≥σ2≥...≥σn≥σn+1≥0。整體最小二乘解可由增廣矩陣右奇異向量的最后一列vn+1得到,解為
2)確定初始懲罰因子λ0,懲罰因子變化速度v1。本發(fā)明初始懲罰因子λ0取1,懲罰因子變化速度v1取10。
3)確定初始LM算法調(diào)節(jié)因子w0,調(diào)節(jié)因子變化速度v2。本發(fā)明初始LM算法調(diào)節(jié)因子w0取0.01,調(diào)節(jié)因子變化速度v2取10。
4)確定模型參數(shù)Xk-1,懲罰因子λk-1,LM算法調(diào)節(jié)因子wk-1。第一次令k=1,對應(yīng)的值由步驟1)-3)可得,其余由以下步驟循環(huán)迭代更換舊值得到新值。
5)計(jì)算目標(biāo)函數(shù)G(Xk-1,λk-1),梯度▽G(Xk-1,λk-1),海賽矩陣H(Xk-1,λk-1)。
目標(biāo)函數(shù)G(Xk-1,λk-1)的計(jì)算公式為:式中,X為所求模型的參數(shù),m為面的總個數(shù),wi為第i個擬合面的權(quán)值,fi(X)為第i個擬合面的誤差函數(shù);Ni表示第i個擬合面數(shù)據(jù)點(diǎn)的總個數(shù),pj表示第i個擬合面的第j個點(diǎn),di(X,pj)表示第i個擬合面第j個點(diǎn)到該擬合面的距離;t表示約束條件的個數(shù),hp(x)表示第p個約束條件,且hp(x)=0為多張擬合面之間的所有等式約束條件。
這一步應(yīng)用懲罰函數(shù)法將帶約束的優(yōu)化問題轉(zhuǎn)化為無約束優(yōu)化問題,便于以下步驟中利用LM算法對無約束優(yōu)化問題的求解。
梯度▽G(Xk-1,λk-1)的計(jì)算公式為:
海賽矩陣H(Xk-1,λk-1)的計(jì)算公式為
式中,
簡單來說,梯度函數(shù)就是對目標(biāo)函數(shù)一次求導(dǎo),海塞矩陣就是對目標(biāo)函數(shù)二次求導(dǎo)。
6)計(jì)算目標(biāo)函數(shù)可能的下降方向dk-1。
可能的下降方向dk-1的計(jì)算公式為dk-1=-{H(Xk-1,λk-1)+wk-1diag[H(Xk-1,λk-1)]}-1▽G(Xk-1,λk-1),式中,▽G(Xk-1,λk-1)、H(Xk-1,λk-1)分別為步驟5)計(jì)算所得梯度、海塞矩陣,wk-1為步驟4)計(jì)算所得LM算法調(diào)節(jié)因子。
事實(shí)上,該步驟中的LM算法其實(shí)是最速下降法和牛頓法的混合,在接近最小值之前主要,而在接近最小值時逐步切換為最速下降法。該過程由通過調(diào)整懲罰因子λk-1來達(dá)到,調(diào)節(jié)因子變化速度為v2。
7)判斷G(Xk-1+dk-1,λk-1)>G(Xk-1,λk-1)是否成立。
若成立,更新后目標(biāo)函數(shù)值大于原來的目標(biāo)函數(shù)值,則令wk-1=v2wk-1轉(zhuǎn)步驟6),繼續(xù)循環(huán)迭代步驟6)~7),若不是,更新后目標(biāo)函數(shù)值不大于等于原來的目標(biāo)函數(shù)值,轉(zhuǎn)步驟8)。
8)更換模型參數(shù)值、LM算法調(diào)節(jié)因子。計(jì)算公式為Xk=Xk-1+dk-1,wk=wk-1/v2。
9)檢查是否滿足迭代終止條件||Xk-Xk-1||<ε1。其中ε1為閾值,依據(jù)經(jīng)驗(yàn)值選取。若滿足,將Xk作為該方程的解,進(jìn)入步驟10),否則令k=k+1,λk=λk-1即懲罰因子不變,轉(zhuǎn)步驟5)進(jìn)入循環(huán)迭代,這個過程是LM算法求解目標(biāo)函數(shù)有約束優(yōu)化問題的過程。
10)判斷P(Xk)<ε2是否成立。其中ε2為閾值,依據(jù)經(jīng)驗(yàn)值選取。若成立,說明最終模型參數(shù)所建模型較好滿足已知幾何約束條件,整個循環(huán)停止,Xk是最終求得模型參數(shù),否則,令k=k+1,λk=v1λk-1即增大懲罰因子,返回步驟4)。
這個過程是利用懲罰函數(shù)法的求解過程。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變形,這些改進(jìn)和變形也應(yīng)視為本發(fā)明的保護(hù)范圍。