呂帥帥,楊 宇,王彬文,裴連杰
(中國飛機強度研究所 西安,710065)
金屬裂紋是航空結構的常見損傷形式,在航空結構疲勞試驗過程中及時發現并預警損傷,能夠暴露航空結構設計的薄弱環節,支撐結構強度和完整性評估,同時也為航空結構維修手冊編寫提供依據[1‐4]。目前,在飛機全尺寸疲勞試驗中裂紋的檢測手段主要包括目視檢查、渦流和超聲等[5‐7],上述方法均對專家經驗具有較強的依賴性,并且由于試驗環境復雜、試驗加載過程中檢測風險大和有限空間操作困難等問題,裂紋檢測存在人工成本高、耗時長及檢測可靠性偏低等問題。因此,實現航空結構裂紋自動化、智能化的高可靠性檢測是飛機全尺寸疲勞試驗亟需解決的問題。
隨著機器人技術和人工智能技術的深入發展及其在民用領域的應用,機器視覺為飛機疲勞試驗中的裂紋自動化檢測提供了一條新的解決途徑。通過高精度運動系統(如爬行機器人、機械臂)和工業攝像頭獲取監測部位的高清圖像,再應用目標檢測算法進行裂紋自動識別并執行損傷預警,可以大幅度降低人工在成本、實時性和危險性等方面的不利影響。由于飛機疲勞試驗環境的復雜性(如結構構型多樣、結構不規則振動及裂紋圖像背景復雜等),要實現高準確率的裂紋損傷識別,給智能目標檢測算法提出了較高的要求[8‐10]。
國內外學者開展了一系列基于深度學習的裂紋檢測算法研究。Li 等[11]以橋梁混凝土結構為研究對象,利用真實圖像進行裂縫識別,基于深度學習經典網絡殘差網絡(residual network,簡稱ResNet),結合圖像二值化處理方法,設計了一種簡單、高分類的圖像后期處理模型,在考慮陰影、斑點、質量和孔洞的情況下,可有效識別混凝土裂縫,并基于該模型開發了混凝土裂縫識別軟件。Deng 等[12]使用單級目標檢測算法(you only look once 2,簡稱YOLO2)進行了裂縫識別,模型的訓練圖像包括3 000 張真實的混凝土裂縫圖片,試驗結果表明,該模型能夠成功區分真實裂縫和手寫體直線、數字。此外,對YOLO2和更快的區域卷積神經網絡(faster region‐based convolutional neural networks,簡 稱Faster RCNN)的裂縫檢測效果進行了比較,結果表明,YOLO2 在速度和準確度方面均優于后者。Du 等[13]等同樣使用YOLO 算法進行了路面破損的檢測和分類,建立了包含45 788 張圖片地面損傷數據集,基于YOLO算法建立了道路遇險位置和類別預測模型,綜合精度達到73.64%,并對模型在不同光照條件下的適用性進行了探討,研究結果表明,光照條件會對模型的檢測準確率產生明顯影響。Wang 等[14]開發了基于單目多盒探測器(single shot multibox detector,簡稱SSD)算法的金屬疲勞裂紋起始點檢測模型,其使用工業顯微鏡將裂紋擴大200 倍后,使用有限的裂紋圖片訓練出裂尖識別能力較好的深度學習模型,但是發現圖像質量差、特征不清晰、訓練數據不足等問題會嚴重影響模型檢測準確性。
以上研究表明,相較于人工目視檢測,基于深度學習的目標檢測算法在裂紋識別方面具有較大的優勢,但是目前的研究多集中于裂紋尺寸較大的混凝土結構,其識別難度較小;而裂紋檢測方法對圖像采集的設備及環境具有非常高的要求,更適合于良好的實驗室環境,無法應用于大型結構的強度試驗中。此外,以上研究均提出圖像質量是影響目標檢測結果的一個重要因素,但是并未在裂紋識別方法中針對該問題采取改善措施。因此,筆者結合強度試驗的實際應用場景,提出一種可進行在線檢測的裂紋識別算法,主要創新點體現為:①為降低強度試驗中結構振動導致的圖像模糊、亮度變化大和亮度分布不均等問題對目標識別準確率的影響,選取Mask‐RCNN[15]取代常用的目標檢測算法[11‐14];②為避免劃痕、污損等與裂紋相似度高的結構對檢測準確率的影響,降低模型的誤判報警率,提出了先識別鉚釘、孔等存在應力集中的關鍵結構,再在關鍵結構附近檢測裂紋的基本策略,并對Mask‐RCNN 算法進行了相應的改進。
在飛行器結構疲勞試驗中,金屬結構表面存在較多的紋理、打磨痕跡和劃痕,若不對這些干擾因素進行預處理,裂紋識別將存在較高的誤判率。如圖1 所示,鉚釘1 旁的裂紋和鉚釘1,2 間的劃痕相似度極高。

圖1 飛機結構中的裂紋與劃痕對比Fig.1 Comparison of cracks and scratches in aircraft structures
航空結構的裂紋通常產生于應力集中區域,例如鉚釘孔、耳片孔和倒角等部位,因此提出基于關鍵結構定位的裂紋分級識別策略,即在監測區域內,先定位存在應力集中的關鍵結構,再在關鍵結構附近檢測裂紋。該策略不僅能夠有效減少干擾因素的數量,降低誤判報警的次數,且適用于大部分飛行器結構。例如,鉚釘、孔等語義特征明顯的應力集中區域可直接作為該策略的一級檢測對象,其他特征不明顯的區域則可通過添加標識點的方法實現分級檢測。筆者以鉚釘孔邊裂紋為例,開展分級檢測模型設計。
在該策略中,高準確率的關鍵結構定位有助于裂紋的精確識別。目前常用的目標檢測算法[11‐14]對圖片亮度、清晰度等都有較高的要求,但是實際檢測過程中,通常無法保障對關鍵結構的高質量拍攝。因此,裂紋分級識別策略的難點在于選取對圖片質量要求相對較低的目標檢測算法,以及針對檢測策略進行相應的算法改進。
Mask‐RCNN 是一種基于深度學習的目標分割算法,兼具目標檢測功能,具有架構靈活的特點。與目前廣泛應用 的YOLO,SSD 和Faster‐RCNN 相比,Mask‐RCNN 雖然檢測速度慢,但具有更高的準確率,更加符合強度試驗的需求。
1.2.1 Mask‐RCNN 的基本架構
Mask‐RCNN 的基本架構如圖2 所示,主要分為基礎網絡、區域選取(region proposal network,簡稱RPN)網絡、分類網絡和掩碼網絡等部分。其中:基礎網絡(黑色虛線框)由殘差網絡去除全連接層后形成,主要作用是提取檢測圖片的特征圖;RPN 網絡(紅色虛線框)負責在按既定規則生成的預選框內,通過訓練好的參數,為分類網絡提供圖像中的感興趣區域(region of interesting,簡稱ROI),即在檢測圖像中的哪個區域會存在裂紋、鉚釘等檢測對象;分類網絡(藍色虛線框)的作用是判定ROI 內目標的類型,同時對ROI 的位置進行精細調整,使其更加貼近圖像中的物體;掩碼網絡(棕色虛線框)的作用是根據分類網絡輸出的ROI 的位置和分類結果,對圖像中每個像素進行分類,決定每一個像素屬于鉚釘、裂紋或者背景等。

圖2 Mask‐RCNN 的基本架構Fig.2 The basic architecture of Mask‐RCNN
針對一個基于Mask‐RCNN 的鉚釘和裂紋檢測模型,輸入圖3(a)中的待檢圖片,RPN 網絡按預定規則生成的部分預選框如圖3(b)所示,RPN 網絡對預選框進行篩選、位置調整后的最終輸出結果(即ROI)如圖3(c)所示。從ROI 的分布可以看出,模型認為圖片中的位置1,2 可能存在檢測目標。RPN 網絡對預選框的位置調整示例如圖3(d)所示,其中虛線、實線分為別調整前、后的預測框。分類網絡對RPN 網絡輸出的ROI 進行分類、篩選和精細位置調整的結果如圖3(e)所示,由圖可知,位置1 內的目標被分類為鉚釘,而位置2 最終被診斷為背景,這是由于位置2 內的劃痕與裂紋的特征相似度較高,因而能夠進入第1 層篩選成為ROI,卻最終由于不符合裂紋的細節特征而被模型舍棄。掩碼網絡輸出的鉚釘分割結果如圖3(f)所示。

圖3 Mask-RCNN 的目標檢測過程示例Fig.3 An example of target detection procedure for Mask-RCNN
1.2.2 Mask‐RCNN 的損失函數與圖像標注
基于Mask‐RCNN 的裂紋檢測模型的設計分為數據預處理、模型訓練和模型預測3 個階段。數據預處理是使用圖像標注軟件,在訓練圖片中人為標識出檢測對象的真實類別、真實框位置和真實掩碼信息,圖像標注如圖4 所示。訓練階段是通過對已標注圖片的學習,優化深度學習網絡的參數,使其能夠擬合檢測目標的特征分布。預測階段則是使用訓練好的模型對待檢測圖片進行識別,輸出圖片中是否存在檢測目標及其在圖片中的位置。訓練過程中的優化函數即為深度學習模型的損失函數,Mask‐RCNN 的損失函數為

圖4 Mask-RCNN 與其他算法的標注方法對比Fig.4 Contrast the annotation methods of mask-RCNN with other algorithms

其中:Lcls_rpn為RPN 層中模型對預測框中是否存在檢測目標的預測誤差;Lreg_rpn為RPN 層中預測框與真實框(目標真實位置)的位置誤差;Lcls_frcnn為分類網絡對ROI 中目標類別(是鉚釘、裂紋還是背景)的預測誤差;Lreg_frcnn為分類網絡的預測框與真實框的位置誤差。Lmask為掩碼網絡的誤差函數,體現了Mask‐RCNN 與一般目標檢測算法的差異,其具體表示為

其中:m為ROI 經過尺寸匹配層處理后的圖像長度和寬度;k為檢測目標的種類編號;K為模型檢測的目標總數;為第k個檢測目標的真實掩碼圖像中第i個像素的值,若該像素屬于第k類檢測目標,其值為1,否則為0;pki為第k個檢測目標的預測掩碼圖像中第i個像素的值,若模型認為該像素屬于第k類檢測目標,其值為1,否則為0。
由式(1)~(2)可知,Mask‐RCNN 將檢測圖像的像素信息引入了損失函數,在訓練過程中將檢測結果與圖像標注逐像素對比,完成對檢測目標語義特征的針對性學習,這是Mask‐RCNN 的檢測精度優于一般目標檢測算法的根本原因。
1.2.3 面向裂紋檢測的Mask‐RCNN 改進
在原Mask‐RCNN 中,當檢測對象為多個目標時,模型對其進行同步檢測,各目標的檢測結果相互獨立。而針對結構疲勞試驗中的裂紋檢測,默認檢測對象“裂紋”一定位于“鉚釘”附近,即RPN 網絡在為分類網絡和掩碼網絡推薦“裂紋”的ROI 時,需以“鉚釘”的檢測結果為依據。
針對模型改進,筆者提出一種基于位置反饋機制的模型架構。改進后的模型架構如圖5 所示,主要分為兩部分:①共享網絡,包括基礎網絡及RPN中非極大值抑制(non‐maximum suppression,簡稱NMS)模塊前的網絡;②定制化網絡,包括RPN 的NMS 模塊、分類網絡和掩碼網絡。

圖5 裂紋檢測模型的整體架構Fig.5 The overall structure of crack detection model
待檢測圖片進入模型后,先在共享網絡中完成特征圖提取、預選框有無檢測目標的分類等程序,然后進入鉚釘的定制化網絡進行鉚釘檢測,并將鉚釘位置反饋至裂紋定制化網絡的起點,開始裂紋檢測。按照本研究策略,鉚釘和裂紋必須分批次檢測,而“基礎網絡共享、分類網絡定制”的架構不僅符合分批次檢測的要求,還保證了模型較高的精測精度和較快的檢測速度。
除架構外,該模型在原RPN 網絡中增加了一種針對裂紋的ROI 篩選方法(professional NMS,簡稱PNMS),使裂紋ROI 始終位于鉚釘附近。NMS 是一種ROI 篩選方法,具體流程為:首先,以網絡輸入到NMS 中的所有預選框的坐標和框內存在檢測對象的概率(即置信度,由NMS的前端網絡自動計算、輸出,取值范圍為[0,1])為輸入,選出置信度最大的預選框anchor_max,并計算anchor_max與其他所有預選框的交并比;其次,將與anchor_max交并比大于閾值(本研究為0.5)的預選框刪除,然后固定anchor_max為第1個ROI;最后,在未被刪除和固定的預選框中重復以上操作,直至所有預選框被刪除或固定。
筆者提出的PNMS 在NMS 中增加了鉚釘坐標信息對ROI 篩選的限制,具體步驟為:①設定L=,其中:W,H為鉚釘預測框的長和寬;②規定鉚釘預測框內區域為R1,以鉚釘預測框的中心為圓心、L為半徑的圓內區域為R3,R2=R3-R1;③針對網絡輸入到PNMS 中的所有N個預選框anchori(i=1,2,···,N),若anchori與R2的交并比等于0,則刪除該預選框;若anchori與R1的交并大于0,則將該預選框的置信度加a(a為超參數,本研究中為0.15);④針對執行完步驟1~3 后未被刪除的預選框,按照新的置信度執行原NMS。
圖6 所示的鉚釘,黑色框內為R1,藍色框內、黑色框外為R2。若按原NMS 方法,預選框anchor1(裂紋)和anchor2(劃痕)均會被篩選為ROI,進而被診斷為裂紋;而按照PNMS,anchor2在ROI 篩選階段會被刪除。

圖6 PNMS 篩 選ROI 示 例Fig.6 Examples of PNMS filters ROI
本研究的檢測對象為鉚接7050 系列鋁合金板試驗件,厚度為2 mm,共6 件,其結構如圖7(a)所示。在試驗件中隨機選擇2 顆鉚釘,在其孔邊預制長度為2 mm 的裂紋。將試驗件兩端對稱加持于疲勞試驗機,并施加正弦載荷直至裂紋萌生、擴展及試驗件斷裂,如圖7(b)所示。試驗過程中使用工業顯微鏡記錄裂紋擴展過程。

圖7 圖像采集示意圖Fig.7 Schematic diagram of image acquisition
此外,為豐富樣本形式,提高模型對圖像質量的適應性,在圖像采集過程中不斷地人為調節圖像視場大小、拍攝角度和光照強度,其中視場調節范圍為10 mm×18 mm~40 mm×72 mm,角度調整范圍為-10°~10°(規定與試驗件垂直的拍攝角度為0°),光照強度則是在可看清鉚釘和裂紋的前提下隨機調節。通過6 個試驗件的疲勞試驗共采集45 張帶裂紋、40 張無裂紋的鉚釘和預制裂紋圖片。
模型的檢測對象包括鉚釘、預制裂紋和裂紋。按照圖5 的模型架構,筆者使用Mask‐RCNN 訓練了2 個模型,模型1 用于檢測鉚釘和預制裂紋,模型2 用于檢測裂紋。
從45 張帶裂紋圖片和40 張鉚釘圖片中分別隨機選取35 張和30 張作為訓練數據集,其余作為測試集。使用LabelMe 軟件對圖片進行標注。模型的訓練流程為:①使用ImageNet 數據集的訓練參數作為基礎網絡(VGG16)的初始參數,首先以鉚釘、預制裂紋和裂紋為檢測目標,使用訓練集的65 張圖片訓練Mask‐RCNN 至模型收斂,并將其記為模型3;②固定模型3 中基礎網絡和RPN 網絡的參數,以鉚釘和預制裂紋為檢測目標,重新訓練模型至收斂,得到模型1;③再以裂紋為檢測目標,重復步驟2,得到模型2。為提高裂紋的檢測精度,模型2 的訓練數據除了原訓練集中的35 張裂紋圖片外,還包含50 張不帶鉚釘的裂紋圖片,該50 張圖片來自于其他元件級疲勞試驗中的8 個試驗件。
訓練過程中設置模型每學習一張圖片更新一次網絡參數,所有圖片訓練完畢為一個循環,模型3、模 型1 和模型2 分別經過106,25 和32 個循環后收斂。
2.2.1 鉚釘檢測結果
為說明Mask‐RCNN 在目標檢測精度上的優勢,使用相同的數據集,分別訓練了基于Faster‐RCNN[16‐17]和Mask‐RCNN 的鉚釘和預制裂紋檢測模型,其中基于Mask‐RCNN 的檢測模型即為模型1。針對20 張測試圖片中的22 個鉚釘,兩個模型的檢測結果對比如表1 所示。其中“未檢出”和“誤判”分別指圖片中有鉚釘而未識別出來和鉚釘檢測個數多于實際個數的情況,準確率P為鉚釘的正確檢出個數與實際個數、誤判個數之和的比值。

表1 Mask‐RCNN和Faster‐RCNN的鉚釘檢測結果對比Tab.1 Comparison of rivet detection results be‐tween Mask‐RCNN and Faster-RCNN
通過對檢測結果的分析可知,在考慮圖像虛化、目標變形等因素時,Mask‐RCNN 的檢測結果具有更高的可靠性。圖8 為測試集中部分圖片的檢測結果,圖中虛線粗框是人為標注的說明框,實線細框是算法自動輸出的檢測結果。圖8(b,e)分別為鉚釘虛化和邊緣變形導致的Faster‐RCNN 的未檢出或檢測區域不完整的情況;圖8(h)為鉚釘內部變形導致的Faster‐RCNN 的誤判情況(將1 顆鉚釘誤認為是2 顆)。針對以上3 張圖片,Mask‐RCNN 不僅檢測正確,且準確地分割了鉚釘的邊界,如圖8(c,f,i)所示。

圖8 Faster-RCNN 與Mask‐RCNN 的檢測結果對比Fig.8 Comparison of detection results between CASTER-RCNN and Mask‐RCNN
2.2.2 裂紋檢測結果
為說明筆者提出的預測模型可有效提高裂紋的檢測準確率,分別使用模型3 和所提模型對20 張測試圖片進行檢測,檢測結果如表2 所示。

表2 改進Mask‐RCNN和Mask‐RCNN裂紋檢測結果對比Tab.2 The comparison of crack detection results between Mask ‐ RCNN and the improved Mask‐RCNN
鑒于Mask‐RCNN 的高檢測準確率,兩種方法均能正確識別圖片中的14 條裂紋,其區別主要體現于誤判次數,即將劃痕識別為裂紋的次數。以上兩種方法的誤判次數分別為12 次和2 次,準確率分別為53.8%和87.5%。針對測試集中一張有鉚釘、預制裂紋和裂紋的圖片,兩模型的檢測結果分別如圖9(a,b)所示,可以看出在圖9(b)中,劃痕被準確地排除,降低了裂紋誤判率。

圖9 Mask-RCNN 與本研究提出模型的裂紋檢測結果對比Fig.9 Contrast between the crack detection results of Mask-RCNN and the model presented in this pa‐per
圖10 所示為測試集中本研究提出模型的裂紋誤判情況,經分析認為造成該誤判的原因是劃痕1與鉚釘1 的距離較近,位于鉚釘1 的R1范圍內,算法按距離進行裂紋篩選時未能將其剔除。這說明筆者提出的方法雖然能剔除大部分劃痕干擾因素,對算法的工程適用性具有實際意義,但無法從根本上區分裂紋和劃痕,因此開展裂紋和劃痕的特征區分模型設計是后續研究方向。

圖10 本研究模型的裂紋誤判情況示例Fig.10 An example of crack misjudgment of the model pre‐sented in this paper
1)為解決劃痕、污損等導致的裂紋檢測誤判率高的問題,提出基于關鍵結構定位的裂紋識別策略。為實現該策略,設計了基于改進Mask‐RCNN 的裂紋檢測模型,有效提高了裂紋檢測的準確率。
2)選取目標分割算法Mask‐RCNN 取代常用的目標檢測試驗結果表明,在考慮圖像虛化、目標變形等問題時,Mask‐RCNN 的檢測準確率具有明顯優勢。
3)本研究提出的裂紋自動檢測算法誤判率低,主要是因為高準確率的基礎目標檢測算法、面向實際問題的模型架構以及NMS 方法改進。
4)所提出的方法只能剔除大部分劃痕干擾因素,進一步的改進方向是進行裂紋和劃痕的特征區分模型設計。