唐孝育,孫明革
(吉林化工學院 信息與控制工程學院,吉林 吉林 132022)
隨著工業化、智能化和5G時代的到來,手機已經成為必備的智能化產品,人們對于手機的性能和外觀也提出了更高要求。手機蓋板玻璃的品質直接影響手機的外觀,但是手機蓋板玻璃在生產和裝配過程中不可避免地會產生各種缺陷,如臟污、劃痕、坑點等。所以,對于手機蓋板玻璃的缺陷檢測是十分重要的。
手機蓋板玻璃缺陷檢測方法包括人工檢測、傳統機器視覺檢測和深度學習模型檢測三大類。人工檢測方式受個人因素和經驗影響很大,同時也存在人工效率低、誤檢率高、人工成本高等問題;傳統機器視覺檢測方法包括邊緣檢測[1]、閾值分割[2]、背景消除[3]等,相較于人工檢測傳統機器視覺已具備檢測效率高、成本較低和檢測過程更加客觀等優點。傳統機器視覺的問題是不能處理多目標和背景復雜的圖像。目標檢測深度學習模型一般包括兩大類:第一類是Two-stage(雙階段)目標檢測;第二類是One-stage(單階段)目標檢測。SSD(Single Shot Multibox Detector)[4,5]是一種One-stage(單階段)目標檢測模型,SSD廣泛用于目標檢測,吳水清[6]等人利用SSD模型對車輛目標進行檢測,檢測效果比傳統算法更好,盡管SSD模型對較大尺寸物體檢測精度高,但當被檢測目標較小時,容易導致目標丟失,所以不利于小目標檢測[7]。焦雙健[8]等人利用改進的SSD模型實現對垃圾、動物和車輛這三類鐵路障礙物的檢測。龍玥[9]等人利用改進的SSD模型對紡織物表面的空織、雙緯、缺經、折緯等缺陷進行了檢測。在此基礎上,本文針對SSD模型存在小目標檢測效果不好的問題,通過替換SSD模型中原有骨干網絡,在特征提取層融入通道注意力機制,進而改善小目標缺陷檢測效果,并將改進的SSD模型應用于手機蓋板玻璃缺陷檢測。
SSD目標檢測網絡結構由三部分組成,第一部分是以VGG-16[10]作為主干網絡,并對VGG-16的FC6、FC7、FC8層進行改動,將原網絡中FC6和FC7的全連接層轉化為卷積層,去掉FC8層和網絡中全部的Dropout層;第二部分是對VGG-16網絡進行延伸,產生了四個特征提取卷積層(Conv8、Conv9、Conv10、Conv11),得到不同大小和感受野的特征圖;第三部分是兩個決策分支,將得到的每個特征圖進行位置回歸和分類,每個特征圖獨立預測,且參數互不共享。SSD模型框架如圖1所示。

圖1 SSD模型框架
SSD網絡將產生六張大小不同的特征圖,其尺寸分別為38px×38px、19px×19px、10px×10px、5px×5px、3px×3px、1px×1px,每張特征圖的尺寸分別是原圖的1/8、1/16、1/32、1/64、1/100、1/300。SSD針對不同特征圖設定不同大小的先驗框,先驗框隨著特征圖的變小而增大,這種變換比例如公式(1)所示。
(1)
式中Smax表示最大比例值,即Conv11層對應的先驗框比例,設為0.9,該層先驗框大小為300×0.9=270;Smin表示最小比例值,即改進后FC7層對應的先驗框比例,設為0.2;m取值為5(不包括Conv4,它所對應先驗框縮放比例取Smin/2);Sk表示先驗框大小與原圖大小的比例。通過Sk和原圖大小就可以得到先驗框的大小。對于每個先驗框中心點坐標,x0和y0的求解見公式(2)和(3)。

(2)

(3)
式(2)、(3)中|Fk|表示特征圖在不同縮放比例下的真實尺寸,(i,j)∈[0,|Fk|] 。
損失函數是神經網絡模型可以識別不同類別物體的核心。而優化器的作用就是在模型訓練過程中找到使損失函數盡可能小時所對應模型的權重參數。常用優化器包括自適應矩估計(Adaptive moment estimation,Adam)、隨機梯度下降算法(Stochastic gradient descent,SGD)和隨機梯度下降算法加動量(Stochastic gradient descent with momentum,SGD-M)[11]。SSD模型中使用的是SGD優化器,SGD優化器參數更新流程如圖2所示。

圖2 SGD優化器參數更新流程圖
手機蓋板玻璃缺陷具有特征小且不明顯的特點。傳統SSD模型提取手機蓋板玻璃特征時,使用VGG16網絡作為模型的主干網絡,由于深度較低不利于提取更深層次的抽象特征,從而使得網絡的表達能力和性能較差;其次,在缺陷特征的提取過程中,沒有考慮特征圖的每一個通道的重要程度,使得模型對于無關信息和重要信息以相同的權重進行提取,這將導致對于小缺陷的檢測精度降低。因此,針對上述問題結合ResNet50[12]以及SeNet[13]網絡結構的特點,并融入膨脹卷積的思想對SSD模型進行改進,改進后的SSD網絡結構如圖3所示。

圖3 改進后的SSD網絡結構圖
ResNet50有四個卷積組包含殘差模塊,殘差模塊結構如圖4所示。每個卷積組包含的殘差模塊個數分別是3、4、6、3。ResNet50模塊是去除了ResNet50中的最后一個卷積組、全局平均池化層和全連接層之后的部分,同時由于圖像輸入大小固定并且Conv4_x層的輸出特征圖的大小要求為38,所以要將該層第一個Block塊的所有步長都設置為1。繼續沿用傳統SSD模型中的Conv7、Conv8、Conv9、Conv10、Conv11層,該網絡結構依然形成8732個先驗框。

圖4 殘差模塊結構圖
感受野大小與卷積核大小密切相關,為了獲取不同大小的感受野,就要使用不同大小的卷積核。由于不同大小的卷積核會造成內部數據結構損失和空間層級化信息丟失,因此,針對該現象可以引入膨脹卷積[14]來代替普通的卷積結構,膨脹卷積示意圖如圖5所示。將Conv4_1層、Conv8_1層、Conv9_1層、Conv10_1層中原來的普通卷積轉換為膨脹卷積,并保證輸出特征圖尺寸保持不變。膨脹卷積核大小計算公式如式(4)所示。

圖5 膨脹卷積示意圖
kernel′=rate×(kernel-1)+1 ,
(4)
公式(4)中kernel′表示膨脹卷積核大小;rate表示膨脹系數;kernel表示原始卷積核大小。
基于ResNet50的SSD模型提取缺陷特征時,沒有考慮不同信息對于模型的影響。因而,在模型學習過程中,特征提取網絡認為噪聲信息和重要信息對于模型的影響權重相同,這將導致小缺陷和不明顯缺陷容易被噪聲信息所覆蓋,致使這兩種缺陷檢測效果不好。通道注意力機制SeNet可以解決這個問題。SeNet目的是通過構建特征通道相互關系,學習獲得每個特征通道對于模型的重要程度,然后按照這個重要程度反過來去影響相應通道的特征,使當前任務中的有用特征得到加強,無用信息受到抑制。
SeNet結構主要包括Squeeze(擠壓、壓縮)和Excitation(激勵)兩個操作,該結構如圖6所示。

圖6 SeNet結構圖
在壓縮操作中,將每個通道單獨做全局平均池化,得到具有代表全局感受野的一個實數zc,這個實數就代表特征通道的原始權重值,利用公式(5)進行計算。
(5)
公式(5)中uc表示每個通道上的特征圖。
激勵操作包括兩部分,一部分為兩個全連接FC層,另一部分為兩個激活函數,通過這兩部分對特征通道原始權重進行歸一化處理。其中兩個激活函數分別為ReLU激活函數和Sigmoid激活函數。第一個FC層將輸入的1×1×C的特征圖降低維度1×1×C/r(其中r默認值為16);第二個FC層進行升高維度操作,將特征圖轉化為1×1×C。激勵操作得到最終的權重Sc,利用公式(6)進行計算。
Sc=Fex(z,w)=σ[g(z,w)]=σ[w2δ(w1z)] ,
(6)

(7)
公式(7)中“×”表示諸元素相乘。
實驗平臺操作系統:Windows 10 64位;CPU:Inter(R)Core(TM) i7-9700 CPU @ 3.00GHz;顯卡:NVIDIA GeForce GT 710;內存:32G;深度學習框架:PyTorch;腳本語言:Python3.9.7;運行環境:Pycharm。


表1 缺陷類別訓練集、測試集數據統計表
根據手機蓋板玻璃缺陷較小的特點,在產生先驗框時,針對文獻[15]中Smax和Smin值進行調整,分別設為0.7和0.1,進而會產生更多小感受野的先驗框,有助于解決小目標檢測性能不好的問題。特征層先驗框個數與尺寸統計表見表2。

表2 先驗框個數與尺寸統計表
在實驗過程中,對于改進后的SSD模型,一共訓練100個epoch;每個批次訓練樣本batch設置為16;優化器選擇SGD-M,其中momentum值設置為0.8。
目標檢測模型效果的好壞可以通過平均精度均值(mean average precision,mAP)值來衡量,其值利用公式(8)進行計算。
(8)
公式(8)中AP表示精度均值(average precision,AP);n表示缺陷的類別數(這里n=3)。
SSD模型和改進SSD模型缺陷AP值與mAP值對比表見表3。其中,劃痕(scratching)類AP值從79.31%提升到80.74%;臟污(soiling)類AP值從77.97%提升到79.14%;坑點(pit point)類AP值從67.49%提升到70.48%。通過AP值可以得到改進前模型的mAP值為74.29%,改進后的mAP值為76.78%,改進后mAP值提高了1.86%。

表3 SSD模型和改進SSD模型缺陷AP值與mAP值對比表
經過理論分析和實驗驗證,在手機蓋板玻璃的劃痕、臟污和坑點三類缺陷中,本文提出的改進SSD模型有效地降低了漏檢和誤檢情況。在檢測精度上,對于中、大型缺陷劃痕和臟污的預測框定位更加精準,同時三類缺陷的mAP值為76.78%,較傳統SSD模型提高了1.86%。但是由于替換后的骨干網絡卷積層數增加,導致計算量變大,致使模型在推理預測時的實時性略有下降,可以適當考慮使用輕量型骨干網絡加以改進。