本發(fā)明涉及一種三維激光掃描儀內(nèi)參數(shù)標(biāo)定方法及裝置,屬于三維激光測(cè)量技術(shù)領(lǐng)域。
背景技術(shù):
三維激光掃描儀是集光學(xué)、機(jī)械、電子和計(jì)算機(jī)等眾多高新技術(shù)于一體的全新測(cè)量?jī)x器,它能夠?qū)崿F(xiàn)快速、高效、準(zhǔn)確、全方位的三維空間信息獲取,獲取的海量數(shù)據(jù)稱為點(diǎn)云(pointcloud),并且絕大多數(shù)配有內(nèi)置或外置相機(jī),能夠同時(shí)獲取目標(biāo)表面的紋理信息,點(diǎn)云與圖像融合后可以獲得逼真可量測(cè)的三維模型,因而三維激光掃描技術(shù)被譽(yù)為“實(shí)景復(fù)制技術(shù)”。商業(yè)三維激光掃描儀雖然性能優(yōu)良,但在實(shí)際應(yīng)用中也存在諸多問(wèn)題,如價(jià)格昂貴、性能過(guò)剩、數(shù)據(jù)處理困難等。因此,越來(lái)越多的低成本及個(gè)性化應(yīng)用催生了基于二維測(cè)距儀實(shí)現(xiàn)三維掃描的解決方案。2000年以來(lái)國(guó)內(nèi)外眾多學(xué)者嘗試探索開(kāi)發(fā)低成本或者專門用途的三維激光掃描儀,亦可稱之為diy三維激光掃描儀,其中最常見(jiàn)的是利用二維激光掃描儀加某種旋轉(zhuǎn)執(zhí)行機(jī)構(gòu)來(lái)實(shí)現(xiàn)三維掃描。例如在要求厘米級(jí)精度的低成本測(cè)圖時(shí),在進(jìn)行礦井等狹長(zhǎng)走廊三維測(cè)圖時(shí),在用于移動(dòng)機(jī)器人和智能車的即時(shí)定位與測(cè)圖時(shí),這種實(shí)現(xiàn)具有較高的性價(jià)比。
在已有的實(shí)現(xiàn)方案中,較少關(guān)注旋轉(zhuǎn)執(zhí)行機(jī)構(gòu)與二維測(cè)距儀之間的安置偏差帶來(lái)的影響,即使在設(shè)計(jì)時(shí)考慮到使二維測(cè)距儀的測(cè)距原點(diǎn)與旋轉(zhuǎn)執(zhí)行機(jī)構(gòu)嚴(yán)格同軸,但由于實(shí)際加工、安裝、磨損等原因,這一偏差仍然造成了較大的點(diǎn)云誤差甚至變形,因此需要進(jìn)行標(biāo)定,以期在不改變硬件而僅通過(guò)數(shù)據(jù)處理的方式達(dá)到改善數(shù)據(jù)質(zhì)量的目的。
常用的標(biāo)定方法主要是基于相機(jī)及相機(jī)標(biāo)定板的方法,其中棋盤格標(biāo)定板最為常用。標(biāo)定過(guò)程如下,用diy三維掃描儀對(duì)標(biāo)定板進(jìn)行二維掃描獲取點(diǎn)云數(shù)據(jù),用相機(jī)進(jìn)行拍照,提取兩種數(shù)據(jù)中特征角點(diǎn)并建立對(duì)應(yīng)關(guān)系,利用點(diǎn)線或點(diǎn)面約束構(gòu)建參數(shù)模型,能以較高的精度獲得全部6個(gè)標(biāo)定參數(shù)。該類方法的標(biāo)定精度較高。如laksono提出一種以普通棋盤格為標(biāo)定板并以點(diǎn)面為約束的標(biāo)定方法,并通過(guò)仿真數(shù)據(jù)實(shí)驗(yàn)得出,該方法角度參數(shù)標(biāo)定誤差0.018°,平移參數(shù)標(biāo)定誤差2mm。這類方法標(biāo)定過(guò)程較為復(fù)雜,適用于設(shè)計(jì)diy三維掃描儀時(shí)未考慮使二維激光掃描儀光學(xué)中心與旋轉(zhuǎn)中心同軸以及要求在實(shí)驗(yàn)室條件下進(jìn)行精確標(biāo)定的情況。但由于眾多實(shí)現(xiàn)方案中,為方便運(yùn)輸和攜帶,各組件是需要經(jīng)常拆卸和組裝的,因而需要在測(cè)量現(xiàn)場(chǎng)組裝好設(shè)備后進(jìn)行一次快速標(biāo)定,以提高工作效率,保證測(cè)量精度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種三維激光掃描儀內(nèi)參數(shù)標(biāo)定方法,以解決目前diy三維掃描儀參數(shù)標(biāo)定過(guò)程復(fù)雜,效率低的問(wèn)題;本發(fā)明還提供了一種三維激光掃描儀內(nèi)參數(shù)標(biāo)定裝置。
本發(fā)明為解決上述技術(shù)問(wèn)題而提供一種三維激光掃描儀內(nèi)參數(shù)標(biāo)定方法,該標(biāo)定方法包括以下步驟:
1)以單站掃描數(shù)據(jù)中平面特征的總體平面度和平面內(nèi)點(diǎn)數(shù)建立目標(biāo)函數(shù),使得該目標(biāo)函數(shù)值最小的函數(shù)最優(yōu)解作為待求內(nèi)參數(shù);
2)從初始點(diǎn)云數(shù)據(jù)中提取平面特征,利用平面內(nèi)的點(diǎn)計(jì)算目標(biāo)函數(shù)值;
3)利用非線性優(yōu)化算法的搜索規(guī)則找到使目標(biāo)函數(shù)值最優(yōu)的一組參數(shù),該參數(shù)即為待求內(nèi)參數(shù)。
進(jìn)一步地,所述步驟1)建立的目標(biāo)函數(shù)為:
其中n為輸入數(shù)據(jù)點(diǎn)的總數(shù),k為提取到的平面?zhèn)€數(shù),ni為第i個(gè)平面上的局內(nèi)點(diǎn)個(gè)數(shù),di,j為第i個(gè)平面上第j個(gè)局內(nèi)點(diǎn)到平面的距離,與α0和β0有關(guān),α0為激光掃描瞬時(shí)坐標(biāo)系繞激光掃描理想坐標(biāo)系的xs軸的旋轉(zhuǎn)角,β0為激光掃描瞬時(shí)坐標(biāo)系繞激光掃描理想坐標(biāo)系的zs軸的旋轉(zhuǎn)角,
進(jìn)一步地,所述步驟2)中的平面特征提取采用區(qū)域生長(zhǎng)算法或ransac算法。
進(jìn)一步地,所述步驟2)采用ransac算法進(jìn)行平面特征提取時(shí),當(dāng)隨機(jī)抽取的3點(diǎn)構(gòu)成的平面模型局內(nèi)點(diǎn)數(shù)量超過(guò)設(shè)定閾值時(shí),需對(duì)這些局內(nèi)點(diǎn)利用特征值法重新計(jì)算平面參數(shù),并重新統(tǒng)計(jì)局內(nèi)點(diǎn)數(shù),若重新統(tǒng)計(jì)的局內(nèi)點(diǎn)數(shù)仍超過(guò)該設(shè)定閾值時(shí),說(shuō)明已提取到一個(gè)平面,否則,需重新提??;當(dāng)提取到某個(gè)平面,需判斷該平面所抽取的原始三個(gè)點(diǎn)處的法矢兩兩夾角,若存在夾角超過(guò)設(shè)定閾值,則放棄該次提取的平面;判斷各提取平面法向兩兩之間的夾角是否小于設(shè)定的閾值角以及原點(diǎn)到平面距離差值是否小于閾值距離,將上述兩條件同時(shí)滿足的兩平面進(jìn)行合并,并計(jì)算合并后兩平面的參數(shù)。
進(jìn)一步地,所述步驟3)是采用單純形nms算法來(lái)進(jìn)行求解,判斷所提取平面中初始各個(gè)頂點(diǎn)(α0,β0)對(duì)應(yīng)目標(biāo)函數(shù)值的大小,找到其中的最優(yōu)點(diǎn)、次優(yōu)點(diǎn)和最差點(diǎn),通過(guò)反射、擴(kuò)張、壓縮或收縮產(chǎn)生一個(gè)新的較好點(diǎn)并用它替換掉最差點(diǎn),得到一個(gè)新的單純形,經(jīng)過(guò)多次迭代搜索,最終使得單純形越來(lái)越小從而不斷逼近最優(yōu)解。
進(jìn)一步地,所述步驟3)在采用單純性nms算法求解時(shí),由人工蜂群算法搜索得到當(dāng)前最優(yōu)解作為nms算法的初值構(gòu)建初始單純形。
本發(fā)明還提供了一種三維激光掃描儀內(nèi)參數(shù)標(biāo)定裝置,該標(biāo)定裝置包括目標(biāo)函數(shù)建立模塊、平面特征提取模塊和最優(yōu)解計(jì)算模塊,
所述目標(biāo)函數(shù)建立模塊用于以單站掃描數(shù)據(jù)中平面特征的總體平面度和平面內(nèi)點(diǎn)數(shù)建立目標(biāo)函數(shù),使得該目標(biāo)函數(shù)值最小的函數(shù)最優(yōu)解作為待求內(nèi)參數(shù);
所述平面特征提取模塊用于從初始點(diǎn)云數(shù)據(jù)中提取平面特征,并利用平面內(nèi)的點(diǎn)計(jì)算目標(biāo)函數(shù)值;
所述最優(yōu)解計(jì)算模塊用于利用非線性優(yōu)化算法的搜索規(guī)則找到使目標(biāo)函數(shù)值最優(yōu)的一組參數(shù),該參數(shù)即為待求內(nèi)參數(shù)。
進(jìn)一步地,所述的目標(biāo)函數(shù)建立模塊建立的目標(biāo)函數(shù)為:
其中n為輸入數(shù)據(jù)點(diǎn)的總數(shù),k為提取到的平面?zhèn)€數(shù),ni為第i個(gè)平面上的局內(nèi)點(diǎn)個(gè)數(shù),di,j為第i個(gè)平面上第j個(gè)局內(nèi)點(diǎn)到平面的距離,與α0和β0有關(guān),α0為激光掃描瞬時(shí)坐標(biāo)系繞激光掃描理想坐標(biāo)系的xs軸的旋轉(zhuǎn)角,β0為激光掃描瞬時(shí)坐標(biāo)系繞激光掃描理想坐標(biāo)系的zs軸的旋轉(zhuǎn)角,
進(jìn)一步地,所述平面特征提取模塊采用區(qū)域生長(zhǎng)算法或ransac算法進(jìn)行平面特征提取,平面特征提取模塊采用ransac算法進(jìn)行平面特征提取時(shí),當(dāng)隨機(jī)抽取的3點(diǎn)構(gòu)成的平面模型局內(nèi)點(diǎn)數(shù)量超過(guò)設(shè)定閾值時(shí),需對(duì)這些局內(nèi)點(diǎn)利用特征值法重新計(jì)算平面參數(shù),并重新統(tǒng)計(jì)局內(nèi)點(diǎn)數(shù),若重新統(tǒng)計(jì)的局內(nèi)點(diǎn)數(shù)仍超過(guò)該設(shè)定閾值時(shí),說(shuō)明已提取到一個(gè)平面,否則,需重新提取。
進(jìn)一步地,所述最優(yōu)解計(jì)算模塊采用單純形nms算法來(lái)進(jìn)行求解,判斷所提取平面中初始各個(gè)頂點(diǎn)(α0,β0)對(duì)應(yīng)目標(biāo)函數(shù)值的大小,找到其中的最優(yōu)點(diǎn)、次優(yōu)點(diǎn)和最差點(diǎn),通過(guò)反射、擴(kuò)張、壓縮或收縮產(chǎn)生一個(gè)新的較好點(diǎn)并用它替換掉最差點(diǎn),得到一個(gè)新的單純形,經(jīng)過(guò)多次迭代搜索,最終使得單純形越來(lái)越小從而不斷逼近最優(yōu)解;所述最優(yōu)解計(jì)算模塊在采用單純性nms算法求解時(shí),由人工蜂群算法搜索得到當(dāng)前最優(yōu)解作為nms算法的初值構(gòu)建初始單純形。
本發(fā)明的有益效果是:本發(fā)明以單站掃描數(shù)據(jù)中平面特征的總體平面度和平面內(nèi)點(diǎn)數(shù)來(lái)評(píng)價(jià)點(diǎn)云總體質(zhì)量,構(gòu)建目標(biāo)函數(shù),使得該目標(biāo)函數(shù)值最小的函數(shù)最優(yōu)解作為待求內(nèi)參數(shù)的估值;采用基于平面特征的內(nèi)參數(shù)解算方式求解目標(biāo)函數(shù),即按設(shè)定的平面提取算法提取平面特征,并計(jì)算目標(biāo)函數(shù)值;利用非線性優(yōu)化算法的搜索規(guī)則找到使目標(biāo)函數(shù)值最優(yōu)的一組參數(shù),該參數(shù)即為待求內(nèi)參數(shù)。本發(fā)明無(wú)需配合人工靶標(biāo),對(duì)場(chǎng)景無(wú)特殊要求,可在任何具有平面特征的場(chǎng)景中實(shí)現(xiàn)標(biāo)定,且能夠?qū)崿F(xiàn)掃描儀的現(xiàn)場(chǎng)快速標(biāo)定,提高了diy三維激光掃描儀測(cè)量精度和點(diǎn)云質(zhì)量。
附圖說(shuō)明
圖1是待標(biāo)定對(duì)象diy三維激光掃描儀示意圖;
圖2是待標(biāo)定對(duì)象diy三維激光掃描儀的內(nèi)參數(shù)標(biāo)定模型示意圖;
圖3是內(nèi)參數(shù)標(biāo)定的原理圖;
圖4-a是采用生長(zhǎng)算法提取的平面特征效果圖;
圖4-b是采用改進(jìn)ransac算法提取的平面特征效果圖;
圖5是單純形算法中的單純形反射變化示意圖;
圖6是單純形算法中的單純形擴(kuò)張變化示意圖;
圖7是單純形算法中的單純形壓縮變化示意圖;
圖8是單純形算法中的單純形收縮變化示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做進(jìn)一步的說(shuō)明。
本發(fā)明針對(duì)三維激光掃描儀是利用二維激光掃描儀加某種旋轉(zhuǎn)執(zhí)行機(jī)構(gòu)來(lái)實(shí)現(xiàn),理想狀態(tài)下,如圖1所示,二維激光掃描儀光學(xué)中心z軸應(yīng)與轉(zhuǎn)臺(tái)旋轉(zhuǎn)軸重合,測(cè)得的點(diǎn)云坐標(biāo)可用下式計(jì)算得到:
由于連接件加工以及掃描儀安裝誤差,二維掃描儀與轉(zhuǎn)臺(tái)間的相對(duì)位置關(guān)系與理想狀態(tài)存在一定的偏差,導(dǎo)致按式(1)計(jì)算的坐標(biāo)不準(zhǔn)確。理論上,系統(tǒng)內(nèi)參數(shù)包括激光掃描局部坐標(biāo)系原點(diǎn)即二維激光掃描儀光學(xué)中心與激光掃描理想坐標(biāo)系原點(diǎn)間的3個(gè)平移參數(shù)(安置位置誤差)以及兩坐標(biāo)系間的3個(gè)旋轉(zhuǎn)參數(shù)(安置角度誤差)。鑒于連接件的設(shè)計(jì)加工可以保證較高的精度,安裝固定后二維掃描儀光學(xué)中心與設(shè)計(jì)安裝位置偏差可保證在1mm以內(nèi),同時(shí)考慮到其厘米級(jí)的測(cè)距精度,較小的三個(gè)平移參數(shù)很難從誤差較大的點(diǎn)云數(shù)據(jù)中解算出來(lái),而三個(gè)旋轉(zhuǎn)參數(shù)中,繞轉(zhuǎn)臺(tái)旋轉(zhuǎn)軸即激光掃描理想坐標(biāo)系z(mì)軸的旋轉(zhuǎn)角代表的是掃描的水平起始角度,不會(huì)引起點(diǎn)云的變形?;谏鲜龇治霾⒔梃bmorales的標(biāo)定模型,內(nèi)參數(shù)標(biāo)定問(wèn)題可簡(jiǎn)化為對(duì)如圖2所示的兩個(gè)安置角α0(俯仰方向)和β0(側(cè)滾方向)的求解。
其中坐標(biāo)系
則標(biāo)定后的點(diǎn)云坐標(biāo)計(jì)算公式可表示為:
采用diy三維激光掃描儀獲取掃描數(shù)據(jù)時(shí),需要計(jì)算并保存相應(yīng)的極坐標(biāo)數(shù)據(jù),以極坐標(biāo)數(shù)據(jù)作為標(biāo)定算法的輸入信息,標(biāo)定算法的參數(shù)變量是α0和β0,以單站掃描數(shù)據(jù)中平面特征的總體平面度和平面內(nèi)點(diǎn)數(shù)來(lái)評(píng)價(jià)點(diǎn)云總體質(zhì)量,構(gòu)建目標(biāo)函數(shù)式(3),使得該目標(biāo)函數(shù)值最小的函數(shù)最優(yōu)解即為待求內(nèi)參數(shù)的估值
其中n為輸入數(shù)據(jù)點(diǎn)的總數(shù),k為提取到的平面?zhèn)€數(shù),ni為第i個(gè)平面上的局內(nèi)點(diǎn)(即點(diǎn)面距小于一定閾值的點(diǎn))個(gè)數(shù),di,j為第i個(gè)平面上第j個(gè)局內(nèi)點(diǎn)到平面的距離。該目標(biāo)函數(shù)中的di,j是隨參數(shù)變量α0和β0變化的,并且不能用具體的解析式表示,因此不能通過(guò)常規(guī)的非線性函數(shù)線性化或求導(dǎo)的非線性優(yōu)化算法求解,而必須通過(guò)其它非線性優(yōu)化算法來(lái)實(shí)現(xiàn)??尚械姆蔷€性優(yōu)化算法是按照一定的規(guī)則在解向量空間搜索判斷以及不斷的迭代來(lái)求解參數(shù)變量的,對(duì)于基于平面特征的內(nèi)參數(shù)解算,每次迭代需要進(jìn)行的主要步驟如下:
(1)根據(jù)搜索得到的預(yù)期解向量
(2)按設(shè)定的平面提取算法提取平面特征,并計(jì)算目標(biāo)函數(shù)值;
(3)按非線性優(yōu)化算法的搜索規(guī)則產(chǎn)生新的較優(yōu)的預(yù)測(cè)解向量。
1.平面特征提取。
實(shí)現(xiàn)標(biāo)定的先決條件是從初始點(diǎn)云數(shù)據(jù)中提取平面,常用的平面特征提取方法包括區(qū)域生長(zhǎng)、動(dòng)態(tài)聚類、3d霍夫變換和隨機(jī)采樣一致性(ransac)算法,其中前三種算法都需要計(jì)算點(diǎn)云的法矢信息,點(diǎn)云中某點(diǎn)的法矢即為利用該點(diǎn)鄰域內(nèi)固定個(gè)數(shù)的點(diǎn)通過(guò)主成分分析或最小二乘擬合求得法向量,但是掃描激光腳點(diǎn)法向量的計(jì)算容易受到粗差以及點(diǎn)密度的影響,而區(qū)域生長(zhǎng)算法和改進(jìn)ransac算法能夠達(dá)到較好的效果。
1)利用區(qū)域生長(zhǎng)算法進(jìn)行平面特征提取。
區(qū)域生長(zhǎng)算法通常是利用點(diǎn)云表面法矢信息及預(yù)測(cè)距離小于一定的閾值作為生長(zhǎng)條件,從選取的初始種子點(diǎn)開(kāi)始,根據(jù)生長(zhǎng)條件判斷鄰近點(diǎn)是否為平面內(nèi)點(diǎn),被生長(zhǎng)的平面內(nèi)點(diǎn)作為新的種子點(diǎn)集分別在其鄰域進(jìn)行生長(zhǎng),直到某次循環(huán)生長(zhǎng)后新種子點(diǎn)集為空,此時(shí)已生長(zhǎng)到達(dá)該平面的邊界,被生長(zhǎng)的點(diǎn)即為一個(gè)平面點(diǎn)集,對(duì)剩余點(diǎn)集重復(fù)以上過(guò)程即可完成對(duì)整個(gè)點(diǎn)云數(shù)據(jù)中平面特征的提取。
采用區(qū)域生長(zhǎng)算法進(jìn)行平面提取并保存各平面上的點(diǎn),在計(jì)算目標(biāo)函數(shù)值時(shí)首先直接對(duì)每一平面的內(nèi)點(diǎn)進(jìn)行基于抗差估計(jì)的平面擬合,然后分別計(jì)算平面內(nèi)點(diǎn)到所擬合平面的距離,從而計(jì)算目標(biāo)函數(shù)值。
2)利用ransac算法進(jìn)行平面特征提取。
a.參數(shù)初始化,包括距離閾值td、迭代次數(shù)k、最優(yōu)平面點(diǎn)集及其對(duì)應(yīng)的平面參數(shù);
b.從當(dāng)前剩余點(diǎn)集中隨機(jī)抽取3個(gè)點(diǎn),判斷是否共線,若共線則重新抽取,否則計(jì)算出3點(diǎn)構(gòu)成平面ax+by+cz+d=0的參數(shù);
c.計(jì)算當(dāng)前剩余點(diǎn)集中所有點(diǎn)到該平面的距離,若小于td,則標(biāo)記為局內(nèi)點(diǎn);
d.統(tǒng)計(jì)局內(nèi)點(diǎn)個(gè)數(shù),若多于最優(yōu)平面點(diǎn)集中點(diǎn)的個(gè)數(shù),則保存為當(dāng)前最優(yōu)平面點(diǎn)集,用最小二乘法擬合平面并保存為當(dāng)前最優(yōu)平面參數(shù);
e.當(dāng)?shù)螖?shù)小于n時(shí),重復(fù)步驟(2)~(4),當(dāng)完成k次迭代后,即提取到1個(gè)最優(yōu)平面,將該平面的局內(nèi)點(diǎn)從當(dāng)前剩余點(diǎn)集中刪除;對(duì)平面整體平面度要求較低,即使是略有變形但局部較為平滑的平面也能被提取到,對(duì)法矢信息的精確計(jì)算依賴性較小;
f.重復(fù)以上步驟,直到當(dāng)前剩余點(diǎn)集中點(diǎn)的個(gè)數(shù)小于設(shè)定閾值或已提取到指定數(shù)量的平面。
上述ransac算法雖然能夠提取出平面特征,但是所提取平面特征有可能出現(xiàn)重復(fù)導(dǎo)致不夠準(zhǔn)確。為此,本發(fā)明在上述ransac平面特征提取的基礎(chǔ)上,對(duì)上述算法進(jìn)行以下改進(jìn):
a.增加一個(gè)閾值參數(shù)tn,當(dāng)隨機(jī)抽取的3點(diǎn)構(gòu)成的平面模型局內(nèi)點(diǎn)數(shù)量超過(guò)該閾值時(shí),對(duì)這些局內(nèi)點(diǎn)利用特征值法重新計(jì)算平面參數(shù),重新統(tǒng)計(jì)局內(nèi)點(diǎn)數(shù),若超過(guò)閾值參數(shù)tn則認(rèn)為已提取到一個(gè)平面,結(jié)束本次循環(huán)。
b.當(dāng)提取的某個(gè)平面時(shí),增加判斷條件,判斷所抽取的原始三個(gè)點(diǎn)處的法矢的兩兩夾角,若超過(guò)一定閾值δ時(shí),則提取的平面可能為偽平面,則放棄該次結(jié)果,繼續(xù)循環(huán)。
c.完成平面提取后,判斷各平面法向兩兩之間的夾角是否小于閾值以及原點(diǎn)到平面距離差值是否小于閾值,將上述兩條件同時(shí)滿足的兩平面進(jìn)行合并,并同時(shí)計(jì)算合并后兩平面的參數(shù)。
讀取點(diǎn)云數(shù)據(jù)后即采用區(qū)域生長(zhǎng)算法進(jìn)行平面提取并保存各平面上的點(diǎn),在計(jì)算目標(biāo)函數(shù)值時(shí)直接對(duì)每一平面的內(nèi)點(diǎn)進(jìn)行基于抗差估計(jì)的平面擬合,然后分別計(jì)算平面內(nèi)點(diǎn)到所擬合平面的距離,從而計(jì)算目標(biāo)函數(shù)值。當(dāng)采用該種方式計(jì)算目標(biāo)函數(shù)時(shí)需設(shè)置閾值剔除點(diǎn)面距較大的點(diǎn),該閾值與應(yīng)用改進(jìn)ransac算法進(jìn)行平面提取時(shí)設(shè)置的距離閾值一致。若場(chǎng)景中主要平面的平面度較好或點(diǎn)云變形較為明顯(即內(nèi)參數(shù)值較大),宜采用該種方式計(jì)算目標(biāo)函數(shù)。
采用改進(jìn)ransac算法進(jìn)行平面特征提取時(shí),在該提取過(guò)程中當(dāng)提取到一個(gè)平面時(shí),計(jì)算該平面內(nèi)點(diǎn)到平面的距離,從而完成相應(yīng)目標(biāo)函數(shù)值的計(jì)算。該種方式適合場(chǎng)景中主要平面的平面度不好或點(diǎn)云變形不明顯(即內(nèi)參數(shù)值較小)的情形。
2.利用非線性優(yōu)化算法的搜索規(guī)則產(chǎn)生新的較優(yōu)的預(yù)測(cè)解向量。
nelder-meadsimplex(nms)即單純形算法實(shí)現(xiàn)簡(jiǎn)單且無(wú)需目標(biāo)函數(shù)導(dǎo)數(shù)信息,是一種具有較強(qiáng)局部搜索能力的多維非線性無(wú)約束優(yōu)化算法。該算法用到“simplex”即“單純形”這一概念,它指的是由n維向量(n個(gè)參數(shù)變量)空間中n+1個(gè)頂點(diǎn)構(gòu)成的凸多面體,如2維空間即平面中的三角形,3維空間中的四面體,單純形的變化代表了搜索空間的變化。其主要思想是通過(guò)直接判斷初始各個(gè)頂點(diǎn)目標(biāo)函數(shù)值的大小,找到其中的最優(yōu)點(diǎn)、次優(yōu)點(diǎn)和最差點(diǎn),通過(guò)反射、擴(kuò)張、壓縮或收縮產(chǎn)生一個(gè)新的較好點(diǎn)并用它替換掉最差點(diǎn),得到一個(gè)新的單純形,經(jīng)過(guò)多次迭代搜索,最終使得單純形越來(lái)越小從而不斷逼近最優(yōu)解。
對(duì)于本發(fā)明內(nèi)參數(shù)標(biāo)定問(wèn)題,存在2個(gè)變量,則單純形為三角形,并以2維單純形為例介紹nms算法中的反射、擴(kuò)張、壓縮及收縮。給定3個(gè)初始頂點(diǎn),即(α0,β0)可能的三組取值,計(jì)算相應(yīng)的目標(biāo)函數(shù)值,目標(biāo)函數(shù)值最小的點(diǎn)即最優(yōu)點(diǎn)記為pb,目標(biāo)函數(shù)值最大的點(diǎn)即最差點(diǎn)記為pw,另一點(diǎn)則為次優(yōu)點(diǎn)記為pg,pm表示除最差點(diǎn)pw外其余點(diǎn)的形心。
反射點(diǎn)記為pr,由下式計(jì)算得到:
pr=(1+α)pm-αpw(4)
其中,α為反射系數(shù),通常取1,對(duì)應(yīng)的單純形變化如圖5所示。
擴(kuò)張點(diǎn)記為pe,由下式計(jì)算得到:
pe=γpr+(1-γ)pm(5)
其中,γ為擴(kuò)張系數(shù),通常取2,對(duì)應(yīng)的單純形變化如圖6所示。
壓縮點(diǎn)記為pc,由下式計(jì)算得到:
pc=βpw+(1-β)pm(6)
其中,β為壓縮系數(shù),通常取0.5,對(duì)應(yīng)的單純形變化如圖7所示。
收縮時(shí),對(duì)除pb以外的其余點(diǎn)進(jìn)行如下操作:
pi=τpi+(1-τ)pb(7)
其中,τ為收縮系數(shù),通常取0.5,對(duì)于2個(gè)變量的單純形,即用pm取代pg,用ps取代pw,對(duì)應(yīng)的單純形變化如圖8所示。
設(shè)目標(biāo)函數(shù)為f(x),ε為一個(gè)較小的正數(shù),n為頂點(diǎn)個(gè)數(shù),對(duì)于2個(gè)變量的單純形n為3,nms算法用來(lái)判斷收斂從而停止迭代的條件為:
nms算法進(jìn)行反射、擴(kuò)張、壓縮或收縮時(shí)的迭代過(guò)程如表1所示。
表1
nms算法采用的是直接搜索法,具有較強(qiáng)的局部搜索能力,但是也存在以下缺陷:
(a)對(duì)單純形的初值敏感,初值選擇不當(dāng)可能導(dǎo)致尋優(yōu)效果較差;
(b)可能陷入局部極值,得不到全局最優(yōu)解;
(c)作為一種無(wú)約束優(yōu)化算法,可能在搜索時(shí)超出實(shí)際問(wèn)題中變量的取值空間。
為此,本發(fā)明利用全局搜索能力較強(qiáng)的群體智能優(yōu)化算法與nms算法結(jié)合,通過(guò)兩種算法之間的優(yōu)勢(shì)互補(bǔ),提高三維激光掃描儀內(nèi)參數(shù)的求解效率和準(zhǔn)確性。具體地,本發(fā)明的采用的群體智能優(yōu)化算法為人工蜂群算法,人工蜂群(artificialbeescolony,abc)算法的靈感來(lái)自蜜蜂群體的采蜜行為。蜜蜂在相對(duì)復(fù)雜的環(huán)境中,能夠通過(guò)蜜蜂各群體間相互配合完成搞笑的采蜜活動(dòng),相應(yīng)的仿生優(yōu)化算法能夠通過(guò)不同分工的人工蜂群個(gè)體的局部尋優(yōu)以較快的速度最終獲得全局最優(yōu)解。abc算法模型包含三個(gè)基本要素:蜜源、雇傭蜂和未雇傭蜂。每個(gè)蜜源的位置代表優(yōu)化問(wèn)題的一個(gè)可行解,蜜的數(shù)量代表相應(yīng)解的質(zhì)量并用適應(yīng)度表示。每個(gè)雇用蜂關(guān)聯(lián)一個(gè)蜜源,因而其數(shù)量與蜜源數(shù)量一致,它以一定的概率將蜜源信息分享給其他蜂。未雇傭蜂又分為觀察蜂和偵察蜂,觀察蜂根據(jù)雇用蜂提供的蜜源信息通過(guò)一定原則選擇較優(yōu)個(gè)體并在其附近進(jìn)行交叉搜索,而偵查蜂隨機(jī)搜索蜜源,提供一定的變異性。設(shè)待優(yōu)化的d維目標(biāo)函數(shù)為f(x),x=(x1,x2…xd)為解向量,abc算法的主要流程為:
(1)種群初始化,雇傭蜂、觀察蜂以及蜜源數(shù)量均為np個(gè),在可行域空間中生成初始的蜜源位置,即初始可行解,每個(gè)蜜源處放置一個(gè)雇傭蜂,其中,ui和li分別為參數(shù)變量xi的取值區(qū)間的上下界;
xi=rand(0,1)×(ui-li)+lii=1,2…np(9)
(2)雇傭蜂階段,對(duì)于每一個(gè)雇傭蜂個(gè)體m,隨機(jī)算則另外一個(gè)雇傭蜂個(gè)體k逐維進(jìn)行交叉搜索,并按式(9)變異產(chǎn)生新的蜜源(可行解)v=(v1,v2…vd),其中為[-1,1]的隨機(jī)數(shù),按式(10)計(jì)算相應(yīng)的適應(yīng)度并采用貪心原則進(jìn)行選擇;
(3)觀察蜂階段,觀察蜂接收到的雇傭蜂的分享的蜜源信息,采用輪盤賭或其他方式選擇較優(yōu)個(gè)體,按式(11)計(jì)算蜜源的被選擇概率p,選中一處蜜源后按式(9)產(chǎn)生新蜜源并計(jì)算適應(yīng)度,按貪心原則選擇蜜源;
(4)偵查蜂階段,若某處蜜源經(jīng)過(guò)雇傭蜂設(shè)定的limit次嘗試后,對(duì)應(yīng)解的質(zhì)量得不到提高,雇傭蜂轉(zhuǎn)為偵查蜂并放棄其擁有的蜜源,按照進(jìn)行隨機(jī)搜索即按式(8)生成的新的蜜源;
(5)循環(huán)執(zhí)行(2)、(3)和(4),并在其過(guò)程中記錄最好的蜜源位置,直到完成指定次數(shù)的循環(huán)。
本發(fā)明采用基于nms的改進(jìn)人工蜂群算法(nms-abc)來(lái)求解三維激光掃描儀內(nèi)參數(shù),該算法的具體過(guò)程如下:執(zhí)行人工蜂群算法中的步驟(2)、(3)和(4)完成一次蜂群搜索,將執(zhí)行一次蜂群搜索算法搜索到的當(dāng)前最優(yōu)解作為nms算法的初值構(gòu)建初始單純形,通過(guò)單純形的反射、擴(kuò)張、壓縮及收縮操作來(lái)進(jìn)行快速高效的局部尋優(yōu)并保存尋優(yōu)結(jié)果;然后進(jìn)入下一次循環(huán),同時(shí)為提高算法整體效率,嘗試次數(shù)limit和循環(huán)次數(shù)可適當(dāng)減少。
本發(fā)明一種三維激光掃描儀內(nèi)參數(shù)標(biāo)定裝置的實(shí)施例
本實(shí)施例中的標(biāo)定裝置包括目標(biāo)函數(shù)建立模塊、平面特征提取模塊和最優(yōu)解計(jì)算模塊,目標(biāo)函數(shù)建立模塊用于以單站掃描數(shù)據(jù)中平面特征的總體平面度和平面內(nèi)點(diǎn)數(shù)建立目標(biāo)函數(shù),使得該目標(biāo)函數(shù)值最小的函數(shù)最優(yōu)解作為待求內(nèi)參數(shù);平面特征提取模塊用于從初始點(diǎn)云數(shù)據(jù)中提取平面特征,并計(jì)算目標(biāo)函數(shù)值;最優(yōu)解計(jì)算模塊用于利用非線性優(yōu)化算法的搜索規(guī)則產(chǎn)生新的較優(yōu)的預(yù)測(cè)解向量,從中選取最優(yōu)解作為待求內(nèi)參數(shù)。各模塊的具體實(shí)現(xiàn)手段已在方法的實(shí)施例中進(jìn)行了詳細(xì)說(shuō)明,這里不再贅述。