呂帥帥,楊宇,王彬文,殷晨飛
中國飛機強度研究所,西安 710065
金屬裂紋是航空結(jié)構(gòu)的一種常見損傷形式。在航空結(jié)構(gòu)疲勞試驗中及時發(fā)現(xiàn)并跟蹤損傷擴展過程,能夠暴露航空結(jié)構(gòu)設(shè)計的薄弱環(huán)節(jié),支撐結(jié)構(gòu)強度和完整性評估,同時也為航空結(jié)構(gòu)維修大綱和維修手冊編寫提供必要的技術(shù)數(shù)據(jù)。目前發(fā)現(xiàn)裂紋主要依靠人工目視檢查,以及定期的無損檢測(如渦流、超聲等)。但是飛機結(jié)構(gòu)內(nèi)部空間狹小、大量傳感器線纜干擾,使得無損檢測人工操作極為不方便。另外,裂紋通常只在結(jié)構(gòu)加載至高載狀態(tài)時才目視可見,而此時出于安全考慮,檢測人員是無法抵近檢查的。因此,傳統(tǒng)的人工無損檢測存在較大的損傷漏檢可能性。
隨著計算機視覺和機器人技術(shù)的發(fā)展和應(yīng)用,機器視覺為飛機疲勞試驗中的裂紋自動化檢測提供了一條新的解決途徑。通過工業(yè)攝像頭和高精度運動系統(tǒng)(如機械臂、爬行機器人)定位檢測位置并獲取高清圖像,再應(yīng)用目標(biāo)檢測算法進行裂紋自動識別,可以大幅度降低人工在成本、實時性和危險性等方面的不利影響。
目前研究者主要采用單幀目標(biāo)檢測算法進行裂紋識別,即在單張圖像內(nèi)搜索裂紋。Ren等提出的Faster R-CNN算法和Redmon等提出的YOLO算法是典型的單幀目標(biāo)識別架構(gòu),其差異體現(xiàn)在對檢測準(zhǔn)確率和計算速度的不同側(cè)重。Deng、Du、Wang和楊晶晶等分別使用Faster R-CNN、YOLO等進行了混凝土結(jié)構(gòu)和金屬結(jié)構(gòu)的裂紋檢測,且獲得較高的檢測準(zhǔn)確率。但是需要注意的是,被識別的裂紋主要是張開位移較大的混凝土裂紋和長度較長的金屬裂紋。全尺寸疲勞試驗中的裂紋長度、張開位移均較小,且金屬結(jié)構(gòu)表面的紋理、劃痕、打磨痕跡等與這些微小裂紋的相似度極高,形成強烈的干擾。因此,單幀目標(biāo)檢測算法并不適合于飛機全尺寸疲勞試驗中微小裂紋的識別。
另一種潛在的方法是采用基于兩幀圖像對比的相關(guān)性識別算法進行微小裂紋檢測。該類算法是以兩張圖像間特征的相關(guān)性為依據(jù),判別兩者是否包含同一個檢測目標(biāo),分為特征提取和相關(guān)性計算兩個步驟。常用的特征提取方法包括多通道方向梯度直方圖、顏色命名算法、多特征集成尺度自適應(yīng)算法和深度學(xué)習(xí)算法等,相關(guān)性計算則以基于傅里葉變換和核函數(shù)的計算方法為主。該類方法目前通常應(yīng)用于目標(biāo)跟蹤,即跟蹤已知對象的運動軌跡。但是這類算法無法直接應(yīng)用于飛機全尺寸疲勞試驗,因為微小裂紋的尺寸相對于檢測區(qū)域存在2個數(shù)量級的差別,很難對圖像特征產(chǎn)生顯著影響。此外,常用的特征提取方法對圖像亮度、清晰度敏感,而全機疲勞試驗由于結(jié)構(gòu)的不規(guī)則振動,無法保證圖像質(zhì)量的一致性。
因此,本文提出了面向飛機全尺寸疲勞試驗的微小裂紋識別方法,其創(chuàng)新點體現(xiàn)為:① 針對劃痕、污損等廣泛存在的干擾因素,采用特征對比策略識別裂紋;② 針對微小裂紋與被檢測區(qū)域尺寸存在2個數(shù)量級差別這一矛盾,提出基于關(guān)鍵部位狀態(tài)對比的識別方法,首先根據(jù)疲勞裂紋萌生機理,設(shè)定重點檢測區(qū)域,然后將檢測區(qū)域劃分為4個部位,使得微小裂紋與檢測部位的幾何尺寸處于相同數(shù)量級;③ 為降低疲勞試驗中結(jié)構(gòu)振動導(dǎo)致的清晰度、亮度變化等問題對裂紋識別準(zhǔn)確率的影響,選取人臉識別模型FaceNet作為基礎(chǔ)架構(gòu),再根據(jù)裂紋數(shù)據(jù)集的結(jié)構(gòu)特點,對FaceNet模型進行相應(yīng)改進。
本文應(yīng)用特征對比的方法進行目標(biāo)檢測。圖像間的特征能夠進行有效對比的前提是檢測目標(biāo)與被拍攝區(qū)域不能存在跨數(shù)量級的尺寸差別。而在全尺寸結(jié)構(gòu)試驗中,雖然飛機結(jié)構(gòu)龐大,但是裂紋均是在結(jié)構(gòu)細(xì)節(jié)處萌生,例如緊固件孔和非連續(xù)結(jié)構(gòu)等應(yīng)力集中區(qū)域。因此,本文采用基于關(guān)鍵部位狀態(tài)對比的策略進行裂紋識別。
例如根據(jù)結(jié)構(gòu)受力分析可知,圖1中可能出現(xiàn)裂紋的關(guān)鍵部位為緊固件1~6的孔邊。為提高微小裂紋的檢出概率和裂紋在檢測圖像中的比例,本文將每個關(guān)鍵部位的周邊區(qū)域分為4個部分,每一部分作為一個檢測部位(如緊固件 1 所示)。通過對比每個檢測部位的實時采集圖像和無裂紋模板來發(fā)現(xiàn)裂紋。
圖1 全尺寸疲勞試驗中關(guān)鍵區(qū)域的檢測圖像示例Fig.1 Sample images of key areas in a full-scale fatigue test
FaceNet是一種基于深度學(xué)習(xí)的人臉識別模型,本文選擇FaceNet作為裂紋識別模型的基礎(chǔ)架構(gòu),因為該模型的核心是三元組損失。三元組損失的優(yōu)勢在于細(xì)節(jié)識別,善于處理非同類、極相似樣本的分類問題,可支撐深度學(xué)習(xí)網(wǎng)絡(luò)提取僅對裂紋敏感的圖像特征,降低圖像質(zhì)量變化對檢測結(jié)果的影響。
1.2.1 FaceNet模型
FaceNet實現(xiàn)人臉識別的基本原理為:利用深度學(xué)習(xí)網(wǎng)絡(luò)將輸入的人臉圖像映射至一個128維的歐氏特征空間,并計算不同圖像在新空間內(nèi)的特征距離,特征距離小于類別判定閾值的兩張人臉圖像可被判定為同一個人。
FaceNet的基本結(jié)構(gòu)如圖2所示,其中深度學(xué)習(xí)網(wǎng)絡(luò)采用已有的成熟網(wǎng)絡(luò)。該模型能夠?qū)崿F(xiàn)高準(zhǔn)確率人臉識別的根本原因在于提出了三元組損失的概念,并應(yīng)用三元組損失對深度學(xué)習(xí)網(wǎng)絡(luò)進行訓(xùn)練。
圖2 FaceNet模型的基本架構(gòu)Fig.2 Basic architecture of FaceNet
人臉識別問題中的“三元組”指的是由模板-正例-反例三張圖片組成的一個數(shù)據(jù)樣本,其中模板和正例為同一個人在不同狀態(tài)下(如正臉、側(cè)臉)的兩張圖像、反例則為任意其他人的一張圖像。在訓(xùn)練過程中,模型每次處理個樣本(記為一個批處理數(shù)據(jù)),每個樣本通過深度學(xué)習(xí)網(wǎng)絡(luò)提取特征,得到3個128維的特征向量。然后網(wǎng)絡(luò)根據(jù)特征向量計算批處理數(shù)據(jù)的三元組損失。三元組損失具體可表示為
(1)
由式(1)可知,三元組損失的本質(zhì)是在新的特征空間內(nèi),盡量減小模板和正例圖像間的特征距離,同時盡量增大模板和反例圖像的特征距離,并要求前者的距離值至少比后者的距離值小。也就是說,F(xiàn)aceNet通過三元組損失使深度學(xué)習(xí)網(wǎng)絡(luò)對比學(xué)習(xí)同一個人在不同狀態(tài)下(如正臉、側(cè)臉、不同表情)的共性特征和不同人間的差異特征,這使FaceNet提取的特征向量不易受人臉圖像狀態(tài)的影響,而對人臉的固有屬性更加敏感。
1.2.2 裂紋識別與人臉識別的差異分析
在復(fù)雜的全尺寸疲勞試驗環(huán)境中,針對同一檢測部位在不同時刻拍攝的圖像在亮度、清晰度和拍攝角度等方面均可能存在差異。深度學(xué)習(xí)模型必須能夠準(zhǔn)確區(qū)分裂紋的產(chǎn)生和圖像質(zhì)量的變化,即要求模型提取的特征不易受圖像質(zhì)量影響,而對裂紋十分敏感。這與FaceNet模型中三元組損失的設(shè)計目標(biāo)是一致的。因此本文選擇FaceNet作為裂紋識別的基礎(chǔ)架構(gòu)。但是,裂紋識別與人臉識別問題有兩方面的差別:數(shù)據(jù)結(jié)構(gòu)差異及由此引起的特征分布差異。
1) 數(shù)據(jù)結(jié)構(gòu)的差異
在人臉識別問題中,若待識別數(shù)據(jù)包含個人,則每個人可看作一個類別,模型處理的是一個分類問題;而在裂紋識別問題中,無論訓(xùn)練數(shù)據(jù)來自于多少個檢測部位,其均為一個二分類問題(有、無裂紋)。針對該問題,需對原FaceNet中的三元組樣本生成規(guī)則進行改進。
原FaceNet模型的樣本生成規(guī)則如圖3所示:① 從待分類的個人中隨機選擇兩個和,在的圖像中隨機抽取兩張作為模板和正例,在的圖像中隨機抽取一張作為反例,構(gòu)成一個三元組樣本;② 重復(fù)步驟①至樣本數(shù)量達到設(shè)定要求;③ 計算所有樣本的正、反例距離差(見式(1)),并將大于0的所有樣本作為最終樣本。
圖3 FaceNet的樣本生成規(guī)則Fig.3 FaceNet sample generation rules
改進FaceNet裂紋樣本的生成規(guī)則如圖4所示:① 針對第一個檢測部位,在所有無裂紋圖像中隨機抽取2張分別作為模板和正例,并在所有有裂紋圖像中隨機抽取一張作為反例,組成一個樣本;② 重復(fù)步驟①,直至檢測部位1的樣本數(shù)量達到設(shè)定要求;③ 計算檢測部位1中所有樣本的正、反例距離差(見式(1)),并將大于0的所有樣本作為位置1的最終樣本;④ 針對其余位置,仿照第一個檢測部位,重復(fù)以上操作,獲取每個部位的最終樣本;⑤ 所有部位的最終樣本組成總樣本,再分割成批處理數(shù)據(jù)進入深度學(xué)習(xí)模型參與訓(xùn)練。
圖4 改進FaceNet的樣本生成規(guī)則Fig.4 Sample generation rules of improved FaceNet
2) 由數(shù)據(jù)結(jié)構(gòu)差異引起的特征分布差異
對比兩種樣本生成規(guī)則可知:① 原FaceNet模型是對所有數(shù)據(jù)進行分類,改進后的模型是在每個檢測部位內(nèi)部進行分類;② 原FaceNet模型是對每個類別進行聚類,而改進后的模型只對每個檢測部位的無裂紋圖像進行聚類。樣本生成規(guī)則的更改直接影響了模型提取特征的分布規(guī)律。圖5為原FaceNet模型在人臉分類數(shù)據(jù)集上提取特征的分布示例,其中數(shù)字表示第個人的人臉圖像,表示第個人圖像的類內(nèi)距離,,表示第、兩個人的類間距離;圖6所示為改進FaceNet在裂紋數(shù)據(jù)集上提取的數(shù)據(jù)特征的分布示例,其中-crack、-uncrack分別表示裂紋數(shù)據(jù)樣本中第個部位的有、無裂紋圖像,1表示第個部位有、無裂紋圖像的類間距離,2表示第個部位無裂紋圖像的類內(nèi)距離。需要指出的是,圖5和圖6中顯示的是原128維特征經(jīng)過主成分分析降至2維后的分布狀態(tài),降維會導(dǎo)致部分?jǐn)?shù)據(jù)特征的改變,只能定性表示原特征的分布規(guī)律。
圖5 FaceNet提取特征的分布示例Fig.5 Distribution example of FaceNet extracted features
對比圖5和圖6可知,裂紋特征分布的規(guī)律性明顯低于人臉特征。其中最明顯的就是圖5中的類內(nèi)距離整體小于類間距離,例如、、小于、?;谶@一規(guī)律,原FaceNet模型的類別判定閾值計算可以轉(zhuǎn)化為一個簡單的線性問題;而在圖6中,數(shù)據(jù)特征的分布是高度非線性的,類別判定閾值的求取不再是一個線性問題,下面從兩個層面對該問題進行分析。
首先,各檢測部位有、無裂紋的判定閾值是不一致的,例如圖6中檢測部位1的判定閾值∈(,),部位3的判定閾值∈(,),而小于,也就是說無法通過線性計算的方法在各檢測部位間確定一個統(tǒng)一的判定閾值;其次,即使在一個檢測部位內(nèi)部,判定閾值也無法直接求取。例如針對檢測部位2,小于,也就是說在新的樣本生成規(guī)則下,三元組損失只能保證每一張無裂紋圖像到任意一張有裂紋圖像的距離都大于該無裂紋圖像到其他任意無裂紋圖像的距離(例如>),卻無法保證1大于2,這是裂紋特征與原FaceNet模型提取特征的最大區(qū)別,該區(qū)別增加了特征分類問題的非線性度。
圖6 原FaceNet模型提取的裂紋特征的分布規(guī)律示意圖Fig.6 Schematic diagram of distribution of crack characteristics extracted from original FaceNet model
1.2.3 對現(xiàn)有FaceNet模型的改進
通過以上分析可知,更改樣本生成規(guī)則后,原FaceNet模型的架構(gòu)和三元組損失已無法滿足裂紋識別任務(wù)的要求。因此,本文在原FaceNet模型后增加一個全連接層(2個神經(jīng)元)直接進行樣本分類,同時在原損失函數(shù)中加入分類層的交叉熵?fù)p失,以在參數(shù)優(yōu)化過程中統(tǒng)籌考慮特征分布和分類準(zhǔn)確率。改進后的模型架構(gòu)如圖7所示,原FaceNet模型輸出的3個128維特征向量先通過特征拼接形成兩個256維的拼接向量,再輸入全連接層進行分類。特征拼接的具體方法如圖8所示。
圖7 基于改進FaceNet的裂紋識別模型架構(gòu)Fig.7 Framework of crack identification model based on improved FaceNet
圖8 改進FaceNet中的特征拼接方法Fig.8 Feature mosaic method in improved FaceNet
改進FaceNet模型的損失函數(shù)具體可表示為
Loss=triplet_loss+cross_entropy_loss=
(2)
式中:cross_entropy_loss為交叉熵?fù)p失;為批處理數(shù)據(jù)中的分類樣本個數(shù),=2;表示第個樣本標(biāo)簽的真值;1{=}表示樣本標(biāo)簽真值為時,系數(shù)為1,其他情況系數(shù)為0;為分類層第個神經(jīng)元的輸出值。
為豐富樣本類型,本文使用的數(shù)據(jù)集由兩類構(gòu)成,第1類是全尺寸疲勞試驗的實時檢測圖像(如圖9(a)所示),這類數(shù)據(jù)的圖像像素為2 000萬,視場為200 mm×300 mm,物方分辨率為0.055 mm。裂紋為通過圖像處理手段制造的模擬裂紋。該類圖像共包括200個檢測部位,每個部位有24張圖像,所有圖像均由機械臂采集系統(tǒng)在艙內(nèi)巡檢時自動拍攝,拍攝間隔時間為1 d,因此該類圖像代表了全尺寸疲勞試驗中待檢測圖像的質(zhì)量水平。針對每個檢測位置,從24張圖像中隨機選擇10張?zhí)砑幽M裂紋。
第2類樣本是金屬元件疲勞試驗中的裂紋圖像(如圖9(b)所示), 這類數(shù)據(jù)的圖像像素為200萬, 視場為33 mm×50 mm,物方分辨率為0.026 mm, 與全尺寸疲勞試驗圖像為同一量級。
圖9 疲勞試驗中的數(shù)據(jù)獲取方法Fig.9 Data acquisition method in fatigue test
通過15個試驗件的疲勞試驗共獲取80個檢測部位,每個檢測部位包含25張無裂紋圖像和12張真實裂紋圖像,每張圖像的拍攝間隔時間為2 s。由于元件疲勞試驗中的試驗件始終處于振動狀態(tài),所以各圖像間會存在一定的光線和清晰度差異。
在280個檢測位置中隨機選擇210個作為訓(xùn)練集、70個作為測試集。使用本文提出的改進FaceNet模型進行訓(xùn)練,深度學(xué)習(xí)網(wǎng)絡(luò)的基礎(chǔ)模型選擇Inception V3,邊界距離設(shè)置為0.05,優(yōu)化器為Adam,設(shè)置一個批處理數(shù)據(jù)包含40個三元組樣本,每200個批次為一個循環(huán)。經(jīng)過2 100個循環(huán)后模型收斂,第2 100個循環(huán)的平均三元組損失為0,平均交叉熵?fù)p失為0.005。
圖10所示為改進FaceNet模型在部分訓(xùn)練集上提取的128維特征的分布狀態(tài)(通過主成分分析法降維至2維)。對比圖6可知,圖10中每個檢測位置的類間距離(有裂紋圖像到無裂紋圖像的最小距離)均大于類內(nèi)距離(無裂紋圖像間的最大距離),特征分布的規(guī)律性明顯增強。
圖10 改進FaceNet提取裂紋特征的分布規(guī)律示意圖Fig.10 Schematic diagram of distribution law of crack feature extracted by improved FaceNet
針對測試集中的每個檢測部位,隨機抽取5個無裂紋待檢測樣本和5個有裂紋待檢測樣本,其中無裂紋樣本由兩張無裂紋圖像組成,有裂紋樣本由一張無裂紋、一張有裂紋圖像組成,70個檢測位置共獲得700個檢測樣本。樣本中待檢測裂紋的長度從0.2~8 mm不等。使用訓(xùn)練好的改進FaceNet模型對700個待檢測樣本進行測試,測試結(jié)果中350個無裂紋樣本均判定正確,350個有裂紋樣本中有13個被判定為無裂紋,測試樣本的整體檢測準(zhǔn)確率為98.1%,有裂紋樣本的誤判率為3.7%。對誤判樣本進行分析發(fā)現(xiàn),13個樣本來自4個檢測部位,裂紋長度均小于0.6 mm 且處于裂尖(如圖11所示)。該現(xiàn)象說明大尺寸裂紋更容易被檢出,而小尺寸裂紋由于寬度小,檢出難度較大,這與人工目視檢查的經(jīng)驗相同。要提高小尺寸裂紋的檢出概率,可結(jié)合試驗場景,通過減小視場、增大物方分辨率等手段來實現(xiàn)。
圖11 誤判樣本示例Fig.11 Example of misjudged samples
需要指出的是,在無裂紋樣本的部分圖像中,劃痕的形態(tài)與裂紋相似度較高,當(dāng)使用FasterR-CNN對這些圖像進行檢測時,劃痕會被誤判為裂紋。但使用本文模型進行檢測時,即使待檢測圖像與模板的清晰度和亮度分布存在一定差異,也均能判斷正確,其對比如圖12所示。說明針對疲勞試驗中的裂紋識別問題,相較于單幀目標(biāo)檢測算法,該模型優(yōu)勢明顯。
圖12 Faster R-CNN和改進FaceNet檢測結(jié)果對比Fig.12 Comparison of Fasters R-CNN and improved FaceNet detection results
此外,本文使用相同的數(shù)據(jù)集對原FaceNet模型進行了訓(xùn)練,并分別使用線性計算閾值和單獨訓(xùn)練一個兩層分類神經(jīng)網(wǎng)絡(luò)的方法完成對訓(xùn)練集的分類,最后使用以上兩個完整的模型對700個測試樣本進行檢測,其與改進FaceNet模型的性能對比如表1所示。
由表1可知,改進FaceNet模型的檢測準(zhǔn)確率明顯高于原有模型的79.8%和91.7%,但由于進行了向量拼接,模型的復(fù)雜度提升,其在測試狀態(tài)下的浮點運算數(shù)(FLOPs)明顯增大,造成每秒可檢測圖片數(shù)量減少,該問題可通過提高硬件水平得到改善。
表1 改進FaceNet模型與原FaceNet模型的 檢測結(jié)果對比Table 1 Comparison of detection results between proposed model and FaceNet
1) 本文提出了基于關(guān)鍵部位狀態(tài)對比的裂紋識別策略,設(shè)計了基于改進FaceNet的裂紋檢測模型,從而形成了一種基于機器視覺的面向飛機全尺寸疲勞試驗的裂紋識別方法。
2) 本文提出的方法解決了由全尺寸結(jié)構(gòu)與微小裂紋跨數(shù)量級的尺寸差異導(dǎo)致的裂紋難以被檢測的問題,能夠有效排除被檢測結(jié)構(gòu)表面廣泛存在的劃痕、污損等因素的干擾,實現(xiàn)了高準(zhǔn)確率的裂紋識別。
3) 本方法裂紋識別準(zhǔn)確率高的原因為:特征對比機制可有效避免劃痕等干擾因素的影響;三元組損失支撐模型對比學(xué)習(xí)裂紋特征和圖像質(zhì)量差異;面向?qū)嶋H問題的模型架構(gòu)和損失函數(shù)改進。
4) 本文提出的方法需結(jié)合工程經(jīng)驗才能縮小裂紋檢測范圍,為實現(xiàn)緊固件孔、非連續(xù)結(jié)構(gòu)等應(yīng)力集中區(qū)域的自動檢測和定位,進一步的改進方向是進行單幀目標(biāo)檢測算法和特征對比算法的融合模型設(shè)計。