艾青波 張 潔 程 輝 呂佑龍 左麗玲 胡 藍
1.東華大學(xué)機械工程學(xué)院,上海,2016202.上海航天設(shè)備制造總廠有限公司,上海,200245
薄壁件是運載火箭貯箱中最主要的構(gòu)成部件,占運載火箭覆蓋件面積的60%以上,平面的航天板材經(jīng)過滾彎機多個道次的連續(xù)加工形成指定曲率的筒段薄壁件,其滾彎成形質(zhì)量直接影響整個貯箱件的裝備質(zhì)量。曲率是評價航天筒段薄壁件滾彎成形質(zhì)量的重要指標,高效精確的曲率測量對嚴格控制航天筒段薄壁件滾彎成形質(zhì)量具有重要意義。
傳統(tǒng)航天工業(yè)板材滾彎曲率測量仍采用人工對樣[1]測量方式,測量用的樣板不僅在制造過程中耗費大量材料和工時,其使用過程中也依賴于檢測人員的主觀判斷。隨著激光測量技術(shù)的快速發(fā)展,基于激光掃描點云的非接觸式曲率測量方式已逐漸成為主流[2-3]。利用激光位移傳感器掃描薄壁件表面得到點云,對點云進行圓柱擬合[4-5]獲得曲率,該方法相較于人工方法具有操作簡單、效率高、精度高、工作環(huán)境好等優(yōu)點。
目前點云的圓柱擬合主要有兩類方法。第一類方法是直接基于空間圓柱的代數(shù)方程進行點云擬合,其主要計算方法包括隨機抽樣一致(random sample consensus,RANSAC)算法[6]、高斯映射法[7]、遺傳算法[8]、最小二乘法[9]、坐標轉(zhuǎn)換法[10]等。圓柱擬合是迭代的過程,需要先行給定圓柱參數(shù)初值,而實際工作中不容易知道這些參數(shù)的近似值,導(dǎo)致初值與實際值偏差較大而影響擬合效果,因此有學(xué)者提出先求取參數(shù)初值再進行圓柱擬合的第二類圓柱擬合方法。文獻[11]將采集的點云分別投影到以各個單位向量為法向量的平面上,將投影點擬合成圓后選取圓度最好的一組單位向量作為擬合圓柱軸向的初始向量,有效地提高了測量點過少時圓柱擬合的精度。文獻[12]基于圓柱表面點云只有在與軸線方向平行時才可構(gòu)成直線的幾何性質(zhì),提出一種通過三點共線確定圓柱軸線方向的圓柱初值查找算法,適用于無粗差點云數(shù)據(jù)的圓柱擬合。文獻[13-15]均提出由鄰域點計算點云法矢,進而根據(jù)圓柱軸線與表面各點法矢垂直的幾何性質(zhì)估計參數(shù)初值,再通過最小二乘法實現(xiàn)圓柱擬合。但是航天筒段薄壁件激光掃描點云屬于密集點云,且受金屬材質(zhì)等因素影響容易存在較多的粗差點,而上述方法在計算密集點云初值時計算量大,結(jié)果對粗差較為敏感,難以滿足薄壁件連續(xù)滾彎加工時的高效準確檢測要求。
近年來,點云深度學(xué)習(xí)相關(guān)的神經(jīng)網(wǎng)絡(luò)技術(shù)發(fā)展迅猛,以CHARLES等[16]設(shè)計的PointNet模型為代表的深度學(xué)習(xí)算法已經(jīng)在點云分類、點云分割、語義分割等領(lǐng)域得到應(yīng)用,這些神經(jīng)網(wǎng)絡(luò)模型具有優(yōu)良的預(yù)測性能,且模型應(yīng)用時前向傳播的速度很快,能夠滿足圓柱參數(shù)初值的快速準確計算要求。本文參考PointNet模型結(jié)構(gòu),建立了面向圓柱參數(shù)預(yù)測的點云網(wǎng)絡(luò)(point network for cylindrical parameters prediction,PointCPP)模型,根據(jù)模型預(yù)測值,運用最小二乘擬合(least square fitting,LSF)方法擬合點云圓柱,實現(xiàn)了薄壁件曲率半徑計算。
航天筒段薄壁件點云圓柱擬合問題如圖1所示,假設(shè)存在一個中心軸線方向向量為(l,m,n)、軸線上某一起始點坐標為P0(x0,y0,z0)、圓柱半徑為常數(shù)R的空間圓柱,可使薄壁件表面的點Pi(xi,yi,zi)滿足|PiP0|2-|PiP|2-R2=0(點P為Pi與圓柱軸線的垂足),則常數(shù)R就是薄壁件的曲率半徑,各參數(shù)間的關(guān)系滿足下式:
圖1 圓柱擬合計算航天筒段薄壁件成形曲率半徑
(xi-x0)2+(yi-y0)2+(zi-z0)2-[l(xi-x0)+
m(yi-y0)+n(zi-z0)]2-R2=0
(1)
為尋找滿足式(1)的空間圓柱,首先需估計參數(shù)x0、y0、z0、l、m、n、R的初值,再建立相應(yīng)誤差方程對初值進行迭代優(yōu)化。航天筒段薄壁件并非完整圓柱,受材質(zhì)等因素影響,其激光掃描點云具有更多噪點,進行圓柱擬合時對初值十分敏感。其中,軸線方向參數(shù)l、m、n的初值l0、m0、n0對擬合結(jié)果影響最大[15],如圖2所示。
(a)初值偏離實際值
PointCPP模型的作用就是基于點云數(shù)據(jù)對圓柱軸線方向參數(shù)進行預(yù)測。與法矢估計等傳統(tǒng)軸線預(yù)測方法不同,深度學(xué)習(xí)模型會受點云數(shù)據(jù)特征影響,主要包括以下三點:
(1)點云具有無序性。點云數(shù)據(jù)是通過矩陣來表示的,點云是三維空間中的無序點集合,但是矩陣是有順序的,相同的點云由于排序方式的不同可能會有多種不同的矩陣表達形式。假設(shè)一個點云包含Nd個點,為使模型學(xué)習(xí)到點云的無序性特點,訓(xùn)練時需要考慮到Nd!種排列組合方式,這會極大地增加模型訓(xùn)練量,并導(dǎo)致模型收斂性、穩(wěn)定性差。
(2)點云的數(shù)量多變。在點云數(shù)據(jù)獲取過程中,同一設(shè)備采用不同掃描方式會導(dǎo)致生成點云的點數(shù)存在差異。受卷積核等的限制,PointCPP模型在處理數(shù)據(jù)時要求輸入數(shù)據(jù)具有統(tǒng)一的格式,不同點數(shù)的點云無法進行訓(xùn)練。
(3)點云的空間位置及尺寸多樣。航天筒段薄壁件根據(jù)型號、批次的不同,會具有不同的尺寸大小,而掃描方式的不同又會導(dǎo)致點云在空間中的位置分布不統(tǒng)一,如圖3所示,考慮到點云的平移或尺寸變化并不會改變軸線方向,這種多樣性對模型的訓(xùn)練過程是一種干擾。
圖3 點云空間位置與尺寸多樣
基于PointCPP模型實現(xiàn)點云曲率半徑計算的流程如圖4所示。首先構(gòu)建原始點云數(shù)據(jù)集并進行劃分;對模型訓(xùn)練使用的點云數(shù)據(jù)集進行預(yù)處理;定義預(yù)測模型的網(wǎng)絡(luò)層級結(jié)構(gòu),針對軸線方向預(yù)測問題的特點設(shè)計損失函數(shù),通過梯度下降法最小化模型預(yù)測輸出與訓(xùn)練數(shù)據(jù)實際輸出之間的誤差,每一次迭代優(yōu)化后都利用測試集對訓(xùn)練模型進行評估,并保留最優(yōu)模型;使用該模型確定測試數(shù)據(jù)集的參數(shù)初值,并采用最小二乘擬合(LSF)法擬合圓柱;剔除點云數(shù)據(jù)中的粗差點,重新進行圓柱擬合直至粗差點數(shù)量為零,得到精確的圓柱擬合結(jié)果并輸出曲率半徑。
圖4 基于PointCPP-LSF的點云曲率半徑測量流程
針對點云數(shù)量多變的特點,采用圖5所示的最遠點采樣方式,使采樣范圍盡可能覆蓋整個測量空間,并保證樣本中點云點數(shù)的一致性。
圖5 最遠點采樣原理圖
如圖5所示,隨機選取初始點A,得到采樣點集合S={A};選取剩余點中距點A歐氏距離最遠的點B,更新集合S={A,B};分別計算剩余點與點A、B的歐氏距離,以剩余點中距離點A或點B的歐氏距離的最小值作為該點到集合S的距離,選取距離最遠的點C,更新集合S={A,B,C};重復(fù)上述步驟直至采樣點集合S滿足采樣點數(shù)要求。
PointCPP模型由卷積層、池化層和BP層組合而成。卷積層參考PointNet模型中共享權(quán)重的多層感知機結(jié)構(gòu),以一維卷積核提取點云數(shù)據(jù)局部特征,并形成特征矩陣;池化層的作用是對卷積層提取的特征矩陣進行降抽樣,在減少參數(shù)數(shù)量的同時避免因點云無序性而導(dǎo)致模型過擬合;卷積層與池化層組合從點云數(shù)據(jù)中提取全局特征,再與BP層相互連接實現(xiàn)軸線方向預(yù)測,如圖6所示。
圖6 面向圓柱參數(shù)預(yù)測的點云網(wǎng)絡(luò)模型(PointCPP模型)
2.2.1輸入數(shù)據(jù)結(jié)構(gòu)
PointCPP模型的輸入是一個Nc×3×1的點云數(shù)據(jù)矩陣,其中Nc為采樣后點云所包含的點數(shù)量,3表示各點的三維坐標(xi,yi,zi),1表示輸入數(shù)據(jù)的通道數(shù)。
2.2.2卷積層——特征提取
卷積層的作用是將輸入的點云數(shù)據(jù)轉(zhuǎn)換成為特征矩陣。在PointCPP模型的卷積過程中,一維卷積核以1為步長自上而下滑動,與輸入數(shù)據(jù)在對應(yīng)位置的值相乘并求和,完成一個周期即得到特征矩陣中的一列,其過程如圖7所示。
圖7 PointCPP模型中單個卷積核的卷積過程
單個卷積核的卷積過程可看作是矩陣運算,其計算式如下:
(2)
PointCPP模型共進行了三次卷積操作,將格式為Nc×3×1的輸入點云數(shù)據(jù)轉(zhuǎn)換成Nc×1×1024的特征矩陣。
2.2.3池化層——特征降維
卷積后得到的特征矩陣仍具備點云數(shù)據(jù)的無序性特點,且包含的特征數(shù)目非常多。將特征矩陣的每一列視為一個池化窗口,通過最大池化對池化窗口內(nèi)的特征進行聚合統(tǒng)計,以消除特征矩陣的無序性,同時減小特征矩陣尺寸。池化過程如圖8所示。
圖8 PointCPP的特征采樣
假設(shè)池化前的特征矩陣共有Nc行,k表示特征矩陣的第k列,池化的映射過程如下:
(3)
PointCPP模型通過卷積層和池化層的配合將具有順序的Nc×3×1點云數(shù)據(jù)轉(zhuǎn)換成不受順序制約的1×1×1024全局特征,解決了無序點云數(shù)據(jù)可能導(dǎo)致的模型過擬合等問題。
2.2.4BP層——參數(shù)預(yù)測
輸出層的功能是將點云全局特征轉(zhuǎn)換成軸線方向。考慮到軸線方向是由3個參數(shù)表達的,為避免訓(xùn)練過程中各參數(shù)的相互干擾,PointCPP模型設(shè)計了3個結(jié)構(gòu)相同但相互獨立的BP神經(jīng)網(wǎng)絡(luò)。將點云的全局特征分別輸入到3個BP神經(jīng)網(wǎng)絡(luò)中,經(jīng)前向傳播輸出軸線方向的預(yù)測參數(shù)l、m、n,其中每一個BP神經(jīng)網(wǎng)絡(luò)輸出對應(yīng)的一個參數(shù)值。前向傳播的計算公式為
(4)
2.2.5損失函數(shù)設(shè)計
圓柱軸線是由軸線方向參數(shù)l、m、n相互的比例關(guān)系決定的,本文針對這一特點設(shè)計損失函數(shù),將PointCPP模型輸出的l0、m0和n0這3個參數(shù)值構(gòu)成預(yù)測的圓柱軸線方向向量VD0=(l0,m0,n0),計算該向量VD0與實際圓柱軸線方向向量VD=(l,m,n)之間的銳夾角,將銳夾角的弧度值作為模型損失,具體的損失函數(shù)可表示為
(5)
(a)θ<π/2 (b)θ≥π/2
傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的損失函數(shù)傾向于使輸出參數(shù)盡可能地接近某一具體值,不考慮輸出參數(shù)的相互關(guān)系。PointCPP模型的損失函數(shù)考慮了軸線方向各參數(shù)間的關(guān)聯(lián),對于方向相同但模不同的向量或者方向剛好相反的向量,損失都是保持一致的,避免了因具體數(shù)值差異而導(dǎo)致?lián)p失計算錯誤。
初值選取方面,軸線方向參數(shù)l、m、n的初值由PointCPP模型確定,剩余參數(shù)的選取參照文獻[9]方法,所有參數(shù)的初始賦值如下:
(6)
基于式(1)推導(dǎo)的空間圓柱代數(shù)方程可以得到最小二乘擬合的誤差方程為
vi=(xi-x0)2+(yi-y0)2+(zi-z0)2-
[l(xi-x0)+m(yi-y0)+n(zi-z0)]2-R2
(7)
式中,vi為點云第i個點在當(dāng)前圓柱參數(shù)下的誤差。
由式(6)確定圓柱參數(shù)初值,再依據(jù)式(7)計算點云各點的誤差,根據(jù)最小二乘平差原則,調(diào)整參數(shù)值使點云各點誤差的平方和最小。這個過程需要迭代計算,收斂得到最佳的參數(shù)平差值。由于PointCPP模型已經(jīng)獲得接近真實值的軸線參數(shù),因此本文在第一次迭代時將軸線參數(shù)作為常數(shù),減少需擬合的圓柱參數(shù)數(shù)量,當(dāng)點云迭代擬合過程中前后半徑擬合值的偏差收斂到一定閾值后,再對全部參數(shù)進行擬合,以實現(xiàn)快速穩(wěn)健的參數(shù)輸出。
參數(shù)收斂后,計算點云與擬合圓柱的中誤差,其表達式為
(8)
式中,σ為點云的中誤差;ri為當(dāng)前圓柱參數(shù)下點云各點到圓柱軸線的垂直距離。
剔除點云中大于3倍中誤差的粗差點后,重新計算圓柱參數(shù),重復(fù)上述步驟直至點云中不再含有誤差較大的粗差點,以實現(xiàn)準確的空間圓柱擬合,最終得到的圓柱參數(shù)R即為被測航天筒段薄壁件點云的曲率半徑。
本文使用仿真數(shù)據(jù)對模型進行訓(xùn)練與測試,再以實際數(shù)據(jù)對所述方法進行驗證[17]。制作120個尺寸不同的UG仿真模型,使用MeshLab軟件從仿真模型中抽取點云數(shù)據(jù),添加隨機噪聲并人為降低點云完整性,實驗數(shù)據(jù)采集過程如圖10所示。
圖10 實驗數(shù)據(jù)采集過程
為使實驗采用的仿真數(shù)據(jù)更加接近實際情況,對每個薄壁件點云進行5次任意角度旋轉(zhuǎn)變換及任意位置坐標平移,最終得到的點云數(shù)據(jù)各參數(shù)如表1所示。
表1 薄壁件仿真點云數(shù)據(jù)參數(shù)
對實驗數(shù)據(jù)進行劃分:將編號1~480的點云數(shù)據(jù)劃分為PointCPP模型的訓(xùn)練數(shù)據(jù)集;確定訓(xùn)練數(shù)據(jù)集后,剩余120個點云數(shù)據(jù)則作為測試數(shù)據(jù)使用。測試數(shù)據(jù)集與訓(xùn)練數(shù)據(jù)集分別采集自不同尺寸的薄壁件模型,以保證實驗結(jié)果的準確性。
采用劃分好的訓(xùn)練數(shù)據(jù)集對PointCPP模型進行訓(xùn)練,設(shè)置學(xué)習(xí)率為0.001,訓(xùn)練次數(shù)為100。訓(xùn)練完畢后,利用PointCPP模型對測試數(shù)據(jù)集進行預(yù)測,記錄預(yù)測軸線方向與實際軸線方向的角度誤差,并與文獻[15]中提出的基于點云法矢的軸線估計方法進行比較,如表2和圖11所示。
由表2和圖11可知,PointCPP模型(本文方法)在測試數(shù)據(jù)集中的平均角度誤差為0.157 rad,而法矢估計方法的平均角度誤差為0.255 rad。本文方法的預(yù)測結(jié)果略優(yōu)于法矢估計方法的預(yù)測結(jié)果,這是因為點云法矢是通過主成分分析從鄰域點計算得來的,而航天筒段薄壁件點云具有較多噪聲,噪聲的影響在鄰域點這種局部區(qū)域中尤為明顯,使法矢計算不準確,進一步導(dǎo)致軸線預(yù)測出現(xiàn)偏差。PointCPP模型通過卷積抽取點云全局特征,其更加關(guān)注點云整體而非細節(jié),處理含噪聲數(shù)據(jù)時的魯棒性更強。
表2 兩種方法的軸線預(yù)測誤差
圖11 兩種方法的軸線預(yù)測誤差分布圖
將本文中基于PointCPP模型預(yù)測軸線方向的圓柱擬合方法(PointCPP-LSF)與文獻[15]中基于點云法矢的圓柱擬合方法(法矢估計-LSF)、文獻[9]中基于最小二乘的圓柱擬合方法(LSF)進行對比,采用相同的測試數(shù)據(jù)集分別代入三種方法中進行計算。輸出測試數(shù)據(jù)集中每個點云的曲率半徑計算值,然后與點云所對應(yīng)薄壁件模型的實際曲率半徑進行比較,求出測量誤差,并記錄同一個設(shè)備下不同方法所消耗的計算時間(CPU:Intel Core i7-8750H,GPU:Nvidia GTX1060)。
表3中曲率半徑測量誤差較大的數(shù)據(jù)用“#”進行標記,誤差過大是圓柱擬合錯誤導(dǎo)致的,本文對三種方法中出現(xiàn)的擬合錯誤個數(shù)進行了統(tǒng)計,如圖12所示,在擬合航天筒段薄壁件激光掃描點云這類噪聲點較多的點云數(shù)據(jù)時,直接進行最小二乘擬合容易導(dǎo)致擬合結(jié)果錯誤,而采用PointCPP模型或法矢估計方法確定軸線方向初值則能夠大幅降低圓柱擬合錯誤率。由于圓柱擬合都是通過迭代尋找最優(yōu)解的,在點云具有噪聲的情況下,迭代過程中有可能陷入局部最優(yōu)而導(dǎo)致最終的圓柱擬合結(jié)果錯誤,而通過對軸線方向參數(shù)進行預(yù)測,可以使初值在迭代優(yōu)化前就接近真實值,且大幅降低迭代結(jié)果陷入局部最優(yōu)的概率,這也是包括本文方法在內(nèi)的兩種方法的準確度得到明顯提高的關(guān)鍵原因。
表3 曲率半徑計算結(jié)果對比實驗
圖12 不同方法的擬合結(jié)果對比
如圖13所示,在計算耗時方面,不預(yù)測初值的圓柱擬合方法(即LSF)的平均耗時為4.74 s,基于PointCPP模型預(yù)測軸線方向的圓柱擬合方法(即本文方法)的平均耗時為4.13 s,通過點云法矢計算軸線方向的圓柱擬合方法的平均耗時為15.41 s。本文方法的計算效率略高于不進行初值預(yù)測的圓柱擬合方法的計算效率,這是因為一方面通過預(yù)測軸線方向減少了后續(xù)擬合所需的迭代次數(shù),且模型前向傳播的速度很快,減少迭代次數(shù)所帶來的時間收益可以抵消模型在軸線預(yù)測上的耗時;另一方面,模型前向傳播的耗時基本不變,且通過軸線預(yù)測縮減了后續(xù)擬合中不必要的迭代過程,使得本文方法的計算耗時相比其他方法更不容易出現(xiàn)波動,整個耗時曲線更加平滑。
圖13 三種方法的計算耗時對比
搭建激光測量平臺并采集實際航天筒段薄壁件點云數(shù)據(jù),從而對本文方法進行驗證。如圖14所示,激光測量平臺采集得到的實際點云數(shù)據(jù)本身存在一定缺失,并含有大尺度離群噪聲點。在不同角度下采集46個實際點云數(shù)據(jù),將通過仿真數(shù)據(jù)訓(xùn)練得到的PointCPP模型用于實際數(shù)據(jù)測量,以驗證本文方法在工程實際應(yīng)用中的有效性,如表4所示。
(a)點云激光測量平臺
表4中作為測量對象的航天筒段薄壁件是以人工對樣測量為輔助手段生產(chǎn)的,其實際曲率半徑與目標曲率半徑存在4~5 mm的平均偏差,采用本文方法測量的平均偏差為4.622 mm,符合上述范圍,表明本文方法具有較高精度,適用于工程實際中航天筒段薄壁件的滾彎成形質(zhì)量分析。
表4 工程實例驗證
本文方法最終分析的某點云數(shù)據(jù)實例及其擬合圓柱如圖15所示。
圖15 點云數(shù)據(jù)實例的擬合效果圖
針對航天筒段薄壁件質(zhì)量分析需求,本文提出了一種PointCPP-LSF方法,以降低曲面擬合過程對軸線初始化的依賴性。PointCPP-LSF方法的優(yōu)點在于將深度學(xué)習(xí)與機理方法各自優(yōu)勢結(jié)合,設(shè)計了面向圓柱參數(shù)預(yù)測的點云網(wǎng)絡(luò)模型(PointCPP模型),并與最小二乘擬合(LSF)方法相銜接來實現(xiàn)點云圓柱擬合,兩部分各有分工,PointCPP模型基于數(shù)據(jù)對圓柱參數(shù)近似值進行估算,LSF方法則基于數(shù)學(xué)機理求解圓柱參數(shù)精確值。實驗中,PointCPP-LSF方法體現(xiàn)了比常見純數(shù)學(xué)圓柱擬合方法更高的擬合速度與準確度,并通過工程實例驗證了本文方法的有效性。但是,現(xiàn)階段PointCPP模型與LSF方法的銜接較為簡單,模型需要經(jīng)過完善訓(xùn)練才能投入使用,在訓(xùn)練樣本匱乏的情況下預(yù)測性能會受到影響,接下來應(yīng)考慮改進模型結(jié)構(gòu),形成圓柱擬合結(jié)果向模型的反饋,通過邊預(yù)測邊學(xué)習(xí)來進一步增強模型的魯棒性。