?

基于GA-BP神經網絡的散亂點云孔洞自動修補

2021-05-14 10:20王春香郝林文周國勇紀康輝
工程設計學報 2021年2期
關鍵詞:邊界點孔洞鄰域

王春香,郝林文,王 耀,周國勇,紀康輝,劉 流

(內蒙古科技大學機械工程學院,內蒙古包頭014010)

隨著三維點云數據采集技術日趨成熟,點云模型被廣泛應用于逆向工程、文物修復、醫療診斷和地形測繪等領域。完善的點云數據是后續應用的基礎。但在實際的點云數據采集過程中,由于操作技術、實物自身特性和測量環境等多種因素的影響,使得采集到的點云數據不完整,從而導致點云模型存在形狀各異的孔洞[1]??锥慈毕莸拇嬖诓粌H會影響點云模型的顯示效果,還會對后續點云數據的處理以及分析操作等產生較大影響[2]。因此有必要對點云模型的孔洞進行修補,進而保證點云數據完整,為下游模型的重構、快速成型和仿真分析等奠定基礎。

散亂點云是指通過測量得到的最原始的數據集合,也是與物體表面誤差最小的數據集合,直接對散亂點云進行孔洞修補不需要重建拓撲關系,具有較高的存儲和執行效率[3],此類修補方法一直是國內外學者關注的熱點。散亂點云孔洞修補往往都是先在檢測并提取孔洞邊界和孔洞周圍影響區域點云信息的基礎上構建隱式曲面、神經網絡和樣條曲線等,然后通過孔洞區域插值實現孔洞修補。例如:楊永強等[4]在采用最小二乘支持向量機根據孔洞周圍點云信息構建曲面的基礎上,完成了點云孔洞的修補;Kumar等[5]根據孔洞周圍點云數據,先擬合得到非均勻B樣條曲面,再通過插值實現孔洞修補。上述2種方法對散亂點云平滑區域孔洞的修補效果較好,但在修補曲率變化劇烈區域的孔洞時會造成特征信息缺失,從而導致修補效果欠佳。梁亮[6]分別采用粒子群算法、遺傳算法(genetic algorithm,GA)和思維進化算法優化BP(back propagation,反向傳播)神經網絡,然后直接在三維空間內修補散亂點云的平面、曲面和跨面孔洞,并通過優化BP神經網絡的參數提高了點云孔洞修補精度;何東健等[7]提出了一種基于三次B樣條曲線的點云孔洞修補方法,并采用該方法對奶牛點云大面積孔洞進行修補,取得了良好的修補效果,但某些局部區域的修補效果受噪點的影響較大。

針對目前基于GA‐BP神經網絡(利用GA優化的BP神經網絡)的散亂點云孔洞傳統修補方法存在人機交互復雜、自動化程度低等缺點,筆者提出了一種基于GA‐BP神經網絡的散亂點云孔洞自動修補方法。首先,對散亂點云的孔洞識別、孔洞區域插值和孔洞修補的方法和步驟進行分析;然后,基于提出的修補方法,開展散亂點云人為孔洞和自然孔洞修補實驗,以驗證所提出修補方法的有效性和準確性。

1 基于GA-BP神經網絡的傳統修補方法

BP神經網絡具有良好的非線性映射能力和容錯能力,但存在收斂速度慢、易陷入局部最優等缺陷,對此很多學者通過采用具有良好全局搜索能力的GA尋優得到BP神經網絡的最佳權值和閾值,從而克服BP神經網絡的缺陷[8]。GA‐BP神經網絡算法的流程如圖1所示。

圖1 GA-BP神經網絡算法流程Fig.1 Flow of GA‐BP neural network algorithm

基于GA‐BP神經網絡的散亂點云孔洞傳統修補方法的基本思路為:先利用散亂點云孔洞周圍影響區域的點云作為樣本數據訓練GA‐BP神經網絡,得到孔洞區域內數據點的某2個坐標與另一個坐標之間的近似映射關系,再利用該映射關系對初步選取的孔洞區域插值點進行調整優化,從而實現孔洞的修補,其流程如圖2所示。

圖2 基于GA-BP神經網絡的散亂點云孔洞傳統修補流程Fig.2 Traditional repair process of scattered point cloud hole based on GA‐BP neural network

在基于GA‐BP神經網絡的散亂點云孔洞傳統修補方法中,孔洞識別、孔洞區域插值和孔洞修補均需借助逆向軟件(如Imageware、Geomagic Design X等)通過人機交互的方式來完成[9],其修補過程比較繁瑣,嚴重影響了修補效率。此外,在修補過程中,由于需要數據轉換,可能會造成數據失真,從而影響修補后點云模型的質量。

2 基于GA-BP神經網絡的自動修補方法

基于GA‐BP神經網絡的散亂點云孔洞自動修補方法通過計算機編程將傳統修補方法中的孔洞識別、孔洞區域插值和孔洞修補相結合,實現從殘缺點云模型直接到完整點云模型的自動修補,整個過程無須進行復雜的人機交互。

2.1 孔洞識別

孔洞識別是散亂點云孔洞修補的首要環節。對于散亂點云,孔洞識別的本質是孔洞邊界點的檢測及提取。由于散亂點云中相鄰點之間不存在拓撲關系,其孔洞識別難度比網格模型大[10]。對于散亂點云的孔洞識別,往往是根據檢測點的鄰域點在其局部微切平面內的分布情況來判斷該檢測點是否為孔洞邊界點:內部點的鄰域點在其局部微切平面內的投影均勻分布在檢測點周圍,而孔洞邊界點的鄰域點在其局部微切平面內的投影集中偏向一側[11]。目前,最常見的孔洞識別方法是將檢測點及其鄰域點投影到對應的局部微切擬合平面上,并求解擬合平面內相鄰向量間的最大夾角,將夾角大于設定閾值的點判定為孔洞邊界點[12‐15],但該方法的過程較為繁瑣。

鑒于散亂點云的噪點會影響孔洞識別的效果,在孔洞識別之前須對其進行降噪處理。散亂點云孔洞邊界點的檢測流程如圖3所示,其中局部微切平面通過最小二乘法擬合得到[16]。識別散亂點云孔洞時需要不斷循環孔洞邊界點檢測流程,直到完成所有點的檢測,最后輸出孔洞邊界點及其鄰域點,作為GA‐BP神經網絡模型的訓練數據。

圖3 散亂點云孔洞邊界點檢測流程Fig.3 Detection flow of boundary point of scattered point cloud hole

在散亂點云孔洞邊界點檢測過程中,當對由檢測點及其鄰域點對應的投影點組成的向量進行歸一化處理后,這些向量的終點均在圖4所示的以檢測點的投影點P'為圓心的單位圓上。若鄰域點的投影點在P'周圍均勻分布,如圖4(a)所示,其對應向量矢量和的模較??;若鄰域點的投影點在P'周圍集中偏向一側,如圖4(b)所示,則其對應向量矢量和的模較大。故可利用來分析檢測點P的鄰域點的分布情況,從而判斷檢測點P是否為孔洞邊界點:若表示假設所有向量方向相同時的矢量和的模)的比值大于檢測閾值δ,則檢測點P是孔洞邊界點;否則檢測點P是點云內部點。

圖4 局部微切平面內檢測點鄰域點的分布情況Fig.4 Distribution ofneighborhood pointsofdetection point in local micro‐tangent plane

綜上可知,當檢測點的k個鄰域點足以體現其鄰近范圍內的點集分布情況時,可通過計算各向量的矢量和來判斷孔洞邊界點。通常情況下,鄰域點數量k一般取15~30,其大小主要由孔洞周圍點云密度決定,點云密度越大,k越??;檢測閾值δ一般取0~1,其大小主要與點云的彎曲程度有關,點云的彎曲程度越大,δ越小。該孔洞識別方法簡單、高效,無須進行復雜的角度計算,只需通過簡單的向量運算就可以有效檢測并提取散亂點云的孔洞邊界點,可為后續的孔洞區域插值和孔洞修補奠定基礎。

2.2 孔洞區域插值

在識別和提取散亂點云孔洞邊界點后,須初步選取孔洞區域插值點(即初步填充點)。散亂點云孔洞傳統修補方法一般是通過將點云模型轉化為網格模型,利用逆向軟件通過三角剖分的方式獲得插值點,但該方法得到的插值點的均勻性較差,不同位置的點集密度差異較大[17]。此外,在數據轉換過程中可能造成數據失真,從而影響修補后點云的質量。

為了獲得更符合實際測量點云密度的修補點云,在孔洞區域采用等步長生長的方法選取插值點。首先,將孔洞邊界點投影到由這些點擬合得到的局部微切平面上;然后,在局部微切擬合平面的孔洞區域內,以孔洞邊界點平均密度作為步長分別沿x方向和y方向進行生長,直到獲得孔洞區域內的全部插值點;最后,輸出這些插值點在局部微切擬合平面上的二維坐標,作為GA‐BP神經網絡模型的輸入數據。

在局部微切擬合平面上,孔洞區域內插值點的橫坐標為:

式中:xmin為孔洞邊界點對應投影點橫坐標的最小值;xmax為孔洞邊界點對應投影點橫坐標的最大值;R為孔洞邊界點平均密度。

在局部微切擬合平面上的x=xi處,孔洞區域內插值點的縱坐標為:

式中:yimin為孔洞邊界點對應投影點在x=xi處縱坐標的最小值;yimax為孔洞邊界點對應的投影區域在x=xi處縱坐標的最大值。

該孔洞區域插值點選取方法無須將點云模型轉換為網格模型,避免了因數據轉換而造成的數據失真。此外,利用該方法得到的孔洞區域插值點與孔洞周圍的點云密度相近,更符合實際測量得到的點云密度,且分布較為均勻,這在一定程度上有助于提高修補點云的質量。

2.3 孔洞修補

將利用上述孔洞識別方法提取到的孔洞邊界點及其鄰域點作為樣本數據來訓練和測試GA‐BP神經網絡,其中80%的點作為訓練數據,20%的點作為測試數據,以得到孔洞修補精度滿足要求的GA‐BP神經網絡模型。將利用上述插值點選取方法得到的孔洞區域插值點的二維坐標作為GA‐BP神經網絡模型的輸入數據,并計算其對應的仿真預測值。整合孔洞區域插值點的二維坐標與對應的仿真預測值,得到孔洞修補點的三維坐標,將孔洞修補點云和原始點云融合后得到完整點云,即完成了散亂點云的孔洞修補。

3 散亂點云孔洞修補實驗及結果分析

為了驗證所提出的基于GA‐BP神經網絡的散亂點云孔洞自動修補方法的修補效果,在內存為4.00GB、操作系統為Windows10的Intel(R)Core(TM)i5‐4210M CPU@2.60GHz計算機上利用MATLAB R2015a平臺進行編程,分別對殘缺點云模型的人為孔洞和自然孔洞進行修補,并分析孔洞修補效果。

3.1 人為孔洞修補

在鼠標點云模型中挖取一個如圖5所示的人為孔洞,該區域內缺失點的數量為397個。根據該點云模型的特性,取k=15,δ=0.45,基于圖3流程檢測并提取孔洞邊界點及其鄰域點,結果如圖6所示。

圖5 鼠標點云模型人為孔洞Fig.5 Artificial hole of mouse point cloud model

圖6 鼠標點云模型孔洞邊界點及其鄰域點Fig.6 Boundary points and neighborhood points of hole in mouse point cloud model

采用基于GA‐BP神經網絡的散亂點云孔洞自動修補方法對該鼠標點云模型的人為孔洞進行修補,結果如圖7所示。

圖7 修補后的鼠標點云模型Fig.7 Mouse point cloud model after repair

為了進一步研究該方法的修補精度,在逆向軟件Imageware中計算圖8所示的鼠標點云模型人為孔洞修補點云(十字線)與原始點云(空心圓)之間的偏差,結果如圖9所示。

圖8 鼠標點云模型人為孔洞修補點云與原始點云對比Fig.8 Comparison between repaired point cloud and origi‐nal point cloud of artificial hole in mouse point cloud model

圖9 鼠標點云模型人為孔洞修補點云與原始點云的偏差Fig.9 Deviation between repaired point cloud and original point cloud of artificial hole in mouse point cloud model

根據上述修補結果可知,基于GA‐BP神經網絡的散亂點云孔洞自動修補方法的修補效果較好,修補點云能夠與孔洞周圍點云自然過渡,無明顯修補痕跡。為了進一步驗證本文方法的修補效果,對基于本文方法與傳統方法的鼠標點云模型人為孔洞修補結果進行比較,如表1所示。

表1 基于不同方法的鼠標點云模型人為孔洞修補結果對比Table 1 Comparison of repair results of artificial hole in mouse point cloud model based on different methods

分析表1數據可知,傳統方法利用逆向軟件獲取的插值點數量較少,與孔洞區域缺失點的數量相差較大,而本文方法獲得的插值點數量更接近原始孔洞區域缺失點的數量,誤差率較小。此外,若以最大偏差作為修補精度,傳統方法和本文方法的修補精度均可滿足鼠標點云模型的精度要求,但本文方法的修補精度更高。實驗結果驗證了基于GA‐BP神經網絡的散亂點云孔洞自動修補方法的準確性和有效性。

3.2 自然孔洞修補

采用基于GA‐BP神經網絡的散亂點云孔洞自動修補方法來修補因外物遮擋而造成的鏈軌節點云模型的自然孔洞(如圖10所示)。

圖10 鏈軌節點云模型自然孔洞Fig.10 Natural hole of track link point cloud model

為了使鏈軌節點云模型自然孔洞的修補效果較好,需準確提取該點云模型孔洞的邊界點及其鄰域點。根據鏈軌節點云模型的特點,取檢測閾值δ=0.1,0.2,0.3,對應的孔洞邊界點提取結果分別如圖11、圖12和圖13所示。

圖11 δ=0.1時提取的鏈軌節點云模型自然孔洞邊界點Fig.11 Extracted boundary points of natural hole in track link point cloud model withδ=0.1

圖12 δ=0.2時提取的鏈軌節點云模型自然孔洞邊界點Fig.12 Extracted boundary points of natural hole in track link point cloud model withδ=0.2

圖13 δ=0.3時提取的鏈軌節點云模型自然孔洞邊界點Fig.13 Extracted boundary points of natural hole in track link point cloud model withδ=0.3

由圖11至圖13可知:當檢測閾值δ=0.1時,鏈軌節點云模型自然孔洞識別結果的準確度較差,識別得到的孔洞邊界點包含許多噪點;當檢測閾值δ=0.3時,識別得到的孔洞邊界點數量較少,無法構成該孔洞的完整邊界;當檢測閾值δ=0.2時,識別得到的孔洞邊界點較為完整且不存在噪點。因此,取0.2作為鏈軌節點云模型自然孔洞邊界點檢測的閾值,提取孔洞邊界點及其鄰域點,結果如圖14所示。此外,由于鏈軌節點云模型自然孔洞屬于跨面孔洞且面積較大,在逆向軟件Imageware中直接圈選孔洞邊界點及其鄰域點的難度較大,需進行多次調整,而本文方法可以自動、準確地提取該孔洞的邊界點及其鄰域點。

根據提取到的鏈軌節點云模型自然孔洞的邊界點,利用本文方法選取其孔洞區域的二維插值點,如圖15所示。

圖15 鏈軌節點云模型自然孔洞區域的二維插值點Fig.15 Two‐dimensionalinterpolation points ofnatural hole area in track link point cloud model

利用檢測閾值δ=0.2時提取到的鏈軌節點云模型自然孔洞的邊界點及其鄰域點訓練GA‐BP神經網絡模型,得到其預測誤差,如圖16所示。

圖16 用于鏈軌節點云自然孔洞修補的GA-BP神經網絡模型的預測誤差Fig.16 Prediction error of GA‐BP neural network model for repair of natural hole in track link point cloud

分別利用本文方法和傳統方法對鏈軌節點云模型自然孔洞進行修補,得到的修補點云如圖17所示,其中四周十字線表示識別或圈選的孔洞邊界點及其鄰域點,中間X形線表示修補點。

圖17 基于不同方法的鏈軌節點云模型自然孔洞修補點云Fig.17 Repaired point cloud of natural hole in track link point cloud model based on different methods

由圖17可以看出,傳統方法得到的修補點數量較少且分布散亂,而本文方法得到的修補點較為均勻,與孔洞周圍點云密度相近,且更接近實際測量點云的密度。為了直觀顯示孔洞的修補效果,將采用本文方法修補后的鏈軌節點云模型著色,如圖18所示。

圖18 采用本文方法修補后的鏈軌節點云模型Fig.18 Track link point cloud model repaired by method of this paper

由圖18可知,基于GA‐BP神經網絡的散亂點云孔洞自動修補方法的整體修補效果較好。為了進一步驗證本文該方法的有效性,在逆向軟件Geomagic Design X中,采用正逆向混合建模方法對修補后的鏈軌節點云模型進行實體模型重構[18],如圖19所示。重構的實體模型驗證了基于GA‐BP神經網絡的散亂點云孔洞自動修補方法的有效性和實用性。

圖19 采用本文方法修補后的鏈軌節實體模型Fig.19 Track link solid model repaired by method of this paper

4 結束語

針對基于GA‐BP神經網絡的散亂點云孔洞傳統修補方法因需通過人機交互完成孔洞識別、孔洞區域插值和孔洞修補而耗時較多的問題,提出了一種基于GA‐BP神經網絡的散亂點云孔洞自動修補方法,充分利用計算機自動處理程序,減少了人機交互工作量,提高了散亂點云孔洞修補的自動化程度,使得散亂點云孔洞的修補更為方便和高效。此外,采用基于等步長生長的孔洞區域插值方法所得到的插值點比較均勻,且與孔洞周圍點云密度的較一致,在一定程度上提高了修補后點云模型的質量。

雖然本文方法可以有效修補密度較為均勻的殘缺點云模型孔洞,但對于不同部位密度相差較大的殘缺點云模型孔洞的修補效果不夠理想,這將是后續的研究重點。此外,該方法僅適用于存在單個孔洞的殘缺點云模型,當殘缺點云模型存在多個孔洞時,還需對檢測到的孔洞邊界點作進一步的聚類處理。同時,該方法需要通過不斷調整多個參數來達到理想的孔洞修補效果,如何根據殘缺點云模型的特性自動選取各參數的最優值有待進一步研究。

猜你喜歡
邊界點孔洞鄰域
一種面向孔洞修復的三角網格復雜孔洞分割方法
稀疏圖平方圖的染色數上界
孔洞加工工藝的概述及鑒定要點簡析
基于鄰域競賽的多目標優化算法
基于降維數據邊界點曲率的變電站設備識別
玻璃漿料鍵合中的孔洞抑制和微復合調控
關于-型鄰域空間
面向手繪草圖檢索的邊界點選擇算法
一種去除掛網圖像鋸齒的方法及裝置
基于時序擴展的鄰域保持嵌入算法及其在故障檢測中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合