梁維中, 王洪玉, 王淑涵
(黑龍江科技大學 材料科學與工程學院, 哈爾濱 150022)
近年來,鋁合金型材作為一種工業(yè)建材,由于其自身優(yōu)異的性能被廣泛應用在船舶、飛機、汽車等制造領域,逐漸成為應用最廣泛的有色金屬結構材料。在傳統(tǒng)鋁型材加工過程中,型材易受外界物體碰撞,表面產(chǎn)生擦花、噴流、臟點等缺陷。帶有缺陷的鋁合金型材不僅影響美觀,還會存在安全隱患[1],因此,對鋁合金型材表面缺陷檢測的研究是極其重要的。
傳統(tǒng)表面缺陷檢測主要通過邊緣檢測等算法提取出物體表面的特征,再通過像素對比法選擇出缺陷特征,進而判斷缺陷的種類。傳統(tǒng)表面缺陷檢測方法存在檢測可靠性較低,難以檢測小目標缺陷等問題。隨著計算機硬件水平和深度學習技術的提高,目標檢測算法也不斷更新發(fā)展。當前,目標檢測算法主要發(fā)展為兩大類,一類是雙階段目標檢測算法;另一類是單階段目標檢側(cè)算法。雙階段目標檢測算法在檢測過程中先生成預選框,然后進行細粒度物體檢測,最后進行分類和預測位置。雙階段目標檢測準確率高[2],但存在著檢測速度慢,難以實現(xiàn)實時檢測等缺點[3],如 R-CNN[4]、Fast R-CNN[5]等。單階段目標檢測算法直接在網(wǎng)絡中提取特征來預測物體的分類和位置,其特點是一步到位,送入網(wǎng)絡一次就可以預測出所有的邊界框,速度相對較快[6],能夠達到實時要求,且背景錯誤較少,泛化能力強,適合工業(yè)生產(chǎn)環(huán)境下的鋁合金型材表面缺陷目標檢測,如YOLO[7]、SSD[8]等。在工業(yè)環(huán)境中,鋁合金型材表面缺陷的目標檢測存在較多不確定性因素,要求不僅僅要做到速度快,更要在保證檢測結果準確性的同時盡可能減小模型自身所占內(nèi)存。
目前,基于深度學習的鋁合金表面缺陷檢測的研究已取得一定進展。黃榮銳等[9]將特征金字塔結構添加到Faster R-CNN中,使用可變形卷積網(wǎng)絡優(yōu)化特征提取過程。將模型檢測準確率和魯棒性有效提高。崔亞飛等[10]引入了多階段模型訓練方法使部分無缺陷樣本生成對抗樣本,用ResNeXt105網(wǎng)絡代替原始VGG16網(wǎng)絡提取圖像特征,設計了Cascade Faster R-CNN的網(wǎng)絡結構,采用FPN提取多尺度特征圖并進行特征圖融合,測試結果顯示改進后網(wǎng)絡模型有效提高了對小目標特征的提取能力和泛化能力。吳曉成等[11]利用K-means聚類算法將數(shù)據(jù)集的目標框重新聚類,改進YOLOv3模型的參數(shù),通過多尺度訓練方法,增強模型對不同尺度缺陷的適應性和識別精度。上述對原有網(wǎng)絡進行了改進,有效提高模型檢測目標的精度,同時也存在模型過大,檢測速度慢,未能滿足實時檢測等問題。
針對鋁合金型材表面缺陷實時檢測速度快、模型小、準確率高等要求,筆者運用遷移學習,提出一種改進后的YOLOv4-tiny算法,在保證實時檢測速度高的前提下,添加通道注意力機制,提高均值平均精度。
文中實驗數(shù)據(jù)集為某鋁合金型材公司所提供擦花、噴流、臟點三類缺陷,利用Python批量處理為PASCAL VOC2007格式,如圖1所示。將數(shù)據(jù)集去除背景處理,進行手動數(shù)據(jù)增強,順時針旋轉(zhuǎn)90°、180°、270°,如圖2和3所示。最終得到2 182張圖片,其中,擦花728張、噴流726張、臟點728張。整理完數(shù)據(jù)圖像后使用Labelimg進行標注,并生成xml文件。
圖1 三類不同缺陷Fig. 1 Three different types of defects
圖2 去除背景Fig. 2 Remove background
圖3 圖片旋轉(zhuǎn)Fig. 3 Image rotation
K-means聚類算法[12]采用距離作為相似性的評價指標,兩個被聚類對象的距離越近,其相似度就越大?;舅枷胧墙o定樣本集D={x1,x2,…,xm}中,每個向量都是d維,將樣本集中m個數(shù)據(jù)分為k簇的集合C={c1,c2,…,ck},距離靠近的被聚類對象組成類簇,因此,K-means聚類算法的最終目標是得到緊湊且獨立的簇,而最小化平方誤差E刻畫了Ci的均值向量(μi)的緊密程度,最小化平方誤差越小則簇內(nèi)樣本相似度越高。均值向量公式為
(1)
式中:Ci——集合C的子集;
x——集合D的元素。
(2)
由于文中主要運用遷移學習,YOLOv4-tiny原始目標先驗框是通過聚類COCO數(shù)據(jù)集得來的,其中存在80類大小不同物體的目標先驗框,而文中研究所用數(shù)據(jù)集為自制鋁合金型材表面缺陷數(shù)據(jù)集,且三類缺陷大小差異明顯,若繼續(xù)沿用原始目標先驗框,則會存在先驗框不敏感等問題。因此,利用K-means算法重新確立目標框,使目標檢測時定位更加準確[13]。文中將K-means算法中歐氏測距法進行改進,根據(jù)交并比(Intersection over union,IOU)計算先驗框之間的距離,其值越大先驗框之間的距離越小,交并比θIOU的計算公式和先驗框之間的距離為
(3)
式中:θIOU——交并比(真實框與預測框交集和并集的比值);
AOL——真實框與預測框的交集;
AU——真實框與預測框的并集。
D(B,C)=1-θIOU(B,C),
(4)
式中:D——先驗框之間的距離;
B——任意一個先驗框;
C——先驗框中心。
文中設定K值1~10,分析結果如圖4所示。由圖4可知,隨著K值的增大,交并比的值不斷增加,增長率不斷減小。K=6以后,交并比增長緩慢,為保證交并比的值能夠大于0.6且最大程度減少模型計算量,使模型趨向于輕量化,最終選取合適的K值為6。當K=6時,聚類結果的目標框為(7,8),(13,17),(33,17),(70,24),(152,28),(410,42),聚類結果如圖5所示,圖中,h為缺陷目標高,單位為像素點;b為缺陷目標寬,單位為像素點。
圖4 交并比隨K變化關系Fig. 4 Intersection over union with K
圖5 聚類結果Fig. 5 Clustering results
SEnet[14]的原理是通過控制權重的大小,將重要的特征增強,不重要的特征減弱,從而使提取的特征指向性更強。SEnet的網(wǎng)絡結構中對輸入圖像的高和寬進行全局平均池化,再進行兩次全連接,第一次全連接神經(jīng)元個數(shù)較少,第二次全連接神經(jīng)元個數(shù)和輸入特征層相同,完成兩次全連接后,進行一次Sigmoid取值,將輸入特征層每個通道的權值固定在0~1之間,運用Scale操作將計算出來的各通道權重值分別和原特征圖對應通道的二維矩陣相乘,輸出結果。SEnet的網(wǎng)絡結構如圖6所示。
圖6 SEnet網(wǎng)絡結構Fig. 6 SEnet network structure
YOLOv4-tiny[15]是YOLOv4的改進版本,在YOLOv4的基礎上,簡化其結構,減少模型運算量,大大提高了目標檢測的速率,但同時也存在檢測精度降低等問題。
YOLOv4-tiny主要由輸入、主干特征提取網(wǎng)絡,加強特征提取網(wǎng)絡和預測輸出四部分組成。輸入圖像的大小可以是416×416和608×608。主干特征提取網(wǎng)絡為CSPDarknet53-tiny,在加強特征提取網(wǎng)絡進行特征融合,經(jīng)分類器和回歸器預測輸出。
文中輸入的圖像大小為416×416×3,在加強特征提取網(wǎng)絡模塊的上采樣之前和上采樣之后以及第二次最大池化之后添加三次通道注意力機制SEnet,以增強網(wǎng)絡對圖像特征的提取能力。改進后的YOLOv4-tiny網(wǎng)絡結構如圖7所示。圖中,Conv為卷積,Concat為通道數(shù)相加的特征融合方式,BN為Batch normalization,批量歸一化,LeakyRelu為激活函數(shù),Upsample為上采樣,MaxPool為最大池化。
圖7 改進后的YOLOv4-tiny網(wǎng)絡結構Fig. 7 Improved YOLOV4-tiny network structure
實驗所使用的操作系統(tǒng)為Windows 11,處理器為Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz 2.59 GHz,GPU為 NVIDIA GTX 1650 Ti(顯存4 G),采用的深度學習框架為Pytorch 1.7,編程軟件為Pycharm,編程語言 Python,運行環(huán)境為 Anaconda 3。
在實驗過程中,主要在相同閾值條件下,通過比較改進前后模型對于測試集測試結果的αmap、F1、λFPS值及模型所占內(nèi)存大小,分析模型的性能。αmap為均值平均精度,是綜合考慮召回率和精度的值,αmap的計算公式為
(5)
式中:P——精確度;
TP——正類被判定為正類;
FP——負類被判定為負類。
(6)
式中:R——召回率;
FN——正類被判定為負類。
(7)
式中:Pi——精確度的插值;
ri——按升序排列的精確度插值段第一個插值處對應的召回率的值。
(8)
式中:APi——第i類平均準確度;
k——類別數(shù)。
F1值是精確度和召回率的調(diào)和平均值,其值在0~1之間,F(xiàn)1值越大說明模型性能越好計算,F(xiàn)1值的公式為
(9)
式中:F1Si——第i類的精確度和召回率的調(diào)和平均值;
Pi——第i類的精確度;
Ri——第i類的召回率。
(10)
式中,F(xiàn)1——精確度和召回率的調(diào)和平均值。
在工業(yè)環(huán)境下,實時檢測要求能夠適應生產(chǎn)線上鋁合金型材的運行速度,在實驗中用每秒傳輸幀數(shù)λFPS的值來體現(xiàn)模型的目標檢測速度。
實驗過程中數(shù)據(jù)集按照8∶1∶1劃分訓練集(1 744張)、驗證集(219張)和測試集(219張)。訓練過程中選用SGD優(yōu)化器,設置初始學習率為0.01,學習率下降方式采用余弦退火衰減,batch_size設置為8,動量設置為0.937,權重衰減decay設置為0.000 5,使用COCO數(shù)據(jù)集的預訓練權重,迭代周期設置為300,將每個epoch的loss保存在loss.txt文件用于繪制loss變化曲線,每10個epoch保存一次權值,訓練結束后保存最佳模型。
訓練過程中l(wèi)oss隨迭代周期增加變化曲線如圖8所示,改進后YOLOv4-tiny為添加K-means算法和SEnet的網(wǎng)絡。由圖8可知,改進前模型初始loss大于改進后模型初始loss,隨著epoch增加,loss曲線先明顯下降,訓練過程中epoch大于10時,改進后YOLOv4-tiny收斂速度略有加快,表明改進后的網(wǎng)絡能夠更有針對性地進行訓練,在epoch為50時,loss下降到較小的值,然后趨近于不變,最終保持在0.054左右,說明模型最終能夠收斂。
圖8 訓練過程中l(wèi)oss隨迭代周期增加變化曲線Fig. 8 Change curve of loss with increasing iteration period during training
為驗證模型性能,在實驗中分別對YOLOv4-tiny、YOLOv4-tiny-Kmeans、YOLOv4-tiny-Kmeans-SEnet及YOLOv5s進行對比訓練,訓練結束后,利用測試集測試保存的最佳模型。各模型測試集輸出結果對比如表1所示。由表1可以看出,添加Kmeans聚類算法后,將αmap值提高2.34%,說明聚類后的目標先驗框更適合實驗所用數(shù)據(jù)集,有效解決了目標先驗框?qū)θ毕莶幻舾袉栴}。YOLOv4-tiny-Kmeans-SEnet的網(wǎng)絡模型FPS值略有下降,模型所占內(nèi)存增加0.2 MB。改進后有效提高模型對缺陷特征提取能力,結果顯示,αmap值共提高3.46%,F(xiàn)1的值提高2.67%;雖然測試集αmap值不如YOLOv5s高,但是在目標檢測速度方面遠高于YOLOv5s,改進后模型所占內(nèi)存也要小于YOLOv5s,對硬件條件要求較低,可以適用于小型設備,因此改進后的網(wǎng)絡模型更適合工業(yè)環(huán)境下實時檢測。
表1 各模型測試集輸出結果對比
驗證模型性能時,從三類缺陷中各選取一張圖像,設置預測置信度為0.5使用模型預測。三類缺陷檢測輸出圖如圖9~11所示。
圖9 模型檢測擦花缺陷Fig. 9 Model detection of scratch defects
圖10 模型檢測噴流缺陷Fig. 10 Model to detect jet defects
對于擦花缺陷圖像,YOLOv5s模型存在漏檢現(xiàn)象;對于噴流缺陷圖像,YOLOv4-tiny-Kmeans-SEnet能夠檢測出全部缺陷,其余模型均有漏檢現(xiàn)象;對于臟點缺陷的目標檢測,改進前后檢測結果置信度相差不大,而YOLOv5s模型檢測結果的置信度較低,綜上,改進后的模型對于模糊缺陷和微小缺陷的識別精確性較高。
圖11 模型檢測臟點缺陷Fig. 11 Model detection of dirty spot defects
(1)引入K-means聚類算法,將目標先驗框重新聚類,得到6個新的目標先驗框,增強目標檢測過程中定位的準確性。在YOLOv4-tiny網(wǎng)絡中添加三次通道注意力機制SEnet,增強網(wǎng)絡模型對于圖像中缺陷信息的關注度,從而有效提高模型性能。
(2)改進后的網(wǎng)絡模型相比于原來網(wǎng)絡YOLOv4-tiny的mAP值有明顯提升。雖然改進后模型αmap值不及YOLOv5s,但檢測速度λFPS值遠高于YOLOv5s,模型所占內(nèi)存也要小于YOLOv5s,更改后的模型更適合工業(yè)環(huán)境和低硬件條件下的實時檢測。