王春香 張 勇 梁 亮 王巖輝
(內(nèi)蒙古科技大學(xué)機(jī)械學(xué)院,內(nèi)蒙古 包頭 014010)
在三維點云數(shù)據(jù)獲取過程中,被測實物具有復(fù)雜型面和較深的銷孔及內(nèi)腔,破損以及測量設(shè)備的限制,導(dǎo)致所測得的數(shù)據(jù)不完整,以及孔洞和缺口,為了得到完整的點云數(shù)據(jù)模型對實物進(jìn)行重建與創(chuàng)新設(shè)計,需要對測量點云數(shù)據(jù)進(jìn)行修補(bǔ),否則會影響曲面重構(gòu)后精度以及創(chuàng)新型研究。因此,點云孔洞修補(bǔ)技術(shù)是逆向設(shè)計的關(guān)鍵技術(shù)之一,為后期模型重構(gòu)提供高質(zhì)量的點云數(shù)據(jù)。
目前,隨著逆向工程應(yīng)用領(lǐng)域不斷的擴(kuò)大,對逆向設(shè)計關(guān)鍵技術(shù)要求越來越高,國內(nèi)外學(xué)者對點云孔洞修補(bǔ)技術(shù)也進(jìn)行了廣泛的研究,并取得了一定的成果。趙鑫[1]等利用BP神經(jīng)網(wǎng)絡(luò)強(qiáng)大的非線性逼近能力,實現(xiàn)了點云的去燥和孔洞修補(bǔ);劉俊[2]等通過建立特征平面,并在特征平面上調(diào)整填充點,實現(xiàn)孔洞修補(bǔ);張育峰[3]等提出引入松弛變量改變,收斂過程中陷入局部最小值,實現(xiàn)對孔洞修補(bǔ);Chen[4]等利用徑向基神經(jīng)網(wǎng)絡(luò)構(gòu)造隱式曲面,恢復(fù)了孔洞區(qū)域特征信息,孔洞修補(bǔ)效果較好等;朱春紅[5]等提出自適應(yīng)算法,利用孔洞區(qū)域與周圍數(shù)據(jù)的連續(xù)特性,擬合曲面,通過逐步迭代方式獲得最優(yōu)解,實現(xiàn)孔洞修補(bǔ);王春香[6]等通過孔洞周圍點建立最小二乘平面完成孔洞初步填充,并用RBF神經(jīng)網(wǎng)絡(luò)調(diào)整填充點,達(dá)到較好的修補(bǔ)效果,但RBF神經(jīng)網(wǎng)絡(luò)聚類中心和初始聚類數(shù)不易確定,影響修補(bǔ)效果;高印寒[7]等利用GA-BP神經(jīng)網(wǎng)絡(luò)高效而準(zhǔn)確地評價了車內(nèi)噪聲的品質(zhì);黃建國[8]等通過用GA(遺傳算法)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,改善搜索能力,很好地實現(xiàn)了基于時間序列的預(yù)測能力。
本文在分析和研究已有算法基礎(chǔ)上,充分考慮到BP神經(jīng)網(wǎng)絡(luò)具有良好的非線性映射能力、泛化能力以及容錯能力,利用遺傳算法(GA)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值,克服了BP神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu)和收斂速度慢等缺點,提高了全局優(yōu)化能力。算法通過利用點云孔洞周圍數(shù)據(jù)作為訓(xùn)練樣本,建立BP神經(jīng)網(wǎng)絡(luò)模型,以三角網(wǎng)格形式不斷填充孔洞,最后用該算法對基礎(chǔ)面進(jìn)行不斷優(yōu)化,實現(xiàn)對點云孔洞修補(bǔ)。實驗結(jié)果表明,該方法提高了修補(bǔ)精度和效率。
BP神經(jīng)網(wǎng)絡(luò)原理:(1)網(wǎng)絡(luò)初始化:初始化權(quán)值、訓(xùn)練精度和最大迭代次數(shù)。(2)信號正向傳播:輸入樣本→隱含層→輸出層;考慮到樣本輸入順序?qū)τ?xùn)練結(jié)果有影響,所以本文采用隨機(jī)輸入樣本的方式來計算輸出,而不是順序輸入。(3)判斷是否轉(zhuǎn)入反向傳播階段:計算實際輸出與期望輸出的偏差。如果二者不相符,則轉(zhuǎn)入反向傳播。(4)誤差反向傳播:修正輸入層和隱含層之間的連接權(quán)值以及隱含層和輸出層之間的連接權(quán)值。(5)計算全局誤差。(6)判斷網(wǎng)絡(luò)誤差是否滿足要求,即網(wǎng)絡(luò)的實際輸出值和期望輸出值之間的均方誤差最小。
遺傳算法是模擬自然界遺傳機(jī)制和生物進(jìn)化論的一種并行隨機(jī)搜索的最優(yōu)化方法,主要包括選擇、交叉、變異等操作,具有良好的全局搜索能力,能夠?qū)ふ业骄W(wǎng)絡(luò)結(jié)構(gòu)中的最優(yōu)權(quán)值和閾值,減小搜索范圍,使BP神經(jīng)網(wǎng)絡(luò)具有良好的優(yōu)化結(jié)構(gòu),結(jié)合GA-BP能夠精確和高效地實現(xiàn)三維散亂點云數(shù)據(jù)孔洞修補(bǔ)[9]。
孔洞修補(bǔ)包括:孔洞邊界提出→孔洞初步填充→孔洞點云處的優(yōu)化調(diào)整(實現(xiàn)修補(bǔ))。本次研究以挖掘機(jī)斗齒(圖1)人為孔洞為例,利用GA-BP混合算法進(jìn)行孔洞修補(bǔ)技術(shù)研究,并將修補(bǔ)結(jié)果與BP優(yōu)化結(jié)果進(jìn)行比較分析。分析斗齒結(jié)構(gòu)及配合要求,斗齒外部精度要求不高,易于掃描探測,斗齒內(nèi)腔精度要求較高,掃描儀不易探測,從而導(dǎo)致點云數(shù)據(jù)缺失,形成孔洞。故實驗以斗齒內(nèi)腔(圖2)為研究對象,其中+號聚集部分為人為漏洞缺失部分,在軟件無法實現(xiàn)較好修補(bǔ)情況下,對斗齒內(nèi)腔大面積點云數(shù)據(jù)缺失部分進(jìn)行修補(bǔ)研究。
孔洞邊界提取和孔洞填充:基于Imageware13.2,經(jīng)過點云分割,將斗齒內(nèi)腔分離出來,并將人為孔洞提取出來。基于軟件的實效性,通過將孔洞周圍的點進(jìn)行三角網(wǎng)格化,識別出點云孔洞邊界(圖3),利用填充孔命令,以孔洞周圍點為基礎(chǔ),通過不斷向內(nèi)插值完成孔的填充,然后在每個三角形面片中間插值點,形成新的網(wǎng)格,并且進(jìn)一步細(xì)化初步填充的三角形網(wǎng)格,避免發(fā)生重疊和移出過長三角形網(wǎng)格,將三角形網(wǎng)格離散成點(圖4),實現(xiàn)孔洞初步填充。孔洞的初步填充實現(xiàn)了對缺失部分粗略修補(bǔ),填充時未考慮孔洞周圍曲率變化以及光滑過渡,極易導(dǎo)致曲面表面光順度差,需進(jìn)一步進(jìn)行優(yōu)化調(diào)整。本文通過充分發(fā)揮軟件優(yōu)勢,實現(xiàn)自動探測孔洞邊界,基于此并實現(xiàn)了孔洞的初步填充,相較于編程實現(xiàn)孔洞邊界識別和建立特征平面實現(xiàn)孔洞區(qū)域填充更符合逆向設(shè)計的高效性,并利用GA-BP神經(jīng)網(wǎng)絡(luò)來對填充點調(diào)整,實現(xiàn)孔洞區(qū)域的精確修補(bǔ)。
GA-BP算法流程圖如圖5所示。
本文GA-BP神經(jīng)網(wǎng)絡(luò)采用3層網(wǎng)絡(luò)結(jié)構(gòu)(輸入層、隱含層和輸出層),其中神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為2-5-1,即輸入層2個節(jié)點,隱含層5個節(jié)點,輸出層1個節(jié)點。其中最大迭代次數(shù)為5 000次,預(yù)先設(shè)定誤差0.000 01,學(xué)習(xí)率為0.1,與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)基本一致,利用遺傳算法尋找最優(yōu)個體優(yōu)化網(wǎng)絡(luò)權(quán)值和閾值,最后實現(xiàn)仿真輸出。
本文根據(jù)孔洞周圍曲率變化,提取出471個點云數(shù)據(jù)為訓(xùn)練數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),隨機(jī)抽取5組數(shù)據(jù)所占百分比為(50%,60%,70%,80%,90%)作為訓(xùn)練數(shù)據(jù),其余作為測試數(shù)據(jù)。以點云的X和Y坐標(biāo)作為輸入,Z坐標(biāo)作為輸出,訓(xùn)練前將數(shù)據(jù)進(jìn)行歸一化處理,通過每次迭代,直到預(yù)測值與真實值之間的均方誤差MSE滿足預(yù)先設(shè)定目標(biāo)誤差為0.000 01,停止運行,并保存網(wǎng)絡(luò)。
本實驗基于MatlabR2015a做為實驗平臺,設(shè)備Win7(64)操作系統(tǒng),硬件配置IntelCorei5-3210MCPU,4GB內(nèi)存下進(jìn)行試驗操作。
表1通過對樣本在GA-BP和BP兩種模型下,預(yù)測值與真實值之間均方誤差MSE可以看出,GA-BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測能力要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型,預(yù)測效果明顯?;趫D6和圖7可以看出:通過BP網(wǎng)絡(luò)與GA-BP網(wǎng)絡(luò)預(yù)測誤差相比較,GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測能力更強(qiáng),偏差較小,其優(yōu)化后比BP神經(jīng)網(wǎng)絡(luò)預(yù)測值更接近真實值,從而說明預(yù)測結(jié)果更好。
表1 兩種模型預(yù)測誤差
模型各樣本數(shù)據(jù)誤差MSE50%60%70%80%90%平均誤差BP2.29853.02640.54740.35670.13051.2719GA-BP0.43792.23850.25150.24750.06970.6490
通過以孔洞填充點數(shù)據(jù)X和Y坐標(biāo)作為輸入數(shù)據(jù),Z坐標(biāo)作為輸出數(shù)據(jù),利用GA-BP和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真,得到預(yù)測輸出值Z′,并將X和Y坐標(biāo)與Z′進(jìn)行整合獲得孔洞填充點優(yōu)化后的三維點云坐標(biāo)XYZ′,并將其保存為.txt格式?;贗mageware13.2,將調(diào)整后的孔洞處點云數(shù)據(jù)導(dǎo)入完成孔洞修補(bǔ)。并通過比較BP神經(jīng)網(wǎng)絡(luò)優(yōu)化后坐標(biāo)值與原始點云偏差和GA-BP優(yōu)化后坐標(biāo)值與原始點云偏差;如圖8和圖9所示,從中可以看出GA-BP優(yōu)化后點云最大偏差為0.336 mm,BP優(yōu)化后點云最大偏差為0.438 mm,比較分析可得,GA-BP神經(jīng)網(wǎng)絡(luò)優(yōu)化效果較BP神經(jīng)網(wǎng)絡(luò)明顯,修補(bǔ)效果好,精度高。
本文充分發(fā)揮逆向軟件Imageware優(yōu)勢,實現(xiàn)孔洞邊界檢測與孔洞填充,在點云數(shù)據(jù)缺失嚴(yán)重大面積缺失和跨面漏洞,基于軟件修補(bǔ)效果差的情況下,利用算法修補(bǔ),針對BP神經(jīng)網(wǎng)絡(luò)所具有的優(yōu)勢(泛化能力強(qiáng),非線性映射能力和容錯能力好)和缺點(容易陷入局部極小值,收斂速度慢等)等問題,提出了一種基于GA-BP神經(jīng)網(wǎng)絡(luò)混合算法,對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行優(yōu)化,經(jīng)過預(yù)測仿真輸出,相較于BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度高,收斂速度快。通過實驗證明了該方法的可行性和時效性,對孔洞修補(bǔ)具有更好的修補(bǔ)效果。
[1]趙鑫,吳侃,敖建鋒,等.基于BP神經(jīng)網(wǎng)絡(luò)的點云去噪與空洞修補(bǔ)集成算法研究[C].2011全國礦山測量新技術(shù)學(xué)術(shù)會議論文集,2011:164-168.
[2]劉俊,何建英.基于神經(jīng)網(wǎng)絡(luò)的點云殘缺數(shù)據(jù)修補(bǔ)方法[J].機(jī)械工程師,2007(2):32-34.
[3]張育鋒, 陳庚, 朱杰. 基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的孔洞修復(fù)探討[J]. 北京測繪,2014(2):21-24.
[4]Chen C Y, Cheng K Y, Liao H Y M. A sharpness dependent approach to 3D polygon mesh hole filling[DB/OL]. www.mendeley.com ,2005.
[5]朱春紅, 達(dá)飛鵬. 基于B樣條曲面的點云孔洞擬合填充[J]. 中國機(jī)械工程,2006(s2):270-274.
[6]王春香, 陳浩宏, 孔艷彬,等. RBF神經(jīng)網(wǎng)絡(luò)在斗齒散亂點云漏洞修補(bǔ)中的應(yīng)用[J]. 機(jī)械科學(xué)與技術(shù), 2014, 33(10):1479-1483.
[7]高印寒, 唐榮江, 梁杰,等. 汽車聲品質(zhì)的GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測與權(quán)重分析[J]. 光學(xué)精密工程, 2013, 21(2):462-468.
[8]黃建國, 羅航, 王厚軍,等. 運用GA-BP神經(jīng)網(wǎng)絡(luò)研究時間序列的預(yù)測[J]. 電子科技大學(xué)學(xué)報, 2009, 38(5):687-692.
[9]高玉明, 張仁津. 基于遺傳算法和BP神經(jīng)網(wǎng)絡(luò)的房價預(yù)測分析[J]. 計算機(jī)工程, 2014, 40(4):187-191.