唐嘉鴻,黃頎,田春岐
(1.中國航發(fā)上海商用航空發(fā)動機制造有限責任公司,上海 201306;2.同濟大學電子與信息工程學院,上海 201804)
航空發(fā)動機是航空器的核心,是航空器安全飛行的重要保證。而發(fā)動機零部件在制造中難免會產(chǎn)生一些缺陷,輕則影響發(fā)動機的使用性能和使用壽命,重則危害到航空器的飛行安全,因此在零部件制造中對其進行缺陷檢測以保證零部件的高質(zhì)量具有重要意義。
傳統(tǒng)的缺陷檢測方法分為人工檢測和傳統(tǒng)機器檢測,人工檢測效果易受檢測人員的經(jīng)驗、疲勞程度等因素影響,且檢測效率低;傳統(tǒng)機器檢測需要根據(jù)檢測目標的特性設(shè)計相應(yīng)的檢測方案,研發(fā)周期長,且方案難以遷移,泛化能力較差。
LUO等[1]運用選擇性顯性局部二值模式(Selectively Dominant Local Binary Patterns,SDLBPs)算法對熱軋帶鋼的表面缺陷進行分類,以獲得更高的分類精度和時間效率,但未能實現(xiàn)目標缺陷檢測。ZHANG等[2]提出了一種正弦相位光柵投影方法來檢測連鑄坯中裂紋的深度和表面輪廓,該方法適用于檢測連鑄坯表面的缺陷。卷積神經(jīng)網(wǎng)絡(luò)和深度學習算法在目標檢測領(lǐng)域取得了飛速的發(fā)展,為實現(xiàn)高準確性、高效率的零件表面缺陷提供了新的解決方案,許多學者提出了“深度學習+缺陷檢測”方法。ZHANG等[3]使用YOLOv3對鋼帶表面缺陷進行檢測,但由于未考慮單階段檢測模型訓練過程中樣本不平衡問題,故最終檢測精度較低。DONG等[4]提出金字塔特征融合和全局上下文關(guān)注網(wǎng)絡(luò)(Pyramid Feature Fusion and Global Context Attention Network,PGA-Net),但由于未考慮單一尺度特征圖不利于多尺度缺陷檢測,因此最終檢測精度依舊較低。王海云等[5]使用融合特征提取網(wǎng)絡(luò)將低層特征圖的位置信息融合進高層特征圖,但其同樣未考慮單一尺度特征圖不利于多尺度檢測問題,并且由于融合特征提取網(wǎng)絡(luò)引入較多的計算量,因此模型的檢測精度和檢測速度難以滿足實際應(yīng)用需求。LI等[6]在Faster R-CNN加入特征金字塔模型對不同層級特征圖進行融合以提高檢測精度,并根據(jù)候選框尺度截取對應(yīng)層級的特征圖,該模型在傳統(tǒng)目標檢測中檢測精度有較大提升,但在航空部件的缺陷檢測中效果并不好,仍有較大改進空間。
在此次研究中,由于實際生產(chǎn)數(shù)據(jù)未脫敏,同時也為了更好地和其他模型進行比較,本文作者選取和實際制件數(shù)據(jù)較為接近的東北大學鋼帶表面缺陷公共數(shù)據(jù)集NEU-DET[7]作為研究對象,提出一個基于Faster R-CNN的改進模型(如圖1所示)。該模型使用深度殘差網(wǎng)絡(luò)ResNet-50[8]作為卷積部分提取缺陷特征,使用含有內(nèi)容感知重組算子(Content-Aware Reassembly of Features,CARAFE)[9]的特征金字塔結(jié)構(gòu)以對不同層次特征進行更好的融合,并使用RoIAlign結(jié)構(gòu)[10]根據(jù)檢測框尺度選取對應(yīng)層次的特征圖以提高模型對小尺度缺陷的檢測效果,在RCNN部分使用基于交并比(Intersection over Union, IoU)的分層采樣挖掘難例樣本,增強模型對難例樣本的學習。在實驗過程中,文中僅對原數(shù)據(jù)集進行旋轉(zhuǎn)、翻轉(zhuǎn)操作擴充數(shù)據(jù)集并與在此數(shù)據(jù)集上表現(xiàn)最好的模型[6]進行對比實驗。
圖1 基于Faster R-CNN的改進模型
GRISHICK等[11-13]提出的R-CNN、Fast R-CNN、Faster R-CNN構(gòu)建了雙階段檢測模型的基本檢測流程,即通過卷積結(jié)構(gòu)提取原圖對應(yīng)的特征圖,使用區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network, RPN)生成一系列候選框并對候選框內(nèi)容所對應(yīng)的特征圖進行初步前景背景預(yù)測,選取含有前景概率較高的部分候選框進行檢測,篩選去重后輸出檢測結(jié)果并對候選框位置尺度進行微調(diào)。因此,雙階段模型可以分為3個模塊:(1)卷積結(jié)構(gòu),用于提取特征;(2)RPN網(wǎng)絡(luò),用于生成候選框;(3)RCNN結(jié)構(gòu),用于對候選框內(nèi)容分類并對候選框位置尺度進行微調(diào)。
Faster R-CNN作為雙階段檢測模型的代表作,后續(xù)對它改進也基本圍繞以上3點進行。比如由于Faster R-CNN使用最后一層特征圖進行檢測,對小目標檢測效果不好,故LIN等[14]提出特征金字塔模型(Feature Pyramid Network,F(xiàn)PN),在卷積部分增加特征金字塔結(jié)構(gòu),通過融合高低層特征豐富低層特征圖語義信息并根據(jù)候選框尺度從對應(yīng)層級選取特征圖,解決了多尺度目標檢測問題;常規(guī)RPN網(wǎng)絡(luò)根據(jù)預(yù)設(shè)的尺度和長寬生成候選框,候選框的質(zhì)量對后續(xù)檢測精度有較大影響,REDMON和FARHADI[15]提出的Yolov2使用聚類方法挖掘數(shù)據(jù)集中檢測框尺度和形狀的先驗知識用于候選框的生成,為RPN網(wǎng)絡(luò)如何更好地利用數(shù)據(jù)集先驗知識提供了新的思路;RCNN結(jié)構(gòu)較好的檢測效果依賴于高質(zhì)量的訓練,其訓練過程所使用的候選框通過從RPN網(wǎng)絡(luò)生成的候選框中采樣獲得,相關(guān)研究發(fā)現(xiàn)對候選框中難例樣本的學習可以顯著提高RCNN檢測能力,因此SHRIVASTAVA等[16]提出在線難例挖掘算法(Online Hard Example Mining,OHEM),通過增強模型對難例樣本的學習從而提高模型整體的檢測能力。
文中針對上述3個改進方向進行實驗研究,發(fā)現(xiàn)卷積結(jié)構(gòu)的特征提取效果和難例挖掘的策略選擇直接影響到模型的檢測效果。因此,文中在現(xiàn)有Faster R-CNN改進基礎(chǔ)上做了進一步改進,在卷積部分引入含有內(nèi)容感知重組算子的FPN網(wǎng)絡(luò)代替常規(guī)的FPN網(wǎng)絡(luò),使用學習的方式實現(xiàn)特征圖上采樣過程,在難例挖掘部分使用分層采樣的挖掘策略代替OHEM優(yōu)化RCNN結(jié)構(gòu)的訓練,將模型的召回率提高到99%以上,基本滿足實際應(yīng)用的要求。
FPN網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示,它包含兩部分:第一部分是自底向上的過程,通過下采樣操作實現(xiàn),如卷積操作;第二部分是自頂向下和側(cè)向連接的過程,其中自頂向下通過上采樣操作實現(xiàn)。最常規(guī)的上采樣操作為插值和轉(zhuǎn)置卷積操作,插值使用距離衡量特征點之間的關(guān)系,但插值法只適用小鄰域的上下文信息,不能很好地融合不同層特征圖信息;轉(zhuǎn)置卷積使用學習方式自適應(yīng)計算特征值,但需要進行大量計算,增加了模型訓練難度。
圖2 特征金字塔結(jié)構(gòu)
WANG等[9]提出一種輕量級上采樣算子——內(nèi)容感知重組算子用于融合較大范圍局部信息并進行重組。假設(shè)給定一個尺度為C×H×W的特征圖X且上采樣比率為σ,使用CARAFE算子將獲得一個尺度為C×σH×σW的目標特征圖X′。對于目標特征圖X′上每個目標位置l′=(i′,j′),在源特征圖X上都有一個對應(yīng)的源位置l=(i,j),其中i=[i′/σ],j=[j′/σ]。N(Xl,k)表示在特征圖X上以源位置l為中心、大小為k×k的局部特征圖,即Xl的鄰域。
Wl′=ψ[N(Xl,kencoder)]
(1)
(2)
圖3 內(nèi)容特征重組整體框架(灰色部分為填充0操作)
內(nèi)容感知重組模塊φ使用重組內(nèi)核Wl′對源特征圖X上的局部信息通過卷積操作進行融合。對于目標位置l′和對應(yīng)的以l=(i,j)為中心的局部特征圖N(Xl,k)的融合操作如公式(3)所示,其中r=?kup/2」。
(3)
重組內(nèi)核使得N(Xl,kup)區(qū)域中每個特征點都根據(jù)其特征內(nèi)容而非距離為目標特征點l′提供信息,因此重組后的目標特征圖的語義信息比僅采用插值所得到的特征圖更加豐富;相比轉(zhuǎn)置卷積的方式,CARAFE算子大大減少了計算量,降低了訓練難度,有效提高了后續(xù)檢測效果。
Faster R-CNN在梯度反傳時通過對候選框隨機采樣以減少計算量,而相關(guān)研究發(fā)現(xiàn)對候選框中難例樣本的學習可以有效提高模型的檢測能力。檢測領(lǐng)域最常用的難例挖掘方法為OHEM采樣,OHEM采樣算法通過loss值來挖掘難例,選取loss值最高的k個候選框用于模型訓練,其理論依據(jù)為難例樣本容易漏檢誤檢,對應(yīng)的loss值較高。然而loss值很高的樣本除了可能是難例樣本外,還有可能是漏標、誤標帶來的噪聲樣本,使用噪聲樣本進行訓練會導致模型負優(yōu)化。
在實驗中,文中發(fā)現(xiàn)NEU-DET數(shù)據(jù)集可能存在漏標情況,如圖4所示。為了挖掘難例樣本并減少噪聲標簽帶來的負優(yōu)化影響,文中使用IoU比值作為難例樣本的衡量條件,即對于前景候選框,它與真實檢測框IoU越小則越難檢測,對于背景候選框,它與真實檢測框IoU越大越難以檢測,并使用分層采樣以獲取用于訓練的樣本。具體流程為:(1)計算每個候選框和它對應(yīng)真實檢測框的IoU并進行排序,和所有真實檢測框的IoU小于0.5的視作背景候選框;(2)根據(jù)IoU值將候選框分為3組,并分別對每組進行隨機采樣;(3)將隨機采樣的結(jié)果匯總用于模型訓練。由于NEU-DET數(shù)據(jù)集沒有誤標,所以使用IoU作為難例衡量標準可以有效地減少噪聲標簽帶來的負優(yōu)化影響,使用分層采樣可以確保訓練樣本中含有固定比例難例樣本。實驗結(jié)果如表1所示,結(jié)果表明使用分層采樣算法的模型較使用OHEM算法在召回率和平均精度均值δmAP上有較大提升。
圖4 漏標樣本(藍框為原標注,紅框為漏標缺陷區(qū)域)
表1 使用OHEM算法和分層采樣算法的結(jié)果對比 單位:%
為了驗證此模型的可行性和優(yōu)勢,文中使用NEU-DET數(shù)據(jù)集進行實驗。
NEU-DET是鋼帶表面缺陷數(shù)據(jù)集,包含6種缺陷類別,分別為裂紋(Crazing)、夾雜(Inclusion)、斑塊(Patch)、點蝕表面(Pitted Surface)、軋制氧化皮(Rolled-in Scale)、劃痕(Scratch),每種缺陷含有300張分辨率為200像素×200像素的灰度圖片,總樣本數(shù)為1 800。數(shù)據(jù)集同時提供每張圖片所對應(yīng)的缺陷標注信息的XML文件,標注信息包括缺陷所屬類別與邊界框的信息(矩形框左上角和右下角的坐標信息),共計4 189個邊界框。圖5所示為NEU-DET數(shù)據(jù)集中6種表面缺陷圖像的示例樣本。
圖5 NEU-DET數(shù)據(jù)集缺陷樣本示例
為了保證模型對每類缺陷都經(jīng)過充分訓練和測試結(jié)果客觀性,文中選擇對每類缺陷隨機抽取70%作為訓練集,20%作為驗證集,10%作為測試集,并且分別對訓練集、驗證集、測試集進行旋轉(zhuǎn)和翻轉(zhuǎn)擴充,數(shù)據(jù)增強結(jié)果如圖6所示。通過先抽取再擴充的方法既可以保證模型訓練充分,又可以在確保訓練集、驗證集、測試集互相獨立,且在不改變樣本分布的情況下增加測試樣本數(shù)以更好地評估模型表現(xiàn),實驗結(jié)果如表2所示。
圖6 數(shù)據(jù)增強效果(翻轉(zhuǎn)、旋轉(zhuǎn))
表2 有無數(shù)據(jù)增強的實驗對比結(jié)果 單位:%
文中選擇召回率rRecall和平均精度均值δmAP作為模型的評價指標,其公式分別如下:
(4)
(5)
(6)
式中:aTP表示一個實例為正例且被預(yù)測為正例;aFP表示一個實例為負例且被預(yù)測為正例;aFN表示一個實例為正例且被預(yù)測為負例。
實驗采用的硬件配置為GTX1080Ti顯卡,軟件環(huán)境為CUDA10.1、Cudnn7.6.4,每個批次使用8張圖片進行訓練,使用含動量的隨機梯度下降優(yōu)化參數(shù),學習率為0.2,動量為0.9,權(quán)重衰減速率為0.000 1,每個模型共訓練36輪。實驗結(jié)果如圖7及表3所示。
圖7 各類別檢測結(jié)果示例(藍框為原標注,綠框為模型檢測結(jié)果)
表3 不同算法實驗結(jié)果對比 單位:%
從表2、表3中可以看出:文中的模型在NEU-DET數(shù)據(jù)集上的δmAP和召回率均高于先前表現(xiàn)最好的Faster R-CNN+FPN[6]模型。在引入含有內(nèi)容感知重組的FPN結(jié)構(gòu)和基于分層采樣的難例挖掘后使得檢測的召回率均達到99%,模型檢測速度為33幀/s,滿足了航空制件對缺陷檢測召回率和速度的要求。
文中對模型進行消融實驗以具體分析每個模塊對模型檢測效果的提升,實驗結(jié)果如表4所示。
表4 消融實驗結(jié)果 單位:%
通過表4可以看出在FPN結(jié)構(gòu)中引入CARAFE模塊使得模型檢測的δmAP提升了2.6%,模型對各缺陷的檢測召回率均提升至98%以上。引入CARAFE模塊改善了FPN上采樣過程,有效豐富了各層級特征圖的語義信息,這表明特征圖語義、圖像信息豐富程度直接影響模型最終的檢測效果。
通過表4可以看出使用基于IoU的分層采樣使得模型在使用CARAFE模塊的情況下,其δmAP提升了1.5%,召回率提升至99%以上,而使用OHEM卻導致模型負優(yōu)化,說明僅根據(jù)loss值大小來挖掘難例會導致將負類誤判為難例,而通過計算IoU值挖掘難例則可以有效地規(guī)避根據(jù)loss大小判斷難例的缺陷,并且根據(jù)IoU值判斷是否為難例也更符合候選框回歸的思想,即讓候選框向與之最接近的檢測框回歸。而根據(jù)IoU值進行分層采樣的思想更類似于對隨機采樣和難例挖掘的折中,可以規(guī)避隨機采樣導致的難例樣本過少和OHEM導致的將負類誤判為難例的問題,通過分層采樣的方法能夠確保難例樣本在訓練樣本中的比例,確保模型訓練可靠。
文中從雙階段目標檢測流程出發(fā),根據(jù)航空制件表面缺陷檢測問題,提出一種改進Faster R-CNN算法,使用含有內(nèi)容感知重組模塊的FPN更好地融合高低層特征,豐富各層級特征圖的信息,并且使用基于IoU的分層采樣以挖掘難例樣本,提升模型的訓練質(zhì)量,檢測準確率達到93.9%,各類缺陷召回率均高于99%,檢測速度達到33幀/s,文中所提算法有效提升了航空制件缺陷檢測的準確性和效率。在消融實驗中發(fā)現(xiàn)特征圖的質(zhì)量對檢測效果有直接影響,未來將嘗試借鑒神經(jīng)架構(gòu)搜索(Neural Architecture Search,NAS)的思想[17],探索新的卷積結(jié)構(gòu)和FPN結(jié)構(gòu)以增強特征提取質(zhì)量。