肖安七 呂 肅 張 嵩 李成敏
深圳中科飛測科技股份有限公司 廣東 深圳 518110
近年來,隨著GPU等硬件和公開數據集[1]的快速發展與完善,以及越來越多的研究人員加入這個領域,目標檢測已然成為計算機視覺領域最熱門的方向之一。大量性能優異的目標檢測模型被相繼提出,并在實際的工程領域中得到驗證。
大體來說,近年所提出的目標檢測模型還是以基于錨框(anchor based)的模型為主。此類模型主要分為兩類:一類是以faster-rcnn[2]為代表的二階段(two stage)模型,另一類是以yolov3[5]為代表的一階段(one stage)模型。一般而言,二階段模型精調后的精度往往比一階段模型要好,但是模型訓練和推理速度遠不及一階段模型,而實際工程領域對算法實時性有較高的要求,所以以yolov3[5]為代表的一階段模型被廣泛采用。但是直接采用這些模型應用于具體的半導體檢測項目往往不能得到最佳的檢測效果,原因主要有以下兩點:一是數據集的差異。以ImageNet[1]為代表的公開數據集以自然圖像為基礎,在目標特征和圖像紋理上與產業界的情況相差較大。二是關注的評價指標不一致。論文中一般考察模型m AP(mean Average Precision)值,而在實際中更加關注缺陷的召回率,且對目標框回歸的精度要求明顯弱于分類精度。另外,在晶圓缺陷檢測場景中,“回拍”操作會使得缺陷優先出現在圖像中間區域。此類重要的先驗知識可以引入模型設計中,進一步提高模型的性能。
鑒于以上分析,本文選擇在yolov3模型的基礎上進行針對性修改和優化。主要包含以下三個方面:一是優化真實缺陷(groud truth)的編碼過程,二是在骨干網絡(backbone network)中加入注意力模塊,三是加入新的數據增強方法。
自2012年Alexnet[7]網絡模型被提出后,以卷積神經網絡為代表的深度學習便開始了研究熱潮,全世界研究者相繼提出VGG[8]、Googlenet[9]、Resnet[10]、Densenet[11]等 經 典 分 類 網 絡。與此同時,以分類網絡為基礎的目標檢測網絡也得到了空前的發展,從2014年提出的二階段的RCNN模型[12],到以yolov3[5]為代表的一階段模型,目標檢測模型性能越來越好。
發展至今,深度學習技術在工業領域也得到了廣泛的應用[21]。在半導體圖形晶圓缺陷檢測領域也有少量的相關技術研究[24],但是還不夠成熟,本文即是一種探索與研究。
在yolov3模型中,前景目標的編碼過程如下:首先計算缺陷目標與所有錨框(默認為9個)的iou值,把iou值最大的錨框判為正樣本,負責預測該目標,然后iou值小于設定閾值T(如0.5)的錨框被判為負樣本,最后若一個錨框與所有前景目標的iou值大于T而又不是最大的,則直接忽略,不參與模型最后的損失計算??紤]到實際中缺陷的大小和長寬比變化很大,且大部分缺陷尺寸中等。采用上述編碼方法會導致不同特征檢測層之間信息沖突問題,這在yolov3-asff[18]中已給出詳細說明。
針對這個問題,目前已有一些論文給出了一些解決方法[18][19],但是并沒有從源頭去處理這個問題。本文認為這個問題的根源在真實缺陷的編碼思路上,如果能夠把缺陷目標的信息盡可能地保留在所有檢測特征層上,就不存在這個信息沖突的問題。但是對于尺寸較大(或較?。┑娜毕?位于淺(深)層特征層中的錨框與該目標的iou值過小,硬性進行編碼會導致目標框回歸困難,所以需要進行一定的選擇。改進的編碼方法與yolov3基本一致,同樣地首先計算真實缺陷與所有錨框的iou值,把iou值最大的錨框判為正樣本,同時把其他特征層上與該真實缺陷iou值大于某個閾值T1的也判為正樣本,其余部分與yolov3保持一致。閾值參數T1需要通過實驗確定。
在卷積神經網絡結構設計中,注意力機制也是一個重要的組成部分。考慮到在半導體圖形晶圓缺陷檢測中有一步“回拍”操作,會使得缺陷優先出現在圖像中間區域,同時半導體圖形晶圓缺陷對顏色敏感,而CBAM[20]注意力機制中正好同時包含有空間注意力和通道注意力,所以可以嘗試在yolov3模型中引入CBAM注意力模塊。但是該注意力模塊插入的位置需要通過實驗確定。
目前常見的增強策略有鏡像、旋轉、剪切、顏色變換等[5]。yolov4[6]模型中提出mosaic數據增強,該方法把四張圖縮放后拼接為一張圖,如圖1左圖所示,可以很好地提升模型的檢測性能,尤其是對于小目標的檢測。但是在實際項目中,晶圓缺陷是尺度敏感的,直接采用mosaic數據增強會破壞這種缺陷判別特征。改進的措施如下:首先從訓練集中隨機選取四張圖,然后隨機從每張圖中截取一個一定大小的缺陷塊(patch)并把這四個缺陷塊不做任何縮放地拼接起來,拼接后的圖像如圖1右圖所示。此種數據增強方法命名為patch-mosaic4。

圖1 mosaic數據增強(左)與
考慮到半導體晶圓缺陷會優先出現在圖像中間區域,而patch-mosaic4數據增強會使得缺陷分布在圖像四周,從而在一定程度上破壞了這一先驗規則。另外,由于晶圓圖像背景復雜,在實際應用時模型時常會對一些無缺陷圖像有較多過檢,但是這些背景下的缺陷圖像收集工作一般比較麻煩,所以也需要通過數據增強的方式予以緩解。針對這個問題,本文提出patchmosaic5數據增強方式?;舅悸放cpatch-mosaic4一致,都是拼接多張圖,不同點有兩個:一是patch-mosaic5在patch-mosaic4的基礎上在圖像中間再添加一個缺陷塊,如圖2左圖所示;二是此時用于四周拼接的四張圖像是隨機從有缺陷訓練集和無缺陷數據集(當前模型過檢較多的無缺陷圖像組合成的數據集,需要在訓練前收集完畢,且數據集是動態變化的)中隨機挑選的,即這四個拼接塊中有些塊可能沒有缺陷,如圖2右圖所示,第二象限和第四象限的兩個圖像塊中沒有缺陷。這樣的設計完美地符合了本項目缺陷的特征,同時充分利用了mosaic數據增強方法的優勢。

圖2 patch-mosaic5數據增強示例
本文實驗數據集是我們在現場采集并標注好的數據,共約三萬張,大致均分為七個類別,隨機選取百分之十的數據作為驗證集,也做測試集使用。其他訓練參數,如優化器、學習率調整方法等基本遵循yolov3[7]的設置。實驗平臺是基于ubuntu20.04,2080ti顯卡。
在本節中,我們將以累加的方式展示每個策略的有效性,結果如表1所示。需要說明的是,在實際應用中最受關注的是兩個指標:模型檢測精度和推理速度。前者以m AP50衡量,而不是常用的m AP,因為實際項目中更加關注缺陷分類準確度,而不是定位準確度。后者以單張圖的推理速度衡量,其中推理時間和FPS(Frames Per Second)包含最后的非極大值抑制(Non-Maximum Suppression,NMS),且推理時間和FPS使用單塊2080ti顯卡以batch size等于1測試得到。

表1 驗證集上的對比實驗結果統計表
可以看到采用預訓練權重訓練后得到的基準yolov3模型最后精度可以達到85.63%,單張圖的推理時間約為16ms。
A→B:如上所述,優化編碼過程中涉及到一個重要的超參數T1需要通過實驗確定,且不難分析T1值過大或過小都不好。實驗中,當T1取不同值時對應的m AP50值如表2所示,最佳精度以黑體標出。可以看到T1取0.2時效果最佳,相對于基準模型精度可以提升0.98%。

表2 不同T1值對應m AP50
本文在yolov3模型的基礎上提出Sky-yolov3模型,主要是針對半導體圖形晶圓缺陷檢測場景嘗試了三個新的策略,包括優化缺陷目標的編碼過程,較好地緩解了不同檢測層之間的矛盾,然后根據項目特點在骨干網絡中引入CBAM模塊,并且對該注意力模塊插入的位置進行了實驗分析,最后在mosaic數據增強的基礎上提出了新的數據增強方法。通過使用這些改進策略,模型精度可以有效提升5.05%,同時推理速度幾乎不受影響。需要說明的是本文更多的是為了驗證以上策略的有效性,而不是追求最優性能,所以對于上述多個重要超參數并沒有進行詳細測試與優化。希望本文能夠為研究人員和工程人員提供一個模型優化的思路。下一步工作將繼續探索更多更好的策略,并用到實際項目中以獲得更好的檢測性能。
B→C:這一步考慮模型在B的基礎上引入注意力機制,重點考察注意力機制插入的位置。實驗中發現,在骨干網絡的每一個殘差塊末尾插入CBAM模塊后模型表現出一定的過擬合現象,驗證集精度降低到85.57%,考慮是因為模型中添加太多CBAM模塊而引入太多模型參數。鑒于此,實驗中嘗試在骨干網絡最后一個stage的每個殘差塊中插入CBAM模塊,結果發現依然有輕微的過擬合。受[23]啟發,本文將CBAM模塊接在骨干網絡最后的輸出特征層上。進一步地,本文在原始CBAM模塊處理的基礎上添加一個跨層連接,如圖3所示,進一步提升模型性能。實驗發現,使用圖3所示插入方式模型精度可以提升1.23%,且推理速度幾乎不受影響。

圖3 改進的CBAM模塊圖
C→D:考慮在模型C的基礎上添加上述數據增強方法。新的數據增強方法包含原始數據增強方法和patch-mosaic5。模型訓練時,訓練數據集先經過原始數據增強方法進行圖像變換,然后按一定概率執行patch-mosaic5。需要注意的是原始的數據增強方法中不包含大尺度的縮放變換和較大的色度變換,因為晶圓缺陷對縮放和顏色敏感。采用上述數據增強方法能帶來較大的性能提升,約2.83%。
本文在yolov3模型的基礎上提出Sky-yolov3模型,主要是針對半導體圖形晶圓缺陷檢測場景嘗試了三個新的策略,包括優化缺陷目標的編碼過程,較好地緩解了不同檢測層之間的矛盾,然后根據項目特點在骨干網絡中引入CBAM模塊,并且對該注意力模塊插入的位置進行了實驗分析,最后在mosaic數據增強的基礎上提出了新的數據增強方法。通過使用這些改進策略,模型精度可以有效提升5.05%,同時推理速度幾乎不受影響。需要說明的是本文更多的是為了驗證以上策略的有效性,而不是追求最優性能,所以對于上述多個重要超參數并沒有進行詳細測試與優化。希望本文能夠為研究人員和工程人員提供一個模型優化的思路。下一步工作將繼續探索更多更好的策略,并用到實際項目中以獲得更好的檢測性能。