金怡君,李振宇,楊絮
(1.常州大學懷德學院,江蘇 靖江 214500;2.江南大學,江蘇 無錫 214122;3.南京理工大學,南京 210014)
啤酒瓶金屬蓋是酒品包裝中重要組成部分,金屬蓋圖案與結構的完整性,是消費者對產品質量的直觀判別依據之一。但受瓶蓋制造設備以及工藝等因素的制約,成品蓋往往會包含一些缺陷,如:污漬、劃痕、破損、形變等[1-2]。若含有包裝缺陷的產品進入流通環節,勢必會造成品牌形象下滑,加大企業的維護投入[3]。因而需借助缺陷檢測手段對金屬蓋表面進行檢測,確保產品包裝的完整性,提高產品的競爭力。
目前,瓶蓋缺陷檢測多采用傳統人工和機器視覺2 種方式。人工方式工作強度大、檢測效率偏低且成本較高,無法滿足自動化快速檢測的需求[4]。基于機器視覺的檢測技術不僅能夠彌補人工檢測方式的不足,缺陷檢測的準確性和效率有了一定的提升,但其檢測部分所用的算法模型仍存在一些不足,如:計算量大,參數較多,模型結構靈活性差[5];大規模訓練樣本難以實施,不適合規模化工業使用[6];小目標檢測精度較低[7],導致整體識別準確率不高,無法滿足實際檢測需求。基于此,本文運用機器視覺技術,通過改進YOLO–v5 模型來完成啤酒金屬蓋表面缺陷的檢測,從而實現缺陷目標的快速精準定位,以期進一步提升缺陷檢測的效率。
根據金屬蓋內表面的缺陷類型、檢測的精度和時間要求,設計了基于機器視覺的檢測框架。結構如圖1 所示。

圖1 基于機器視覺的金屬蓋缺陷檢測框架Fig.1 Defect detection framework for metal cover based on machine vision
金屬蓋缺陷檢測主要由圖像采集、缺陷檢測以及殘次品剔除等部分構成。由采集部分的CCD 高速相機獲取傳輸皮帶上的金屬蓋圖像,通過千兆網絡將圖像傳輸至缺陷檢測檢測模塊。圖像經平滑降噪等處理后,輸入至YOLO–v5 檢測模型,對金屬蓋表面缺陷的檢測和識別。最終,工控機輸出相應的信號控制剔除裝置對殘次品進行分流處理。
平滑降噪處理的目的是降低噪聲對圖像的干擾,避免由于圖像質量偏低導致后續檢測過程計算量的增加[8]。考慮到采集圖像中易產生椒鹽噪聲以及邊緣模糊現象,采用自適應中值濾波器來抑制圖像噪聲以及散斑,并利用高反差保留算法來強化圖片的細節信息與邊緣值,確保圖像的感興趣區域更為突出[9]。圖2 為金屬蓋圖像預處理結果。

圖2 圖像預處理結果Fig.2 Image preprocessing results
1.3.1 YOLO–v5 網絡
YOLO–v5 屬于一種單階段目標檢測模型,主要包含輸入端、Backbone 網絡、Neck 端、Head 預測端等部分構成。網絡的輸入端設置有圖像處理過程,用以完成圖像的縮放和歸一化等操作[10]。Backbone 部分采用CSPDarknet53+Focus 結構來提取高中低層的圖像特征,有助于提升小目標特征信息的提取能力,還能夠降低網格的敏感性。Neck 端將各層次的特征進行融合并提取出大中小的特征圖,確保特征的多樣性和魯棒性。Head 預測端包含有一個分類分支和一個回歸分支,通過在特征圖上應用錨定框,利用GIOU Loss 反向傳播更新模型的參數,最終生成包含類概率、包圍框以及對象得分的輸出向量[11]。YOLO–v5網絡結構如圖3 所示。

圖3 YOLO–v5 網絡結構Fig.3 YOLO-v5 network structure
YOLO–v5 網絡初始輸入為640 像素×640 像素的圖像,經切片操作和卷積操作后,分別生成320×320×12 和320×320×32 的特征圖。為了較好地保留圖像的特征信息,卷積過程中特征圖的H和W信息被集中到通道上,分別進行32 倍、16 倍和8 倍的下采樣,以獲取不同層次的特征圖[12]。最后利用上采樣和張量拼接的方式將不同層次特征圖融合轉化為維度相同的特征圖。由于網絡梯度的變化一直被集成在特征圖中,避免了梯度信息的重復使用情況,使得模型參數量與FLOPS 數值有了較大幅度的降低,能夠在保證識別準確率的同時,降低模型計算量,提高收斂速度。考慮到啤酒瓶金屬蓋存在多種尺度的表面缺陷,將像素為13×13、26×26、52×52 的特征圖作為不同尺度目標回歸檢測的依據。
1.3.2 改進YOLO–v5 的檢測模型
在實際情況中,YOLO–v5 模型對小型缺陷檢測的準確率和速度并不理想。通過在主干網絡Backbone 中添加注意力機制SE 模塊,來抑制圖像中的不重要特征,提升網絡的表征能力[13]。同時,對模型的CIOU_Loss損失函數和預測框篩選方式進行改進,進一步提升小目標檢測的準確率和模型的特征提取能力。
1)注意力機制SE 模塊。注意力機制 SE 模塊內部結構如圖4 所示。

圖4 SE 模塊內部結構Fig.4 Internal structure of SE module
操作步驟如下:1)利用Global pooling 層對特征圖(h,b,C)進行降維操作,以減少參數數量和計算量,并輸出大小為1×1×C的特征圖。
2)將特征圖輸入到包含有C/12 個神經元的FC1層進行線性變換,將特征空間映射到樣本標記空間,并利用ReLU 激活函數將部分神經元的輸出為0,使網絡具備稀疏性,減少模型參數的相互依存關系[14]。特征z經全連接層FC2 變換以及Sigmoid 函數激活后,可得到大小為1×1×C的歸一化權重因子s,其表達式見式(1)。
式中:σ為Sigmoid 激活函數;δ為ReLU 激活函數。
3)利用權重因子計算原始特征圖各通道J= [j1,j2,…,jc]的 權 重 ,對 應 的 輸 出 為Y= [y1,y2,…,yc]。元素yc的計算表達式見式(2)。
輸出特征所對應的權重值表達了不同通道的重要程度。模型訓練過程中,通過注意力機制SE 模塊來加大重要特征通道的權值,減小非重要特征通道的權值,從而來提升模型的特征表達能力和圖像識別準確率。
2)改進損失函數。YOLO–v5 采用GIoU Loss 損失函數來計算預測框(Predicted Box,PB)和真實框(Ground Truth,GT)之間的距離。GIoU Loss 具備尺度不變性的特點,不再考慮兩矩形框相似性與空間尺度之間的關系,解決了不重疊條件下兩框距離遠近的判斷問題[15]。當預測框或真實框被對方覆蓋時,GIoU Loss 則會退化為IoU Loss,計算過程過于依賴IoU 項,致使模型的收斂速度變慢,預測精度偏低。CIoU Loss 函數由于考慮了矩形框的相對比例、IoU以及中心點距離等多項指標,不僅能夠處理兩矩形框距離遠近的問題,還能夠避免GIoU Loss 可能發生的退化問題。因此,文中的YOLO–v5 檢測模型選用CIoU Loss 作為損失函數。圖5 為CIoU 示意圖。

圖5 CIoU Loss 邊框示意圖Fig.5 Diagram of CIoU Loss border
CIoU Loss 中的相對比例指標用于懲罰預測結果與真實框不一致的情況。該懲罰項的定義見式(3)。
則CIoU 損失可表達為式(4)。
式中:κ2()表示求歐式距離;U為交并比;e、e′分別為 PB 框和 GT 框的中心點;c為兩矩形框閉包區域的對角線長度;a為權重系數;μ為兩矩形框長寬比的一致性參數,包含了要預測的b和h。a、μ的計算表達式見式(5)。
式中:b、h為PB 框的寬和高;b′、h′為GT 框的寬和高。
3)GA–Kmeans 算法調整錨框大小。卷積神經網絡的特征圖感受野隨網絡深度的增加而逐漸變大,其內部的像素點直接影響特征信息的輸出。選擇大小合理的Anchor 可有效提升模型檢測召回率[16],如圖6 所示。

圖6 不同特征層感受野對比Fig.6 Comparison of receptive fields in different feature layers
Anchor 通過計算Bboxes 與Anchor 之間平均歐氏距離而得出。YOLO–v5 模型設計有多個不同大小和寬高比的Anchor,對各特征層級上不同尺度目標進行定位,但這些依靠人工設計的Anchor 無法保證很好地適應數據集。當Anchor 框的大小與目標尺寸存在較大差異時,會導致模型計算量增加,檢測準確率偏低[17]。因此,本文采用GA–Kmeans 算法對訓練集的Bounding box 進行聚類,繼而自動生成一組更為適應當前數據集的Anchor,以確保網絡具備更好的檢測效果。
GA–Kmeans 聚類過程如下:
1)提取所有Bounding box 坐標,并將坐標數據轉換為框的寬高大小。
2)隨機選取k個Bounding box 作為Anchor 的初始簇中心,運用 1–IOU(Bboxes, Anchors)方法計算Bboxes 與每個簇之間的距離,并分配至距離它最近的簇中。
3)根據簇中的Anchors 數量,利用中值方法重新計算每個簇中的中心。
4)重復第2 步和第3 步操作,一直到各簇中的元素不再發生改變,即可獲取k個寬、高組合的Anchor boxes。
5)運用GA 算法對Anchors 的高、寬進行變異操作。對變異后的Anchors 進行適應度評估,若變得更好,則將變異后的結果賦值給Anchors。反之,則跳過。
6)將變異操作得出的最優Anchors 按面積進行排序并返回。當k=3 時,Anchors 聚類過程如圖7所示。

圖7 Anchors 聚類過程Fig.7 Anchors clustering process
2.1.1 運行環境及參數設置
使用Pytorch 深度學習平臺來完成改進YOLO–v5網絡的訓練和測試,測試平臺:酷睿?I9–12900K 中央處理器,美國INTEL 公司;GeFORCE RTX3090TI顯卡,美國NVIDIA 公司;DDR5 5200 32G×2 內存,美國Kingston 公司;操作系統Ubuntu22.04,編程語言Python。為確保實驗過程的合理性,將COCO 數據集上的預訓練結果作為檢測模型的初始化參數,配置情況如表1 所示。

表1 訓練參數及設置Tab.1 Training parameters and settings
2.1.2 樣本集和評估指標
在某啤酒加工廠采集了2 595 張金屬蓋圖像,經Labelimg 工具標注后,得到包含正常、污漬、破損、形變、劃痕等5 種特征的樣本集,并按8∶2 的比例隨機劃分為訓練集和測試集。部分缺陷樣本如圖8 所示。樣本劃分情況見表2。

表2 金屬蓋樣本數據劃分Tab.2 Metal cap sample data division

圖8 部分包含缺陷的數據樣本Fig.8 Data samples partially containing defects
為了確定最優模型,將查準率(Precision)、召回率(Rcall)、平均檢測精度(mAP)作為目標檢測模型性能的評估依據,并將缺陷檢測的準確率和用時作為整套方案的評價標準。
為了驗證文中針對YOLO–v5 改進項的有效性,利用數據集展開消融實驗。在初始YOLO–v5 的基礎上,通過使用CIoU Loss 函數,添加注意力機制SE模塊以及經過GA–Kmeans 調整后的錨框逐步替代原網絡的相關項,以檢驗各改進項對網絡性能的影響。圖9 為消融試驗可視化結果的對比情況。

圖9 消融試驗可視化對比Fig.9 Visual comparison of ablation tests
由表3 可知,未改進YOLO–v5 模型的Precision、Rcall 以及mAP 指標相對較低。在修改損失函數并添加注意力機制SE 模塊后,各項指標均有了一定的提升。但相較于SE 模塊,CIoU Loss 的目的是提升預測框回歸的速度和精度,對各項指標的提升較小。添加SE 模塊目的在于進一步提升模型對特征的提取能力,因而各項指標提升較為明顯。最終改進后模型的Precision、Rcall以及mAP 指標較于改進前分別提高了3.20%、2.31%、3.67%,表明文中改進項具備一定的合理性和有效性。

表3 多改進消融實驗結果Tab.3 Result of multiple improvement ablation tests
為了進一步驗證文中檢測模型的性能,分別選用Faster R–CNN、文獻[5]、文獻[6]的檢測模型以及YOLO 系列模型分別在同一數據集上進行實驗。對比各模型的檢測精度、檢測速度以及準確率。圖10 為各模型可視化結果。

圖10 不同模型檢測結果對比Fig.10 Comparison of different model test results
由圖10 可看出,改進的YOLO–v5 模型具備良好的特征提取能力,多目標檢測能力突出,尤其在面對形變和破損缺陷時,檢測精度較高,而其他檢測模型的精度相對較低,存在目標特征提取不完整和部分缺陷無法檢測的情況。表4 和表5 分別為不同模型的檢測速度、平均精度以及缺陷識別的準確率情況。

表4 不同模型性能對比Tab.4 Performance comparison of different models

表5 檢測準確率對比結果Tab.5 Detection accuracy comparison results
綜合表4 和表5 可知,本文改進的YOLO–v5 模型各項性能指標均優于其他目標檢測模型,檢測速度達到了294 張/min,mPA 值相較于Faster R–CNN、文獻[5]、文獻[6]、YOLO–v4、YOLO–v5 等模型分別提升了13.95%、4.78%、3.87%、7.13%、5.19%。同時,改進后的YOLO–v5 模型針對不同類型的缺陷,均有較高的檢測準確率。表明經改進后的YOLO–v5模型具備較高的檢測精度,且漏檢率較低,能夠進一步提升金屬蓋表面缺陷的識別準確率。
1)設計了基于機器視覺的缺陷檢測框架,通過添加注意力機制SE 模塊、改進損失函數和預測框篩選方式等技術手段對原YOLO–v5 模型進行優化。消融實驗結果表明,改進后檢測模型的Precision、Rcall以及mAP 指標相較于改進前分別提升了3.20%、2.31%、3.67%;小目標漏檢率較低,整體識別準確率提升明顯。
2)優化的YOLO–v5 模型各項性能指標均和識別準確率均優于目前常用的檢測模型,檢測速度為294 張/min,滿足實時檢測需求;mPA 指標相較于Faster R–CNN、文獻[5]、文獻[6]、YOLO–v4 和YOLO–v5 等模型分別提升了 13.95%、4.78%、3.87%、7.13%、5.19%,模型的檢測精度較高;模型體積僅為61.08 MB,具備良好的移植潛力。
3)針對瓶蓋污漬、破損、形變、劃痕等不同類型的缺陷,所設計模型的檢測準確率分別93.18%、94.24%、93.39%、87.97%,能夠滿足實際生產過程中的檢測需求。