呂富強(qiáng),唐詩華,2,張 炎,2,宋曉輝,胡鵬程,李 翥
(1. 桂林理工大學(xué)測繪地理信息學(xué)院,廣西 桂林 541004; 2. 廣西空間信息與測繪重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
隨著無人機(jī)航測技術(shù)的快速發(fā)展,激光雷達(dá)、航攝相機(jī)等各種現(xiàn)實(shí)三維數(shù)據(jù)采集設(shè)備被運(yùn)用于無人機(jī)攝影測量中,無人機(jī)所獲取的點(diǎn)云數(shù)據(jù)已成為重要的空間數(shù)據(jù)源,在數(shù)字城市、變形監(jiān)測、三維建模及城市規(guī)劃等相關(guān)項(xiàng)目中發(fā)揮著越來越重要的作用[1-5]。在無人機(jī)點(diǎn)云數(shù)據(jù)的獲取與處理過程中,由于采集過程、地物遮擋、技術(shù)條件限制及處理軟件缺陷等因素,造成部分點(diǎn)云數(shù)據(jù)的缺失,帶有孔洞的點(diǎn)云數(shù)據(jù)不能真實(shí)地反映目標(biāo)地物的實(shí)際形狀,并且會對后續(xù)的測繪產(chǎn)品制作造成不便[6]。因此,在前期的數(shù)據(jù)處理工作中需要對這些點(diǎn)云孔洞進(jìn)行修補(bǔ)。
國內(nèi)外學(xué)者針對孔洞修補(bǔ)問題,提出了許多修補(bǔ)方法。文獻(xiàn)[7]使用三次B樣條曲線的方法對奶牛點(diǎn)云孔洞完成修補(bǔ),但該方法容易受噪聲的影響。文獻(xiàn)[8]使用GA-BP神經(jīng)網(wǎng)絡(luò)對散亂點(diǎn)云孔洞進(jìn)行修補(bǔ)。文獻(xiàn)[9]使用最小二乘支持向量機(jī)對點(diǎn)云孔洞進(jìn)行了修補(bǔ)。文獻(xiàn)[10]利用三角格網(wǎng)的方法實(shí)現(xiàn)了孔洞修補(bǔ)。上述方法在孔洞面積較小的區(qū)域可以實(shí)現(xiàn)較好的修補(bǔ)效果,但在點(diǎn)云缺失較多、地形變化較大的區(qū)域中修補(bǔ)精度效果還不夠理想。
無人機(jī)航測所獲取的點(diǎn)云數(shù)據(jù)量龐大,區(qū)域面積較廣,因此傳統(tǒng)的修補(bǔ)方法難以適用于無人機(jī)點(diǎn)云孔洞的修補(bǔ)。BP(back propagation)神經(jīng)網(wǎng)絡(luò)在進(jìn)行孔洞修補(bǔ)時,存在參數(shù)難以確定和易陷入局部最優(yōu)的問題,導(dǎo)致修補(bǔ)精度無法滿足精度要求。文獻(xiàn)[11]提出了麻雀搜索算法,該算法相比于傳統(tǒng)的尋優(yōu)算法,在處理尋優(yōu)問題時具有收斂速度更快、穩(wěn)健性更強(qiáng)等優(yōu)點(diǎn)。通過麻雀搜索算法對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,可以解決該算法在無人機(jī)點(diǎn)云孔洞修補(bǔ)中的參數(shù)設(shè)定及精度不足等問題。
因此,為了解決無人機(jī)點(diǎn)云數(shù)據(jù)中的孔洞修補(bǔ)問題,本文提出基于SSA-BP(sparrow search algorithm-back propagation)神經(jīng)網(wǎng)絡(luò)的點(diǎn)云孔洞修補(bǔ)方法。利用麻雀搜索算法尋優(yōu)能力強(qiáng)、收斂速度快的特點(diǎn),對傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行初始權(quán)重與閾值的優(yōu)化,再將麻雀搜索算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)算法運(yùn)用于無人機(jī)點(diǎn)云數(shù)據(jù)中孔洞的修補(bǔ)。
麻雀搜索算法模擬了麻雀群體的覓食過程,是依據(jù)麻雀群體的覓食與抗捕食行為提出的一種新型的群體智能優(yōu)化算法。在該算法中,將麻雀種群的個體分為發(fā)現(xiàn)者、加入者及警戒者。其中,發(fā)現(xiàn)者為種群提供覓食方向和區(qū)域,加入者則根據(jù)發(fā)現(xiàn)者的信號進(jìn)行覓食,兩種個體行為之間可以進(jìn)行動態(tài)轉(zhuǎn)換,而警戒者通過反捕食策略進(jìn)行預(yù)警,使種群避免陷入局部最優(yōu)[11]。麻雀搜索算法的數(shù)學(xué)模型如下所述。
在模擬麻雀覓食過程中,假設(shè)麻雀種群中的個體數(shù)量為n只麻雀,該種群表示形式為
(1)
式中,d為數(shù)據(jù)維數(shù);n為麻雀的數(shù)量,則該種群的適應(yīng)度值FX為
(2)
發(fā)現(xiàn)者具有較好的適應(yīng)度值,在覓食過程中會優(yōu)先獲取食物,在種群中為其他覓食者提供覓食方向,發(fā)現(xiàn)者的位置更新公式為
(3)
在覓食過程中,加入者會根據(jù)發(fā)現(xiàn)者的動態(tài)進(jìn)行食物的奪取,當(dāng)發(fā)現(xiàn)者找到更好的食物,加入者則會離開當(dāng)前位置進(jìn)行食物奪取。若奪取食物成功,則可獲得發(fā)現(xiàn)者的食物;否則繼續(xù)對發(fā)現(xiàn)者進(jìn)行監(jiān)控與食物搶奪[12]。加入者的位置更新為
(4)
警戒者的初始位置在種群中隨機(jī)產(chǎn)生,當(dāng)它們意識到危險時,會進(jìn)行危險預(yù)警。 此時存在危險的麻雀會向安全區(qū)域靠攏,躲避危險。其模型構(gòu)建為
(5)
BP 神經(jīng)網(wǎng)絡(luò)在進(jìn)行點(diǎn)云孔洞的修補(bǔ)過程中,存在易陷入局部極小、收斂速度慢、泛化性能差的缺點(diǎn)。使用麻雀搜索算法對BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)重與閾值進(jìn)行優(yōu)化,適應(yīng)度值選用訓(xùn)練集與測試集的均方誤差,可使適應(yīng)度函數(shù)值較小,預(yù)測精度更高[13-15]。
SSA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的具體構(gòu)建流程如下:
(1)確定BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),確定輸入層、隱含層及輸出層節(jié)點(diǎn)參數(shù)。
(2)初始化麻雀搜索算法參數(shù)。
(3)根據(jù)適應(yīng)度函數(shù)計(jì)算麻雀搜索算法的適應(yīng)度。
(4)根據(jù)位置更新公式,更新麻雀位置,判斷是否滿足收斂精度。
(5)更新適應(yīng)度。
(6)計(jì)算得出優(yōu)化后的權(quán)重與閾值,并賦予BP神經(jīng)網(wǎng)絡(luò)。
該優(yōu)化模型構(gòu)建流程如圖1所示。
圖1 SSA-BP模型構(gòu)建流程
對SSA-BP神經(jīng)網(wǎng)絡(luò)算法的修補(bǔ)精度采用修補(bǔ)結(jié)果的平均絕對誤差(MAE)、均方誤差(MSE)、均方根誤差(RMSE)進(jìn)行評價[16]。計(jì)算公式分別為
(6)
(7)
(8)
式中,y′為預(yù)測值;y為原始值;n為訓(xùn)練樣本數(shù)量。
試驗(yàn)選取的數(shù)據(jù)為桂林市雁山區(qū)某區(qū)域的無人機(jī)點(diǎn)云數(shù)據(jù)。該區(qū)域?yàn)槭┕び玫?區(qū)域含有坑洼、土堆及低矮植被等。使用CloudCompare點(diǎn)云數(shù)據(jù)處理軟件在該區(qū)域中截取三處地表起伏明顯且具有明顯地表特征的區(qū)域作為試驗(yàn)樣本,設(shè)定為孔洞區(qū)域,具體位置如圖2所示。
圖2 孔洞區(qū)域
圖2藍(lán)色部分為選取的孔洞樣本區(qū)域。3個樣本區(qū)域的總點(diǎn)數(shù)分別為764、2029、1023個。訓(xùn)練集數(shù)據(jù)點(diǎn)數(shù)分別為527、1525、798個,測試集數(shù)據(jù)點(diǎn)數(shù)分別為237、504、225個。
為了保證各組算法預(yù)測結(jié)果的對照可信度,優(yōu)化模型與未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)的輸入層、隱含層及輸出層參數(shù)設(shè)定為同一參數(shù),其中輸入層節(jié)點(diǎn)數(shù)為2,隱含層節(jié)點(diǎn)數(shù)為5,輸出層節(jié)點(diǎn)數(shù)為1。
為了驗(yàn)證3組算法的穩(wěn)定性,將3組算法的殘差曲線圖進(jìn)行繪制,如圖3—圖5所示。
圖3 孔洞1殘差曲線
圖4 孔洞2殘差曲線
圖5 孔洞3殘差曲線
根據(jù)3組算法在3個孔洞修補(bǔ)結(jié)果中得到的殘差曲線可知:
(1)在孔洞1的預(yù)測結(jié)果中,3組算法的殘差范圍分別為[-0.075 6,0.047 3]、[-0.124 0,0.045 7]、 [-0.074 5,0.050 9] m。
(2)在孔洞2的預(yù)測結(jié)果中,3組算法的殘差范圍分別為[-0.074 1,0.373 0]、[-0.103 7,0.305 9]、 [-0.124 7,0.210 7] m。
(3)在孔洞3的預(yù)測結(jié)果中,3組算法的殘差范圍分別為[-0.220 8,0.178 7]、[-0.180 0,0.132 9]、 [-0.116 7,0.184 5] m。
根據(jù)3組修補(bǔ)結(jié)果的殘差值范圍可知,SSA-BP神經(jīng)網(wǎng)絡(luò)修補(bǔ)結(jié)果穩(wěn)定性最佳,要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)與LSSVM算法。
為了進(jìn)一步驗(yàn)證SSA-BP神經(jīng)網(wǎng)絡(luò)算法的適用性與精確性,將3組修補(bǔ)結(jié)果的平均絕對誤差、均方誤差、均方根誤差進(jìn)行對比與分析,見表1。
表1 精度比較 m
根據(jù)表1的精度比較結(jié)果,SSA-BP神經(jīng)網(wǎng)絡(luò)算法的MAE、MSE、RMSE 3個精度指標(biāo)均小于其他2組算法,且精度滿足1∶500地形圖航空攝影測量規(guī)范要求。通過上述分析,證明SSA-BP神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)量龐大、地表點(diǎn)云分布雜亂的無人機(jī)點(diǎn)云孔洞的修補(bǔ)中具有更高的修補(bǔ)精度。相比于其他2組算法,SSA-BP神經(jīng)網(wǎng)絡(luò)算法的穩(wěn)定性與適用性也有明顯的提高。
使用SSA-BP算法進(jìn)行孔洞修補(bǔ)后,將修補(bǔ)結(jié)果與孔洞周圍的點(diǎn)云數(shù)據(jù)進(jìn)行匯總與展示,使用CloudCompare軟件進(jìn)行修補(bǔ)前后的三維效果展示,如圖6所示。
圖6 修補(bǔ)前后對比
由圖6可以看出,通過對比修補(bǔ)后的點(diǎn)云模型與原始點(diǎn)云模型,可以看出該算法得到的修補(bǔ)結(jié)果連續(xù)性、平滑性較好,還原度較高,具有較好的修補(bǔ)效果,可適用于無人機(jī)點(diǎn)云在復(fù)雜地形的孔洞修補(bǔ)。
針對無人機(jī)點(diǎn)云數(shù)據(jù)中的孔洞問題,本文將SSA-BP神經(jīng)網(wǎng)絡(luò)算法運(yùn)用于無人機(jī)點(diǎn)云的孔洞修補(bǔ)中。將修補(bǔ)結(jié)果中每組算法的殘差曲線及修補(bǔ)精度進(jìn)行對比與分析,可得出如下結(jié)論:
(1)使用麻雀搜索算法進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化,使SSA-BP神經(jīng)網(wǎng)絡(luò)在修補(bǔ)的精度上相比于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)有明顯的提高。
(2)麻雀搜索算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò),相比于未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)、LSSVM算法具有更高的修補(bǔ)精度,在穩(wěn)定性上也具有明顯的提高。
(3)利用本文的修補(bǔ)方法對無人機(jī)點(diǎn)云孔洞進(jìn)行修補(bǔ),能夠得到符合1∶500 地形圖航空攝影測量規(guī)范的數(shù)據(jù)成果。該算法的修補(bǔ)結(jié)果與周圍點(diǎn)之間的連續(xù)性與平滑性較好,在點(diǎn)云修補(bǔ)上具有一定的應(yīng)用價值與研究意義。