文思揚(yáng),周來(lái)水,閆杰瓊,胡少乾
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
在逆向工程領(lǐng)域,三維激光掃描儀獲取的實(shí)物外形點(diǎn)云數(shù)據(jù)被廣泛使用[1]。而在使用逆向工程思路對(duì)航空發(fā)動(dòng)機(jī)外形三維模型重建的過(guò)程中,需要將外形點(diǎn)云數(shù)據(jù)進(jìn)行分割,獲得更小、連貫、具有相同屬性點(diǎn)的點(diǎn)云片段,以利于之后點(diǎn)云數(shù)據(jù)的分類(lèi),從而針對(duì)性地對(duì)點(diǎn)云片段進(jìn)行重建。而由于傳統(tǒng)的點(diǎn)云分割法,如曲面生長(zhǎng)算法[2-4]、聚類(lèi)分割算法[5-6]、掃描線算法[7-8]等存在一定的局限性,不能很好地將航空發(fā)動(dòng)機(jī)外形特征分割出來(lái)。而深度學(xué)習(xí)方法通過(guò)提供訓(xùn)練集,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,可以獲取訓(xùn)練點(diǎn)云數(shù)據(jù)中的點(diǎn)云局部特征及點(diǎn)云的幾何信息,從而對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行分類(lèi),進(jìn)而較好地完成航空發(fā)動(dòng)機(jī)外形點(diǎn)云分割的任務(wù)。
利用深度學(xué)習(xí)進(jìn)行點(diǎn)云數(shù)據(jù)分割,需要有大量的點(diǎn)云數(shù)據(jù)組成數(shù)據(jù)集,供神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí)。一般的網(wǎng)絡(luò)所使用的訓(xùn)練集,如ModelNet40[9]、ShapeNet[10]等,其中的三維模型僅為簡(jiǎn)單的幾何模型,使用這樣的訓(xùn)練集進(jìn)行學(xué)習(xí),會(huì)影響網(wǎng)絡(luò)對(duì)航空發(fā)動(dòng)機(jī)外形特征分割結(jié)果的精度。為了解決這個(gè)問(wèn)題,本文提出一種生成含航空發(fā)動(dòng)機(jī)外形典型特征點(diǎn)云數(shù)據(jù)集的方法。通過(guò)對(duì)航空發(fā)動(dòng)機(jī)外形進(jìn)行觀察研究,分析航空發(fā)動(dòng)機(jī)的外形特點(diǎn)及其所包含的特征,并進(jìn)行分類(lèi)。然后使用UG軟件制作出一系列具有航空發(fā)動(dòng)機(jī)外形代表性特征的三維理論模型并生成點(diǎn)云,并將其與掃描的航空發(fā)動(dòng)機(jī)外形實(shí)測(cè)數(shù)據(jù)融合。將這些點(diǎn)云數(shù)據(jù)按照設(shè)置的分類(lèi)標(biāo)準(zhǔn)進(jìn)行特征標(biāo)注,最終制作成帶標(biāo)簽的航空發(fā)動(dòng)機(jī)外形點(diǎn)云數(shù)據(jù)集。
由于功能需要航空發(fā)動(dòng)機(jī)的外形設(shè)計(jì)要求與標(biāo)準(zhǔn)非常復(fù)雜。其中,航空發(fā)動(dòng)機(jī)的機(jī)匣是航空發(fā)動(dòng)機(jī)最重要的零件之一,具有航空發(fā)動(dòng)機(jī)最明顯的外形特征。它作為整個(gè)發(fā)動(dòng)機(jī)的基座,也是航空發(fā)動(dòng)機(jī)的最主要受力零件,有著較為復(fù)雜的外形結(jié)構(gòu)。不同型號(hào)的發(fā)動(dòng)機(jī)機(jī)匣有所不同,但這些機(jī)匣都主要由圓筒形或圓錐形的殼體和支板組成。而其余種類(lèi)的外形特征,大部分附著在機(jī)匣之上。圖1所示為兩臺(tái)實(shí)際航空發(fā)動(dòng)機(jī)的外形特征照片。

圖1 實(shí)際發(fā)動(dòng)機(jī)的外形圖片
對(duì)實(shí)際的航空發(fā)動(dòng)機(jī)外形機(jī)匣特征進(jìn)行分析,可以總結(jié)出航空發(fā)動(dòng)機(jī)外形主要特征為機(jī)匣壁、安裝邊、加強(qiáng)筋、螺栓、凸臺(tái)、管路、孔洞等,如圖2所示。

圖2 航空發(fā)動(dòng)機(jī)外形主要特征
構(gòu)建的航空發(fā)動(dòng)機(jī)外形點(diǎn)云深度學(xué)習(xí)數(shù)據(jù)集,需要保證數(shù)據(jù)本身具有代表性、豐富性、準(zhǔn)確性、均衡性和真實(shí)性。為實(shí)現(xiàn)這些要求,可以首先根據(jù)上文所總結(jié)的航空發(fā)動(dòng)機(jī)所具有的外形特征,構(gòu)建出足夠數(shù)量的、包含航空發(fā)動(dòng)機(jī)外形特征的理論模型。本文通過(guò)UG軟件生成所需的理論模型,并針對(duì)其中的特征設(shè)置可調(diào)參數(shù),使得這些模型可以在生成后進(jìn)行相應(yīng)的調(diào)整,以滿(mǎn)足不同的訓(xùn)練集設(shè)計(jì)需求。本文所使用的UG版本為UG NX12.0。
根據(jù)獲得的實(shí)際航空發(fā)動(dòng)機(jī)外形圖片和其他參考信息,通過(guò)UG軟件進(jìn)行含航空發(fā)動(dòng)機(jī)外形特征的、等比例的各個(gè)三維理論模型的構(gòu)建,如圖3所示。

圖3 航空發(fā)動(dòng)機(jī)外形幾何特征建模
為了滿(mǎn)足數(shù)據(jù)集所需的數(shù)據(jù)量,可以使用UG中的部件族功能,根據(jù)所建立的第一個(gè)三維模型,生成許多基于該模型的模型族群。對(duì)該三維模型各個(gè)特征的尺寸參數(shù)進(jìn)行自定義,還可以對(duì)后續(xù)生成的模型進(jìn)行修改和控制,從而生成大量不同的、含航空發(fā)動(dòng)機(jī)外形特征的三維模型。首先建立一個(gè)根部件模型,如圖4所示。

圖4 一個(gè)部件族根部件的模型圖
從圖4中可以看到,該理論模型具有螺栓、凸臺(tái)、安裝邊和加強(qiáng)筋這些典型特征。接下來(lái)分別將控制這些特征的尺寸進(jìn)行定義,方便后續(xù)識(shí)別與修改。部件族功能對(duì)這些尺寸的控制使用了一個(gè)外部鏈接的Excel尺寸表,可根據(jù)之前自定義的尺寸名稱(chēng),對(duì)部件族群中的每一個(gè)部件族成員進(jìn)行參數(shù)修改。特征尺寸定義的示意圖如圖5所示。

圖5 部件族特征尺寸定義
生成部件族成員的數(shù)量,取決于所擁有的數(shù)據(jù)量。打開(kāi)部件族成員的外部鏈接的Excel表格,如圖6所示。增加部件族成員的編號(hào),即可增加部件族成員的數(shù)量。而之前定義的每一個(gè)控制特征的尺寸都以單獨(dú)一列進(jìn)行表示,通過(guò)調(diào)整這些參數(shù)的設(shè)置,可以實(shí)現(xiàn)改變、調(diào)整生成的部件族成員模型的外形特征。

圖6 部件族的控制表格
修改過(guò)參數(shù)的部件族成員模型如圖7所示。通過(guò)對(duì)參數(shù)的修改,可以實(shí)現(xiàn)部件族成員的外形變化。可以從圖7中看出,該成員模型中的螺栓個(gè)數(shù)變少,且其機(jī)匣長(zhǎng)度增加。根據(jù)之前所構(gòu)建的不同根部件,可以生成更多含不同航空發(fā)動(dòng)機(jī)外形特征的理論模型。

圖7 部件族成員模型示意圖
對(duì)于構(gòu)建數(shù)據(jù)集來(lái)說(shuō),單個(gè)理論模型可以是一個(gè)機(jī)匣的整體外形,也可以是包含特征外形的局部。將這些局部模型作為根部件,可以增添數(shù)據(jù)集的豐富程度。其他含航空發(fā)動(dòng)機(jī)外形典型特征的三維模型根部件模型圖如圖8所示。

圖8 其他含航空發(fā)動(dòng)機(jī)外形典型特征的理論模型根部件模型圖
為了制作訓(xùn)練集,需要將構(gòu)建的理論模型轉(zhuǎn)化為點(diǎn)云,并加上實(shí)際航空發(fā)動(dòng)機(jī)外形的掃描點(diǎn)云數(shù)據(jù),組成一個(gè)點(diǎn)云數(shù)據(jù)集;再制定一個(gè)分割標(biāo)準(zhǔn)并按照該標(biāo)準(zhǔn)對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行分割后標(biāo)注;最后將所有點(diǎn)云文件組合成訓(xùn)練集文件h5。
本文使用UG制作的理論三維模型的文件后綴為.prt,先用UG將其另存為stl文件。然后,使用MeshLab打開(kāi)這些stl文件。使用MeshLab內(nèi)的點(diǎn)云采樣功能,對(duì)每個(gè)stl文件進(jìn)行均勻采樣。采樣時(shí)可以根據(jù)神經(jīng)網(wǎng)絡(luò)的需求,決定采樣點(diǎn)云文件中點(diǎn)的個(gè)數(shù)、是否包含法向信息等點(diǎn)云文件信息。由于實(shí)際掃描的點(diǎn)云數(shù)據(jù)并不包含法向信息。所以本文采樣時(shí)選擇不添加法向信息。采樣后,stl文件轉(zhuǎn)化為xyz文件。該文件記錄了每個(gè)點(diǎn)的坐標(biāo)信息,每個(gè)點(diǎn)的三維坐標(biāo)信息位于一行。
因?yàn)闃?gòu)建的理論點(diǎn)云數(shù)據(jù)必然與實(shí)際的航空發(fā)動(dòng)機(jī)點(diǎn)云數(shù)據(jù)存在一些差別,本文在分割點(diǎn)云數(shù)據(jù)時(shí)集中添加了實(shí)際的航空發(fā)動(dòng)機(jī)外形點(diǎn)云掃描數(shù)據(jù),有利于后續(xù)提升分割的準(zhǔn)確性和可靠性。本文所使用的航空發(fā)動(dòng)機(jī)外形點(diǎn)云數(shù)據(jù),是使用Metro Scan對(duì)報(bào)廢的實(shí)際發(fā)動(dòng)機(jī)進(jìn)行掃描而獲得的,獲得的外形掃描點(diǎn)云數(shù)據(jù)如圖9所示。

圖9 實(shí)際航空發(fā)動(dòng)機(jī)外形掃描點(diǎn)云數(shù)據(jù)圖
同樣,在獲得該實(shí)際航空發(fā)動(dòng)機(jī)外形整體掃描數(shù)據(jù)后,繼續(xù)將其切割為包含一個(gè)或幾個(gè)外形特征的點(diǎn)云片段,這樣方便后續(xù)的分割與標(biāo)注的數(shù)據(jù)處理。
對(duì)已有的點(diǎn)云文件進(jìn)行區(qū)域分割,并進(jìn)行點(diǎn)云標(biāo)注的主要流程為:1)制定分割標(biāo)準(zhǔn);2)按制定好的標(biāo)準(zhǔn)對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行裁剪;3)對(duì)分割后的點(diǎn)云添加標(biāo)簽信息。一般的訓(xùn)練集制作主要采用軟件或編程工具對(duì)點(diǎn)云文件進(jìn)行手動(dòng)標(biāo)注。所以本文也采取手動(dòng)標(biāo)注的方法。
點(diǎn)云數(shù)據(jù)的分類(lèi)標(biāo)注標(biāo)準(zhǔn)也是根據(jù)網(wǎng)絡(luò)設(shè)計(jì)的要求制定的。常用的分類(lèi)邏輯是按組件結(jié)構(gòu)特征進(jìn)行分類(lèi),如是飛機(jī)點(diǎn)云就分別對(duì)機(jī)身、機(jī)翼和機(jī)尾進(jìn)行標(biāo)注。還有一種分類(lèi)方法是將模型根據(jù)外形形狀分成幾種基礎(chǔ)的形狀類(lèi)型組合,如平面、圓錐體、圓柱體、樣條曲線/面等的組合,標(biāo)注時(shí)進(jìn)行形狀的分類(lèi)標(biāo)注。
由于本文的目標(biāo)是對(duì)航空發(fā)動(dòng)機(jī)外形點(diǎn)云數(shù)據(jù)進(jìn)行特征分割,所以按照航空發(fā)動(dòng)機(jī)外形特征類(lèi)型進(jìn)行標(biāo)注的。首先將點(diǎn)云數(shù)據(jù)按照之前總結(jié)的典型特征,將點(diǎn)云數(shù)據(jù)整體裁剪為機(jī)匣殼體、螺栓、安裝邊等特征點(diǎn)云片段,之后再打上對(duì)應(yīng)的標(biāo)簽信息。本文設(shè)置的標(biāo)簽信息如表1所示。

表1 特征、標(biāo)簽信息設(shè)置
含航空發(fā)動(dòng)機(jī)外形特征的點(diǎn)云數(shù)據(jù)標(biāo)注的示意圖如圖10所示。

圖10 點(diǎn)云數(shù)據(jù)標(biāo)注示意圖
表2展示了本文所構(gòu)建數(shù)據(jù)集的整體詳細(xì)情況。數(shù)據(jù)集總計(jì)點(diǎn)云數(shù)據(jù)文件1 160個(gè),其中機(jī)匣整體數(shù)據(jù)420個(gè),特征局部數(shù)據(jù)740個(gè)。數(shù)據(jù)集包含了理論數(shù)據(jù)與實(shí)際掃描數(shù)據(jù)、整體數(shù)據(jù)與局部數(shù)據(jù),體現(xiàn)了本文所構(gòu)建數(shù)據(jù)集的豐富程度及可靠程度。

表2 本文構(gòu)建數(shù)據(jù)集的具體信息
由于包括理論模型數(shù)據(jù)和實(shí)測(cè)數(shù)據(jù)的整個(gè)數(shù)據(jù)集的點(diǎn)云文件較多,為了提高網(wǎng)絡(luò)讀取數(shù)據(jù)的效率,可以將標(biāo)注好的點(diǎn)云文件通過(guò)編程,整理合并為h5文件。h5文件這種文件格式主要用于大規(guī)模數(shù)據(jù)的組織和存儲(chǔ)。由于h5集合對(duì)數(shù)據(jù)對(duì)象的數(shù)量或大小沒(méi)有限制,為數(shù)據(jù)量較大的深度學(xué)習(xí)領(lǐng)域提供了極大的幫助。
通過(guò)VS編程,將先前獲得的理論模型點(diǎn)云數(shù)據(jù)和實(shí)測(cè)點(diǎn)云數(shù)據(jù)統(tǒng)一編輯成為h5文件。本章所制作的含航空發(fā)動(dòng)機(jī)外形典型特征點(diǎn)云的h5文件里應(yīng)該包含的信息有:所有點(diǎn)的x、y、z坐標(biāo)以及每個(gè)點(diǎn)的標(biāo)簽信息,這些信息每個(gè)點(diǎn)一一對(duì)應(yīng)地存儲(chǔ)在h5文件內(nèi)。本文使用的VS版本為Visual Studio 2015。本文制作訓(xùn)練集的整體流程圖如圖11所示。

圖11 航空發(fā)動(dòng)機(jī)外形點(diǎn)云數(shù)據(jù)訓(xùn)練集的制作流程圖
本文研究分析了航空發(fā)動(dòng)機(jī)外形特點(diǎn)及其所具有的典型特征,提出了一種制作含航空發(fā)動(dòng)機(jī)外形典型特征的點(diǎn)云數(shù)據(jù)訓(xùn)練集的方法,通過(guò)制作包含這些典型特征的三維理論模型,轉(zhuǎn)化為stl文件后通過(guò)MeshLab進(jìn)行點(diǎn)云采樣,并與掃描獲得的實(shí)際航空發(fā)動(dòng)機(jī)外形點(diǎn)云數(shù)據(jù)共同組成數(shù)據(jù)集。再對(duì)點(diǎn)云數(shù)據(jù)集按所設(shè)置的航空發(fā)動(dòng)機(jī)外形特征分類(lèi)標(biāo)準(zhǔn)進(jìn)行特征點(diǎn)云標(biāo)注,最后將這些理論模型對(duì)應(yīng)每個(gè)標(biāo)注好的點(diǎn)云文件轉(zhuǎn)換編輯成神經(jīng)網(wǎng)絡(luò)所需的輸入文件h5,完成了適用于的航空發(fā)動(dòng)機(jī)深度學(xué)習(xí)訓(xùn)練集的制作,為接下來(lái)利用深度學(xué)習(xí)進(jìn)行點(diǎn)云數(shù)據(jù)分割做好了準(zhǔn)備。