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