李志誠 曾志強
(五邑大學智能制造學部,廣東江門,529000)
造紙工業(yè)在國民經濟中具有重要作用,2020 年,我國紙及紙板生產企業(yè)達2500 多家[1]。生活用紙企業(yè)是造紙工業(yè)的重要組成部分,在經濟全球化以及科技不斷發(fā)展的大背景下,生活用紙企業(yè)的競爭日趨激烈。降低生產成本、提高生產效率以及產品質量是生活用紙企業(yè)提升自身競爭力的有效途徑[2]。卷紙是生活用紙企業(yè)的主要產品之一,在卷紙的生產過程中,卷紙包裝是其中的一個工序,在包裝過程中,不可避免會出現(xiàn)包裝缺陷問題。卷紙包裝缺陷問題的出現(xiàn)給企業(yè)生產帶來了多種問題,主要體現(xiàn)在以下幾個方面:①導致產品重新包裝,浪費包裝材料,增加輔料的成本以及廢棄的包裝材料會增加環(huán)境污染;②需要花費大量的人力檢測產品包裝問題,增加人力成本并難以保證產品包裝過程的可靠性;③若有包裝缺陷的產品流入到市場,增加客戶的投訴以及降低企業(yè)的信譽。為此,有效解決卷紙的包裝缺陷檢測問題對于生活用紙企業(yè)的提質增效具有重要意義。
傳統(tǒng)機器學習方法具有一定的缺陷檢測效果,如通過將方向梯度直方圖(Histogram of Oriented Gradi?ent,HOG)和支持向量機(Support Vector Machine,SVM)結合[3]的方法對車輛零件進行缺陷檢測;使用SIFT 匹配算法對PCB 板進行缺陷檢測[4]。然而,以上方法并不能有效地解決卷紙包裝缺陷檢測問題。隨著深度學習的快速發(fā)展,其在工業(yè)上的應用越來越廣泛,尤其是卷積神經網絡(Convolutional Neural Networks,CNN) 在缺陷檢測[5-7]和缺陷分類[8-9]上的應用。
隨著CNN 的快速發(fā)展,其在計算機視覺領域也取得了很多重要的突破。例如,為了避免重復計算卷積特征,He 等[10]提出了空間金字塔池化(Spatial Pyramid Pooling,SPP),整個圖像僅計算1次特征圖,在任意區(qū)域中合并特征以生成固定長度的表示形式;為了減少神經網絡計算的資源,Wang等[11]提出了跨階段局部網絡(Cross Stage Partial Network,CSPNet);在目標檢測領域,Redmon等[12]提出了YOLOv3算法,使用Darknet-53作為骨架網絡,提取圖片信號的多尺度特征,然后進行多尺度特征融合以提取深層次特征,然后通過檢測頭進行預測。YOLOv3 算法在目標檢測方面具有較高的準確性和較快的檢測速度,目前在目標識別、缺陷檢測等領域獲得了很好的應用[13-15]。
相對來說,CNN 的全局特征提取能力較弱,而Transformer具有更好的全局特征提取能力[16],但其對于細節(jié)和局部特征的提取能力不如CNN。Transformer一開始被應用在自然語言處理(NLP)領域,后來,Google Brain 提出了 Vision Transformer[17],實現(xiàn)了圖片分塊處理,將Transformer 應用到了計算機視覺領域,可獲得比CNN 更好的檢測效果,有利于圖像數(shù)據(jù)的全局特征提取。Srinivas等[18]結合多種計算機視覺任務的自注意力機制,提出了Bottleneck Transformer,采用多頭注意力(Multi-Head Self-Attention,MHSA)替換Resnet網絡中的3×3卷積,在實例分割和目標檢測方面,減少了參數(shù)量,提高了檢測速度。
針對卷紙包裝缺陷檢測問題,筆者提出了改進的YOLOv3(iYOLOv3)算法,考慮卷紙包裝圖像信息具有很強的局部相關性和全局相關性,在對圖像數(shù)據(jù)的特征提取網絡設計上,將MHSA和CNN結合,對于圖像的低層特征圖和高層特征圖分別使用CNN和MH?SA 進行特征提取,有利于二者取長補短,更加充分地提取局部和全局特征;同時在特征融合網絡層設計上,將特征金字塔網絡(Feature Pyramid Networks,F(xiàn)PN)[19]和路徑聚合網絡(Path Aggregation Network,PAN)[20]結合,以更深層次地提取圖像數(shù)據(jù)的上下文信息。
iYOLOv3 算法的網絡模型主要分為3 部分:骨架網絡、特征融合層、檢測頭。通過骨架網絡提取出圖片數(shù)據(jù)的多尺度特征,然后通過特征融合層對多尺度特征進行特征融合,最后通過CNN 獲得初步預測結果,然后通過非極大值抑制(Non-Maximum Suppres?sion,NMS)[21]以去除多余的框,得到最終的預測結果。對于骨架網路的設計,并非使用全卷積網絡,而是采用MHSA和CNN結合的設計方法,因為自注意力機制的時間與空間復雜度、輸入尺寸成二次方關系,而低層特征圖的輸入尺寸太大,故直接使用MHSA將會消耗較大的計算資源。因此,筆者首先通過CNN獲得高層特征圖,而高層特征圖尺寸較小,故使用MHSA提取高層特征圖語義信息。iYOLOV3算法網絡結構圖如圖1所示。
圖1中Conv0~Conv10各個CNN的結構參數(shù)如表1所示。Conv0~Conv10 各個CNN 在完成卷積操作后,進行BatchNorm操作,而后經過SiLU激活函數(shù),得到相應的特征圖。
圖1 iYOLOv3算法網絡結構圖Fig.1 Network structure diagram of iYOLOv3 algorithm
表1 CNN結構參數(shù)Table 1 Structure parameters of CNN
式中,(bx,by)是預測框的中心坐標;bw和bh分別是預測框的寬和高;(cx,cy)是預測框相對于單元格的偏移值;pw和ph分別是邊界框的寬和高;δ是Sigmoid激活函數(shù),其計算公式見式(2)。
在YOLOv3 的基礎上,筆者新增了Slice_CNN 網絡層。Slice_CNN 網絡層將輸入的圖像數(shù)據(jù)信息進行初步的特征提取,相對于全卷積神經網絡,其層數(shù)和參數(shù)量更少,網絡推理速度更快。Slice_CNN 網絡結構圖如圖2所示。
圖2 Slice_CNN網絡結構圖Fig.2 Network structure diagram of Slice_CNN
輸 入 圖 像 數(shù) 據(jù) 大 小 為 batch_size×3×640×640,Slice_CNN算法步驟如下:
(1)第0維和第1維維數(shù)不變,將第2維和第3維進行切片操作后變成 4 份 [batch_size][3][320][320],4 份切片對應的計算規(guī)則見式(3),其中,i,j=1,1,2,3,…,319。
式中,Input 是尺寸為batch_size×3×640×640 的輸入圖像數(shù)據(jù)。
(2)對4 份切片數(shù)據(jù)進行Concat 操作后,依次經過3×3 卷積、BatchNorm、SiLU 激活函數(shù),最后得到輸出結果。
二級平臺可作為景觀帶中的步道、活動廣場等,其高程適宜選取略高于200年一遇潮位7.93m,以滿足越浪自排的要求,同時應低于堤頂高程,以滿足景觀空間層次感及觀海視線通透的要求,宜取8.0m~8.2m。二級平臺即主要活動空間與親水步道的銜接,則主要通過設置景觀擋墻、階梯、跌級花池、階梯坐墻等多種形式來巧妙消除二者高差,豐富濱水景觀。
為了更好地獲取圖片數(shù)據(jù)的全局特征,使用全卷積神經網絡可能需要堆積大量CNN,這雖然可提高模型的特征提取效果,但模型的計算速度降低,顯然不是最優(yōu)的選擇。因此,可通過MHSA替換部分CNN以獲得更好的效果。本研究使用MHSA 的頭數(shù)量為4,其網絡結構圖如圖3所示。
圖3 MHSA網絡結構圖Fig.3 Network structure diagram of MHSA
圖3中的Rw和Rh分別是特征圖寬度和高度的位置編碼,Q、K、V 分別表示查詢、鍵和位置編碼,⊕表示矩陣對應位置元素求和,?表示矩陣乘法。
高層特征圖具有較大的感受野,而低層特征圖具有較多的細節(jié)和局部信息。iYOLOv3模型的多尺度特征融合網絡層結合了FPN 和PAN 特征融合網絡的優(yōu)點,先對多尺度特征自上而下進行特征融合(見圖4(a)),而后對多尺度特征自下而上進行特征融合(見圖4(b)),因此可更有效地促進不同尺度特征信息的流通和融合,從而更好地提取上下文信息。多尺度特征融合網絡結構如圖1中的特征融合層所示。
圖4 特征融合過程圖Fig.4 Diagram of feature fusion process
邊框回歸的損失函數(shù)采用了GIoU_LOSS[23],GIoU的計算公式見式(4)。
式中,A和B是 2 個待計算 GIoU 的矩形,C是矩形A和B的最小閉包。
計算Objectness 和計算分類的損失函數(shù)使用BCE?WithLogitsLoss 函數(shù),將 Sigmoid 網絡層和 BCELoss 合并成一層,同時使用log-sum-exp 來提高結果的穩(wěn)定性,使得結果比使用單獨的Sigmoid 和BCELoss 更加穩(wěn)定。令BCEWithLogitsLoss 的計算函數(shù)為l(x,y),其計算公式見式(5)。
式中,N是batch_size。
采用SiLU 函數(shù)作為網絡的主要激活函數(shù),其計算公式見式(6)。
實驗軟件環(huán)境為Win10、CUDA11.0,硬件環(huán)境GPU 是 NVIDIA GetForce RTX 2080Ti, CPU 是 i9-10900K CPU 3.70GHz。
實驗數(shù)據(jù)集從江門某紙業(yè)公司采集而來,2531張訓練圖片,843 張測試圖片。將包裝缺陷類型分為以下5 類:①未包裝(Class1),②包裝后卷紙倒下(Class2),③包裝正確(Class3),④側部包裝問題(Class4),⑤頂部包裝問題(Class5)。
首先對原始數(shù)據(jù)集的訓練集進行數(shù)據(jù)增強,然后對模型進行訓練,模型訓練時的batch_size 設為16,一共訓練了300個epoch,每個epoch訓練完成后對測試集進行測試,保留訓練過程中的模型權重文件。
為了增強模型的魯棒性,在訓練數(shù)據(jù)前,采用隨機數(shù)據(jù)增強的方法,隨機對一些訓練圖像數(shù)據(jù)進行數(shù)據(jù)增強,圖片對應的標簽也根據(jù)相應的數(shù)據(jù)增強方法進行相應的調整。采用的數(shù)據(jù)增強方法如下:①左右翻轉,②對比度、色彩飽和度、色調、銳度調整,③加入椒鹽噪音、高斯噪音,④圖像縮放。
iYOLOv3算法通過隨機梯度下降的方法對模型進行訓練。對網絡的不同網絡層采用了不同的學習率進行訓練:權重層使用lr1 學習率進行訓練、偏置層使用lr2學習率進行訓練、BN網絡層和其他網絡層使用lr0 學習率進行訓練。模型在訓練的前1000 個迭代采用warm-up 方法對模型的學習率進行預熱,當訓練時的迭代過程在warm-up 階段,使用一維線性插值的方法進行學習率的更新。在warm-up 階段后,使用余弦退火算法對學習率進行更新,其計算公式見式(7)。
式中,lr_new是新的學習率,t是當前的epoch,T是總的epoch,mi是最小學習率,mx是最大學習率,lr是最初學習率。
iYOLOv3 算法訓練過程中測試集中的準確率(P)、召回率(R)和AP@50∶5∶95(為通過計算具有10個不同IoU閾值(0.5,0.55,...,0.95)的AP的平均值)在不同epoch 的變化如圖5 所示。1 個epoch表示完成1次全部訓練集數(shù)據(jù)的訓練。
圖5 iYOLOv3算法訓練過程中P、R、AP@50∶5∶95變化圖Fig.5 Variation of P,R,and AP@50∶5∶95 in the training process of iYOLOv3 algorithm
實驗采用P、R、AP@50∶5∶95 和F1 作為評價iYOLOv3算法的性能指標,相對P、R、F1,AP@50∶5∶95 對于檢測算法的測評更加全面,因為其同時評估了不同閾值時模型的分類和回歸的能力。F1-置信度曲線可以很好地反映檢測算法在不同置信度和F1的變化關系。將iYOLOv3 算法在測試集上進行測試,測試結果的F1-置信度曲線圖如圖6所示。
從圖6 可以看出,在置信度較大時,Class1~Class5的F1值仍能夠保持較高的水平。不同置信度對應的P和R均能較好地反映檢測算法的性能[24]。為了更好地評價iYOLOv3 算法的性能,繪制了P-R曲線(見圖7)。圖7中,iYOLOv3算法的P在R較大時仍能保持較高水平,說明iYOLOv3算法具有很好的查準率和查全率。
圖6 iYOLOv3算法的F1-置信度曲線圖Fig.6 F1-confidence curve of iYOLOv3 algorithm
圖7 iYOLOv3算法的P-R曲線圖Fig.7 P-R curve of iYOLOv3 algorithm
利用訓練至收斂后的iYOLOv3算法對卷紙包裝缺陷Class1~Class5進行檢測,結果如圖8所示。
為了比較不同激活函數(shù)對iYOLOv3 算法的影響,將iYOLOv3 模型中的激活函數(shù)替換成其他激活函數(shù),對修改后的模型進行訓練,同時分別進行了測試,結果如表2所示。其中,P、R、AP@50∶5∶95和F1均是 Class1~Class5 的平均結果,P、R和F1 的 IoU 閾值為0.85,P、R和F1的計算公式分別見式(8)~式(10),F(xiàn)PS是算法檢測速度,即每秒處理的圖像數(shù)量(幀/s)。
表2 不同激活函數(shù)的性能測試結果Table 2 Performance test results of different activation functions
式中,TP(True Positives)是邊界框被正確檢測的個數(shù),F(xiàn)P(False Positives)是不需要檢測的目標被識別為檢測目標的個數(shù),F(xiàn)N(False Negatives)是沒有被檢測到的邊界框的個數(shù)。
從表2可以看出,SiLU、ReLU、SoftPlus、Leaky?ReLU 激活函數(shù)對iYOLOv3 算法FPS的影響不大,但ReLU和SoftPlus激活函數(shù)對應測試結果的P比SiLU激活函數(shù)分別高0.2 個百分點和0.3 個百分點;而SiLU激活函數(shù)在R、AP@50∶5∶95 和F1 評價指標上表現(xiàn)出更好的效果。
為了比較不同算法的性能,將iYOLOv3 和YO?LOv3 (輸入圖片分辨率為 608×608)、Faster RCNN[25]和SSD300[26]進行了比較,結果如表 3 所示。其中,F(xiàn)aster R-CNN的骨架網絡采用ResNet50[27],輸入圖片分辨率為600×600。
由表3 可知,相較于YOLOv3、Faster R-CNN 和SSD300,iYOLOv3 算 法在P、R、 AP@50∶5∶95、F1、FPS評價指標上都取得了更好的效果,尤其是FPS,相較于YOLOv3提高了2倍多。
表3 不同檢測算法的性能測試結果Table 3 Performance test results of different detection algorithms
針對卷紙包裝圖像信息具有很強的局部相關性和全局相關性,提出了一種改進的YOLOv3卷紙包裝缺陷檢測算法(iYOLOv3 算法)。iYOLOv3 算法在特征提取時將卷積神經網絡與多頭注意力機制結合,更加有利于提取卷紙包裝圖像數(shù)據(jù)的局部特征和全局特征;在進行多尺度特征融合時,將特征金字塔網絡和路徑聚合網絡進行結合,更有效地提取卷紙包裝數(shù)據(jù)的特征。此外,本研究采用了簡單有效的SiLU 激活函數(shù),改進了YOLOv3 算法預測框的公式和損失函數(shù)。實驗分析結果表明,相對于YOLOv3 算法,iYO?LOv3算法在準確率、召回率、AP@50∶5∶95、F1及檢測速度評價指標上都獲得了更好的效果,可為流水線上卷紙包裝的缺陷檢測提供實時準確的檢測。