肖安七 呂 肅 張 嵩 李成敏
深圳中科飛測(cè)科技股份有限公司 廣東 深圳 518110
近年來(lái),隨著GPU等硬件和公開數(shù)據(jù)集[1]的快速發(fā)展與完善,以及越來(lái)越多的研究人員加入這個(gè)領(lǐng)域,目標(biāo)檢測(cè)已然成為計(jì)算機(jī)視覺(jué)領(lǐng)域最熱門的方向之一。大量性能優(yōu)異的目標(biāo)檢測(cè)模型被相繼提出,并在實(shí)際的工程領(lǐng)域中得到驗(yàn)證。
大體來(lái)說(shuō),近年所提出的目標(biāo)檢測(cè)模型還是以基于錨框(anchor based)的模型為主。此類模型主要分為兩類:一類是以faster-rcnn[2]為代表的二階段(two stage)模型,另一類是以yolov3[5]為代表的一階段(one stage)模型。一般而言,二階段模型精調(diào)后的精度往往比一階段模型要好,但是模型訓(xùn)練和推理速度遠(yuǎn)不及一階段模型,而實(shí)際工程領(lǐng)域?qū)λ惴▽?shí)時(shí)性有較高的要求,所以以yolov3[5]為代表的一階段模型被廣泛采用。但是直接采用這些模型應(yīng)用于具體的半導(dǎo)體檢測(cè)項(xiàng)目往往不能得到最佳的檢測(cè)效果,原因主要有以下兩點(diǎn):一是數(shù)據(jù)集的差異。以ImageNet[1]為代表的公開數(shù)據(jù)集以自然圖像為基礎(chǔ),在目標(biāo)特征和圖像紋理上與產(chǎn)業(yè)界的情況相差較大。二是關(guān)注的評(píng)價(jià)指標(biāo)不一致。論文中一般考察模型m AP(mean Average Precision)值,而在實(shí)際中更加關(guān)注缺陷的召回率,且對(duì)目標(biāo)框回歸的精度要求明顯弱于分類精度。另外,在晶圓缺陷檢測(cè)場(chǎng)景中,“回拍”操作會(huì)使得缺陷優(yōu)先出現(xiàn)在圖像中間區(qū)域。此類重要的先驗(yàn)知識(shí)可以引入模型設(shè)計(jì)中,進(jìn)一步提高模型的性能。
鑒于以上分析,本文選擇在yolov3模型的基礎(chǔ)上進(jìn)行針對(duì)性修改和優(yōu)化。主要包含以下三個(gè)方面:一是優(yōu)化真實(shí)缺陷(groud truth)的編碼過(guò)程,二是在骨干網(wǎng)絡(luò)(backbone network)中加入注意力模塊,三是加入新的數(shù)據(jù)增強(qiáng)方法。
自2012年Alexnet[7]網(wǎng)絡(luò)模型被提出后,以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)便開始了研究熱潮,全世界研究者相繼提出VGG[8]、Googlenet[9]、Resnet[10]、Densenet[11]等 經(jīng) 典 分 類 網(wǎng) 絡(luò)。與此同時(shí),以分類網(wǎng)絡(luò)為基礎(chǔ)的目標(biāo)檢測(cè)網(wǎng)絡(luò)也得到了空前的發(fā)展,從2014年提出的二階段的RCNN模型[12],到以yolov3[5]為代表的一階段模型,目標(biāo)檢測(cè)模型性能越來(lái)越好。
發(fā)展至今,深度學(xué)習(xí)技術(shù)在工業(yè)領(lǐng)域也得到了廣泛的應(yīng)用[21]。在半導(dǎo)體圖形晶圓缺陷檢測(cè)領(lǐng)域也有少量的相關(guān)技術(shù)研究[24],但是還不夠成熟,本文即是一種探索與研究。
在yolov3模型中,前景目標(biāo)的編碼過(guò)程如下:首先計(jì)算缺陷目標(biāo)與所有錨框(默認(rèn)為9個(gè))的iou值,把iou值最大的錨框判為正樣本,負(fù)責(zé)預(yù)測(cè)該目標(biāo),然后iou值小于設(shè)定閾值T(如0.5)的錨框被判為負(fù)樣本,最后若一個(gè)錨框與所有前景目標(biāo)的iou值大于T而又不是最大的,則直接忽略,不參與模型最后的損失計(jì)算。考慮到實(shí)際中缺陷的大小和長(zhǎng)寬比變化很大,且大部分缺陷尺寸中等。采用上述編碼方法會(huì)導(dǎo)致不同特征檢測(cè)層之間信息沖突問(wèn)題,這在yolov3-asff[18]中已給出詳細(xì)說(shuō)明。
針對(duì)這個(gè)問(wèn)題,目前已有一些論文給出了一些解決方法[18][19],但是并沒(méi)有從源頭去處理這個(gè)問(wèn)題。本文認(rèn)為這個(gè)問(wèn)題的根源在真實(shí)缺陷的編碼思路上,如果能夠把缺陷目標(biāo)的信息盡可能地保留在所有檢測(cè)特征層上,就不存在這個(gè)信息沖突的問(wèn)題。但是對(duì)于尺寸較大(或較?。┑娜毕?位于淺(深)層特征層中的錨框與該目標(biāo)的iou值過(guò)小,硬性進(jìn)行編碼會(huì)導(dǎo)致目標(biāo)框回歸困難,所以需要進(jìn)行一定的選擇。改進(jìn)的編碼方法與yolov3基本一致,同樣地首先計(jì)算真實(shí)缺陷與所有錨框的iou值,把iou值最大的錨框判為正樣本,同時(shí)把其他特征層上與該真實(shí)缺陷iou值大于某個(gè)閾值T1的也判為正樣本,其余部分與yolov3保持一致。閾值參數(shù)T1需要通過(guò)實(shí)驗(yàn)確定。
在卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中,注意力機(jī)制也是一個(gè)重要的組成部分??紤]到在半導(dǎo)體圖形晶圓缺陷檢測(cè)中有一步“回拍”操作,會(huì)使得缺陷優(yōu)先出現(xiàn)在圖像中間區(qū)域,同時(shí)半導(dǎo)體圖形晶圓缺陷對(duì)顏色敏感,而CBAM[20]注意力機(jī)制中正好同時(shí)包含有空間注意力和通道注意力,所以可以嘗試在yolov3模型中引入CBAM注意力模塊。但是該注意力模塊插入的位置需要通過(guò)實(shí)驗(yàn)確定。
目前常見的增強(qiáng)策略有鏡像、旋轉(zhuǎn)、剪切、顏色變換等[5]。yolov4[6]模型中提出mosaic數(shù)據(jù)增強(qiáng),該方法把四張圖縮放后拼接為一張圖,如圖1左圖所示,可以很好地提升模型的檢測(cè)性能,尤其是對(duì)于小目標(biāo)的檢測(cè)。但是在實(shí)際項(xiàng)目中,晶圓缺陷是尺度敏感的,直接采用mosaic數(shù)據(jù)增強(qiáng)會(huì)破壞這種缺陷判別特征。改進(jìn)的措施如下:首先從訓(xùn)練集中隨機(jī)選取四張圖,然后隨機(jī)從每張圖中截取一個(gè)一定大小的缺陷塊(patch)并把這四個(gè)缺陷塊不做任何縮放地拼接起來(lái),拼接后的圖像如圖1右圖所示。此種數(shù)據(jù)增強(qiáng)方法命名為patch-mosaic4。
圖1 mosaic數(shù)據(jù)增強(qiáng)(左)與
考慮到半導(dǎo)體晶圓缺陷會(huì)優(yōu)先出現(xiàn)在圖像中間區(qū)域,而patch-mosaic4數(shù)據(jù)增強(qiáng)會(huì)使得缺陷分布在圖像四周,從而在一定程度上破壞了這一先驗(yàn)規(guī)則。另外,由于晶圓圖像背景復(fù)雜,在實(shí)際應(yīng)用時(shí)模型時(shí)常會(huì)對(duì)一些無(wú)缺陷圖像有較多過(guò)檢,但是這些背景下的缺陷圖像收集工作一般比較麻煩,所以也需要通過(guò)數(shù)據(jù)增強(qiáng)的方式予以緩解。針對(duì)這個(gè)問(wèn)題,本文提出patchmosaic5數(shù)據(jù)增強(qiáng)方式?;舅悸放cpatch-mosaic4一致,都是拼接多張圖,不同點(diǎn)有兩個(gè):一是patch-mosaic5在patch-mosaic4的基礎(chǔ)上在圖像中間再添加一個(gè)缺陷塊,如圖2左圖所示;二是此時(shí)用于四周拼接的四張圖像是隨機(jī)從有缺陷訓(xùn)練集和無(wú)缺陷數(shù)據(jù)集(當(dāng)前模型過(guò)檢較多的無(wú)缺陷圖像組合成的數(shù)據(jù)集,需要在訓(xùn)練前收集完畢,且數(shù)據(jù)集是動(dòng)態(tài)變化的)中隨機(jī)挑選的,即這四個(gè)拼接塊中有些塊可能沒(méi)有缺陷,如圖2右圖所示,第二象限和第四象限的兩個(gè)圖像塊中沒(méi)有缺陷。這樣的設(shè)計(jì)完美地符合了本項(xiàng)目缺陷的特征,同時(shí)充分利用了mosaic數(shù)據(jù)增強(qiáng)方法的優(yōu)勢(shì)。
圖2 patch-mosaic5數(shù)據(jù)增強(qiáng)示例
本文實(shí)驗(yàn)數(shù)據(jù)集是我們?cè)诂F(xiàn)場(chǎng)采集并標(biāo)注好的數(shù)據(jù),共約三萬(wàn)張,大致均分為七個(gè)類別,隨機(jī)選取百分之十的數(shù)據(jù)作為驗(yàn)證集,也做測(cè)試集使用。其他訓(xùn)練參數(shù),如優(yōu)化器、學(xué)習(xí)率調(diào)整方法等基本遵循yolov3[7]的設(shè)置。實(shí)驗(yàn)平臺(tái)是基于ubuntu20.04,2080ti顯卡。
在本節(jié)中,我們將以累加的方式展示每個(gè)策略的有效性,結(jié)果如表1所示。需要說(shuō)明的是,在實(shí)際應(yīng)用中最受關(guān)注的是兩個(gè)指標(biāo):模型檢測(cè)精度和推理速度。前者以m AP50衡量,而不是常用的m AP,因?yàn)閷?shí)際項(xiàng)目中更加關(guān)注缺陷分類準(zhǔn)確度,而不是定位準(zhǔn)確度。后者以單張圖的推理速度衡量,其中推理時(shí)間和FPS(Frames Per Second)包含最后的非極大值抑制(Non-Maximum Suppression,NMS),且推理時(shí)間和FPS使用單塊2080ti顯卡以batch size等于1測(cè)試得到。
表1 驗(yàn)證集上的對(duì)比實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)表
可以看到采用預(yù)訓(xùn)練權(quán)重訓(xùn)練后得到的基準(zhǔn)yolov3模型最后精度可以達(dá)到85.63%,單張圖的推理時(shí)間約為16ms。
A→B:如上所述,優(yōu)化編碼過(guò)程中涉及到一個(gè)重要的超參數(shù)T1需要通過(guò)實(shí)驗(yàn)確定,且不難分析T1值過(guò)大或過(guò)小都不好。實(shí)驗(yàn)中,當(dāng)T1取不同值時(shí)對(duì)應(yīng)的m AP50值如表2所示,最佳精度以黑體標(biāo)出。可以看到T1取0.2時(shí)效果最佳,相對(duì)于基準(zhǔn)模型精度可以提升0.98%。
表2 不同T1值對(duì)應(yīng)m AP50
本文在yolov3模型的基礎(chǔ)上提出Sky-yolov3模型,主要是針對(duì)半導(dǎo)體圖形晶圓缺陷檢測(cè)場(chǎng)景嘗試了三個(gè)新的策略,包括優(yōu)化缺陷目標(biāo)的編碼過(guò)程,較好地緩解了不同檢測(cè)層之間的矛盾,然后根據(jù)項(xiàng)目特點(diǎn)在骨干網(wǎng)絡(luò)中引入CBAM模塊,并且對(duì)該注意力模塊插入的位置進(jìn)行了實(shí)驗(yàn)分析,最后在mosaic數(shù)據(jù)增強(qiáng)的基礎(chǔ)上提出了新的數(shù)據(jù)增強(qiáng)方法。通過(guò)使用這些改進(jìn)策略,模型精度可以有效提升5.05%,同時(shí)推理速度幾乎不受影響。需要說(shuō)明的是本文更多的是為了驗(yàn)證以上策略的有效性,而不是追求最優(yōu)性能,所以對(duì)于上述多個(gè)重要超參數(shù)并沒(méi)有進(jìn)行詳細(xì)測(cè)試與優(yōu)化。希望本文能夠?yàn)檠芯咳藛T和工程人員提供一個(gè)模型優(yōu)化的思路。下一步工作將繼續(xù)探索更多更好的策略,并用到實(shí)際項(xiàng)目中以獲得更好的檢測(cè)性能。
B→C:這一步考慮模型在B的基礎(chǔ)上引入注意力機(jī)制,重點(diǎn)考察注意力機(jī)制插入的位置。實(shí)驗(yàn)中發(fā)現(xiàn),在骨干網(wǎng)絡(luò)的每一個(gè)殘差塊末尾插入CBAM模塊后模型表現(xiàn)出一定的過(guò)擬合現(xiàn)象,驗(yàn)證集精度降低到85.57%,考慮是因?yàn)槟P椭刑砑犹郈BAM模塊而引入太多模型參數(shù)。鑒于此,實(shí)驗(yàn)中嘗試在骨干網(wǎng)絡(luò)最后一個(gè)stage的每個(gè)殘差塊中插入CBAM模塊,結(jié)果發(fā)現(xiàn)依然有輕微的過(guò)擬合。受[23]啟發(fā),本文將CBAM模塊接在骨干網(wǎng)絡(luò)最后的輸出特征層上。進(jìn)一步地,本文在原始CBAM模塊處理的基礎(chǔ)上添加一個(gè)跨層連接,如圖3所示,進(jìn)一步提升模型性能。實(shí)驗(yàn)發(fā)現(xiàn),使用圖3所示插入方式模型精度可以提升1.23%,且推理速度幾乎不受影響。
圖3 改進(jìn)的CBAM模塊圖
C→D:考慮在模型C的基礎(chǔ)上添加上述數(shù)據(jù)增強(qiáng)方法。新的數(shù)據(jù)增強(qiáng)方法包含原始數(shù)據(jù)增強(qiáng)方法和patch-mosaic5。模型訓(xùn)練時(shí),訓(xùn)練數(shù)據(jù)集先經(jīng)過(guò)原始數(shù)據(jù)增強(qiáng)方法進(jìn)行圖像變換,然后按一定概率執(zhí)行patch-mosaic5。需要注意的是原始的數(shù)據(jù)增強(qiáng)方法中不包含大尺度的縮放變換和較大的色度變換,因?yàn)榫A缺陷對(duì)縮放和顏色敏感。采用上述數(shù)據(jù)增強(qiáng)方法能帶來(lái)較大的性能提升,約2.83%。
本文在yolov3模型的基礎(chǔ)上提出Sky-yolov3模型,主要是針對(duì)半導(dǎo)體圖形晶圓缺陷檢測(cè)場(chǎng)景嘗試了三個(gè)新的策略,包括優(yōu)化缺陷目標(biāo)的編碼過(guò)程,較好地緩解了不同檢測(cè)層之間的矛盾,然后根據(jù)項(xiàng)目特點(diǎn)在骨干網(wǎng)絡(luò)中引入CBAM模塊,并且對(duì)該注意力模塊插入的位置進(jìn)行了實(shí)驗(yàn)分析,最后在mosaic數(shù)據(jù)增強(qiáng)的基礎(chǔ)上提出了新的數(shù)據(jù)增強(qiáng)方法。通過(guò)使用這些改進(jìn)策略,模型精度可以有效提升5.05%,同時(shí)推理速度幾乎不受影響。需要說(shuō)明的是本文更多的是為了驗(yàn)證以上策略的有效性,而不是追求最優(yōu)性能,所以對(duì)于上述多個(gè)重要超參數(shù)并沒(méi)有進(jìn)行詳細(xì)測(cè)試與優(yōu)化。希望本文能夠?yàn)檠芯咳藛T和工程人員提供一個(gè)模型優(yōu)化的思路。下一步工作將繼續(xù)探索更多更好的策略,并用到實(shí)際項(xiàng)目中以獲得更好的檢測(cè)性能。