段佳佳
(太原師范學院計算機科學與技術學院,晉中 030619)
現有工業場景下,鋼鐵表面包括但不限于龜裂、雜質、斑塊、麻坑面、氧化鐵皮壓入、劃痕等類型的缺陷。缺陷類型不僅多樣復雜,而且存在缺陷特征不明顯和特征復雜的問題。
眾所周知,有標簽數據挖掘通常能夠帶來非常高的準確率,但數據收集耗時費力,成本高;無標簽數據挖掘成本低,但產生的結果可信度較低。因此,半監督學習(Semi-Supervised Learning)成為了研究的熱潮。半監督學習可以用少量的有標簽數據和大量的無標簽數據進行學習,不僅可以獲得比無監督更加準確可信的結果,而且可以降低學習成本。
深度學習中的半監督方法可分為五種:①一致性正則化、圖、生成式、混合式和偽標簽[1],一致性正則化方法是指即使樣本注入噪聲,分類器的預測結果也不會發生顯著變化,因此,通過將預測結果和擾動后的結果間的損失正則化,即可提高模型的泛化能力。②基于圖的方法,是將數據集構建為圖,每個節點表示一個訓練數據,通過構建圖節點間的邊緣或節點向量的相似性來進行分類,但在定位任務上的效果有待進一步挖掘。③生成式方法,是利用數據的隱式特征,使生成假設的標簽能與真實分布相吻合,從而達到較高的性能,但是需要較充足的先驗知識。④偽標簽學習具有標簽數據學習的特點,將之應用到無標簽數據中,可以生成數據的近似標簽,稱之為偽標簽;模型通過標簽數據和偽標簽數據進行訓練,從而達到學習的目的。⑤混合式方法,是通過將偽標簽、一致性正則化和熵最小化的思想相融合,以達到提高模型性能的效果,但實現難度高。
上述深度學習中的各類半監督方法在執行圖像目標檢測任務時,數據處理大多依賴于數據增強和數據轉換,但是大多數情況下,數據的增強和轉換并不容易生成。由于偽標簽方法不受數據格式的約束,獲取數據偽標簽的方法也容易獲得,因此本文采用偽標簽方法來實現半監督學習。
半監督方法在圖像分類和語義檢測領域的應用相對較多,但在目標檢測領域的應用則相對較少。2013年,Lee[2]提出使用無標簽和有標簽數據同時參與訓練,并在半監督分類領域獲得了當時的最佳效果,但僅限于分類任務。2019年,Jeong等[3]提出了用于目標檢測的半監督協同學習方法,該方法不僅可以同時用于單階段和多階段目標檢測,而且可以通過獲取圖片間的位置或特征一致性損失,進行分類和定位的預測。2020年,Sohn等[4]提出了目標檢測的一種簡單的半監督學習方法STAC,該方法首先用標注數據訓練一個模型,然后使用該模型對無標簽數據進行預測,最后將以預測結果為偽標簽的數據和標注數據一起用于訓練新的模型,構建了簡單的半監督目標檢測機制。2021年,Liu等[5]提出的unbiased teacher方法,是端到端的目標檢測方法,不僅證實了目標檢測中類別不平衡的問題會影響偽標簽的可靠性,而且有效地解決了背景和前景分類時存在的類別不平衡問題,從而提高了半監督模型的預測準確性。同年,Xu等[6]提出了Softteacher目標檢測方法,實現了使用教師和學生模型一同訓練的端到端的目標檢測方法,在此基礎上提出了軟教師和抖動框的方法,將目標檢測的平均精度均值提升到現有半監督目標檢測方法的最高水平。盡管如此,偽標簽可靠性的問題依然存在。
針對鋼鐵表面缺陷檢測的實際應用需求和半監督目標檢測領域中偽標簽可靠性較低的問題,本文在Softteacher模型的基礎上,對Softteacher中用于目標檢測的FFRCNN網絡的特征融合機制和用于偽標簽可靠性評價的評價機制進行改進,并將之用于帶鋼表面缺陷的檢測。
首先,Softteacher模型在應用于鋼鐵表面缺陷檢測時,由于鋼材缺陷類型多樣帶來的特征不明顯問題,使得模型整體平均準確度均值有所降低。而卷積神經網絡使用不同的卷積核能得到不同的特征圖,因此,將FFRCNN網絡的特征融合機制改為采用并行多分支結構,可以盡可能避免特征丟失帶來的損失;其次,Softteacher屬于半監督學習方法,因此,生成滿足一定精確度和可靠性偽標簽的機制是其至關重要的一環。在Softteacher模型中,數據的偽標簽采用基于閾值的硬篩選方法生成,但可靠性不足。因此,改進其偽標簽生成機制,提高偽標簽的可靠性,可以有效提高Softteacher模型的整體性能。
本節介紹Softteacher模型用于鋼鐵表面缺陷檢測的檢測流程,所采用的FFRCNN網絡、損失函數以及抖動框算法。
Softteacher是一種端到端的兩階段半監督目標檢測模型,通過在訓練過程中逐漸提高目標檢測模型準確度和生成偽標簽的質量來提升模型的總體準確度。該方法用于鋼鐵表面缺陷檢測的流程如圖1所示。
從數據流的角度對模型進行分析,可以簡單概括如下:
(1)數據集由標簽數據和無標簽數據組成。有標簽數據進行弱增強后輸入學生模型進行有監督訓練,經過有監督訓練后的學生模型通過EMA參數更新,將學生模型的權重參數傳遞給教師模型,進行教師模型學習。
(2)無標簽數據進行強增強后輸入學生模型,生成候選結果。
(3)無標簽數據進行弱增強后輸入教師模型,并通過更新權重參數后的教師模型進行結果的預測,然后將預測結果通過NMS過濾,獲得初步偽標簽。
(4)從分類數據流程來看,Softteacher模型通過高分數閾值對初步偽標簽進行篩選以獲得偽框分類結果,并作為步驟(2)中生成的候選分類結果的標簽,即學生模型所預測的無標簽數據分類結果和教師模型預測的偽分類結果進行計算,可獲得無標簽數據預測的分類結果和分類損失,并將該分類損失和由學生模型訓練而得的分類損失進行加權,可得到最終的分類損失函數。
(5)從框回歸數據流程來看,模型通過方差濾波對步驟(3)獲得的初步偽標簽進行篩選,得到偽框回歸結果,并將該偽框作為步驟(2)中生成的候選框結果的標簽,即學生模型所預測的無標簽數據候選框結果和教師模型預測的偽框結果進行計算,可得到無標簽數據的預測框和框回歸損失,并將該回歸損失和由學生模型輸出的回歸損失進行加權,可得到最終的框回歸損失函數。
(6)步驟(4)和步驟(5)得到的損失函數通過前饋權重參數更新,可使學生模型再次學習;同時,通過將學生模型的權重參數傳遞給教師模型,可對教師模型進行權重參數更新。如此循環反復,逐漸提高整個模型的檢測準確度。
從學習路線的角度對模型進行分析,整個模型可以分解為教師流和學生流。
學生流模型利用有標簽數據學習已有的標簽數據的特點,這些特點在目標檢測網絡中具體為深度學習網絡模型的權重參數,而這些權重參數可用于后續對無標簽數據的偽標簽進行預測;學生流模型學習到的權重參數通過傳遞給教師流模型對無標簽數據的偽標簽進行預測,并將預測所得的偽標簽作為學生流模型中無標簽數據的標簽進行仿監督學習。這種學習機制,一方面可以使模型在學習有標簽數據的同時充分利用無標簽數據的信息;另一方面,可以有效提升數據的利用率。
Softteacher模型中的教師模型和學生模型采用的是由Faster R-CNN和FPN組成的FFRCNN目標檢測網絡。目標檢測任務通常分為一階段方法和二階段方法兩種,其中,一階段方法注重提升速度,二階段方法則注重提升精度。FFRCNN是經典的二階段網絡。顧名思義,二階段網絡將目標檢測任務分為兩個階段進行。第一階段先找出數據圖片中目標物體的anchor錨框,然后將待測物體從背景中分離出來;第二階段則對前景內的物體進行分類。
FFRCNN模 型 可 分 為backbone、neck和head三個部分,其結構如圖2所示。其中,backbone部分使用深度為101層的Resnet網絡[7]提取特征;neck為backbone和head之間的連接部分,采用特征金字塔結構,通過對每一層不同尺度的特征進行保留,可以更好地利用backbone提取的特征,并有效避免特征丟失;head部分利用neck層輸出的特征對檢測目標進行預測和分類,與FFRCNN模型中的RPN和Roi pooling相對應。
Softteacher中采用的損失函數為
式(1)中的Ls和Lu分別表示帶標簽數據和不帶標簽數據的損失,系數α表示無監督教師模型的指導貢獻度。
教師機制通過教師模型生成的偽標簽指導學生模型學習無標簽數據的特征,其產生的預測結果即為無標簽數據的偽標簽。用偽標簽的分類損失對學生模型的損失函數進行加權,可以起到指導學習的作用。
教師模型和學生模型對應的損失函數分別為
式中的Iil表示第i幅有標簽的圖像,Iiu表示第i幅無標簽的圖像,Lcls為分類損失,Lreg為框回歸損失,Nl和Nu分別表示有標簽和無標簽圖片的數量。
對于目標檢測偽框的生成,Softteacher采用框抖動[8](Box Jittering)進行篩選。傳統半監督學習通過分類置信度值對預測偽框進行評價和篩選,并將分類置信度高的偽框作為最終的篩選結果。但文獻[8]和文獻[9]證明,標簽的篩選不能單一地由置信度的高低來評判,因為置信度較低的預測結果中同樣存在對模型訓練有利的可靠結果。因此,采用框抖動中的方差濾波對偽標簽進行篩選可以有效改善偽標簽的可靠性。以下是用來篩選抖動框的方差濾波算法:
式(4)中σk是提取抖動框集合{bi,j}中第k個坐標的標準推導規則,是σk的歸一化,h(bi)和w(bi)分別為候選框bi的高和寬,為候選框bi的抖動框回歸方差均值,也是抖動框生成的依據。
對Softteacher模型的改進包括兩個方面:一是對FFRCNN網絡的改進,采用了特征融合的方法,即將原有的串行結構改為并行多分支結構,對特征進行多次提取后再對應相加進行融合,以避免FFRCNN網絡由于數據特征不明顯所導致的網絡結構中特征丟失的問題,降低數據在訓練過程中特征的丟失率;二是對偽標簽生成規則的改進,采用了特征分離的方法,即通過并行多分支結構多次生成偽標簽,然后利用多次偽標簽結果間的特征值不穩定性調整偽標簽,以實現通過特征分離來增強偽標簽可靠性和確定性的功能。
鑒于FFRCNN網絡自身的特性以及帶鋼表面缺陷特征復雜及難分辨的特點,對FFRCNN網絡的改進需要從多尺度特征融合的角度,分別對backbone、neck及head三部分進行優化實現。核心在于將特征提取的串行結構改為并行多路分支結構,并將之融合。
在Softteacher模型的FFRCNN網絡中,C1由7×7的卷積核、64層通道、步數為2,以及加邊數padding為3的卷積塊組成,后經下采樣層輸出到從左到右的四層殘差模塊中,這四層殘差模塊分別對應于圖2中的C2-C5部分。在neck部分的特征金字塔結構中,其第一層P2-P5是由對應的C2-C5進行1×1的卷積操作,同時對P5至P2經過下采樣操作后與對應的P結構相加得到;第二層P2-P5則由對應第一層的P2-P5進行3×3卷積獲得,而P6則通過在P5上使用1×1步長為2的最大池化進行下采樣后得到。head部分的輸入為最后一層的P2-P6,這一層所有的通道數都為256,因此可進行融合,將其進行3×3加邊數padding為1的感興趣區域提取操作后分為分類cls和回歸reg分支,進行1×1的卷積操作,可分別得到分類和框預測的預測結果。改進的Softteacher模型中的FFRCNN網絡如圖3所示,改進內容涉及backbone、neck和head三個部分。backbone的構造如表1所示,為Resnet101結構。其中,表1中的C1-C5對應于圖2和圖3中的C1-C5。

表1 Resnet101詳細構造
backbone的改進源于對網絡的深度和寬度的實驗。為降低特征丟失率,對backbone的主干網絡進行了深度和寬度的增加,并將原有的串行結構改成了并行的多分支結構,以實現對特征圖的多尺度特征融合。首先,對共享的C1部分增加寬度,將其由原來的一層變為三層,旨在對特征進行多次提取;其次,對殘差模塊(C2-C5)擴展寬度,將其由原來的一層擴展為三層,輸出則采用三次結果相加的策略,可對輸入特征圖空間的維度進行有效壓縮;最后,聚合空間信息,將不同次提取的特征相結合,實現多路特征融合,減少特征丟失。
neck部分的改進源于對特征金字塔寬度影響的實驗,改進后的neck結構如圖4所示。實驗首先將原來的一層寬FPN增加為兩層,然后對圖3中的C2-C5特征分別進行多分支特征提取,最后將分支結果相加并均值化,其目的是防止特征值域溢出。這樣的操作由于特征金字塔寬度的增加以及融合了多個尺度的特征而減少了特征的丟失。
改進后的FFRCNN網絡會在neck部分生成P2-P6的特征圖,并將其輸入到head。head將輸入的特征圖通過RPN生成特征圖的候選區域,而后通過對由感興趣區域提取的特征圖進行池化得到最終的特征圖,并用于分別預測分類和框結果。在原head的基礎上增加感興趣區域特征提取的寬度,并進行兩次感興趣區域特征的提取后,先將兩次提取的特征進行融合,然后再進行最后的全連接層預測。改進后的head如圖3中的head部分所示。
半監督學習的難點在于如何評價偽標簽生成的可靠性。在已有的偽標簽生成方法[10-14]中,大多都以高閾值對偽標簽進行硬篩選,導致分數低的結果無法對模型產生影響。而實際的情況是,偽標簽分類分數的高低與框定位精度之間的關系并不表現為強正相關。因此,采用硬篩選方法所生成的偽標簽并不可靠。
收集候選偽框的抖動框方法由Softteacher提出[6],該方法用抖動框對偽框進行回歸方差計算,并通過回歸方差對偽框進行校正,有效改善了偽標簽的可靠性。
抖動框的選取依賴于感興趣區域特征的提取,而多次提取的結果之間有較小的振動,因此,通過對比兩次抖動框回歸的結果,并用兩次回歸方差間的差值對抖動框進行校正調整,可以有效減小抖動框抖動帶來的誤差,進一步增強抖動框的可靠性。
基于上述考慮,偽標簽生成規則的改進采用了特征分離的策略。首先,構建了并行的多分支結構,用以對感興趣區域的特征進行提取;其次,在框抖動算法的基礎上,通過增加偽標簽對比機制,對偽標簽進行軟篩選,提升偽標簽的可靠性。
由于改進后的偽標簽生成規則利用了無標簽數據不同預測結果特征圖之間特征值的差異性,而這種差異性能夠將具有不同預測結果的特征分離開來,并形成對比,因此,計算兩者之間的損失可得到預測結果特征圖之間的不可靠性,將該不可靠性與原有的框抖動算法形成的損失進行加權,可進一步降低不可靠性,以下是生成偽標簽時評價偽標簽不可靠性的公式:
式(6)中的Luncertain代表生成的偽標簽的不可靠性,是對偽標簽進行篩選的依據,是框抖動算法中進行方差回歸得到的歸一化結果,則是兩次歸一化結果的差值計算,用以提取兩次結果之間的不同特征間的振動,進一步減少生成偽標簽的不確定性。
實驗擬驗證以下兩點:
(1)相比于半監督學習方法STAC、Selftraing和Unbiased-teacher,Softteacher方法在半監督算法中具有優勢,借鑒Softteacher思想,通過對其改進并將改進的方法用于帶鋼表面缺陷檢測具有理論與實踐意義;
(2)改進后的Softteacher模型在帶鋼表面缺陷檢測上可行且有效。
為了實驗的便捷性和可依托性,本文的實驗均在線上服務器進行,采用了python語言、pytorch框架、mmdetection開源框架和Softteacher模型的開源框架。具體配置見表2。

表2 實驗環境配置
半監督學習方法STAC、Self-traing和Unbiased-teacher性能之間的比較結果見表3,其中mAP為平均準確度均值。

表3 不同半監督方法的比較
實驗數據采用coco2017中所有的帶標簽數據。由于部分半監督偽標簽目標檢測方法對實驗環境要求較高,表3中的數據引用了文獻[5-6]及文獻[15]中的實驗結果。
實驗結果表明,Softteacher的半監督平均準確度均值最高。
實驗使用開源NEU-DET鋼材表面缺陷數據集中的NEU-DET數據集和NEU-CLS-64數據集。NEU-DET數據集用作bbox目標檢測數據集,包含六種缺陷,對應缺陷的圖像示例如圖5所示。其中,每種缺陷類有300張圖像,共計1800張;而NEU-CLS-64包含九種缺陷類型的無標簽數據集,共計7226張。
為方便比較,實驗時對NEU-CLS-64中的數據只考慮其與NEU-DET數據集中缺陷類型相同的六種缺陷。首先,將NEU-DET數據集分為訓練集和驗證集,劃分比例為1.7∶1,劃分后的數量分別為訓練集1134張,驗證集666張;將NEU-CLS-64數據集中的數據視為無標簽數據,數量為6292張。
消融實驗對比結果見表4。表4中mAP50為當預測框和真實框(或偽框)重疊度IoU大于等于50且小于75時平均帶鋼表面缺陷檢測精確度均值mAP的值;mAPs為小目標平均精確度均值;mAPml為中目標和大目標平均精確度均值;Acc代表帶鋼數據檢測精確度。

表4 消融實驗對比 %
從 表4中 的baseline和baseline+uncertain的對比結果可以發現,采用改進后的偽標簽生成規則比原模型的mAP50和mAPs分別提高0.9和1.7個百分點,mAPml下降1.3個百分點,Acc保持不變。該結果說明,結合了特征分離的偽標簽生成規則,能夠在檢測精確度不變的情況下,提升小目標精確度的均值,且對整體性能有正向效果。
表4中baseline+uncertain與baseline+uncertain+FFRCNN的對比結果顯示,采用特征融合機制改進后的FFRCNN網絡對模型整體性能有提升效果。相比于原模型的mAP50、mAPs和Acc分別提高0.6、1.7和1個百分點。說明改進后的FFRCNN結構,不僅能夠提升小目標精確度的均值,而且能夠有效提升檢測的精確度。
橫向對比實驗的結果如表5所示。將NEUDET數據集用于不同的半監督方法時,使用unbiased-teacher方法的平均精度均值可達到38.1,而使用Softteacher模型的平均精度均值可達到67,平均精度均值的顯著提升再次顯示了Softteacher模型的優越性。

表5 橫向實驗對比 %
與Softteacher模型相比,改進后Softteacher模型由于改進了特征融合機制,增加了特征分離機制,使其mAP50、mAPs和Acc都有所提升,分別提升了1.5、3.4和1個百分點。
綜上所述,對于具有小目標檢測特性的帶鋼表面檢測任務,改進后的Softteacher模型適用且有效。
本文選擇半監督學習的方式來檢測帶鋼表面的缺陷,采用了目前半監督目標檢測領域內效果最佳的Softteacher模型,旨在降低因標記大量圖像而帶來的高成本問題。在Softteacher模型框架不變的基礎上,對Softteacher中的教師和學生模型進行了改進,采用特征融合機制,通過將Softteacher模型中的FFRCNN網絡的串行結構改為并行多分支結構,避免了缺陷特征由于不明顯或不易辨識而導致特征丟失的問題;在原有框抖動算法的基礎上,通過增加基于特征分離的生成規則,提升了偽標簽的可靠性。在NEU數據集上進行的消融實驗和橫向對比實驗從不同的角度驗證了改進后的Softteacher模型的實用性與有效性。