夏 衍, 羅 晨*, 周怡君, 賈 磊
(1. 東南大學(xué) 機(jī)械工程學(xué)院,江蘇 南京 211189;2. 無(wú)錫尚實(shí)電子科技有限公司,江蘇 無(wú)錫 214174)
伴隨5G 技術(shù)的出現(xiàn),萬(wàn)物互聯(lián)的發(fā)展趨勢(shì)愈加明顯,信息交互的增加進(jìn)一步突出了智能顯示的重要性,而作為智能顯示的載體,顯示面板行業(yè)也得到了極為迅速地發(fā)展,其中薄膜晶體管液晶顯示器(Thin Film Transistor Liquid Crystal Display,TFT-LCD)充分滿足了人們對(duì)于液晶顯示面板性能、分辨率、價(jià)格等多方面的要求,逐漸成為了市場(chǎng)上的主流屏幕。
整個(gè)TFT-LCD 面板制作過(guò)程極為復(fù)雜,其中不同工藝所產(chǎn)生的問(wèn)題會(huì)在圖像掃描的成像端上表現(xiàn)為各種形態(tài)不一的缺陷,而通過(guò)對(duì)這些缺陷進(jìn)行是否為缺陷以及是何種缺陷的判定,可以幫助快速定位到導(dǎo)致缺陷產(chǎn)生的工藝,進(jìn)而針對(duì)性地調(diào)整和改進(jìn)工藝,因此TFT-LCD 面板缺陷的準(zhǔn)確快速分類對(duì)于整體生產(chǎn)過(guò)程具有重要意義。
隨著液晶顯示器內(nèi)部結(jié)構(gòu)更加精細(xì),TFTLCD 缺陷逐漸缺乏固定的表現(xiàn)形式,不同種類的缺陷之間特征區(qū)別不明顯,導(dǎo)致缺陷分類難度大大增加。同時(shí),缺陷產(chǎn)生的位置也對(duì)缺陷分類產(chǎn)生了新的要求,由于不在線路區(qū)域的缺陷并不影響產(chǎn)品的正常使用,因此這類情況下即便存在缺陷也依然需要被判定為正常。此外,除了對(duì)分類準(zhǔn)確率的高要求,分類算法還需要兼顧好對(duì)生產(chǎn)節(jié)拍時(shí)間的高要求。
目前TFT-LCD 面板缺陷的分類算法主要為基于自動(dòng)光學(xué)檢測(cè)的傳統(tǒng)方法,分為特征提取和分類器識(shí)別兩階段。特征提取能夠幫助研究對(duì)象從圖像矩陣格式轉(zhuǎn)換為特征向量格式輸入后續(xù)的分類器中,這些提取的特征剔除很多冗余信息后,顯著提升了分類器的訓(xùn)練速度和精度。一般常用的特征提取方法包括灰度共生矩陣[1]、梯度方向直方圖[2]和二值連通區(qū)域標(biāo)記[3]等。分類器識(shí)別主要是將上一階段提取到的缺陷特征輸入以支持向量機(jī)[4](Support Vector Machine,SVM)為主的各類分類器中完成缺陷分類。Kang 等[5]定義并提取了24 個(gè)LCD 缺陷的關(guān)鍵特征,輸入SVM 后完成了對(duì)LCD 生產(chǎn)流程中缺陷的分類。Huang 等[6]提出了一種基于視覺詞袋模型的TFT-LCD 缺陷分類算法,引入顏色和SIFT(Scale-Invariant Feature Transform)特征描述缺陷區(qū)域后,利用基于多核卡方核函數(shù)的SVM 獲得了效果最佳的分類器。Kong 等[7]使用帶通濾波器和Sobel 邊緣檢測(cè)算子對(duì)圖像增強(qiáng)后獲得了更為明顯的缺陷特征,利用這些特征訓(xùn)練的SVM 分類器完成了對(duì)TFT-LCD 水漬缺陷的分類。但上述方法極為依賴人為選取的特征,因此對(duì)場(chǎng)景的變化比較敏感,缺乏對(duì)復(fù)雜背景下缺陷的分類能力。
近年來(lái)深度學(xué)習(xí)的快速發(fā)展為缺陷分類任務(wù)提供了新的思路[8],如弱監(jiān)督學(xué)習(xí)[9]、少樣本學(xué)習(xí)[10]和抽象學(xué)習(xí)[11]等。Wen 等[12]對(duì)于鋼材表面缺陷提出了一種集成不同深度卷積神經(jīng)網(wǎng)絡(luò)的缺陷分類方法,通過(guò)數(shù)據(jù)增強(qiáng)分別訓(xùn)練三個(gè)不同的深度卷積神經(jīng)網(wǎng)絡(luò)以減少過(guò)擬合后,再將三個(gè)訓(xùn)練好的模型融合以提高分類準(zhǔn)確性和魯棒性。Fu等[13]采用預(yù)訓(xùn)練的SqueezeNet 作為骨干網(wǎng)絡(luò),在只需要少量特定于缺陷的訓(xùn)練樣本情況下,完成了鋼材表面各類缺陷的高精度識(shí)別。Ihor 等[14]基于ResNet50 網(wǎng)絡(luò)結(jié)構(gòu),結(jié)合注意力損失函數(shù),實(shí)現(xiàn)了金屬表面缺陷的多標(biāo)簽分類。He 等[15]引入多尺度感受野提取多尺度特征,并利用自動(dòng)編碼器降低多尺度特征維度,進(jìn)而提高了模型在訓(xùn)練樣本不足下的特征表達(dá)和泛化能力,最終實(shí)現(xiàn)了對(duì)熱軋鋼板表面缺陷的準(zhǔn)確分類。Haselmanm等[16]利用人工合成缺陷構(gòu)建了更為準(zhǔn)確的缺陷數(shù)據(jù)集,根據(jù)數(shù)據(jù)集訓(xùn)練好的深度卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了塑料制品表面真實(shí)缺陷的準(zhǔn)確分類。
盡管深度學(xué)習(xí)方法大大提高了對(duì)各類缺陷的分類能力,但其對(duì)于具有復(fù)雜紋理和模糊邊界等特點(diǎn)的缺陷仍難以精確區(qū)分。同時(shí),考慮到工業(yè)檢測(cè)的實(shí)時(shí)性要求,深度學(xué)習(xí)模型還應(yīng)當(dāng)保證輕量化。因此,本文在高精度網(wǎng)絡(luò) Swin Transformer 基礎(chǔ)上提出輕量化改進(jìn),在損失較小精度的情況下完成了最大化的速度提升,最終獲得了具有92.7%精度和每秒檢測(cè)60.43 張圖像速度的適用于工業(yè)生產(chǎn)的深度學(xué)習(xí)模型。本文的改進(jìn)工作如下:
(1) 引入標(biāo)記向量融合模塊,通過(guò)融合相似的標(biāo)記向量以減少每一層送入神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù),從而完成對(duì)模型的輕量化操作;
(2) 插入深度可分離卷積模塊以幫助模型增加卷積歸納偏置,進(jìn)而緩解模型中Transformer架構(gòu)對(duì)訓(xùn)練數(shù)據(jù)的巨大需求并提高分類準(zhǔn)確率;
(3) 通過(guò)知識(shí)蒸餾策略將改進(jìn)模型作為學(xué)生模型,從而保證模型輕量化的同時(shí)進(jìn)一步提升模型的分類準(zhǔn)確性。
Swin Transformer 算法[17]由微軟研究院在2021年的ICCV 會(huì)議上提出,其在Vision Transformer(ViT)模型[18]的基礎(chǔ)上,引入類似卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的層次化構(gòu)建方法,通過(guò)對(duì)特征圖的下采樣實(shí)現(xiàn)了多尺度的檢測(cè)能力。同時(shí),模型使用窗口多頭自注意力(Windows Multi-Head Self-Attention, WMSA)機(jī)制以減少計(jì)算量,并使用移動(dòng)窗口多頭自注意力(Shifted Windows Multi-Head Self-Attention, SW-MSA)機(jī)制解決W-MSA 導(dǎo)致的窗口間信息傳遞隔絕問(wèn)題。具體參數(shù)量最少的Swin Transformer Tiny(Swin-T)模型網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。由圖可知,整個(gè)Swin Transformer模型傳播過(guò)程主要分為三個(gè)步驟:
圖1 Swin-T 網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.1 Architecture of Swin-T model
(1)首先輸入圖片在圖像塊分割(Patch Partition)層進(jìn)行分塊,其中每4×4 相鄰像素為一個(gè)圖像塊(Patch)并沿通道方向展平為標(biāo)記向量(Token),然后在線性嵌入層(Linear Embedding)對(duì)通道進(jìn)行線性變換;
(2)利用四個(gè)階段構(gòu)建不同大小特征圖,其中后三個(gè)階段中首先使用圖像塊融合(Patch Merging)進(jìn)行下采樣,然后重復(fù)堆疊Swin Transformer Block 模塊。值得注意的是,Block 模塊中包含了圖2 顯示的兩種結(jié)構(gòu),前者使用W-MSA機(jī)制而后者使用SW-MSA 機(jī)制,兩種結(jié)構(gòu)成對(duì)使用,因此堆疊的Block 次數(shù)都為偶數(shù);
圖2 Swin Transformer Block 示意圖Fig.2 Architecture of Swin Transformer Block
(3)最后接上歸一化(Layer Normalization,LN)層、全局池化層和全連接層完成圖像分類任務(wù)。
Swin Transformer 目前在圖像分類、目標(biāo)檢測(cè)和圖像分割等視覺任務(wù)上均表現(xiàn)出優(yōu)異的性能,但受限于其較大的計(jì)算開銷,仍需要在保證精度的情況下完成模型輕量化才能更好地應(yīng)用于工業(yè)領(lǐng)域。
針對(duì)TFT-LCD 面板缺陷分類對(duì)速度和精度的高要求,本文在保證Swin Transformer 精度的基礎(chǔ)上進(jìn)行了輕量化改進(jìn),具體改進(jìn)部分在圖2 中以顏色標(biāo)出。首先,在每個(gè)Swin Transformer Block 內(nèi)的SW-MSA 和多層感知器(Multi-Layer Perception, MLP)之間插入Token 融合(Token Merging, TM)模塊[19],從而完成對(duì)特征圖數(shù)據(jù)和模型計(jì)算量的減少;然后,針對(duì)Transformer 架構(gòu)依賴巨大數(shù)據(jù)量的問(wèn)題,在多層感知器中引入深度可分離卷積(Depthwise Separable Convolution, DW)模塊[20],幫助模型獲得卷積歸納偏置以適應(yīng)較小的數(shù)據(jù)量;最后將訓(xùn)練好的Swin Transformer Base(Swin-B)大模型作為教師模型,改進(jìn)后的輕量模型作為學(xué)生模型,通過(guò)知識(shí)蒸餾策略[21]在不改變模型參數(shù)量的情況下提高改進(jìn)模型的分類精度。
輸入圖片被劃分為眾多圖像塊并展平為標(biāo)記向量后,自注意力機(jī)制將計(jì)算每一個(gè)標(biāo)記向量和其他所有標(biāo)記向量之間的關(guān)系,因此模型復(fù)雜度和輸入標(biāo)記向量數(shù)量的平方成正比,而這種關(guān)系限制了Transformer 架構(gòu)對(duì)高分辨率圖像的處理能力。從標(biāo)記向量維度出發(fā),目前一種常用的降低Transformer 架構(gòu)模型計(jì)算復(fù)雜度的方法是對(duì)標(biāo)記向量進(jìn)行剪枝,剪枝可以一定程度上保證精度并減少計(jì)算量,但也存在著極大的局限性:一方面剪枝需要引入額外的神經(jīng)網(wǎng)絡(luò)來(lái)計(jì)算每個(gè)標(biāo)記向量的得分,進(jìn)而判斷哪些標(biāo)記向量應(yīng)當(dāng)予以保留;另一方面剪枝可能造成重要信息的損失,因此需要確定好適當(dāng)?shù)募糁Ρ嚷??;谏鲜龇治?,相較于標(biāo)記向量剪枝,選擇引入無(wú)需訓(xùn)練并可以即插即用的Token 融合模塊對(duì)Swin Transformer 進(jìn)行輕量化操作。
考慮到自注意力機(jī)制通過(guò)對(duì)每個(gè)標(biāo)記向量提取查詢(Query,Q)、鍵(Key,K)和值(Value,V)矩陣來(lái)完成對(duì)注意力權(quán)重的計(jì)算,其中鍵矩陣在轉(zhuǎn)置后和查詢矩陣進(jìn)行點(diǎn)積以獲得向量之間的相關(guān)性,其實(shí)質(zhì)上已經(jīng)包含了每個(gè)標(biāo)記向量的信息,因此使用鍵矩陣均值的余弦距離來(lái)作為衡量標(biāo)記向量之間相似度的標(biāo)準(zhǔn)。如圖3 所示,將Token融合模塊插入在SW-MSA 和MLP 之間,一方面利用SW-MSA 模塊的自注意力計(jì)算來(lái)獲得標(biāo)記向量之間的相似性結(jié)果,另一方面保證融合后的標(biāo)記向量可以被MLP 繼續(xù)傳播。具體的Token融合模塊中使用了二分軟匹配算法(Bipartite Soft Matching)來(lái)快速匹配相似的標(biāo)記向量,進(jìn)而實(shí)現(xiàn)精確減少r個(gè)標(biāo)記向量,具體方法步驟如下:
圖3 Token 融合模塊示意圖Fig.3 Token merging module
(1)將輸入到模塊內(nèi)的所有標(biāo)記向量均分為集合A 和集合B;
(2)對(duì)集合A 中的每個(gè)標(biāo)記向量,在集合B中找到和其最相似的標(biāo)記向量并連線;
(3)保留所有連線中最相似的r條予以保留;
(4)對(duì)于仍然相連的標(biāo)記向量取均值進(jìn)行融合;
(5)最終輸出上述集合的并集。
需要注意的是,由于融合后的標(biāo)記向量包含了多個(gè)標(biāo)記向量的信息,所以其所占的注意力權(quán)重也應(yīng)當(dāng)更大,因此在原注意力計(jì)算的公式內(nèi)加入包含每個(gè)標(biāo)記向量尺寸的行向量s來(lái)幫助調(diào)整,計(jì)算公式如式(1)所示:
其中:Q為查詢矩陣,K為鍵矩陣,dk為鍵的向量長(zhǎng)度,取其平方根主要為了解耦點(diǎn)積結(jié)果方差與向量長(zhǎng)度之間的關(guān)系,進(jìn)而避免訓(xùn)練過(guò)程中梯度的消失。
考慮到Swin Tansformer 模型的多層次網(wǎng)絡(luò)設(shè)計(jì),Token 融合模塊中r值需要根據(jù)每一層的特征圖大小進(jìn)行動(dòng)態(tài)調(diào)整。假設(shè)輸入特征圖寬高為H×W,如果將該特征圖的寬高都減少2n(取偶數(shù)以保證后續(xù)下采樣的進(jìn)行),則該層需要保留的標(biāo)記向量數(shù)量應(yīng)為:
同時(shí),下一層圖像塊融合時(shí)的輸入也應(yīng)當(dāng)同步調(diào)整為(H-2n)×(W-2n)。具體的Token融合操作如下:
(1) 自注意力機(jī)制模塊中除了輸出注意力矩陣外,同時(shí)輸出對(duì)應(yīng)的鍵矩陣均值;
(2) 判斷是否為一個(gè)階段內(nèi)的最后一次SW-MSA 計(jì)算,如果是,則對(duì)上述輸出的鍵矩陣均值進(jìn)行維度和通道數(shù)的變換,從而符合后續(xù)Token 融合的輸入要求;
(3) 確定對(duì)每個(gè)階段輸出的特征圖寬高的減少值,從而計(jì)算出對(duì)應(yīng)的每個(gè)階段經(jīng)過(guò)Token 融合后保留的標(biāo)記向量數(shù)量(r);
(4) 利用鍵矩陣均值和二分軟匹配算法對(duì)相似的標(biāo)記向量進(jìn)行融合,最終只保留設(shè)定的r個(gè)標(biāo)記向量;
(5) 修改下一階段下采樣時(shí)的特征圖寬高大小。
經(jīng)過(guò)Token 融合后的每一階段輸出的特征圖都有所減小,減小后的特征圖在進(jìn)入下一階段后即可有效降低下一階段的計(jì)算量,最終完成模型輕量化。
此外,為了進(jìn)一步顯示Token 融合的效果,對(duì)Token 融合過(guò)程進(jìn)行了可視化分析,如圖4 所示,相同背景塊對(duì)應(yīng)的標(biāo)記向量得以融合,而不同背景塊則不會(huì)進(jìn)行融合,因此融合后的標(biāo)記向量并不會(huì)對(duì)缺陷目標(biāo)的識(shí)別造成過(guò)多的干擾。
除了計(jì)算的巨大開銷外,Transformer 架構(gòu)模型往往還需要在超大數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練才能達(dá)到超越CNN 的效果,而造成這種對(duì)訓(xùn)練數(shù)據(jù)巨大需求的原因在于其缺乏類似于CNN 的歸納偏置。這些符合視覺任務(wù)屬性的歸納偏置能夠幫助CNN 在較小的數(shù)據(jù)集上也能取得較好的檢測(cè)效果,而Transformer 架構(gòu)的自注意力機(jī)制處理圖像時(shí)考慮的是全局感受野,因此其雖然有效建模了全局信息但也損失了先驗(yàn)知識(shí),進(jìn)而需要大量數(shù)據(jù)進(jìn)行學(xué)習(xí)?;谝陨戏治?,在Swin Tranformer 模型中加入了卷積操作以引入一定的歸納偏置和提升分類準(zhǔn)確率,同時(shí)考慮到輕量化要求,加入的卷積為深度可分離卷積。
深度可分離卷積主要由逐通道卷積和逐點(diǎn)卷積組成:逐通道卷積中一個(gè)卷積核只負(fù)責(zé)一個(gè)通道,因此最終的輸出通道數(shù)和輸入通道數(shù)完全相同;逐點(diǎn)卷積即為1×1 卷積,其在遍歷輸入特征圖每個(gè)位置的基礎(chǔ)上在通道方向進(jìn)行了加權(quán)組合,從而融合通道信息生成新的特征圖,完成對(duì)特征圖維度的改變。如圖5 所示,常規(guī)卷積的參數(shù)量(Params)為108,浮點(diǎn)數(shù)計(jì)算量(FLOPs)為2 700,逐通道卷積卷積的參數(shù)量為27,計(jì)算量為675,逐點(diǎn)卷積的參數(shù)量為12,計(jì)算量為300。因此,深度可分離卷積的整體參數(shù)量為27+12=39,整體計(jì)算量為675+300=975,與常規(guī)卷積108的參數(shù)量和2 700的計(jì)算量相比,減少了約2/3。因此,對(duì)于同樣的輸入和輸出,深度可分離卷積更加滿足輕量化要求。
圖5 常規(guī)卷積和深度可分離卷積示意圖Fig.5 Conventional convolution and depthwise separable convolution
為了加入深度可分離卷積模塊,首先將Swin Transformer 模型MLP 模塊的輸入數(shù)據(jù)由展平的一維序列調(diào)整為二維的特征圖格式,然后依次經(jīng)過(guò)1×1 卷積(特征圖維度升降)、GELU 激活函數(shù)和Dropout 操作,接著加入深度可分離卷積來(lái)幫助模型引入歸納偏置,最后再經(jīng)過(guò)1×1 卷積和Dropout 操作得到輸出并調(diào)整回一維序列格式。
知識(shí)蒸餾(Knowledge Distillation, KD)作為一種常用的模型壓縮方法,其主要利用從具有良好性能的大模型中學(xué)到的知識(shí)來(lái)指導(dǎo)訓(xùn)練小模型,從而幫助小模型在參數(shù)量大幅減少的同時(shí)保證和大模型相當(dāng)?shù)男阅?,最終實(shí)現(xiàn)模型的壓縮。知識(shí)蒸餾方法首先訓(xùn)練一個(gè)復(fù)雜大模型,然后將該復(fù)雜模型的輸出與數(shù)據(jù)真實(shí)標(biāo)簽相結(jié)合去訓(xùn)練新的輕量小模型,其中復(fù)雜大模型也被稱為教師模型(Teacher),輕量小模型被稱為學(xué)生模型(Student),來(lái)自教師模型的輸出信息即為知識(shí)(Knowledge),學(xué)生模型學(xué)習(xí)教師模型信息的過(guò)程即為蒸餾(Distillation)。
一般分類任務(wù)中的標(biāo)簽往往為獨(dú)熱編碼(one-hot)形式,即除了正標(biāo)簽為1,其他的負(fù)標(biāo)簽值都為0,例如一張內(nèi)容為老虎的圖像,其老虎的標(biāo)簽為1,貓和鴨子的標(biāo)簽都是0,則此時(shí)貓和鴨子的概率相同,而老虎和貓之間的潛在關(guān)系被忽略了。因此,為了提供更多的信息量,軟目標(biāo)概念被提出,其實(shí)質(zhì)為引入蒸餾溫度T后教師模型在歸一化指數(shù)層(Softmax)輸出的各個(gè)類別的概率,即每個(gè)類別都分配有一定的概率,即便同樣為負(fù)標(biāo)簽,但某些負(fù)標(biāo)簽的概率遠(yuǎn)大于其他負(fù)標(biāo)簽,說(shuō)明教師模型的推理中該標(biāo)簽與樣本存在一定相似性。所謂蒸餾溫度,其主要是在原始Softmax 的基礎(chǔ)上除以T,具體計(jì)算公式如式(3)所示:
其中:qi為每個(gè)類別最終輸出的概率,zi為每個(gè)類別的得分,T為蒸餾溫度。由公式可得,T=1 即為原始Softmax,當(dāng)T>1 時(shí),Softmax 的輸出將趨于平滑,即原本某些概率被抑制為0 的類別也將獲得較小的概率,但當(dāng)T過(guò)大時(shí),類別概率將趨于相同,此時(shí)網(wǎng)絡(luò)將喪失區(qū)分能力。因此,合適的T可以適當(dāng)放大負(fù)標(biāo)簽攜帶的信息,使模型在訓(xùn)練時(shí)也會(huì)關(guān)注到負(fù)標(biāo)簽。
在實(shí)際運(yùn)用中,將訓(xùn)練好的Swin-B 作為教師模型,改進(jìn)后的輕量模型作為學(xué)生模型,其中Swin-B 模型作為Swin Transformer 的基礎(chǔ)模型,參數(shù)量高達(dá)88 M,整體復(fù)雜度約為Swin-T 的三倍。首先教師模型和學(xué)生模型在相同的蒸餾溫度T=3 下分別獲得軟目標(biāo)并計(jì)算交叉熵?fù)p失得到軟目標(biāo)損失,然后學(xué)生模型在T=1 的情況下獲得硬目標(biāo)并和原始標(biāo)簽計(jì)算交叉熵?fù)p失得到硬目標(biāo)損失,最后按一定的系數(shù)將軟目標(biāo)損失和硬目標(biāo)損失加權(quán)得到最終損失,具體知識(shí)蒸餾流程如圖6 所示,其中損失函數(shù)計(jì)算如式(4)所示:
圖6 知識(shí)蒸餾流程示意圖Fig.6 Knowledge distillation flow
其中:yiT為教師模型在T溫度下預(yù)測(cè)出的為i類的概率(0-1 之間),qiT為學(xué)生模型在T溫度下預(yù)測(cè)出的為i類的概率(0~1 之間),ci為在i類上的原始標(biāo)簽值(非0 即1),qi1為學(xué)生模型在T=1 溫度下預(yù)測(cè)出的為i類的概率(0~1 之間),α為平衡軟目標(biāo)和硬目標(biāo)的權(quán)重系數(shù)。
目前沒有TFT-LCD 面板缺陷分類的公開數(shù)據(jù)集,所以本文從工業(yè)現(xiàn)場(chǎng)收集了包含大劃傷(big_scratch, 240 張)、劃傷(scratch, 200 張)、貝殼(shell, 668 張)、臟點(diǎn)(dirt, 210 張)和無(wú)缺陷(ok,672 張)5 個(gè)種類1 990 張448×448 圖像的分類數(shù)據(jù)集,其中訓(xùn)練集1 393 張,測(cè)試集398 張,驗(yàn)證集199 張,每張圖像僅有一個(gè)標(biāo)簽,即每張缺陷圖像內(nèi)僅包含一類缺陷,并不涉及多標(biāo)簽分類任務(wù)。
對(duì)于圖像分類任務(wù)的評(píng)估,評(píng)價(jià)指標(biāo)主要針對(duì)模型分類的準(zhǔn)確率和計(jì)算量,其中準(zhǔn)確率常用Top-1 準(zhǔn)確率(Top-1 Acc)、精準(zhǔn)率(Precision)、召回率(Recall)和F1得分,計(jì)算量常用FLOPs。Top-1 Acc 即取最終輸出中概率向量最大的一個(gè)作為預(yù)測(cè)結(jié)果時(shí)的分類準(zhǔn)確性。Precision 表示被檢測(cè)為正樣本的缺陷中實(shí)際為正樣本的比例。Recall 表示被檢測(cè)為正樣本的缺陷占總體正樣本的比例。F1得分為精確率和召回率的調(diào)和平均數(shù)。FLOPs 則主要通過(guò)統(tǒng)計(jì)模型結(jié)果中加法和乘法計(jì)算的次數(shù)來(lái)衡量模型整體計(jì)算的復(fù)雜度。
本實(shí)驗(yàn)所用計(jì)算機(jī)處理器型號(hào)為Intel Core i7-9700@3.00 GHz,顯卡型號(hào)為NVIDIA Ge-Force RTX 3090 GPU,內(nèi)存為16 GB。操作系統(tǒng)為 Windows10 64 位,神經(jīng)網(wǎng)絡(luò)部分在Pytorch 框架下搭建,軟件編程環(huán)境為python3.9,使用 CUDA 11.7 并行架構(gòu)來(lái)提高計(jì)算能力。訓(xùn)練過(guò)程中,由于GPU 顯存限制,批處理大小為8,輸入尺寸為448×448,訓(xùn)練輪數(shù)為300,采用Adam 優(yōu)化器,初始學(xué)習(xí)率為0.001 并使用余弦退火學(xué)習(xí)率策略進(jìn)行調(diào)整,Dropout 為0.1。此外,使用在大型數(shù)據(jù)集ImageNet 上訓(xùn)練好的參數(shù)作為教師模型(Swin-B)訓(xùn)練時(shí)的初始化參數(shù),從而保證小規(guī)模數(shù)據(jù)集在深度神經(jīng)網(wǎng)絡(luò)下訓(xùn)練的精度。實(shí)驗(yàn)過(guò)程中模型損失如圖7 所示,隨著訓(xùn)練輪數(shù)的不斷增加,loss 曲線逐漸趨于平穩(wěn),在150 輪后逐漸收斂,訓(xùn)練過(guò)程未出現(xiàn)過(guò)擬合現(xiàn)象。
圖7 Loss 曲線Fig.7 Loss curve
參數(shù)n值作為確定隨不同層級(jí)動(dòng)態(tài)變化的r值的變量,可以控制Token 融合過(guò)程中每一層去除的標(biāo)記向量數(shù)量,越大的n值去除越多的標(biāo)記向量,模型也就更加輕量化,但檢測(cè)精度也會(huì)對(duì)應(yīng)有所下降,不同n值情況下的模型檢測(cè)結(jié)果如表1所示。隨著n值的增大,模型Top-1 Acc 逐漸下降,同時(shí)FLOPs 顯著下降,每秒檢測(cè)的圖片數(shù)量(im/s)則顯著增加,在均衡模型精度和速度的前提下,n=2 時(shí)對(duì)應(yīng)的r值更加符合工業(yè)實(shí)時(shí)檢測(cè)的要求。需要注意的是,伴隨著模型各階段的下采樣操作,每一層的特征圖寬高在不斷變小,因此n值不能過(guò)大以避免后續(xù)無(wú)法繼續(xù)下采樣,由于當(dāng)前模型的輸入尺寸為448×448,因此n值應(yīng)不大于2。綜合以上分析,在后續(xù)實(shí)驗(yàn)中,取n=2 時(shí)對(duì)應(yīng)的r值作為每一層的標(biāo)記向量減少數(shù)量。
表1 參數(shù)n 影響實(shí)驗(yàn)結(jié)果Tab.1 Results of parameter n affects experiments
參數(shù)T值影響知識(shí)蒸餾過(guò)程中教師和學(xué)生模型最終輸出的軟目標(biāo)結(jié)果,越大的T值導(dǎo)致Softmax 輸出的概率更加平滑,模型對(duì)負(fù)標(biāo)簽的關(guān)注更高,但過(guò)大的T值也會(huì)導(dǎo)致類別概率之間缺乏區(qū)分度。如圖8 所示,不同T值對(duì)模型整體精度的影響相差不大,模型的FLOPs 也并不受影響。當(dāng)T=1 時(shí),模型準(zhǔn)確率最低,說(shuō)明模型需要關(guān)注到一定的負(fù)標(biāo)簽信息;T=3 時(shí),模型準(zhǔn)確率達(dá)到最高,因此可以在該值的基準(zhǔn)上對(duì)α進(jìn)行調(diào)整。
圖8 不同參數(shù)T 對(duì)模型準(zhǔn)確率影響Fig.8 Different effect of the parameters T on the model accuracy
在T=3 的基礎(chǔ)上進(jìn)一步驗(yàn)證權(quán)重參數(shù)α對(duì)模型結(jié)果的影響,α越小則軟目標(biāo)損失占比更高,模型更傾向于向教師模型學(xué)習(xí)相關(guān)信息。如圖9所示,相對(duì)于α值取0.5,其偏向于0 或1 一側(cè)時(shí)的模型精度更高,其中α取0.8 時(shí)模型精度雖然在周圍表現(xiàn)最高,但仍低于α取0.3 時(shí)的檢測(cè)精度,因此最終選擇α=0.3。
圖9 T=3 時(shí)不同參數(shù)α 對(duì)模型準(zhǔn)確率影響Fig.9 Different effect of the parameters α on the model accuracy at T=3
為分析各改進(jìn)部分對(duì)模型性能的影響,共設(shè)計(jì)五組實(shí)驗(yàn)對(duì)不同改進(jìn)模塊進(jìn)行分析,每組實(shí)驗(yàn)均在相同訓(xùn)練參數(shù),不同模型內(nèi)容上進(jìn)行測(cè)試。模型性能檢測(cè)結(jié)果如表2 所示,其中各模塊依次疊加。對(duì)比Swin-T 和Swin-T+Token 融合的性能,加入Token 融合后FLOPs 提升了16%,速度指標(biāo)提升約20%,表明Token 融合模塊可以一定程度上加速模型,幫助減少模型計(jì)算量。雖然Top-1 Acc 相較基線模型下降了3.4%,F(xiàn)1得分相較基線模型下降了0.034 5,但也符合預(yù)期在犧牲一部分精度的情況下對(duì)模型進(jìn)行輕量化。深度可分離卷積的引入為系統(tǒng)提高了0.6% 的Top-1 Acc 和0.013 6 的Precision,其原因在于加入了一定的歸納偏置,但同時(shí)模型的FLOPs 略增了1.4%,Recall 和速度指標(biāo)也略有下降。對(duì)改進(jìn)模型進(jìn)行知識(shí)蒸餾后,在不改變FLOPs 和速度的情況下提升了1.5% 的Top-1 Acc 和0.008 6 的F1得分,說(shuō)明改進(jìn)模型作為學(xué)生模型成功從教師模型(Swin-B)中學(xué)到了知識(shí)。以上改進(jìn)策略最終在Top-1 Acc 僅損失1.3%和F1得分僅下降0.024 5 的情況下完成了對(duì)FLOPs 指標(biāo)14%的降低和速度指標(biāo)17%的提升,證明了三種改進(jìn)方法在速度和精度均衡方向上的有效性。
表2 改進(jìn)策略消融實(shí)驗(yàn)Tab.2 Results of ablation experiments
此外,對(duì)于實(shí)際工業(yè)生產(chǎn)中的TFT-LCD 缺陷分類任務(wù),面陣相機(jī)拍攝的圖像分辨率為1 280×1 024,檢測(cè)時(shí)間要求為100 ms,分類精度要求為90%。在將模型部署到實(shí)際工業(yè)現(xiàn)場(chǎng)的C++平臺(tái)后,模型每張圖像的推理時(shí)間約為15ms,將待測(cè)圖像分割為6 張512×512 分辨率的小圖像送入模型中(在模型中壓縮為448×448 分辨率),最終的檢測(cè)時(shí)間約為90 ms,符合檢測(cè)時(shí)間的需求。同時(shí),改進(jìn)模型的分類Top-1 準(zhǔn)確率達(dá)到92.7%,符合檢測(cè)精度的需求。
為驗(yàn)證改進(jìn)模型的檢測(cè)性能,將其與主流圖像分類模型做對(duì)比實(shí)驗(yàn),包括多種經(jīng)典常用圖像分類網(wǎng)絡(luò)(ResNet 系列[22]、DenseNet 系列[23]、EfficientNet 系列[24]和Vision Transformer系列[25])以及圖像分類最新成果(ConvNext 系列[26-27]和EVA 系列[28-29]),實(shí)驗(yàn)結(jié)果如表3 所示,其中輸入圖像尺寸均為448×448。由表可知,雖然卷積神經(jīng)網(wǎng)絡(luò)ResNet-34 比改進(jìn)模型具有更小的FLOPs 和更快的速度,但精度相差5.3%。如圖10(a)和10(b)所示,對(duì)于存在缺陷但位于線路外的情況,ResNet-34 依舊將其分類為缺陷(類別為臟點(diǎn),置信度在0~1 之間達(dá)到了0.919),而改進(jìn)模型則成功將其分類為無(wú)缺陷(類別為無(wú)缺陷,置信度為0.696)。圖10(c)和(d)則反映了線路上存在類似缺陷結(jié)構(gòu)時(shí)的檢測(cè)情況,可以發(fā)現(xiàn),ResNet-34 將其誤判為缺陷(類別為貝殼,置信度為0.792),而改進(jìn)模型則成功將其判斷為無(wú)缺陷(類別為無(wú)缺陷,置信度為0.477)。對(duì)于DenseNet169 和EffecientNet-v2模型,雖然兩者都具有較小的FLOPs,但在精度和速度上均不及改進(jìn)模型。MobileViT-v2 模型取得了最高的檢測(cè)速度,但在精度上仍具有一定劣勢(shì)。最后,雖然改進(jìn)模型相較ConvNext-T和EVA02 模型在Top-1 Acc 指標(biāo)上下降了2.4% 和3.1%,但速度提升了約16.6% 和469%,更加滿足工業(yè)實(shí)時(shí)檢測(cè)要求。因此,從檢測(cè)精度和速度綜合評(píng)價(jià),改進(jìn)模型在自制數(shù)據(jù)集上較現(xiàn)階段圖像分類主流模型具有更加均衡的精度和速度。
圖10 ResNet-34 模型與改進(jìn)模型檢測(cè)效果對(duì)比Fig.10 Comparison of detection performance between ResNet-34 model and the improved model
表4 顯示了在圖像分類領(lǐng)域常用公開數(shù)據(jù)集ImageNet-1k 上的對(duì)比實(shí)驗(yàn)結(jié)果。由表可知,在類似的輸入尺寸下,與高精度大模型相比,改進(jìn)模型在參數(shù)量和計(jì)算量上都有明顯下降,與輕量級(jí)模型相比,改進(jìn)模型則在精度上有一定優(yōu)勢(shì)。因此,改進(jìn)模型在ImageNet-1k 公開數(shù)據(jù)集上也對(duì)精度和速度具有良好的適應(yīng)性。
表4 公開數(shù)據(jù)集對(duì)比實(shí)驗(yàn)Tab.4 Results of comparison experiments on public dataset
為了更好更快地解決TFT-LCD 面板缺陷分類問(wèn)題,本文在Swin Transformer 算法的基礎(chǔ)上提出了一種改進(jìn)模型。首先插入Token 融合模塊使模型更加輕量化,然后利用深度可分離卷積模塊引入歸納偏置和提高模型分類能力,最后使用知識(shí)蒸餾策略來(lái)進(jìn)一步提升模型分類的準(zhǔn)確率。實(shí)驗(yàn)證明,該改進(jìn)模型相對(duì)于基線模型,在精度僅下降1.3%的情況下大大減少了模型的復(fù)雜度,從而提升了17% 的速度,適用于對(duì)TFT-LCD 面板缺陷進(jìn)行分類的工業(yè)任務(wù),其最終檢測(cè)結(jié)果如圖11 所示,其中各類缺陷均被正確分出,大劃傷、劃傷、貝殼和無(wú)缺陷四種類型置信度達(dá)到了0.9 以上,臟點(diǎn)類型由于容易誤檢所以置信度相對(duì)較低,但仍然達(dá)到了0.753。在后續(xù)研究中將繼續(xù)完善模型算法來(lái)進(jìn)一步提高檢測(cè)精度和檢測(cè)速度,并補(bǔ)充和完善TFT-LCD 面板缺陷分類數(shù)據(jù)集。